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.

Reply via email to