]> granicus.if.org Git - clang/commitdiff
Fixed bug in the core transfer function logic for CallExprs where we would
authorTed Kremenek <kremenek@apple.com>
Wed, 27 Feb 2008 00:44:11 +0000 (00:44 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 27 Feb 2008 00:44:11 +0000 (00:44 +0000)
sometimes skip evaluating all the arguments when some arguments would not
create new ExplodedNodes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47650 91177308-0d34-0410-b5e6-96231b3b80d8

Analysis/GRExprEngine.cpp

index c911064b99f96237ddfe22c5fb8f7280361139b4..4b1e99e815777e6ab65e6335dea52835b551974a 100644 (file)
@@ -490,7 +490,10 @@ void GRExprEngine::VisitCall(CallExpr* CE, NodeTy* Pred,
   if (AI != AE) {
     
     NodeSet DstTmp;  
+    
     Visit(*AI, Pred, DstTmp);
+    if (DstTmp.empty()) DstTmp.Add(Pred);
+    
     ++AI;
     
     for (NodeSet::iterator DI=DstTmp.begin(), DE=DstTmp.end(); DI != DE; ++DI)