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-NEXT: ??:? 11# CHECK-EMPTY: 12# CHECK-NEXT: data 13# CHECK-NEXT: 8192 2 14# CHECK-NEXT: ??:? 15# CHECK-EMPTY: 16# CHECK-NEXT: notype 17# CHECK-NEXT: 8194 3 18# CHECK-NEXT: ??:? 19# CHECK-EMPTY: 20 21--- !ELF 22FileHeader: 23 Class: ELFCLASS64 24 Data: ELFDATA2LSB 25 Type: ET_EXEC 26 Machine: EM_X86_64 27Sections: 28 - Name: .text 29 Type: SHT_PROGBITS 30 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 31 Address: 0x1000 32 Size: 1 33 - Name: .data 34 Type: SHT_PROGBITS 35 Flags: [ SHF_WRITE, SHF_ALLOC ] 36 Address: 0x2000 37 Size: 5 38Symbols: 39 - Name: func 40 Type: STT_FUNC 41 Section: .text 42 Binding: STB_GLOBAL 43 Value: 0x1000 44 Size: 1 45 - Name: data 46 Type: STT_OBJECT 47 Section: .data 48 Binding: STB_GLOBAL 49 Value: 0x2000 50 Size: 2 51 - Name: notype 52 Section: .data 53 Binding: STB_GLOBAL 54 Value: 0x2002 55 Size: 3 56