On 6/11/26 10:01 AM, Jakub Jelinek wrote:
Hi!

The following patch attempts to implement
C++29 P3733R1 - More named universal character escapes
paper as a DR.
I've left out the regenerated file diff, because it is over the mailing
list limits even after xz -9e.

Ok for trunk if this is voted into C++29 as DR?

OK.
2026-06-11  Jakub Jelinek  <[email protected]>

gcc/c-family/
        * c-cppbuiltin.cc (c_cpp_builtins): Change
        __cpp_named_character_escapes value from 202207L to 202606L.
gcc/testsuite/
        * c-c++-common/cpp/named-universal-char-escape-3.c: Remove two
        expected errors.
        * c-c++-common/cpp/named-universal-char-escape-8.c: New test.
        * g++.dg/DRs/dr2581-2.C: Adjust __cpp_named_character_escapes value.
        * g++.dg/cpp23/feat-cxx2b.C (__cpp_named_character_escapes): Expect
        202606L rather than 202207L.
        * g++.dg/cpp26/feat-cxx26.C (__cpp_named_character_escapes): Likewise.
libcpp/
        * makeuname2c.cc: Implement C++29 P3733R1 - More named universal
        character escapes as a DR.
        (read_table): Don't ignore figment and abbreviation aliases.
        * uname2c.h: Regenerate.

--- gcc/c-family/c-cppbuiltin.cc.jj     2026-06-08 21:35:37.748685829 +0200
+++ gcc/c-family/c-cppbuiltin.cc        2026-06-11 14:50:19.582956220 +0200
@@ -1099,7 +1099,7 @@ c_cpp_builtins (cpp_reader *pfile)
            cpp_define (pfile, "__cpp_constexpr=202211L");
          cpp_define (pfile, "__cpp_deduction_guides=202207L");
          cpp_define (pfile, "__cpp_multidimensional_subscript=202211L");
-         cpp_define (pfile, "__cpp_named_character_escapes=202207L");
+         cpp_define (pfile, "__cpp_named_character_escapes=202606L");
          cpp_define (pfile, "__cpp_static_call_operator=202207L");
          cpp_define (pfile, "__cpp_implicit_move=202207L");
          cpp_define (pfile, "__cpp_explicit_this_parameter=202110L");
--- gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-3.c.jj   
2026-03-27 10:17:15.174313768 +0100
+++ gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-3.c      
2026-06-11 15:18:11.104788931 +0200
@@ -14,5 +14,5 @@ const char32_t *c = U"\N{ I've just made
  const char32_t *d = U"\N{_________    _______}";    /* { dg-error "is not a valid 
universal character" } */
  const char32_t *e = U"\N{O.X}";                             /* { dg-error 
"'\\\\N\\{' not terminated with '\\}' after" } */
  const char32_t *f = U"\N{.}";                               /* { dg-error 
"'\\\\N\\{' not terminated with '\\}' after" } */
-const char32_t *g = U"\N{BOM}";                              /* { dg-error "is not 
a valid universal character" } */
-const char32_t *h = U"\N{ZWNBSP}";                   /* { dg-error "is not a valid 
universal character" } */
+const char32_t *g = U"\N{BOM}";
+const char32_t *h = U"\N{ZWNBSP}";
--- gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-8.c.jj   
2026-06-11 14:54:07.615925317 +0200
+++ gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-8.c      
2026-06-11 15:26:20.022365209 +0200
@@ -0,0 +1,388 @@
+/* P3733R1 - More named universal character escapes */
+/* { dg-do run } */
+/* { dg-require-effective-target wchar } */
+/* { dg-options "-std=gnu99 -Wno-c++-compat" { target c } } */
+/* { dg-options "-std=c++23" { target c++ } } */
+
+#ifndef __cplusplus
+#include <wchar.h>
+typedef __CHAR16_TYPE__ char16_t;
+typedef __CHAR32_TYPE__ char32_t;
+#endif
+
+#ifdef __cplusplus
+#if U'\u0080' != U'\N{PADDING CHARACTER}' \
+    || U'\u0081' != U'\N{HIGH OCTET PRESET}' \
+    || U'\u0099' != U'\N{SINGLE GRAPHIC CHARACTER INTRODUCER}' \
+    || U'\u0000' != U'\N{NUL}' \
+    || U'\u0001' != U'\N{SOH}' \
+    || U'\u0002' != U'\N{STX}' \
+    || U'\u0003' != U'\N{ETX}' \
+    || U'\u0004' != U'\N{EOT}' \
+    || U'\u0005' != U'\N{ENQ}' \
+    || U'\u0006' != U'\N{ACK}' \
+    || U'\u0007' != U'\N{BEL}' \
+    || U'\u0008' != U'\N{BS}' \
+    || U'\u0009' != U'\N{HT}' \
+    || U'\u0009' != U'\N{TAB}' \
+    || U'\u000A' != U'\N{LF}' \
+    || U'\u000A' != U'\N{NL}' \
+    || U'\u000A' != U'\N{EOL}' \
+    || U'\u000B' != U'\N{VT}' \
+    || U'\u000C' != U'\N{FF}' \
+    || U'\u000D' != U'\N{CR}' \
+    || U'\u000E' != U'\N{SO}' \
+    || U'\u000F' != U'\N{SI}' \
+    || U'\u0010' != U'\N{DLE}' \
+    || U'\u0011' != U'\N{DC1}' \
+    || U'\u0012' != U'\N{DC2}' \
+    || U'\u0013' != U'\N{DC3}' \
+    || U'\u0014' != U'\N{DC4}' \
+    || U'\u0015' != U'\N{NAK}' \
+    || U'\u0016' != U'\N{SYN}' \
+    || U'\u0017' != U'\N{ETB}' \
+    || U'\u0018' != U'\N{CAN}' \
+    || U'\u0019' != U'\N{EOM}' \
+    || U'\u0019' != U'\N{EM}' \
+    || U'\u001A' != U'\N{SUB}' \
+    || U'\u001B' != U'\N{ESC}' \
+    || U'\u001C' != U'\N{FS}' \
+    || U'\u001D' != U'\N{GS}' \
+    || U'\u001E' != U'\N{RS}' \
+    || U'\u001F' != U'\N{US}' \
+    || U'\u0020' != U'\N{SP}' \
+    || U'\u007F' != U'\N{DEL}' \
+    || U'\u0080' != U'\N{PAD}' \
+    || U'\u0081' != U'\N{HOP}' \
+    || U'\u0082' != U'\N{BPH}' \
+    || U'\u0083' != U'\N{NBH}' \
+    || U'\u0084' != U'\N{IND}' \
+    || U'\u0085' != U'\N{NEL}' \
+    || U'\u0086' != U'\N{SSA}' \
+    || U'\u0087' != U'\N{ESA}' \
+    || U'\u0088' != U'\N{HTS}' \
+    || U'\u0089' != U'\N{HTJ}' \
+    || U'\u008A' != U'\N{VTS}' \
+    || U'\u008B' != U'\N{PLD}' \
+    || U'\u008C' != U'\N{PLU}' \
+    || U'\u008D' != U'\N{RI}' \
+    || U'\u008E' != U'\N{SS2}' \
+    || U'\u008F' != U'\N{SS3}' \
+    || U'\u0090' != U'\N{DCS}' \
+    || U'\u0091' != U'\N{PU1}' \
+    || U'\u0092' != U'\N{PU2}' \
+    || U'\u0093' != U'\N{STS}' \
+    || U'\u0094' != U'\N{CCH}' \
+    || U'\u0095' != U'\N{MW}' \
+    || U'\u0096' != U'\N{SPA}' \
+    || U'\u0097' != U'\N{EPA}' \
+    || U'\u0098' != U'\N{SOS}' \
+    || U'\u0099' != U'\N{SGC}' \
+    || U'\u009A' != U'\N{SCI}' \
+    || U'\u009B' != U'\N{CSI}' \
+    || U'\u009C' != U'\N{ST}' \
+    || U'\u009D' != U'\N{OSC}' \
+    || U'\u009E' != U'\N{PM}' \
+    || U'\u009F' != U'\N{APC}' \
+    || U'\u00A0' != U'\N{NBSP}' \
+    || U'\u00AD' != U'\N{SHY}' \
+    || U'\u034F' != U'\N{CGJ}' \
+    || U'\u061C' != U'\N{ALM}' \
+    || U'\u180B' != U'\N{FVS1}' \
+    || U'\u180C' != U'\N{FVS2}' \
+    || U'\u180D' != U'\N{FVS3}' \
+    || U'\u180E' != U'\N{MVS}' \
+    || U'\u180F' != U'\N{FVS4}' \
+    || U'\u200B' != U'\N{ZWSP}' \
+    || U'\u200C' != U'\N{ZWNJ}' \
+    || U'\u200D' != U'\N{ZWJ}' \
+    || U'\u200E' != U'\N{LRM}' \
+    || U'\u200F' != U'\N{RLM}' \
+    || U'\u202A' != U'\N{LRE}' \
+    || U'\u202B' != U'\N{RLE}' \
+    || U'\u202C' != U'\N{PDF}' \
+    || U'\u202D' != U'\N{LRO}' \
+    || U'\u202E' != U'\N{RLO}' \
+    || U'\u202F' != U'\N{NNBSP}' \
+    || U'\u205F' != U'\N{MMSP}' \
+    || U'\u2060' != U'\N{WJ}' \
+    || U'\u2066' != U'\N{LRI}' \
+    || U'\u2067' != U'\N{RLI}' \
+    || U'\u2068' != U'\N{FSI}' \
+    || U'\u2069' != U'\N{PDI}' \
+    || U'\uFE00' != U'\N{VS1}' \
+    || U'\uFE01' != U'\N{VS2}' \
+    || U'\uFE02' != U'\N{VS3}' \
+    || U'\uFE03' != U'\N{VS4}' \
+    || U'\uFE04' != U'\N{VS5}' \
+    || U'\uFE05' != U'\N{VS6}' \
+    || U'\uFE06' != U'\N{VS7}' \
+    || U'\uFE07' != U'\N{VS8}' \
+    || U'\uFE08' != U'\N{VS9}' \
+    || U'\uFE09' != U'\N{VS10}' \
+    || U'\uFE0A' != U'\N{VS11}' \
+    || U'\uFE0B' != U'\N{VS12}' \
+    || U'\uFE0C' != U'\N{VS13}' \
+    || U'\uFE0D' != U'\N{VS14}' \
+    || U'\uFE0E' != U'\N{VS15}' \
+    || U'\uFE0F' != U'\N{VS16}' \
+    || U'\uFEFF' != U'\N{BOM}' \
+    || U'\uFEFF' != U'\N{ZWNBSP}' \
+    || U'\U0002FA1D' != U'\N{CJK COMPATIBILITY IDEOGRAPH-2FA1D}'
+    || U'\U000E0100' != U'\N{VS17}' \
+    || U'\U000E0101' != U'\N{VS18}' \
+    || U'\U000E0102' != U'\N{VS19}' \
+    || U'\U000E0103' != U'\N{VS20}' \
+    || U'\U000E0104' != U'\N{VS21}' \
+    || U'\U000E0105' != U'\N{VS22}' \
+    || U'\U000E0106' != U'\N{VS23}' \
+    || U'\U000E0107' != U'\N{VS24}' \
+    || U'\U000E0108' != U'\N{VS25}' \
+    || U'\U000E0109' != U'\N{VS26}' \
+    || U'\U000E010A' != U'\N{VS27}' \
+    || U'\U000E010B' != U'\N{VS28}' \
+    || U'\U000E010C' != U'\N{VS29}' \
+    || U'\U000E010D' != U'\N{VS30}' \
+    || U'\U000E010E' != U'\N{VS31}' \
+    || U'\U000E010F' != U'\N{VS32}' \
+    || U'\U000E0110' != U'\N{VS33}' \
+    || U'\U000E0111' != U'\N{VS34}' \
+    || U'\U000E0112' != U'\N{VS35}' \
+    || U'\U000E0113' != U'\N{VS36}' \
+    || U'\U000E0114' != U'\N{VS37}' \
+    || U'\U000E0115' != U'\N{VS38}' \
+    || U'\U000E0116' != U'\N{VS39}' \
+    || U'\U000E0117' != U'\N{VS40}' \
+    || U'\U000E0118' != U'\N{VS41}' \
+    || U'\U000E0119' != U'\N{VS42}' \
+    || U'\U000E011A' != U'\N{VS43}' \
+    || U'\U000E011B' != U'\N{VS44}' \
+    || U'\U000E011C' != U'\N{VS45}' \
+    || U'\U000E011D' != U'\N{VS46}' \
+    || U'\U000E011E' != U'\N{VS47}' \
+    || U'\U000E011F' != U'\N{VS48}' \
+    || U'\U000E0120' != U'\N{VS49}' \
+    || U'\U000E0121' != U'\N{VS50}' \
+    || U'\U000E0122' != U'\N{VS51}' \
+    || U'\U000E0123' != U'\N{VS52}' \
+    || U'\U000E0124' != U'\N{VS53}' \
+    || U'\U000E0125' != U'\N{VS54}' \
+    || U'\U000E0126' != U'\N{VS55}' \
+    || U'\U000E0127' != U'\N{VS56}' \
+    || U'\U000E0128' != U'\N{VS57}' \
+    || U'\U000E0129' != U'\N{VS58}' \
+    || U'\U000E012A' != U'\N{VS59}' \
+    || U'\U000E012B' != U'\N{VS60}' \
+    || U'\U000E012C' != U'\N{VS61}' \
+    || U'\U000E012D' != U'\N{VS62}' \
+    || U'\U000E012E' != U'\N{VS63}' \
+    || U'\U000E012F' != U'\N{VS64}' \
+    || U'\U000E0130' != U'\N{VS65}' \
+    || U'\U000E0131' != U'\N{VS66}' \
+    || U'\U000E0132' != U'\N{VS67}' \
+    || U'\U000E0133' != U'\N{VS68}' \
+    || U'\U000E0134' != U'\N{VS69}' \
+    || U'\U000E0135' != U'\N{VS70}' \
+    || U'\U000E0136' != U'\N{VS71}' \
+    || U'\U000E0137' != U'\N{VS72}' \
+    || U'\U000E0138' != U'\N{VS73}' \
+    || U'\U000E0139' != U'\N{VS74}' \
+    || U'\U000E013A' != U'\N{VS75}' \
+    || U'\U000E013B' != U'\N{VS76}' \
+    || U'\U000E013C' != U'\N{VS77}' \
+    || U'\U000E013D' != U'\N{VS78}' \
+    || U'\U000E013E' != U'\N{VS79}' \
+    || U'\U000E013F' != U'\N{VS80}' \
+    || U'\U000E0140' != U'\N{VS81}' \
+    || U'\U000E0141' != U'\N{VS82}' \
+    || U'\U000E0142' != U'\N{VS83}' \
+    || U'\U000E0143' != U'\N{VS84}' \
+    || U'\U000E0144' != U'\N{VS85}' \
+    || U'\U000E0145' != U'\N{VS86}' \
+    || U'\U000E0146' != U'\N{VS87}' \
+    || U'\U000E0147' != U'\N{VS88}' \
+    || U'\U000E0148' != U'\N{VS89}' \
+    || U'\U000E0149' != U'\N{VS90}' \
+    || U'\U000E014A' != U'\N{VS91}' \
+    || U'\U000E014B' != U'\N{VS92}' \
+    || U'\U000E014C' != U'\N{VS93}' \
+    || U'\U000E014D' != U'\N{VS94}' \
+    || U'\U000E014E' != U'\N{VS95}' \
+    || U'\U000E014F' != U'\N{VS96}' \
+    || U'\U000E0150' != U'\N{VS97}' \
+    || U'\U000E0151' != U'\N{VS98}' \
+    || U'\U000E0152' != U'\N{VS99}' \
+    || U'\U000E0153' != U'\N{VS100}' \
+    || U'\U000E0154' != U'\N{VS101}' \
+    || U'\U000E0155' != U'\N{VS102}' \
+    || U'\U000E0156' != U'\N{VS103}' \
+    || U'\U000E0157' != U'\N{VS104}' \
+    || U'\U000E0158' != U'\N{VS105}' \
+    || U'\U000E0159' != U'\N{VS106}' \
+    || U'\U000E015A' != U'\N{VS107}' \
+    || U'\U000E015B' != U'\N{VS108}' \
+    || U'\U000E015C' != U'\N{VS109}' \
+    || U'\U000E015D' != U'\N{VS110}' \
+    || U'\U000E015E' != U'\N{VS111}' \
+    || U'\U000E015F' != U'\N{VS112}' \
+    || U'\U000E0160' != U'\N{VS113}' \
+    || U'\U000E0161' != U'\N{VS114}' \
+    || U'\U000E0162' != U'\N{VS115}' \
+    || U'\U000E0163' != U'\N{VS116}' \
+    || U'\U000E0164' != U'\N{VS117}' \
+    || U'\U000E0165' != U'\N{VS118}' \
+    || U'\U000E0166' != U'\N{VS119}' \
+    || U'\U000E0167' != U'\N{VS120}' \
+    || U'\U000E0168' != U'\N{VS121}' \
+    || U'\U000E0169' != U'\N{VS122}' \
+    || U'\U000E016A' != U'\N{VS123}' \
+    || U'\U000E016B' != U'\N{VS124}' \
+    || U'\U000E016C' != U'\N{VS125}' \
+    || U'\U000E016D' != U'\N{VS126}' \
+    || U'\U000E016E' != U'\N{VS127}' \
+    || U'\U000E016F' != U'\N{VS128}' \
+    || U'\U000E0170' != U'\N{VS129}' \
+    || U'\U000E0171' != U'\N{VS130}' \
+    || U'\U000E0172' != U'\N{VS131}' \
+    || U'\U000E0173' != U'\N{VS132}' \
+    || U'\U000E0174' != U'\N{VS133}' \
+    || U'\U000E0175' != U'\N{VS134}' \
+    || U'\U000E0176' != U'\N{VS135}' \
+    || U'\U000E0177' != U'\N{VS136}' \
+    || U'\U000E0178' != U'\N{VS137}' \
+    || U'\U000E0179' != U'\N{VS138}' \
+    || U'\U000E017A' != U'\N{VS139}' \
+    || U'\U000E017B' != U'\N{VS140}' \
+    || U'\U000E017C' != U'\N{VS141}' \
+    || U'\U000E017D' != U'\N{VS142}' \
+    || U'\U000E017E' != U'\N{VS143}' \
+    || U'\U000E017F' != U'\N{VS144}' \
+    || U'\U000E0180' != U'\N{VS145}' \
+    || U'\U000E0181' != U'\N{VS146}' \
+    || U'\U000E0182' != U'\N{VS147}' \
+    || U'\U000E0183' != U'\N{VS148}' \
+    || U'\U000E0184' != U'\N{VS149}' \
+    || U'\U000E0185' != U'\N{VS150}' \
+    || U'\U000E0186' != U'\N{VS151}' \
+    || U'\U000E0187' != U'\N{VS152}' \
+    || U'\U000E0188' != U'\N{VS153}' \
+    || U'\U000E0189' != U'\N{VS154}' \
+    || U'\U000E018A' != U'\N{VS155}' \
+    || U'\U000E018B' != U'\N{VS156}' \
+    || U'\U000E018C' != U'\N{VS157}' \
+    || U'\U000E018D' != U'\N{VS158}' \
+    || U'\U000E018E' != U'\N{VS159}' \
+    || U'\U000E018F' != U'\N{VS160}' \
+    || U'\U000E0190' != U'\N{VS161}' \
+    || U'\U000E0191' != U'\N{VS162}' \
+    || U'\U000E0192' != U'\N{VS163}' \
+    || U'\U000E0193' != U'\N{VS164}' \
+    || U'\U000E0194' != U'\N{VS165}' \
+    || U'\U000E0195' != U'\N{VS166}' \
+    || U'\U000E0196' != U'\N{VS167}' \
+    || U'\U000E0197' != U'\N{VS168}' \
+    || U'\U000E0198' != U'\N{VS169}' \
+    || U'\U000E0199' != U'\N{VS170}' \
+    || U'\U000E019A' != U'\N{VS171}' \
+    || U'\U000E019B' != U'\N{VS172}' \
+    || U'\U000E019C' != U'\N{VS173}' \
+    || U'\U000E019D' != U'\N{VS174}' \
+    || U'\U000E019E' != U'\N{VS175}' \
+    || U'\U000E019F' != U'\N{VS176}' \
+    || U'\U000E01A0' != U'\N{VS177}' \
+    || U'\U000E01A1' != U'\N{VS178}' \
+    || U'\U000E01A2' != U'\N{VS179}' \
+    || U'\U000E01A3' != U'\N{VS180}' \
+    || U'\U000E01A4' != U'\N{VS181}' \
+    || U'\U000E01A5' != U'\N{VS182}' \
+    || U'\U000E01A6' != U'\N{VS183}' \
+    || U'\U000E01A7' != U'\N{VS184}' \
+    || U'\U000E01A8' != U'\N{VS185}' \
+    || U'\U000E01A9' != U'\N{VS186}' \
+    || U'\U000E01AA' != U'\N{VS187}' \
+    || U'\U000E01AB' != U'\N{VS188}' \
+    || U'\U000E01AC' != U'\N{VS189}' \
+    || U'\U000E01AD' != U'\N{VS190}' \
+    || U'\U000E01AE' != U'\N{VS191}' \
+    || U'\U000E01AF' != U'\N{VS192}' \
+    || U'\U000E01B0' != U'\N{VS193}' \
+    || U'\U000E01B1' != U'\N{VS194}' \
+    || U'\U000E01B2' != U'\N{VS195}' \
+    || U'\U000E01B3' != U'\N{VS196}' \
+    || U'\U000E01B4' != U'\N{VS197}' \
+    || U'\U000E01B5' != U'\N{VS198}' \
+    || U'\U000E01B6' != U'\N{VS199}' \
+    || U'\U000E01B7' != U'\N{VS200}' \
+    || U'\U000E01B8' != U'\N{VS201}' \
+    || U'\U000E01B9' != U'\N{VS202}' \
+    || U'\U000E01BA' != U'\N{VS203}' \
+    || U'\U000E01BB' != U'\N{VS204}' \
+    || U'\U000E01BC' != U'\N{VS205}' \
+    || U'\U000E01BD' != U'\N{VS206}' \
+    || U'\U000E01BE' != U'\N{VS207}' \
+    || U'\U000E01BF' != U'\N{VS208}' \
+    || U'\U000E01C0' != U'\N{VS209}' \
+    || U'\U000E01C1' != U'\N{VS210}' \
+    || U'\U000E01C2' != U'\N{VS211}' \
+    || U'\U000E01C3' != U'\N{VS212}' \
+    || U'\U000E01C4' != U'\N{VS213}' \
+    || U'\U000E01C5' != U'\N{VS214}' \
+    || U'\U000E01C6' != U'\N{VS215}' \
+    || U'\U000E01C7' != U'\N{VS216}' \
+    || U'\U000E01C8' != U'\N{VS217}' \
+    || U'\U000E01C9' != U'\N{VS218}' \
+    || U'\U000E01CA' != U'\N{VS219}' \
+    || U'\U000E01CB' != U'\N{VS220}' \
+    || U'\U000E01CC' != U'\N{VS221}' \
+    || U'\U000E01CD' != U'\N{VS222}' \
+    || U'\U000E01CE' != U'\N{VS223}' \
+    || U'\U000E01CF' != U'\N{VS224}' \
+    || U'\U000E01D0' != U'\N{VS225}' \
+    || U'\U000E01D1' != U'\N{VS226}' \
+    || U'\U000E01D2' != U'\N{VS227}' \
+    || U'\U000E01D3' != U'\N{VS228}' \
+    || U'\U000E01D4' != U'\N{VS229}' \
+    || U'\U000E01D5' != U'\N{VS230}' \
+    || U'\U000E01D6' != U'\N{VS231}' \
+    || U'\U000E01D7' != U'\N{VS232}' \
+    || U'\U000E01D8' != U'\N{VS233}' \
+    || U'\U000E01D9' != U'\N{VS234}' \
+    || U'\U000E01DA' != U'\N{VS235}' \
+    || U'\U000E01DB' != U'\N{VS236}' \
+    || U'\U000E01DC' != U'\N{VS237}' \
+    || U'\U000E01DD' != U'\N{VS238}' \
+    || U'\U000E01DE' != U'\N{VS239}' \
+    || U'\U000E01DF' != U'\N{VS240}' \
+    || U'\U000E01E0' != U'\N{VS241}' \
+    || U'\U000E01E1' != U'\N{VS242}' \
+    || U'\U000E01E2' != U'\N{VS243}' \
+    || U'\U000E01E3' != U'\N{VS244}' \
+    || U'\U000E01E4' != U'\N{VS245}' \
+    || U'\U000E01E5' != U'\N{VS246}' \
+    || U'\U000E01E6' != U'\N{VS247}' \
+    || U'\U000E01E7' != U'\N{VS248}' \
+    || U'\U000E01E8' != U'\N{VS249}' \
+    || U'\U000E01E9' != U'\N{VS250}' \
+    || U'\U000E01EA' != U'\N{VS251}' \
+    || U'\U000E01EB' != U'\N{VS252}' \
+    || U'\U000E01EC' != U'\N{VS253}' \
+    || U'\U000E01ED' != U'\N{VS254}' \
+    || U'\U000E01EE' != U'\N{VS255}' \
+    || U'\U000E01EF' != U'\N{VS256}'
+#error Bad
+#endif
+#endif
+
+const char32_t *a = U"\N{PADDING CHARACTER}\N{HIGH OCTET PRESET}\N{SINGLE GRAPHIC 
CHARACTER INTRODUCER}";
+const char32_t *b = 
U"\N{BEL}\N{NL}\N{CGJ}\N{ZWNJ}\N{VS4}\N{ZWNBSP}\N{BOM}\N{VS46}\N{NUL}";
+
+int
+main ()
+{
+  if (a[0] != U'\u0080' || a[1] != U'\u0081' || a[2] != U'\u0099' || a[3]
+      || b[0] != U'\u0007' || b[1] != U'\u000A' || b[2] != U'\u034F' || b[3] 
!= U'\u200C'
+      || b[4] != U'\uFE03' || b[5] != U'\uFEFF' || b[6] != U'\uFEFF' || b[7] 
!= U'\U000E011D'
+      || b[8] || b[9])
+    __builtin_abort ();
+  return 0;
+}
--- gcc/testsuite/g++.dg/DRs/dr2581-2.C.jj      2026-05-22 10:15:30.255057573 
+0200
+++ gcc/testsuite/g++.dg/DRs/dr2581-2.C 2026-06-11 14:51:17.881181353 +0200
@@ -73,7 +73,7 @@
  #define __cpp_lambdas 200907L                 // { dg-error "'__cpp_lambdas' redefined" 
