Richard Biener wrote:
But I find it odd that on ARM passing *((aligned_int *)p) as vararg (only as varargs?) changes calling conventions independent of the functions type signature.
Does it? Do you have a testcase, and compilation flags, that'll make this show up in an RTL dump? I've tried numerous cases, including AFAICT yours, and I always get the value being passed in the expected ("unaligned") register?
Cheers, Alan