[committed] preprocessor: Adjust C rules on UCNs for C23 [PR117162]

Message ID f03a4617-ed75-42b0-07bf-ed7e416e1f41@redhat.com
State New
Headers
Series [committed] preprocessor: Adjust C rules on UCNs for C23 [PR117162] |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-arm fail Patch failed to apply
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 fail Patch failed to apply

Commit Message

Joseph Myers Dec. 3, 2024, 1:03 p.m. UTC
  As noted in bug 117162, C23 changed some rules on UCNs to match C++
(this was a late change agreed in the resolution to CD2 comment
US-032, implementing changes from N3124), which we need to implement.

Allow UCNs below 0xa0 outside identifiers for C, with a
pedwarn-if-pedantic before C23 (and a warning with -Wc11-c23-compat)
except for the always-allowed cases of UCNs for $ @ `.  Also as part
of that change, do not allow \u0024 in identifiers as equivalent to $
for C23.

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

	PR c/117162

libcpp/
	* include/cpplib.h (struct cpp_options): Add low_ucns.
	* init.cc (struct lang_flags, lang_defaults): Add low_ucns.
	(cpp_set_lang): Set low_ucns
	* charset.cc (_cpp_valid_ucn): For C, allow UCNs below 0xa0
	outside identifiers, with a pedwarn if pedantic before C23 or a
	warning with -Wc11-c23-compat.  Do not allow \u0024 in identifiers
	for C23.

gcc/testsuite/
	* gcc.dg/cpp/c17-ucn-1.c, gcc.dg/cpp/c17-ucn-2.c,
	gcc.dg/cpp/c17-ucn-3.c, gcc.dg/cpp/c17-ucn-4.c,
	gcc.dg/cpp/c23-ucn-2.c, gcc.dg/cpp/c23-ucnid-2.c: New tests.
	* c-c++-common/cpp/delimited-escape-seq-3.c,
	c-c++-common/cpp/named-universal-char-escape-3.c,
	gcc.dg/cpp/c23-ucn-1.c, gcc.dg/cpp/c2y-delimited-escape-seq-3.c:
	Update expected messages
	* gcc.dg/cpp/ucs.c: Use -pedantic-errors.  Update expected
	messages.
  

Patch

diff --git a/gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-3.c b/gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-3.c
index ef9e5b57ff6b..dbb82a82557d 100644
--- a/gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-3.c
+++ b/gcc/testsuite/c-c++-common/cpp/delimited-escape-seq-3.c
@@ -9,7 +9,6 @@  typedef __CHAR32_TYPE__ char32_t;
 #endif
 
 const char32_t *a = U"\u{}";				/* { dg-error "empty delimited escape sequence" } */
-							/* { dg-error "is not a valid universal character" "" { target c } .-1 } */
 const char32_t *b = U"\u{12" "34}";			/* { dg-error "'\\\\u\\{' not terminated with '\\}' after" } */
 const char32_t *c = U"\u{0000ffffffff}";		/* { dg-error "is not a valid universal character" } */
 const char32_t *d = U"\u{010000edcb}";			/* { dg-error "is not a valid universal character" } */
diff --git a/gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-3.c b/gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-3.c
index 5985c0376ddf..39c806246c06 100644
--- a/gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-3.c
+++ b/gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-3.c
@@ -10,13 +10,9 @@  typedef __CHAR32_TYPE__ char32_t;
 
 const char32_t *a = U"\N{}";				/* { dg-error "empty named universal character escape sequence" } */
 const char32_t *b = U"\N{NU" "LL}";			/* { dg-error "'\\\\N\\{' not terminated with '\\}' after" } */
-							/* { dg-error "is not a valid universal character" "" { target c } .-1 } */
 const char32_t *c = U"\N{ I've just made it up }";	/* { dg-error "'\\\\N\\{' not terminated with '\\}' after" } */
-							/* { dg-error "is not a valid universal character" "" { target c } .-1 } */
 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" } */
-							/* { dg-error "is not a valid universal character" "" { target c } .-1 } */
 const char32_t *f = U"\N{.}";				/* { dg-error "'\\\\N\\{' not terminated with '\\}' after" } */
-							/* { dg-error "is not a valid universal character" "" { target c } .-1 } */
 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" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/c17-ucn-1.c b/gcc/testsuite/gcc.dg/cpp/c17-ucn-1.c
new file mode 100644
index 000000000000..0711b9ee9b03
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/c17-ucn-1.c
@@ -0,0 +1,998 @@ 
+/* Test characters not permitted in UCNs in C17.  */
+/* { dg-do compile } */
+/* { dg-options "-std=c17 -pedantic-errors" } */
+
+#if U'\u0000' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu0 = U"\u0000"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000000' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU0 = U"\U00000000"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0001' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu1 = U"\u0001"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000001' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU1 = U"\U00000001"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0002' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu2 = U"\u0002"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000002' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU2 = U"\U00000002"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0003' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu3 = U"\u0003"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000003' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU3 = U"\U00000003"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0004' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu4 = U"\u0004"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000004' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU4 = U"\U00000004"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0005' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu5 = U"\u0005"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000005' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU5 = U"\U00000005"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0006' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu6 = U"\u0006"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000006' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU6 = U"\U00000006"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0007' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu7 = U"\u0007"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000007' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU7 = U"\U00000007"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0008' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu8 = U"\u0008"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000008' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU8 = U"\U00000008"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0009' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu9 = U"\u0009"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000009' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU9 = U"\U00000009"; /* { dg-error "is not a valid universal character" } */
+#if U'\u000a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu10 = U"\u000a"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000000a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU10 = U"\U0000000a"; /* { dg-error "is not a valid universal character" } */
+#if U'\u000b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu11 = U"\u000b"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000000b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU11 = U"\U0000000b"; /* { dg-error "is not a valid universal character" } */
+#if U'\u000c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu12 = U"\u000c"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000000c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU12 = U"\U0000000c"; /* { dg-error "is not a valid universal character" } */
+#if U'\u000d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu13 = U"\u000d"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000000d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU13 = U"\U0000000d"; /* { dg-error "is not a valid universal character" } */
+#if U'\u000e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu14 = U"\u000e"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000000e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU14 = U"\U0000000e"; /* { dg-error "is not a valid universal character" } */
+#if U'\u000f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu15 = U"\u000f"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000000f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU15 = U"\U0000000f"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0010' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu16 = U"\u0010"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000010' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU16 = U"\U00000010"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0011' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu17 = U"\u0011"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000011' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU17 = U"\U00000011"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0012' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu18 = U"\u0012"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000012' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU18 = U"\U00000012"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0013' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu19 = U"\u0013"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000013' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU19 = U"\U00000013"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0014' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu20 = U"\u0014"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000014' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU20 = U"\U00000014"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0015' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu21 = U"\u0015"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000015' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU21 = U"\U00000015"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0016' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu22 = U"\u0016"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000016' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU22 = U"\U00000016"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0017' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu23 = U"\u0017"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000017' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU23 = U"\U00000017"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0018' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu24 = U"\u0018"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000018' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU24 = U"\U00000018"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0019' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu25 = U"\u0019"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000019' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU25 = U"\U00000019"; /* { dg-error "is not a valid universal character" } */
+#if U'\u001a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu26 = U"\u001a"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000001a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU26 = U"\U0000001a"; /* { dg-error "is not a valid universal character" } */
+#if U'\u001b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu27 = U"\u001b"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000001b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU27 = U"\U0000001b"; /* { dg-error "is not a valid universal character" } */
+#if U'\u001c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu28 = U"\u001c"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000001c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU28 = U"\U0000001c"; /* { dg-error "is not a valid universal character" } */
+#if U'\u001d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu29 = U"\u001d"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000001d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU29 = U"\U0000001d"; /* { dg-error "is not a valid universal character" } */
+#if U'\u001e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu30 = U"\u001e"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000001e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU30 = U"\U0000001e"; /* { dg-error "is not a valid universal character" } */
+#if U'\u001f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu31 = U"\u001f"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000001f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU31 = U"\U0000001f"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0020' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu32 = U"\u0020"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000020' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU32 = U"\U00000020"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0021' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu33 = U"\u0021"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000021' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU33 = U"\U00000021"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0022' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu34 = U"\u0022"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000022' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU34 = U"\U00000022"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0023' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu35 = U"\u0023"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000023' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU35 = U"\U00000023"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0024'
+#endif
+void *tu36 = U"\u0024";
+#if U'\U00000024'
+#endif
+void *tU36 = U"\U00000024";
+#if U'\u0025' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu37 = U"\u0025"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000025' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU37 = U"\U00000025"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0026' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu38 = U"\u0026"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000026' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU38 = U"\U00000026"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0027' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu39 = U"\u0027"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000027' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU39 = U"\U00000027"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0028' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu40 = U"\u0028"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000028' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU40 = U"\U00000028"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0029' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu41 = U"\u0029"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000029' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU41 = U"\U00000029"; /* { dg-error "is not a valid universal character" } */
+#if U'\u002a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu42 = U"\u002a"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000002a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU42 = U"\U0000002a"; /* { dg-error "is not a valid universal character" } */
+#if U'\u002b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu43 = U"\u002b"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000002b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU43 = U"\U0000002b"; /* { dg-error "is not a valid universal character" } */
+#if U'\u002c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu44 = U"\u002c"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000002c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU44 = U"\U0000002c"; /* { dg-error "is not a valid universal character" } */
+#if U'\u002d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu45 = U"\u002d"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000002d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU45 = U"\U0000002d"; /* { dg-error "is not a valid universal character" } */
+#if U'\u002e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu46 = U"\u002e"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000002e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU46 = U"\U0000002e"; /* { dg-error "is not a valid universal character" } */
+#if U'\u002f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu47 = U"\u002f"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000002f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU47 = U"\U0000002f"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0030' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu48 = U"\u0030"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000030' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU48 = U"\U00000030"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0031' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu49 = U"\u0031"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000031' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU49 = U"\U00000031"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0032' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu50 = U"\u0032"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000032' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU50 = U"\U00000032"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0033' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu51 = U"\u0033"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000033' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU51 = U"\U00000033"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0034' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu52 = U"\u0034"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000034' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU52 = U"\U00000034"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0035' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu53 = U"\u0035"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000035' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU53 = U"\U00000035"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0036' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu54 = U"\u0036"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000036' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU54 = U"\U00000036"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0037' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu55 = U"\u0037"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000037' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU55 = U"\U00000037"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0038' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu56 = U"\u0038"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000038' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU56 = U"\U00000038"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0039' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu57 = U"\u0039"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000039' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU57 = U"\U00000039"; /* { dg-error "is not a valid universal character" } */
+#if U'\u003a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu58 = U"\u003a"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000003a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU58 = U"\U0000003a"; /* { dg-error "is not a valid universal character" } */
+#if U'\u003b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu59 = U"\u003b"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000003b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU59 = U"\U0000003b"; /* { dg-error "is not a valid universal character" } */
+#if U'\u003c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu60 = U"\u003c"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000003c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU60 = U"\U0000003c"; /* { dg-error "is not a valid universal character" } */
+#if U'\u003d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu61 = U"\u003d"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000003d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU61 = U"\U0000003d"; /* { dg-error "is not a valid universal character" } */
+#if U'\u003e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu62 = U"\u003e"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000003e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU62 = U"\U0000003e"; /* { dg-error "is not a valid universal character" } */
+#if U'\u003f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu63 = U"\u003f"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000003f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU63 = U"\U0000003f"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0040'
+#endif
+void *tu64 = U"\u0040";
+#if U'\U00000040'
+#endif
+void *tU64 = U"\U00000040";
+#if U'\u0041' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu65 = U"\u0041"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000041' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU65 = U"\U00000041"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0042' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu66 = U"\u0042"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000042' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU66 = U"\U00000042"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0043' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu67 = U"\u0043"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000043' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU67 = U"\U00000043"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0044' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu68 = U"\u0044"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000044' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU68 = U"\U00000044"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0045' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu69 = U"\u0045"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000045' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU69 = U"\U00000045"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0046' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu70 = U"\u0046"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000046' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU70 = U"\U00000046"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0047' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu71 = U"\u0047"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000047' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU71 = U"\U00000047"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0048' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu72 = U"\u0048"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000048' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU72 = U"\U00000048"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0049' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu73 = U"\u0049"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000049' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU73 = U"\U00000049"; /* { dg-error "is not a valid universal character" } */
+#if U'\u004a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu74 = U"\u004a"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000004a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU74 = U"\U0000004a"; /* { dg-error "is not a valid universal character" } */
+#if U'\u004b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu75 = U"\u004b"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000004b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU75 = U"\U0000004b"; /* { dg-error "is not a valid universal character" } */
+#if U'\u004c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu76 = U"\u004c"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000004c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU76 = U"\U0000004c"; /* { dg-error "is not a valid universal character" } */
+#if U'\u004d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu77 = U"\u004d"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000004d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU77 = U"\U0000004d"; /* { dg-error "is not a valid universal character" } */
+#if U'\u004e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu78 = U"\u004e"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000004e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU78 = U"\U0000004e"; /* { dg-error "is not a valid universal character" } */
+#if U'\u004f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu79 = U"\u004f"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000004f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU79 = U"\U0000004f"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0050' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu80 = U"\u0050"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000050' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU80 = U"\U00000050"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0051' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu81 = U"\u0051"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000051' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU81 = U"\U00000051"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0052' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu82 = U"\u0052"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000052' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU82 = U"\U00000052"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0053' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu83 = U"\u0053"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000053' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU83 = U"\U00000053"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0054' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu84 = U"\u0054"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000054' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU84 = U"\U00000054"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0055' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu85 = U"\u0055"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000055' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU85 = U"\U00000055"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0056' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu86 = U"\u0056"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000056' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU86 = U"\U00000056"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0057' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu87 = U"\u0057"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000057' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU87 = U"\U00000057"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0058' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu88 = U"\u0058"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000058' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU88 = U"\U00000058"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0059' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu89 = U"\u0059"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000059' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU89 = U"\U00000059"; /* { dg-error "is not a valid universal character" } */
+#if U'\u005a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu90 = U"\u005a"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000005a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU90 = U"\U0000005a"; /* { dg-error "is not a valid universal character" } */
+#if U'\u005b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu91 = U"\u005b"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000005b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU91 = U"\U0000005b"; /* { dg-error "is not a valid universal character" } */
+#if U'\u005c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu92 = U"\u005c"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000005c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU92 = U"\U0000005c"; /* { dg-error "is not a valid universal character" } */
+#if U'\u005d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu93 = U"\u005d"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000005d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU93 = U"\U0000005d"; /* { dg-error "is not a valid universal character" } */
+#if U'\u005e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu94 = U"\u005e"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000005e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU94 = U"\U0000005e"; /* { dg-error "is not a valid universal character" } */
+#if U'\u005f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu95 = U"\u005f"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000005f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU95 = U"\U0000005f"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0060'
+#endif
+void *tu96 = U"\u0060";
+#if U'\U00000060'
+#endif
+void *tU96 = U"\U00000060";
+#if U'\u0061' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu97 = U"\u0061"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000061' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU97 = U"\U00000061"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0062' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu98 = U"\u0062"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000062' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU98 = U"\U00000062"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0063' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu99 = U"\u0063"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000063' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU99 = U"\U00000063"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0064' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu100 = U"\u0064"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000064' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU100 = U"\U00000064"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0065' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu101 = U"\u0065"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000065' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU101 = U"\U00000065"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0066' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu102 = U"\u0066"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000066' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU102 = U"\U00000066"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0067' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu103 = U"\u0067"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000067' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU103 = U"\U00000067"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0068' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu104 = U"\u0068"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000068' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU104 = U"\U00000068"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0069' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu105 = U"\u0069"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000069' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU105 = U"\U00000069"; /* { dg-error "is not a valid universal character" } */
+#if U'\u006a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu106 = U"\u006a"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000006a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU106 = U"\U0000006a"; /* { dg-error "is not a valid universal character" } */
+#if U'\u006b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu107 = U"\u006b"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000006b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU107 = U"\U0000006b"; /* { dg-error "is not a valid universal character" } */
+#if U'\u006c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu108 = U"\u006c"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000006c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU108 = U"\U0000006c"; /* { dg-error "is not a valid universal character" } */
+#if U'\u006d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu109 = U"\u006d"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000006d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU109 = U"\U0000006d"; /* { dg-error "is not a valid universal character" } */
+#if U'\u006e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu110 = U"\u006e"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000006e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU110 = U"\U0000006e"; /* { dg-error "is not a valid universal character" } */
+#if U'\u006f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu111 = U"\u006f"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000006f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU111 = U"\U0000006f"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0070' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu112 = U"\u0070"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000070' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU112 = U"\U00000070"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0071' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu113 = U"\u0071"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000071' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU113 = U"\U00000071"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0072' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu114 = U"\u0072"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000072' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU114 = U"\U00000072"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0073' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu115 = U"\u0073"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000073' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU115 = U"\U00000073"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0074' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu116 = U"\u0074"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000074' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU116 = U"\U00000074"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0075' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu117 = U"\u0075"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000075' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU117 = U"\U00000075"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0076' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu118 = U"\u0076"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000076' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU118 = U"\U00000076"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0077' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu119 = U"\u0077"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000077' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU119 = U"\U00000077"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0078' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu120 = U"\u0078"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000078' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU120 = U"\U00000078"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0079' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu121 = U"\u0079"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000079' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU121 = U"\U00000079"; /* { dg-error "is not a valid universal character" } */
+#if U'\u007a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu122 = U"\u007a"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000007a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU122 = U"\U0000007a"; /* { dg-error "is not a valid universal character" } */
+#if U'\u007b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu123 = U"\u007b"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000007b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU123 = U"\U0000007b"; /* { dg-error "is not a valid universal character" } */
+#if U'\u007c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu124 = U"\u007c"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000007c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU124 = U"\U0000007c"; /* { dg-error "is not a valid universal character" } */
+#if U'\u007d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu125 = U"\u007d"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000007d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU125 = U"\U0000007d"; /* { dg-error "is not a valid universal character" } */
+#if U'\u007e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu126 = U"\u007e"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000007e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU126 = U"\U0000007e"; /* { dg-error "is not a valid universal character" } */
+#if U'\u007f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu127 = U"\u007f"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000007f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU127 = U"\U0000007f"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0080' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu128 = U"\u0080"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000080' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU128 = U"\U00000080"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0081' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu129 = U"\u0081"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000081' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU129 = U"\U00000081"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0082' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu130 = U"\u0082"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000082' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU130 = U"\U00000082"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0083' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu131 = U"\u0083"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000083' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU131 = U"\U00000083"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0084' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu132 = U"\u0084"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000084' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU132 = U"\U00000084"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0085' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu133 = U"\u0085"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000085' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU133 = U"\U00000085"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0086' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu134 = U"\u0086"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000086' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU134 = U"\U00000086"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0087' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu135 = U"\u0087"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000087' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU135 = U"\U00000087"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0088' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu136 = U"\u0088"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000088' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU136 = U"\U00000088"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0089' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu137 = U"\u0089"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000089' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU137 = U"\U00000089"; /* { dg-error "is not a valid universal character" } */
+#if U'\u008a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu138 = U"\u008a"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000008a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU138 = U"\U0000008a"; /* { dg-error "is not a valid universal character" } */
+#if U'\u008b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu139 = U"\u008b"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000008b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU139 = U"\U0000008b"; /* { dg-error "is not a valid universal character" } */
+#if U'\u008c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu140 = U"\u008c"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000008c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU140 = U"\U0000008c"; /* { dg-error "is not a valid universal character" } */
+#if U'\u008d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu141 = U"\u008d"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000008d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU141 = U"\U0000008d"; /* { dg-error "is not a valid universal character" } */
+#if U'\u008e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu142 = U"\u008e"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000008e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU142 = U"\U0000008e"; /* { dg-error "is not a valid universal character" } */
+#if U'\u008f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu143 = U"\u008f"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000008f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU143 = U"\U0000008f"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0090' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu144 = U"\u0090"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000090' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU144 = U"\U00000090"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0091' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu145 = U"\u0091"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000091' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU145 = U"\U00000091"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0092' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu146 = U"\u0092"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000092' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU146 = U"\U00000092"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0093' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu147 = U"\u0093"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000093' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU147 = U"\U00000093"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0094' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu148 = U"\u0094"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000094' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU148 = U"\U00000094"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0095' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu149 = U"\u0095"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000095' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU149 = U"\U00000095"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0096' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu150 = U"\u0096"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000096' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU150 = U"\U00000096"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0097' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu151 = U"\u0097"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000097' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU151 = U"\U00000097"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0098' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu152 = U"\u0098"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000098' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU152 = U"\U00000098"; /* { dg-error "is not a valid universal character" } */
+#if U'\u0099' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu153 = U"\u0099"; /* { dg-error "is not a valid universal character" } */
+#if U'\U00000099' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU153 = U"\U00000099"; /* { dg-error "is not a valid universal character" } */
+#if U'\u009a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu154 = U"\u009a"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000009a' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU154 = U"\U0000009a"; /* { dg-error "is not a valid universal character" } */
+#if U'\u009b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu155 = U"\u009b"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000009b' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU155 = U"\U0000009b"; /* { dg-error "is not a valid universal character" } */
+#if U'\u009c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu156 = U"\u009c"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000009c' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU156 = U"\U0000009c"; /* { dg-error "is not a valid universal character" } */
+#if U'\u009d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu157 = U"\u009d"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000009d' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU157 = U"\U0000009d"; /* { dg-error "is not a valid universal character" } */
+#if U'\u009e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu158 = U"\u009e"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000009e' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU158 = U"\U0000009e"; /* { dg-error "is not a valid universal character" } */
+#if U'\u009f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tu159 = U"\u009f"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000009f' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tU159 = U"\U0000009f"; /* { dg-error "is not a valid universal character" } */
+#if U'\u00a0'
+#endif
+void *tu160 = U"\u00a0";
+#if U'\U000000a0'
+#endif
+void *tU160 = U"\U000000a0";
+
+#if U'\ud800' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tud800 = U"\ud800"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000d800' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUd800 = U"\U0000d800"; /* { dg-error "is not a valid universal character" } */
+
+#if U'\udfff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tudfff = U"\udfff"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000dfff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUdfff = U"\U0000dfff"; /* { dg-error "is not a valid universal character" } */
+
+#if U'\U0010ffff'
+#endif
+void *tU10ffff = U"\U0010ffff";
+
+/* It's less clear whether C requires this to be rejected before C23, but GCC
+   chooses to do so.  */
+#if U'\U00110000' /* { dg-error "is outside the UCS codespace" } */
+#endif
+void *tU110000 = U"\U00110000"; /* { dg-error "is outside the UCS codespace" } */
+
+#if U'\Uffffffff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUffffffff = U"\Uffffffff"; /* { dg-error "is not a valid universal character" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/c17-ucn-2.c b/gcc/testsuite/gcc.dg/cpp/c17-ucn-2.c
new file mode 100644
index 000000000000..0cc194ac764e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/c17-ucn-2.c
@@ -0,0 +1,998 @@ 
+/* Test characters not permitted in UCNs in C17: -pedantic.  */
+/* { dg-do compile } */
+/* { dg-options "-std=c17 -pedantic" } */
+
+#if U'\u0000' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu0 = U"\u0000"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000000' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU0 = U"\U00000000"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0001' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu1 = U"\u0001"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000001' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU1 = U"\U00000001"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0002' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu2 = U"\u0002"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000002' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU2 = U"\U00000002"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0003' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu3 = U"\u0003"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000003' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU3 = U"\U00000003"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0004' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu4 = U"\u0004"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000004' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU4 = U"\U00000004"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0005' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu5 = U"\u0005"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000005' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU5 = U"\U00000005"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0006' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu6 = U"\u0006"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000006' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU6 = U"\U00000006"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0007' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu7 = U"\u0007"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000007' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU7 = U"\U00000007"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0008' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu8 = U"\u0008"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000008' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU8 = U"\U00000008"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0009' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu9 = U"\u0009"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000009' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU9 = U"\U00000009"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu10 = U"\u000a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU10 = U"\U0000000a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu11 = U"\u000b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU11 = U"\U0000000b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu12 = U"\u000c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU12 = U"\U0000000c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu13 = U"\u000d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU13 = U"\U0000000d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu14 = U"\u000e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU14 = U"\U0000000e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu15 = U"\u000f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU15 = U"\U0000000f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0010' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu16 = U"\u0010"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000010' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU16 = U"\U00000010"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0011' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu17 = U"\u0011"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000011' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU17 = U"\U00000011"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0012' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu18 = U"\u0012"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000012' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU18 = U"\U00000012"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0013' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu19 = U"\u0013"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000013' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU19 = U"\U00000013"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0014' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu20 = U"\u0014"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000014' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU20 = U"\U00000014"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0015' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu21 = U"\u0015"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000015' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU21 = U"\U00000015"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0016' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu22 = U"\u0016"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000016' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU22 = U"\U00000016"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0017' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu23 = U"\u0017"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000017' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU23 = U"\U00000017"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0018' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu24 = U"\u0018"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000018' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU24 = U"\U00000018"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0019' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu25 = U"\u0019"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000019' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU25 = U"\U00000019"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu26 = U"\u001a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU26 = U"\U0000001a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu27 = U"\u001b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU27 = U"\U0000001b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu28 = U"\u001c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU28 = U"\U0000001c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu29 = U"\u001d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU29 = U"\U0000001d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu30 = U"\u001e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU30 = U"\U0000001e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu31 = U"\u001f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU31 = U"\U0000001f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0020' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu32 = U"\u0020"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000020' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU32 = U"\U00000020"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0021' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu33 = U"\u0021"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000021' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU33 = U"\U00000021"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0022' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu34 = U"\u0022"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000022' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU34 = U"\U00000022"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0023' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu35 = U"\u0023"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000023' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU35 = U"\U00000023"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0024'
+#endif
+void *tu36 = U"\u0024";
+#if U'\U00000024'
+#endif
+void *tU36 = U"\U00000024";
+#if U'\u0025' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu37 = U"\u0025"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000025' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU37 = U"\U00000025"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0026' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu38 = U"\u0026"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000026' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU38 = U"\U00000026"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0027' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu39 = U"\u0027"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000027' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU39 = U"\U00000027"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0028' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu40 = U"\u0028"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000028' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU40 = U"\U00000028"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0029' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu41 = U"\u0029"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000029' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU41 = U"\U00000029"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu42 = U"\u002a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU42 = U"\U0000002a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu43 = U"\u002b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU43 = U"\U0000002b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu44 = U"\u002c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU44 = U"\U0000002c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu45 = U"\u002d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU45 = U"\U0000002d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu46 = U"\u002e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU46 = U"\U0000002e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu47 = U"\u002f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU47 = U"\U0000002f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0030' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu48 = U"\u0030"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000030' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU48 = U"\U00000030"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0031' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu49 = U"\u0031"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000031' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU49 = U"\U00000031"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0032' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu50 = U"\u0032"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000032' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU50 = U"\U00000032"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0033' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu51 = U"\u0033"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000033' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU51 = U"\U00000033"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0034' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu52 = U"\u0034"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000034' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU52 = U"\U00000034"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0035' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu53 = U"\u0035"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000035' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU53 = U"\U00000035"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0036' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu54 = U"\u0036"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000036' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU54 = U"\U00000036"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0037' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu55 = U"\u0037"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000037' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU55 = U"\U00000037"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0038' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu56 = U"\u0038"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000038' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU56 = U"\U00000038"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0039' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu57 = U"\u0039"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000039' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU57 = U"\U00000039"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu58 = U"\u003a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU58 = U"\U0000003a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu59 = U"\u003b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU59 = U"\U0000003b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu60 = U"\u003c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU60 = U"\U0000003c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu61 = U"\u003d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU61 = U"\U0000003d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu62 = U"\u003e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU62 = U"\U0000003e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu63 = U"\u003f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU63 = U"\U0000003f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0040'
+#endif
+void *tu64 = U"\u0040";
+#if U'\U00000040'
+#endif
+void *tU64 = U"\U00000040";
+#if U'\u0041' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu65 = U"\u0041"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000041' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU65 = U"\U00000041"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0042' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu66 = U"\u0042"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000042' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU66 = U"\U00000042"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0043' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu67 = U"\u0043"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000043' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU67 = U"\U00000043"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0044' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu68 = U"\u0044"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000044' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU68 = U"\U00000044"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0045' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu69 = U"\u0045"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000045' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU69 = U"\U00000045"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0046' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu70 = U"\u0046"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000046' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU70 = U"\U00000046"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0047' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu71 = U"\u0047"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000047' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU71 = U"\U00000047"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0048' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu72 = U"\u0048"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000048' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU72 = U"\U00000048"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0049' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu73 = U"\u0049"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000049' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU73 = U"\U00000049"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu74 = U"\u004a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU74 = U"\U0000004a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu75 = U"\u004b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU75 = U"\U0000004b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu76 = U"\u004c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU76 = U"\U0000004c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu77 = U"\u004d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU77 = U"\U0000004d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu78 = U"\u004e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU78 = U"\U0000004e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu79 = U"\u004f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU79 = U"\U0000004f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0050' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu80 = U"\u0050"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000050' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU80 = U"\U00000050"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0051' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu81 = U"\u0051"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000051' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU81 = U"\U00000051"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0052' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu82 = U"\u0052"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000052' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU82 = U"\U00000052"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0053' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu83 = U"\u0053"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000053' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU83 = U"\U00000053"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0054' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu84 = U"\u0054"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000054' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU84 = U"\U00000054"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0055' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu85 = U"\u0055"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000055' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU85 = U"\U00000055"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0056' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu86 = U"\u0056"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000056' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU86 = U"\U00000056"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0057' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu87 = U"\u0057"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000057' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU87 = U"\U00000057"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0058' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu88 = U"\u0058"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000058' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU88 = U"\U00000058"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0059' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu89 = U"\u0059"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000059' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU89 = U"\U00000059"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu90 = U"\u005a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU90 = U"\U0000005a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu91 = U"\u005b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU91 = U"\U0000005b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu92 = U"\u005c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU92 = U"\U0000005c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu93 = U"\u005d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU93 = U"\U0000005d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu94 = U"\u005e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU94 = U"\U0000005e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu95 = U"\u005f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU95 = U"\U0000005f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0060'
+#endif
+void *tu96 = U"\u0060";
+#if U'\U00000060'
+#endif
+void *tU96 = U"\U00000060";
+#if U'\u0061' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu97 = U"\u0061"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000061' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU97 = U"\U00000061"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0062' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu98 = U"\u0062"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000062' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU98 = U"\U00000062"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0063' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu99 = U"\u0063"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000063' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU99 = U"\U00000063"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0064' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu100 = U"\u0064"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000064' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU100 = U"\U00000064"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0065' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu101 = U"\u0065"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000065' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU101 = U"\U00000065"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0066' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu102 = U"\u0066"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000066' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU102 = U"\U00000066"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0067' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu103 = U"\u0067"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000067' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU103 = U"\U00000067"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0068' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu104 = U"\u0068"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000068' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU104 = U"\U00000068"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0069' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu105 = U"\u0069"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000069' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU105 = U"\U00000069"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu106 = U"\u006a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU106 = U"\U0000006a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu107 = U"\u006b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU107 = U"\U0000006b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu108 = U"\u006c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU108 = U"\U0000006c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu109 = U"\u006d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU109 = U"\U0000006d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu110 = U"\u006e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU110 = U"\U0000006e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu111 = U"\u006f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU111 = U"\U0000006f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0070' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu112 = U"\u0070"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000070' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU112 = U"\U00000070"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0071' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu113 = U"\u0071"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000071' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU113 = U"\U00000071"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0072' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu114 = U"\u0072"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000072' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU114 = U"\U00000072"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0073' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu115 = U"\u0073"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000073' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU115 = U"\U00000073"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0074' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu116 = U"\u0074"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000074' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU116 = U"\U00000074"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0075' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu117 = U"\u0075"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000075' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU117 = U"\U00000075"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0076' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu118 = U"\u0076"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000076' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU118 = U"\U00000076"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0077' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu119 = U"\u0077"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000077' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU119 = U"\U00000077"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0078' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu120 = U"\u0078"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000078' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU120 = U"\U00000078"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0079' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu121 = U"\u0079"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000079' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU121 = U"\U00000079"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu122 = U"\u007a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU122 = U"\U0000007a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu123 = U"\u007b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU123 = U"\U0000007b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu124 = U"\u007c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU124 = U"\U0000007c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu125 = U"\u007d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU125 = U"\U0000007d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu126 = U"\u007e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU126 = U"\U0000007e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu127 = U"\u007f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU127 = U"\U0000007f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0080' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu128 = U"\u0080"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000080' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU128 = U"\U00000080"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0081' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu129 = U"\u0081"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000081' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU129 = U"\U00000081"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0082' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu130 = U"\u0082"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000082' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU130 = U"\U00000082"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0083' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu131 = U"\u0083"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000083' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU131 = U"\U00000083"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0084' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu132 = U"\u0084"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000084' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU132 = U"\U00000084"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0085' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu133 = U"\u0085"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000085' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU133 = U"\U00000085"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0086' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu134 = U"\u0086"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000086' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU134 = U"\U00000086"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0087' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu135 = U"\u0087"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000087' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU135 = U"\U00000087"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0088' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu136 = U"\u0088"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000088' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU136 = U"\U00000088"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0089' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu137 = U"\u0089"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000089' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU137 = U"\U00000089"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu138 = U"\u008a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU138 = U"\U0000008a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu139 = U"\u008b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU139 = U"\U0000008b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu140 = U"\u008c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU140 = U"\U0000008c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu141 = U"\u008d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU141 = U"\U0000008d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu142 = U"\u008e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU142 = U"\U0000008e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu143 = U"\u008f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU143 = U"\U0000008f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0090' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu144 = U"\u0090"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000090' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU144 = U"\U00000090"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0091' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu145 = U"\u0091"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000091' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU145 = U"\U00000091"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0092' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu146 = U"\u0092"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000092' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU146 = U"\U00000092"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0093' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu147 = U"\u0093"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000093' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU147 = U"\U00000093"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0094' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu148 = U"\u0094"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000094' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU148 = U"\U00000094"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0095' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu149 = U"\u0095"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000095' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU149 = U"\U00000095"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0096' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu150 = U"\u0096"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000096' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU150 = U"\U00000096"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0097' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu151 = U"\u0097"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000097' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU151 = U"\U00000097"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0098' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu152 = U"\u0098"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000098' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU152 = U"\U00000098"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0099' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu153 = U"\u0099"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000099' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU153 = U"\U00000099"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu154 = U"\u009a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU154 = U"\U0000009a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu155 = U"\u009b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU155 = U"\U0000009b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu156 = U"\u009c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU156 = U"\U0000009c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu157 = U"\u009d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU157 = U"\U0000009d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu158 = U"\u009e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU158 = U"\U0000009e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu159 = U"\u009f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU159 = U"\U0000009f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u00a0'
+#endif
+void *tu160 = U"\u00a0";
+#if U'\U000000a0'
+#endif
+void *tU160 = U"\U000000a0";
+
+#if U'\ud800' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tud800 = U"\ud800"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000d800' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUd800 = U"\U0000d800"; /* { dg-error "is not a valid universal character" } */
+
+#if U'\udfff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tudfff = U"\udfff"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000dfff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUdfff = U"\U0000dfff"; /* { dg-error "is not a valid universal character" } */
+
+#if U'\U0010ffff'
+#endif
+void *tU10ffff = U"\U0010ffff";
+
+/* It's less clear whether C requires this to be rejected before C23, but GCC
+   chooses to do so.  */
+#if U'\U00110000' /* { dg-warning "is outside the UCS codespace" } */
+#endif
+void *tU110000 = U"\U00110000"; /* { dg-warning "is outside the UCS codespace" } */
+
+#if U'\Uffffffff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUffffffff = U"\Uffffffff"; /* { dg-error "is not a valid universal character" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/c17-ucn-3.c b/gcc/testsuite/gcc.dg/cpp/c17-ucn-3.c
new file mode 100644
index 000000000000..0be53596a74c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/c17-ucn-3.c
@@ -0,0 +1,999 @@ 
+/* Test characters not permitted in UCNs in C17: no warnings without
+   -pedantic.  */
+/* { dg-do compile } */
+/* { dg-options "-std=c17" } */
+
+#if U'\u0000'
+#endif
+void *tu0 = U"\u0000";
+#if U'\U00000000'
+#endif
+void *tU0 = U"\U00000000";
+#if U'\u0001'
+#endif
+void *tu1 = U"\u0001";
+#if U'\U00000001'
+#endif
+void *tU1 = U"\U00000001";
+#if U'\u0002'
+#endif
+void *tu2 = U"\u0002";
+#if U'\U00000002'
+#endif
+void *tU2 = U"\U00000002";
+#if U'\u0003'
+#endif
+void *tu3 = U"\u0003";
+#if U'\U00000003'
+#endif
+void *tU3 = U"\U00000003";
+#if U'\u0004'
+#endif
+void *tu4 = U"\u0004";
+#if U'\U00000004'
+#endif
+void *tU4 = U"\U00000004";
+#if U'\u0005'
+#endif
+void *tu5 = U"\u0005";
+#if U'\U00000005'
+#endif
+void *tU5 = U"\U00000005";
+#if U'\u0006'
+#endif
+void *tu6 = U"\u0006";
+#if U'\U00000006'
+#endif
+void *tU6 = U"\U00000006";
+#if U'\u0007'
+#endif
+void *tu7 = U"\u0007";
+#if U'\U00000007'
+#endif
+void *tU7 = U"\U00000007";
+#if U'\u0008'
+#endif
+void *tu8 = U"\u0008";
+#if U'\U00000008'
+#endif
+void *tU8 = U"\U00000008";
+#if U'\u0009'
+#endif
+void *tu9 = U"\u0009";
+#if U'\U00000009'
+#endif
+void *tU9 = U"\U00000009";
+#if U'\u000a'
+#endif
+void *tu10 = U"\u000a";
+#if U'\U0000000a'
+#endif
+void *tU10 = U"\U0000000a";
+#if U'\u000b'
+#endif
+void *tu11 = U"\u000b";
+#if U'\U0000000b'
+#endif
+void *tU11 = U"\U0000000b";
+#if U'\u000c'
+#endif
+void *tu12 = U"\u000c";
+#if U'\U0000000c'
+#endif
+void *tU12 = U"\U0000000c";
+#if U'\u000d'
+#endif
+void *tu13 = U"\u000d";
+#if U'\U0000000d'
+#endif
+void *tU13 = U"\U0000000d";
+#if U'\u000e'
+#endif
+void *tu14 = U"\u000e";
+#if U'\U0000000e'
+#endif
+void *tU14 = U"\U0000000e";
+#if U'\u000f'
+#endif
+void *tu15 = U"\u000f";
+#if U'\U0000000f'
+#endif
+void *tU15 = U"\U0000000f";
+#if U'\u0010'
+#endif
+void *tu16 = U"\u0010";
+#if U'\U00000010'
+#endif
+void *tU16 = U"\U00000010";
+#if U'\u0011'
+#endif
+void *tu17 = U"\u0011";
+#if U'\U00000011'
+#endif
+void *tU17 = U"\U00000011";
+#if U'\u0012'
+#endif
+void *tu18 = U"\u0012";
+#if U'\U00000012'
+#endif
+void *tU18 = U"\U00000012";
+#if U'\u0013'
+#endif
+void *tu19 = U"\u0013";
+#if U'\U00000013'
+#endif
+void *tU19 = U"\U00000013";
+#if U'\u0014'
+#endif
+void *tu20 = U"\u0014";
+#if U'\U00000014'
+#endif
+void *tU20 = U"\U00000014";
+#if U'\u0015'
+#endif
+void *tu21 = U"\u0015";
+#if U'\U00000015'
+#endif
+void *tU21 = U"\U00000015";
+#if U'\u0016'
+#endif
+void *tu22 = U"\u0016";
+#if U'\U00000016'
+#endif
+void *tU22 = U"\U00000016";
+#if U'\u0017'
+#endif
+void *tu23 = U"\u0017";
+#if U'\U00000017'
+#endif
+void *tU23 = U"\U00000017";
+#if U'\u0018'
+#endif
+void *tu24 = U"\u0018";
+#if U'\U00000018'
+#endif
+void *tU24 = U"\U00000018";
+#if U'\u0019'
+#endif
+void *tu25 = U"\u0019";
+#if U'\U00000019'
+#endif
+void *tU25 = U"\U00000019";
+#if U'\u001a'
+#endif
+void *tu26 = U"\u001a";
+#if U'\U0000001a'
+#endif
+void *tU26 = U"\U0000001a";
+#if U'\u001b'
+#endif
+void *tu27 = U"\u001b";
+#if U'\U0000001b'
+#endif
+void *tU27 = U"\U0000001b";
+#if U'\u001c'
+#endif
+void *tu28 = U"\u001c";
+#if U'\U0000001c'
+#endif
+void *tU28 = U"\U0000001c";
+#if U'\u001d'
+#endif
+void *tu29 = U"\u001d";
+#if U'\U0000001d'
+#endif
+void *tU29 = U"\U0000001d";
+#if U'\u001e'
+#endif
+void *tu30 = U"\u001e";
+#if U'\U0000001e'
+#endif
+void *tU30 = U"\U0000001e";
+#if U'\u001f'
+#endif
+void *tu31 = U"\u001f";
+#if U'\U0000001f'
+#endif
+void *tU31 = U"\U0000001f";
+#if U'\u0020'
+#endif
+void *tu32 = U"\u0020";
+#if U'\U00000020'
+#endif
+void *tU32 = U"\U00000020";
+#if U'\u0021'
+#endif
+void *tu33 = U"\u0021";
+#if U'\U00000021'
+#endif
+void *tU33 = U"\U00000021";
+#if U'\u0022'
+#endif
+void *tu34 = U"\u0022";
+#if U'\U00000022'
+#endif
+void *tU34 = U"\U00000022";
+#if U'\u0023'
+#endif
+void *tu35 = U"\u0023";
+#if U'\U00000023'
+#endif
+void *tU35 = U"\U00000023";
+#if U'\u0024'
+#endif
+void *tu36 = U"\u0024";
+#if U'\U00000024'
+#endif
+void *tU36 = U"\U00000024";
+#if U'\u0025'
+#endif
+void *tu37 = U"\u0025";
+#if U'\U00000025'
+#endif
+void *tU37 = U"\U00000025";
+#if U'\u0026'
+#endif
+void *tu38 = U"\u0026";
+#if U'\U00000026'
+#endif
+void *tU38 = U"\U00000026";
+#if U'\u0027'
+#endif
+void *tu39 = U"\u0027";
+#if U'\U00000027'
+#endif
+void *tU39 = U"\U00000027";
+#if U'\u0028'
+#endif
+void *tu40 = U"\u0028";
+#if U'\U00000028'
+#endif
+void *tU40 = U"\U00000028";
+#if U'\u0029'
+#endif
+void *tu41 = U"\u0029";
+#if U'\U00000029'
+#endif
+void *tU41 = U"\U00000029";
+#if U'\u002a'
+#endif
+void *tu42 = U"\u002a";
+#if U'\U0000002a'
+#endif
+void *tU42 = U"\U0000002a";
+#if U'\u002b'
+#endif
+void *tu43 = U"\u002b";
+#if U'\U0000002b'
+#endif
+void *tU43 = U"\U0000002b";
+#if U'\u002c'
+#endif
+void *tu44 = U"\u002c";
+#if U'\U0000002c'
+#endif
+void *tU44 = U"\U0000002c";
+#if U'\u002d'
+#endif
+void *tu45 = U"\u002d";
+#if U'\U0000002d'
+#endif
+void *tU45 = U"\U0000002d";
+#if U'\u002e'
+#endif
+void *tu46 = U"\u002e";
+#if U'\U0000002e'
+#endif
+void *tU46 = U"\U0000002e";
+#if U'\u002f'
+#endif
+void *tu47 = U"\u002f";
+#if U'\U0000002f'
+#endif
+void *tU47 = U"\U0000002f";
+#if U'\u0030'
+#endif
+void *tu48 = U"\u0030";
+#if U'\U00000030'
+#endif
+void *tU48 = U"\U00000030";
+#if U'\u0031'
+#endif
+void *tu49 = U"\u0031";
+#if U'\U00000031'
+#endif
+void *tU49 = U"\U00000031";
+#if U'\u0032'
+#endif
+void *tu50 = U"\u0032";
+#if U'\U00000032'
+#endif
+void *tU50 = U"\U00000032";
+#if U'\u0033'
+#endif
+void *tu51 = U"\u0033";
+#if U'\U00000033'
+#endif
+void *tU51 = U"\U00000033";
+#if U'\u0034'
+#endif
+void *tu52 = U"\u0034";
+#if U'\U00000034'
+#endif
+void *tU52 = U"\U00000034";
+#if U'\u0035'
+#endif
+void *tu53 = U"\u0035";
+#if U'\U00000035'
+#endif
+void *tU53 = U"\U00000035";
+#if U'\u0036'
+#endif
+void *tu54 = U"\u0036";
+#if U'\U00000036'
+#endif
+void *tU54 = U"\U00000036";
+#if U'\u0037'
+#endif
+void *tu55 = U"\u0037";
+#if U'\U00000037'
+#endif
+void *tU55 = U"\U00000037";
+#if U'\u0038'
+#endif
+void *tu56 = U"\u0038";
+#if U'\U00000038'
+#endif
+void *tU56 = U"\U00000038";
+#if U'\u0039'
+#endif
+void *tu57 = U"\u0039";
+#if U'\U00000039'
+#endif
+void *tU57 = U"\U00000039";
+#if U'\u003a'
+#endif
+void *tu58 = U"\u003a";
+#if U'\U0000003a'
+#endif
+void *tU58 = U"\U0000003a";
+#if U'\u003b'
+#endif
+void *tu59 = U"\u003b";
+#if U'\U0000003b'
+#endif
+void *tU59 = U"\U0000003b";
+#if U'\u003c'
+#endif
+void *tu60 = U"\u003c";
+#if U'\U0000003c'
+#endif
+void *tU60 = U"\U0000003c";
+#if U'\u003d'
+#endif
+void *tu61 = U"\u003d";
+#if U'\U0000003d'
+#endif
+void *tU61 = U"\U0000003d";
+#if U'\u003e'
+#endif
+void *tu62 = U"\u003e";
+#if U'\U0000003e'
+#endif
+void *tU62 = U"\U0000003e";
+#if U'\u003f'
+#endif
+void *tu63 = U"\u003f";
+#if U'\U0000003f'
+#endif
+void *tU63 = U"\U0000003f";
+#if U'\u0040'
+#endif
+void *tu64 = U"\u0040";
+#if U'\U00000040'
+#endif
+void *tU64 = U"\U00000040";
+#if U'\u0041'
+#endif
+void *tu65 = U"\u0041";
+#if U'\U00000041'
+#endif
+void *tU65 = U"\U00000041";
+#if U'\u0042'
+#endif
+void *tu66 = U"\u0042";
+#if U'\U00000042'
+#endif
+void *tU66 = U"\U00000042";
+#if U'\u0043'
+#endif
+void *tu67 = U"\u0043";
+#if U'\U00000043'
+#endif
+void *tU67 = U"\U00000043";
+#if U'\u0044'
+#endif
+void *tu68 = U"\u0044";
+#if U'\U00000044'
+#endif
+void *tU68 = U"\U00000044";
+#if U'\u0045'
+#endif
+void *tu69 = U"\u0045";
+#if U'\U00000045'
+#endif
+void *tU69 = U"\U00000045";
+#if U'\u0046'
+#endif
+void *tu70 = U"\u0046";
+#if U'\U00000046'
+#endif
+void *tU70 = U"\U00000046";
+#if U'\u0047'
+#endif
+void *tu71 = U"\u0047";
+#if U'\U00000047'
+#endif
+void *tU71 = U"\U00000047";
+#if U'\u0048'
+#endif
+void *tu72 = U"\u0048";
+#if U'\U00000048'
+#endif
+void *tU72 = U"\U00000048";
+#if U'\u0049'
+#endif
+void *tu73 = U"\u0049";
+#if U'\U00000049'
+#endif
+void *tU73 = U"\U00000049";
+#if U'\u004a'
+#endif
+void *tu74 = U"\u004a";
+#if U'\U0000004a'
+#endif
+void *tU74 = U"\U0000004a";
+#if U'\u004b'
+#endif
+void *tu75 = U"\u004b";
+#if U'\U0000004b'
+#endif
+void *tU75 = U"\U0000004b";
+#if U'\u004c'
+#endif
+void *tu76 = U"\u004c";
+#if U'\U0000004c'
+#endif
+void *tU76 = U"\U0000004c";
+#if U'\u004d'
+#endif
+void *tu77 = U"\u004d";
+#if U'\U0000004d'
+#endif
+void *tU77 = U"\U0000004d";
+#if U'\u004e'
+#endif
+void *tu78 = U"\u004e";
+#if U'\U0000004e'
+#endif
+void *tU78 = U"\U0000004e";
+#if U'\u004f'
+#endif
+void *tu79 = U"\u004f";
+#if U'\U0000004f'
+#endif
+void *tU79 = U"\U0000004f";
+#if U'\u0050'
+#endif
+void *tu80 = U"\u0050";
+#if U'\U00000050'
+#endif
+void *tU80 = U"\U00000050";
+#if U'\u0051'
+#endif
+void *tu81 = U"\u0051";
+#if U'\U00000051'
+#endif
+void *tU81 = U"\U00000051";
+#if U'\u0052'
+#endif
+void *tu82 = U"\u0052";
+#if U'\U00000052'
+#endif
+void *tU82 = U"\U00000052";
+#if U'\u0053'
+#endif
+void *tu83 = U"\u0053";
+#if U'\U00000053'
+#endif
+void *tU83 = U"\U00000053";
+#if U'\u0054'
+#endif
+void *tu84 = U"\u0054";
+#if U'\U00000054'
+#endif
+void *tU84 = U"\U00000054";
+#if U'\u0055'
+#endif
+void *tu85 = U"\u0055";
+#if U'\U00000055'
+#endif
+void *tU85 = U"\U00000055";
+#if U'\u0056'
+#endif
+void *tu86 = U"\u0056";
+#if U'\U00000056'
+#endif
+void *tU86 = U"\U00000056";
+#if U'\u0057'
+#endif
+void *tu87 = U"\u0057";
+#if U'\U00000057'
+#endif
+void *tU87 = U"\U00000057";
+#if U'\u0058'
+#endif
+void *tu88 = U"\u0058";
+#if U'\U00000058'
+#endif
+void *tU88 = U"\U00000058";
+#if U'\u0059'
+#endif
+void *tu89 = U"\u0059";
+#if U'\U00000059'
+#endif
+void *tU89 = U"\U00000059";
+#if U'\u005a'
+#endif
+void *tu90 = U"\u005a";
+#if U'\U0000005a'
+#endif
+void *tU90 = U"\U0000005a";
+#if U'\u005b'
+#endif
+void *tu91 = U"\u005b";
+#if U'\U0000005b'
+#endif
+void *tU91 = U"\U0000005b";
+#if U'\u005c'
+#endif
+void *tu92 = U"\u005c";
+#if U'\U0000005c'
+#endif
+void *tU92 = U"\U0000005c";
+#if U'\u005d'
+#endif
+void *tu93 = U"\u005d";
+#if U'\U0000005d'
+#endif
+void *tU93 = U"\U0000005d";
+#if U'\u005e'
+#endif
+void *tu94 = U"\u005e";
+#if U'\U0000005e'
+#endif
+void *tU94 = U"\U0000005e";
+#if U'\u005f'
+#endif
+void *tu95 = U"\u005f";
+#if U'\U0000005f'
+#endif
+void *tU95 = U"\U0000005f";
+#if U'\u0060'
+#endif
+void *tu96 = U"\u0060";
+#if U'\U00000060'
+#endif
+void *tU96 = U"\U00000060";
+#if U'\u0061'
+#endif
+void *tu97 = U"\u0061";
+#if U'\U00000061'
+#endif
+void *tU97 = U"\U00000061";
+#if U'\u0062'
+#endif
+void *tu98 = U"\u0062";
+#if U'\U00000062'
+#endif
+void *tU98 = U"\U00000062";
+#if U'\u0063'
+#endif
+void *tu99 = U"\u0063";
+#if U'\U00000063'
+#endif
+void *tU99 = U"\U00000063";
+#if U'\u0064'
+#endif
+void *tu100 = U"\u0064";
+#if U'\U00000064'
+#endif
+void *tU100 = U"\U00000064";
+#if U'\u0065'
+#endif
+void *tu101 = U"\u0065";
+#if U'\U00000065'
+#endif
+void *tU101 = U"\U00000065";
+#if U'\u0066'
+#endif
+void *tu102 = U"\u0066";
+#if U'\U00000066'
+#endif
+void *tU102 = U"\U00000066";
+#if U'\u0067'
+#endif
+void *tu103 = U"\u0067";
+#if U'\U00000067'
+#endif
+void *tU103 = U"\U00000067";
+#if U'\u0068'
+#endif
+void *tu104 = U"\u0068";
+#if U'\U00000068'
+#endif
+void *tU104 = U"\U00000068";
+#if U'\u0069'
+#endif
+void *tu105 = U"\u0069";
+#if U'\U00000069'
+#endif
+void *tU105 = U"\U00000069";
+#if U'\u006a'
+#endif
+void *tu106 = U"\u006a";
+#if U'\U0000006a'
+#endif
+void *tU106 = U"\U0000006a";
+#if U'\u006b'
+#endif
+void *tu107 = U"\u006b";
+#if U'\U0000006b'
+#endif
+void *tU107 = U"\U0000006b";
+#if U'\u006c'
+#endif
+void *tu108 = U"\u006c";
+#if U'\U0000006c'
+#endif
+void *tU108 = U"\U0000006c";
+#if U'\u006d'
+#endif
+void *tu109 = U"\u006d";
+#if U'\U0000006d'
+#endif
+void *tU109 = U"\U0000006d";
+#if U'\u006e'
+#endif
+void *tu110 = U"\u006e";
+#if U'\U0000006e'
+#endif
+void *tU110 = U"\U0000006e";
+#if U'\u006f'
+#endif
+void *tu111 = U"\u006f";
+#if U'\U0000006f'
+#endif
+void *tU111 = U"\U0000006f";
+#if U'\u0070'
+#endif
+void *tu112 = U"\u0070";
+#if U'\U00000070'
+#endif
+void *tU112 = U"\U00000070";
+#if U'\u0071'
+#endif
+void *tu113 = U"\u0071";
+#if U'\U00000071'
+#endif
+void *tU113 = U"\U00000071";
+#if U'\u0072'
+#endif
+void *tu114 = U"\u0072";
+#if U'\U00000072'
+#endif
+void *tU114 = U"\U00000072";
+#if U'\u0073'
+#endif
+void *tu115 = U"\u0073";
+#if U'\U00000073'
+#endif
+void *tU115 = U"\U00000073";
+#if U'\u0074'
+#endif
+void *tu116 = U"\u0074";
+#if U'\U00000074'
+#endif
+void *tU116 = U"\U00000074";
+#if U'\u0075'
+#endif
+void *tu117 = U"\u0075";
+#if U'\U00000075'
+#endif
+void *tU117 = U"\U00000075";
+#if U'\u0076'
+#endif
+void *tu118 = U"\u0076";
+#if U'\U00000076'
+#endif
+void *tU118 = U"\U00000076";
+#if U'\u0077'
+#endif
+void *tu119 = U"\u0077";
+#if U'\U00000077'
+#endif
+void *tU119 = U"\U00000077";
+#if U'\u0078'
+#endif
+void *tu120 = U"\u0078";
+#if U'\U00000078'
+#endif
+void *tU120 = U"\U00000078";
+#if U'\u0079'
+#endif
+void *tu121 = U"\u0079";
+#if U'\U00000079'
+#endif
+void *tU121 = U"\U00000079";
+#if U'\u007a'
+#endif
+void *tu122 = U"\u007a";
+#if U'\U0000007a'
+#endif
+void *tU122 = U"\U0000007a";
+#if U'\u007b'
+#endif
+void *tu123 = U"\u007b";
+#if U'\U0000007b'
+#endif
+void *tU123 = U"\U0000007b";
+#if U'\u007c'
+#endif
+void *tu124 = U"\u007c";
+#if U'\U0000007c'
+#endif
+void *tU124 = U"\U0000007c";
+#if U'\u007d'
+#endif
+void *tu125 = U"\u007d";
+#if U'\U0000007d'
+#endif
+void *tU125 = U"\U0000007d";
+#if U'\u007e'
+#endif
+void *tu126 = U"\u007e";
+#if U'\U0000007e'
+#endif
+void *tU126 = U"\U0000007e";
+#if U'\u007f'
+#endif
+void *tu127 = U"\u007f";
+#if U'\U0000007f'
+#endif
+void *tU127 = U"\U0000007f";
+#if U'\u0080'
+#endif
+void *tu128 = U"\u0080";
+#if U'\U00000080'
+#endif
+void *tU128 = U"\U00000080";
+#if U'\u0081'
+#endif
+void *tu129 = U"\u0081";
+#if U'\U00000081'
+#endif
+void *tU129 = U"\U00000081";
+#if U'\u0082'
+#endif
+void *tu130 = U"\u0082";
+#if U'\U00000082'
+#endif
+void *tU130 = U"\U00000082";
+#if U'\u0083'
+#endif
+void *tu131 = U"\u0083";
+#if U'\U00000083'
+#endif
+void *tU131 = U"\U00000083";
+#if U'\u0084'
+#endif
+void *tu132 = U"\u0084";
+#if U'\U00000084'
+#endif
+void *tU132 = U"\U00000084";
+#if U'\u0085'
+#endif
+void *tu133 = U"\u0085";
+#if U'\U00000085'
+#endif
+void *tU133 = U"\U00000085";
+#if U'\u0086'
+#endif
+void *tu134 = U"\u0086";
+#if U'\U00000086'
+#endif
+void *tU134 = U"\U00000086";
+#if U'\u0087'
+#endif
+void *tu135 = U"\u0087";
+#if U'\U00000087'
+#endif
+void *tU135 = U"\U00000087";
+#if U'\u0088'
+#endif
+void *tu136 = U"\u0088";
+#if U'\U00000088'
+#endif
+void *tU136 = U"\U00000088";
+#if U'\u0089'
+#endif
+void *tu137 = U"\u0089";
+#if U'\U00000089'
+#endif
+void *tU137 = U"\U00000089";
+#if U'\u008a'
+#endif
+void *tu138 = U"\u008a";
+#if U'\U0000008a'
+#endif
+void *tU138 = U"\U0000008a";
+#if U'\u008b'
+#endif
+void *tu139 = U"\u008b";
+#if U'\U0000008b'
+#endif
+void *tU139 = U"\U0000008b";
+#if U'\u008c'
+#endif
+void *tu140 = U"\u008c";
+#if U'\U0000008c'
+#endif
+void *tU140 = U"\U0000008c";
+#if U'\u008d'
+#endif
+void *tu141 = U"\u008d";
+#if U'\U0000008d'
+#endif
+void *tU141 = U"\U0000008d";
+#if U'\u008e'
+#endif
+void *tu142 = U"\u008e";
+#if U'\U0000008e'
+#endif
+void *tU142 = U"\U0000008e";
+#if U'\u008f'
+#endif
+void *tu143 = U"\u008f";
+#if U'\U0000008f'
+#endif
+void *tU143 = U"\U0000008f";
+#if U'\u0090'
+#endif
+void *tu144 = U"\u0090";
+#if U'\U00000090'
+#endif
+void *tU144 = U"\U00000090";
+#if U'\u0091'
+#endif
+void *tu145 = U"\u0091";
+#if U'\U00000091'
+#endif
+void *tU145 = U"\U00000091";
+#if U'\u0092'
+#endif
+void *tu146 = U"\u0092";
+#if U'\U00000092'
+#endif
+void *tU146 = U"\U00000092";
+#if U'\u0093'
+#endif
+void *tu147 = U"\u0093";
+#if U'\U00000093'
+#endif
+void *tU147 = U"\U00000093";
+#if U'\u0094'
+#endif
+void *tu148 = U"\u0094";
+#if U'\U00000094'
+#endif
+void *tU148 = U"\U00000094";
+#if U'\u0095'
+#endif
+void *tu149 = U"\u0095";
+#if U'\U00000095'
+#endif
+void *tU149 = U"\U00000095";
+#if U'\u0096'
+#endif
+void *tu150 = U"\u0096";
+#if U'\U00000096'
+#endif
+void *tU150 = U"\U00000096";
+#if U'\u0097'
+#endif
+void *tu151 = U"\u0097";
+#if U'\U00000097'
+#endif
+void *tU151 = U"\U00000097";
+#if U'\u0098'
+#endif
+void *tu152 = U"\u0098";
+#if U'\U00000098'
+#endif
+void *tU152 = U"\U00000098";
+#if U'\u0099'
+#endif
+void *tu153 = U"\u0099";
+#if U'\U00000099'
+#endif
+void *tU153 = U"\U00000099";
+#if U'\u009a'
+#endif
+void *tu154 = U"\u009a";
+#if U'\U0000009a'
+#endif
+void *tU154 = U"\U0000009a";
+#if U'\u009b'
+#endif
+void *tu155 = U"\u009b";
+#if U'\U0000009b'
+#endif
+void *tU155 = U"\U0000009b";
+#if U'\u009c'
+#endif
+void *tu156 = U"\u009c";
+#if U'\U0000009c'
+#endif
+void *tU156 = U"\U0000009c";
+#if U'\u009d'
+#endif
+void *tu157 = U"\u009d";
+#if U'\U0000009d'
+#endif
+void *tU157 = U"\U0000009d";
+#if U'\u009e'
+#endif
+void *tu158 = U"\u009e";
+#if U'\U0000009e'
+#endif
+void *tU158 = U"\U0000009e";
+#if U'\u009f'
+#endif
+void *tu159 = U"\u009f";
+#if U'\U0000009f'
+#endif
+void *tU159 = U"\U0000009f";
+#if U'\u00a0'
+#endif
+void *tu160 = U"\u00a0";
+#if U'\U000000a0'
+#endif
+void *tU160 = U"\U000000a0";
+
+#if U'\ud800' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tud800 = U"\ud800"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000d800' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUd800 = U"\U0000d800"; /* { dg-error "is not a valid universal character" } */
+
+#if U'\udfff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tudfff = U"\udfff"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000dfff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUdfff = U"\U0000dfff"; /* { dg-error "is not a valid universal character" } */
+
+#if U'\U0010ffff'
+#endif
+void *tU10ffff = U"\U0010ffff";
+
+/* It's less clear whether C requires this to be rejected before C23, but GCC
+   chooses to do so.  */
+#if U'\U00110000' /* { dg-warning "is outside the UCS codespace" } */
+#endif
+void *tU110000 = U"\U00110000"; /* { dg-warning "is outside the UCS codespace" } */
+
+#if U'\Uffffffff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUffffffff = U"\Uffffffff"; /* { dg-error "is not a valid universal character" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/c17-ucn-4.c b/gcc/testsuite/gcc.dg/cpp/c17-ucn-4.c
new file mode 100644
index 000000000000..37a0fc84066a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/c17-ucn-4.c
@@ -0,0 +1,998 @@ 
+/* Test characters not permitted in UCNs in C17: -Wc11-c23-compat.  */
+/* { dg-do compile } */
+/* { dg-options "-std=c17 -Wc11-c23-compat" } */
+
+#if U'\u0000' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu0 = U"\u0000"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000000' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU0 = U"\U00000000"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0001' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu1 = U"\u0001"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000001' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU1 = U"\U00000001"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0002' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu2 = U"\u0002"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000002' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU2 = U"\U00000002"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0003' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu3 = U"\u0003"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000003' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU3 = U"\U00000003"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0004' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu4 = U"\u0004"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000004' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU4 = U"\U00000004"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0005' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu5 = U"\u0005"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000005' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU5 = U"\U00000005"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0006' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu6 = U"\u0006"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000006' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU6 = U"\U00000006"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0007' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu7 = U"\u0007"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000007' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU7 = U"\U00000007"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0008' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu8 = U"\u0008"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000008' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU8 = U"\U00000008"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0009' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu9 = U"\u0009"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000009' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU9 = U"\U00000009"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu10 = U"\u000a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU10 = U"\U0000000a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu11 = U"\u000b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU11 = U"\U0000000b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu12 = U"\u000c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU12 = U"\U0000000c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu13 = U"\u000d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU13 = U"\U0000000d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu14 = U"\u000e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU14 = U"\U0000000e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu15 = U"\u000f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU15 = U"\U0000000f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0010' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu16 = U"\u0010"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000010' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU16 = U"\U00000010"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0011' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu17 = U"\u0011"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000011' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU17 = U"\U00000011"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0012' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu18 = U"\u0012"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000012' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU18 = U"\U00000012"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0013' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu19 = U"\u0013"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000013' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU19 = U"\U00000013"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0014' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu20 = U"\u0014"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000014' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU20 = U"\U00000014"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0015' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu21 = U"\u0015"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000015' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU21 = U"\U00000015"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0016' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu22 = U"\u0016"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000016' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU22 = U"\U00000016"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0017' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu23 = U"\u0017"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000017' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU23 = U"\U00000017"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0018' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu24 = U"\u0018"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000018' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU24 = U"\U00000018"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0019' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu25 = U"\u0019"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000019' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU25 = U"\U00000019"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu26 = U"\u001a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU26 = U"\U0000001a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu27 = U"\u001b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU27 = U"\U0000001b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu28 = U"\u001c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU28 = U"\U0000001c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu29 = U"\u001d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU29 = U"\U0000001d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu30 = U"\u001e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU30 = U"\U0000001e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu31 = U"\u001f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU31 = U"\U0000001f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0020' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu32 = U"\u0020"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000020' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU32 = U"\U00000020"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0021' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu33 = U"\u0021"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000021' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU33 = U"\U00000021"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0022' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu34 = U"\u0022"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000022' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU34 = U"\U00000022"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0023' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu35 = U"\u0023"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000023' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU35 = U"\U00000023"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0024'
+#endif
+void *tu36 = U"\u0024";
+#if U'\U00000024'
+#endif
+void *tU36 = U"\U00000024";
+#if U'\u0025' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu37 = U"\u0025"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000025' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU37 = U"\U00000025"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0026' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu38 = U"\u0026"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000026' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU38 = U"\U00000026"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0027' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu39 = U"\u0027"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000027' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU39 = U"\U00000027"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0028' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu40 = U"\u0028"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000028' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU40 = U"\U00000028"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0029' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu41 = U"\u0029"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000029' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU41 = U"\U00000029"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu42 = U"\u002a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU42 = U"\U0000002a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu43 = U"\u002b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU43 = U"\U0000002b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu44 = U"\u002c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU44 = U"\U0000002c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu45 = U"\u002d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU45 = U"\U0000002d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu46 = U"\u002e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU46 = U"\U0000002e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu47 = U"\u002f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU47 = U"\U0000002f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0030' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu48 = U"\u0030"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000030' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU48 = U"\U00000030"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0031' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu49 = U"\u0031"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000031' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU49 = U"\U00000031"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0032' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu50 = U"\u0032"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000032' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU50 = U"\U00000032"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0033' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu51 = U"\u0033"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000033' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU51 = U"\U00000033"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0034' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu52 = U"\u0034"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000034' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU52 = U"\U00000034"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0035' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu53 = U"\u0035"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000035' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU53 = U"\U00000035"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0036' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu54 = U"\u0036"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000036' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU54 = U"\U00000036"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0037' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu55 = U"\u0037"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000037' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU55 = U"\U00000037"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0038' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu56 = U"\u0038"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000038' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU56 = U"\U00000038"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0039' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu57 = U"\u0039"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000039' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU57 = U"\U00000039"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu58 = U"\u003a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU58 = U"\U0000003a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu59 = U"\u003b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU59 = U"\U0000003b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu60 = U"\u003c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU60 = U"\U0000003c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu61 = U"\u003d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU61 = U"\U0000003d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu62 = U"\u003e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU62 = U"\U0000003e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu63 = U"\u003f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU63 = U"\U0000003f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0040'
+#endif
+void *tu64 = U"\u0040";
+#if U'\U00000040'
+#endif
+void *tU64 = U"\U00000040";
+#if U'\u0041' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu65 = U"\u0041"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000041' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU65 = U"\U00000041"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0042' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu66 = U"\u0042"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000042' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU66 = U"\U00000042"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0043' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu67 = U"\u0043"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000043' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU67 = U"\U00000043"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0044' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu68 = U"\u0044"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000044' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU68 = U"\U00000044"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0045' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu69 = U"\u0045"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000045' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU69 = U"\U00000045"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0046' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu70 = U"\u0046"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000046' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU70 = U"\U00000046"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0047' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu71 = U"\u0047"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000047' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU71 = U"\U00000047"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0048' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu72 = U"\u0048"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000048' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU72 = U"\U00000048"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0049' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu73 = U"\u0049"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000049' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU73 = U"\U00000049"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu74 = U"\u004a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU74 = U"\U0000004a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu75 = U"\u004b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU75 = U"\U0000004b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu76 = U"\u004c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU76 = U"\U0000004c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu77 = U"\u004d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU77 = U"\U0000004d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu78 = U"\u004e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU78 = U"\U0000004e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu79 = U"\u004f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU79 = U"\U0000004f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0050' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu80 = U"\u0050"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000050' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU80 = U"\U00000050"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0051' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu81 = U"\u0051"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000051' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU81 = U"\U00000051"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0052' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu82 = U"\u0052"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000052' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU82 = U"\U00000052"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0053' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu83 = U"\u0053"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000053' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU83 = U"\U00000053"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0054' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu84 = U"\u0054"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000054' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU84 = U"\U00000054"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0055' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu85 = U"\u0055"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000055' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU85 = U"\U00000055"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0056' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu86 = U"\u0056"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000056' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU86 = U"\U00000056"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0057' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu87 = U"\u0057"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000057' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU87 = U"\U00000057"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0058' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu88 = U"\u0058"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000058' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU88 = U"\U00000058"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0059' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu89 = U"\u0059"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000059' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU89 = U"\U00000059"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu90 = U"\u005a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU90 = U"\U0000005a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu91 = U"\u005b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU91 = U"\U0000005b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu92 = U"\u005c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU92 = U"\U0000005c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu93 = U"\u005d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU93 = U"\U0000005d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu94 = U"\u005e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU94 = U"\U0000005e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu95 = U"\u005f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU95 = U"\U0000005f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0060'
+#endif
+void *tu96 = U"\u0060";
+#if U'\U00000060'
+#endif
+void *tU96 = U"\U00000060";
+#if U'\u0061' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu97 = U"\u0061"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000061' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU97 = U"\U00000061"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0062' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu98 = U"\u0062"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000062' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU98 = U"\U00000062"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0063' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu99 = U"\u0063"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000063' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU99 = U"\U00000063"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0064' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu100 = U"\u0064"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000064' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU100 = U"\U00000064"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0065' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu101 = U"\u0065"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000065' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU101 = U"\U00000065"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0066' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu102 = U"\u0066"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000066' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU102 = U"\U00000066"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0067' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu103 = U"\u0067"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000067' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU103 = U"\U00000067"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0068' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu104 = U"\u0068"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000068' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU104 = U"\U00000068"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0069' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu105 = U"\u0069"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000069' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU105 = U"\U00000069"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu106 = U"\u006a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU106 = U"\U0000006a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu107 = U"\u006b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU107 = U"\U0000006b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu108 = U"\u006c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU108 = U"\U0000006c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu109 = U"\u006d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU109 = U"\U0000006d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu110 = U"\u006e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU110 = U"\U0000006e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu111 = U"\u006f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU111 = U"\U0000006f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0070' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu112 = U"\u0070"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000070' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU112 = U"\U00000070"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0071' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu113 = U"\u0071"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000071' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU113 = U"\U00000071"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0072' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu114 = U"\u0072"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000072' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU114 = U"\U00000072"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0073' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu115 = U"\u0073"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000073' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU115 = U"\U00000073"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0074' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu116 = U"\u0074"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000074' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU116 = U"\U00000074"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0075' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu117 = U"\u0075"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000075' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU117 = U"\U00000075"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0076' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu118 = U"\u0076"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000076' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU118 = U"\U00000076"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0077' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu119 = U"\u0077"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000077' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU119 = U"\U00000077"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0078' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu120 = U"\u0078"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000078' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU120 = U"\U00000078"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0079' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu121 = U"\u0079"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000079' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU121 = U"\U00000079"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu122 = U"\u007a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU122 = U"\U0000007a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu123 = U"\u007b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU123 = U"\U0000007b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu124 = U"\u007c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU124 = U"\U0000007c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu125 = U"\u007d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU125 = U"\U0000007d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu126 = U"\u007e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU126 = U"\U0000007e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu127 = U"\u007f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU127 = U"\U0000007f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0080' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu128 = U"\u0080"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000080' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU128 = U"\U00000080"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0081' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu129 = U"\u0081"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000081' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU129 = U"\U00000081"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0082' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu130 = U"\u0082"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000082' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU130 = U"\U00000082"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0083' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu131 = U"\u0083"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000083' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU131 = U"\U00000083"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0084' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu132 = U"\u0084"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000084' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU132 = U"\U00000084"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0085' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu133 = U"\u0085"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000085' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU133 = U"\U00000085"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0086' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu134 = U"\u0086"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000086' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU134 = U"\U00000086"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0087' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu135 = U"\u0087"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000087' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU135 = U"\U00000087"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0088' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu136 = U"\u0088"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000088' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU136 = U"\U00000088"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0089' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu137 = U"\u0089"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000089' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU137 = U"\U00000089"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu138 = U"\u008a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU138 = U"\U0000008a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu139 = U"\u008b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU139 = U"\U0000008b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu140 = U"\u008c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU140 = U"\U0000008c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu141 = U"\u008d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU141 = U"\U0000008d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu142 = U"\u008e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU142 = U"\U0000008e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu143 = U"\u008f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU143 = U"\U0000008f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0090' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu144 = U"\u0090"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000090' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU144 = U"\U00000090"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0091' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu145 = U"\u0091"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000091' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU145 = U"\U00000091"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0092' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu146 = U"\u0092"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000092' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU146 = U"\U00000092"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0093' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu147 = U"\u0093"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000093' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU147 = U"\U00000093"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0094' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu148 = U"\u0094"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000094' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU148 = U"\U00000094"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0095' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu149 = U"\u0095"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000095' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU149 = U"\U00000095"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0096' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu150 = U"\u0096"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000096' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU150 = U"\U00000096"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0097' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu151 = U"\u0097"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000097' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU151 = U"\U00000097"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0098' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu152 = U"\u0098"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000098' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU152 = U"\U00000098"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0099' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu153 = U"\u0099"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000099' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU153 = U"\U00000099"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu154 = U"\u009a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU154 = U"\U0000009a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu155 = U"\u009b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU155 = U"\U0000009b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu156 = U"\u009c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU156 = U"\U0000009c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu157 = U"\u009d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU157 = U"\U0000009d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu158 = U"\u009e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU158 = U"\U0000009e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu159 = U"\u009f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU159 = U"\U0000009f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u00a0'
+#endif
+void *tu160 = U"\u00a0";
+#if U'\U000000a0'
+#endif
+void *tU160 = U"\U000000a0";
+
+#if U'\ud800' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tud800 = U"\ud800"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000d800' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUd800 = U"\U0000d800"; /* { dg-error "is not a valid universal character" } */
+
+#if U'\udfff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tudfff = U"\udfff"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000dfff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUdfff = U"\U0000dfff"; /* { dg-error "is not a valid universal character" } */
+
+#if U'\U0010ffff'
+#endif
+void *tU10ffff = U"\U0010ffff";
+
+/* It's less clear whether C requires this to be rejected before C23, but GCC
+   chooses to do so.  */
+#if U'\U00110000' /* { dg-warning "is outside the UCS codespace" } */
+#endif
+void *tU110000 = U"\U00110000"; /* { dg-warning "is outside the UCS codespace" } */
+
+#if U'\Uffffffff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUffffffff = U"\Uffffffff"; /* { dg-error "is not a valid universal character" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/c23-ucn-1.c b/gcc/testsuite/gcc.dg/cpp/c23-ucn-1.c
index f89cfc6f8f7e..22f0642adea8 100644
--- a/gcc/testsuite/gcc.dg/cpp/c23-ucn-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/c23-ucn-1.c
@@ -2,966 +2,966 @@ 
 /* { dg-do compile } */
 /* { dg-options "-std=c23 -pedantic-errors" } */
 
-#if U'\u0000' /* { dg-error "is not a valid universal character" } */
+#if U'\u0000'
 #endif
-void *tu0 = U"\u0000"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000000' /* { dg-error "is not a valid universal character" } */
+void *tu0 = U"\u0000";
+#if U'\U00000000'
 #endif
-void *tU0 = U"\U00000000"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0001' /* { dg-error "is not a valid universal character" } */
+void *tU0 = U"\U00000000";
+#if U'\u0001'
 #endif
-void *tu1 = U"\u0001"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000001' /* { dg-error "is not a valid universal character" } */
+void *tu1 = U"\u0001";
+#if U'\U00000001'
 #endif
-void *tU1 = U"\U00000001"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0002' /* { dg-error "is not a valid universal character" } */
+void *tU1 = U"\U00000001";
+#if U'\u0002'
 #endif
-void *tu2 = U"\u0002"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000002' /* { dg-error "is not a valid universal character" } */
+void *tu2 = U"\u0002";
+#if U'\U00000002'
 #endif
-void *tU2 = U"\U00000002"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0003' /* { dg-error "is not a valid universal character" } */
+void *tU2 = U"\U00000002";
+#if U'\u0003'
 #endif
-void *tu3 = U"\u0003"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000003' /* { dg-error "is not a valid universal character" } */
+void *tu3 = U"\u0003";
+#if U'\U00000003'
 #endif
-void *tU3 = U"\U00000003"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0004' /* { dg-error "is not a valid universal character" } */
+void *tU3 = U"\U00000003";
+#if U'\u0004'
 #endif
-void *tu4 = U"\u0004"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000004' /* { dg-error "is not a valid universal character" } */
+void *tu4 = U"\u0004";
+#if U'\U00000004'
 #endif
-void *tU4 = U"\U00000004"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0005' /* { dg-error "is not a valid universal character" } */
+void *tU4 = U"\U00000004";
+#if U'\u0005'
 #endif
-void *tu5 = U"\u0005"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000005' /* { dg-error "is not a valid universal character" } */
+void *tu5 = U"\u0005";
+#if U'\U00000005'
 #endif
-void *tU5 = U"\U00000005"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0006' /* { dg-error "is not a valid universal character" } */
+void *tU5 = U"\U00000005";
+#if U'\u0006'
 #endif
-void *tu6 = U"\u0006"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000006' /* { dg-error "is not a valid universal character" } */
+void *tu6 = U"\u0006";
+#if U'\U00000006'
 #endif
-void *tU6 = U"\U00000006"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0007' /* { dg-error "is not a valid universal character" } */
+void *tU6 = U"\U00000006";
+#if U'\u0007'
 #endif
-void *tu7 = U"\u0007"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000007' /* { dg-error "is not a valid universal character" } */
+void *tu7 = U"\u0007";
+#if U'\U00000007'
 #endif
-void *tU7 = U"\U00000007"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0008' /* { dg-error "is not a valid universal character" } */
+void *tU7 = U"\U00000007";
+#if U'\u0008'
 #endif
-void *tu8 = U"\u0008"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000008' /* { dg-error "is not a valid universal character" } */
+void *tu8 = U"\u0008";
+#if U'\U00000008'
 #endif
-void *tU8 = U"\U00000008"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0009' /* { dg-error "is not a valid universal character" } */
+void *tU8 = U"\U00000008";
+#if U'\u0009'
 #endif
-void *tu9 = U"\u0009"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000009' /* { dg-error "is not a valid universal character" } */
+void *tu9 = U"\u0009";
+#if U'\U00000009'
 #endif
-void *tU9 = U"\U00000009"; /* { dg-error "is not a valid universal character" } */
-#if U'\u000a' /* { dg-error "is not a valid universal character" } */
+void *tU9 = U"\U00000009";
+#if U'\u000a'
 #endif
-void *tu10 = U"\u000a"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000000a' /* { dg-error "is not a valid universal character" } */
+void *tu10 = U"\u000a";
+#if U'\U0000000a'
 #endif
-void *tU10 = U"\U0000000a"; /* { dg-error "is not a valid universal character" } */
-#if U'\u000b' /* { dg-error "is not a valid universal character" } */
+void *tU10 = U"\U0000000a";
+#if U'\u000b'
 #endif
-void *tu11 = U"\u000b"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000000b' /* { dg-error "is not a valid universal character" } */
+void *tu11 = U"\u000b";
+#if U'\U0000000b'
 #endif
-void *tU11 = U"\U0000000b"; /* { dg-error "is not a valid universal character" } */
-#if U'\u000c' /* { dg-error "is not a valid universal character" } */
+void *tU11 = U"\U0000000b";
+#if U'\u000c'
 #endif
-void *tu12 = U"\u000c"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000000c' /* { dg-error "is not a valid universal character" } */
+void *tu12 = U"\u000c";
+#if U'\U0000000c'
 #endif
-void *tU12 = U"\U0000000c"; /* { dg-error "is not a valid universal character" } */
-#if U'\u000d' /* { dg-error "is not a valid universal character" } */
+void *tU12 = U"\U0000000c";
+#if U'\u000d'
 #endif
-void *tu13 = U"\u000d"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000000d' /* { dg-error "is not a valid universal character" } */
+void *tu13 = U"\u000d";
+#if U'\U0000000d'
 #endif
-void *tU13 = U"\U0000000d"; /* { dg-error "is not a valid universal character" } */
-#if U'\u000e' /* { dg-error "is not a valid universal character" } */
+void *tU13 = U"\U0000000d";
+#if U'\u000e'
 #endif
-void *tu14 = U"\u000e"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000000e' /* { dg-error "is not a valid universal character" } */
+void *tu14 = U"\u000e";
+#if U'\U0000000e'
 #endif
-void *tU14 = U"\U0000000e"; /* { dg-error "is not a valid universal character" } */
-#if U'\u000f' /* { dg-error "is not a valid universal character" } */
+void *tU14 = U"\U0000000e";
+#if U'\u000f'
 #endif
-void *tu15 = U"\u000f"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000000f' /* { dg-error "is not a valid universal character" } */
+void *tu15 = U"\u000f";
+#if U'\U0000000f'
 #endif
-void *tU15 = U"\U0000000f"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0010' /* { dg-error "is not a valid universal character" } */
+void *tU15 = U"\U0000000f";
+#if U'\u0010'
 #endif
-void *tu16 = U"\u0010"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000010' /* { dg-error "is not a valid universal character" } */
+void *tu16 = U"\u0010";
+#if U'\U00000010'
 #endif
-void *tU16 = U"\U00000010"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0011' /* { dg-error "is not a valid universal character" } */
+void *tU16 = U"\U00000010";
+#if U'\u0011'
 #endif
-void *tu17 = U"\u0011"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000011' /* { dg-error "is not a valid universal character" } */
+void *tu17 = U"\u0011";
+#if U'\U00000011'
 #endif
-void *tU17 = U"\U00000011"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0012' /* { dg-error "is not a valid universal character" } */
+void *tU17 = U"\U00000011";
+#if U'\u0012'
 #endif
-void *tu18 = U"\u0012"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000012' /* { dg-error "is not a valid universal character" } */
+void *tu18 = U"\u0012";
+#if U'\U00000012'
 #endif
-void *tU18 = U"\U00000012"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0013' /* { dg-error "is not a valid universal character" } */
+void *tU18 = U"\U00000012";
+#if U'\u0013'
 #endif
-void *tu19 = U"\u0013"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000013' /* { dg-error "is not a valid universal character" } */
+void *tu19 = U"\u0013";
+#if U'\U00000013'
 #endif
-void *tU19 = U"\U00000013"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0014' /* { dg-error "is not a valid universal character" } */
+void *tU19 = U"\U00000013";
+#if U'\u0014'
 #endif
-void *tu20 = U"\u0014"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000014' /* { dg-error "is not a valid universal character" } */
+void *tu20 = U"\u0014";
+#if U'\U00000014'
 #endif
-void *tU20 = U"\U00000014"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0015' /* { dg-error "is not a valid universal character" } */
+void *tU20 = U"\U00000014";
+#if U'\u0015'
 #endif
-void *tu21 = U"\u0015"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000015' /* { dg-error "is not a valid universal character" } */
+void *tu21 = U"\u0015";
+#if U'\U00000015'
 #endif
-void *tU21 = U"\U00000015"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0016' /* { dg-error "is not a valid universal character" } */
+void *tU21 = U"\U00000015";
+#if U'\u0016'
 #endif
-void *tu22 = U"\u0016"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000016' /* { dg-error "is not a valid universal character" } */
+void *tu22 = U"\u0016";
+#if U'\U00000016'
 #endif
-void *tU22 = U"\U00000016"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0017' /* { dg-error "is not a valid universal character" } */
+void *tU22 = U"\U00000016";
+#if U'\u0017'
 #endif
-void *tu23 = U"\u0017"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000017' /* { dg-error "is not a valid universal character" } */
+void *tu23 = U"\u0017";
+#if U'\U00000017'
 #endif
-void *tU23 = U"\U00000017"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0018' /* { dg-error "is not a valid universal character" } */
+void *tU23 = U"\U00000017";
+#if U'\u0018'
 #endif
-void *tu24 = U"\u0018"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000018' /* { dg-error "is not a valid universal character" } */
+void *tu24 = U"\u0018";
+#if U'\U00000018'
 #endif
-void *tU24 = U"\U00000018"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0019' /* { dg-error "is not a valid universal character" } */
+void *tU24 = U"\U00000018";
+#if U'\u0019'
 #endif
-void *tu25 = U"\u0019"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000019' /* { dg-error "is not a valid universal character" } */
+void *tu25 = U"\u0019";
+#if U'\U00000019'
 #endif
-void *tU25 = U"\U00000019"; /* { dg-error "is not a valid universal character" } */
-#if U'\u001a' /* { dg-error "is not a valid universal character" } */
+void *tU25 = U"\U00000019";
+#if U'\u001a'
 #endif
-void *tu26 = U"\u001a"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000001a' /* { dg-error "is not a valid universal character" } */
+void *tu26 = U"\u001a";
+#if U'\U0000001a'
 #endif
-void *tU26 = U"\U0000001a"; /* { dg-error "is not a valid universal character" } */
-#if U'\u001b' /* { dg-error "is not a valid universal character" } */
+void *tU26 = U"\U0000001a";
+#if U'\u001b'
 #endif
-void *tu27 = U"\u001b"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000001b' /* { dg-error "is not a valid universal character" } */
+void *tu27 = U"\u001b";
+#if U'\U0000001b'
 #endif
-void *tU27 = U"\U0000001b"; /* { dg-error "is not a valid universal character" } */
-#if U'\u001c' /* { dg-error "is not a valid universal character" } */
+void *tU27 = U"\U0000001b";
+#if U'\u001c'
 #endif
-void *tu28 = U"\u001c"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000001c' /* { dg-error "is not a valid universal character" } */
+void *tu28 = U"\u001c";
+#if U'\U0000001c'
 #endif
-void *tU28 = U"\U0000001c"; /* { dg-error "is not a valid universal character" } */
-#if U'\u001d' /* { dg-error "is not a valid universal character" } */
+void *tU28 = U"\U0000001c";
+#if U'\u001d'
 #endif
-void *tu29 = U"\u001d"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000001d' /* { dg-error "is not a valid universal character" } */
+void *tu29 = U"\u001d";
+#if U'\U0000001d'
 #endif
-void *tU29 = U"\U0000001d"; /* { dg-error "is not a valid universal character" } */
-#if U'\u001e' /* { dg-error "is not a valid universal character" } */
+void *tU29 = U"\U0000001d";
+#if U'\u001e'
 #endif
-void *tu30 = U"\u001e"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000001e' /* { dg-error "is not a valid universal character" } */
+void *tu30 = U"\u001e";
+#if U'\U0000001e'
 #endif
-void *tU30 = U"\U0000001e"; /* { dg-error "is not a valid universal character" } */
-#if U'\u001f' /* { dg-error "is not a valid universal character" } */
+void *tU30 = U"\U0000001e";
+#if U'\u001f'
 #endif
-void *tu31 = U"\u001f"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000001f' /* { dg-error "is not a valid universal character" } */
+void *tu31 = U"\u001f";
+#if U'\U0000001f'
 #endif
-void *tU31 = U"\U0000001f"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0020' /* { dg-error "is not a valid universal character" } */
+void *tU31 = U"\U0000001f";
+#if U'\u0020'
 #endif
-void *tu32 = U"\u0020"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000020' /* { dg-error "is not a valid universal character" } */
+void *tu32 = U"\u0020";
+#if U'\U00000020'
 #endif
-void *tU32 = U"\U00000020"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0021' /* { dg-error "is not a valid universal character" } */
+void *tU32 = U"\U00000020";
+#if U'\u0021'
 #endif
-void *tu33 = U"\u0021"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000021' /* { dg-error "is not a valid universal character" } */
+void *tu33 = U"\u0021";
+#if U'\U00000021'
 #endif
-void *tU33 = U"\U00000021"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0022' /* { dg-error "is not a valid universal character" } */
+void *tU33 = U"\U00000021";
+#if U'\u0022'
 #endif
-void *tu34 = U"\u0022"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000022' /* { dg-error "is not a valid universal character" } */
+void *tu34 = U"\u0022";
+#if U'\U00000022'
 #endif
-void *tU34 = U"\U00000022"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0023' /* { dg-error "is not a valid universal character" } */
+void *tU34 = U"\U00000022";
+#if U'\u0023'
 #endif
-void *tu35 = U"\u0023"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000023' /* { dg-error "is not a valid universal character" } */
+void *tu35 = U"\u0023";
+#if U'\U00000023'
 #endif
-void *tU35 = U"\U00000023"; /* { dg-error "is not a valid universal character" } */
+void *tU35 = U"\U00000023";
 #if U'\u0024'
 #endif
 void *tu36 = U"\u0024";
 #if U'\U00000024'
 #endif
 void *tU36 = U"\U00000024";
-#if U'\u0025' /* { dg-error "is not a valid universal character" } */
+#if U'\u0025'
 #endif
-void *tu37 = U"\u0025"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000025' /* { dg-error "is not a valid universal character" } */
+void *tu37 = U"\u0025";
+#if U'\U00000025'
 #endif
-void *tU37 = U"\U00000025"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0026' /* { dg-error "is not a valid universal character" } */
+void *tU37 = U"\U00000025";
+#if U'\u0026'
 #endif
-void *tu38 = U"\u0026"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000026' /* { dg-error "is not a valid universal character" } */
+void *tu38 = U"\u0026";
+#if U'\U00000026'
 #endif
-void *tU38 = U"\U00000026"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0027' /* { dg-error "is not a valid universal character" } */
+void *tU38 = U"\U00000026";
+#if U'\u0027'
 #endif
-void *tu39 = U"\u0027"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000027' /* { dg-error "is not a valid universal character" } */
+void *tu39 = U"\u0027";
+#if U'\U00000027'
 #endif
-void *tU39 = U"\U00000027"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0028' /* { dg-error "is not a valid universal character" } */
+void *tU39 = U"\U00000027";
+#if U'\u0028'
 #endif
-void *tu40 = U"\u0028"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000028' /* { dg-error "is not a valid universal character" } */
+void *tu40 = U"\u0028";
+#if U'\U00000028'
 #endif
-void *tU40 = U"\U00000028"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0029' /* { dg-error "is not a valid universal character" } */
+void *tU40 = U"\U00000028";
+#if U'\u0029'
 #endif
-void *tu41 = U"\u0029"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000029' /* { dg-error "is not a valid universal character" } */
+void *tu41 = U"\u0029";
+#if U'\U00000029'
 #endif
-void *tU41 = U"\U00000029"; /* { dg-error "is not a valid universal character" } */
-#if U'\u002a' /* { dg-error "is not a valid universal character" } */
+void *tU41 = U"\U00000029";
+#if U'\u002a'
 #endif
-void *tu42 = U"\u002a"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000002a' /* { dg-error "is not a valid universal character" } */
+void *tu42 = U"\u002a";
+#if U'\U0000002a'
 #endif
-void *tU42 = U"\U0000002a"; /* { dg-error "is not a valid universal character" } */
-#if U'\u002b' /* { dg-error "is not a valid universal character" } */
+void *tU42 = U"\U0000002a";
+#if U'\u002b'
 #endif
-void *tu43 = U"\u002b"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000002b' /* { dg-error "is not a valid universal character" } */
+void *tu43 = U"\u002b";
+#if U'\U0000002b'
 #endif
-void *tU43 = U"\U0000002b"; /* { dg-error "is not a valid universal character" } */
-#if U'\u002c' /* { dg-error "is not a valid universal character" } */
+void *tU43 = U"\U0000002b";
+#if U'\u002c'
 #endif
-void *tu44 = U"\u002c"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000002c' /* { dg-error "is not a valid universal character" } */
+void *tu44 = U"\u002c";
+#if U'\U0000002c'
 #endif
-void *tU44 = U"\U0000002c"; /* { dg-error "is not a valid universal character" } */
-#if U'\u002d' /* { dg-error "is not a valid universal character" } */
+void *tU44 = U"\U0000002c";
+#if U'\u002d'
 #endif
-void *tu45 = U"\u002d"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000002d' /* { dg-error "is not a valid universal character" } */
+void *tu45 = U"\u002d";
+#if U'\U0000002d'
 #endif
-void *tU45 = U"\U0000002d"; /* { dg-error "is not a valid universal character" } */
-#if U'\u002e' /* { dg-error "is not a valid universal character" } */
+void *tU45 = U"\U0000002d";
+#if U'\u002e'
 #endif
-void *tu46 = U"\u002e"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000002e' /* { dg-error "is not a valid universal character" } */
+void *tu46 = U"\u002e";
+#if U'\U0000002e'
 #endif
-void *tU46 = U"\U0000002e"; /* { dg-error "is not a valid universal character" } */
-#if U'\u002f' /* { dg-error "is not a valid universal character" } */
+void *tU46 = U"\U0000002e";
+#if U'\u002f'
 #endif
-void *tu47 = U"\u002f"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000002f' /* { dg-error "is not a valid universal character" } */
+void *tu47 = U"\u002f";
+#if U'\U0000002f'
 #endif
-void *tU47 = U"\U0000002f"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0030' /* { dg-error "is not a valid universal character" } */
+void *tU47 = U"\U0000002f";
+#if U'\u0030'
 #endif
-void *tu48 = U"\u0030"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000030' /* { dg-error "is not a valid universal character" } */
+void *tu48 = U"\u0030";
+#if U'\U00000030'
 #endif
-void *tU48 = U"\U00000030"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0031' /* { dg-error "is not a valid universal character" } */
+void *tU48 = U"\U00000030";
+#if U'\u0031'
 #endif
-void *tu49 = U"\u0031"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000031' /* { dg-error "is not a valid universal character" } */
+void *tu49 = U"\u0031";
+#if U'\U00000031'
 #endif
-void *tU49 = U"\U00000031"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0032' /* { dg-error "is not a valid universal character" } */
+void *tU49 = U"\U00000031";
+#if U'\u0032'
 #endif
-void *tu50 = U"\u0032"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000032' /* { dg-error "is not a valid universal character" } */
+void *tu50 = U"\u0032";
+#if U'\U00000032'
 #endif
-void *tU50 = U"\U00000032"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0033' /* { dg-error "is not a valid universal character" } */
+void *tU50 = U"\U00000032";
+#if U'\u0033'
 #endif
-void *tu51 = U"\u0033"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000033' /* { dg-error "is not a valid universal character" } */
+void *tu51 = U"\u0033";
+#if U'\U00000033'
 #endif
-void *tU51 = U"\U00000033"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0034' /* { dg-error "is not a valid universal character" } */
+void *tU51 = U"\U00000033";
+#if U'\u0034'
 #endif
-void *tu52 = U"\u0034"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000034' /* { dg-error "is not a valid universal character" } */
+void *tu52 = U"\u0034";
+#if U'\U00000034'
 #endif
-void *tU52 = U"\U00000034"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0035' /* { dg-error "is not a valid universal character" } */
+void *tU52 = U"\U00000034";
+#if U'\u0035'
 #endif
-void *tu53 = U"\u0035"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000035' /* { dg-error "is not a valid universal character" } */
+void *tu53 = U"\u0035";
+#if U'\U00000035'
 #endif
-void *tU53 = U"\U00000035"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0036' /* { dg-error "is not a valid universal character" } */
+void *tU53 = U"\U00000035";
+#if U'\u0036'
 #endif
-void *tu54 = U"\u0036"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000036' /* { dg-error "is not a valid universal character" } */
+void *tu54 = U"\u0036";
+#if U'\U00000036'
 #endif
-void *tU54 = U"\U00000036"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0037' /* { dg-error "is not a valid universal character" } */
+void *tU54 = U"\U00000036";
+#if U'\u0037'
 #endif
-void *tu55 = U"\u0037"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000037' /* { dg-error "is not a valid universal character" } */
+void *tu55 = U"\u0037";
+#if U'\U00000037'
 #endif
-void *tU55 = U"\U00000037"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0038' /* { dg-error "is not a valid universal character" } */
+void *tU55 = U"\U00000037";
+#if U'\u0038'
 #endif
-void *tu56 = U"\u0038"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000038' /* { dg-error "is not a valid universal character" } */
+void *tu56 = U"\u0038";
+#if U'\U00000038'
 #endif
-void *tU56 = U"\U00000038"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0039' /* { dg-error "is not a valid universal character" } */
+void *tU56 = U"\U00000038";
+#if U'\u0039'
 #endif
-void *tu57 = U"\u0039"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000039' /* { dg-error "is not a valid universal character" } */
+void *tu57 = U"\u0039";
+#if U'\U00000039'
 #endif
-void *tU57 = U"\U00000039"; /* { dg-error "is not a valid universal character" } */
-#if U'\u003a' /* { dg-error "is not a valid universal character" } */
+void *tU57 = U"\U00000039";
+#if U'\u003a'
 #endif
-void *tu58 = U"\u003a"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000003a' /* { dg-error "is not a valid universal character" } */
+void *tu58 = U"\u003a";
+#if U'\U0000003a'
 #endif
-void *tU58 = U"\U0000003a"; /* { dg-error "is not a valid universal character" } */
-#if U'\u003b' /* { dg-error "is not a valid universal character" } */
+void *tU58 = U"\U0000003a";
+#if U'\u003b'
 #endif
-void *tu59 = U"\u003b"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000003b' /* { dg-error "is not a valid universal character" } */
+void *tu59 = U"\u003b";
+#if U'\U0000003b'
 #endif
-void *tU59 = U"\U0000003b"; /* { dg-error "is not a valid universal character" } */
-#if U'\u003c' /* { dg-error "is not a valid universal character" } */
+void *tU59 = U"\U0000003b";
+#if U'\u003c'
 #endif
-void *tu60 = U"\u003c"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000003c' /* { dg-error "is not a valid universal character" } */
+void *tu60 = U"\u003c";
+#if U'\U0000003c'
 #endif
-void *tU60 = U"\U0000003c"; /* { dg-error "is not a valid universal character" } */
-#if U'\u003d' /* { dg-error "is not a valid universal character" } */
+void *tU60 = U"\U0000003c";
+#if U'\u003d'
 #endif
-void *tu61 = U"\u003d"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000003d' /* { dg-error "is not a valid universal character" } */
+void *tu61 = U"\u003d";
+#if U'\U0000003d'
 #endif
-void *tU61 = U"\U0000003d"; /* { dg-error "is not a valid universal character" } */
-#if U'\u003e' /* { dg-error "is not a valid universal character" } */
+void *tU61 = U"\U0000003d";
+#if U'\u003e'
 #endif
-void *tu62 = U"\u003e"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000003e' /* { dg-error "is not a valid universal character" } */
+void *tu62 = U"\u003e";
+#if U'\U0000003e'
 #endif
-void *tU62 = U"\U0000003e"; /* { dg-error "is not a valid universal character" } */
-#if U'\u003f' /* { dg-error "is not a valid universal character" } */
+void *tU62 = U"\U0000003e";
+#if U'\u003f'
 #endif
-void *tu63 = U"\u003f"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000003f' /* { dg-error "is not a valid universal character" } */
+void *tu63 = U"\u003f";
+#if U'\U0000003f'
 #endif
-void *tU63 = U"\U0000003f"; /* { dg-error "is not a valid universal character" } */
+void *tU63 = U"\U0000003f";
 #if U'\u0040'
 #endif
 void *tu64 = U"\u0040";
 #if U'\U00000040'
 #endif
 void *tU64 = U"\U00000040";
-#if U'\u0041' /* { dg-error "is not a valid universal character" } */
+#if U'\u0041'
 #endif
-void *tu65 = U"\u0041"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000041' /* { dg-error "is not a valid universal character" } */
+void *tu65 = U"\u0041";
+#if U'\U00000041'
 #endif
-void *tU65 = U"\U00000041"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0042' /* { dg-error "is not a valid universal character" } */
+void *tU65 = U"\U00000041";
+#if U'\u0042'
 #endif
-void *tu66 = U"\u0042"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000042' /* { dg-error "is not a valid universal character" } */
+void *tu66 = U"\u0042";
+#if U'\U00000042'
 #endif
-void *tU66 = U"\U00000042"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0043' /* { dg-error "is not a valid universal character" } */
+void *tU66 = U"\U00000042";
+#if U'\u0043'
 #endif
-void *tu67 = U"\u0043"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000043' /* { dg-error "is not a valid universal character" } */
+void *tu67 = U"\u0043";
+#if U'\U00000043'
 #endif
-void *tU67 = U"\U00000043"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0044' /* { dg-error "is not a valid universal character" } */
+void *tU67 = U"\U00000043";
+#if U'\u0044'
 #endif
-void *tu68 = U"\u0044"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000044' /* { dg-error "is not a valid universal character" } */
+void *tu68 = U"\u0044";
+#if U'\U00000044'
 #endif
-void *tU68 = U"\U00000044"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0045' /* { dg-error "is not a valid universal character" } */
+void *tU68 = U"\U00000044";
+#if U'\u0045'
 #endif
-void *tu69 = U"\u0045"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000045' /* { dg-error "is not a valid universal character" } */
+void *tu69 = U"\u0045";
+#if U'\U00000045'
 #endif
-void *tU69 = U"\U00000045"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0046' /* { dg-error "is not a valid universal character" } */
+void *tU69 = U"\U00000045";
+#if U'\u0046'
 #endif
-void *tu70 = U"\u0046"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000046' /* { dg-error "is not a valid universal character" } */
+void *tu70 = U"\u0046";
+#if U'\U00000046'
 #endif
-void *tU70 = U"\U00000046"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0047' /* { dg-error "is not a valid universal character" } */
+void *tU70 = U"\U00000046";
+#if U'\u0047'
 #endif
-void *tu71 = U"\u0047"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000047' /* { dg-error "is not a valid universal character" } */
+void *tu71 = U"\u0047";
+#if U'\U00000047'
 #endif
-void *tU71 = U"\U00000047"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0048' /* { dg-error "is not a valid universal character" } */
+void *tU71 = U"\U00000047";
+#if U'\u0048'
 #endif
-void *tu72 = U"\u0048"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000048' /* { dg-error "is not a valid universal character" } */
+void *tu72 = U"\u0048";
+#if U'\U00000048'
 #endif
-void *tU72 = U"\U00000048"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0049' /* { dg-error "is not a valid universal character" } */
+void *tU72 = U"\U00000048";
+#if U'\u0049'
 #endif
-void *tu73 = U"\u0049"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000049' /* { dg-error "is not a valid universal character" } */
+void *tu73 = U"\u0049";
+#if U'\U00000049'
 #endif
-void *tU73 = U"\U00000049"; /* { dg-error "is not a valid universal character" } */
-#if U'\u004a' /* { dg-error "is not a valid universal character" } */
+void *tU73 = U"\U00000049";
+#if U'\u004a'
 #endif
-void *tu74 = U"\u004a"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000004a' /* { dg-error "is not a valid universal character" } */
+void *tu74 = U"\u004a";
+#if U'\U0000004a'
 #endif
-void *tU74 = U"\U0000004a"; /* { dg-error "is not a valid universal character" } */
-#if U'\u004b' /* { dg-error "is not a valid universal character" } */
+void *tU74 = U"\U0000004a";
+#if U'\u004b'
 #endif
-void *tu75 = U"\u004b"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000004b' /* { dg-error "is not a valid universal character" } */
+void *tu75 = U"\u004b";
+#if U'\U0000004b'
 #endif
-void *tU75 = U"\U0000004b"; /* { dg-error "is not a valid universal character" } */
-#if U'\u004c' /* { dg-error "is not a valid universal character" } */
+void *tU75 = U"\U0000004b";
+#if U'\u004c'
 #endif
-void *tu76 = U"\u004c"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000004c' /* { dg-error "is not a valid universal character" } */
+void *tu76 = U"\u004c";
+#if U'\U0000004c'
 #endif
-void *tU76 = U"\U0000004c"; /* { dg-error "is not a valid universal character" } */
-#if U'\u004d' /* { dg-error "is not a valid universal character" } */
+void *tU76 = U"\U0000004c";
+#if U'\u004d'
 #endif
-void *tu77 = U"\u004d"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000004d' /* { dg-error "is not a valid universal character" } */
+void *tu77 = U"\u004d";
+#if U'\U0000004d'
 #endif
-void *tU77 = U"\U0000004d"; /* { dg-error "is not a valid universal character" } */
-#if U'\u004e' /* { dg-error "is not a valid universal character" } */
+void *tU77 = U"\U0000004d";
+#if U'\u004e'
 #endif
-void *tu78 = U"\u004e"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000004e' /* { dg-error "is not a valid universal character" } */
+void *tu78 = U"\u004e";
+#if U'\U0000004e'
 #endif
-void *tU78 = U"\U0000004e"; /* { dg-error "is not a valid universal character" } */
-#if U'\u004f' /* { dg-error "is not a valid universal character" } */
+void *tU78 = U"\U0000004e";
+#if U'\u004f'
 #endif
-void *tu79 = U"\u004f"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000004f' /* { dg-error "is not a valid universal character" } */
+void *tu79 = U"\u004f";
+#if U'\U0000004f'
 #endif
-void *tU79 = U"\U0000004f"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0050' /* { dg-error "is not a valid universal character" } */
+void *tU79 = U"\U0000004f";
+#if U'\u0050'
 #endif
-void *tu80 = U"\u0050"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000050' /* { dg-error "is not a valid universal character" } */
+void *tu80 = U"\u0050";
+#if U'\U00000050'
 #endif
-void *tU80 = U"\U00000050"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0051' /* { dg-error "is not a valid universal character" } */
+void *tU80 = U"\U00000050";
+#if U'\u0051'
 #endif
-void *tu81 = U"\u0051"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000051' /* { dg-error "is not a valid universal character" } */
+void *tu81 = U"\u0051";
+#if U'\U00000051'
 #endif
-void *tU81 = U"\U00000051"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0052' /* { dg-error "is not a valid universal character" } */
+void *tU81 = U"\U00000051";
+#if U'\u0052'
 #endif
-void *tu82 = U"\u0052"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000052' /* { dg-error "is not a valid universal character" } */
+void *tu82 = U"\u0052";
+#if U'\U00000052'
 #endif
-void *tU82 = U"\U00000052"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0053' /* { dg-error "is not a valid universal character" } */
+void *tU82 = U"\U00000052";
+#if U'\u0053'
 #endif
-void *tu83 = U"\u0053"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000053' /* { dg-error "is not a valid universal character" } */
+void *tu83 = U"\u0053";
+#if U'\U00000053'
 #endif
-void *tU83 = U"\U00000053"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0054' /* { dg-error "is not a valid universal character" } */
+void *tU83 = U"\U00000053";
+#if U'\u0054'
 #endif
-void *tu84 = U"\u0054"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000054' /* { dg-error "is not a valid universal character" } */
+void *tu84 = U"\u0054";
+#if U'\U00000054'
 #endif
-void *tU84 = U"\U00000054"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0055' /* { dg-error "is not a valid universal character" } */
+void *tU84 = U"\U00000054";
+#if U'\u0055'
 #endif
-void *tu85 = U"\u0055"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000055' /* { dg-error "is not a valid universal character" } */
+void *tu85 = U"\u0055";
+#if U'\U00000055'
 #endif
-void *tU85 = U"\U00000055"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0056' /* { dg-error "is not a valid universal character" } */
+void *tU85 = U"\U00000055";
+#if U'\u0056'
 #endif
-void *tu86 = U"\u0056"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000056' /* { dg-error "is not a valid universal character" } */
+void *tu86 = U"\u0056";
+#if U'\U00000056'
 #endif
-void *tU86 = U"\U00000056"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0057' /* { dg-error "is not a valid universal character" } */
+void *tU86 = U"\U00000056";
+#if U'\u0057'
 #endif
-void *tu87 = U"\u0057"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000057' /* { dg-error "is not a valid universal character" } */
+void *tu87 = U"\u0057";
+#if U'\U00000057'
 #endif
-void *tU87 = U"\U00000057"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0058' /* { dg-error "is not a valid universal character" } */
+void *tU87 = U"\U00000057";
+#if U'\u0058'
 #endif
-void *tu88 = U"\u0058"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000058' /* { dg-error "is not a valid universal character" } */
+void *tu88 = U"\u0058";
+#if U'\U00000058'
 #endif
-void *tU88 = U"\U00000058"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0059' /* { dg-error "is not a valid universal character" } */
+void *tU88 = U"\U00000058";
+#if U'\u0059'
 #endif
-void *tu89 = U"\u0059"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000059' /* { dg-error "is not a valid universal character" } */
+void *tu89 = U"\u0059";
+#if U'\U00000059'
 #endif
-void *tU89 = U"\U00000059"; /* { dg-error "is not a valid universal character" } */
-#if U'\u005a' /* { dg-error "is not a valid universal character" } */
+void *tU89 = U"\U00000059";
+#if U'\u005a'
 #endif
-void *tu90 = U"\u005a"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000005a' /* { dg-error "is not a valid universal character" } */
+void *tu90 = U"\u005a";
+#if U'\U0000005a'
 #endif
-void *tU90 = U"\U0000005a"; /* { dg-error "is not a valid universal character" } */
-#if U'\u005b' /* { dg-error "is not a valid universal character" } */
+void *tU90 = U"\U0000005a";
+#if U'\u005b'
 #endif
-void *tu91 = U"\u005b"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000005b' /* { dg-error "is not a valid universal character" } */
+void *tu91 = U"\u005b";
+#if U'\U0000005b'
 #endif
-void *tU91 = U"\U0000005b"; /* { dg-error "is not a valid universal character" } */
-#if U'\u005c' /* { dg-error "is not a valid universal character" } */
+void *tU91 = U"\U0000005b";
+#if U'\u005c'
 #endif
-void *tu92 = U"\u005c"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000005c' /* { dg-error "is not a valid universal character" } */
+void *tu92 = U"\u005c";
+#if U'\U0000005c'
 #endif
-void *tU92 = U"\U0000005c"; /* { dg-error "is not a valid universal character" } */
-#if U'\u005d' /* { dg-error "is not a valid universal character" } */
+void *tU92 = U"\U0000005c";
+#if U'\u005d'
 #endif
-void *tu93 = U"\u005d"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000005d' /* { dg-error "is not a valid universal character" } */
+void *tu93 = U"\u005d";
+#if U'\U0000005d'
 #endif
-void *tU93 = U"\U0000005d"; /* { dg-error "is not a valid universal character" } */
-#if U'\u005e' /* { dg-error "is not a valid universal character" } */
+void *tU93 = U"\U0000005d";
+#if U'\u005e'
 #endif
-void *tu94 = U"\u005e"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000005e' /* { dg-error "is not a valid universal character" } */
+void *tu94 = U"\u005e";
+#if U'\U0000005e'
 #endif
-void *tU94 = U"\U0000005e"; /* { dg-error "is not a valid universal character" } */
-#if U'\u005f' /* { dg-error "is not a valid universal character" } */
+void *tU94 = U"\U0000005e";
+#if U'\u005f'
 #endif
-void *tu95 = U"\u005f"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000005f' /* { dg-error "is not a valid universal character" } */
+void *tu95 = U"\u005f";
+#if U'\U0000005f'
 #endif
-void *tU95 = U"\U0000005f"; /* { dg-error "is not a valid universal character" } */
+void *tU95 = U"\U0000005f";
 #if U'\u0060'
 #endif
 void *tu96 = U"\u0060";
 #if U'\U00000060'
 #endif
 void *tU96 = U"\U00000060";
-#if U'\u0061' /* { dg-error "is not a valid universal character" } */
+#if U'\u0061'
 #endif
-void *tu97 = U"\u0061"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000061' /* { dg-error "is not a valid universal character" } */
+void *tu97 = U"\u0061";
+#if U'\U00000061'
 #endif
-void *tU97 = U"\U00000061"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0062' /* { dg-error "is not a valid universal character" } */
+void *tU97 = U"\U00000061";
+#if U'\u0062'
 #endif
-void *tu98 = U"\u0062"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000062' /* { dg-error "is not a valid universal character" } */
+void *tu98 = U"\u0062";
+#if U'\U00000062'
 #endif
-void *tU98 = U"\U00000062"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0063' /* { dg-error "is not a valid universal character" } */
+void *tU98 = U"\U00000062";
+#if U'\u0063'
 #endif
-void *tu99 = U"\u0063"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000063' /* { dg-error "is not a valid universal character" } */
+void *tu99 = U"\u0063";
+#if U'\U00000063'
 #endif
-void *tU99 = U"\U00000063"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0064' /* { dg-error "is not a valid universal character" } */
+void *tU99 = U"\U00000063";
+#if U'\u0064'
 #endif
-void *tu100 = U"\u0064"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000064' /* { dg-error "is not a valid universal character" } */
+void *tu100 = U"\u0064";
+#if U'\U00000064'
 #endif
-void *tU100 = U"\U00000064"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0065' /* { dg-error "is not a valid universal character" } */
+void *tU100 = U"\U00000064";
+#if U'\u0065'
 #endif
-void *tu101 = U"\u0065"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000065' /* { dg-error "is not a valid universal character" } */
+void *tu101 = U"\u0065";
+#if U'\U00000065'
 #endif
-void *tU101 = U"\U00000065"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0066' /* { dg-error "is not a valid universal character" } */
+void *tU101 = U"\U00000065";
+#if U'\u0066'
 #endif
-void *tu102 = U"\u0066"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000066' /* { dg-error "is not a valid universal character" } */
+void *tu102 = U"\u0066";
+#if U'\U00000066'
 #endif
-void *tU102 = U"\U00000066"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0067' /* { dg-error "is not a valid universal character" } */
+void *tU102 = U"\U00000066";
+#if U'\u0067'
 #endif
-void *tu103 = U"\u0067"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000067' /* { dg-error "is not a valid universal character" } */
+void *tu103 = U"\u0067";
+#if U'\U00000067'
 #endif
-void *tU103 = U"\U00000067"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0068' /* { dg-error "is not a valid universal character" } */
+void *tU103 = U"\U00000067";
+#if U'\u0068'
 #endif
-void *tu104 = U"\u0068"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000068' /* { dg-error "is not a valid universal character" } */
+void *tu104 = U"\u0068";
+#if U'\U00000068'
 #endif
-void *tU104 = U"\U00000068"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0069' /* { dg-error "is not a valid universal character" } */
+void *tU104 = U"\U00000068";
+#if U'\u0069'
 #endif
-void *tu105 = U"\u0069"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000069' /* { dg-error "is not a valid universal character" } */
+void *tu105 = U"\u0069";
+#if U'\U00000069'
 #endif
-void *tU105 = U"\U00000069"; /* { dg-error "is not a valid universal character" } */
-#if U'\u006a' /* { dg-error "is not a valid universal character" } */
+void *tU105 = U"\U00000069";
+#if U'\u006a'
 #endif
-void *tu106 = U"\u006a"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000006a' /* { dg-error "is not a valid universal character" } */
+void *tu106 = U"\u006a";
+#if U'\U0000006a'
 #endif
-void *tU106 = U"\U0000006a"; /* { dg-error "is not a valid universal character" } */
-#if U'\u006b' /* { dg-error "is not a valid universal character" } */
+void *tU106 = U"\U0000006a";
+#if U'\u006b'
 #endif
-void *tu107 = U"\u006b"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000006b' /* { dg-error "is not a valid universal character" } */
+void *tu107 = U"\u006b";
+#if U'\U0000006b'
 #endif
-void *tU107 = U"\U0000006b"; /* { dg-error "is not a valid universal character" } */
-#if U'\u006c' /* { dg-error "is not a valid universal character" } */
+void *tU107 = U"\U0000006b";
+#if U'\u006c'
 #endif
-void *tu108 = U"\u006c"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000006c' /* { dg-error "is not a valid universal character" } */
+void *tu108 = U"\u006c";
+#if U'\U0000006c'
 #endif
-void *tU108 = U"\U0000006c"; /* { dg-error "is not a valid universal character" } */
-#if U'\u006d' /* { dg-error "is not a valid universal character" } */
+void *tU108 = U"\U0000006c";
+#if U'\u006d'
 #endif
-void *tu109 = U"\u006d"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000006d' /* { dg-error "is not a valid universal character" } */
+void *tu109 = U"\u006d";
+#if U'\U0000006d'
 #endif
-void *tU109 = U"\U0000006d"; /* { dg-error "is not a valid universal character" } */
-#if U'\u006e' /* { dg-error "is not a valid universal character" } */
+void *tU109 = U"\U0000006d";
+#if U'\u006e'
 #endif
-void *tu110 = U"\u006e"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000006e' /* { dg-error "is not a valid universal character" } */
+void *tu110 = U"\u006e";
+#if U'\U0000006e'
 #endif
-void *tU110 = U"\U0000006e"; /* { dg-error "is not a valid universal character" } */
-#if U'\u006f' /* { dg-error "is not a valid universal character" } */
+void *tU110 = U"\U0000006e";
+#if U'\u006f'
 #endif
-void *tu111 = U"\u006f"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000006f' /* { dg-error "is not a valid universal character" } */
+void *tu111 = U"\u006f";
+#if U'\U0000006f'
 #endif
-void *tU111 = U"\U0000006f"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0070' /* { dg-error "is not a valid universal character" } */
+void *tU111 = U"\U0000006f";
+#if U'\u0070'
 #endif
-void *tu112 = U"\u0070"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000070' /* { dg-error "is not a valid universal character" } */
+void *tu112 = U"\u0070";
+#if U'\U00000070'
 #endif
-void *tU112 = U"\U00000070"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0071' /* { dg-error "is not a valid universal character" } */
+void *tU112 = U"\U00000070";
+#if U'\u0071'
 #endif
-void *tu113 = U"\u0071"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000071' /* { dg-error "is not a valid universal character" } */
+void *tu113 = U"\u0071";
+#if U'\U00000071'
 #endif
-void *tU113 = U"\U00000071"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0072' /* { dg-error "is not a valid universal character" } */
+void *tU113 = U"\U00000071";
+#if U'\u0072'
 #endif
-void *tu114 = U"\u0072"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000072' /* { dg-error "is not a valid universal character" } */
+void *tu114 = U"\u0072";
+#if U'\U00000072'
 #endif
-void *tU114 = U"\U00000072"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0073' /* { dg-error "is not a valid universal character" } */
+void *tU114 = U"\U00000072";
+#if U'\u0073'
 #endif
-void *tu115 = U"\u0073"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000073' /* { dg-error "is not a valid universal character" } */
+void *tu115 = U"\u0073";
+#if U'\U00000073'
 #endif
-void *tU115 = U"\U00000073"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0074' /* { dg-error "is not a valid universal character" } */
+void *tU115 = U"\U00000073";
+#if U'\u0074'
 #endif
-void *tu116 = U"\u0074"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000074' /* { dg-error "is not a valid universal character" } */
+void *tu116 = U"\u0074";
+#if U'\U00000074'
 #endif
-void *tU116 = U"\U00000074"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0075' /* { dg-error "is not a valid universal character" } */
+void *tU116 = U"\U00000074";
+#if U'\u0075'
 #endif
-void *tu117 = U"\u0075"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000075' /* { dg-error "is not a valid universal character" } */
+void *tu117 = U"\u0075";
+#if U'\U00000075'
 #endif
-void *tU117 = U"\U00000075"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0076' /* { dg-error "is not a valid universal character" } */
+void *tU117 = U"\U00000075";
+#if U'\u0076'
 #endif
-void *tu118 = U"\u0076"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000076' /* { dg-error "is not a valid universal character" } */
+void *tu118 = U"\u0076";
+#if U'\U00000076'
 #endif
-void *tU118 = U"\U00000076"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0077' /* { dg-error "is not a valid universal character" } */
+void *tU118 = U"\U00000076";
+#if U'\u0077'
 #endif
-void *tu119 = U"\u0077"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000077' /* { dg-error "is not a valid universal character" } */
+void *tu119 = U"\u0077";
+#if U'\U00000077'
 #endif
-void *tU119 = U"\U00000077"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0078' /* { dg-error "is not a valid universal character" } */
+void *tU119 = U"\U00000077";
+#if U'\u0078'
 #endif
-void *tu120 = U"\u0078"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000078' /* { dg-error "is not a valid universal character" } */
+void *tu120 = U"\u0078";
+#if U'\U00000078'
 #endif
-void *tU120 = U"\U00000078"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0079' /* { dg-error "is not a valid universal character" } */
+void *tU120 = U"\U00000078";
+#if U'\u0079'
 #endif
-void *tu121 = U"\u0079"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000079' /* { dg-error "is not a valid universal character" } */
+void *tu121 = U"\u0079";
+#if U'\U00000079'
 #endif
-void *tU121 = U"\U00000079"; /* { dg-error "is not a valid universal character" } */
-#if U'\u007a' /* { dg-error "is not a valid universal character" } */
+void *tU121 = U"\U00000079";
+#if U'\u007a'
 #endif
-void *tu122 = U"\u007a"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000007a' /* { dg-error "is not a valid universal character" } */
+void *tu122 = U"\u007a";
+#if U'\U0000007a'
 #endif
-void *tU122 = U"\U0000007a"; /* { dg-error "is not a valid universal character" } */
-#if U'\u007b' /* { dg-error "is not a valid universal character" } */
+void *tU122 = U"\U0000007a";
+#if U'\u007b'
 #endif
-void *tu123 = U"\u007b"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000007b' /* { dg-error "is not a valid universal character" } */
+void *tu123 = U"\u007b";
+#if U'\U0000007b'
 #endif
-void *tU123 = U"\U0000007b"; /* { dg-error "is not a valid universal character" } */
-#if U'\u007c' /* { dg-error "is not a valid universal character" } */
+void *tU123 = U"\U0000007b";
+#if U'\u007c'
 #endif
-void *tu124 = U"\u007c"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000007c' /* { dg-error "is not a valid universal character" } */
+void *tu124 = U"\u007c";
+#if U'\U0000007c'
 #endif
-void *tU124 = U"\U0000007c"; /* { dg-error "is not a valid universal character" } */
-#if U'\u007d' /* { dg-error "is not a valid universal character" } */
+void *tU124 = U"\U0000007c";
+#if U'\u007d'
 #endif
-void *tu125 = U"\u007d"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000007d' /* { dg-error "is not a valid universal character" } */
+void *tu125 = U"\u007d";
+#if U'\U0000007d'
 #endif
-void *tU125 = U"\U0000007d"; /* { dg-error "is not a valid universal character" } */
-#if U'\u007e' /* { dg-error "is not a valid universal character" } */
+void *tU125 = U"\U0000007d";
+#if U'\u007e'
 #endif
-void *tu126 = U"\u007e"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000007e' /* { dg-error "is not a valid universal character" } */
+void *tu126 = U"\u007e";
+#if U'\U0000007e'
 #endif
-void *tU126 = U"\U0000007e"; /* { dg-error "is not a valid universal character" } */
-#if U'\u007f' /* { dg-error "is not a valid universal character" } */
+void *tU126 = U"\U0000007e";
+#if U'\u007f'
 #endif
-void *tu127 = U"\u007f"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000007f' /* { dg-error "is not a valid universal character" } */
+void *tu127 = U"\u007f";
+#if U'\U0000007f'
 #endif
-void *tU127 = U"\U0000007f"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0080' /* { dg-error "is not a valid universal character" } */
+void *tU127 = U"\U0000007f";
+#if U'\u0080'
 #endif
-void *tu128 = U"\u0080"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000080' /* { dg-error "is not a valid universal character" } */
+void *tu128 = U"\u0080";
+#if U'\U00000080'
 #endif
-void *tU128 = U"\U00000080"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0081' /* { dg-error "is not a valid universal character" } */
+void *tU128 = U"\U00000080";
+#if U'\u0081'
 #endif
-void *tu129 = U"\u0081"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000081' /* { dg-error "is not a valid universal character" } */
+void *tu129 = U"\u0081";
+#if U'\U00000081'
 #endif
-void *tU129 = U"\U00000081"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0082' /* { dg-error "is not a valid universal character" } */
+void *tU129 = U"\U00000081";
+#if U'\u0082'
 #endif
-void *tu130 = U"\u0082"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000082' /* { dg-error "is not a valid universal character" } */
+void *tu130 = U"\u0082";
+#if U'\U00000082'
 #endif
-void *tU130 = U"\U00000082"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0083' /* { dg-error "is not a valid universal character" } */
+void *tU130 = U"\U00000082";
+#if U'\u0083'
 #endif
-void *tu131 = U"\u0083"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000083' /* { dg-error "is not a valid universal character" } */
+void *tu131 = U"\u0083";
+#if U'\U00000083'
 #endif
-void *tU131 = U"\U00000083"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0084' /* { dg-error "is not a valid universal character" } */
+void *tU131 = U"\U00000083";
+#if U'\u0084'
 #endif
-void *tu132 = U"\u0084"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000084' /* { dg-error "is not a valid universal character" } */
+void *tu132 = U"\u0084";
+#if U'\U00000084'
 #endif
-void *tU132 = U"\U00000084"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0085' /* { dg-error "is not a valid universal character" } */
+void *tU132 = U"\U00000084";
+#if U'\u0085'
 #endif
-void *tu133 = U"\u0085"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000085' /* { dg-error "is not a valid universal character" } */
+void *tu133 = U"\u0085";
+#if U'\U00000085'
 #endif
-void *tU133 = U"\U00000085"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0086' /* { dg-error "is not a valid universal character" } */
+void *tU133 = U"\U00000085";
+#if U'\u0086'
 #endif
-void *tu134 = U"\u0086"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000086' /* { dg-error "is not a valid universal character" } */
+void *tu134 = U"\u0086";
+#if U'\U00000086'
 #endif
-void *tU134 = U"\U00000086"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0087' /* { dg-error "is not a valid universal character" } */
+void *tU134 = U"\U00000086";
+#if U'\u0087'
 #endif
-void *tu135 = U"\u0087"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000087' /* { dg-error "is not a valid universal character" } */
+void *tu135 = U"\u0087";
+#if U'\U00000087'
 #endif
-void *tU135 = U"\U00000087"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0088' /* { dg-error "is not a valid universal character" } */
+void *tU135 = U"\U00000087";
+#if U'\u0088'
 #endif
-void *tu136 = U"\u0088"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000088' /* { dg-error "is not a valid universal character" } */
+void *tu136 = U"\u0088";
+#if U'\U00000088'
 #endif
-void *tU136 = U"\U00000088"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0089' /* { dg-error "is not a valid universal character" } */
+void *tU136 = U"\U00000088";
+#if U'\u0089'
 #endif
-void *tu137 = U"\u0089"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000089' /* { dg-error "is not a valid universal character" } */
+void *tu137 = U"\u0089";
+#if U'\U00000089'
 #endif
-void *tU137 = U"\U00000089"; /* { dg-error "is not a valid universal character" } */
-#if U'\u008a' /* { dg-error "is not a valid universal character" } */
+void *tU137 = U"\U00000089";
+#if U'\u008a'
 #endif
-void *tu138 = U"\u008a"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000008a' /* { dg-error "is not a valid universal character" } */
+void *tu138 = U"\u008a";
+#if U'\U0000008a'
 #endif
-void *tU138 = U"\U0000008a"; /* { dg-error "is not a valid universal character" } */
-#if U'\u008b' /* { dg-error "is not a valid universal character" } */
+void *tU138 = U"\U0000008a";
+#if U'\u008b'
 #endif
-void *tu139 = U"\u008b"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000008b' /* { dg-error "is not a valid universal character" } */
+void *tu139 = U"\u008b";
+#if U'\U0000008b'
 #endif
-void *tU139 = U"\U0000008b"; /* { dg-error "is not a valid universal character" } */
-#if U'\u008c' /* { dg-error "is not a valid universal character" } */
+void *tU139 = U"\U0000008b";
+#if U'\u008c'
 #endif
-void *tu140 = U"\u008c"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000008c' /* { dg-error "is not a valid universal character" } */
+void *tu140 = U"\u008c";
+#if U'\U0000008c'
 #endif
-void *tU140 = U"\U0000008c"; /* { dg-error "is not a valid universal character" } */
-#if U'\u008d' /* { dg-error "is not a valid universal character" } */
+void *tU140 = U"\U0000008c";
+#if U'\u008d'
 #endif
-void *tu141 = U"\u008d"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000008d' /* { dg-error "is not a valid universal character" } */
+void *tu141 = U"\u008d";
+#if U'\U0000008d'
 #endif
-void *tU141 = U"\U0000008d"; /* { dg-error "is not a valid universal character" } */
-#if U'\u008e' /* { dg-error "is not a valid universal character" } */
+void *tU141 = U"\U0000008d";
+#if U'\u008e'
 #endif
-void *tu142 = U"\u008e"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000008e' /* { dg-error "is not a valid universal character" } */
+void *tu142 = U"\u008e";
+#if U'\U0000008e'
 #endif
-void *tU142 = U"\U0000008e"; /* { dg-error "is not a valid universal character" } */
-#if U'\u008f' /* { dg-error "is not a valid universal character" } */
+void *tU142 = U"\U0000008e";
+#if U'\u008f'
 #endif
-void *tu143 = U"\u008f"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000008f' /* { dg-error "is not a valid universal character" } */
+void *tu143 = U"\u008f";
+#if U'\U0000008f'
 #endif
-void *tU143 = U"\U0000008f"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0090' /* { dg-error "is not a valid universal character" } */
+void *tU143 = U"\U0000008f";
+#if U'\u0090'
 #endif
-void *tu144 = U"\u0090"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000090' /* { dg-error "is not a valid universal character" } */
+void *tu144 = U"\u0090";
+#if U'\U00000090'
 #endif
-void *tU144 = U"\U00000090"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0091' /* { dg-error "is not a valid universal character" } */
+void *tU144 = U"\U00000090";
+#if U'\u0091'
 #endif
-void *tu145 = U"\u0091"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000091' /* { dg-error "is not a valid universal character" } */
+void *tu145 = U"\u0091";
+#if U'\U00000091'
 #endif
-void *tU145 = U"\U00000091"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0092' /* { dg-error "is not a valid universal character" } */
+void *tU145 = U"\U00000091";
+#if U'\u0092'
 #endif
-void *tu146 = U"\u0092"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000092' /* { dg-error "is not a valid universal character" } */
+void *tu146 = U"\u0092";
+#if U'\U00000092'
 #endif
-void *tU146 = U"\U00000092"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0093' /* { dg-error "is not a valid universal character" } */
+void *tU146 = U"\U00000092";
+#if U'\u0093'
 #endif
-void *tu147 = U"\u0093"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000093' /* { dg-error "is not a valid universal character" } */
+void *tu147 = U"\u0093";
+#if U'\U00000093'
 #endif
-void *tU147 = U"\U00000093"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0094' /* { dg-error "is not a valid universal character" } */
+void *tU147 = U"\U00000093";
+#if U'\u0094'
 #endif
-void *tu148 = U"\u0094"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000094' /* { dg-error "is not a valid universal character" } */
+void *tu148 = U"\u0094";
+#if U'\U00000094'
 #endif
-void *tU148 = U"\U00000094"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0095' /* { dg-error "is not a valid universal character" } */
+void *tU148 = U"\U00000094";
+#if U'\u0095'
 #endif
-void *tu149 = U"\u0095"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000095' /* { dg-error "is not a valid universal character" } */
+void *tu149 = U"\u0095";
+#if U'\U00000095'
 #endif
-void *tU149 = U"\U00000095"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0096' /* { dg-error "is not a valid universal character" } */
+void *tU149 = U"\U00000095";
+#if U'\u0096'
 #endif
-void *tu150 = U"\u0096"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000096' /* { dg-error "is not a valid universal character" } */
+void *tu150 = U"\u0096";
+#if U'\U00000096'
 #endif
-void *tU150 = U"\U00000096"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0097' /* { dg-error "is not a valid universal character" } */
+void *tU150 = U"\U00000096";
+#if U'\u0097'
 #endif
-void *tu151 = U"\u0097"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000097' /* { dg-error "is not a valid universal character" } */
+void *tu151 = U"\u0097";
+#if U'\U00000097'
 #endif
-void *tU151 = U"\U00000097"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0098' /* { dg-error "is not a valid universal character" } */
+void *tU151 = U"\U00000097";
+#if U'\u0098'
 #endif
-void *tu152 = U"\u0098"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000098' /* { dg-error "is not a valid universal character" } */
+void *tu152 = U"\u0098";
+#if U'\U00000098'
 #endif
-void *tU152 = U"\U00000098"; /* { dg-error "is not a valid universal character" } */
-#if U'\u0099' /* { dg-error "is not a valid universal character" } */
+void *tU152 = U"\U00000098";
+#if U'\u0099'
 #endif
-void *tu153 = U"\u0099"; /* { dg-error "is not a valid universal character" } */
-#if U'\U00000099' /* { dg-error "is not a valid universal character" } */
+void *tu153 = U"\u0099";
+#if U'\U00000099'
 #endif
-void *tU153 = U"\U00000099"; /* { dg-error "is not a valid universal character" } */
-#if U'\u009a' /* { dg-error "is not a valid universal character" } */
+void *tU153 = U"\U00000099";
+#if U'\u009a'
 #endif
-void *tu154 = U"\u009a"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000009a' /* { dg-error "is not a valid universal character" } */
+void *tu154 = U"\u009a";
+#if U'\U0000009a'
 #endif
-void *tU154 = U"\U0000009a"; /* { dg-error "is not a valid universal character" } */
-#if U'\u009b' /* { dg-error "is not a valid universal character" } */
+void *tU154 = U"\U0000009a";
+#if U'\u009b'
 #endif
-void *tu155 = U"\u009b"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000009b' /* { dg-error "is not a valid universal character" } */
+void *tu155 = U"\u009b";
+#if U'\U0000009b'
 #endif
-void *tU155 = U"\U0000009b"; /* { dg-error "is not a valid universal character" } */
-#if U'\u009c' /* { dg-error "is not a valid universal character" } */
+void *tU155 = U"\U0000009b";
+#if U'\u009c'
 #endif
-void *tu156 = U"\u009c"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000009c' /* { dg-error "is not a valid universal character" } */
+void *tu156 = U"\u009c";
+#if U'\U0000009c'
 #endif
-void *tU156 = U"\U0000009c"; /* { dg-error "is not a valid universal character" } */
-#if U'\u009d' /* { dg-error "is not a valid universal character" } */
+void *tU156 = U"\U0000009c";
+#if U'\u009d'
 #endif
-void *tu157 = U"\u009d"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000009d' /* { dg-error "is not a valid universal character" } */
+void *tu157 = U"\u009d";
+#if U'\U0000009d'
 #endif
-void *tU157 = U"\U0000009d"; /* { dg-error "is not a valid universal character" } */
-#if U'\u009e' /* { dg-error "is not a valid universal character" } */
+void *tU157 = U"\U0000009d";
+#if U'\u009e'
 #endif
-void *tu158 = U"\u009e"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000009e' /* { dg-error "is not a valid universal character" } */
+void *tu158 = U"\u009e";
+#if U'\U0000009e'
 #endif
-void *tU158 = U"\U0000009e"; /* { dg-error "is not a valid universal character" } */
-#if U'\u009f' /* { dg-error "is not a valid universal character" } */
+void *tU158 = U"\U0000009e";
+#if U'\u009f'
 #endif
-void *tu159 = U"\u009f"; /* { dg-error "is not a valid universal character" } */
-#if U'\U0000009f' /* { dg-error "is not a valid universal character" } */
+void *tu159 = U"\u009f";
+#if U'\U0000009f'
 #endif
-void *tU159 = U"\U0000009f"; /* { dg-error "is not a valid universal character" } */
+void *tU159 = U"\U0000009f";
 #if U'\u00a0'
 #endif
 void *tu160 = U"\u00a0";
diff --git a/gcc/testsuite/gcc.dg/cpp/c23-ucn-2.c b/gcc/testsuite/gcc.dg/cpp/c23-ucn-2.c
new file mode 100644
index 000000000000..25a12f42c16b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/c23-ucn-2.c
@@ -0,0 +1,996 @@ 
+/* Test characters not permitted in UCNs in C17: -std=c23 -Wc11-c23-compat.  */
+/* { dg-do compile } */
+/* { dg-options "-std=c23 -Wc11-c23-compat" } */
+
+#if U'\u0000' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu0 = U"\u0000"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000000' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU0 = U"\U00000000"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0001' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu1 = U"\u0001"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000001' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU1 = U"\U00000001"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0002' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu2 = U"\u0002"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000002' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU2 = U"\U00000002"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0003' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu3 = U"\u0003"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000003' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU3 = U"\U00000003"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0004' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu4 = U"\u0004"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000004' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU4 = U"\U00000004"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0005' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu5 = U"\u0005"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000005' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU5 = U"\U00000005"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0006' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu6 = U"\u0006"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000006' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU6 = U"\U00000006"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0007' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu7 = U"\u0007"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000007' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU7 = U"\U00000007"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0008' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu8 = U"\u0008"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000008' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU8 = U"\U00000008"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0009' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu9 = U"\u0009"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000009' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU9 = U"\U00000009"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu10 = U"\u000a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU10 = U"\U0000000a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu11 = U"\u000b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU11 = U"\U0000000b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu12 = U"\u000c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU12 = U"\U0000000c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu13 = U"\u000d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU13 = U"\U0000000d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu14 = U"\u000e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU14 = U"\U0000000e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u000f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu15 = U"\u000f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000000f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU15 = U"\U0000000f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0010' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu16 = U"\u0010"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000010' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU16 = U"\U00000010"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0011' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu17 = U"\u0011"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000011' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU17 = U"\U00000011"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0012' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu18 = U"\u0012"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000012' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU18 = U"\U00000012"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0013' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu19 = U"\u0013"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000013' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU19 = U"\U00000013"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0014' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu20 = U"\u0014"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000014' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU20 = U"\U00000014"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0015' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu21 = U"\u0015"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000015' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU21 = U"\U00000015"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0016' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu22 = U"\u0016"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000016' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU22 = U"\U00000016"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0017' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu23 = U"\u0017"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000017' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU23 = U"\U00000017"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0018' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu24 = U"\u0018"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000018' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU24 = U"\U00000018"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0019' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu25 = U"\u0019"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000019' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU25 = U"\U00000019"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu26 = U"\u001a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU26 = U"\U0000001a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu27 = U"\u001b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU27 = U"\U0000001b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu28 = U"\u001c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU28 = U"\U0000001c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu29 = U"\u001d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU29 = U"\U0000001d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu30 = U"\u001e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU30 = U"\U0000001e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u001f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu31 = U"\u001f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000001f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU31 = U"\U0000001f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0020' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu32 = U"\u0020"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000020' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU32 = U"\U00000020"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0021' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu33 = U"\u0021"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000021' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU33 = U"\U00000021"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0022' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu34 = U"\u0022"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000022' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU34 = U"\U00000022"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0023' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu35 = U"\u0023"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000023' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU35 = U"\U00000023"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0024'
+#endif
+void *tu36 = U"\u0024";
+#if U'\U00000024'
+#endif
+void *tU36 = U"\U00000024";
+#if U'\u0025' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu37 = U"\u0025"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000025' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU37 = U"\U00000025"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0026' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu38 = U"\u0026"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000026' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU38 = U"\U00000026"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0027' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu39 = U"\u0027"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000027' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU39 = U"\U00000027"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0028' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu40 = U"\u0028"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000028' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU40 = U"\U00000028"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0029' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu41 = U"\u0029"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000029' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU41 = U"\U00000029"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu42 = U"\u002a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU42 = U"\U0000002a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu43 = U"\u002b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU43 = U"\U0000002b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu44 = U"\u002c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU44 = U"\U0000002c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu45 = U"\u002d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU45 = U"\U0000002d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu46 = U"\u002e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU46 = U"\U0000002e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u002f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu47 = U"\u002f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000002f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU47 = U"\U0000002f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0030' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu48 = U"\u0030"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000030' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU48 = U"\U00000030"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0031' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu49 = U"\u0031"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000031' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU49 = U"\U00000031"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0032' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu50 = U"\u0032"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000032' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU50 = U"\U00000032"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0033' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu51 = U"\u0033"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000033' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU51 = U"\U00000033"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0034' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu52 = U"\u0034"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000034' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU52 = U"\U00000034"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0035' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu53 = U"\u0035"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000035' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU53 = U"\U00000035"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0036' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu54 = U"\u0036"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000036' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU54 = U"\U00000036"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0037' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu55 = U"\u0037"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000037' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU55 = U"\U00000037"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0038' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu56 = U"\u0038"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000038' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU56 = U"\U00000038"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0039' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu57 = U"\u0039"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000039' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU57 = U"\U00000039"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu58 = U"\u003a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU58 = U"\U0000003a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu59 = U"\u003b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU59 = U"\U0000003b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu60 = U"\u003c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU60 = U"\U0000003c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu61 = U"\u003d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU61 = U"\U0000003d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu62 = U"\u003e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU62 = U"\U0000003e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u003f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu63 = U"\u003f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000003f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU63 = U"\U0000003f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0040'
+#endif
+void *tu64 = U"\u0040";
+#if U'\U00000040'
+#endif
+void *tU64 = U"\U00000040";
+#if U'\u0041' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu65 = U"\u0041"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000041' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU65 = U"\U00000041"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0042' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu66 = U"\u0042"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000042' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU66 = U"\U00000042"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0043' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu67 = U"\u0043"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000043' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU67 = U"\U00000043"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0044' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu68 = U"\u0044"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000044' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU68 = U"\U00000044"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0045' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu69 = U"\u0045"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000045' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU69 = U"\U00000045"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0046' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu70 = U"\u0046"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000046' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU70 = U"\U00000046"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0047' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu71 = U"\u0047"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000047' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU71 = U"\U00000047"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0048' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu72 = U"\u0048"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000048' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU72 = U"\U00000048"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0049' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu73 = U"\u0049"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000049' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU73 = U"\U00000049"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu74 = U"\u004a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU74 = U"\U0000004a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu75 = U"\u004b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU75 = U"\U0000004b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu76 = U"\u004c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU76 = U"\U0000004c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu77 = U"\u004d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU77 = U"\U0000004d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu78 = U"\u004e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU78 = U"\U0000004e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u004f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu79 = U"\u004f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000004f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU79 = U"\U0000004f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0050' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu80 = U"\u0050"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000050' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU80 = U"\U00000050"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0051' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu81 = U"\u0051"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000051' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU81 = U"\U00000051"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0052' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu82 = U"\u0052"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000052' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU82 = U"\U00000052"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0053' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu83 = U"\u0053"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000053' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU83 = U"\U00000053"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0054' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu84 = U"\u0054"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000054' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU84 = U"\U00000054"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0055' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu85 = U"\u0055"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000055' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU85 = U"\U00000055"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0056' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu86 = U"\u0056"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000056' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU86 = U"\U00000056"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0057' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu87 = U"\u0057"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000057' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU87 = U"\U00000057"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0058' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu88 = U"\u0058"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000058' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU88 = U"\U00000058"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0059' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu89 = U"\u0059"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000059' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU89 = U"\U00000059"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu90 = U"\u005a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU90 = U"\U0000005a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu91 = U"\u005b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU91 = U"\U0000005b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu92 = U"\u005c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU92 = U"\U0000005c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu93 = U"\u005d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU93 = U"\U0000005d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu94 = U"\u005e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU94 = U"\U0000005e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u005f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu95 = U"\u005f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000005f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU95 = U"\U0000005f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0060'
+#endif
+void *tu96 = U"\u0060";
+#if U'\U00000060'
+#endif
+void *tU96 = U"\U00000060";
+#if U'\u0061' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu97 = U"\u0061"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000061' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU97 = U"\U00000061"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0062' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu98 = U"\u0062"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000062' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU98 = U"\U00000062"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0063' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu99 = U"\u0063"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000063' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU99 = U"\U00000063"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0064' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu100 = U"\u0064"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000064' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU100 = U"\U00000064"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0065' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu101 = U"\u0065"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000065' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU101 = U"\U00000065"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0066' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu102 = U"\u0066"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000066' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU102 = U"\U00000066"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0067' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu103 = U"\u0067"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000067' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU103 = U"\U00000067"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0068' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu104 = U"\u0068"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000068' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU104 = U"\U00000068"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0069' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu105 = U"\u0069"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000069' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU105 = U"\U00000069"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu106 = U"\u006a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU106 = U"\U0000006a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu107 = U"\u006b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU107 = U"\U0000006b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu108 = U"\u006c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU108 = U"\U0000006c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu109 = U"\u006d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU109 = U"\U0000006d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu110 = U"\u006e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU110 = U"\U0000006e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u006f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu111 = U"\u006f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000006f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU111 = U"\U0000006f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0070' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu112 = U"\u0070"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000070' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU112 = U"\U00000070"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0071' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu113 = U"\u0071"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000071' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU113 = U"\U00000071"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0072' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu114 = U"\u0072"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000072' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU114 = U"\U00000072"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0073' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu115 = U"\u0073"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000073' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU115 = U"\U00000073"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0074' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu116 = U"\u0074"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000074' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU116 = U"\U00000074"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0075' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu117 = U"\u0075"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000075' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU117 = U"\U00000075"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0076' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu118 = U"\u0076"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000076' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU118 = U"\U00000076"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0077' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu119 = U"\u0077"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000077' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU119 = U"\U00000077"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0078' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu120 = U"\u0078"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000078' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU120 = U"\U00000078"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0079' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu121 = U"\u0079"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000079' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU121 = U"\U00000079"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu122 = U"\u007a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU122 = U"\U0000007a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu123 = U"\u007b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU123 = U"\U0000007b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu124 = U"\u007c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU124 = U"\U0000007c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu125 = U"\u007d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU125 = U"\U0000007d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu126 = U"\u007e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU126 = U"\U0000007e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u007f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu127 = U"\u007f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000007f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU127 = U"\U0000007f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0080' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu128 = U"\u0080"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000080' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU128 = U"\U00000080"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0081' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu129 = U"\u0081"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000081' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU129 = U"\U00000081"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0082' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu130 = U"\u0082"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000082' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU130 = U"\U00000082"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0083' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu131 = U"\u0083"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000083' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU131 = U"\U00000083"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0084' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu132 = U"\u0084"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000084' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU132 = U"\U00000084"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0085' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu133 = U"\u0085"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000085' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU133 = U"\U00000085"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0086' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu134 = U"\u0086"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000086' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU134 = U"\U00000086"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0087' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu135 = U"\u0087"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000087' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU135 = U"\U00000087"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0088' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu136 = U"\u0088"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000088' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU136 = U"\U00000088"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0089' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu137 = U"\u0089"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000089' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU137 = U"\U00000089"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu138 = U"\u008a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU138 = U"\U0000008a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu139 = U"\u008b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU139 = U"\U0000008b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu140 = U"\u008c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU140 = U"\U0000008c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu141 = U"\u008d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU141 = U"\U0000008d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu142 = U"\u008e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU142 = U"\U0000008e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u008f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu143 = U"\u008f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000008f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU143 = U"\U0000008f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0090' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu144 = U"\u0090"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000090' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU144 = U"\U00000090"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0091' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu145 = U"\u0091"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000091' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU145 = U"\U00000091"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0092' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu146 = U"\u0092"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000092' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU146 = U"\U00000092"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0093' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu147 = U"\u0093"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000093' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU147 = U"\U00000093"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0094' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu148 = U"\u0094"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000094' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU148 = U"\U00000094"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0095' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu149 = U"\u0095"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000095' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU149 = U"\U00000095"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0096' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu150 = U"\u0096"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000096' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU150 = U"\U00000096"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0097' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu151 = U"\u0097"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000097' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU151 = U"\U00000097"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0098' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu152 = U"\u0098"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000098' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU152 = U"\U00000098"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u0099' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu153 = U"\u0099"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U00000099' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU153 = U"\U00000099"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu154 = U"\u009a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009a' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU154 = U"\U0000009a"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu155 = U"\u009b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009b' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU155 = U"\U0000009b"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu156 = U"\u009c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009c' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU156 = U"\U0000009c"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu157 = U"\u009d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009d' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU157 = U"\U0000009d"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu158 = U"\u009e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009e' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU158 = U"\U0000009e"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u009f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tu159 = U"\u009f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\U0000009f' /* { dg-warning "is not a valid universal character" } */
+#endif
+void *tU159 = U"\U0000009f"; /* { dg-warning "is not a valid universal character" } */
+#if U'\u00a0'
+#endif
+void *tu160 = U"\u00a0";
+#if U'\U000000a0'
+#endif
+void *tU160 = U"\U000000a0";
+
+#if U'\ud800' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tud800 = U"\ud800"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000d800' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUd800 = U"\U0000d800"; /* { dg-error "is not a valid universal character" } */
+
+#if U'\udfff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tudfff = U"\udfff"; /* { dg-error "is not a valid universal character" } */
+#if U'\U0000dfff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUdfff = U"\U0000dfff"; /* { dg-error "is not a valid universal character" } */
+
+#if U'\U0010ffff'
+#endif
+void *tU10ffff = U"\U0010ffff";
+
+#if U'\U00110000' /* { dg-warning "is outside the UCS codespace" } */
+#endif
+void *tU110000 = U"\U00110000"; /* { dg-warning "is outside the UCS codespace" } */
+
+#if U'\Uffffffff' /* { dg-error "is not a valid universal character" } */
+#endif
+void *tUffffffff = U"\Uffffffff"; /* { dg-error "is not a valid universal character" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/c23-ucnid-2.c b/gcc/testsuite/gcc.dg/cpp/c23-ucnid-2.c
new file mode 100644
index 000000000000..0d5ad5e77624
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/c23-ucnid-2.c
@@ -0,0 +1,5 @@ 
+/* Test C23 rules for characters in identifiers: \u0024 not allowed.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c23 -fdollars-in-identifiers -pedantic-errors" } */
+
+\u0024 /* { dg-error "is not valid in an identifier" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/c2y-delimited-escape-seq-3.c b/gcc/testsuite/gcc.dg/cpp/c2y-delimited-escape-seq-3.c
index 211dc8482cf2..7b44a30ac1bd 100644
--- a/gcc/testsuite/gcc.dg/cpp/c2y-delimited-escape-seq-3.c
+++ b/gcc/testsuite/gcc.dg/cpp/c2y-delimited-escape-seq-3.c
@@ -6,7 +6,6 @@ 
 typedef __CHAR32_TYPE__ char32_t;
 
 const char32_t *a = U"\u{}";				/* { dg-error "empty delimited escape sequence" } */
-							/* { dg-error "is not a valid universal character" "" { target c } .-1 } */
 const char32_t *b = U"\u{12" "34}";			/* { dg-error "'\\\\u\\{' not terminated with '\\}' after" } */
 const char32_t *c = U"\u{0000ffffffff}";		/* { dg-error "is not a valid universal character" } */
 const char32_t *d = U"\u{010000edcb}";			/* { dg-error "is not a valid universal character" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/ucs.c b/gcc/testsuite/gcc.dg/cpp/ucs.c
index 0fdd23bffb54..53c2d9237754 100644
--- a/gcc/testsuite/gcc.dg/cpp/ucs.c
+++ b/gcc/testsuite/gcc.dg/cpp/ucs.c
@@ -1,7 +1,7 @@ 
 /* Copyright (C) 2001 Free Software Foundation, Inc.  */
 
 /* { dg-do compile } */
-/* { dg-options "-std=c99" } */
+/* { dg-options "-std=c99 -pedantic-errors" } */
 
 /* This tests universal character sequences.
 
@@ -43,7 +43,7 @@ 
 #endif
 
 #if WCHAR_MAX >= 0x7ffffff
-# if L'\U1234abcd' != 0x1234abcd /* { dg-warning "outside" "" { xfail powerpc-ibm-aix* } } */
+# if L'\U1234abcd' != 0x1234abcd /* { dg-error "outside" "" { xfail powerpc-ibm-aix* } } */
 #  error bad long ucs	/* { dg-bogus "bad" "bad U1234abcd evaluation" } */
 # endif
 #endif
@@ -69,5 +69,5 @@  void foo ()
   c = L"\uD800"[0];	/* { dg-error "not a valid" "D800 invalid UCN" } */
   c = L'\U0000DFFF';	/* { dg-error "not a valid" "DFFF invalid UCN" } */
 
-  c = L'\U00110000';	/* { dg-warning "outside|Invalid" "110000 outside UCS" } */
+  c = L'\U00110000';	/* { dg-error "outside|Invalid" "110000 outside UCS" } */
 }
diff --git a/libcpp/charset.cc b/libcpp/charset.cc
index 9337fbc3a7a9..72049e61fa8f 100644
--- a/libcpp/charset.cc
+++ b/libcpp/charset.cc
@@ -1811,14 +1811,7 @@  _cpp_valid_ucn (cpp_reader *pfile, const uchar **pstr,
 		   (int) (str - base), base);
       result = 1;
     }
-  /* The C99 standard permits $, @ and ` to be specified as UCNs.  We use
-     hex escapes so that this also works with EBCDIC hosts.
-     C++0x permits everything below 0xa0 within literals;
-     ucn_valid_in_identifier will complain about identifiers.  */
-  else if ((result < 0xa0
-	    && !CPP_OPTION (pfile, cplusplus)
-	    && (result != 0x24 && result != 0x40 && result != 0x60))
-	   || (result & 0x80000000)
+  else if ((result & 0x80000000)
 	   || (result >= 0xD800 && result <= 0xDFFF))
     {
       cpp_error (pfile, CPP_DL_ERROR,
@@ -1826,13 +1819,34 @@  _cpp_valid_ucn (cpp_reader *pfile, const uchar **pstr,
 		 (int) (str - base), base);
       result = 1;
     }
+  /* The C99 standard permits $, @ and ` to be specified as UCNs.  We use
+     hex escapes so that this also works with EBCDIC hosts.
+     C++0x permits everything below 0xa0 within literals, as does C23;
+     ucn_valid_in_identifier will complain about identifiers.  */
+  else if (result < 0xa0
+	   && !identifier_pos
+	   && !CPP_OPTION (pfile, cplusplus)
+	   && (result != 0x24 && result != 0x40 && result != 0x60))
+    {
+      bool warned = false;
+      if (!CPP_OPTION (pfile, low_ucns) && CPP_OPTION (pfile, cpp_pedantic))
+	warned = cpp_pedwarning (pfile, CPP_W_PEDANTIC,
+				 "%.*s is not a valid universal character"
+				 " name before C23", (int) (str - base), base);
+      if (!warned && CPP_OPTION (pfile, cpp_warn_c11_c23_compat) > 0)
+	warned = cpp_warning (pfile, CPP_W_C11_C23_COMPAT,
+			      "%.*s is not a valid universal character"
+			      " name before C23", (int) (str - base), base);
+    }
   else if (identifier_pos && result == 0x24
 	   && CPP_OPTION (pfile, dollars_in_ident)
 	   /* In C++26 when dollars are allowed in identifiers,
 	      we should still reject \u0024 as $ is part of the basic
-	      character set.  */
+	      character set.  C23 also does not allow \u0024 in
+	      identifiers.  */
 	   && !(CPP_OPTION (pfile, cplusplus)
-		&& CPP_OPTION (pfile, lang) > CLK_CXX23))
+		? CPP_OPTION (pfile, lang) > CLK_CXX23
+		: CPP_OPTION (pfile, low_ucns)))
     {
       if (CPP_OPTION (pfile, warn_dollars) && !pfile->state.skipping)
 	{
diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
index e73f77e67d86..298b434698ad 100644
--- a/libcpp/include/cpplib.h
+++ b/libcpp/include/cpplib.h
@@ -557,6 +557,9 @@  struct cpp_options
   /* Nonzero for C++23 named universal character escape sequences.  */
   unsigned char named_uc_escape_seqs;
 
+  /* Nonzero for C++ and C23 UCNs for characters below 0xa0.  */
+  unsigned char low_ucns;
+
   /* Nonzero for C2Y 0o prefixed octal integer constants.  */
   unsigned char octal_constants;
 
diff --git a/libcpp/init.cc b/libcpp/init.cc
index 3ab120a36e6a..62982355c8fb 100644
--- a/libcpp/init.cc
+++ b/libcpp/init.cc
@@ -113,44 +113,45 @@  struct lang_flags
   unsigned int true_false : 1;
   unsigned int embed : 1;
   unsigned int imaginary_constants : 1;
+  unsigned int low_ucns : 1;
 };
 
 static const struct lang_flags lang_defaults[] = {
   /*					       u         e w   n
-					 b d   8         l a   a   t
-			     x         u i i   c v s   s i r d m o r e
-		       x     i   d u r d n g t h a c   z f n e e c u m i
-		   c c n x c d s i l l l c s r l o o d l d d l d t f b m
-		   9 + u i 1 i t g i i i s e i i p p f i e i i u a a e a
-		   9 + m d 1 d d r t t t t p g t t e p t f r m c l l d g */
-  /* GNUC89   */ { 0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 },
-  /* GNUC99   */ { 1,0,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 },
-  /* GNUC11   */ { 1,0,1,1,1,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 },
-  /* GNUC17   */ { 1,0,1,1,1,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 },
-  /* GNUC23   */ { 1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,0,1,1,0,0,0,1,1,0 },
-  /* GNUC2Y   */ { 1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1 },
-  /* STDC89   */ { 0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 },
-  /* STDC94   */ { 0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 },
-  /* STDC99   */ { 1,0,1,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 },
-  /* STDC11   */ { 1,0,1,1,1,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 },
-  /* STDC17   */ { 1,0,1,1,1,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 },
-  /* STDC23   */ { 1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,0,0,0,1,1,0 },
-  /* STDC2Y   */ { 1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1 },
-  /* GNUCXX   */ { 0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0 },
-  /* CXX98    */ { 0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0 },
-  /* GNUCXX11 */ { 1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0 },
-  /* CXX11    */ { 1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0 },
-  /* GNUCXX14 */ { 1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0 },
-  /* CXX14    */ { 1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0 },
-  /* GNUCXX17 */ { 1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0 },
-  /* CXX17    */ { 1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0 },
-  /* GNUCXX20 */ { 1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0 },
-  /* CXX20    */ { 1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0 },
-  /* GNUCXX23 */ { 1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,0 },
-  /* CXX23    */ { 1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,0 },
-  /* GNUCXX26 */ { 1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,0 },
-  /* CXX26    */ { 1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,0 },
-  /* ASM      */ { 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
+					 b d   8         l a   a   t     l
+			     x         u i i   c v s   s i r d m o r e   o
+		       x     i   d u r d n g t h a c   z f n e e c u m i w
+		   c c n x c d s i l l l c s r l o o d l d d l d t f b m u
+		   9 + u i 1 i t g i i i s e i i p p f i e i i u a a e a c
+		   9 + m d 1 d d r t t t t p g t t e p t f r m c l l d g n */
+  /* GNUC89   */ { 0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0 },
+  /* GNUC99   */ { 1,0,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0 },
+  /* GNUC11   */ { 1,0,1,1,1,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0 },
+  /* GNUC17   */ { 1,0,1,1,1,0,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0 },
+  /* GNUC23   */ { 1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,0,1,1,0,0,0,1,1,0,1 },
+  /* GNUC2Y   */ { 1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,1 },
+  /* STDC89   */ { 0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
+  /* STDC94   */ { 0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
+  /* STDC99   */ { 1,0,1,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
+  /* STDC11   */ { 1,0,1,1,1,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
+  /* STDC17   */ { 1,0,1,1,1,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
+  /* STDC23   */ { 1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,0,0,0,1,1,0,1 },
+  /* STDC2Y   */ { 1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,1 },
+  /* GNUCXX   */ { 0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1 },
+  /* CXX98    */ { 0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1 },
+  /* GNUCXX11 */ { 1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1 },
+  /* CXX11    */ { 1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1 },
+  /* GNUCXX14 */ { 1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1 },
+  /* CXX14    */ { 1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1 },
+  /* GNUCXX17 */ { 1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,1 },
+  /* CXX17    */ { 1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1 },
+  /* GNUCXX20 */ { 1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,1 },
+  /* CXX20    */ { 1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,1 },
+  /* GNUCXX23 */ { 1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,0,1 },
+  /* CXX23    */ { 1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,0,1 },
+  /* GNUCXX26 */ { 1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,0,1 },
+  /* CXX26    */ { 1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,0,1 },
+  /* ASM      */ { 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
 };
 
 /* Sets internal flags correctly for a given language.  */
@@ -188,6 +189,7 @@  cpp_set_lang (cpp_reader *pfile, enum c_lang lang)
   CPP_OPTION (pfile, true_false)		 = l->true_false;
   CPP_OPTION (pfile, embed)			 = l->embed;
   CPP_OPTION (pfile, imaginary_constants)	 = l->imaginary_constants;
+  CPP_OPTION (pfile, low_ucns)			 = l->low_ucns;
 }
 
 /* Initialize library global state.  */