"" { target c++20 } }
  #define __cpp_modules 201907L                 // { dg-error "'__cpp_modules' redefined" 
"" { target c++20 } }
  #define __cpp_multidimensional_subscript 202211L // { dg-error 
"'__cpp_multidimensional_subscript' redefined" "" { target c++23 } }
-#define __cpp_named_character_escapes 202207L  // { dg-error "'__cpp_named_character_escapes' 
redefined" "" { target c++23 } }
+#define __cpp_named_character_escapes 202606L  // { dg-error "'__cpp_named_character_escapes' 
redefined" "" { target c++23 } }
  #define __cpp_namespace_attributes 201411L    // { dg-error "'__cpp_namespace_attributes' 
redefined" "" { target c++20 } }
  #define __cpp_noexcept_function_type 201510L  // { dg-error "'__cpp_noexcept_function_type' 
redefined" "" { target c++20 } }
  #define __cpp_nontype_template_args 201911L   // { dg-error "'__cpp_nontype_template_args' 
redefined" "" { target c++17 } }
--- gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C.jj  2026-03-27 10:17:15.643306115 
+0100
+++ gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C     2026-06-11 14:51:41.366869194 
+0200
@@ -563,8 +563,8 @@
#ifndef __cpp_named_character_escapes
  #  error "__cpp_named_character_escapes"
