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 :-)