1  /* { dg-do compile } */
       2  
       3  int
       4  foo (void)
       5  {
       6    union { char e[8]; int i; } a, b;
       7    char *c, *d;
       8    unsigned int i;
       9    c = a.e;
      10    d = &b.e[sizeof (int) - 1];
      11    for (i = 0; i < sizeof (int); i++)
      12      {
      13        *d = *c++;
      14        --d;
      15      }
      16    return b.i;
      17  }