https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92071
--- Comment #2 from David Binderman <dcb314 at hotmail dot com> ---
Here is some reduced C code which demonstrates the problem:
a;
union b {
double c;
char d[8]
} e() {
union b b;
memcpy(b.d, a, 8);
f(b);
}
Flag -O2 required.