tahonermann added inline comments.

================
Comment at: clang/lib/Lex/PPExpressions.cpp:413
       Val.setIsUnsigned(!TargetInfo::isTypeSigned(TI.getWCharType()));
-    else if (!Literal.isUTF16() && !Literal.isUTF32())
+    else if (!Literal.isUTF8() && !Literal.isUTF16() && !Literal.isUTF32())
       Val.setIsUnsigned(!PP.getLangOpts().CharIsSigned);
----------------
tahonermann wrote:
> I think the check for UTF-8 should also be conditioned on 
> `PP.getLangOpts().Char8`. When `char8_t` support is not enabled (as in C++17 
> or with `-fno-char8_t` in C++20), UTF-8 character literals still have type 
> `char`.
>       else if (!(Literal.isUTF8() && PP.getLangOpts().Char8) && 
> !Literal.isUTF16() && !Literal.isUTF32())
My C++ bias may be showing here; `LangOptions.Char8` may not be relevant for C, 
so this may require additional qualification.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124996/new/

https://reviews.llvm.org/D124996

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to