diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-11-29 22:33:23 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-11-29 22:33:23 +0000 |
commit | c7549d13a828725d6214f5807f28ab24974c77c4 (patch) | |
tree | b119bcfa394a1eeb2b5f120d0165f4e631cf136b /gcc/cgraph.c | |
parent | c4848393ae979bd63dd4e87d309556668e771d76 (diff) | |
download | gcc-c7549d13a828725d6214f5807f28ab24974c77c4.tar.gz |
* cgraph.c (cgraph_node::make_local): No name is unique during
incremental linking.
* cgraph.h (can_be_discarded_p): Update comment; also common and
WEAK in named sections can be discarded; when doing incremental
link do not rely on resolution being the final one.
* varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
When symbol can be discarded, do not rely on resolution info.
* symtab.c (symtab_node::nonzero_address): Take into account that
symbol can be discarded.
* ipa-visibility.c (update_visibility_by_resolution_info): Handle
definition correctly.
(function_and_variable_visibility): Do not set unique_name when
incrementally linking.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231050 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraph.c')
-rw-r--r-- | gcc/cgraph.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/cgraph.c b/gcc/cgraph.c index b1228a2d5de..3ee1907c335 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -2253,8 +2253,9 @@ cgraph_node::make_local (cgraph_node *node, void *) node->forced_by_abi = false; node->local.local = true; node->set_section (NULL); - node->unique_name = (node->resolution == LDPR_PREVAILING_DEF_IRONLY - || node->resolution == LDPR_PREVAILING_DEF_IRONLY_EXP); + node->unique_name = ((node->resolution == LDPR_PREVAILING_DEF_IRONLY + || node->resolution == LDPR_PREVAILING_DEF_IRONLY_EXP) + && !flag_incremental_link); node->resolution = LDPR_PREVAILING_DEF_IRONLY; gcc_assert (node->get_availability () == AVAIL_LOCAL); } |