https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94770
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org --- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I've tried to unconditionally return false; from ix86_is_empty_record and that then keeps pretty much same ABI on the caller side and changes the va_arg handling to do the needed adjustments. Which might mean this is a regression since r255066. Though, the big question still is what the msabi wants. And if it wants to pass these empty classes as their padding, then we probably need to make sure the middle-end doesn't use TYPE_EMPTY_P at all, but instead it uses a new target hook to which it would pass the type and some way how to identify what ABI it cares about (say NULL for the current function's ABI and a fndecl if it is calling some other function and wants that other function's ABI), and the hook would then either return TYPE_EMPTY_P for non-msabi, or false for msabi.