tahonermann added inline comments.

================
Comment at: clang/test/Lexer/cxx1z-trigraphs.cpp:24
 // expected-error@11 {{}} expected-warning@11 {{trigraph ignored}}
-// expected-error@13 {{failed}} expected-warning@13 {{trigraph ignored}} 
expected-note@13 {{evaluates to ''?' == '#''}}
+// expected-error@13 {{failed}} expected-warning@13 {{trigraph ignored}} 
expected-note@13 {{evaluates to '63 == 35'}}
 // expected-error@16 {{}}
----------------
aaron.ballman wrote:
> I think the original diagnostic was actually more understandable as it 
> relates more closely to what's written in the static assertion. I could 
> imagine something like `evaluates to '?' (63) == '#' (35)` would also be 
> reasonable.
I agree. I would also be ok with printing the integer value as primary with the 
character as secondary:
  evaluates to 63 ('?') == 35 ('#')

There are two kinds of non-printable characters:
  # Control characters (including new-line)
  # character values that don't correspond to a character (e.g., lone trailing 
characters or invalid code unit values).
For the first case, I would support printing them as either C escapes or 
universal-character-names. e.g.,
  evaluates to 0 ('\0') == 1 (\u0001)
For the second case, I would support printing them as C hex escapes. e.g, 
  evaluates to -128 ('\x80') == -123 ('\x85')




Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D155610

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

Reply via email to