diff options
author | Owen Anderson <resistor@mac.com> | 2010-08-30 17:03:45 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2010-08-30 17:03:45 +0000 |
commit | 392953262ee9ce3e3ff714867d01e1e1edbe391d (patch) | |
tree | e99a9c0498df0c48262f5e6a60d0309b247c8d8b /lib/Analysis | |
parent | 7b8167484c1bb9b76b90c99d6fcb61c0e918d190 (diff) | |
download | external_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.cpp | 5 |
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"); |