[clang-tidy][modernize-use-starts-ends-with] Fix operator rewriting false negative...
[llvm-project.git] / lld / test / ELF / got-i386.s
blob6d14a62ca17bc959e83c7c842ef42b067dd21b38
1 // REQUIRES: x86
2 // RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t.o
3 // RUN: ld.lld %t.o -o %t
4 // RUN: llvm-readobj -S -r --symbols %t | FileCheck %s
5 // RUN: llvm-objdump --no-print-imm-hex -d %t | FileCheck --check-prefix=DISASM %s
7 // CHECK: Name: .got.plt
8 // CHECK-NEXT: Type: SHT_PROGBITS
9 // CHECK-NEXT: Flags [
10 // CHECK-NEXT: SHF_ALLOC
11 // CHECK-NEXT: SHF_WRITE
12 // CHECK-NEXT: ]
13 // CHECK-NEXT: Address: 0x4020F4
14 // CHECK-NEXT: Offset:
15 // CHECK-NEXT: Size:
16 // CHECK-NEXT: Link:
17 // CHECK-NEXT: Info:
18 // CHECK-NEXT: AddressAlignment:
20 // CHECK: Symbol {
21 // CHECK: Name: bar
22 // CHECK-NEXT: Value: 0x402100
23 // CHECK-NEXT: Size: 10
24 // CHECK-NEXT: Binding: Global
25 // CHECK-NEXT: Type: Object
26 // CHECK-NEXT: Other: 0
27 // CHECK-NEXT: Section: .bss
28 // CHECK-NEXT: }
29 // CHECK-NEXT: Symbol {
30 // CHECK-NEXT: Name: obj
31 // CHECK-NEXT: Value: 0x40210A
32 // CHECK-NEXT: Size: 10
33 // CHECK-NEXT: Binding: Global
34 // CHECK-NEXT: Type: Object
35 // CHECK-NEXT: Other: 0
36 // CHECK-NEXT: Section: .bss
37 // CHECK-NEXT: }
39 // 0x402000 - 0 = addr(.got) = 0x402000
40 // 0x40200A - 10 = addr(.got) = 0x402000
41 // 0x40200A + 5 - 15 = addr(.got) = 0x402000
42 // DISASM: Disassembly of section .text:
43 // DISASM-EMPTY:
44 // DISASM-NEXT: <_start>:
45 // DISASM-NEXT: 4010d4: c7 81 0c 00 00 00 01 00 00 00 movl $1, 12(%ecx)
46 // DISASM-NEXT: 4010de: c7 81 16 00 00 00 02 00 00 00 movl $2, 22(%ecx)
47 // DISASM-NEXT: 4010e8: c7 81 1b 00 00 00 03 00 00 00 movl $3, 27(%ecx)
49 .global _start
50 _start:
51 movl $1, bar@GOTOFF(%ecx)
52 movl $2, obj@GOTOFF(%ecx)
53 movl $3, obj+5@GOTOFF(%ecx)
54 .type bar, @object
55 .comm bar, 10
56 .type obj, @object
57 .comm obj, 10