aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgrtl.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cfgrtl.c')
-rw-r--r--gcc/cfgrtl.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index 654d3e3..0ba32c5 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -740,12 +740,14 @@ try_redirect_by_replacing_jump (e, target)
fprintf (rtl_dump_file, "Replacing insn %i by jump %i\n",
INSN_UID (insn), INSN_UID (src->end));
- /* Remove the original jump. If INSN is a tablejump, the jump
- table will be removed later, if it is no longer needed. */
+
delete_insn_chain (kill_from, insn);
+ /* Recognize a tablejump that we are converting to a
+ simple jump and remove its associated CODE_LABEL
+ and ADDR_VEC or ADDR_DIFF_VEC. */
if (tablejump_p (insn, &label, &table))
- create_basic_block (label, table, src);
+ delete_insn_chain (label, table);
barrier = next_nonnote_insn (src->end);
if (!barrier || GET_CODE (barrier) != BARRIER)