https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84057

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P4                          |P2
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
A latent issue somewhere I would guess.

Program received signal SIGSEGV, Segmentation fault.
0x00000000009eba5e in can_remove_branch_p (e=0x7ffff6a04a80)
    at /space/rguenther/src/svn/early-lto-debug/gcc/cfghooks.c:389
389       if (EDGE_COUNT (e->src->succs) != 2)
(gdb) p e
$1 = (const_edge) 0x7ffff6a04a80
(gdb) p e->src
$2 = <error reading variable: Cannot access memory at address
0xa5a5a5a5a5a5a5f9>

ok, so we end up queueing a lot of edges in edges_to_remove and then end up
removing a path disconnecting a CFG region that another edge to be removed
is queued in.

Before the rev. this all just happened in a different order which was fine.
I've patched this logic in the unroller quite some times already for similar
issues...

Reply via email to