diff options
author | Jason Merrill <jason@redhat.com> | 2018-08-11 07:01:49 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2018-08-11 07:01:49 -0400 |
commit | fc65b4b245a27a53b45385eb558ce6089632d0b3 (patch) | |
tree | bc8b8347b02e84b1672c96a758adccbea0398786 /gcc | |
parent | dfc5988a5c5e0f0428a96f436feb65753c89d723 (diff) | |
download | gcc-fc65b4b245a27a53b45385eb558ce6089632d0b3.zip gcc-fc65b4b245a27a53b45385eb558ce6089632d0b3.tar.gz gcc-fc65b4b245a27a53b45385eb558ce6089632d0b3.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: r263485
Diffstat (limited to 'gcc')
-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 1918484..33cf2f2 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 Marek Polacek <polacek@redhat.com> Backport from mainline diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 715faea..bbf1a71 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -21598,7 +21598,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 ...) { }; |