shafik added inline comments.
================ Comment at: clang/test/AST/Interp/shifts.cpp:70 + i = 1 << (WORD_BIT - 1); // cxx17-warning-not {{sets the sign bit of the shift expression}} + i = -1 << (WORD_BIT - 1); // cxx17-warning {{shifting a negative signed value is undefined}} \ + // ref-cxx17-warning {{shifting a negative signed value is undefined}} ---------------- shafik wrote: > A negative left operand was made well-formed in C++20 I believe see godbolt: > https://godbolt.org/z/7qzKjojMb > > My reference from above for `expr.shift/p1` also applies. > > Although a negative right operand is still UB. > > Also note shifting into the sign bit was made well-formed in C++11: > https://stackoverflow.com/questions/19593938/is-left-shifting-a-negative-integer-undefined-behavior-in-c11#comment29091986_19593938 Typo, shifting into the sign bit was made well-formed after C++11 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136532/new/ https://reviews.llvm.org/D136532 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits