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
10 // CHECK-NEXT
: SHF_ALLOC
11 // CHECK-NEXT
: SHF_WRITE
13 // CHECK-NEXT
: Address
: 0x4020F4
14 // CHECK-NEXT
: Offset
:
18 // CHECK-NEXT
: AddressAlignment
:
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
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
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:
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
)
51 movl $
1, bar@GOTOFF
(%ecx
)
52 movl $
2, obj@GOTOFF
(%ecx
)
53 movl $
3, obj+
5@GOTOFF
(%ecx
)