From baa4973045be48f05b719b1d36b7df0428ef2922 Mon Sep 17 00:00:00 2001 From: Giovanni Bajo Date: Wed, 4 Feb 2004 11:26:26 +0000 Subject: [PATCH] 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 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/pt.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 47fbb965a2e..aa852a60b7e 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 b8a02fbe47e..7040138db36 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; } -- 2.30.2