pt.c (coerce_template_template_parm): Moved the body of the loop of coerce_template_t...
authorDouglas Gregor <doug.gregor@gmail.com>
Wed, 26 Mar 2008 04:17:57 +0000 (04:17 +0000)
committerDoug Gregor <dgregor@gcc.gnu.org>
Wed, 26 Mar 2008 04:17:57 +0000 (04:17 +0000)
commita0a5f30f8e6741d55daca7fb3093df6365425661
treef1ef439448a570f47eb3eed0834a900570fcfa64
parent22ec849c3b1088a10c46068f3df6e1e9fbc9efd4
pt.c (coerce_template_template_parm): Moved the body of the loop of coerce_template_template_parms here...

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

       * pt.c (coerce_template_template_parm): Moved the body of the loop
       of coerce_template_template_parms here, to make iteration over a
       template argument pack simpler.
       Also, allow matching of a template parameter pack in the template
       template parameter to a template parameter in the template
       template argument.
       (coerce_template_template_parms): Deal with variadic template
       template parameters. Use coerce_template_template_parm.
       (unify): Make sure we coerce the template template argument's
       template arguments to the template template parameter's template
       parameters, not the other way around.

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

       * g++.dg/cpp0x/variadic84.C: Update to reflect the change in
       variadic template template parameter binding semantics.
       * g++.dg/cpp0x/variadic85.C: Ditto.
       * g++.dg/cpp0x/variadic88.C: New.
       * g++.dg/cpp0x/variadic89.C: New.
       * g++.dg/cpp0x/variadic90.C: New.
       * g++.dg/cpp0x/variadic-ex14.C: Update to reflect the change in
       variadic template template parameter binding semantics.
       * g++.dg/cpp0x/variadic-lambda.C: New.

From-SVN: r133543
gcc/cp/ChangeLog
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C
gcc/testsuite/g++.dg/cpp0x/variadic-lambda.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/variadic84.C
gcc/testsuite/g++.dg/cpp0x/variadic85.C
gcc/testsuite/g++.dg/cpp0x/variadic88.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/variadic89.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/variadic90.C [new file with mode: 0644]