diff options
| author | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-08-06 04:20:59 +0000 |
|---|---|---|
| committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-08-06 04:20:59 +0000 |
| commit | 44207a9e9f4f29a447ab45a538c0041965527545 (patch) | |
| tree | f497cce5590f25c39af4c7e20467f8ace6f5245b /clang/lib/Checker | |
| parent | 26177d2c240e7b6e7668584b269829685eade8bb (diff) | |
| download | bcm5719-llvm-44207a9e9f4f29a447ab45a538c0041965527545.tar.gz bcm5719-llvm-44207a9e9f4f29a447ab45a538c0041965527545.zip | |
If all nodes are sunk, bail out early. This make the later check for checkersEvaluated really meaningful.
llvm-svn: 110430
Diffstat (limited to 'clang/lib/Checker')
| -rw-r--r-- | clang/lib/Checker/GRExprEngine.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Checker/GRExprEngine.cpp b/clang/lib/Checker/GRExprEngine.cpp index 4ecc75f105d..5bca1ed2064 100644 --- a/clang/lib/Checker/GRExprEngine.cpp +++ b/clang/lib/Checker/GRExprEngine.cpp @@ -205,7 +205,10 @@ void GRExprEngine::CheckerVisit(const Stmt *S, ExplodedNodeSet &Dst, ExplodedNodeSet *PrevSet = &Src; unsigned checkersEvaluated = 0; - for (CheckersOrdered::iterator I=CO->begin(), E=CO->end(); I!=E; ++I){ + for (CheckersOrdered::iterator I=CO->begin(), E=CO->end(); I!=E; ++I) { + // If all nodes are sunk, bail out early. + if (PrevSet->empty()) + break; ExplodedNodeSet *CurrSet = 0; if (I+1 == E) CurrSet = &Dst; |

