Commit baa49730 by Giovanni Bajo

pt.c (more_specialized_class): Increase processing_template_decl while partial ordering.

	* pt.c (more_specialized_class): Increase processing_template_decl
	while partial ordering.

From-SVN: r77236
parent 06effe87
2003-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
* pt.c (more_specialized_class): Increase processing_template_decl
while partial ordering.
2004-02-03 Mark Mitchell <mark@codesourcery.com> 2004-02-03 Mark Mitchell <mark@codesourcery.com>
PR c++/13925 PR c++/13925
......
...@@ -10121,6 +10121,11 @@ more_specialized_class (tree pat1, tree pat2, tree full_args) ...@@ -10121,6 +10121,11 @@ more_specialized_class (tree pat1, tree pat2, tree full_args)
tree targs; tree targs;
int winner = 0; int winner = 0;
/* Just like what happens for functions, if we are ordering between
different class template specializations, we may encounter dependent
types in the arguments, and we need our dependency check functions
to behave correctly. */
++processing_template_decl;
targs = get_class_bindings (TREE_VALUE (pat1), TREE_PURPOSE (pat1), targs = get_class_bindings (TREE_VALUE (pat1), TREE_PURPOSE (pat1),
add_outermost_template_args (full_args, TREE_PURPOSE (pat2))); add_outermost_template_args (full_args, TREE_PURPOSE (pat2)));
if (targs) if (targs)
...@@ -10130,6 +10135,7 @@ more_specialized_class (tree pat1, tree pat2, tree full_args) ...@@ -10130,6 +10135,7 @@ more_specialized_class (tree pat1, tree pat2, tree full_args)
add_outermost_template_args (full_args, TREE_PURPOSE (pat1))); add_outermost_template_args (full_args, TREE_PURPOSE (pat1)));
if (targs) if (targs)
++winner; ++winner;
--processing_template_decl;
return winner; return winner;
} }
......
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