diff options
author | Jordan Rose <jordan_rose@apple.com> | 2014-06-18 19:23:30 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2014-06-18 19:23:30 +0000 |
commit | 6914e2f339193cb465bd5817558beddfbe733345 (patch) | |
tree | 266549e757b2ea0866e3054d7cddef42d6495f31 /clang/lib/StaticAnalyzer/Core/CoreEngine.cpp | |
parent | ccf10727b066de682b57314ba5b6ed0fda5f236f (diff) | |
download | bcm5719-llvm-6914e2f339193cb465bd5817558beddfbe733345.tar.gz bcm5719-llvm-6914e2f339193cb465bd5817558beddfbe733345.zip |
[analyzer] Don't create new PostStmt nodes if we don't have to.
Doing this caused us to mistakenly think we'd seen a particular state before
when we actually hadn't, which resulted in false negatives. Credit to
Rafael Auler for discovering this issue!
llvm-svn: 211209
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/CoreEngine.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Core/CoreEngine.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp b/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp index e710c7f717b..4623c358a9e 100644 --- a/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp +++ b/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp @@ -541,7 +541,7 @@ void CoreEngine::enqueueStmtNode(ExplodedNode *N, CFGStmt CS = (*Block)[Idx].castAs<CFGStmt>(); PostStmt Loc(CS.getStmt(), N->getLocationContext()); - if (Loc == N->getLocation()) { + if (Loc == N->getLocation().withTag(nullptr)) { // Note: 'N' should be a fresh node because otherwise it shouldn't be // a member of Deferred. WList->enqueue(N, Block, Idx+1); |