• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: yaml2obj %s > %t
2# RUN: llvm-objcopy %t %t2
3# RUN: llvm-readobj -symbols %t2 | FileCheck %s
4
5!ELF
6FileHeader:
7  Class:           ELFCLASS64
8  Data:            ELFDATA2LSB
9  Type:            ET_EXEC
10  Machine:         EM_X86_64
11Sections:
12  - Name:            .text
13    Type:            SHT_PROGBITS
14    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
15    Address:         0x1000
16    AddressAlign:    0x0000000000000010
17    Content:         "0000000000000000"
18  - Name:            .data
19    Type:            SHT_PROGBITS
20    Flags:           [ SHF_ALLOC ]
21    Address:         0x2000
22    AddressAlign:    0x0000000000000010
23    Content:         "0000000000000000"
24Symbols:
25  Global:
26    - Name:     _start
27      Type:     STT_FUNC
28      Section:  .text
29      Value:    0x1000
30      Size:     4
31    - Name:     bam
32      Type:     STT_FUNC
33      Section:  .text
34      Value:    0x1001
35      Size:     4
36      Visibility: STV_HIDDEN
37    - Name:     foo
38      Type:     STT_FUNC
39      Section:  .text
40      Value:    0x1004
41    - Name:     faz
42      Type:     STT_OBJECT
43      Section:  .data
44      Value:    0x2002
45      Size:     2
46      Visibility: STV_INTERNAL
47    - Name:     bar
48      Type:     STT_OBJECT
49      Section:  .data
50      Value:    0x2000
51      Size:     4
52    - Name:     baz
53      Type:     STT_OBJECT
54      Section:  .data
55      Value:    0x2004
56      Size:     4
57
58#CHECK: Symbols [
59#CHECK-NEXT:  Symbol {
60#CHECK-NEXT:    Name:
61#CHECK-NEXT:    Value: 0x0
62#CHECK-NEXT:    Size: 0
63#CHECK-NEXT:    Binding: Local
64#CHECK-NEXT:    Type: None
65#CHECK-NEXT:    Other: 0
66#CHECK-NEXT:    Section: Undefined
67#CHECK-NEXT:  }
68#CHECK-NEXT:  Symbol {
69#CHECK-NEXT:    Name: _start
70#CHECK-NEXT:    Value: 0x1000
71#CHECK-NEXT:    Size: 4
72#CHECK-NEXT:    Binding: Global
73#CHECK-NEXT:    Type: Function
74#CHECK-NEXT:    Other: 0
75#CHECK-NEXT:    Section: .text
76#CHECK-NEXT:  }
77#CHECK-NEXT:  Symbol {
78#CHECK-NEXT:    Name: bam
79#CHECK-NEXT:    Value: 0x1001
80#CHECK-NEXT:    Size: 4
81#CHECK-NEXT:    Binding: Global
82#CHECK-NEXT:    Type: Function
83#CHECK-NEXT:    Other [
84#CHECK-NEXT:      STV_HIDDEN
85#CHECK-NEXT:    ]
86#CHECK-NEXT:    Section: .text
87#CHECK-NEXT:  }
88#CHECK-NEXT:  Symbol {
89#CHECK-NEXT:    Name: foo
90#CHECK-NEXT:    Value: 0x1004
91#CHECK-NEXT:    Size: 0
92#CHECK-NEXT:    Binding: Global
93#CHECK-NEXT:    Type: Function
94#CHECK-NEXT:    Other: 0
95#CHECK-NEXT:    Section: .text
96#CHECK-NEXT:  }
97#CHECK-NEXT:  Symbol {
98#CHECK-NEXT:    Name: faz
99#CHECK-NEXT:    Value: 0x2002
100#CHECK-NEXT:    Size: 2
101#CHECK-NEXT:    Binding: Global
102#CHECK-NEXT:    Type: Object
103#CHECK-NEXT:    Other [
104#CHECK-NEXT:      STV_INTERNAL
105#CHECK-NEXT:    ]
106#CHECK-NEXT:    Section: .data
107#CHECK-NEXT:  }
108#CHECK-NEXT:  Symbol {
109#CHECK-NEXT:    Name: bar
110#CHECK-NEXT:    Value: 0x2000
111#CHECK-NEXT:    Size: 4
112#CHECK-NEXT:    Binding: Global
113#CHECK-NEXT:    Type: Object
114#CHECK-NEXT:    Other: 0
115#CHECK-NEXT:    Section: .data
116#CHECK-NEXT:  }
117#CHECK-NEXT:  Symbol {
118#CHECK-NEXT:    Name: baz
119#CHECK-NEXT:    Value: 0x2004
120#CHECK-NEXT:    Size: 4
121#CHECK-NEXT:    Binding: Global
122#CHECK-NEXT:    Type: Object
123#CHECK-NEXT:    Other: 0
124#CHECK-NEXT:    Section: .data
125#CHECK-NEXT:  }
126#CHECK-NEXT:]
127