class.c (finish_struct): Make conflicting use of id a pedwarn.
* class.c (finish_struct): Make conflicting use of id a pedwarn. * decl.c (pushdecl_class_level): Likewise. From-SVN: r20552
This commit is contained in:
parent
ca8c3b3712
commit
57f01f4575
@ -1,3 +1,8 @@
|
||||
1998-06-17 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* class.c (finish_struct): Make conflicting use of id a pedwarn.
|
||||
* decl.c (pushdecl_class_level): Likewise.
|
||||
|
||||
1998-06-17 Mark Mitchell <mark@markmitchell.com>
|
||||
|
||||
* pt.c (convert_nontype_argument): Issue an error when presented
|
||||
|
@ -4300,7 +4300,9 @@ finish_struct (t, list_of_fieldlists, attributes, warn_anon)
|
||||
TREE_PROTECTED (DECL_RESULT (x)) = TREE_PROTECTED (x);
|
||||
}
|
||||
|
||||
/* Check for inconsistent use of this name in the class body.
|
||||
/* A name N used in a class S shall refer to the same declaration
|
||||
in its context and when re-evaluated in the completed scope of S.
|
||||
|
||||
Enums, types and static vars have already been checked. */
|
||||
if (TREE_CODE (x) != TYPE_DECL && TREE_CODE (x) != USING_DECL
|
||||
&& ! (TREE_CODE (x) == TEMPLATE_DECL
|
||||
@ -4325,10 +4327,10 @@ finish_struct (t, list_of_fieldlists, attributes, warn_anon)
|
||||
&& !(TREE_CODE (icv) == TYPE_DECL
|
||||
&& DECL_CONTEXT (icv) == t))
|
||||
{
|
||||
cp_error_at ("declaration of identifier `%D' as `%+#D'",
|
||||
name, x);
|
||||
cp_error_at ("conflicts with other use in class as `%#D'",
|
||||
icv);
|
||||
cp_pedwarn_at ("declaration of identifier `%D' as `%+#D'",
|
||||
name, x);
|
||||
cp_pedwarn_at ("conflicts with other use in class as `%#D'",
|
||||
icv);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3726,7 +3726,9 @@ pushdecl_class_level (x)
|
||||
{
|
||||
if (TYPE_BEING_DEFINED (current_class_type))
|
||||
{
|
||||
/* Check for inconsistent use of this name in the class body.
|
||||
/* A name N used in a class S shall refer to the same declaration
|
||||
in its context and when re-evaluated in the completed scope of S.
|
||||
|
||||
Types, enums, and static vars are checked here; other
|
||||
members are checked in finish_struct. */
|
||||
tree icv = IDENTIFIER_CLASS_VALUE (name);
|
||||
@ -3738,9 +3740,9 @@ pushdecl_class_level (x)
|
||||
&& !(DECL_DECLARES_TYPE_P (icv)
|
||||
&& DECL_CONTEXT (icv) == current_class_type))
|
||||
{
|
||||
cp_error ("declaration of identifier `%D' as `%#D'", name, x);
|
||||
cp_error_at ("conflicts with previous use in class as `%#D'",
|
||||
icv);
|
||||
cp_pedwarn ("declaration of identifier `%D' as `%#D'", name, x);
|
||||
cp_pedwarn_at ("conflicts with previous use in class as `%#D'",
|
||||
icv);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user