------- Comment #8 from dominiq at lps dot ens dot fr 2008-01-07 10:06 ------- .cstring LC0: .ascii "\0" .space 1 .text .globl _foo _foo: pushl %ebp movl %esp, %ebp subl $8, %esp call ___i686.get_pc_thunk.cx "L00000000001$pb": leal LC0-"L00000000001$pb"(%ecx), %eax cmpb $0, 1(%eax) sete %al movzbl %al, %eax leave ret .cstring LC1: .ascii "x\0" .text .globl _main _main: pushl %ebp movl %esp, %ebp pushl %ebx subl $36, %esp call ___i686.get_pc_thunk.bx "L00000000002$pb": movzwl LC1-"L00000000002$pb"(%ebx), %eax movw %ax, -10(%ebp) leal -10(%ebp), %edx movl L_t$non_lazy_ptr-"L00000000002$pb"(%ebx), %eax movl %edx, (%eax) call _foo testl %eax, %eax je L4 movl $0, (%esp) call L_exit$stub L4: call L_abort$stub .comm _t,4,2 .picsymbol_stub L_abort$stub: .indirect_symbol _abort call LPC$1 LPC$1: popl %eax movl L1$lz-LPC$1(%eax),%edx jmp *%edx L_abort$stub_binder: lea L1$lz-LPC$1(%eax),%eax pushl %eax jmp dyld_stub_binding_helper .lazy_symbol_pointer L1$lz: .indirect_symbol _abort .long L_abort$stub_binder .picsymbol_stub L_exit$stub: .indirect_symbol _exit call LPC$2 LPC$2: popl %eax movl L2$lz-LPC$2(%eax),%edx jmp *%edx L_exit$stub_binder: lea L2$lz-LPC$2(%eax),%eax pushl %eax jmp dyld_stub_binding_helper .lazy_symbol_pointer L2$lz: .indirect_symbol _exit .long L_exit$stub_binder .non_lazy_symbol_pointer L_t$non_lazy_ptr: .indirect_symbol _t .long 0 .subsections_via_symbols .section __TEXT,__textcoal_nt,coalesced,pure_instructions .weak_definition ___i686.get_pc_thunk.cx .private_extern ___i686.get_pc_thunk.cx ___i686.get_pc_thunk.cx: movl (%esp), %ecx ret .weak_definition ___i686.get_pc_thunk.bx .private_extern ___i686.get_pc_thunk.bx ___i686.get_pc_thunk.bx: movl (%esp), %ebx ret
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34622