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

            Bug ID: 102149
           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: ---

Seems to be a recent regression.


$ gcc-trunk -v
gcc version 12.0.0 20210831 (experimental) [master revision
5e57bacf6f3:a82c79a304b:de7a795c321e76826d123c92b99e73e144666b60] (GCC)


$ gcc-trunk abc.c ; ./a.out
1

$ gcc-trunk abc.c ; ./a.out
0

$ cat abc.c
int a[8];
int *b = &a[6];
char c;
int main() {
  int d = 7;
  for (; d >= 0; d--) {
    *b = 1;
    c = a[d] >> 3;
    a[d] = c;
  }
  printf("%d\n", a[6]);
}

Reply via email to