cor3ntin added inline comments.
================
Comment at: clang/test/SemaCXX/static-assert-cxx26.cpp:304
+static_assert('\u{9}' == (char)1, ""); // expected-error {{failed}} \
+ // expected-note {{evaluates to ''\t'
(0x09, 9) == '<U+0001>' (0x01, 1)'}}
+static_assert((char8_t)-128 == (char8_t)-123, ""); // expected-error
{{failed}} \
----------------
tahonermann wrote:
> cor3ntin wrote:
> > tahonermann wrote:
> > > Is the expected note up to date? I don't see code that would generate the
> > > `<U+0001>` output. Am I just missing it? Since U+0001 is a valid, though
> > > non-printable, character, I would expect more `'\u0001'`.
> > See elsewhere in the discussion. this formating is pre existing and managed
> > at the DiagnosticEngine level (pushEscapedString). the reason it's not
> > `\u0001` is 1/ to avoid reusing c++ syntactic elements for something that
> > comes from diagnostics and is not represented as an escaped sequence in
> > source 2/ `\u00011` is unreadable, and `\U000000001` is also not helpful :)
> >
> Thanks for the explanation. I'm not sure that I agree with the rationale for
> (1) though. We're already putting the value in single quotes and representing
> some values with escapes in many of these cases when the value isn't produced
> by an escape sequence (or even a character/string literal); why exclude
> `\uXXXX`? I agree with the rationale for (2); we could use `'\u{1}'` in that
> case.
FYI afaik the notation in clang predates the existence of \u{} by a few years,
and follow Unicode notation
(https://unicode.org/mail-arch/unicode-ml/y2005-m11/0060.html).
Oldest instance seems to be
https://github.com/llvm/llvm-project/commit/77091b167fd959e1ee0c4dad4ec44de43b6c95db
- i followed suite when reworking the generic escaping mechanism all string
fed to diagnostics go through.
I don't care about changing the syntax, but i do hope we are consistent.
Ultimately what we are trying to do is to designate a unicode codepoint and
whether we do it through C++ syntax or not probably does not matter much as
long as it's clear, delimited and consistent!
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D155610/new/
https://reviews.llvm.org/D155610
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits