diff options
author | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-09 20:13:41 +0000 |
---|---|---|
committer | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-09 20:13:41 +0000 |
commit | f4a30bd79f3157bbcbde8aa853c04871575db926 (patch) | |
tree | cdc3a1f501856957bef831df0b91b2b381edd2b8 /gcc/tree.h | |
parent | 39794ddf0639a3cb6c501db3fa3e088d0094dec8 (diff) | |
download | gcc-f4a30bd79f3157bbcbde8aa853c04871575db926.tar.gz |
PR other/4372
* tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
(TREE_DEPRECATED): Adjust comment. Check for a DECL.
* c-common.c (handle_weakref_attribute): New.
(c_common_attribute_table): Add weakref.
* configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
in the assembler.
* configure, config.in: Rebuilt.
* defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
* doc/extend.texi: Document weakref attribute.
* varasm.c (ultimate_transparent_alias_target): New
(assemble_name): Use it.
(weak_finish_1): Split out of...
(weak_finish): ... and deal with weakrefs in...
(weakref_targets): ... new list.
(globalize_decl): Clean up weakref_targets.
(do_assemble_alias): Handle weakrefs.
(finish_aliases_1): Do not reject weakrefs to external symbols.
(assemble_alias): Handle weakrefs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106703 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/tree.h b/gcc/tree.h index 7b1796c0800..0df8b3c28d1 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -428,6 +428,9 @@ struct tree_common GTY(()) TREE_DEPRECATED in ..._DECL + IDENTIFIER_TRANSPARENT_ALIAS in + IDENTIFIER_NODE + visited: Used in tree traversals to mark visited nodes. @@ -1042,9 +1045,15 @@ extern void tree_operand_check_failed (int, enum tree_code, In a BLOCK node, this is BLOCK_HANDLER_BLOCK. */ #define TREE_PROTECTED(NODE) ((NODE)->common.protected_flag) -/* Nonzero in an IDENTIFIER_NODE if the use of the name is defined as a +/* Nonzero in a _DECL if the use of the name is defined as a deprecated feature by __attribute__((deprecated)). */ -#define TREE_DEPRECATED(NODE) ((NODE)->common.deprecated_flag) +#define TREE_DEPRECATED(NODE) \ + ((NODE)->common.deprecated_flag) + +/* Nonzero in an IDENTIFIER_NODE if the name is a local alias, whose + uses are to be substituted for uses of the TREE_CHAINed identifier. */ +#define IDENTIFIER_TRANSPARENT_ALIAS(NODE) \ + (IDENTIFIER_NODE_CHECK (NODE)->common.deprecated_flag) /* Value of expression is function invariant. A strict subset of TREE_CONSTANT, such an expression is constant over any one function |