aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>1999-07-04 16:28:56 +0000
committerZack Weinberg <zack@gcc.gnu.org>1999-07-04 16:28:56 +0000
commite9edf69f9423655f5131e9dc72b08ce3234be353 (patch)
tree4178b00ea7bdb6f3ea75b33373faf4dc69d0f996 /gcc
parent95bfd4834e6433de3475df14403c6937b65a8f79 (diff)
downloadgcc-e9edf69f9423655f5131e9dc72b08ce3234be353.zip
gcc-e9edf69f9423655f5131e9dc72b08ce3234be353.tar.gz
gcc-e9edf69f9423655f5131e9dc72b08ce3234be353.tar.bz2
New test; for odd case of token pasting
From-SVN: r27937
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.dg/990703-1.c24
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;
+}