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
This commit is contained in:
parent
f0da130005
commit
035ab82621
@ -1,3 +1,8 @@
|
||||
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;
|
||||
|
||||
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
||||
14
gcc/testsuite/gcc.dg/torture/pr80764.c
Normal file
14
gcc/testsuite/gcc.dg/torture/pr80764.c
Normal file
@ -0,0 +1,14 @@
|
||||
/* { 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;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user