On Tue, Mar 05, 2013 at 12:27:20PM +0100, Richard Biener wrote:
> This should fix PR56525, we reference ggc_freed loop structures
> from bb->loop_father when fix_loop_structure removes a loop
> and then calls flow_loops_find. Fixed by delaying the ggc_free
> part of loop removal until after that (I thought about other
> ways to fix the reference but they are way more intrusive).
>
> Bootstrap and regtest running on x86_64-unknown-linux-gnu.
>
> Richard.
>
> 2013-03-05 Richard Biener <[email protected]>
>
> PR middle-end/56525
> * loop-init.c (fix_loop_structure): Remove loops in two stages,
> not freeing them until the end.
Looks good to me (when reporting the bug, I actually thought about
defering the removal for the duration of the fixup too).
Jakub