pt.c (tsubst_copy): Cope with tsubst_pack_expansion returning a pack expansion...
authorDouglas Gregor <doug.gregor@gmail.com>
Thu, 27 Mar 2008 14:31:47 +0000 (14:31 +0000)
committerDoug Gregor <dgregor@gcc.gnu.org>
Thu, 27 Mar 2008 14:31:47 +0000 (14:31 +0000)
commit063cc99c4658d52b33b37f4173d304efa9c68b00
tree85efa960309333d8820defc88b6374fdcae35ac4
parentc91c9c2ee8a877a31e6a4ecf93b3fe0d779afcc0
pt.c (tsubst_copy): Cope with tsubst_pack_expansion returning a pack expansion...

2008-03-27  Douglas Gregor  <doug.gregor@gmail.com>

* pt.c (tsubst_copy) <case SIZEOF_EXPR>: Cope with
tsubst_pack_expansion returning a pack expansion, or a TREE_VEC
ending in a pack expansion, both of which can occur when
substituting into a nested template.
(tsubst_copy_and_build) <case SIZEOF_EXPR>: When we're
instantiating the sizeof...(X) form, make tsubst_copy do the work.
* parser.c (cp_parser_template_parameter): Deal with unnamed
non-type template parameter packs identified by pack expansions in
the parameter type.

2008-03-27  Douglas Gregor  <doug.gregor@gmail.com>

       * g++.dg/cpp0x/variadic91.C: New.

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