Commit bdb37448 by Richard Biener Committed by Richard Biener

re PR middle-end/65517 (ICE: in get_loop_body, at cfgloop.c:856)

2015-03-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/65517
	* tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
	for fixup if necessary.

	* gcc.dg/torture/pr65517.c: New testcase.

From-SVN: r221619
parent f9addac7
2015-03-24 Richard Biener <rguenther@suse.de>
PR middle-end/65517
* tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
for fixup if necessary.
2015-03-23 Sandra Loosemore <sandra@codesourcery.com>
* doc/extend.texi (Function Attributes): Add @cindex entries
......
2015-03-24 Richard Biener <rguenther@suse.de>
PR middle-end/65517
* gcc.dg/torture/pr65517.c: New testcase.
2015-03-24 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/coindexed_1.f90: Moved from
......
/* { dg-do compile } */
typedef void (*argmatch_exit_fn)();
int a;
void __argmatch_die () { __builtin_exit (0); }
int
main ()
{
while (1)
{
argmatch_exit_fn b = __argmatch_die;
if (a)
b ();
}
return 0;
}
......@@ -7824,6 +7824,13 @@ remove_edge_and_dominated_blocks (edge e)
basic_block bb, dbb;
bitmap_iterator bi;
/* If we are removing a path inside a non-root loop that may change
loop ownership of blocks or remove loops. Mark loops for fixup. */
if (current_loops
&& loop_outer (e->src->loop_father) != NULL
&& e->src->loop_father == e->dest->loop_father)
loops_state_set (LOOPS_NEED_FIXUP);
if (!dom_info_available_p (CDI_DOMINATORS))
{
remove_edge (e);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment