http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49710

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-07-12 
08:54:29 UTC ---
Caused by http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=172430
but more probably this is just a dup of PR48813, which was for this testcase
latent before.  Honza, any chance you could look at that and PR48813?  The ICE
is in the exact same spot, base_loop is non-NULL, but base_loop->header is
NULL,
as the loop has been marked for removal in delete_basic_block called from
remove_bbs/remove_path during the peeling.  The same remove_path then calls
fix_loop_placements which calls fix_bb_placements which ICEs.
That delete_basic_block is apparently called on the loop->latch bb, which
queues the loop for removal anyway, but loop->header hasn't been removed and
its bb->loop_father still points to the loop that has now header and latch
fields NULL.

Reply via email to