My GCC disagrees. Might be different for MinGW.
Code:
void f();
void g();
void h();
void i();
int main()
{
f();
return 0;
}
void f() { g(); }
void g() { h(); }
void h() { i(); }
void i()
{
int *p = 0;
*p = 1;
}
Code:
$ cc -fomit-frame-pointer -o trace trace.c
$ gdb trace
(gdb) run
Starting program: /home/wasti/projects/test/trace
Program received signal SIGSEGV, Segmentation fault.
0x00000000004004f7 in i ()
(gdb) bt
#0 0x00000000004004f7 in i ()
#1 0x00000000004004e4 in h ()
#2 0x00000000004004d1 in g ()
#3 0x00000000004004be in f ()
#4 0x00000000004004a6 in main ()