http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52139
Steven Bosscher <steven at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |NEW AssignedTo|unassigned at gcc dot |steven at gcc dot gnu.org |gnu.org | --- Comment #12 from Steven Bosscher <steven at gcc dot gnu.org> 2013-04-13 14:58:53 UTC --- Created attachment 29866 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29866 Corrected fix In cfglayout mode, header and footer insns should not be inserted in the insn chain. The real bug here turns out to be in cfg_layout_delete_block: It deletes the basic block by re-attaching the header and footer to the insn chain and uses rtl_delete_block to actually delete the basic block. But at that point, try_redirect_by_replacing_jump has already removed the tablejump instruction, so get_last_bb_insn doesn't extend the basic block to include the jump table data. I will address that in a separate patch, but I'm not sure yet how :-)