f***@tiscali.it
2002-12-23 22:51:42 UTC
Can somebody explain why gcc (version 3.2 20020927) on Cygwin does this?
Type this simple C program
void func(void){
struct {unsigned char data[3985];}var;
}
and compile with
gcc -c filename.c
Then type
nm filename.o
The output is
00000000 b .bss
00000000 d .data
00000000 t .text
U __alloca
00000000 T _func
Why on earth is the symbol __alloca doing there?
Just change the program to
void func(void){
struct {unsigned char data[3984];}var;
}
and compile it. This time, nm's output is
00000000 b .bss
00000000 d .data
00000000 t .text
00000000 T _func
as it should. Is there a reason why the symbol __alloca appears?
__________________________________________________________________
Tiscali ADSL. Scopri la fantastica promozione di Natale: tutto Gratis fino
al 9 gennaio!
Abbonati ora: prima ti abboni, piĆ¹ risparmi!
http://point.tiscali.it/adsl/index.shtml
Type this simple C program
void func(void){
struct {unsigned char data[3985];}var;
}
and compile with
gcc -c filename.c
Then type
nm filename.o
The output is
00000000 b .bss
00000000 d .data
00000000 t .text
U __alloca
00000000 T _func
Why on earth is the symbol __alloca doing there?
Just change the program to
void func(void){
struct {unsigned char data[3984];}var;
}
and compile it. This time, nm's output is
00000000 b .bss
00000000 d .data
00000000 t .text
00000000 T _func
as it should. Is there a reason why the symbol __alloca appears?
__________________________________________________________________
Tiscali ADSL. Scopri la fantastica promozione di Natale: tutto Gratis fino
al 9 gennaio!
Abbonati ora: prima ti abboni, piĆ¹ risparmi!
http://point.tiscali.it/adsl/index.shtml