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