----Original Message---- >From: Olivier Hainque >Sent: 26 April 2005 14:25
> "a long double member within a structure or union shall start at the > lowest available offset aligned on a 16byte boundary" > > Now, I'm a bit unclear on the meaning of the ABI statement quoted above, > and on the real implications this should have in the compiler. > > Does it imply that a long double field *address* should always be a > multiple of 16, or just that the *offset* should be such a multiple ? It only implies that the offset should be such a multiple, but since the struct itself will have to be aligned to a multiple of 16 if any of its members have to be aligned to a multiple of 16 (at least according to the C language rules), it works out the same: the base address is aligned, the offset is aligned because of the paragraph above, so the actual member address (offset + base) is also aligned. cheers, DaveK -- Can't think of a witty .sigline today....