From: Neil Booth Date: Thu, 27 Jun 2002 05:59:53 +0000 (+0000) Subject: re PR preprocessor/7070 (internal error with -Wunknown-pragmas && empty #pragma) X-Git-Tag: releases/gcc-3.3.0~4086 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0647023885b52c9eda290f593432d245f1e30ce3;p=thirdparty%2Fgcc.git re PR preprocessor/7070 (internal error with -Wunknown-pragmas && empty #pragma) PR preprocessor/7070 * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF. testsuite: * gcc.dg/Wunknownprag.c: New tests. From-SVN: r55021 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 973df1e14a91..a1a5173019c2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-06-27 Neil Booth + + PR preprocessor/7070 + * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF. + 2002-06-26 Bob Wilson * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare. diff --git a/gcc/c-lex.c b/gcc/c-lex.c index 4cb70c8f8863..3d8ecff08859 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -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); } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dacb054b9246..e97784cb5980 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2002-06-27 Neil Booth + + * gcc.dg/Wunknownprag.c: New tests. + Tue Jun 25 21:50:38 2002 J"orn Rennecke * 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 index 000000000000..c5ba58f767db --- /dev/null +++ b/gcc/testsuite/gcc.dg/Wunknownprag.c @@ -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" } */