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

--- Comment #1 from Dmitry G. Dyachenko <dimhen at gmail dot com> ---
slightly reduced

$ cat y.i
int a, g;
int *b, *f, *h;
void *memcpy(void *, const void *, unsigned long);
typedef struct {
  int b;
} * c;
int d(void);
c e;
int d() {
  char c[16];
bd:
  for (a = 0; a <= 1; a++) {
    *c = *f;
    *(c + 8 + 5) = *(c + 8 + 6) = g + 1;
    unsigned long d[2];
    *d = c[0] + c[1];
    *(d + 1) = *(b + c[0]) * *b;
    *d = *d ^ c[1];
    *(d + 1) =
        *(d + 1) ^ (long)b ^ c[5] << 1 ^ *(unsigned long *)b ^ *c ^ *(b +
c[1]);
    *d = *d ^ *(b + c[13]);
    *(d + 1) = *(d + 1) ^ *(b + c[13] + 1);
    *d = *d ^ *(b + 1) ^ c[14] * c[15];
    *(d + 1) = *(d + 1) ^ *b;
    memcpy(c, d, 16);
  }
  *(c + 8) = *(c + 8) ^ *f ^ e->b;
  memcpy(h, c, 16);
  if (0)
    goto bd;
  return 0;
}

Reply via email to