diff options
author | DJ Delorie <dj@redhat.com> | 2005-05-25 00:18:19 -0400 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2005-05-25 00:18:19 -0400 |
commit | 5c498b10af2cf068e55361f7b2915c799f2508d3 (patch) | |
tree | f2b16cd3336a6bcdf0b58025f27679c1e19056ed /gcc/c-common.c | |
parent | 44c21c7f0304a014f491b822f7eaea34f2cc4c3c (diff) | |
download | gcc-5c498b10af2cf068e55361f7b2915c799f2508d3.zip gcc-5c498b10af2cf068e55361f7b2915c799f2508d3.tar.gz gcc-5c498b10af2cf068e55361f7b2915c799f2508d3.tar.bz2 |
common.opt (-Wattributes): New.
* common.opt (-Wattributes): New. Default true.
* doc/invoke.texi (-Wno-attributes): Document.
* attribs.c (decl_attributes): Move warning control from if() to
warning(OPT_*).
* c-common.c (handle_packed_attribute): Likewise.
(handle_nocommon_attribute): Likewise.
(handle_common_attribute): Likewise.
(handle_noreturn_attribute): Likewise.
(handle_noinline_attribute): Likewise.
(handle_always_inline_attribute): Likewise.
(handle_used_attribute): Likewise.
(handle_unused_attribute): Likewise.
(handle_const_attribute): Likewise.
(handle_transparent_union_attribute): Likewise.
(handle_constructor_attribute): Likewise.
(handle_destructor_attribute): Likewise.
(handle_mode_attribute): Likewise.
(handle_alias_attribute): Likewise.
(handle_visibility_attribute): Likewise.
(handle_tls_model_attribute): Likewise.
(handle_malloc_attribute): Likewise.
(handle_returns_twice_attribute): Likewise.
(handle_pure_attribute): Likewise.
(handle_deprecated_attribute): Likewise.
(handle_vector_size_attribute): Likewise.
(handle_nothrow_attribute): Likewise.
(handle_cleanup_attribute): Likewise.
(handle_warn_unused_result_attribute): Likewise.
(handle_sentinel_attribute): Likewise.
* c-decl.c (diagnose_mismatched_decls): Likewise.
(start_decl): Likewise.
(grokdeclarator): Likewise.
(start_function): Likewise.
* c-format.c (check_function_format): Likewise.
* stor-layout.c (place_field): Likewise.
(finalize_record_size): Likewise.
* tree.c (handle_dll_attribute)): Likewise.
* varasm.c (default_assemble_visibility): Likewise.
* config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
(darwin_assemble_visibility): Likewise.
* config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
* config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
(arm_handle_isr_attribute): Likewise.
* config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
(avr_handle_fndecl_attribute): Likewise.
* config/bfin/bfin.c (handle_int_attribute): Likewise.
* config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
* config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
(h8300_handle_eightbit_data_attribute): Likewise.
(h8300_handle_tiny_data_attribute): Likewise.
* config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
(ix86_handle_regparm_attribute): Likewise.
(ix86_handle_struct_attribute): Likewise.
* config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
(i386_pe_encode_section_info): Likewise.
* config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
* config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
(ip2k_handle_fndecl_attribute): Likewise.
* config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
* config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
(m68hc11_handle_fntype_attribute): Likewise.
(m68hc11_encode_section_info): Likewise.
* config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
* config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
* config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
* config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
* config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
(sh_handle_sp_switch_attribute): Likewise.
(sh_handle_trap_exit_attribute): Likewise.
* config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
(sh_symbian_handle_dll_attribute): Likewise.
* config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
(xstormy16_handle_below100_attribute): Likewise.
* config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
[testsuite]
* gcc.dg/Wattributes-1.c: New.
* gcc.dg/Wattributes-2.c: New.
* gcc.dg/Wattributes-3.c: New.
[cp]
* decl.c (duplicate_decls): Move warning control from if() to
warning(OPT_*).
* name-lookup.c (parse_using_directive): Likewise.
* parser.c (cp_parser_elaborated_type_specifier): Likewise.
(cp_parser_init_declarator): Likewise.
* tree.c (handle_com_interface_attribute): Likewise.
[java]
* class.c (set_constant_value): Move warning control from if() to
warning(OPT_*).
From-SVN: r100136
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r-- | gcc/c-common.c | 68 |
1 files changed, 36 insertions, 32 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c index 17efd33..cd7f653 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -3959,7 +3959,7 @@ handle_packed_attribute (tree *node, tree name, tree ARG_UNUSED (args), that changes what the typedef is typing. */ else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -3978,7 +3978,7 @@ handle_nocommon_attribute (tree *node, tree name, DECL_COMMON (*node) = 0; else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -3996,7 +3996,7 @@ handle_common_attribute (tree *node, tree name, tree ARG_UNUSED (args), DECL_COMMON (*node) = 1; else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4023,7 +4023,7 @@ handle_noreturn_attribute (tree *node, tree name, tree ARG_UNUSED (args), TYPE_READONLY (TREE_TYPE (type)), 1)); else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4042,7 +4042,7 @@ handle_noinline_attribute (tree *node, tree name, DECL_UNINLINABLE (*node) = 1; else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4065,7 +4065,7 @@ handle_always_inline_attribute (tree *node, tree name, } else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4089,7 +4089,7 @@ handle_used_attribute (tree *pnode, tree name, tree ARG_UNUSED (args), } else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4115,7 +4115,7 @@ handle_unused_attribute (tree *node, tree name, tree ARG_UNUSED (args), TREE_USED (decl) = 1; else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } } @@ -4149,7 +4149,7 @@ handle_const_attribute (tree *node, tree name, tree ARG_UNUSED (args), TREE_THIS_VOLATILE (TREE_TYPE (type)))); else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4193,7 +4193,7 @@ handle_transparent_union_attribute (tree *node, tree name, DECL_TRANSPARENT_UNION (decl) = 1; else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4221,7 +4221,7 @@ handle_constructor_attribute (tree *node, tree name, } else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4249,7 +4249,7 @@ handle_destructor_attribute (tree *node, tree name, } else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4268,7 +4268,7 @@ handle_mode_attribute (tree *node, tree name, tree args, *no_add_attrs = true; if (TREE_CODE (TREE_VALUE (args)) != IDENTIFIER_NODE) - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); else { int j; @@ -4326,9 +4326,10 @@ handle_mode_attribute (tree *node, tree name, tree args, case MODE_VECTOR_INT: case MODE_VECTOR_FLOAT: - warning (0, "specifying vector types with __attribute__ ((mode)) " - "is deprecated"); - warning (0, "use __attribute__ ((vector_size)) instead"); + warning (OPT_Wattributes, "specifying vector types with " + "__attribute__ ((mode)) is deprecated"); + warning (OPT_Wattributes, + "use __attribute__ ((vector_size)) instead"); valid_mode = vector_mode_valid_p (mode); break; @@ -4593,7 +4594,7 @@ handle_alias_attribute (tree *node, tree name, tree args, } else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4617,13 +4618,14 @@ handle_visibility_attribute (tree *node, tree name, tree args, { if (TREE_CODE (*node) != RECORD_TYPE && TREE_CODE (*node) != UNION_TYPE) { - warning (0, "%qE attribute ignored on non-class types", name); + warning (OPT_Wattributes, "%qE attribute ignored on non-class types", + name); return NULL_TREE; } } else if (decl_function_context (decl) != 0 || !TREE_PUBLIC (decl)) { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); return NULL_TREE; } @@ -4641,7 +4643,7 @@ handle_visibility_attribute (tree *node, tree name, tree args, return NULL_TREE; if (TREE_CODE (decl) == IDENTIFIER_NODE) { - warning (0, "%qE attribute ignored on types", + warning (OPT_Wattributes, "%qE attribute ignored on types", name); return NULL_TREE; } @@ -4715,7 +4717,7 @@ handle_tls_model_attribute (tree *node, tree name, tree args, if (!DECL_THREAD_LOCAL (decl)) { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } else @@ -4782,7 +4784,7 @@ handle_malloc_attribute (tree *node, tree name, tree ARG_UNUSED (args), DECL_IS_MALLOC (*node) = 1; else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4800,7 +4802,7 @@ handle_returns_twice_attribute (tree *node, tree name, tree ARG_UNUSED (args), DECL_IS_RETURNS_TWICE (*node) = 1; else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4846,7 +4848,7 @@ handle_pure_attribute (tree *node, tree name, tree ARG_UNUSED (args), /* ??? TODO: Support types. */ else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -4914,9 +4916,9 @@ handle_deprecated_attribute (tree *node, tree name, what = DECL_NAME (TYPE_NAME (type)); } if (what) - warning (0, "%qE attribute ignored for %qE", name, what); + warning (OPT_Wattributes, "%qE attribute ignored for %qE", name, what); else - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); } return NULL_TREE; @@ -4940,7 +4942,7 @@ handle_vector_size_attribute (tree *node, tree name, tree args, if (!host_integerp (size, 1)) { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); return NULL_TREE; } @@ -5218,7 +5220,7 @@ handle_nothrow_attribute (tree *node, tree name, tree ARG_UNUSED (args), /* ??? TODO: Support types. */ else { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -5241,7 +5243,7 @@ handle_cleanup_attribute (tree *node, tree name, tree args, we'd be missing too much, since we do have attribute constructor. */ if (TREE_CODE (decl) != VAR_DECL || TREE_STATIC (decl)) { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; return NULL_TREE; } @@ -5280,7 +5282,7 @@ handle_warn_unused_result_attribute (tree *node, tree name, /* Ignore the attribute for functions not returning any value. */ if (VOID_TYPE_P (TREE_TYPE (*node))) { - warning (0, "%qE attribute ignored", name); + warning (OPT_Wattributes, "%qE attribute ignored", name); *no_add_attrs = true; } @@ -5297,7 +5299,8 @@ handle_sentinel_attribute (tree *node, tree name, tree args, if (!params) { - warning (0, "%qE attribute requires prototypes with named arguments", name); + warning (OPT_Wattributes, + "%qE attribute requires prototypes with named arguments", name); *no_add_attrs = true; } else @@ -5307,7 +5310,8 @@ handle_sentinel_attribute (tree *node, tree name, tree args, if (VOID_TYPE_P (TREE_VALUE (params))) { - warning (0, "%qE attribute only applies to variadic functions", name); + warning (OPT_Wattributes, + "%qE attribute only applies to variadic functions", name); *no_add_attrs = true; } } |