http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56745
Bug #: 56745 Summary: [4.8/4.9 Regression] ICE in merge_if_block Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: ja...@gcc.gnu.org unsigned char a[6]; void foo () { int i; for (i = 5; i >= 0; i++) { if (++a[i] != 0) break; ++a[i]; } } ICEs on arm-linux-gnueabi at -O2 with: rh927931.i: In function ‘foo’: rh927931.i:13:1: internal compiler error: in merge_if_block, at ifcvt.c:3188 } ^ 0xcd8a6c merge_if_block ../../gcc/ifcvt.c:3187 0xcd8a6c cond_exec_process_if_block ../../gcc/ifcvt.c:706 0xcdc23e cond_exec_find_if_block ../../gcc/ifcvt.c:3578 0xcdc23e find_if_header ../../gcc/ifcvt.c:3261 0xcdc23e if_convert ../../gcc/ifcvt.c:4381 0xcdc438 rest_of_handle_if_after_reload ../../gcc/ifcvt.c:4527 , 4.7 didn't ICE.