diff options
author | Jason Merrill <jason@redhat.com> | 2018-08-11 06:47:03 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2018-08-11 06:47:03 -0400 |
commit | fc186cbd1cdff6cecdb8eb0a350c3ee0af2d1332 (patch) | |
tree | afd965c1c0a3d65af36432483bd49a0f1b841a9d | |
parent | 1d03ff3ff1ae890c4ef212fa8a07140fa296d06e (diff) | |
download | gcc-fc186cbd1cdff6cecdb8eb0a350c3ee0af2d1332.zip gcc-fc186cbd1cdff6cecdb8eb0a350c3ee0af2d1332.tar.gz gcc-fc186cbd1cdff6cecdb8eb0a350c3ee0af2d1332.tar.bz2 |
PR c++/86728 - C variadic generic lambda.
* parser.c (cp_parser_parameter_declaration): Don't turn 'auto' into
a pack if it's followed by a declarator-id.
From-SVN: r263484
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/parser.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic19.C | 4 |
3 files changed, 12 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8a3e150..fc0771a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2018-08-10 Jason Merrill <jason@redhat.com> + + PR c++/86728 - C variadic generic lambda. + * parser.c (cp_parser_parameter_declaration): Don't turn 'auto' into + a pack if it's followed by a declarator-id. + 2018-08-08 Jakub Jelinek <jakub@redhat.com> P0595R1 - is_constant_evaluated diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 93c812f..8cfcd15 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -21722,7 +21722,8 @@ cp_parser_parameter_declaration (cp_parser *parser, parameter was introduced during cp_parser_parameter_declaration, change any implicit parameters introduced into packs. */ if (parser->implicit_template_parms - && (token->type == CPP_ELLIPSIS + && ((token->type == CPP_ELLIPSIS + && declarator_can_be_parameter_pack (declarator)) || (declarator && declarator->parameter_pack_p))) { int latest_template_parm_idx = TREE_VEC_LENGTH diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic19.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic19.C new file mode 100644 index 0000000..e78677d --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic19.C @@ -0,0 +1,4 @@ +// PR c++/86728 +// { dg-do compile { target c++14 } } + +auto c = [](auto x ...) { }; |