re PR c++/45236 ([C++0x] Can't access nested type of a partial class specialization involving variadic parameters)
PR c++/45236 * pt.c (lookup_template_class): Don't re-coerce outer parms. From-SVN: r163042
This commit is contained in:
parent
ee24763610
commit
7a25d520c2
|
@ -1,3 +1,8 @@
|
|||
2010-08-09 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/45236
|
||||
* pt.c (lookup_template_class): Don't re-coerce outer parms.
|
||||
|
||||
2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
* call.c (add_builtin_candidates): Use VECs for local variable
|
||||
|
|
15
gcc/cp/pt.c
15
gcc/cp/pt.c
|
@ -6540,11 +6540,16 @@ lookup_template_class (tree d1,
|
|||
i > 0 && t != NULL_TREE;
|
||||
--i, t = TREE_CHAIN (t))
|
||||
{
|
||||
tree a = coerce_template_parms (TREE_VALUE (t),
|
||||
arglist, gen_tmpl,
|
||||
complain,
|
||||
/*require_all_args=*/true,
|
||||
/*use_default_args=*/true);
|
||||
tree a;
|
||||
if (i == saved_depth)
|
||||
a = coerce_template_parms (TREE_VALUE (t),
|
||||
arglist, gen_tmpl,
|
||||
complain,
|
||||
/*require_all_args=*/true,
|
||||
/*use_default_args=*/true);
|
||||
else
|
||||
/* Outer levels should have already been coerced. */
|
||||
a = TMPL_ARGS_LEVEL (arglist, i);
|
||||
|
||||
/* Don't process further if one of the levels fails. */
|
||||
if (a == error_mark_node)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2010-08-09 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/45236
|
||||
* g++.dg/cpp0x/variadic-104.C: New.
|
||||
|
||||
2010-08-09 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/44235
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
// PR c++/45236
|
||||
// { dg-options -std=c++0x }
|
||||
|
||||
template <class T, class S> class foo;
|
||||
|
||||
template<template<int...> class C, int... II, class S>
|
||||
struct foo<C<II...>,S>
|
||||
{
|
||||
template <class U>
|
||||
struct bar { typedef int type; };
|
||||
};
|
||||
|
||||
template <int... I>
|
||||
struct A {};
|
||||
|
||||
foo<A<3>, float>::bar<int> x;
|
Loading…
Reference in New Issue