http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50689

--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-10-14 
12:50:54 UTC ---
Thanks. I am testing the following patch. Could you, please, verify that it
soves the problem on AIX?  I am quite convinced the aliases should be output
correctly with this change.
Index: cgraphunit.c
===================================================================
--- cgraphunit.c        (revision 179919)
+++ cgraphunit.c        (working copy)
@@ -1798,7 +1798,6 @@ cgraph_expand_function (struct cgraph_no

   announce_function (decl);
   node->process = 0;
-  assemble_thunks_and_aliases (node);
   gcc_assert (node->lowered);

   /* Generate RTL for the body of DECL.  */
@@ -1808,6 +1807,14 @@ cgraph_expand_function (struct cgraph_no
   gcc_assert (TREE_ASM_WRITTEN (decl));
   current_function_decl = NULL;
   gcc_assert (!cgraph_preserve_function_body_p (node));
+
+  /* It would make a lot more sense to output thunks before function body to
get more
+     forward and lest backwarding jumps.  This is however would need solving
problem
+     with comdats. See PR48668.  Also aliases must come after function itself
to
+     make one pass assemblers, like one on AIX happy.  See PR 50689.
+     FIXME: Perhaps thunks should be move before function IFF they are not in
comdat
+     groups.  */
+  assemble_thunks_and_aliases (node);
   cgraph_release_function_body (node);
   /* Eliminate all call edges.  This is important so the GIMPLE_CALL no longer
      points to the dead function body.  */

Reply via email to