diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b6fd5428cf8..6575c577804 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +1999-08-09 Martin v. Loewis + + * decl2.c (set_decl_namespace): Do not complain about non-matching + decls if processing a template. + 1999-08-09 Mark Mitchell * decl.c (build_ptrmemfunc_type): Handle qualified diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index a044f450d73..c5a492f8d52 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -4499,6 +4499,12 @@ set_decl_namespace (decl, scope, friendp) /* Since decl is a function, old should contain a function decl. */ if (!is_overloaded_fn (old)) goto complain; + if (processing_template_decl || processing_specialization) + /* We have not yet called push_template_decl to turn the + FUNCTION_DECL into a TEMPLATE_DECL, so the declarations + won't match. But, we'll check later, when we construct the + template. */ + return; for (; old; old = OVL_NEXT (old)) if (decls_match (decl, OVL_CURRENT (old))) return;