aboutsummaryrefslogtreecommitdiff
path: root/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2011-02-15 02:20:03 +0000
committerTed Kremenek <kremenek@apple.com>2011-02-15 02:20:03 +0000
commitb53189160c53b1d49d10c1b6fc439549a06ce618 (patch)
treec611697fd45f5a356b560f588f305c3276612c64 /lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp
parentb1224f69089815fd66b04ae33215b7fba10780aa (diff)
IdempotentOperationChecker: don't repeatedly recompute block reachability.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125548 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp')
-rw-r--r--lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp b/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp
index 8f47f9eb4f..2b0753649e 100644
--- a/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp
@@ -563,8 +563,9 @@ IdempotentOperationChecker::pathWasCompletelyAnalyzed(const CFG *cfg,
const CFGBlock *CB,
const CFGStmtMap *CBM,
const CoreEngine &CE) {
-
- CRA.reset(new CFGReachabilityAnalysis(*cfg));
+
+ if (!CRA.get())
+ CRA.reset(new CFGReachabilityAnalysis(*cfg));
// Test for reachability from any aborted blocks to this block
typedef CoreEngine::BlocksAborted::const_iterator AbortedIterator;