From ee76095307116248736ea87af929c81ee537d894 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 22 Mar 2005 19:44:11 +0000 Subject: [PATCH] Fix a serious bug where we didn't insert globals into the globalset when cloning a graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20770 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/DataStructure/DSGraph.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/llvm/Analysis/DataStructure/DSGraph.h b/include/llvm/Analysis/DataStructure/DSGraph.h index eeb261fae89..e8555c65326 100644 --- a/include/llvm/Analysis/DataStructure/DSGraph.h +++ b/include/llvm/Analysis/DataStructure/DSGraph.h @@ -94,7 +94,12 @@ public: /// getRawEntryRef - This method can be used by clients that are aware of the /// global value equivalence class in effect. DSNodeHandle &getRawEntryRef(Value *V) { - return ValueMap[V]; + std::pair IP = + ValueMap.insert(std::make_pair(V, DSNodeHandle())); + if (IP.second) // Inserted the new entry into the map. + if (GlobalValue *GV = dyn_cast(V)) + GlobalSet.insert(GV); + return IP.first->second; } unsigned count(Value *V) const { return ValueMap.find(V) != ValueMap.end(); }