hubert.reinterpretcast added inline comments.
================
Comment at: clang/test/SemaCXX/static-assert.cpp:287
+ static_assert((char16_t)L'ゆ' == L"C̵̭̯̠̎͌ͅť̺"[1], ""); // expected-error
{{failed}} \
+ // expected-note {{evaluates
to ''ゆ' (0x3086) == '̵' (0x335)'}}
+ static_assert(L"\/"[1] == u'\xFFFD', ""); // expected-error {{failed}} \
----------------
hubert.reinterpretcast wrote:
> cor3ntin wrote:
> > hubert.reinterpretcast wrote:
> > > The C++23 escaped string formatting facility would not generate a
> > > trailing combining character like this. I recommend following suit.
> > >
> > > Info on U+0335: https://util.unicode.org/UnicodeJsps/character.jsp?a=0335
> > >
> > This is way outside the scope of the patch. The diagnostic output facility
> > has no understanding of combining characters or graphemes and do not
> > attempt to match std::print. It probably would be an improvement but this
> > patch is not trying to modify how all diagnostics are printed. (all of that
> > logic is in Diagnostic.cpp)
> This patch is pushing the envelope of what appears in diagnostics. One can
> also argue that someone writing
> ```
> static_assert(false, "\u0301");
> ```
> gets what they deserve, but that case does not have a big problem anyway
> (because the provided message text appears after `: `).
>
> This patch increases the exposure of the diagnostic output facility to input
> that it does not handle well. I disagree that it is outside the scope of this
> patch to insist that it does not generate such inputs to the diagnostic
> output facility (even if a possible solution is to modify the diagnostic
> output facility first).
@cor3ntin, do you have status quo examples for how grapheme-extending
characters that are not already "problematic" in their original context are
emitted in diagnostics in contexts where they are?
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