| .text |
| .p2align 4 |
| .globl protected_func_1b |
| .type protected_func_1b, @function |
| protected_func_1b: |
| .LFB11: |
| .cfi_startproc |
| movl $3, %eax |
| ret |
| .cfi_endproc |
| .LFE11: |
| .size protected_func_1b, .-protected_func_1b |
| .section .rodata.str1.8,"aMS",@progbits,1 |
| .align 8 |
| .LC0: |
| .string "'protected_func_1a' in main and shared library doesn't have same address" |
| .align 8 |
| .LC1: |
| .string "'protected_func_1a' doesn't return the correct value" |
| .align 8 |
| .LC2: |
| .string "'protected_func_1b' in main and shared library has same address" |
| .section .rodata.str1.1,"aMS",@progbits,1 |
| .LC3: |
| .string "PASS" |
| .section .text.startup,"ax",@progbits |
| .p2align 4 |
| .globl main |
| .type main, @function |
| main: |
| .LFB12: |
| .cfi_startproc |
| pushq %r12 |
| .cfi_def_cfa_offset 16 |
| .cfi_offset 12, -16 |
| xorl %r12d, %r12d |
| call protected_func_1a_p |
| cmpq protected_func_1a@GOTPCREL(%rip), %rax |
| je .L4 |
| leaq .LC0(%rip), %rdi |
| movl $1, %r12d |
| call puts |
| .L4: |
| call protected_func_1a |
| cmpl $1, %eax |
| jne .L13 |
| call protected_func_1b_p |
| leaq protected_func_1b(%rip), %rdx |
| cmpq %rax, %rdx |
| je .L6 |
| testl %r12d, %r12d |
| jne .L12 |
| leaq .LC3(%rip), %rdi |
| call puts |
| movl %r12d, %eax |
| popq %r12 |
| .cfi_remember_state |
| .cfi_def_cfa_offset 8 |
| ret |
| .L13: |
| .cfi_restore_state |
| leaq .LC1(%rip), %rdi |
| call puts |
| call protected_func_1b_p |
| leaq protected_func_1b(%rip), %rdx |
| cmpq %rax, %rdx |
| je .L6 |
| .L12: |
| movl $1, %r12d |
| movl %r12d, %eax |
| popq %r12 |
| .cfi_remember_state |
| .cfi_def_cfa_offset 8 |
| ret |
| .L6: |
| .cfi_restore_state |
| leaq .LC2(%rip), %rdi |
| call puts |
| jmp .L12 |
| .cfi_endproc |
| .LFE12: |
| .size main, .-main |
| .section .note.GNU-stack,"",@progbits |