From: Giovanni Bajo Date: Wed, 4 Feb 2004 11:26:26 +0000 (+0000) Subject: pt.c (more_specialized_class): Increase processing_template_decl while partial ordering. X-Git-Tag: releases/gcc-4.0.0~10399 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=baa4973045be48f05b719b1d36b7df0428ef2922;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 47fbb965a2e3..aa852a60b7ef 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2003-02-04 Giovanni Bajo + + * pt.c (more_specialized_class): Increase processing_template_decl + while partial ordering. + 2004-02-03 Mark Mitchell PR c++/13925 diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index b8a02fbe47e0..7040138db361 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -10121,6 +10121,11 @@ more_specialized_class (tree pat1, tree pat2, tree full_args) tree targs; 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), add_outermost_template_args (full_args, TREE_PURPOSE (pat2))); if (targs) @@ -10130,6 +10135,7 @@ more_specialized_class (tree pat1, tree pat2, tree full_args) add_outermost_template_args (full_args, TREE_PURPOSE (pat1))); if (targs) ++winner; + --processing_template_decl; return winner; }