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