http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51900
--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-01-19 11:57:18 UTC --- (In reply to comment #3) > [...] > COLLECT_GCC_OPTIONS='-static' '-O2' '-v' '-Q' '-o' 'a.o' '-c' '-mtune=i386' > '-march=i386' > [...] > GNU C (GCC) version 4.6.2 (mingw32) > compiled by GNU C version 4.6.2, GMP version 5.0.2, MPFR version > 2.4.2, > MPC version 0.9 > GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 > options passed: -v > -iprefix d:\programme\msys\mingw462\bin\../lib/gcc/mingw32/4.6.2/ a.c > -mtune=i386 -march=i386 -auxbase-strip a.o -O2 > options enabled: -falign-labels -fasynchronous-unwind-tables > -fauto-inc-dec -fbranch-count-reg -fcaller-saves > -fcombine-stack-adjustments -fcommon -fcompare-elim -fcprop-registers > -fcrossjumping -fcse-follow-jumps -fdefer-pop -fdelete-null-pointer-checks > -fdevirtualize -fdwarf2-cfi-asm -fearly-inlining > -feliminate-unused-debug-types -fexpensive-optimizations > -fforward-propagate -ffunction-cse -fgcse -fgcse-lm > -fguess-branch-probability -fident -fif-conversion -fif-conversion2 > -findirect-inlining -finline -finline-functions-called-once > -finline-small-functions -fipa-cp -fipa-profile -fipa-pure-const > -fipa-reference -fipa-sra -fira-share-save-slots -fira-share-spill-slots > -fivopts -fkeep-inline-dllexport -fkeep-static-consts -fleading-underscore > -fmath-errno -fmerge-constants -fmerge-debug-strings > -fmove-loop-invariants -fomit-frame-pointer -foptimize-register-move > -foptimize-sibling-calls -fpartial-inlining -fpeephole -fpeephole2 > -fprefetch-loop-arrays -freg-struct-return -fregmove -freorder-blocks > -freorder-functions -frerun-cse-after-loop -fsched-critical-path-heuristic > -fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock > -fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec > -fsched-spec-insn-heuristic -fsched-stalled-insns-dep > -fset-stack-executable -fshow-column -fsigned-zeros > -fsplit-ivs-in-unroller -fsplit-wide-types -fstrict-aliasing > -fstrict-overflow -fstrict-volatile-bitfields -fthread-jumps > -ftoplevel-reorder -ftrapping-math -ftree-bit-ccp -ftree-builtin-call-dce > -ftree-ccp -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-cselim > -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-forwprop -ftree-fre > -ftree-loop-if-convert -ftree-loop-im -ftree-loop-ivcanon > -ftree-loop-optimize -ftree-parallelize-loops= -ftree-phiprop -ftree-pre > -ftree-pta -ftree-reassoc -ftree-scev-cprop -ftree-sink > -ftree-slp-vectorize -ftree-sra -ftree-switch-conversion -ftree-ter > -ftree-vect-loop-version -ftree-vrp -funit-at-a-time -funwind-tables > -fvar-tracking -fvar-tracking-assignments -fvect-cost-model > -fzero-initialized-in-bss -m32 -m80387 -m96bit-long-double > -maccumulate-outgoing-args -malign-double -malign-stringops > -mfancy-math-387 -mfp-ret-in-387 -mieee-fp -mno-red-zone -mno-sse4 > -mpush-args -msahf -mstack-arg-probe > [...] I don't think that proves anything. Please reproduce with explicit -fcommon added. That said, works for me on x86_64-linux.