Commit 6bbb3a69 by Volker Reichelt Committed by Volker Reichelt

parser.c (cp_parser_member_declaration): Add fix-it hints for stray comma and…

parser.c (cp_parser_member_declaration): Add fix-it hints for stray comma and missing semicolon at end of member declaration.

        * parser.c (cp_parser_member_declaration): Add fix-it hints for
        stray comma and missing semicolon at end of member declaration.

        * g++.dg/diagnostic/member-decl-1.C: New test.

From-SVN: r247412
parent 30fc569c
2017-04-29 Volker Reichelt <v.reichelt@netcologne.de>
* parser.c (cp_parser_member_declaration): Add fix-it hints for
stray comma and missing semicolon at end of member declaration.
2017-04-27 Volker Reichelt <v.reichelt@netcologne.de>
* parser.c (cp_parser_cast_expression): Add target type of cast to
......
......@@ -23461,8 +23461,10 @@ cp_parser_member_declaration (cp_parser* parser)
if (cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON))
{
cp_token *token = cp_lexer_previous_token (parser->lexer);
error_at (token->location,
"stray %<,%> at end of member declaration");
gcc_rich_location richloc (token->location);
richloc.add_fixit_remove ();
error_at_rich_loc (&richloc, "stray %<,%> at end of "
"member declaration");
}
}
/* If the next token isn't a `;', then we have a parse error. */
......@@ -23473,8 +23475,10 @@ cp_parser_member_declaration (cp_parser* parser)
actual semicolon is missing. Find the previous token
and use that for our error position. */
cp_token *token = cp_lexer_previous_token (parser->lexer);
error_at (token->location,
"expected %<;%> at end of member declaration");
gcc_rich_location richloc (token->location);
richloc.add_fixit_insert_after (";");
error_at_rich_loc (&richloc, "expected %<;%> at end of "
"member declaration");
/* Assume that the user meant to provide a semicolon. If
we were to cp_parser_skip_to_end_of_statement, we might
2017-04-29 Volker Reichelt <v.reichelt@netcologne.de>
* g++.dg/diagnostic/member-decl-1.C: New test.
2017-04-29 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/80487
......
// { dg-options "-fdiagnostics-show-caret" }
struct A
{
int i,; /* { dg-error "stray .,. at end of member declaration" }
{ dg-begin-multiline-output "" }
int i,;
^
-
{ dg-end-multiline-output "" } */
int j /* { dg-error "expected .;. at end of member declaration" }
{ dg-begin-multiline-output "" }
int j
^
;
{ dg-end-multiline-output "" } */
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment