------- Comment #1 from steven at gcc dot gnu dot org 2007-03-13 18:55 -------
I believe this is the proper fix:
Index: cfglayout.c
===================================================================
--- cfglayout.c (revision 122858)
+++ cfglayout.c (working copy)
@@ -697,7 +697,6 @@ fixup_reorder_chain (void)
#ifdef ENABLE_CHECKING
verify_insn_chain ();
#endif
- delete_dead_jumptables ();
/* Now add jumps and labels as needed to match the blocks new
outgoing edges. */
@@ -1193,6 +1192,9 @@ cfg_layout_finalize (void)
fixup_fallthru_exit_predecessor ();
fixup_reorder_chain ();
+ rebuild_jump_labels (get_insns ());
+ delete_dead_jumptables ();
+
#ifdef ENABLE_CHECKING
verify_insn_chain ();
#endif
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31159