## 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-EMPTY:
# CHECK-NEXT:  data
# CHECK-NEXT:  8192 2
# CHECK-EMPTY:
# CHECK-NEXT:  notype
# CHECK-NEXT:  8194 3
# 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
