| .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 |