http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50325
--- Comment #23 from Iain Sandoe <iains at gcc dot gnu.org> 2011-12-01 10:10:10 UTC --- there is nothing in the ABI doc: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/LowLevelABI/100-32-bit_PowerPC_Function_Calling_Conventions/32bitPowerPC.html#//apple_ref/doc/uid/TP40002438-SW20 that would suggest a different layout of bitfields in the two cases you cite. For varargs and K&R style function calls - it can be that double/vect values end up with a 4 byte alignment on the stack, when they are also passed in regs. (see PR 34311) - but I doubt that is relevant to this case.