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
This commit is contained in:
Owen Anderson 2010-08-30 17:03:45 +00:00
parent 7b8167484c
commit 392953262e

View File

@ -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");