Results, slightly reformatted, if not "f1 / main out" (collected in 2007) Solaris 10 on Sun Blade 1500 with Sun's compiler (32- or 64-bit executable) cc -v -o h1.x h1.c cc -v -o h1.x -xarch=v9 h1.c cc -v -o h1.x -xarch=generic64 h1.c c99 -v -o h1.x h1.c c99 -v -o h1.x -xarch=v9 h1.c c99 -v -o h1.x -xarch=generic64 h1.c arg result (none) Segmentation fault Why did nothing interesting happen? func is stored in a register, not on the stack. Solaris 10 on Sun Blade 1500 with GCC (32- or 64-bit executable) gcc -ansi -Wall -Wextra -pedantic -o h1.x h1.c gcc -std=c99 -Wall -Wextra -pedantic -o h1.x h1.c gcc -m64 -ansi -Wall -Wextra -pedantic -o h1.x h1.c gcc -m64 -std=c99 -Wall -Wextra -pedantic -o h1.x h1.c arg result (none) Segmentation fault 3 f2 / main out Linux 2.6 on AMD Opteron with GCC (32- or 64-bit executable) gcc -ansi -Wall -Wextra -pedantic -o h1.x h1.c gcc -std=c99 -Wall -Wextra -pedantic -o h1.x h1.c gcc -m64 -ansi -Wall -Wextra -pedantic -o h1.x h1.c gcc -m64 -std=c99 -Wall -Wextra -pedantic -o h1.x h1.c arg result (none) Segmentation fault 3 f2 / main out 7 f1 / main out / f2 / Segmentation fault Mac OS X on Powerbook G4 with GCC gcc -ansi -Wall -Wextra -pedantic -o h1.x h1.c gcc -std=c99 -Wall -Wextra -pedantic -o h1.x h1.c arg result (none) Bus error -15 Bus error -1 f2 / main out 11 f1 / main out / f2 [repeated forever]