https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83487
--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Perhaps: --- gcc/config/i386/i386.c.jj 2017-12-21 09:44:34.000000000 +0100 +++ gcc/config/i386/i386.c 2017-12-21 13:04:03.172252517 +0100 @@ -8973,6 +8973,8 @@ ix86_function_arg_boundary (machine_mode the main variant type. */ type = TYPE_MAIN_VARIANT (type); align = TYPE_ALIGN (type); + if (TYPE_EMPTY_P (type)) + return PARM_BOUNDARY; } else align = GET_MODE_ALIGNMENT (mode);