question about allocating local variable

Purnendu/Gmail purnendu@gmail.com
Mon Jun 28 16:32:00 GMT 2004


On a solaris platform with gcc 3.0 the one i have
out put for such a behaviour is pretty predictive.

It allocates a stack of 120 for char a[1] to char a[8]
then 128 for char a[9] to char a[16]
and so on.

for an integer array
It allocates a stack of 120 for int a[1] and int a[2]
then 128 for int a[3] to int a[4]
and so on.

with a allignment of 4 bytes

===============

 .file   "help.c"
        .section        ".text"
        .align 4
        .global main
        .type   main,#function
        .proc   04
main:
        !#PROLOGUE# 0
        save    %sp, -128, %sp
        !#PROLOGUE# 1
        ret
        restore
.LLfe1:
        .size   main,.LLfe1-main
        .ident  "GCC: (GNU) 3.0"
~



 


===============


Hope i am correct.am i?
but then why the initial 120 bytes,???

On Mon, 28 Jun 2004 10:50:13 -0500, Eljay Love-Jensen <eljay@adobe.com> wrote:
> 
> Hi Prawit,
> 
> >Does anybody has any explaination [why the compiler allocates more than
> specified]?
> 
> Alignment.
> 
> You didn't specify what platform, GCC version (3.3.4?  3.4.0?), and compile
> options you are using.  If you are not generated optimized code, the code
> may not be optimized.
> 
> It is also possible that one of the GCC Gnurus made a boo-boo.  Rare, but
> can happen.  Especially between optimizations that are in contention, which
> may have unintended side-effects on different platforms.  (I discovered 3
> such issues, on GCC 2.95 on Solaris.  They're all fixed now.)
> 
> HTH,
> --Eljay
> 
>



More information about the Gcc-help mailing list