]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c++: Add stringification testcase for CWG1709 [PR120778]
authorJakub Jelinek <jakub@redhat.com>
Sun, 3 Aug 2025 16:32:19 +0000 (18:32 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sun, 3 Aug 2025 16:32:19 +0000 (18:32 +0200)
The CWG1709 just codifies existing GCC (and clang) behavior, so this
just adds a testcase for that.

2025-08-03  Jakub Jelinek  <jakub@redhat.com>

PR preprocessor/120778
* g++.dg/DRs/dr1709.C: New test.

gcc/testsuite/g++.dg/DRs/dr1709.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.dg/DRs/dr1709.C b/gcc/testsuite/g++.dg/DRs/dr1709.C
new file mode 100644 (file)
index 0000000..d3854d8
--- /dev/null
@@ -0,0 +1,18 @@
+// DR 1709 - Stringizing raw string literals containing newline
+// { dg-do run { target c++26 } }
+
+#define A(a) #a
+const char *a = A(a\f\\b"c");
+const char *b = A(R"abc(a\b
+
+)abc");
+
+int
+main ()
+{
+  if (a[1] != '\f' || a[2] != '\\' || a[4] != '"' || a[6] != '"')
+    __builtin_abort ();
+  if (b[1] != '"' || b[7] != '\\' || b[9] != '\n' || b[10] != '\n'
+      || b[11] != ')' || b[15] != '"')
+    __builtin_abort ();
+}