On Fri, Mar 01, 2024 at 01:53:54AM -0300, Alexandre Oliva wrote: > On Feb 27, 2024, Richard Earnshaw <richard.earns...@arm.com> wrote: > > > This one has been festering for a while; both Alexandre and Torbjorn > > have attempted to fix it recently, but I'm not sure either is really > > right... > > *nod* xref https://gcc.gnu.org/pipermail/gcc-patches/2024-March/646926.html > The patch I proposed was indeed far too limited in scope. > > > On Arm this is causing all anonymous arguments to be passed on the > > stack, which is incorrect per the ABI. On a target that uses > > 'pretend_outgoing_vararg_named', why is it correct to set n_named_args > > to zero? Is it enough to guard both the statements you've added with > > !targetm.calls.pretend_outgoing_args_named? > > ISTM that the change you suggest over Jakub's patch would address the > inconsistency on ARM.
At least in my understanding, the only part of my patch that was being discussed was the !strict_argument_naming && !pretend_outgoing_args_named case with structure_value_addr_parm, I don't see how that would affect ARM, given that it is a !strict_argument_naming && pretend_outgoing_args_named target. In that case with the patch as posted n_named_args will be structure_value_addr_parm before INIT_CUMULATIVE_ARGS and num_actuals afterwards, I don't see any disagreement on that. Jakub