http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50725
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|rtl-optimization |target Target Milestone|--- |4.7.0 --- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-10-14 09:14:04 UTC --- Can you verify with a simpler testcase like int foo (int *u) { return *u; } ? On x86_64-linux with -m32 I see for your code _Z25_pei386_runtime_relocatorP11per_process: .LFB221: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 pushl %edi .cfi_def_cfa_offset 12 pushl %esi .cfi_def_cfa_offset 16 pushl %ebx .cfi_def_cfa_offset 20 subl $92, %esp .cfi_def_cfa_offset 112 .cfi_offset 5, -8 .cfi_offset 7, -12 .cfi_offset 6, -16 .cfi_offset 3, -20 movl 112(%esp), %eax imull $1000, 128(%eax), %edx which looks ok. So it must be a *-cygwin specific issue.