Просмотр исходного кода

[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
Gabor Horvath 10 лет назад
Родитель
Сommit
0bec6fbaab
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      lib/StaticAnalyzer/Core/ExprEngineObjC.cpp

+ 4 - 1
lib/StaticAnalyzer/Core/ExprEngineObjC.cpp

@@ -186,8 +186,11 @@ void ExprEngine::VisitObjCMessage(const ObjCMessageExpr *ME,
 
 
         // Generate a transition to non-Nil state.
         // Generate a transition to non-Nil state.
         if (notNilState != State) {
         if (notNilState != State) {
+          bool HasTag = Pred->getLocation().getTag();
           Pred = Bldr.generateNode(ME, Pred, notNilState);
           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 {
     } else {