From: Ted Kremenek Date: Wed, 27 Feb 2008 00:44:11 +0000 (+0000) Subject: Fixed bug in the core transfer function logic for CallExprs where we would X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a6fbe8068442980de456c86a641a7be83ce31f64;p=clang Fixed bug in the core transfer function logic for CallExprs where we would 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 --- diff --git a/Analysis/GRExprEngine.cpp b/Analysis/GRExprEngine.cpp index c911064b99..4b1e99e815 100644 --- a/Analysis/GRExprEngine.cpp +++ b/Analysis/GRExprEngine.cpp @@ -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)