189 lines · plain
1// REQUIRES: x862// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t3// RUN: ld.lld %t -o %t24// RUN: llvm-readobj --symbols --sections %t2 | FileCheck %s5 6.type _start, @function7.globl _start8_start:9 10.type foo, @object11.weak foo12foo:13 14.type bar, @object15.weak bar16.long bar17 18.section foobar,"a",@nobits,unique,119.globl zed20zed:21 .long 022.globl zed223zed2:24.long 025 26.section foobar,"a",@nobits,unique,227.globl zed328.size zed3, 429zed3:30 31.globl abs32abs = 0x12333 34.comm common,4,435 36.global protected37.protected protected38protected:39 40.global hidden41.hidden hidden42hidden:43 44.global internal45.internal internal46internal:47 48// CHECK: Name: foobar49// CHECK-NEXT: Type: SHT_NOBITS50// CHECK-NEXT: Flags [51// CHECK-NEXT: SHF_ALLOC52// CHECK-NEXT: ]53// CHECK-NEXT: Address: 0x20015854 55// CHECK: Name: .text56// CHECK-NEXT: Type: SHT_PROGBITS57// CHECK-NEXT: Flags [58// CHECK-NEXT: SHF_ALLOC59// CHECK-NEXT: SHF_EXECINSTR60// CHECK-NEXT: ]61// CHECK-NEXT: Address: 0x20116062 63// CHECK: Name: .bss64// CHECK-NEXT: Type: SHT_NOBITS65// CHECK-NEXT: Flags [66// CHECK-NEXT: SHF_ALLOC67// CHECK-NEXT: SHF_WRITE68// CHECK-NEXT: ]69// CHECK-NEXT: Address: 0x20216470// CHECK-NEXT: Offset:71// CHECK-NEXT: Size: 472 73// CHECK: Symbols [74// CHECK-NEXT: Symbol {75// CHECK-NEXT: Name: (0)76// CHECK-NEXT: Value: 0x077// CHECK-NEXT: Size: 078// CHECK-NEXT: Binding: Local (0x0)79// CHECK-NEXT: Type: None (0x0)80// CHECK-NEXT: Other: 081// CHECK-NEXT: Section: Undefined (0x0)82// CHECK-NEXT: }83// CHECK-NEXT: Symbol {84// CHECK-NEXT: Name: hidden85// CHECK-NEXT: Value: 0x20016086// CHECK-NEXT: Size: 087// CHECK-NEXT: Binding: Local88// CHECK-NEXT: Type: None89// CHECK-NEXT: Other [ (0x2)90// CHECK-NEXT: STV_HIDDEN91// CHECK-NEXT: ]92// CHECK-NEXT: Section: foobar93// CHECK-NEXT: }94// CHECK-NEXT: Symbol {95// CHECK-NEXT: Name: internal96// CHECK-NEXT: Value: 0x20016097// CHECK-NEXT: Size: 098// CHECK-NEXT: Binding: Local99// CHECK-NEXT: Type: None100// CHECK-NEXT: Other [ (0x1)101// CHECK-NEXT: STV_INTERNAL102// CHECK-NEXT: ]103// CHECK-NEXT: Section: foobar104// CHECK-NEXT: }105// CHECK-NEXT: Symbol {106// CHECK-NEXT: Name: _start107// CHECK-NEXT: Value: 0x201160108// CHECK-NEXT: Size: 0109// CHECK-NEXT: Binding: Global (0x1)110// CHECK-NEXT: Type: Function111// CHECK-NEXT: Other: 0112// CHECK-NEXT: Section: .text113// CHECK-NEXT: }114// CHECK-NEXT: Symbol {115// CHECK-NEXT: Name: foo116// CHECK-NEXT: Value: 0x201160117// CHECK-NEXT: Size: 0118// CHECK-NEXT: Binding: Weak (0x2)119// CHECK-NEXT: Type: Object120// CHECK-NEXT: Other: 0121// CHECK-NEXT: Section: .text122// CHECK-NEXT: }123// CHECK-NEXT: Symbol {124// CHECK-NEXT: Name: bar125// CHECK-NEXT: Value: 0x0126// CHECK-NEXT: Size: 0127// CHECK-NEXT: Binding: Weak (0x2)128// CHECK-NEXT: Type: Object (0x1)129// CHECK-NEXT: Other: 0130// CHECK-NEXT: Section: Undefined (0x0)131// CHECK-NEXT: }132// CHECK-NEXT: Symbol {133// CHECK-NEXT: Name: zed134// CHECK-NEXT: Value: 0x200158135// CHECK-NEXT: Size: 0136// CHECK-NEXT: Binding: Global (0x1)137// CHECK-NEXT: Type: None138// CHECK-NEXT: Other: 0139// CHECK-NEXT: Section: foobar140// CHECK-NEXT: }141// CHECK-NEXT: Symbol {142// CHECK-NEXT: Name: zed2143// CHECK-NEXT: Value: 0x20015C144// CHECK-NEXT: Size: 0145// CHECK-NEXT: Binding: Global146// CHECK-NEXT: Type: None147// CHECK-NEXT: Other: 0148// CHECK-NEXT: Section: foobar149// CHECK-NEXT: }150// CHECK-NEXT: Symbol {151// CHECK-NEXT: Name: zed3152// CHECK-NEXT: Value: 0x200160153// CHECK-NEXT: Size: 4154// CHECK-NEXT: Binding: Global155// CHECK-NEXT: Type: None156// CHECK-NEXT: Other: 0157// CHECK-NEXT: Section: foobar158// CHECK-NEXT: }159// CHECK-NEXT: Symbol {160// CHECK-NEXT: Name: abs161// CHECK-NEXT: Value: 0x123162// CHECK-NEXT: Size: 0163// CHECK-NEXT: Binding: Global164// CHECK-NEXT: Type: None165// CHECK-NEXT: Other: 0166// CHECK-NEXT: Section: Absolute167// CHECK-NEXT: }168// CHECK-NEXT: Symbol {169// CHECK-NEXT: Name: common170// CHECK-NEXT: Value: 0x202164171// CHECK-NEXT: Size: 4172// CHECK-NEXT: Binding: Global173// CHECK-NEXT: Type: Object174// CHECK-NEXT: Other: 0175// CHECK-NEXT: Section: .bss176// CHECK-NEXT: }177// CHECK-NEXT: Symbol {178// CHECK-NEXT: Name: protected179// CHECK-NEXT: Value: 0x200160180// CHECK-NEXT: Size: 0181// CHECK-NEXT: Binding: Global182// CHECK-NEXT: Type: None183// CHECK-NEXT: Other [ (0x3)184// CHECK-NEXT: STV_PROTECTED185// CHECK-NEXT: ]186// CHECK-NEXT: Section: foobar187// CHECK-NEXT: }188// CHECK-NEXT: ]189