]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Use UTF-32BE as wide encoding for big-endian machines [PR119725]
authorTomasz Kamiński <tkaminsk@redhat.com>
Mon, 14 Apr 2025 06:43:58 +0000 (08:43 +0200)
committerTomasz Kamiński <tkaminsk@redhat.com>
Mon, 14 Apr 2025 11:19:15 +0000 (13:19 +0200)
This changes the `dg-options` line so UTF-32 with byte order native to the
machine is used as wide encoding.

We still do not handle mismatch in the byte order of the Unicode encodings
(UTF32-BE on little-endian machines). This would require larger changes,
as for example `unicode-data.h` tables are encoded with native byte order.

PR libstdc++/119725

libstdc++-v3/ChangeLog:

* testsuite/std/format/debug.cc: Updated dg-options.
* testsuite/std/format/debug_nonunicode.cc: Updated dg-options.

Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Signed-off-by: Tomasz Kamiński <tkaminsk@redhat.com>
libstdc++-v3/testsuite/std/format/debug.cc
libstdc++-v3/testsuite/std/format/debug_nonunicode.cc

index 07cd1e0e349e3ff995aa55b88b4dc9be3bc31d4e..71bb7f4a0fe808e2aa6573d10306b47d1e0cc4d9 100644 (file)
@@ -1,4 +1,5 @@
-// { dg-options "-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32LE -DUNICODE_ENC" }
+// { dg-options "-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32LE -DUNICODE_ENC" { target le } }
+// { dg-options "-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32BE -DUNICODE_ENC" { target be } }
 // { dg-do run { target c++23 } }
 // { dg-add-options no_pch }
 
index 5c03171d71a15983a27a79512b371819f25b57d9..2ac7e757ea8d38a5798b5200806f97e6a57cc434 100644 (file)
@@ -1,4 +1,4 @@
-// { dg-options "-fexec-charset=ISO8859-1 -fwide-exec-charset=UTF-32LE" }
+// { dg-options "-fexec-charset=ISO8859-1" }
 // { dg-do run { target c++23 } }
 // { dg-add-options no_pch }