From: Mark Mitchell Date: Thu, 23 Dec 2004 22:07:01 +0000 (+0000) Subject: re PR c++/17595 (Unfriendly error message/rejects legal #pragmas in the middle of... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0d63048c5b05fff144a7b3b8103cedf14839cac4;p=gcc.git re PR c++/17595 (Unfriendly error message/rejects legal #pragmas in the middle of a parameter list) PR c++/17595 * parser.c (cp_parser_error): Issue better messages about #pragma in locations where it is not permitted. From-SVN: r92572 --- 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 + 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