1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/* { 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; }