================ @@ -100,12 +100,13 @@ template <bool Signed> class IntegralAP final { } static IntegralAP from(const Boolean &B) { assert(false); - return IntegralAP::zero(); + return IntegralAP::zero(1); } - static IntegralAP zero() { - assert(false); - return IntegralAP(0); + static IntegralAP zero(int32_t BitWidth) { + APSInt V = + APSInt(APInt(BitWidth, static_cast<int64_t>(0), Signed), !Signed); ---------------- AaronBallman wrote:
Oh wow, that's... neat. The explicit cast is also fine, but perhaps should be to `uint64_t` to remove one more implicit conversion step. https://github.com/llvm/llvm-project/pull/68081 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits