diff options
author | Chris Lattner <sabre@nondot.org> | 2002-11-07 05:00:35 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-11-07 05:00:35 +0000 |
commit | e83cb5316b85ef9f888b186c1a533865051746f2 (patch) | |
tree | 9237cdb0bddc70e71536915ccf226e02ed289b7b /lib/Analysis/IPA | |
parent | f17b39ab2a4f05427a2834fb177635ba10ee1186 (diff) | |
download | external_llvm-e83cb5316b85ef9f888b186c1a533865051746f2.zip external_llvm-e83cb5316b85ef9f888b186c1a533865051746f2.tar.gz external_llvm-e83cb5316b85ef9f888b186c1a533865051746f2.tar.bz2 |
Fix problem with dangling referrers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4595 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/IPA')
-rw-r--r-- | lib/Analysis/IPA/IPModRef.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Analysis/IPA/IPModRef.cpp b/lib/Analysis/IPA/IPModRef.cpp index 0f9da42..6b7095b 100644 --- a/lib/Analysis/IPA/IPModRef.cpp +++ b/lib/Analysis/IPA/IPModRef.cpp @@ -158,6 +158,9 @@ FunctionModRefInfo::computeModRef(const CallInst& callInst) if (csgNodes[i]->isRead()) callModRefInfo->setNodeIsRef(getNodeId(origNodes[i])); } + + // Drop nodemap before we delete the graph... + NodeMap.clear(); delete csgp; } @@ -194,7 +197,6 @@ void FunctionModRefInfo::dump() const // class IPModRef: An interprocedural pass that computes IP Mod/Ref info. //---------------------------------------------------------------------------- - // Free the FunctionModRefInfo objects cached in funcToModRefInfoMap. // void IPModRef::releaseMemory() @@ -215,6 +217,7 @@ void IPModRef::releaseMemory() bool IPModRef::run(Module &theModule) { M = &theModule; + for (Module::const_iterator FI = M->begin(), FE = M->end(); FI != FE; ++FI) if (! FI->isExternal()) getFuncInfo(*FI, /*computeIfMissing*/ true); |