Use a range for LAMBDA_EXPR_LOCATION.

* parser.c (cp_parser_lambda_expression): Use a range for
	LAMBDA_EXPR_LOCATION.

From-SVN: r261727
This commit is contained in:
Jason Merrill 2018-06-18 20:38:38 -04:00 committed by Jason Merrill
parent 44e3e545a3
commit c0e11c6afb
2 changed files with 9 additions and 0 deletions

View file

@ -1,5 +1,8 @@
2018-06-18 Jason Merrill <jason@redhat.com>
* parser.c (cp_parser_lambda_expression): Use a range for
LAMBDA_EXPR_LOCATION.
PR c++/86200 - ICE with unexpanded pack in lambda parameter.
* pt.c (find_parameter_packs_r) [LAMBDA_EXPR]: Also look into the
function type.

View file

@ -10198,6 +10198,12 @@ cp_parser_lambda_expression (cp_parser* parser)
/* And now that we're done, push proxies for an enclosing lambda. */
insert_pending_capture_proxies ();
/* Update the lambda expression to a range. */
cp_token *end_tok = cp_lexer_previous_token (parser->lexer);
LAMBDA_EXPR_LOCATION (lambda_expr) = make_location (token->location,
token->location,
end_tok->location);
if (ok)
lambda_expr = build_lambda_object (lambda_expr);
else