From: Gabor Horvath Date: Mon, 14 Sep 2015 19:00:08 +0000 (+0000) Subject: [Static Analyzer] Relaxing a caching out related assert. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0bec6fbaabffd99bc85cfddd2ba58cf9fa7d22d9;p=clang [Static Analyzer] Relaxing a caching out related assert. Differential Revision: http://reviews.llvm.org/D12818 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247598 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp b/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp index 6e838205fb..da66a46e18 100644 --- a/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp +++ b/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp @@ -186,8 +186,11 @@ void ExprEngine::VisitObjCMessage(const ObjCMessageExpr *ME, // Generate a transition to non-Nil state. if (notNilState != State) { + bool HasTag = Pred->getLocation().getTag(); Pred = Bldr.generateNode(ME, Pred, notNilState); - assert(Pred && "Should have cached out already!"); + assert((Pred || HasTag) && "Should have cached out already!"); + if (!Pred) + continue; } } } else {