diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-18 22:04:12 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-18 22:04:12 +0000 |
commit | 669f91312ba3e8b43cd7f6826a969e580665c414 (patch) | |
tree | 8a7d66866505ff2c9c7d75e08fed7806a7ccda4e /gcc/cfgrtl.c | |
parent | 8a5ce0ec966d2ff7b365826df9d06ccba7b4defe (diff) | |
download | gcc-669f91312ba3e8b43cd7f6826a969e580665c414.tar.gz |
* cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
for orphaned jump tables.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65792 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgrtl.c')
-rw-r--r-- | gcc/cfgrtl.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 394632c8cc4..654d3e304bd 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -731,7 +731,7 @@ try_redirect_by_replacing_jump (e, target) else { rtx target_label = block_label (target); - rtx barrier; + rtx barrier, label, table; emit_jump_insn_after (gen_jump (target_label), insn); JUMP_LABEL (src->end) = target_label; @@ -744,6 +744,9 @@ try_redirect_by_replacing_jump (e, target) table will be removed later, if it is no longer needed. */ delete_insn_chain (kill_from, insn); + if (tablejump_p (insn, &label, &table)) + create_basic_block (label, table, src); + barrier = next_nonnote_insn (src->end); if (!barrier || GET_CODE (barrier) != BARRIER) emit_barrier_after (src->end); |