diff options
| author | Nick Lewycky <nicholas@mxc.ca> | 2009-07-13 04:50:21 +0000 |
|---|---|---|
| committer | Nick Lewycky <nicholas@mxc.ca> | 2009-07-13 04:50:21 +0000 |
| commit | 571bf545691de928a502ae7cad8b159992484547 (patch) | |
| tree | 1e783460cd8a9f3783d65dd01b4e68cb7c4d8fa1 /llvm/lib/Support/ConstantRange.cpp | |
| parent | 5edc4592204d4d4ba85f59ecc607ef45db4ae416 (diff) | |
| download | llvm-571bf545691de928a502ae7cad8b159992484547.zip llvm-571bf545691de928a502ae7cad8b159992484547.tar.gz llvm-571bf545691de928a502ae7cad8b159992484547.tar.bz2 | |
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.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/lib/Support/ConstantRange.cpp b/llvm/lib/Support/ConstantRange.cpp index ca25491..4cb54bd 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; - } } } |
