summaryrefslogtreecommitdiff
path: root/gcc/cgraph.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-29 22:33:23 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-29 22:33:23 +0000
commitc7549d13a828725d6214f5807f28ab24974c77c4 (patch)
treeb119bcfa394a1eeb2b5f120d0165f4e631cf136b /gcc/cgraph.c
parentc4848393ae979bd63dd4e87d309556668e771d76 (diff)
downloadgcc-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.c5
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);
}