/* { dg-do run } */
/* { dg-additional-options "-ftree-loop-distribution" } */

struct {
  int : 8;
  int a;
} b, d[4] = {{0}, {0}, {0}, {5}};
int c, e;
int main() {
  for (c = 2; c; c--)
    for (e = 0; e < 2; e++) {
      d[c] = b = d[c + 1];
      d[c + 1].a = 0;
    }
  if (b.a != 0)
    __builtin_abort();
  return 0;
}