| .section .rodata.str1.8,"aMS",@progbits,1 | |
| .align 8 | |
| .LC0: | |
| .string "'protected_data_1a' in main and shared library doesn't have same address" | |
| .align 8 | |
| .LC1: | |
| .string "'protected_data_1a' in main and shared library doesn't have same value" | |
| .align 8 | |
| .LC2: | |
| .string "'protected_data_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,,15 | |
| .globl main | |
| .type main, @function | |
| main: | |
| .LFB11: | |
| .cfi_startproc | |
| pushq %rbp | |
| .cfi_def_cfa_offset 16 | |
| .cfi_offset 6, -16 | |
| xorl %eax, %eax | |
| pushq %rbx | |
| .cfi_def_cfa_offset 24 | |
| .cfi_offset 3, -24 | |
| xorl %ebx, %ebx | |
| subq $8, %rsp | |
| .cfi_def_cfa_offset 32 | |
| call protected_data_1a_p | |
| movq protected_data_1a@GOTPCREL(%rip), %rbp | |
| cmpq %rbp, %rax | |
| je .L2 | |
| leaq .LC0(%rip), %rdi | |
| movb $1, %bl | |
| call puts | |
| .L2: | |
| movl $-1, %edi | |
| movl $-1, 0(%rbp) | |
| call check_protected_data_1a | |
| testl %eax, %eax | |
| jne .L17 | |
| .L3: | |
| movl $-3, %edi | |
| call set_protected_data_1a | |
| cmpl $-3, 0(%rbp) | |
| je .L4 | |
| leaq .LC1(%rip), %rdi | |
| movl $1, %ebx | |
| call puts | |
| .L4: | |
| xorl %eax, %eax | |
| call protected_data_1b_p | |
| leaq protected_data_1b(%rip), %rdx | |
| cmpq %rdx, %rax | |
| je .L18 | |
| .L5: | |
| movl $2, %edi | |
| movl $-10, protected_data_1b(%rip) | |
| call check_protected_data_1b | |
| testl %eax, %eax | |
| jne .L19 | |
| movl $-30, %edi | |
| call set_protected_data_1b | |
| cmpl $-10, protected_data_1b(%rip) | |
| je .L9 | |
| .L7: | |
| leaq .LC2(%rip), %rdi | |
| movl $1, %ebx | |
| call puts | |
| .L8: | |
| addq $8, %rsp | |
| .cfi_remember_state | |
| .cfi_def_cfa_offset 24 | |
| movl %ebx, %eax | |
| popq %rbx | |
| .cfi_def_cfa_offset 16 | |
| popq %rbp | |
| .cfi_def_cfa_offset 8 | |
| ret | |
| .L9: | |
| .cfi_restore_state | |
| testl %ebx, %ebx | |
| jne .L11 | |
| leaq .LC3(%rip), %rdi | |
| call puts | |
| jmp .L8 | |
| .L19: | |
| leaq .LC2(%rip), %rdi | |
| call puts | |
| movl $-30, %edi | |
| call set_protected_data_1b | |
| cmpl $-10, protected_data_1b(%rip) | |
| jne .L7 | |
| .L11: | |
| movl $1, %ebx | |
| jmp .L8 | |
| .L17: | |
| leaq .LC1(%rip), %rdi | |
| movl $1, %ebx | |
| call puts | |
| jmp .L3 | |
| .L18: | |
| leaq .LC2(%rip), %rdi | |
| movl $1, %ebx | |
| call puts | |
| jmp .L5 | |
| .cfi_endproc | |
| .LFE11: | |
| .size main, .-main | |
| .globl protected_data_1b | |
| .data | |
| .align 4 | |
| .type protected_data_1b, @object | |
| .size protected_data_1b, 4 | |
| protected_data_1b: | |
| .long 3 | |
| .section .note.GNU-stack,"",@progbits |