summaryrefslogtreecommitdiff
path: root/gcc/cfgcleanup.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-17 06:48:19 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-17 06:48:19 +0000
commit30ad61edba451eab700b33610e343ebe6f35986f (patch)
tree5683629f8c3f41248f9737c62c8e1e9255c55a85 /gcc/cfgcleanup.c
parent4eb4ffd7085e84444df44b13615b9a38f3490ac9 (diff)
downloadgcc-30ad61edba451eab700b33610e343ebe6f35986f.tar.gz
PR middle-end/21492
* cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for src2 if src2 has been split. * g++.dg/opt/crossjump1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99816 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgcleanup.c')
-rw-r--r--gcc/cfgcleanup.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index e7df2aeece6..10e6f101eed 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -1677,6 +1677,8 @@ try_crossjump_to_edge (int mode, edge e1, edge e2)
delete_basic_block (to_remove);
update_forwarder_flag (redirect_from);
+ if (redirect_to != src2)
+ update_forwarder_flag (src2);
return true;
}