summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-10-07 20:01:31 +0000
committerChris Lattner <sabre@nondot.org>2004-10-07 20:01:31 +0000
commit3ae7bb6b7c9bd22d1c53cf7ddc28850821827522 (patch)
treebb9de4c58a021265ff7b506f703e6c5966faf6f3 /llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp
parentb0b1cb2182a6c3b58162a26c848e089fb2e2cac1 (diff)
downloadbcm5719-llvm-3ae7bb6b7c9bd22d1c53cf7ddc28850821827522.tar.gz
bcm5719-llvm-3ae7bb6b7c9bd22d1c53cf7ddc28850821827522.zip
Fix a nasty dangling pointer problem, due to a free'd pointer being left in
a map. This caused problems if a later object happened to be allocated at the free'd object's address. llvm-svn: 16813
Diffstat (limited to 'llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp')
-rw-r--r--llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp b/llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp
index ee111e9d8fe..3cd2bb0eef5 100644
--- a/llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp
+++ b/llvm/lib/Analysis/DataStructure/CompleteBottomUp.cpp
@@ -157,6 +157,9 @@ unsigned CompleteBUDataStructures::calculateSCCGraphs(DSGraph &FG,
for (DSGraph::ReturnNodesTy::iterator I = NG->getReturnNodes().begin();
I != NG->getReturnNodes().end(); ++I)
DSInfo[I->first] = &FG;
+
+ // Remove NG from the ValMap since the pointer may get recycled.
+ ValMap.erase(NG);
delete NG;
Stack.pop_back();
OpenPOWER on IntegriCloud