+2004-02-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/14186
+ * name-lookup.c (push_class_level_binding): Do not complain about
+ adding a binding for a member whose name is the same as the
+ enclosing class if the member is located in a base class of the
+ current class.
+
2004-02-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
PR c++/14181
&& DECL_CONTEXT (x) != current_class_type))
&& DECL_NAME (x) == constructor_name (current_class_type))
{
- error ("`%D' has the same name as the class in which it is declared",
- x);
- POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, false);
+ tree scope = context_for_name_lookup (x);
+ if (TYPE_P (scope) && same_type_p (scope, current_class_type))
+ {
+ error ("`%D' has the same name as the class in which it is declared",
+ x);
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, false);
+ }
}
/* If this declaration shadows a declaration from an enclosing
+2004-02-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/14186
+ * g++.dg/lookup/member1.C: New test.
+
2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
* gcc.c-torture/compile/20040130-1.c: Enable only when