aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-02-05 00:26:36 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2014-02-04 23:26:36 +0000
commitd665f8dde6f4d6c68635cbef972ef7ce085a359b (patch)
treebbf5ad857d73a9614797d6f9dbe1e05f2d043715 /gcc/varasm.c
parent6a071860bfd406eaad6b5c8ad68b1632ed1c9de6 (diff)
downloadgcc-d665f8dde6f4d6c68635cbef972ef7ce085a359b.zip
gcc-d665f8dde6f4d6c68635cbef972ef7ce085a359b.tar.gz
gcc-d665f8dde6f4d6c68635cbef972ef7ce085a359b.tar.bz2
ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY groups when we know they are controlled by LTO.
* ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY groups when we know they are controlled by LTO. * varasm.c (default_binds_local_p_1): If object is in other partition, it will be resolved locally. * lto-partition.c (get_symbol_class): Only unforced DECL_ONE_ONLY needs duplicating, not generic COMDAT. From-SVN: r207489
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index d46f008..295c27d 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -6739,7 +6739,7 @@ default_binds_local_p_1 (const_tree exp, int shlib)
&& (TREE_STATIC (exp) || DECL_EXTERNAL (exp)))
{
varpool_node *vnode = varpool_get_node (exp);
- if (vnode && resolution_local_p (vnode->resolution))
+ if (vnode && (resolution_local_p (vnode->resolution) || vnode->in_other_partition))
resolved_locally = true;
if (vnode
&& resolution_to_local_definition_p (vnode->resolution))
@@ -6749,7 +6749,7 @@ default_binds_local_p_1 (const_tree exp, int shlib)
{
struct cgraph_node *node = cgraph_get_node (exp);
if (node
- && resolution_local_p (node->resolution))
+ && (resolution_local_p (node->resolution) || node->in_other_partition))
resolved_locally = true;
if (node
&& resolution_to_local_definition_p (node->resolution))