================ @@ -570,23 +572,35 @@ class SMTConv { // TODO: Refactor to put elsewhere static inline QualType getAPSIntType(ASTContext &Ctx, const llvm::APSInt &Int) { - return Ctx.getIntTypeForBitwidth(Int.getBitWidth(), Int.isSigned()); + QualType Ty; + if (!(Ty = Ctx.getIntTypeForBitwidth(Int.getBitWidth(), Int.isSigned())) + .isNull()) + return Ty; + // If Ty is Null, could be because the original type was a _BitInt. + // Get the bit size and round up to next power of 2, max char size + unsigned CharTypeSize = Ctx.getTypeSize(Ctx.CharTy); + unsigned Pow2DestWidth = + std::max(llvm::bit_ceil(Int.getBitWidth()), CharTypeSize); + Ty = Ctx.getIntTypeForBitwidth(Pow2DestWidth, Int.isSigned()); + return Ty; ---------------- steakhal wrote:
I think we could just directly return this type instead of assigning it and returning what we just assigned. https://github.com/llvm/llvm-project/pull/143310 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits