diff options
author | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2008-03-02 15:45:29 +0000 |
---|---|---|
committer | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2008-03-02 15:45:29 +0000 |
commit | 393eda6a41b2b2319868f41a754148bf037f955e (patch) | |
tree | fe322a3045cc0749a70363f868657cbec06018f4 /gcc/cp/class.c | |
parent | 92331508a65e169b0eeb2928312a3394cefe0278 (diff) | |
download | gcc-393eda6a41b2b2319868f41a754148bf037f955e.zip gcc-393eda6a41b2b2319868f41a754148bf037f955e.tar.gz gcc-393eda6a41b2b2319868f41a754148bf037f955e.tar.bz2 |
re PR c++/24924 (front end and preprocessor pedantic_errors settings should agree)
2008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR 24924
* c-common.c (flag_permissive): Delete.
(constant_expression_warnings): Check flags first.
(constant_expression_error): New.
* c-common.h (flag_permissive): Delete.
(constant_expression_error): Declare.
* flags.h (flag_permissive): Declare. Update description.
* diagnostic.c (pedwarn): Update.
(permerror): New.
* diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
(permissive_error_kind): New.
* toplev.c (flag_permissive): Define. Update description.
* toplev.h (permissive_error_kind): Declare.
* c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
(pedwarn_c90): Use pedantic_warning_kind.
* c-opts.c (c_common_post_options): flag_permissive does not affect
flag_pedantic_errors.
cp/
* class.c (finish_struct_anon): Use permerror instead of pedwarn.
(check_field_decls): Likewise.
(note_name_declared_in_class): Likewise.
* call.c (build_new_op): Likewise.
(convert_like_real): Likewise.
(build_over_call): Likewise.
* lex.c (unqualified_fn_lookup_error): Likewise.
* parser.c (cp_parser_template_id): Likewise.
* cvt.c (warn_ref_binding): Likewise.
(convert_to_reference): Likewise.
(ocp_convert): Likewise.
(convert_to_void): Use error instead of pedwarn.
* error.c (cp_cpp_error): Use pedantic_warning_kind.
* decl.c (compute_array_index_type): Use constant_expression_error.
testsuite/
* g++.dg/cpp/string-2.C: This is a warning now.
* g++.dg/cpp/pedantic-errors.C: -pedantic-errors is not enabled by
default, so add it.
From-SVN: r132817
Diffstat (limited to 'gcc/cp/class.c')
-rw-r--r-- | gcc/cp/class.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 1a76816..500ddaa 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -2493,27 +2493,27 @@ finish_struct_anon (tree t) if (TREE_CODE (elt) != FIELD_DECL) { if (is_union) - pedwarn ("%q+#D invalid; an anonymous union can " - "only have non-static data members", elt); + permerror ("%q+#D invalid; an anonymous union can " + "only have non-static data members", elt); else - pedwarn ("%q+#D invalid; an anonymous struct can " - "only have non-static data members", elt); + permerror ("%q+#D invalid; an anonymous struct can " + "only have non-static data members", elt); continue; } if (TREE_PRIVATE (elt)) { if (is_union) - pedwarn ("private member %q+#D in anonymous union", elt); + permerror ("private member %q+#D in anonymous union", elt); else - pedwarn ("private member %q+#D in anonymous struct", elt); + permerror ("private member %q+#D in anonymous struct", elt); } else if (TREE_PROTECTED (elt)) { if (is_union) - pedwarn ("protected member %q+#D in anonymous union", elt); + permerror ("protected member %q+#D in anonymous union", elt); else - pedwarn ("protected member %q+#D in anonymous struct", elt); + permerror ("protected member %q+#D in anonymous struct", elt); } TREE_PRIVATE (elt) = TREE_PRIVATE (field); @@ -3044,7 +3044,7 @@ check_field_decls (tree t, tree *access_decls, user-defined constructor. */ if (constructor_name_p (DECL_NAME (x), t) && TYPE_HAS_USER_CONSTRUCTOR (t)) - pedwarn ("field %q+#D with same name as class", x); + permerror ("field %q+#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. */ @@ -6072,10 +6072,10 @@ resolve_address_of_overloaded_function (tree target_type, if (!(flags & tf_error)) return error_mark_node; - pedwarn ("assuming pointer to member %qD", fn); + permerror ("assuming pointer to member %qD", fn); if (!explained) { - pedwarn ("(a pointer to member can only be formed with %<&%E%>)", fn); + inform ("(a pointer to member can only be formed with %<&%E%>)", fn); explained = 1; } } @@ -6435,8 +6435,8 @@ note_name_declared_in_class (tree name, tree decl) 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. */ - pedwarn ("declaration of %q#D", decl); - pedwarn ("changes meaning of %qD from %q+#D", + permerror ("declaration of %q#D", decl); + permerror ("changes meaning of %qD from %q+#D", DECL_NAME (OVL_CURRENT (decl)), (tree) n->value); } } |