Fix a use-of-dangling-pointer bug, from the introduction of SrcValue's.
authorChris Lattner <sabre@nondot.org>
Fri, 5 Aug 2005 16:55:31 +0000 (16:55 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 5 Aug 2005 16:55:31 +0000 (16:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22679 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAG.cpp

index e45e708ede6ffce3326beeedce4f364717784374..6a018a546c1e0f017e43f96cb14b072df96dcdf2 100644 (file)
@@ -215,6 +215,11 @@ void SelectionDAG::DeleteNodeIfDead(SDNode *N, void *NodeSet) {
   case ISD::VALUETYPE:
     ValueTypeNodes[cast<VTSDNode>(N)->getVT()] = 0;
     break;
+  case ISD::SRCVALUE: {
+    SrcValueSDNode *SVN = cast<SrcValueSDNode>(N);
+    ValueNodes.erase(std::make_pair(SVN->getValue(), SVN->getOffset()));
+    break;
+  }    
   case ISD::LOAD:
     Loads.erase(std::make_pair(N->getOperand(1),
                                std::make_pair(N->getOperand(0),