]> granicus.if.org Git - clang/commitdiff
Fixed bug in GREndPathNodeBuilder: only return a node if it wasn't in the node cache.
authorTed Kremenek <kremenek@apple.com>
Fri, 18 Apr 2008 16:30:14 +0000 (16:30 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 18 Apr 2008 16:30:14 +0000 (16:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49907 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/CFRefCount.cpp
lib/Analysis/GRCoreEngine.cpp

index 1c2f20aa3bdf3d1e3768658867eea9c5688a1044..1618f04359d1c23e3e893a3a45c0da41eac2f130 100644 (file)
@@ -1065,6 +1065,10 @@ void CFRefCount::EvalEndPath(GRExprEngine& Eng,
   }
       
   ExplodedNode<ValueState>* N = Builder.MakeNode(St);  
+  
+  if (!N)
+    return;
+  
   std::vector<SymbolID>*& LeaksAtNode = Leaks[N];
   assert (!LeaksAtNode);
   LeaksAtNode = new std::vector<SymbolID>();
index ffb2fd2feba55790419c27bddc80baac1de1f313..7ad7f73abf75acb4dd93fe00382c26c4ccc40adb 100644 (file)
@@ -456,7 +456,8 @@ ExplodedNodeImpl* GREndPathNodeBuilderImpl::generateNodeImpl(void* State) {
   if (IsNew) {
     Node->markAsSink();
     Eng.G->addEndOfPath(Node);
+    return Node;
   }
   
-  return Node;
+  return NULL;
 }