diff options
author | Kai Tietz <ktietz@redhat.com> | 2011-03-21 09:29:36 +0100 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2011-03-21 09:29:36 +0100 |
commit | 62d784f7bdc63b09b0e2cee98aba71c921e2479c (patch) | |
tree | e05c05657897259c998014c2877b14a892676c7b /gcc/c-family/c-common.c | |
parent | 54833ec0a6bcc91163da4c3f7a017a2f73879cd1 (diff) | |
download | gcc-62d784f7bdc63b09b0e2cee98aba71c921e2479c.zip gcc-62d784f7bdc63b09b0e2cee98aba71c921e2479c.tar.gz gcc-62d784f7bdc63b09b0e2cee98aba71c921e2479c.tar.bz2 |
ChangeLog gcc/
2011-03-21 Kai Tietz <ktietz@redhat.com>
PR target/12171
* doc/plugins.texi: Adjust documentation
for plugin register_callback.
* tree.h (attribute_spec): Add new member
affects_type_identity.
- Zitierten Text anzeigen -
* attribs.c (empty_attribute_table): Adjust
attribute_spec initializers.
* config/alpha/alpha.c: Likewise.
* config/arc/arc.c: Likewise.
* config/arm/arm.c: Likewise.
* config/avr/avr.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/crx/crx.c: Likewise.
* config/darwin.h: Likewise.
* config/h8300/h8300.c: Likewise.
* config/i386/cygming.h: Likewise.
* config/i386/i386.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/m32c/m32c.c: Likewise.
* config/m32r/m32r.c: Likewise.
* config/m68hc11/m68hc11.c: Likewise.
* config/m68k/m68k.c: Likewise.
* config/mcore/mcore.c: Likewise.
* config/mep/mep.c: Likewise.
* config/microblaze/microblaze.c: Likewise.
* config/mips/mips.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rx/rx.c: Likewise.
* config/sh/sh.c: Likewise.
* config/sol2.h: Likewise.
* config/sparc/sparc.c: Likewise.
* config/spu/spu.c: Likewise.
* config/stormy16/stormy16.c: Likewise.
* config/v850/v850.c: Likewise.
ChangeLog gcc/cp
2011-03-21 Kai Tietz <ktietz@redhat.com>
PR target/12171
* tree.c (cxx_attribute_table): Adjust table.
ChangeLog gcc/testsuite
2011-03-21 Kai Tietz <ktietz@redhat.com>
PR target/12171
* g++.dg/plugin/attribute_plugin.c: Adjust test.
ChangeLog gcc/java
2011-03-21 Kai Tietz <ktietz@redhat.com>
PR target/12171
* lang.c (java_attribute_table): Adjust table.
ChangeLog gcc/lto
2011-03-21 Kai Tietz <ktietz@redhat.com>
PR target/12171
* lto-lang.c (lto_attribute_table): Adjust table.
ChangeLog gcc/ada
2011-03-21 Kai Tietz <ktietz@redhat.com>
PR target/12171
* gcc-interface/utils.c (gnat_internal_attribute_table):
Add new element.
ChangeLog gcc/c-family
2011-03-17 Kai Tietz
PR target/12171
* c-common.c (c_common_attribute_table):
Add new element.
(c_common_format_attribute_table): Likewise.
From-SVN: r171209
Diffstat (limited to 'gcc/c-family/c-common.c')
-rw-r--r-- | gcc/c-family/c-common.c | 119 |
1 files changed, 61 insertions, 58 deletions
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index f8d0c7e..3f1b964 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -583,123 +583,125 @@ const unsigned int num_c_common_reswords = /* Table of machine-independent attributes common to all C-like languages. */ const struct attribute_spec c_common_attribute_table[] = { - /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */ + /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler, + affects_type_identity } */ { "packed", 0, 0, false, false, false, - handle_packed_attribute }, + handle_packed_attribute , false}, { "nocommon", 0, 0, true, false, false, - handle_nocommon_attribute }, + handle_nocommon_attribute, false}, { "common", 0, 0, true, false, false, - handle_common_attribute }, + handle_common_attribute, false }, /* FIXME: logically, noreturn attributes should be listed as "false, true, true" and apply to function types. But implementing this would require all the places in the compiler that use TREE_THIS_VOLATILE on a decl to identify non-returning functions to be located and fixed to check the function type instead. */ { "noreturn", 0, 0, true, false, false, - handle_noreturn_attribute }, + handle_noreturn_attribute, false }, { "volatile", 0, 0, true, false, false, - handle_noreturn_attribute }, + handle_noreturn_attribute, false }, { "noinline", 0, 0, true, false, false, - handle_noinline_attribute }, + handle_noinline_attribute, false }, { "noclone", 0, 0, true, false, false, - handle_noclone_attribute }, + handle_noclone_attribute, false }, { "leaf", 0, 0, true, false, false, - handle_leaf_attribute }, + handle_leaf_attribute, false }, { "always_inline", 0, 0, true, false, false, - handle_always_inline_attribute }, + handle_always_inline_attribute, false }, { "gnu_inline", 0, 0, true, false, false, - handle_gnu_inline_attribute }, + handle_gnu_inline_attribute, false }, { "artificial", 0, 0, true, false, false, - handle_artificial_attribute }, + handle_artificial_attribute, false }, { "flatten", 0, 0, true, false, false, - handle_flatten_attribute }, + handle_flatten_attribute, false }, { "used", 0, 0, true, false, false, - handle_used_attribute }, + handle_used_attribute, false }, { "unused", 0, 0, false, false, false, - handle_unused_attribute }, + handle_unused_attribute, false }, { "externally_visible", 0, 0, true, false, false, - handle_externally_visible_attribute }, + handle_externally_visible_attribute, false }, /* The same comments as for noreturn attributes apply to const ones. */ { "const", 0, 0, true, false, false, - handle_const_attribute }, + handle_const_attribute, false }, { "transparent_union", 0, 0, false, false, false, - handle_transparent_union_attribute }, + handle_transparent_union_attribute, false }, { "constructor", 0, 1, true, false, false, - handle_constructor_attribute }, + handle_constructor_attribute, false }, { "destructor", 0, 1, true, false, false, - handle_destructor_attribute }, + handle_destructor_attribute, false }, { "mode", 1, 1, false, true, false, - handle_mode_attribute }, + handle_mode_attribute, false }, { "section", 1, 1, true, false, false, - handle_section_attribute }, + handle_section_attribute, false }, { "aligned", 0, 1, false, false, false, - handle_aligned_attribute }, + handle_aligned_attribute, false }, { "weak", 0, 0, true, false, false, - handle_weak_attribute }, + handle_weak_attribute, false }, { "ifunc", 1, 1, true, false, false, - handle_ifunc_attribute }, + handle_ifunc_attribute, false }, { "alias", 1, 1, true, false, false, - handle_alias_attribute }, + handle_alias_attribute, false }, { "weakref", 0, 1, true, false, false, - handle_weakref_attribute }, + handle_weakref_attribute, false }, { "no_instrument_function", 0, 0, true, false, false, - handle_no_instrument_function_attribute }, + handle_no_instrument_function_attribute, + false }, { "malloc", 0, 0, true, false, false, - handle_malloc_attribute }, + handle_malloc_attribute, false }, { "returns_twice", 0, 0, true, false, false, - handle_returns_twice_attribute }, + handle_returns_twice_attribute, false }, { "no_stack_limit", 0, 0, true, false, false, - handle_no_limit_stack_attribute }, + handle_no_limit_stack_attribute, false }, { "pure", 0, 0, true, false, false, - handle_pure_attribute }, + handle_pure_attribute, false }, /* For internal use (marking of builtins) only. The name contains space to prevent its usage in source code. */ { "no vops", 0, 0, true, false, false, - handle_novops_attribute }, + handle_novops_attribute, false }, { "deprecated", 0, 1, false, false, false, - handle_deprecated_attribute }, + handle_deprecated_attribute, false }, { "vector_size", 1, 1, false, true, false, - handle_vector_size_attribute }, + handle_vector_size_attribute, false }, { "visibility", 1, 1, false, false, false, - handle_visibility_attribute }, + handle_visibility_attribute, false }, { "tls_model", 1, 1, true, false, false, - handle_tls_model_attribute }, + handle_tls_model_attribute, false }, { "nonnull", 0, -1, false, true, true, - handle_nonnull_attribute }, + handle_nonnull_attribute, false }, { "nothrow", 0, 0, true, false, false, - handle_nothrow_attribute }, - { "may_alias", 0, 0, false, true, false, NULL }, + handle_nothrow_attribute, false }, + { "may_alias", 0, 0, false, true, false, NULL, false }, { "cleanup", 1, 1, true, false, false, - handle_cleanup_attribute }, + handle_cleanup_attribute, false }, { "warn_unused_result", 0, 0, false, true, true, - handle_warn_unused_result_attribute }, + handle_warn_unused_result_attribute, false }, { "sentinel", 0, 1, false, true, true, - handle_sentinel_attribute }, + handle_sentinel_attribute, false }, /* For internal use (marking of builtins) only. The name contains space to prevent its usage in source code. */ { "type generic", 0, 0, false, true, true, - handle_type_generic_attribute }, + handle_type_generic_attribute, false }, { "alloc_size", 1, 2, false, true, true, - handle_alloc_size_attribute }, + handle_alloc_size_attribute, false }, { "cold", 0, 0, true, false, false, - handle_cold_attribute }, + handle_cold_attribute, false }, { "hot", 0, 0, true, false, false, - handle_hot_attribute }, + handle_hot_attribute, false }, { "warning", 1, 1, true, false, false, - handle_error_attribute }, + handle_error_attribute, false }, { "error", 1, 1, true, false, false, - handle_error_attribute }, + handle_error_attribute, false }, { "target", 1, -1, true, false, false, - handle_target_attribute }, + handle_target_attribute, false }, { "optimize", 1, -1, true, false, false, - handle_optimize_attribute }, + handle_optimize_attribute, false }, { "no_split_stack", 0, 0, true, false, false, - handle_no_split_stack_attribute }, + handle_no_split_stack_attribute, false }, /* For internal use (marking of builtins and runtime functions) only. The name contains space to prevent its usage in source code. */ { "fn spec", 1, 1, false, true, true, - handle_fnspec_attribute }, - { NULL, 0, 0, false, false, false, NULL } + handle_fnspec_attribute, false }, + { NULL, 0, 0, false, false, false, NULL, false } }; /* Give the specifications for the format attributes, used by C and all @@ -707,12 +709,13 @@ const struct attribute_spec c_common_attribute_table[] = const struct attribute_spec c_common_format_attribute_table[] = { - /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */ + /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler, + affects_type_identity } */ { "format", 3, 3, false, true, true, - handle_format_attribute }, + handle_format_attribute, false }, { "format_arg", 1, 1, false, true, true, - handle_format_arg_attribute }, - { NULL, 0, 0, false, false, false, NULL } + handle_format_arg_attribute, false }, + { NULL, 0, 0, false, false, false, NULL, false } }; /* Return identifier for address space AS. */ |