1## Function and data symbols have different addresses so internally we treat 2## STT_NOTYPE/STT_FUNC/STT_DATA/etc the same. The DATA command may get a function 3## as result. For regular applications, the input addresses are guaranteed to be 4## related to data symbols. 5# RUN: yaml2obj %s -o %t 6# RUN: llvm-symbolizer --obj=%t 'DATA 0x1000' 'DATA 0x2000' 'DATA 0x2002' | FileCheck %s 7 8# CHECK: func 9# CHECK-NEXT: 4096 1 10# CHECK-EMPTY: 11# CHECK-NEXT: data 12# CHECK-NEXT: 8192 2 13# CHECK-EMPTY: 14# CHECK-NEXT: notype 15# CHECK-NEXT: 8194 3 16# CHECK-EMPTY: 17 18--- !ELF 19FileHeader: 20 Class: ELFCLASS64 21 Data: ELFDATA2LSB 22 Type: ET_EXEC 23 Machine: EM_X86_64 24Sections: 25 - Name: .text 26 Type: SHT_PROGBITS 27 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 28 Address: 0x1000 29 Size: 1 30 - Name: .data 31 Type: SHT_PROGBITS 32 Flags: [ SHF_WRITE, SHF_ALLOC ] 33 Address: 0x2000 34 Size: 5 35Symbols: 36 - Name: func 37 Type: STT_FUNC 38 Section: .text 39 Binding: STB_GLOBAL 40 Value: 0x1000 41 Size: 1 42 - Name: data 43 Type: STT_OBJECT 44 Section: .data 45 Binding: STB_GLOBAL 46 Value: 0x2000 47 Size: 2 48 - Name: notype 49 Section: .data 50 Binding: STB_GLOBAL 51 Value: 0x2002 52 Size: 3 53