https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116063
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Hmm (https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Common-Type-Attributes.html): Second, the argument is passed to the function using the calling conventions of the first member of the transparent union, not the calling conventions of the union itself. All members of the union must have the same machine representation; this is necessary for this argument passing to work properly. I think this is invalid based on the documention.