diff options
author | Jason Merrill <jason@redhat.com> | 2020-01-19 09:15:26 -0500 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2020-01-19 13:56:22 -0500 |
commit | 303484a73541ea7f41dff0238157924e49c255ff (patch) | |
tree | b028146a93b9ea6e208fb9852b7c81d3afe7f98d /gcc/cp/parser.c | |
parent | bf6fc129c0568da74270474a1cf0737120796893 (diff) | |
download | gcc-303484a73541ea7f41dff0238157924e49c255ff.zip gcc-303484a73541ea7f41dff0238157924e49c255ff.tar.gz gcc-303484a73541ea7f41dff0238157924e49c255ff.tar.bz2 |
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.
Diffstat (limited to 'gcc/cp/parser.c')
-rw-r--r-- | gcc/cp/parser.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 75e32fc..98c1beb 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -11141,23 +11141,11 @@ cp_parser_lambda_body (cp_parser* parser, tree lambda_expr) local_specialization_stack s (lss_copy); tree fco = lambda_function (lambda_expr); tree body = start_lambda_function (fco, lambda_expr); - matching_braces braces; - if (braces.require_open (parser)) - { - tree compound_stmt = begin_compound_stmt (0); - - /* 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); - } + /* 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. */ + cp_parser_function_body (parser, false); finish_lambda_function (body); } |