https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116408
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I wonder if this is undefined and -fsanitize=undefined is not catching it. If we change the union to be using bitfields (_BitInt(31) b:31;) it works.