On Monday 09 July 2001 15:27, msoda_at_aspre.net wrote:
> Hey all,
>
<snip>
> When running 'gcc -S' it shows that 24 bytes are allocated on the stack
> for buf[]. I thought it should allocate only 16 bytes. It works fine, it
> just makes no sense to me. If I tweak the assembly and change it to 16
> bytes and also change the offsets to %ebp that reference it, it works fine
> also.
>
> Does anyone know why gcc does this? My need to understand everything is
> killing me!
>
It's due to gcc's preferred stack boundary. Seems to be some sort of
alignment issue.
Simply do a
bash# gcc -mpreferred-stack-boundary=2 -S foo.c -o foo.s
and you get 16 bytes as expected.
wwieser
Received on Jul 14 2001