1# RUN: yaml2obj -format=elf %s | llvm-readobj -symbols - | \
2# RUN:   FileCheck --check-prefix OBJ %s
3# RUN: yaml2obj -format=elf %s | obj2yaml - | FileCheck --check-prefix YAML %s
4
5# OBJ:      Symbol {
6# OBJ:        Name: default1 (36)
7# OBJ-NEXT:   Value: 0x0
8# OBJ-NEXT:   Size: 4
9# OBJ-NEXT:   Binding: Global (0x1)
10# OBJ-NEXT:   Type: Object (0x1)
11# OBJ-NEXT:   Other: 0
12# OBJ-NEXT:   Section: .data (0x1)
13# OBJ-NEXT: }
14# OBJ-NEXT: Symbol {
15# OBJ-NEXT:   Name: default2 (27)
16# OBJ-NEXT:   Value: 0x4
17# OBJ-NEXT:   Size: 4
18# OBJ-NEXT:   Binding: Global (0x1)
19# OBJ-NEXT:   Type: Object (0x1)
20# OBJ-NEXT:   Other: 0
21# OBJ-NEXT:   Section: .data (0x1)
22# OBJ-NEXT: }
23# OBJ-NEXT: Symbol {
24# OBJ-NEXT:   Name: internal (8)
25# OBJ-NEXT:   Value: 0x8
26# OBJ-NEXT:   Size: 4
27# OBJ-NEXT:   Binding: Global (0x1)
28# OBJ-NEXT:   Type: Object (0x1)
29# OBJ-NEXT:   Other: 1
30# OBJ-NEXT:   Section: .data (0x1)
31# OBJ-NEXT: }
32# OBJ-NEXT: Symbol {
33# OBJ-NEXT:   Name: hidden (1)
34# OBJ-NEXT:   Value: 0xC
35# OBJ-NEXT:   Size: 4
36# OBJ-NEXT:   Binding: Global (0x1)
37# OBJ-NEXT:   Type: Object (0x1)
38# OBJ-NEXT:   Other: 2
39# OBJ-NEXT:   Section: .data (0x1)
40# OBJ-NEXT: }
41# OBJ-NEXT: Symbol {
42# OBJ-NEXT:   Name: protected (17)
43# OBJ-NEXT:   Value: 0x10
44# OBJ-NEXT:   Size: 4
45# OBJ-NEXT:   Binding: Global (0x1)
46# OBJ-NEXT:   Type: Object (0x1)
47# OBJ-NEXT:   Other: 3
48# OBJ-NEXT:   Section: .data (0x1)
49# OBJ-NEXT: }
50
51# YAML:      Symbols:
52# YAML-NEXT:   Global:
53# YAML-NEXT:     - Name:            default1
54# YAML-NEXT:       Type:            STT_OBJECT
55# YAML-NEXT:       Section:         .data
56# YAML-NEXT:       Size:            0x0000000000000004
57# YAML-NEXT:     - Name:            default2
58# YAML-NEXT:       Type:            STT_OBJECT
59# YAML-NEXT:       Section:         .data
60# YAML-NEXT:       Value:           0x0000000000000004
61# YAML-NEXT:       Size:            0x0000000000000004
62# YAML-NEXT:     - Name:            internal
63# YAML-NEXT:       Type:            STT_OBJECT
64# YAML-NEXT:       Section:         .data
65# YAML-NEXT:       Value:           0x0000000000000008
66# YAML-NEXT:       Size:            0x0000000000000004
67# YAML-NEXT:       Visibility:      STV_INTERNAL
68# YAML-NEXT:     - Name:            hidden
69# YAML-NEXT:       Type:            STT_OBJECT
70# YAML-NEXT:       Section:         .data
71# YAML-NEXT:       Value:           0x000000000000000C
72# YAML-NEXT:       Size:            0x0000000000000004
73# YAML-NEXT:       Visibility:      STV_HIDDEN
74# YAML-NEXT:     - Name:            protected
75# YAML-NEXT:       Type:            STT_OBJECT
76# YAML-NEXT:       Section:         .data
77# YAML-NEXT:       Value:           0x0000000000000010
78# YAML-NEXT:       Size:            0x0000000000000004
79# YAML-NEXT:       Visibility:      STV_PROTECTED
80
81---
82FileHeader:
83  Class:           ELFCLASS32
84  Data:            ELFDATA2LSB
85  Type:            ET_REL
86  Machine:         EM_MIPS
87  Flags:           [ EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ]
88
89Sections:
90  - Name:            .data
91    Type:            SHT_PROGBITS
92    Flags:           [ SHF_ALLOC, SHF_WRITE ]
93    AddressAlign:    0x04
94    Size:            0x14
95
96Symbols:
97  Global:
98    - Name:            default1
99      Type:            STT_OBJECT
100      Visibility:      STV_DEFAULT
101      Section:         .data
102      Value:           0x00
103      Size:            0x04
104    - Name:            default2
105      Type:            STT_OBJECT
106      Section:         .data
107      Value:           0x04
108      Size:            0x04
109    - Name:            internal
110      Type:            STT_OBJECT
111      Visibility:      STV_INTERNAL
112      Section:         .data
113      Value:           0x08
114      Size:            0x04
115    - Name:            hidden
116      Type:            STT_OBJECT
117      Visibility:      STV_HIDDEN
118      Section:         .data
119      Value:           0x0C
120      Size:            0x04
121    - Name:            protected
122      Type:            STT_OBJECT
123      Visibility:      STV_PROTECTED
124      Section:         .data
125      Value:           0x10
126      Size:            0x04
127