]> granicus.if.org Git - clang/commitdiff
[Static Analyzer] Relaxing a caching out related assert.
authorGabor Horvath <xazax.hun@gmail.com>
Mon, 14 Sep 2015 19:00:08 +0000 (19:00 +0000)
committerGabor Horvath <xazax.hun@gmail.com>
Mon, 14 Sep 2015 19:00:08 +0000 (19:00 +0000)
Differential Revision: http://reviews.llvm.org/D12818

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247598 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Core/ExprEngineObjC.cpp

index 6e838205fb7f6f8ee1e7636f191e5829dabd2782..da66a46e18e442408c0de635dceabf43b22fd072 100644 (file)
@@ -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 {