On 10/01/2022 08:38, Florian Weimer via Gcc wrote:
* Jeff Law via Gcc:
Most targets these days use registers for parameter passing and
obviously we can run out of registers on all of them. The key
property is the size/alignment of the argument differs depending on if
it's pass in a register (get promoted) or passed in memory (not
promoted). I'm not immediately aware of another ABI with that
feature. Though I haven't really gone looking.
I think what AArch64 Darwin does is not compatible with a GCC extension
that allows calling functions defined with a prototype without it (for
pre-ISO-C compatibility). Given that, anyone defining an ABI in
parallel with a GCC implementation probably has paused, reconsidered
what they were doing, and adjusted the ABI for K&R compatibility.
Thanks,
Florian
Not having a prototype was deprecated in C89. One would hope that after
33 years we could move on from that.
R.