-#elif __cpp_named_character_escapes != 202207
-#  error "__cpp_named_character_escapes != 202207"
+#elif __cpp_named_character_escapes != 202606
+#  error "__cpp_named_character_escapes != 202606"
  #endif
#ifndef __cpp_static_call_operator
--- gcc/testsuite/g++.dg/cpp26/feat-cxx26.C.jj  2026-05-26 16:32:28.632304475 
+0200
+++ gcc/testsuite/g++.dg/cpp26/feat-cxx26.C     2026-06-11 14:52:01.595600324 
+0200
@@ -563,8 +563,8 @@
#ifndef __cpp_named_character_escapes
  #  error "__cpp_named_character_escapes"
-#elif __cpp_named_character_escapes != 202207
-#  error "__cpp_named_character_escapes != 202207"
+#elif __cpp_named_character_escapes != 202606
+#  error "__cpp_named_character_escapes != 202606"
  #endif
#ifndef __cpp_static_call_operator
--- libcpp/makeuname2c.cc.jj    2026-03-27 10:17:21.571209381 +0100
+++ libcpp/makeuname2c.cc       2026-06-11 14:37:46.896960517 +0200
@@ -220,14 +220,7 @@ read_table (char *fname, bool aliases_p)
aname = NULL;
        if (aliases_p)
-       {
-         /* Ignore figment and abbreviation aliases.  */
-         if (strcmp (l + 1, "correction\n") != 0
-             && strcmp (l + 1, "control\n") != 0
-             && strcmp (l + 1, "alternate\n") != 0)
-           continue;
-         i = ARRAY_SIZE (generated_ranges);
-       }
+       i = ARRAY_SIZE (generated_ranges);
        else
        {
          for (i = 0; i < ARRAY_SIZE (generated_ranges); ++i)

        Jakub


Reply via email to