|
GCC Middle and Back End API Reference
|

Go to the source code of this file.
Variables | |
| const struct attribute_spec::exclusions | attr_noreturn_exclusions [] |
| const struct attribute_spec::exclusions | attr_returns_twice_exclusions [] |
| const struct attribute_spec::exclusions | attr_alloc_exclusions [] |
| const struct attribute_spec::exclusions | attr_const_pure_exclusions [] |
| const struct attribute_spec::exclusions | attr_always_inline_exclusions [] |
| const struct attribute_spec::exclusions | attr_cold_hot_exclusions [] |
| const struct attribute_spec::exclusions | attr_noinline_exclusions [] |
| const struct attribute_spec::exclusions | attr_target_exclusions [] |
| const struct attribute_spec::exclusions | attr_section_exclusions [] |
References handle_alias_attribute().
|
extern |
Attribute handlers.
Handle an "alias" or "ifunc" attribute; arguments as in struct attribute_spec.handler, except that IS_ALIAS tells us whether this is an alias as opposed to ifunc attribute.
References current_function_decl, DECL_ATTRIBUTES, DECL_EXTERNAL, decl_function_context(), decl_in_symtab_p(), DECL_INITIAL, error(), error_mark_node, symtab_node::get(), get_identifier(), handle_alias_ifunc_attribute(), lookup_attribute(), NULL, NULL_TREE, TREE_CODE, tree_cons(), TREE_PUBLIC, TREE_STATIC, TREE_STRING_POINTER, TREE_USED, TREE_VALUE, VAR_P, and warning().
Referenced by handle_alias_attribute(), and handle_alias_ifunc_attribute().
References handle_always_inline_attribute().
References handle_const_attribute().
References handle_fnspec_attribute().
References handle_leaf_attribute().
References handle_malloc_common().
References handle_noinline_attribute().
References handle_nothrow_attribute().
References handle_novops_attribute().
References handle_pure_attribute().
References handle_retain_attribute().
|
extern |
Handle a "section" attribute; arguments as in struct attribute_spec.handler.
References current_function_decl, DECL_SECTION_NAME, DECL_SOURCE_LOCATION, DECL_THREAD_LOCAL_P, error(), error_at(), handle_section_attribute(), symtab_node::name(), NULL_TREE, set_decl_section_name(), targetm, TREE_CODE, TREE_STATIC, TREE_STRING_POINTER, TREE_VALUE, validate_attr_arg(), VAR_OR_FUNCTION_DECL_P, and VAR_P.
Referenced by handle_returns_twice_attribute(), and handle_section_attribute().
|
extern |
Handle a "target" attribute.
References handle_target_attribute(), symtab_node::name(), NULL_TREE, targetm, TREE_CHAIN, TREE_CODE, TREE_STRING_LENGTH, TREE_STRING_POINTER, TREE_VALUE, and warning().
Referenced by handle_returns_twice_attribute(), and handle_target_attribute().
References handle_type_generic_attribute().
References handle_used_attribute().
References handle_visibility_attribute().
References handle_weak_attribute().
Convenience wrapper for validate_attr_args to validate a single attribute argument. Used by handlers for attributes that take just a single argument.
References NULL_TREE, validate_attr_arg(), and validate_attr_args().
Referenced by handle_section_attribute(), and validate_attr_arg().
Shared helpers used by the handlers.
Given a pair of NODEs for arbitrary DECLs or TYPEs, validate one or two integral or string attribute arguments NEWARGS to be applied to NODE[0] for the absence of conflicts with the same attribute arguments already applied to NODE[1]. Issue a warning for conflicts and return false. Otherwise, when no conflicts are found, return true.
References decl_or_type_attrs(), DECL_P, DECL_SOURCE_LOCATION, gcc_unreachable, IDENTIFIER_POINTER, inform(), input_location, lookup_attribute(), print_generic_expr_to_str(), TREE_CHAIN, TREE_CODE, tree_int_cst_equal(), TREE_STRING_POINTER, TREE_VALUE, validate_attr_args(), and warning_at().
Referenced by validate_attr_arg(), and validate_attr_args().
|
extern |
Exclusions that apply to attribute alloc_align, alloc_size, and malloc.
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
Language-independent attribute handlers shared across front ends. Copyright (C) 2026 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
Attribute exclusion tables used by `c-family` and `libgccjit`.
Define attributes that are mutually exclusive with one another.
|
extern |
|
extern |
Exclusions that apply to attributes that put declarations in specific sections.
|
extern |