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 /gcc/cgraphunit.c | |
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
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r-- | gcc/cgraphunit.c | 19 |
1 files changed, 10 insertions, 9 deletions
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 |