.file "ifunc.c" #APP .type func, %indirect_function .type long_func_name, %indirect_function .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "arg is %d\n" #NO_APP .text .p2align 4,,15 .globl bar .type bar, @function bar: .LFB25: movl %edi, %esi xorl %eax, %eax movl $.LC0, %edi jmp printf .LFE25: .size bar, .-bar .section .rodata.str1.1 .LC1: .string "main: calling func" .section .rodata.str1.8,"aMS",@progbits,1 .align 8 .LC2: .string "main: func finished, calling long_func_name" .section .rodata.str1.1 .LC3: .string "main: long_func_name finished" .text .p2align 4,,15 .globl main .type main, @function main: .LFB24: subq $8, %rsp .LCFI0: movl $.LC1, %edi call puts call func movl $.LC2, %edi call puts call long_func_name movl $.LC3, %edi call puts xorl %eax, %eax addq $8, %rsp ret .LFE24: .size main, .-main .p2align 4,,15 .globl long_func_name .type long_func_name, @function long_func_name: .LFB23: subq $8, %rsp .LCFI1: call rand movl %eax, %edx movl $func1, %eax testl %edx, %edx movl $func0, %edx cmovne %rdx, %rax addq $8, %rsp ret .LFE23: .size long_func_name, .-long_func_name .p2align 4,,15 .globl func .type func, @function func: .LFB22: subq $8, %rsp .LCFI2: call rand movl %eax, %edx movl $func1, %eax testl %edx, %edx movl $func0, %edx cmovne %rdx, %rax addq $8, %rsp ret .LFE22: .size func, .-func .section .rodata.str1.1 .LC4: .string "func1\n" .text .p2align 4,,15 .globl func1 .type func1, @function func1: .LFB21: movl $.LC4, %edi jmp puts .LFE21: .size func1, .-func1 .section .rodata.str1.1 .LC5: .string "func0\n" .text .p2align 4,,15 .globl func0 .type func0, @function func0: .LFB20: movl $.LC5, %edi jmp puts .LFE20: .size func0, .-func0 .section .eh_frame,"a",@progbits .Lframe1: .long .LECIE1-.LSCIE1 .LSCIE1: .long 0x0 .byte 0x1 .string "zR" .uleb128 0x1 .sleb128 -8 .byte 0x10 .uleb128 0x1 .byte 0x3 .byte 0xc .uleb128 0x7 .uleb128 0x8 .byte 0x90 .uleb128 0x1 .align 8 .LECIE1: .LSFDE1: .long .LEFDE1-.LASFDE1 .LASFDE1: .long .LASFDE1-.Lframe1 .long .LFB25 .long .LFE25-.LFB25 .uleb128 0x0 .align 8 .LEFDE1: .LSFDE3: .long .LEFDE3-.LASFDE3 .LASFDE3: .long .LASFDE3-.Lframe1 .long .LFB24 .long .LFE24-.LFB24 .uleb128 0x0 .byte 0x4 .long .LCFI0-.LFB24 .byte 0xe .uleb128 0x10 .align 8 .LEFDE3: .LSFDE5: .long .LEFDE5-.LASFDE5 .LASFDE5: .long .LASFDE5-.Lframe1 .long .LFB23 .long .LFE23-.LFB23 .uleb128 0x0 .byte 0x4 .long .LCFI1-.LFB23 .byte 0xe .uleb128 0x10 .align 8 .LEFDE5: .LSFDE7: .long .LEFDE7-.LASFDE7 .LASFDE7: .long .LASFDE7-.Lframe1 .long .LFB22 .long .LFE22-.LFB22 .uleb128 0x0 .byte 0x4 .long .LCFI2-.LFB22 .byte 0xe .uleb128 0x10 .align 8 .LEFDE7: .LSFDE9: .long .LEFDE9-.LASFDE9 .LASFDE9: .long .LASFDE9-.Lframe1 .long .LFB21 .long .LFE21-.LFB21 .uleb128 0x0 .align 8 .LEFDE9: .LSFDE11: .long .LEFDE11-.LASFDE11 .LASFDE11: .long .LASFDE11-.Lframe1 .long .LFB20 .long .LFE20-.LFB20 .uleb128 0x0 .align 8 .LEFDE11: .ident "GCC: (GNU) 4.3.0 20080428 (Red Hat 4.3.0-8)" .section .note.GNU-stack,"",@progbits