aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-05-16 19:26:55 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-05-16 17:26:55 +0000
commite419f710eac879d81fdbd8f528fed2bbfa3a816c (patch)
tree63d957f49d26fc261dcc59c0f638a2a9c3908fc2 /gcc
parent2e0c984cca3f924d74de7a98866bc6144674f9a8 (diff)
downloadgcc-e419f710eac879d81fdbd8f528fed2bbfa3a816c.zip
gcc-e419f710eac879d81fdbd8f528fed2bbfa3a816c.tar.gz
gcc-e419f710eac879d81fdbd8f528fed2bbfa3a816c.tar.bz2
ipa.c (function_and_variable_visibility): Also bring local all aliases.
* ipa.c (function_and_variable_visibility): Also bring local all aliases. From-SVN: r159461
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ipa.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 71cf0d3..94f6358 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-05-16 Jan Hubicka <jh@suse.cz>
+
+ * ipa.c (function_and_variable_visibility): Also bring local all
+ aliases.
+
2010-05-16 Richard Guenther <rguenther@suse.de>
* alias.c (nonoverlapping_memrefs_p): Remove use of
diff --git a/gcc/ipa.c b/gcc/ipa.c
index 9d2b023..c8b0d7b 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -655,8 +655,11 @@ function_and_variable_visibility (bool whole_program)
if (!node->local.externally_visible && node->analyzed
&& !DECL_EXTERNAL (node->decl))
{
+ struct cgraph_node *alias;
gcc_assert (whole_program || !TREE_PUBLIC (node->decl));
cgraph_make_decl_local (node->decl);
+ for (alias = node->same_body; alias; alias = alias->next)
+ cgraph_make_decl_local (alias->decl);
if (node->same_comdat_group)
/* cgraph_externally_visible_p has already checked all other nodes
in the group and they will all be made local. We need to