summaryrefslogtreecommitdiffstats
path: root/gcc/cgraph.h
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-11 22:41:54 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-11 22:41:54 +0000
commitf2526cce0c21e55e395470925e4a0e56e9c2305a (patch)
tree686df94f949e2cec6e2a798766deecbc25911199 /gcc/cgraph.h
parent00275eb0bd66728a85dbee58bdb4a7ee88e8a362 (diff)
downloadppe42-gcc-f2526cce0c21e55e395470925e4a0e56e9c2305a.tar.gz
ppe42-gcc-f2526cce0c21e55e395470925e4a0e56e9c2305a.zip
* c-family/c-common.c (handle_alias_ifunc_attribute): Do not set
DECL_EXTERNAL for weakref variables. * c-family/c-pragma.c (handle_pragma_weak): Make sure aliases are not declared as external. * cgraph.c (cgraph_create_function_alias): Set weakref flag. * cgraph.h (symtab_node_base): Add weakref flag. * cgraphunit.c (cgraph_reset_node): Clear weakref flag. (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL. (output_weakrefs): Use weakref flag. * fold-const.c (simple_operand_p): Handle WEAK. * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref. * ipa.c (varpool_externally_visible_p): Drop weakref. (function_and_variable_visibility): Update comment; fix weakref sanity checks; do not clear DECL_WEAK on them. * lto-cgraph.c (lto_output_node): update. (lto_output_varpool_node): Update. (input_overwrite_node): Update. (input_node): Update. (input_varpool_node): Update. * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs. (lto_symtab_merge_symbols): Add sanity check. (lto_symtab_prevailing_decl): Do not special case weakrefs. * passes.c (rest_of_decl_compilation): Set static flag, too. * symtab.c (dump_symtab_base): Dump weakref. (verify_symtab_base): Sanity check weakrefs. (symtab_make_decl_local): Remove duplicated code. (symtab_alias_ultimate_target): Simplify. * varpool.c (varpool_create_variable_alias): Set weakref flag. * lto-partition.c (get_symbol_class): Simplify weakref handling. (add_symbol_to_partition_1): Likewise. (contained_in_symbol): Likewise. (lto_balanced_map): Likewise. (rename_statics): Drop weakref. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199971 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r--gcc/cgraph.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index dda4402e077..c67506d42f5 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -56,6 +56,8 @@ struct GTY(()) symtab_node_base
/* True when symbol is an alias.
Set by assemble_alias. */
unsigned alias : 1;
+ /* True when alias is a weakref. */
+ unsigned weakref : 1;
/* C++ frontend produce same body aliases and extra name aliases for
virutal functions and vtables that are obviously equivalent.
Those aliases are bit special, especially because C++ frontend
OpenPOWER on IntegriCloud