aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/cpp/strp1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/cpp/strp1.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/cpp/strp1.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/cpp/strp1.c b/gcc-4.9/gcc/testsuite/gcc.dg/cpp/strp1.c
new file mode 100644
index 000000000..096d968c9
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/cpp/strp1.c
@@ -0,0 +1,35 @@
+/* { dg-do run } */
+
+/* Regression test for stringizing and token pasting.
+ We got internal escape markers in the strings. */
+
+#include <string.h>
+#include <stdlib.h>
+
+#define S(x) _S(x)
+#define _S(x) #x
+
+#define I 1
+static const char s1[] = S(I.1);
+static const char t1[] = "1.1";
+
+#define f h
+#define h(a) a+f
+static const char s2[] = S( f(1)(2) );
+static const char t2[] = "1+h(2)";
+
+#undef I
+#undef f
+#undef h
+
+int
+main(void)
+{
+ if (strcmp (s1, t1))
+ abort ();
+
+ if (strcmp (s2, t2))
+ abort ();
+
+ return 0;
+}