diff options
author | Jan Hubicka <jh@suse.cz> | 2010-10-05 18:15:00 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2010-10-05 16:15:00 +0000 |
commit | 5806d9ac5dc72814e806e61773077a263a6fc728 (patch) | |
tree | 8c70ad751de7fe001897bd498be2b112a9c23246 | |
parent | 033b71cea1b4098c37cfd67f3213c4a917caa495 (diff) | |
download | gcc-5806d9ac5dc72814e806e61773077a263a6fc728.zip gcc-5806d9ac5dc72814e806e61773077a263a6fc728.tar.gz gcc-5806d9ac5dc72814e806e61773077a263a6fc728.tar.bz2 |
cgraphunit.c (assemble_function): Output thunks and aliases before the function itself.
* cgraphunit.c (assemble_function): Output thunks and aliases before
the function itself.
From-SVN: r164994
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 19 |
2 files changed, 15 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cf45a53..924eb98 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index b51a71c..e9d1f1d 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -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 |