[PATCH] D105759: Implement P2361 Unevaluated string literals
    Corentin Jabot via Phabricator via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Fri Jul 28 03:11:28 PDT 2023
    
    
  
cor3ntin added a comment.
In D105759#4540716 <https://reviews.llvm.org/D105759#4540716>, @hubert.reinterpretcast wrote:
>> I hope this patch may allow to gather some data on that.
>
> @cor3ntin, I have reports that applications having encoding prefixes in `static_assert` are failing to build. The committee did not adopt the subject paper as a "DR resolution". Is it possible to downgrade to a warning?
You know how frequent it is?
Making it a warning is possible but not straightforward.
Previously with a prefix, it was parsed as a wide (for example) string, and we relied on the fact that L was UTF-16/32 to sometimes print a reasonable diagnostics - and sometimes not https://godbolt.org/z/f3Pj4T5aj
This is going to be worse when we add -fexec-charset:
- `static_assert(true, L"やあ")` is going to be ill-formed when coded as, eg, EBCDIC because it's not representable, and if it is representable we need to either output mojibake or convert the string back to UTF-8 which we are currently not doing.
Another solution maybe to lexically ignore prefixes by replacing the string literal token on the fly such that they are still parsed as unevaluated strings and not encoded, i could look into that.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105759/new/
https://reviews.llvm.org/D105759
    
    
More information about the cfe-commits
mailing list