]> granicus.if.org Git - clang/commitdiff
For inter-procedural analysis, predecessor node may be in another function.
authorZhongxing Xu <xuzhongxing@gmail.com>
Wed, 23 Dec 2009 08:54:57 +0000 (08:54 +0000)
committerZhongxing Xu <xuzhongxing@gmail.com>
Wed, 23 Dec 2009 08:54:57 +0000 (08:54 +0000)
So we should use the current program point.

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

lib/Analysis/GRCoreEngine.cpp

index 1c05ddc60bcd1bb5d6b741ca50738f27e449be2a..209452a3927ac34ac715073c8c4b37e7c208e408 100644 (file)
@@ -213,9 +213,9 @@ void GRCoreEngine::HandleBlockEdge(const BlockEdge& L, ExplodedNode* Pred) {
   CFGBlock* Blk = L.getDst();
 
   // Check if we are entering the EXIT block.
-  if (Blk == &(Pred->getLocationContext()->getCFG()->getExit())) {
+  if (Blk == &(L.getLocationContext()->getCFG()->getExit())) {
 
-    assert (Pred->getLocationContext()->getCFG()->getExit().size() == 0
+    assert (L.getLocationContext()->getCFG()->getExit().size() == 0
             && "EXIT block cannot contain Stmts.");
 
     // Process the final state transition.
@@ -447,7 +447,7 @@ GRStmtNodeBuilder::generateNodeInternal(const Stmt* S, const GRState* state,
                                         ProgramPoint::Kind K,
                                         const void *tag) {
   
-  const ProgramPoint &L = GetProgramPoint(S, K, Pred->getLocationContext(),tag);  
+  const ProgramPoint &L = GetProgramPoint(S, K, Pred->getLocationContext(),tag);
   return generateNodeInternal(L, state, Pred);
 }