https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110416
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- [dcl.init.general]/8 (specifically 8.2) is what makes the union case valid. Though I wonder what mutable field means in an union if not the whole union is not mutable ...