aaron.ballman added a comment. In D127363#3570169 <https://reviews.llvm.org/D127363#3570169>, @sammccall wrote:
> In D127363#3570150 <https://reviews.llvm.org/D127363#3570150>, @aaron.ballman > wrote: > >>> On 16 bit architectures char32_t literals are truncated, for example >>> U'\U00064321' will be truncated to 0x4321. >> >> Is that valid? >> >> https://eel.is/c++draft/basic.types#basic.fundamental-9.sentence-2 and also >> C2x 7.29p2 (which has the same underlying type requirement) both say that >> the underlying type for `char32_t` is `uint_least32_t`. Adding @tahonermann >> to verify. > > I think Sebastian is describing the current broken behavior that this patch > fixes. > So if you're saying "that sounds wrong" then I think we're all in agreement > :-) > > (Sorry if I'm misreading either Sebastian's comment or yours). Oh! I hadn't read it that way initially! But yes, I'm saying "this behavior sounds wrong and should be corrected." I misread the code and missed that it was fixing in the correct direction. :-) I think this should have a test, and we can probably use `_Static_assert` for it: https://godbolt.org/z/611bx47qc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127363/new/ https://reviews.llvm.org/D127363 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits