OSDN Git Service

A value of 64 or fewer bits is valid if the ConstantInt has more then 64 bits.
authorReid Spencer <rspencer@reidspencer.com>
Mon, 5 Feb 2007 23:47:56 +0000 (23:47 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Mon, 5 Feb 2007 23:47:56 +0000 (23:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33942 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Constants.cpp

index 8a6e11d..5134495 100644 (file)
@@ -554,10 +554,9 @@ getWithOperands(const std::vector<Constant*> &Ops) const {
 
 bool ConstantInt::isValueValidForType(const Type *Ty, uint64_t Val) {
   unsigned NumBits = cast<IntegerType>(Ty)->getBitWidth(); // assert okay
-  assert(NumBits <= 64 && "Not implemented: integers > 64-bits");
   if (Ty == Type::Int1Ty)
     return Val == 0 || Val == 1;
-  if (NumBits == 64)
+  if (NumBits >= 64)
     return true; // always true, has to fit in largest type
   uint64_t Max = (1ll << NumBits) - 1;
   return Val <= Max;
@@ -565,10 +564,9 @@ bool ConstantInt::isValueValidForType(const Type *Ty, uint64_t Val) {
 
 bool ConstantInt::isValueValidForType(const Type *Ty, int64_t Val) {
   unsigned NumBits = cast<IntegerType>(Ty)->getBitWidth(); // assert okay
-  assert(NumBits <= 64 && "Not implemented: integers > 64-bits");
   if (Ty == Type::Int1Ty)
     return Val == 0 || Val == 1 || Val == -1;
-  if (NumBits == 64)
+  if (NumBits >= 64)
     return true; // always true, has to fit in largest type
   int64_t Min = -(1ll << (NumBits-1));
   int64_t Max = (1ll << (NumBits-1)) - 1;