tbaeder marked 4 inline comments as done.
tbaeder added inline comments.

================
Comment at: clang/test/Lexer/utf8-char-literal.cpp:37-47
+#if __cplusplus == 201703L
+#  if defined(CHAR8_T)
+#    if u8'\xff' == '\xff' // expected-warning {{right side of operator 
converted from negative value to unsigned}}
+#      error Something's not right.
+#    endif
+#  else
+#    if u8'\xff' != '\xff'
----------------
tahonermann wrote:
> aaron.ballman wrote:
> > The equality operators seem backwards to what @tahonermann was saying -- I 
> > read his comment as:
> > 
> > C++17/14/11: u8'\xff' == '\xff'
> > C++17/14/11, -fchar8_t: u8'\xff' != '\xff'
> > C++20 and up: u8'\xff' != '\xff'
> > C++20 and up, -fno-char8_t: u8'\xff' == '\xff'
> > 
> > Hopefully Tom can clarify if I misunderstood.
> Yes, that looks right (as long as the target has a signed `char` type).
Are you listing the positive conditions (that should be true) or negative ones? 
The conditions in the test case need to be false in order for the test case to 
succeed.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124996/new/

https://reviews.llvm.org/D124996

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to