diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a7d59b8f154..f95d7026759 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-04-16 Mark Mitchell + + PR middle-end/8866 + * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete + jumptables. + 2003-04-16 Richard Henderson * config/ia64/ia64.c (sdata_symbolic_operand): Use diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 0ba32c5782e..394632c8cc4 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, label, table; + rtx barrier; emit_jump_insn_after (gen_jump (target_label), insn); JUMP_LABEL (src->end) = target_label; @@ -740,15 +740,10 @@ 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)) - delete_insn_chain (label, table); - barrier = next_nonnote_insn (src->end); if (!barrier || GET_CODE (barrier) != BARRIER) emit_barrier_after (src->end); diff --git a/libjava/testsuite/ChangeLog b/libjava/testsuite/ChangeLog index 2ec01f399be..96b3930d860 100644 --- a/libjava/testsuite/ChangeLog +++ b/libjava/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-04-16 Mark Mitchell + + PR middle-end/8866 + * libjava.lang/PR8866.java: New test. + 2003-04-16 Andrew Haley * libjava.lang/Throw_2.java (main): Make a successful test produce diff --git a/libjava/testsuite/libjava.lang/PR8866.java b/libjava/testsuite/libjava.lang/PR8866.java new file mode 100644 index 00000000000..fa620667445 --- /dev/null +++ b/libjava/testsuite/libjava.lang/PR8866.java @@ -0,0 +1,22 @@ +public class PR8866 +{ + public static void main (String args[]) + { + String attTypeString = ""; + + switch (args.length) { + case 1: + attTypeString = "string"; + case 4: + attTypeString = "ID";; + case 5: + attTypeString = "IDREF";; + case 6: + attTypeString = "NMTOKEN";; + case 7: + attTypeString = "NOTATION";; + default: + ; + } + } +}