diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-08-26 15:23:48 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-08-26 15:23:48 +0000 |
commit | dc3d1030ab651c5c07cc6caa4c571d221778bdc4 (patch) | |
tree | 380bc225ca3201be6b3b42352412323c297d2267 /gcc/ipa-inline-transform.c | |
parent | 4582129ea647da9c117adf36aea1c0f1f4bb739f (diff) | |
download | gcc-dc3d1030ab651c5c07cc6caa4c571d221778bdc4.tar.gz |
* ipa-inline-transform.c (inline_transform): Be ready for basic block
to be changed by edge redirection.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201997 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-inline-transform.c')
-rw-r--r-- | gcc/ipa-inline-transform.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c index 8ead336de64..7f835eaf836 100644 --- a/gcc/ipa-inline-transform.c +++ b/gcc/ipa-inline-transform.c @@ -412,7 +412,7 @@ unsigned int inline_transform (struct cgraph_node *node) { unsigned int todo = 0; - struct cgraph_edge *e; + struct cgraph_edge *e, *next; /* FIXME: Currently the pass manager is adding inline transform more than once to some clones. This needs revisiting after WPA cleanups. */ @@ -424,8 +424,11 @@ inline_transform (struct cgraph_node *node) if (preserve_function_body_p (node)) save_inline_function_body (node); - for (e = node->callees; e; e = e->next_callee) - cgraph_redirect_edge_call_stmt_to_callee (e); + for (e = node->callees; e; e = next) + { + next = e->next_callee; + cgraph_redirect_edge_call_stmt_to_callee (e); + } ipa_remove_all_references (&node->symbol.ref_list); timevar_push (TV_INTEGRATION); |