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

            Bug ID: 101260
           Summary: Backport 27381e78925 to GCC 11
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: stefansf at linux dot ibm.com
  Target Milestone: ---
            Target: s390*-*-*

struct a {
  unsigned b : 7;
  int c;
  int d;
  short e;
} p, *q = &p;
int f, g, h, i, r, s;
static short j[8][1][6] = {};
char k[7];
short l, m;
int *n;
int **o = &n;
void t() {
  for (; f;)
    ;
}
static struct a u(int x) {
  struct a a = {4, 8, 5, 4};
  for (; i <= 6; i++) {
    struct a v = {};
    for (; l; l++)
      h = 0;
    for (; h >= 0; h--) {
      j[i];
      struct a *w = &p;
      s = 0;
      for (; s < 3; s++) {
        r ^= x;
        m = j[i][g][h] == (k[g] = g);
        *w = v;
      }
      r = 2;
      for (; r; r--)
        *o = &r;
    }
  }
  t();
  return a;
}
int main() {
  *q = u(636);
  if (p.b != 4)
    __builtin_abort ();
}

The reduced example runs fine if compiled with mainline (currently 53fd7544aff)
whereas it fails if compiled with GCC 11 (currently f6306457ee3). The example
runs fine with GCC 11, too, if commit d1d01a66012a93cc8cb7dafbe1b5ec453ec96b59
is cherry picked. Can we backport this one?

Reply via email to