From 554cec6e65fecdf3a14b3ddd1cb2c9615e726220 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Mon, 5 Feb 2007 23:47:56 +0000 Subject: [PATCH] A value of 64 or fewer bits is valid if the ConstantInt has more then 64 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33942 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/Constants.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp index 8a6e11de3ab..51344955f6d 100644 --- a/lib/VMCore/Constants.cpp +++ b/lib/VMCore/Constants.cpp @@ -554,10 +554,9 @@ getWithOperands(const std::vector &Ops) const { bool ConstantInt::isValueValidForType(const Type *Ty, uint64_t Val) { unsigned NumBits = cast(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(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;