aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/DataStructure/TopDownClosure.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-03-24 04:22:04 +0000
committerChris Lattner <sabre@nondot.org>2005-03-24 04:22:04 +0000
commitc5132e65a6c198eac00591e13116042cee879c3f (patch)
tree33340a3fce6d8b556a100b91e47f161d52f7140e /lib/Analysis/DataStructure/TopDownClosure.cpp
parent7d671b88e890434ef99edb628d5a5cbc5ff208c6 (diff)
Fix a crash while promoting a value out of a loop from a global variable
when using ds-aa git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20802 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/DataStructure/TopDownClosure.cpp')
-rw-r--r--lib/Analysis/DataStructure/TopDownClosure.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/Analysis/DataStructure/TopDownClosure.cpp b/lib/Analysis/DataStructure/TopDownClosure.cpp
index 45b2f2b4d2..e44cea1d8e 100644
--- a/lib/Analysis/DataStructure/TopDownClosure.cpp
+++ b/lib/Analysis/DataStructure/TopDownClosure.cpp
@@ -468,5 +468,14 @@ void TDDataStructures::copyValue(Value *From, Value *To) {
return;
}
- assert(!isa<GlobalVariable>(From) && "Do not know how to copy GV's yet!");
+ if (const Function *F = getFnForValue(To)) {
+ DSGraph &G = getDSGraph(*F);
+ G.getScalarMap().copyScalarIfExists(From, To);
+ return;
+ }
+
+ std::cerr << *From;
+ std::cerr << *To;
+ assert(0 && "Do not know how to copy this yet!");
+ abort();
}