OSDN Git Service

* class.c (check_field_decls): Complain about non-static data
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 May 2000 19:22:53 +0000 (19:22 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 May 2000 19:22:53 +0000 (19:22 +0000)
        members with same name as class in class with constructor.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33856 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/class.c

index ad66b8d..34834b1 100644 (file)
@@ -1,3 +1,8 @@
+2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
+
+       * class.c (check_field_decls): Complain about non-static data
+       members with same name as class in class with constructor.
+
 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
 
        * decl.c (grokdeclarator): Allow non-static data members with
index cbc367c..de9195e 100644 (file)
@@ -3442,6 +3442,13 @@ check_field_decls (t, access_decls, empty_p,
            |= CLASSTYPE_READONLY_FIELDS_NEED_INIT (type);
        }
 
+      /* Core issue 80: A nonstatic data member is required to have a
+        different name from the class iff the class has a
+        user-defined constructor.  */
+      if (DECL_NAME (x) == constructor_name (t)
+         && TYPE_HAS_CONSTRUCTOR (t))
+       cp_error_at ("field `%#D' with same name as class", x);
+
       /* We set DECL_C_BIT_FIELD in grokbitfield.
         If the type and width are valid, we'll also set DECL_BIT_FIELD.  */
       if (DECL_C_BIT_FIELD (x))