diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-02-27 00:44:11 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-02-27 00:44:11 +0000 |
commit | 76a2e985c34acbfad1ed21befccfd650cb94fa6c (patch) | |
tree | 6ba4c98b8ce56cd97bb677946e0a9c584600ca91 | |
parent | 39321aa1990c595bcf5a7b071a9efd16194b23ed (diff) | |
download | bcm5719-llvm-76a2e985c34acbfad1ed21befccfd650cb94fa6c.tar.gz bcm5719-llvm-76a2e985c34acbfad1ed21befccfd650cb94fa6c.zip |
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.
llvm-svn: 47650
-rw-r--r-- | clang/Analysis/GRExprEngine.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/Analysis/GRExprEngine.cpp b/clang/Analysis/GRExprEngine.cpp index c911064b99f..4b1e99e8157 100644 --- a/clang/Analysis/GRExprEngine.cpp +++ b/clang/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) |