summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-08-05 16:55:31 +0000
committerChris Lattner <sabre@nondot.org>2005-08-05 16:55:31 +0000
commit1095dc94a9e908c5e4d8084d309a9aab208cec37 (patch)
tree76ac99b99f1e2855b224d69bee331be7730e5e01 /llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
parentcabdc34563b5b3d9229889d6fa118dfd1b2b0458 (diff)
downloadbcm5719-llvm-1095dc94a9e908c5e4d8084d309a9aab208cec37.tar.gz
bcm5719-llvm-1095dc94a9e908c5e4d8084d309a9aab208cec37.zip
Fix a use-of-dangling-pointer bug, from the introduction of SrcValue's.
llvm-svn: 22679
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index e45e708ede6..6a018a546c1 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -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),
OpenPOWER on IntegriCloud