diff options
Diffstat (limited to 'lib/StaticAnalyzer/Core/CoreEngine.cpp')
-rw-r--r-- | lib/StaticAnalyzer/Core/CoreEngine.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/StaticAnalyzer/Core/CoreEngine.cpp b/lib/StaticAnalyzer/Core/CoreEngine.cpp index db007feafb..0003e6cd3f 100644 --- a/lib/StaticAnalyzer/Core/CoreEngine.cpp +++ b/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() { |