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

Reply via email to