> > On 1 June 2013 14:06, Jan Hubicka <hubi...@ucw.cz> wrote:
> > > Hi,
> > > this patch cleanups way we handle aliases.  The main point is to merge 
> > > code
> > > that was previously done separately for variables and functions.
> > >
> > 
> > Hello,  This patch appears to break both arm and aarch64.  I don't
> > fully understand the mechanism.  The issue shows up when building
> > res_libc.o over in glibc. The following fragment demonstrates the
> > issue:
> > 
> > I suspect the section anchor appeared because
> > varasm.c:use_blocks_for_decl_p test for an 'alias' failed.
> 
> You are probably right.  I added code that removes alias attributes once
> they land symtab. The reason is that I run into wrong code issues with code
> picking up the symbol name from alias attribute that is no longer valid
> after LTO renaming.
> Apparently this code and also symbol equality testing in fold-const rely
> on alias attribute but do not worry about what alias it is.
> I will revert this part of patch and try to solve this incrementally.
> (the code in fold-const is wrong anyway)
Hi,
I have comitted the following.  Does it solve your problem?

Honza

Index: ChangeLog
===================================================================
--- ChangeLog   (revision 199834)
+++ ChangeLog   (working copy)
@@ -1,3 +1,7 @@
+2013-06-07  Jan Hubicka  <j...@suse.cz>
+
+       * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
+
 2013-06-07  David Malcolm  <dmalc...@redhat.com>
 
        * tree-object-size.c (unknown): Make const.
Index: symtab.c
===================================================================
--- symtab.c    (revision 199698)
+++ symtab.c    (working copy)
@@ -978,8 +978,6 @@ symtab_resolve_alias (symtab_node node,
      We do not want to keep it around or we would have to mind updating them
      when renaming symbols.  */
   node->symbol.alias_target = NULL;
-  DECL_ATTRIBUTES (node->symbol.decl)
-     = remove_attribute ("alias", DECL_ATTRIBUTES (node->symbol.decl));
 
   if (node->symbol.cpp_implicit_alias && cgraph_state >= 
CGRAPH_STATE_CONSTRUCTION)
     fixup_same_cpp_alias_visibility (node, target);

Reply via email to