cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block for orphaned jump...
authorMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 18 Apr 2003 22:04:12 +0000 (22:04 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 18 Apr 2003 22:04:12 +0000 (22:04 +0000)
* cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
for orphaned jump tables.

From-SVN: r65792

gcc/cfgrtl.c

index 394632c8cc4ad003055bd506efceb3bc5b575e65..654d3e304bd154c1e03046506b392033188887c3 100644 (file)
@@ -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);