[clang] [clang][Interp] Implement IntegralAP::{div, rem} (PR #72614)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 11 12:19:24 PST 2024


================
@@ -44,6 +44,24 @@ static_assert(MulA * MulB == 50, ""); // ref-error {{not an integral constant ex
 static_assert(MulA * 5 == 25, "");
 static_assert(-1 * MulB == -7, "");
 
+
+constexpr _BitInt(4) DivA = 2;
+constexpr _BitInt(2) DivB = 1;
+static_assert(DivA / DivB == 2, "");
+
+constexpr _BitInt(4) DivC = DivA / 0; // ref-error {{must be initialized by a constant expression}} \
----------------
AaronBallman wrote:

I meant `int`; basically, it's catching the other form of UB that's not division by zero.

https://github.com/llvm/llvm-project/pull/72614


More information about the cfe-commits mailing list