aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2006-12-17 06:07:30 +0000
committerReid Spencer <rspencer@reidspencer.com>2006-12-17 06:07:30 +0000
commit691458697c7e71e9b75319ef4b6b3067a525f7d9 (patch)
treea9961aec71d7cc56248e6187743cb6f8e2ede0a9
parent5c7e326585f3a543388ba871c3425f7664cd9143 (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.h4
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;
}