diff options
| author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-02-23 19:38:39 +0000 |
|---|---|---|
| committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-02-23 19:38:39 +0000 |
| commit | da02a25ae6adb80a97148e885196ef194f74b238 (patch) | |
| tree | ad9c1ecc47f765765c49674038fa255c144a8c72 /clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp | |
| parent | 5d2144602f198737caacb29fc6cc5f24fee05974 (diff) | |
| download | bcm5719-llvm-da02a25ae6adb80a97148e885196ef194f74b238.tar.gz bcm5719-llvm-da02a25ae6adb80a97148e885196ef194f74b238.zip | |
[analyzer] Migrate ChrootChecker to CheckerV2.
llvm-svn: 126324
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp')
| -rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp b/clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp index 01aad7a4be9..283f930d4a8 100644 --- a/clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp @@ -238,11 +238,25 @@ bool ExprEngine::CheckerEvalCall(const CallExpr *CE, DstTmp.clear(); } - if (evaluated) + if (evaluated) { Dst.insert(DstTmp); - else - Dst.insert(Pred); + return evaluated; + } + + class DefaultEval : public GraphExpander { + bool &Evaluated; + public: + DefaultEval(bool &evaluated) : Evaluated(evaluated) { } + virtual void expandGraph(ExplodedNodeSet &Dst, ExplodedNode *Pred) { + Evaluated = false; + Dst.insert(Pred); + } + }; + evaluated = true; + DefaultEval defaultEval(evaluated); + getCheckerManager().runCheckersForEvalCall(Dst, Pred, CE, *this, + &defaultEval); return evaluated; } |

