summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/ConstantRange.cpp
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2009-07-13 04:50:21 +0000
committerNick Lewycky <nicholas@mxc.ca>2009-07-13 04:50:21 +0000
commit571bf545691de928a502ae7cad8b159992484547 (patch)
tree1e783460cd8a9f3783d65dd01b4e68cb7c4d8fa1 /llvm/lib/Support/ConstantRange.cpp
parent5edc4592204d4d4ba85f59ecc607ef45db4ae416 (diff)
downloadbcm5719-llvm-571bf545691de928a502ae7cad8b159992484547.tar.gz
bcm5719-llvm-571bf545691de928a502ae7cad8b159992484547.zip
Fix an error in ConstantRange::getSignedMax on wrapped ranges. Thanks once
again to Daniel Dunbar and KLEE! llvm-svn: 75449
Diffstat (limited to 'llvm/lib/Support/ConstantRange.cpp')
-rw-r--r--llvm/lib/Support/ConstantRange.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/lib/Support/ConstantRange.cpp b/llvm/lib/Support/ConstantRange.cpp
index ca25491f623..4cb54bde1bd 100644
--- a/llvm/lib/Support/ConstantRange.cpp
+++ b/llvm/lib/Support/ConstantRange.cpp
@@ -159,14 +159,10 @@ APInt ConstantRange::getSignedMax() const {
else
return SignedMax;
} else {
- if ((getUpper() - 1).slt(getLower())) {
- if (getLower() != SignedMax)
- return SignedMax;
- else
- return getUpper() - 1;
- } else {
+ if (getLower().isNegative() == getUpper().isNegative())
+ return SignedMax;
+ else
return getUpper() - 1;
- }
}
}
OpenPOWER on IntegriCloud