OSDN Git Service

PR preprocessor/7070
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 Jun 2002 05:59:53 +0000 (05:59 +0000)
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 Jun 2002 05:59:53 +0000 (05:59 +0000)
* c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF.
testsuite:
* gcc.dg/Wunknownprag.c: New tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55021 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/c-lex.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/Wunknownprag.c [new file with mode: 0644]

index 973df1e..a1a5173 100644 (file)
@@ -1,3 +1,8 @@
+2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
+
+       PR preprocessor/7070
+       * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF.
+
 2002-06-26  Bob Wilson  <bob.wilson@acm.org>
 
        * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare.
index 4cb70c8..3d8ecff 100644 (file)
@@ -322,20 +322,21 @@ cb_def_pragma (pfile, line)
      -Wunknown-pragmas has been given.  */
   if (warn_unknown_pragmas > in_system_header)
     {
-      const unsigned char *space, *name = 0;
+      const unsigned char *space, *name;
       const cpp_token *s;
 
+      space = name = (const unsigned char *) "";
       s = cpp_get_token (pfile);
-      space = cpp_token_as_text (pfile, s);
-      s = cpp_get_token (pfile);
-      if (s->type == CPP_NAME)
-       name = cpp_token_as_text (pfile, s);
+      if (s->type != CPP_EOF)
+       {
+         space = cpp_token_as_text (pfile, s);
+         s = cpp_get_token (pfile);
+         if (s->type == CPP_NAME)
+           name = cpp_token_as_text (pfile, s);
+       }
 
       lineno = SOURCE_LINE (map, line);
-      if (name)
-       warning ("ignoring #pragma %s %s", space, name);
-      else
-       warning ("ignoring #pragma %s", space);
+      warning ("ignoring #pragma %s %s", space, name);
     }
 }
 
index dacb054..e97784c 100644 (file)
@@ -1,3 +1,7 @@
+2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
+
+       * gcc.dg/Wunknownprag.c: New tests.
+
 Tue Jun 25 21:50:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
 
        * gcc.c-torture/execute/simd-2.c: New test.
diff --git a/gcc/testsuite/gcc.dg/Wunknownprag.c b/gcc/testsuite/gcc.dg/Wunknownprag.c
new file mode 100644 (file)
index 0000000..c5ba58f
--- /dev/null
@@ -0,0 +1,11 @@
+/* Copyright (C) 2002 Free Software Foundation, Inc.  */
+
+/* { dg-do compile } */
+/* { dg-options "-Wunknown-pragmas" } */
+
+/* We used to get "unspellable token: CPP_EOF" warnings.  */
+
+#pragma                                /* { dg-warning "ignoring #pragma" } */
+#pragma ~                      /* { dg-warning "ignoring #pragma" } */
+#pragma baz                    /* { dg-warning "ignoring #pragma" } */
+#pragma baz baz                        /* { dg-warning "ignoring #pragma" } */