diff options
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/CoreEngine.cpp')
| -rw-r--r-- | clang/lib/StaticAnalyzer/Core/CoreEngine.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp b/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp index db007feafb8..0003e6cd3f3 100644 --- a/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp +++ b/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp @@ -546,14 +546,17 @@ ExplodedNode* NodeBuilder::generateNodeImpl(const ProgramPoint &Loc, ExplodedNode *N = C.Eng.G->getNode(Loc, State, &IsNew); N->addPredecessor(FromN, *C.Eng.G); Frontier.erase(FromN); + assert(IsNew || N->isSink() == MarkAsSink); + + if (!IsNew) + return 0; if (MarkAsSink) N->markAsSink(); - - if (IsNew && !MarkAsSink) + else Frontier.Add(N); - return (IsNew ? N : 0); + return N; } StmtNodeBuilder::~StmtNodeBuilder() { |

