Jan, It appears that the gcc.dg/tree-prof/pr44777.c execution, -fprofile-generate -D_PROFILE_GENERATE testcase exposes inconsistent code generation on both x86_64 darwin and x86_64 linux at -m32. The darwin linker developer looked at the crashing pr44777.exe executable that this testcase produces...
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52444#c1 I looked at this further was surprised to find that each time the compilation... /home/howarth/work-gcc/gcc/xgcc -B/home/howarth/work-gcc/gcc/ /home/howarth/gcc/gcc/testsuite/gcc.dg/tree-prof/pr44777.c -fno-diagnostics-show-caret -O0 -fprofile-generate -D_PROFILE_GENERATE -lm -m32 -o /home/howarth/work-gcc/gcc/testsuite/gcc/pr44777.x01 --save-temps produces slightly different assembly... --- pr44777.s.orig 2012-12-15 09:40:32.507293659 -0500 +++ pr44777.s 2012-12-15 09:40:45.323922586 -0500 @@ -250,7 +250,7 @@ .LPBX0: .long 875575397 .long 0 - .long -1627233075 + .long -1627220258 .long .LC0 .long __gcov_merge_add .long 0 but always at this location. Can you take a look at this under linux? You won't see the crashing executable but you will see the variable assembly generation in the -D_PROFILE_GENERATE compile. Jack