Hi,
this is second part of fix - it just makes ipa-visibility to work less hard when
initializer already contains local aliases.  I noticed this when debugging the 
original
issue.

Bootstrapped/regtested rs6000-aix, comitted.

Honza

        * ipa-visibility.c: Include varasm.h
        (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
Index: ipa-visibility.c
===================================================================
--- ipa-visibility.c    (revision 211120)
+++ ipa-visibility.c    (working copy)
@@ -82,6 +82,7 @@
 #include "pointer-set.h"
 #include "calls.h"
 #include "gimple-expr.h"
+#include "varasm.h"
 
 /* Return true when NODE can not be local. Worker for cgraph_local_node_p.  */
 
@@ -340,6 +341,7 @@
 can_replace_by_local_alias (symtab_node *node)
 {
   return (symtab_node_availability (node) > AVAIL_OVERWRITABLE
+         && !decl_binds_to_current_def_p (node->decl)
          && !symtab_can_be_discarded (node));
 }
 

Reply via email to