## Function and data symbols have different addresses so internally we treat
## STT_NOTYPE/STT_FUNC/STT_DATA/etc the same. The DATA command may get a function
## as result. For regular applications, the input addresses are guaranteed to be
## related to data symbols.
# RUN: yaml2obj %s -o %t
# RUN: llvm-symbolizer --obj=%t 'DATA 0x1000' 'DATA 0x2000' 'DATA 0x2002' | FileCheck %s
# CHECK: func
# CHECK-NEXT: 4096 1
# CHECK-NEXT: ??:?
# CHECK-EMPTY:
# CHECK-NEXT: data
# CHECK-NEXT: 8192 2
# CHECK-NEXT: ??:?
# CHECK-EMPTY:
# CHECK-NEXT: notype
# CHECK-NEXT: 8194 3
# CHECK-NEXT: ??:?
# CHECK-EMPTY:
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
Address: 0x1000
Size: 1
- Name: .data
Type: SHT_PROGBITS
Flags: [ SHF_WRITE, SHF_ALLOC ]
Address: 0x2000
Size: 5
Symbols:
- Name: func
Type: STT_FUNC
Section: .text
Binding: STB_GLOBAL
Value: 0x1000
Size: 1
- Name: data
Type: STT_OBJECT
Section: .data
Binding: STB_GLOBAL
Value: 0x2000
Size: 2
- Name: notype
Section: .data
Binding: STB_GLOBAL
Value: 0x2002
Size: 3