https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101615

            Bug ID: 101615
           Summary: wrong code at -O3 on x86_64-linux-gnu
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: qrzhang at gatech dot edu
  Target Milestone: ---

It appears to be a recent regression.

$ gcc-trunk -v
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20210724 (experimental) [master revision
e314cfc371d:5eb84b79079:ead235f60139edc6eb408d8d083cbb15e417b447] (GCC)

$ gcc-trunk abc.c ; ./a.out
5
7
11
3
3
3



$ gcc-trunk -O3 abc.c ; ./a.out
5
7
3
3
3
11

$ cat abc.c
int a[50] = {5, 5, 8};
short b;
int c, d;
int main() {
  int e;
  for (; b <= 4; b++)
    for (; c <= 4; c++) {
      *a |= 1;
      e = 0;
      for (; e <= 4; e++)
        a[e + 1] |= 3;
    }
  for (; d < 6; d++)
    printf("%d\n", a[d]);
}

Reply via email to