Commit 6150b602 by Jason Merrill Committed by Jason Merrill

re PR c++/27424 (Valid template-template-parameter rejected)

        PR c++/27424
        * pt.c (convert_template_argument): Pass all template arguments
        on to coerce_template_template_parms.

From-SVN: r115063
parent 99495729
2006-06-28 Jason Merrill <jason@redhat.com>
PR c++/27424
* pt.c (convert_template_argument): Pass all template arguments
on to coerce_template_template_parms.
2006-06-25 Lee Millward <lee.millward@gmail.com> 2006-06-25 Lee Millward <lee.millward@gmail.com>
Mark Mitchell <mark@codesuorcery.com> Mark Mitchell <mark@codesuorcery.com>
......
...@@ -3837,11 +3837,8 @@ convert_template_argument (tree parm, ...@@ -3837,11 +3837,8 @@ convert_template_argument (tree parm,
tree in_decl) tree in_decl)
{ {
tree val; tree val;
tree inner_args;
int is_type, requires_type, is_tmpl_type, requires_tmpl_type; int is_type, requires_type, is_tmpl_type, requires_tmpl_type;
inner_args = INNERMOST_TEMPLATE_ARGS (args);
if (TREE_CODE (arg) == TREE_LIST if (TREE_CODE (arg) == TREE_LIST
&& TREE_CODE (TREE_VALUE (arg)) == OFFSET_REF) && TREE_CODE (TREE_VALUE (arg)) == OFFSET_REF)
{ {
...@@ -3933,7 +3930,7 @@ convert_template_argument (tree parm, ...@@ -3933,7 +3930,7 @@ convert_template_argument (tree parm,
if (coerce_template_template_parms (parmparm, argparm, if (coerce_template_template_parms (parmparm, argparm,
complain, in_decl, complain, in_decl,
inner_args)) args))
{ {
val = arg; val = arg;
......
// PR c++/27424
// Bug: failing to substitute the 'int' into C
template<typename T> struct A
{
template<template<T> class> struct B {};
template<T> struct C;
B<C> b;
};
A<int> a;
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