diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/cpp/strp1.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/strp1.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/cpp/strp1.c b/gcc/testsuite/gcc.dg/cpp/strp1.c new file mode 100644 index 000000000..096d968c9 --- /dev/null +++ b/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; +} |