Commit 7a25d520 by Jason Merrill Committed by Jason Merrill

re PR c++/45236 ([C++0x] Can't access nested type of a partial class…

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
parent ee247636
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
......
......@@ -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)
......
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
......
// 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;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment