Simplify lambda parsing.
Since we removed the special parsing for C++11 lambdas, it's just been an open-coded copy of cp_parser_function_body. So let's call it instead. This avoids the need to change this code in my revised 33799 patch. * parser.c (cp_parser_lambda_body): Use cp_parser_function_body.
This commit is contained in:
parent
bf6fc129c0
commit
303484a735
2 changed files with 8 additions and 16 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2020-01-19 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
* parser.c (cp_parser_lambda_body): Use cp_parser_function_body.
|
||||||
|
|
||||||
2020-01-18 Jakub Jelinek <jakub@redhat.com>
|
2020-01-18 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* coroutines.cc (get_fn_local_identifier): Fix NO_DOT_IN_LABEL
|
* coroutines.cc (get_fn_local_identifier): Fix NO_DOT_IN_LABEL
|
||||||
|
|
|
@ -11141,23 +11141,11 @@ cp_parser_lambda_body (cp_parser* parser, tree lambda_expr)
|
||||||
local_specialization_stack s (lss_copy);
|
local_specialization_stack s (lss_copy);
|
||||||
tree fco = lambda_function (lambda_expr);
|
tree fco = lambda_function (lambda_expr);
|
||||||
tree body = start_lambda_function (fco, lambda_expr);
|
tree body = start_lambda_function (fco, lambda_expr);
|
||||||
matching_braces braces;
|
|
||||||
|
|
||||||
if (braces.require_open (parser))
|
/* Originally C++11 required us to peek for 'return expr'; and
|
||||||
{
|
process it specially here to deduce the return type. N3638
|
||||||
tree compound_stmt = begin_compound_stmt (0);
|
removed the need for that. */
|
||||||
|
cp_parser_function_body (parser, false);
|
||||||
/* Originally C++11 required us to peek for 'return expr'; and
|
|
||||||
process it specially here to deduce the return type. N3638
|
|
||||||
removed the need for that. */
|
|
||||||
|
|
||||||
while (cp_lexer_next_token_is_keyword (parser->lexer, RID_LABEL))
|
|
||||||
cp_parser_label_declaration (parser);
|
|
||||||
cp_parser_statement_seq_opt (parser, NULL_TREE);
|
|
||||||
braces.require_close (parser);
|
|
||||||
|
|
||||||
finish_compound_stmt (compound_stmt);
|
|
||||||
}
|
|
||||||
|
|
||||||
finish_lambda_function (body);
|
finish_lambda_function (body);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue