diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-17 06:48:19 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-17 06:48:19 +0000 |
commit | 30ad61edba451eab700b33610e343ebe6f35986f (patch) | |
tree | 5683629f8c3f41248f9737c62c8e1e9255c55a85 /gcc/cfgcleanup.c | |
parent | 4eb4ffd7085e84444df44b13615b9a38f3490ac9 (diff) | |
download | gcc-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.c | 2 |
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; } |