http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47727
--- Comment #11 from Uros Bizjak <ubizjak at gmail dot com> 2011-07-28 09:22:29 UTC --- With recent changes in mainline, the testcase from Comment #0 compiles OK: __do_global_ctors_aux: .LFB0: .cfi_startproc mov -4+__CTOR_END__(%rip), %eax pushq %rbx .cfi_def_cfa_offset 16 .cfi_offset 3, -16 cmpl $-1, %eax je .L1 leal -4+__CTOR_END__(%rip), %ebx .p2align 4,,10 .p2align 3 .L3: leal -4(%rbx), %ebx call *%rax mov (%rbx), %eax cmpl $-1, %eax jne .L3 .L1: popq %rbx .cfi_def_cfa_offset 8 ret .cfi_endproc Probably, the patch is not needed at all.