mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-29 23:04:12 +08:00
re PR middle-end/8866 (Bug in switch statement code generation -- missing label)
PR middle-end/8866 * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete jumptables. PR middle-end/8866 * libjava.lang/PR8866.java: New test. From-SVN: r65698
This commit is contained in:
parent
1cdbd6309a
commit
f2d80e7e81
@ -1,3 +1,9 @@
|
||||
2003-04-16 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR middle-end/8866
|
||||
* cfgtrl.c (try_redirect_by_replacing_jump): Do not delete
|
||||
jumptables.
|
||||
|
||||
2003-04-16 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* config/ia64/ia64.c (sdata_symbolic_operand): Use
|
||||
|
11
gcc/cfgrtl.c
11
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);
|
||||
|
@ -1,3 +1,8 @@
|
||||
2003-04-16 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR middle-end/8866
|
||||
* libjava.lang/PR8866.java: New test.
|
||||
|
||||
2003-04-16 Andrew Haley <aph@redhat.com>
|
||||
|
||||
* libjava.lang/Throw_2.java (main): Make a successful test produce
|
||||
|
22
libjava/testsuite/libjava.lang/PR8866.java
Normal file
22
libjava/testsuite/libjava.lang/PR8866.java
Normal file
@ -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:
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user