https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635
--- Comment #53 from Liu Hao <lh_mouse at 126 dot com> --- For people who are not willing to turn off this warning: This warning may be suppressed by introducing a volatile member in the union that is used as the storage. Using Martin Sebor's testcase, this look likes this: ``` union { T t; char x[sizeof (T)]; volatile char dont_use; // this silences such warnings. }; ``` (the `sizeof (T)` thing is unnecessary, as the union will always have correct size and alignment w/o it.) Hope it helps.