58 lines · plain
1// REQUIRES: x862// RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t.o3// RUN: ld.lld %t.o -o %t4// RUN: llvm-readobj -S -r --symbols %t | FileCheck %s5// RUN: llvm-objdump --no-print-imm-hex -d %t | FileCheck --check-prefix=DISASM %s6 7// CHECK: Name: .got.plt8// CHECK-NEXT: Type: SHT_PROGBITS9// CHECK-NEXT: Flags [10// CHECK-NEXT: SHF_ALLOC11// CHECK-NEXT: SHF_WRITE12// CHECK-NEXT: ]13// CHECK-NEXT: Address: 0x4020F414// CHECK-NEXT: Offset:15// CHECK-NEXT: Size:16// CHECK-NEXT: Link:17// CHECK-NEXT: Info:18// CHECK-NEXT: AddressAlignment:19 20// CHECK: Symbol {21// CHECK: Name: bar22// CHECK-NEXT: Value: 0x40210023// CHECK-NEXT: Size: 1024// CHECK-NEXT: Binding: Global25// CHECK-NEXT: Type: Object26// CHECK-NEXT: Other: 027// CHECK-NEXT: Section: .bss28// CHECK-NEXT: }29// CHECK-NEXT: Symbol {30// CHECK-NEXT: Name: obj31// CHECK-NEXT: Value: 0x40210A32// CHECK-NEXT: Size: 1033// CHECK-NEXT: Binding: Global34// CHECK-NEXT: Type: Object35// CHECK-NEXT: Other: 036// CHECK-NEXT: Section: .bss37// CHECK-NEXT: }38 39// 0x402000 - 0 = addr(.got) = 0x40200040// 0x40200A - 10 = addr(.got) = 0x40200041// 0x40200A + 5 - 15 = addr(.got) = 0x40200042// 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)48 49.global _start50_start:51 movl $1, bar@GOTOFF(%ecx)52 movl $2, obj@GOTOFF(%ecx)53 movl $3, obj+5@GOTOFF(%ecx)54 .type bar, @object55 .comm bar, 1056 .type obj, @object57 .comm obj, 1058