aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.dg/cpp-hash1.c9
-rw-r--r--gcc/testsuite/gcc.dg/cpp-hash2.c15
-rw-r--r--gcc/testsuite/gcc.dg/cpp-ifparen.c7
3 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/cpp-hash1.c b/gcc/testsuite/gcc.dg/cpp-hash1.c
new file mode 100644
index 0000000..a4c4b35
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp-hash1.c
@@ -0,0 +1,9 @@
+/* Test for proper handling of # in object-like macros.
+ From Linux kernel. */
+/* { dg-do preprocess } */
+
+#define FIXUP .section ".fixup",#alloc,#execinstr
+
+FIXUP
+
+/* { dg-bogus "not followed by" "object-like #" { target *-*-* } 3 } */
diff --git a/gcc/testsuite/gcc.dg/cpp-hash2.c b/gcc/testsuite/gcc.dg/cpp-hash2.c
new file mode 100644
index 0000000..b47c2a2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp-hash2.c
@@ -0,0 +1,15 @@
+/* Test for erroneously thinking comments are token-pastes.
+ From XFree86 4.0. */
+/* { dg-do preprocess } */
+/* { dg-options "-traditional" } */
+
+#ifndef foo
+#define foo /**/
+#endif
+
+#ifndef foo
+#define foo /* as nothing */
+#endif
+
+/* { dg-bogus "(start|end) of macro" "/**/ at end" { target *-*-* } 7 } */
+/* { dg-bogus "(start|end) of macro" "comment at end" { target *-*-* } 11 } */
diff --git a/gcc/testsuite/gcc.dg/cpp-ifparen.c b/gcc/testsuite/gcc.dg/cpp-ifparen.c
new file mode 100644
index 0000000..39e112e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp-ifparen.c
@@ -0,0 +1,7 @@
+#if 2048 < (16 * (40) + 192)
+#error /* { dg-bogus "error" "with paren" } */
+#endif
+
+#if 2048 < (16 * 40 + 192)
+#error /* { dg-bogus "error" "without paren" } */
+#endif