> Actually no. In 32-bit mode, double is aligned on a 4 byte boundary, not an 8
> byte boundary, unless you use -malign-double, which breaks the ABI. This has
> been a 'feature' of the original AT&T 386 System V ABI that Linux uses for
> 32-bit x86 processors. With the SCO mess, it may be hard to ever change that
> ABI....
My gcc doesn't agree with you (I actually checked before posting)
~> cat t.c
int main(void)
{
double x;
printf("%d\n", __alignof__(x));
return 0;
}
~> gcc -m32 -o t t.c
t.c: In function ‘main’:
t.c:5: warning: incompatible implicit declaration of built-in function ‘printf’
~> ./t
8
~>
-Andi