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
This commit is contained in:
parent
30fc569c18
commit
6bbb3a69ef
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
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
|
||||
|
||||
18
gcc/testsuite/g++.dg/diagnostic/member-decl-1.C
Normal file
18
gcc/testsuite/g++.dg/diagnostic/member-decl-1.C
Normal file
@ -0,0 +1,18 @@
|
||||
// { 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 "" } */
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user