On 1/16/2012 8:59 AM, Manu wrote:
(also the float array is unaligned).
Currently, it is 4 byte aligned. But the compiler could align freestanding static arrays on 16 bytes without breaking anything. It just cannot align:
struct S { int a; float[4] b; } b on a 16 byte boundary, as that would break the ABI. Even worse, struct S { int a; char[16] s; } can't be aligned on 16 bytes as that is a common "small string optimization".