Author: kremenek
Date: Wed Nov 25 16:23:25 2009
New Revision: 89890

URL: http://llvm.org/viewvc/llvm-project?rev=89890&view=rev
Log:
Add post-visit Checker support in GRExprEngine for BlockExpr.

Modified:
    cfe/trunk/include/clang/Analysis/PathSensitive/CheckerVisitor.def
    cfe/trunk/lib/Analysis/GRExprEngine.cpp

Modified: cfe/trunk/include/clang/Analysis/PathSensitive/CheckerVisitor.def
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/PathSensitive/CheckerVisitor.def?rev=89890&r1=89889&r2=89890&view=diff

==============================================================================
--- cfe/trunk/include/clang/Analysis/PathSensitive/CheckerVisitor.def (original)
+++ cfe/trunk/include/clang/Analysis/PathSensitive/CheckerVisitor.def Wed Nov 
25 16:23:25 2009
@@ -28,6 +28,7 @@
 PREVISIT(ReturnStmt)
 
 POSTVISIT(CallExpr)
+POSTVISIT(BlockExpr)
 POSTVISIT(BinaryOperator)
 
 #undef PREVISIT

Modified: cfe/trunk/lib/Analysis/GRExprEngine.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/GRExprEngine.cpp?rev=89890&r1=89889&r2=89890&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/GRExprEngine.cpp (original)
+++ cfe/trunk/lib/Analysis/GRExprEngine.cpp Wed Nov 25 16:23:25 2009
@@ -1103,10 +1103,16 @@
 
 void GRExprEngine::VisitBlockExpr(BlockExpr *BE, ExplodedNode *Pred,
                                   ExplodedNodeSet &Dst) {
+  
+  ExplodedNodeSet Tmp;
+  
   CanQualType T = getContext().getCanonicalType(BE->getType());
   SVal V = ValMgr.getBlockPointer(BE->getBlockDecl(), T);
-  MakeNode(Dst, BE, Pred, GetState(Pred)->BindExpr(BE, V),
+  MakeNode(Tmp, BE, Pred, GetState(Pred)->BindExpr(BE, V),
            ProgramPoint::PostLValueKind);
+ 
+  // Post-visit the BlockExpr.
+  CheckerVisit(BE, Dst, Tmp, false);
 }
 
 void GRExprEngine::VisitDeclRefExpr(DeclRefExpr *Ex, ExplodedNode *Pred,


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

Reply via email to