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

Reply via email to