OSDN Git Service

* ipa.c (function_and_variable_visibility): Also bring local all
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 16 May 2010 17:26:55 +0000 (17:26 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:09:58 +0000 (14:09 +0900)
aliases.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159461 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/ipa.c

index 71cf0d3..94f6358 100644 (file)
@@ -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
index 9d2b023..c8b0d7b 100644 (file)
--- 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