diff options
| author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-12-23 22:07:01 +0000 |
|---|---|---|
| committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-12-23 22:07:01 +0000 |
| commit | eb78e86fcb113a90a145e55f290dbbb9bfa907ed (patch) | |
| tree | 136d2b960d550dd2f69a786e64f54a8059c8b09d | |
| parent | fb9e844cb771306d23790b637f9dbbc29e2c8747 (diff) | |
| download | ppe42-gcc-eb78e86fcb113a90a145e55f290dbbb9bfa907ed.tar.gz ppe42-gcc-eb78e86fcb113a90a145e55f290dbbb9bfa907ed.zip | |
PR c++/17595
* parser.c (cp_parser_error): Issue better messages about
#pragma in locations where it is not permitted.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92572 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/cp/parser.c | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 04ec9463dd9..cf9a42c9f8a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2004-12-23 Mark Mitchell <mark@codesourcery.com> + PR c++/17595 + * parser.c (cp_parser_error): Issue better messages about + #pragma in locations where it is not permitted. + PR c++/17413 * pt.c (check_instantiated_args): Remove bogus SFINAE code. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 5654f11dcd4..2a72a5ed335 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -1784,6 +1784,12 @@ cp_parser_error (cp_parser* parser, const char* message) /* This diagnostic makes more sense if it is tagged to the line of the token we just peeked at. */ cp_lexer_set_source_position_from_token (token); + if (token->type == CPP_PRAGMA) + { + error ("%<#pragma%> is not allowed here"); + cp_lexer_purge_token (parser->lexer); + return; + } c_parse_error (message, /* Because c_parser_error does not understand CPP_KEYWORD, keywords are treated like |

