diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2006-12-17 06:07:30 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2006-12-17 06:07:30 +0000 |
commit | 691458697c7e71e9b75319ef4b6b3067a525f7d9 (patch) | |
tree | a9961aec71d7cc56248e6187743cb6f8e2ede0a9 | |
parent | 5c7e326585f3a543388ba871c3425f7664cd9143 (diff) |
Fix problems in the CBE and InstructionCombining which use the isMaxValue
and isMinValue methods of ConstantInt. These have been broken since the
isSigned parameter was added. It is necessary to use the signed version
of the type in the call to isValueValidForType or else incorrect results
are returned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32637 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Constants.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/llvm/Constants.h b/include/llvm/Constants.h index 079f156cca..1940e5b831 100644 --- a/include/llvm/Constants.h +++ b/include/llvm/Constants.h @@ -205,7 +205,7 @@ public: int64_t V = getSExtValue(); if (V < 0) return false; // Be careful about wrap-around on 'long's ++V; - return !isValueValidForType(getType(), V) || V < 0; + return !isValueValidForType(getType()->getSignedVersion(), V) || V < 0; } return isAllOnesValue(); } @@ -219,7 +219,7 @@ public: int64_t V = getSExtValue(); if (V > 0) return false; // Be careful about wrap-around on 'long's --V; - return !isValueValidForType(getType(), V) || V > 0; + return !isValueValidForType(getType()->getSignedVersion(), V) || V > 0; } return getZExtValue() == 0; } |