From: Jordan Rose Date: Thu, 26 Jul 2012 20:03:56 +0000 (+0000) Subject: [analyzer] PostImplicitCall can also occur between CFGElements. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=df51fb91c5c2a265019c3f24bf2993149abc79f8;p=clang [analyzer] PostImplicitCall can also occur between CFGElements. This avoids an assertion crash when we invalidate on a destructor call instead of inlining it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160802 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Core/CoreEngine.cpp b/lib/StaticAnalyzer/Core/CoreEngine.cpp index c3be8c8c0a..1f137424d4 100644 --- a/lib/StaticAnalyzer/Core/CoreEngine.cpp +++ b/lib/StaticAnalyzer/Core/CoreEngine.cpp @@ -266,6 +266,7 @@ void CoreEngine::dispatchWorkItem(ExplodedNode* Pred, ProgramPoint Loc, default: assert(isa(Loc) || isa(Loc) || + isa(Loc) || isa(Loc)); HandlePostStmt(WU.getBlock(), WU.getIndex(), Pred); break; @@ -507,7 +508,8 @@ void CoreEngine::enqueueStmtNode(ExplodedNode *N, } // Do not create extra nodes. Move to the next CFG element. - if (isa(N->getLocation())) { + if (isa(N->getLocation()) || + isa(N->getLocation())) { WList->enqueue(N, Block, Idx+1); return; }