http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57359
--- Comment #9 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- I think this is invalid, because the assignment that changes the current union member doesn't go through the union type (cf. DR#236).