aaron.ballman added inline comments.
================ Comment at: clang/test/AST/Interp/literals.cpp:591 + + static_assert(IntDiv(INT_MIN, -1) == 0, ""); + ---------------- This one should fail for the same reason as `%` ================ Comment at: clang/test/AST/Interp/literals.cpp:553 + static_assert(IntRem(2, 1) == 0, ""); + static_assert(IntRem(9, 7) == 2, ""); + ---------------- tbaeder wrote: > aaron.ballman wrote: > > aaron.ballman wrote: > > > ``` > > > static_assert(IntRem(9, 0) == 12, ""); // Not constexpr > > > static_assert(IntRem(__INT_MIN__, -1) == 12, ""); // Not constexpr > > > ``` > > Missed the test for __INT_MIN__ and -1? > for rem, clang doesn't diagnose anything: https://godbolt.org/z/rhe5ezc54 That's a bug per https://eel.is/c++draft/expr.mul#4.sentence-3 because the resulting algebraic value is not representable in the type of the result. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137071/new/ https://reviews.llvm.org/D137071 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits