diff options
Diffstat (limited to 'clang/lib/Sema/SemaType.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaType.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp index 959f4903b030..ab47e9f03eaf 100644 --- a/clang/lib/Sema/SemaType.cpp +++ b/clang/lib/Sema/SemaType.cpp @@ -2257,7 +2257,7 @@ QualType Sema::BuildBitIntType(bool IsUnsigned, Expr *BitWidth, if (ICE.isInvalid()) return QualType(); - int64_t NumBits = Bits.getSExtValue(); + size_t NumBits = Bits.getZExtValue(); if (!IsUnsigned && NumBits < 2) { Diag(Loc, diag::err_bit_int_bad_size) << 0; return QualType(); @@ -2268,9 +2268,10 @@ QualType Sema::BuildBitIntType(bool IsUnsigned, Expr *BitWidth, return QualType(); } - if (NumBits > llvm::IntegerType::MAX_INT_BITS) { + const TargetInfo &TI = getASTContext().getTargetInfo(); + if (NumBits > TI.getMaxBitIntWidth()) { Diag(Loc, diag::err_bit_int_max_size) - << IsUnsigned << llvm::IntegerType::MAX_INT_BITS; + << IsUnsigned << static_cast<uint64_t>(TI.getMaxBitIntWidth()); return QualType(); } |
