cor3ntin added a comment.

I've been thinking about it and I think I have a cleaner design for the 
printing of characters:

We need a `CharToString(unsigned, Qualtype) -> SmallString` method that takes a 
value and the type.
for `char` and `char8_t` we can just return the value.
For `wchar_t`, `char32_t` and `char16_t`, we can use something like 
`ConvertCodePointToUTF8` to convert to UTF-8. If that fails we can escape with 
`\x`
If we pass the result of that to the diagnostic engine, escaping  of non 
printing character would happen automatically.

That way we have a nice separation between converting an APValue to string and 
printing it, which should avoid code duplication quite a bit, and generally 
make the design nicer.
Then maybe we need to consider whether we want to modify 
`CharacterLiteral::print` to be aligned with all of that. I don;t know if 
that's used, for example, for mangling.

Given there are a bunch of different issues here, i would not mind separate PRs 
- having the numerical value showed in paren seems valuable on its own.


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