OSDN Git Service

* cgraphunit.c (assemble_function): Output thunks and aliases before
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 Oct 2010 16:15:00 +0000 (16:15 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 Oct 2010 16:15:00 +0000 (16:15 +0000)
the function itself.

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

gcc/ChangeLog
gcc/cgraphunit.c

index cf45a53..924eb98 100644 (file)
@@ -1,3 +1,8 @@
+2010-09-29  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphunit.c (assemble_function): Output thunks and aliases before
+       the function itself.
+
 2010-09-29  Hariharan Sandanagobalane <hariharan@picochip.com>
 
        * config/picochip/picochip.c (picochip_option_override): Disable
index b51a71c..e9d1f1d 100644 (file)
@@ -1470,15 +1470,6 @@ cgraph_expand_function (struct cgraph_node *node)
 
   announce_function (decl);
   node->process = 0;
-
-  gcc_assert (node->lowered);
-
-  /* Generate RTL for the body of DECL.  */
-  tree_rest_of_compilation (decl);
-
-  /* Make sure that BE didn't give up on compiling.  */
-  gcc_assert (TREE_ASM_WRITTEN (decl));
-  current_function_decl = NULL;
   if (node->same_body)
     {
       struct cgraph_node *alias, *next;
@@ -1498,7 +1489,17 @@ cgraph_expand_function (struct cgraph_node *node)
            assemble_thunk (alias);
        }
       node->alias = saved_alias;
+      cgraph_process_new_functions ();
     }
+
+  gcc_assert (node->lowered);
+
+  /* Generate RTL for the body of DECL.  */
+  tree_rest_of_compilation (decl);
+
+  /* Make sure that BE didn't give up on compiling.  */
+  gcc_assert (TREE_ASM_WRITTEN (decl));
+  current_function_decl = NULL;
   gcc_assert (!cgraph_preserve_function_body_p (decl));
   cgraph_release_function_body (node);
   /* Eliminate all call edges.  This is important so the GIMPLE_CALL no longer