]> gcc.gnu.org Git - gcc.git/commitdiff
Test cases for c++ comments and endif labels in system headers.
authorZack Weinberg <zack@gcc.gnu.org>
Thu, 27 Jan 2000 22:27:24 +0000 (22:27 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Thu, 27 Jan 2000 22:27:24 +0000 (22:27 +0000)
I made them up all by myself.

From-SVN: r31653

gcc/testsuite/gcc.dg/cxx-comments-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/cxx-comments-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/endif-label.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.dg/cxx-comments-1.c b/gcc/testsuite/gcc.dg/cxx-comments-1.c
new file mode 100644 (file)
index 0000000..c7c51d6
--- /dev/null
@@ -0,0 +1,20 @@
+/* { dg-do preprocess } */
+/* { dg-options "-pedantic -std=gnu89" } */
+
+/* You can't do this in your own code... */
+// C++ comment is not in C89  { dg-warning "style comment|reported only once" "good warning" }
+
+/* ...but we don't bitch about it more than once.  */
+// C++ comment is not in C89  { dg-bogus "style comment" "bad warning" }
+
+/*
+   { dg-final { if ![file exists cxx-comments-1.i] { return }          } }
+   { dg-final { set tmp [grep cxx-comments-1.i "is not in C89" line]   } }
+   { dg-final { # send_user "$tmp\n"                                   } }
+   { dg-final { if [regexp "is not in C89" $tmp] \{                    } }
+   { dg-final {     fail "cxx-comments-1: comment strip check"         } }
+   { dg-final { \} else \{                                             } }
+   { dg-final {     pass "cxx-comments-1: comment strip check"         } }
+   { dg-final { \}                                                     } }
+*/
+
diff --git a/gcc/testsuite/gcc.dg/cxx-comments-2.c b/gcc/testsuite/gcc.dg/cxx-comments-2.c
new file mode 100644 (file)
index 0000000..7d0fe09
--- /dev/null
@@ -0,0 +1,20 @@
+/* { dg-do preprocess } */
+/* { dg-options "-pedantic -std=c89" } */
+
+/* This is an extension and therefore gets a warning.  */
+#line 5 "cxx-comments-2.c" 3  /* { dg-warning "garbage at end" "#line extension" } */
+
+/* A system header may contain C++ comments irrespective of mode.  */
+// C++ comment is not in C89  { dg-bogus "style comment" "bad warning" }
+
+/*
+   { dg-final { if ![file exists cxx-comments-2.i] { return }          } }
+   { dg-final { set tmp [grep cxx-comments-2.i "is not in C89" line]   } }
+   { dg-final { # send_user "$tmp\n"                                   } }
+   { dg-final { if [regexp "is not in C89" $tmp] \{                    } }
+   { dg-final {     fail "cxx-comments-2: comment strip check"         } }
+   { dg-final { \} else \{                                             } }
+   { dg-final {     pass "cxx-comments-2: comment strip check"         } }
+   { dg-final { \}                                                     } }
+*/
+
diff --git a/gcc/testsuite/gcc.dg/endif-label.c b/gcc/testsuite/gcc.dg/endif-label.c
new file mode 100644 (file)
index 0000000..95bd05d
--- /dev/null
@@ -0,0 +1,15 @@
+/* { dg-do preprocess } */
+/* { dg-options "-pedantic -Wall" } */
+
+/* You can't get away with this in your own code... */
+#ifdef KERNEL
+#define foo
+#endif KERNEL  /* { dg-warning "text following" "good warning" } */
+
+/* This will provoke a warning because the '3' is an extension.  */
+#line 10 "endif-label.c" 3 /* { dg-warning "garbage at end" "#line extension" } */
+
+/* ... but in a system header, it's acceptable.  */
+#ifdef KERNEL
+#define foo
+#endif KERNEL  /* { dg-bogus "text following" "bad warning" } */
This page took 0.071544 seconds and 5 git commands to generate.