DataflowWorklist.h: Appease msc17 -- Split a private constructor to DataflowWorklistBase.
authorNAKAMURA Takumi <geek4civic@gmail.com>
Mon, 28 Jul 2014 11:33:49 +0000 (11:33 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Mon, 28 Jul 2014 11:33:49 +0000 (11:33 +0000)
MSC17 isn't capable to invoke other constructors in its scope.

llvm-svn: 214067

clang/include/clang/Analysis/Analyses/DataflowWorklist.h

index 9afaae9..dfa00f9 100644 (file)
 
 namespace clang {
 
-class DataflowWorklist {
+class DataflowWorklistBase {
+protected:
   PostOrderCFGView::iterator PO_I, PO_E;
   PostOrderCFGView::BlockOrderCompare comparator;
   SmallVector<const CFGBlock *, 20> worklist;
   llvm::BitVector enqueuedBlocks;
 
-  DataflowWorklist(const CFG &cfg, PostOrderCFGView &view)
+  DataflowWorklistBase(const CFG &cfg, PostOrderCFGView &view)
     : PO_I(view.begin()), PO_E(view.end()),
       comparator(view.getComparator()),
       enqueuedBlocks(cfg.getNumBlockIDs(), true) {
@@ -35,10 +36,13 @@ class DataflowWorklist {
           ++PO_I;
         }
       }
+};
+
+class DataflowWorklist : DataflowWorklistBase {
 
 public:
   DataflowWorklist(const CFG &cfg, AnalysisDeclContext &Ctx)
-    : DataflowWorklist(cfg, *Ctx.getAnalysis<PostOrderCFGView>()) {}
+    : DataflowWorklistBase(cfg, *Ctx.getAnalysis<PostOrderCFGView>()) {}
 
   void enqueueBlock(const CFGBlock *block);
   void enqueuePredecessors(const CFGBlock *block);