[Bug middle-end/53695] [4.8 Regression] ICE: in dfs_enumerate_from, at cfganal.c:1221 with -O2 -ftracer and labels/gotos

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Oct 26 11:58:00 GMT 2012


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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P3

--- Comment #22 from Richard Biener <rguenth at gcc dot gnu.org> 2012-10-26 11:57:19 UTC ---
Ok, first of all we need to call fix_loop_structure from tracer.  That properly
associates blocks with loops.

The issue that remains is that disambiguate_loops_with_multiple_latches
doesn't disambiguate the loop because we keep loop->latch as non-NULL
Later local-pure-const asks for LOOPS_NORMAL and create_preheaders cannot
deal with the situation, breaking loop structure.

Thus, first of all fix_loop_structure needs to re-compute latches properly.

I have a patch.



More information about the Gcc-bugs mailing list