[cfe-commits] r160802 - /cfe/trunk/lib/StaticAnalyzer/Core/CoreEngine.cpp

Jordan Rose jordan_rose at apple.com
Thu Jul 26 13:03:57 PDT 2012


Author: jrose
Date: Thu Jul 26 15:03:56 2012
New Revision: 160802

URL: http://llvm.org/viewvc/llvm-project?rev=160802&view=rev
Log:
[analyzer] PostImplicitCall can also occur between CFGElements.

This avoids an assertion crash when we invalidate on a destructor call
instead of inlining it.

Modified:
    cfe/trunk/lib/StaticAnalyzer/Core/CoreEngine.cpp

Modified: cfe/trunk/lib/StaticAnalyzer/Core/CoreEngine.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/CoreEngine.cpp?rev=160802&r1=160801&r2=160802&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/CoreEngine.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/CoreEngine.cpp Thu Jul 26 15:03:56 2012
@@ -266,6 +266,7 @@
     default:
       assert(isa<PostStmt>(Loc) ||
              isa<PostInitializer>(Loc) ||
+             isa<PostImplicitCall>(Loc) ||
              isa<CallExitEnd>(Loc));
       HandlePostStmt(WU.getBlock(), WU.getIndex(), Pred);
       break;
@@ -507,7 +508,8 @@
   }
 
   // Do not create extra nodes. Move to the next CFG element.
-  if (isa<PostInitializer>(N->getLocation())) {
+  if (isa<PostInitializer>(N->getLocation()) ||
+      isa<PostImplicitCall>(N->getLocation())) {
     WList->enqueue(N, Block, Idx+1);
     return;
   }





More information about the cfe-commits mailing list