Fix the N>=64 case in the isInt<> and isUint<> templates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78899 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jakob Stoklund Olesen 2009-08-13 06:24:02 +00:00
parent 48bd7e3bbc
commit d4c00c0f55

View File

@ -54,12 +54,12 @@ inline bool isUInt32(int64_t Value) {
template<unsigned N>
inline bool isInt(int64_t x) {
return -(INT64_C(1)<<(N-1)) <= x && x < (INT64_C(1)<<(N-1));
return N >= 64 || (-(INT64_C(1)<<(N-1)) <= x && x < (INT64_C(1)<<(N-1)));
}
template<unsigned N>
inline bool isUint(uint64_t x) {
return x < (UINT64_C(1)<<N);
return N >= 64 || x < (UINT64_C(1)<<N);
}
/// isMask_32 - This function returns true if the argument is a sequence of ones