/* { dg-do compile } */

int
foo (void)
{
  union { char e[8]; int i; } a, b;
  char *c, *d;
  unsigned int i;
  c = a.e;
  d = &b.e[sizeof (int) - 1];
  for (i = 0; i < sizeof (int); i++)
    {
      *d = *c++;
      --d;
    }
  return b.i;
}