diff options
author | Jakub Jelinek <jakub@redhat.com> | 2005-05-17 08:48:19 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2005-05-17 08:48:19 +0200 |
commit | 7cbd12b88f5749676e888502453056fcc48cd61e (patch) | |
tree | 5683629f8c3f41248f9737c62c8e1e9255c55a85 /gcc/cfgcleanup.c | |
parent | c477e13bd7d3f369cde2fbb171d8aa9501759373 (diff) | |
download | gcc-7cbd12b88f5749676e888502453056fcc48cd61e.zip gcc-7cbd12b88f5749676e888502453056fcc48cd61e.tar.gz gcc-7cbd12b88f5749676e888502453056fcc48cd61e.tar.bz2 |
re PR middle-end/21492 (ICE in try_crossjump_to_edge)
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.
From-SVN: r99816
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 e7df2ae..10e6f10 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; } |