aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2010-08-30 17:03:45 +0000
committerOwen Anderson <resistor@mac.com>2010-08-30 17:03:45 +0000
commit392953262ee9ce3e3ff714867d01e1e1edbe391d (patch)
treee99a9c0498df0c48262f5e6a60d0309b247c8d8b /lib/Analysis
parent7b8167484c1bb9b76b90c99d6fcb61c0e918d190 (diff)
downloadexternal_llvm-392953262ee9ce3e3ff714867d01e1e1edbe391d.zip
external_llvm-392953262ee9ce3e3ff714867d01e1e1edbe391d.tar.gz
external_llvm-392953262ee9ce3e3ff714867d01e1e1edbe391d.tar.bz2
It is possible to try to merge a not-constant with a constantrage, when dealing with ptrtoint ConstantExpr's.
Unfortunately, the only testcase I have for this is huge and doesn't reduce well because the error is sensitive to iteration-order issues, since the problem only occurs when merging values in a particular order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112489 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis')
-rw-r--r--lib/Analysis/LazyValueInfo.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Analysis/LazyValueInfo.cpp b/lib/Analysis/LazyValueInfo.cpp
index e7929f3..f6f715e 100644
--- a/lib/Analysis/LazyValueInfo.cpp
+++ b/lib/Analysis/LazyValueInfo.cpp
@@ -196,13 +196,14 @@ public:
isa<ConstantExpr>(RHS.getNotConstant()))
return markOverdefined();
return false;
- }
- if (isConstant()) {
+ } else if (isConstant()) {
if (getConstant() == RHS.getNotConstant() ||
isa<ConstantExpr>(RHS.getNotConstant()) ||
isa<ConstantExpr>(getConstant()))
return markOverdefined();
return markNotConstant(RHS.getNotConstant());
+ } else if (isConstantRange()) {
+ return markOverdefined();
}
assert(isUndefined() && "Unexpected lattice");