Commit 035ab826 by Richard Biener Committed by Richard Biener

re PR middle-end/80764 (ICE at -O3 in both 32-bit and 64-bit modes on…

re PR middle-end/80764 (ICE at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (internal compiler error: in verify_loop_structure, at cfgloop.c:1644))

2017-05-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/80764
	* cfgexpand.c (expand_gimple_cond): Fix loop fixup.

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

From-SVN: r248261
parent f0da1300
2017-05-19 Richard Biener <rguenther@suse.de>
PR middle-end/80764
* cfgexpand.c (expand_gimple_cond): Fix loop fixup.
2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.c (struct machine_function): Add field
......
......@@ -2503,7 +2503,10 @@ expand_gimple_cond (basic_block bb, gcond *stmt)
false_edge->flags |= EDGE_FALLTHRU;
new_bb->count = false_edge->count;
new_bb->frequency = EDGE_FREQUENCY (false_edge);
add_bb_to_loop (new_bb, bb->loop_father);
add_bb_to_loop (new_bb, dest->loop_father);
if (bb->loop_father->latch == bb
&& bb->loop_father->header == dest)
bb->loop_father->latch = new_bb;
new_edge = make_edge (new_bb, dest, 0);
new_edge->probability = REG_BR_PROB_BASE;
new_edge->count = new_bb->count;
......
2017-05-19 Richard Biener <rguenther@suse.de>
PR middle-end/80764
* gcc.dg/torture/pr80764.c: New testcase.
2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/80510
......
/* { dg-do compile } */
int b, d, f, h;
char e;
int fn1();
int main() { return fn1(); }
int fn1(int p1) {
for (; d;)
for (; e < 3;) {
for (; h;)
b = fn1(0);
return f;
}
}
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