summaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2015-03-10 12:44:01 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2015-03-10 12:44:01 +0000
commitdbe7d25af5bb7776ffdba94a51adeb3d595cae7f (patch)
tree8e8e530ecc9c745053212daf19f84479986d7dd0 /gcc/tree-inline.c
parent645cec527eed331a09210ffda2d79082628a0bab (diff)
downloadgcc-dbe7d25af5bb7776ffdba94a51adeb3d595cae7f.tar.gz
2015-03-09 Richard Biener <rguenther@suse.de>
PR middle-end/44563 * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit for redirect_all_calls. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221321 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r--gcc/tree-inline.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index d8abe03e40d..259a3488c34 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -2805,7 +2805,9 @@ copy_cfg_body (copy_body_data * id, gcov_type count, int frequency_scale,
maybe_move_debug_stmts_to_successors (id, (basic_block) bb->aux);
/* Update call edge destinations. This can not be done before loop
info is updated, because we may split basic blocks. */
- if (id->transform_call_graph_edges == CB_CGE_DUPLICATE)
+ if (id->transform_call_graph_edges == CB_CGE_DUPLICATE
+ && bb->index != ENTRY_BLOCK
+ && bb->index != EXIT_BLOCK)
redirect_all_calls (id, (basic_block)bb->aux);
((basic_block)bb->aux)->aux = NULL;
bb->aux = NULL;