# RUN: llvm-objcopy %p/Inputs/dynsym.so %t # RUN: llvm-readobj --dyn-symbols %t | FileCheck %s # RUN: llvm-readobj --sections %t | FileCheck --check-prefix=LINK %s #LINK: Name: .dynsym #LINK-NEXT: Type: SHT_DYNSYM #LINK-NEXT: Flags [ #LINK-NEXT: SHF_ALLOC #LINK-NEXT: ] #LINK-NEXT: Address: #LINK-NEXT: Offset: #LINK-NEXT: Size: #LINK-NEXT: Link: 3 #LINK: Index: 3 #LINK-NEXT: Name: .dynstr #CHECK: DynamicSymbols [ #CHECK-NEXT: Symbol { #CHECK-NEXT: Name: (0) #CHECK-NEXT: Value: 0x0 #CHECK-NEXT: Size: 0 #CHECK-NEXT: Binding: Local #CHECK-NEXT: Type: None (0x0) #CHECK-NEXT: Other: 0 #CHECK-NEXT: Section: Undefined (0x0) #CHECK-NEXT: } #CHECK-NEXT: Symbol { #CHECK-NEXT: Name: bang (1) #CHECK-NEXT: Value: 0x4000 #CHECK-NEXT: Size: 8 #CHECK-NEXT: Binding: Global (0x1) #CHECK-NEXT: Type: Object (0x1) #CHECK-NEXT: Other: 0 #CHECK-NEXT: Section: .bss (0x7) #CHECK-NEXT: } #CHECK-NEXT: Symbol { #CHECK-NEXT: Name: bar (6) #CHECK-NEXT: Value: 0x1001 #CHECK-NEXT: Size: 0 #CHECK-NEXT: Binding: Global (0x1) #CHECK-NEXT: Type: Function (0x2) #CHECK-NEXT: Other: 0 #CHECK-NEXT: Section: .text (0x4) #CHECK-NEXT: } #CHECK-NEXT: Symbol { #CHECK-NEXT: Name: baz (10) #CHECK-NEXT: Value: 0x2000 #CHECK-NEXT: Size: 0 #CHECK-NEXT: Binding: Global (0x1) #CHECK-NEXT: Type: Object (0x1) #CHECK-NEXT: Other: 0 #CHECK-NEXT: Section: .data (0x5) #CHECK-NEXT: } #CHECK-NEXT: Symbol { #CHECK-NEXT: Name: foo (14) #CHECK-NEXT: Value: 0x1000 #CHECK-NEXT: Size: 0 #CHECK-NEXT: Binding: Global (0x1) #CHECK-NEXT: Type: Function (0x2) #CHECK-NEXT: Other: 0 #CHECK-NEXT: Section: .text (0x4) #CHECK-NEXT: } #CHECK-NEXT:]