re PR c++/34751 (ICE with pointer to member and variadic templates)
authorDouglas Gregor <doug.gregor@gmail.com>
Tue, 15 Jan 2008 18:49:47 +0000 (18:49 +0000)
committerDoug Gregor <dgregor@gcc.gnu.org>
Tue, 15 Jan 2008 18:49:47 +0000 (18:49 +0000)
commitcdcae7450ee750f6e41d2d47fa6c52841db5fba1
tree9b68e1a6f40c5f5f93069912e1b4c9c184633aef
parent4439d02f0f5881b186b7d3430a9504310e227e30
re PR c++/34751 (ICE with pointer to member and variadic templates)

2008-01-15  Douglas Gregor  <doug.gregor@gmail.com>

PR c++/34751
* pt.c (coerce_template_parameter_pack): When substituting into
the type of a non-type template parameter pack. use the
deduced/substituted arguments.
* parser.c (declarator_can_be_parameter_pack): A pointer-to-member
can be a parameter pack with the ellipsis following it.  When we
have an erroneous declaration, allow it to be a parameter pack.
(cp_parser_template_parameter): Complain about default
arguments on non-type template parameter packs, and parse them
using the new cp_parser_default_argument.
(cp_parser_parameter_declaration): Complain about parameter packs
with default arguments. Move parsing of default arguments into a
new function, cp_parser_default_argument.
(cp_parser_default_argument): New; extracted from
cp_parser_parameter_declaration.

2008-01-15  Douglas Gregor  <doug.gregor@gmail.com>

PR c++/34751
* g++.dg/cpp0x/vt-34751.C: New.

From-SVN: r131548
gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/vt-34751.C [new file with mode: 0644]