diff options
| -rw-r--r-- | gcc/testsuite/gcc.dg/990703-1.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/990703-1.c b/gcc/testsuite/gcc.dg/990703-1.c new file mode 100644 index 0000000..b953a5b --- /dev/null +++ b/gcc/testsuite/gcc.dg/990703-1.c @@ -0,0 +1,24 @@ +/* { dg-do run } */ + +/* Test of obscure case in token pasting in the preprocessor. + I can't think of any way to make this problem provoke a syntax error. + Based on a bug report by Manfred Hollstein. */ + +#include <string.h> + +#define SP1(x, y) SP2(x, y) +#define SP2(x, y) SP3(x##y) +#define SP3(x) #x +#define MZ -0 + +int +main(void) +{ + char *x = SP1(0,MZ); + char *y = "0-0" /* should be the expansion of SP1(0,MZ) */ + + if(strcmp(x, y)) + return 1; + else + return 0; +} |
