re PR middle-end/80823 (ICE: verify_flow_info failed)

gcc/
	PR middle-end/80823
	* tree-cfg.c (group_case_labels_stmt): Delete increment of "i";

gcc/testsuite/
	PR middle-end/80823
	* gcc.dg/pr80823.c: New test.

From-SVN: r248408
This commit is contained in:
Peter Bergner 2017-05-24 07:10:54 -05:00 committed by Peter Bergner
parent 00e0af8d15
commit 3f3fb6c913
4 changed files with 33 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
PR middle-end/80823
* tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/80725

View File

@ -1,3 +1,8 @@
2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
PR middle-end/80823
* gcc.dg/pr80823.c: New test.
2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/pr80725.c: New test.

View File

@ -0,0 +1,23 @@
/* PR middle-end/80823 ICE: verify_flow_info failed */
/* { dg-do compile } */
/* { dg-options "-O3" } */
int a, c;
int b[1];
static inline int
fn1() {
switch (a)
case 0:
case 2:
return 1;
return 0;
}
void fn2() {
int i;
for (;; ++i) {
c = b[i];
int d = !fn1();
if (d)
__asm__("");
}
}

View File

@ -1726,7 +1726,6 @@ group_case_labels_stmt (gswitch *stmt)
remove_edge_and_dominated_blocks (base_edge);
gimple_switch_set_label (stmt, base_index, NULL_TREE);
new_size--;
i++;
}
}