I realized that Ted would probably say at this point that we should guard 
this by a flag in CFG::BuildOptions, just like AddTemporaryDtors. The flag only 
has to guard the addition of the CFGNewAllocator node to the graph; everything 
else will act pretty much the same as before without it. You don't need to hook 
it up to an analyzer config option yet (like "cfg-temporary-dtors"), but it 
provides an easy way to turn this behavior off without reverting it if it turns 
out to break real-world projects.

  Other than that this looks good, and I'm hoping to apply it this weekend or 
Monday! (Again, though, please drop the whitespace-only changes...)


================
Comment at: lib/StaticAnalyzer/Core/ExprEngineCXX.cpp:332-336
@@ -331,1 +331,7 @@
 
+void ExprEngine::VisitCXXNewAllocatorCall(const CXXNewExpr *CNE,
+                                          ExplodedNode *Pred,
+                                          ExplodedNodeSet &Dst) {
+  //TODO: Handle VisitCXXNewAllocatorExpr
+}
+
----------------
This isn't even called now, so maybe we should just leave it out until the next 
patch.

================
Comment at: lib/StaticAnalyzer/Core/ExprEngine.cpp:562
@@ +561,3 @@
+  ExplodedNode *N = Bldr.generateNode(PP, Pred->getState(), Pred);
+  Dst.Add(N);
+  Engine.enqueue(Dst, currBldrCtx->getBlock(), currStmtIdx);
----------------
You don't need to do this when using a NodeBuilder: it automatically adds new 
nodes to the destination set you give it at construction time.


http://llvm-reviews.chandlerc.com/D2423
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to