Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / lld / test / MachO / compact-unwind-sym-relocs.s
blob766efc5645488fc916c5f6b43bdb279126218ad6
1 # REQUIRES: x86
3 ## Test that we correctly handle symbol relocations in the compact unwind
4 ## section.
6 ## llvm-mc does not emit such relocations for compact unwind, but `ld -r` does.
7 ## As such, these yaml files were from an object file produced with 'ld -r',
8 ## specifically:
9 ##
10 ## // foo.s
11 ## .globl _foo
12 ## .text
13 ## .p2align 2
14 ## _foo:
15 ## .cfi_startproc
16 ## .cfi_personality 155, ___gxx_personality_v0
17 ## .cfi_lsda 16, _exception0
18 ## .cfi_def_cfa_offset 16
19 ## ret
20 ## .cfi_endproc
22 ## .section __TEXT,__gcc_except_tab
23 ## _exception0:
24 ## .space 0
26 ## llvm-mc -filetype=obj -triple=x86_64-apple-macos10.15 -o foo1.o foo.s
27 ## ld -r -o foo.o foo1.o
29 # RUN: rm -rf %t; mkdir -p %t
30 # RUN: yaml2obj %s -o %t/foo.o
31 # RUN: %lld -dylib -lc++ %t/foo.o -o %t/foo
32 # RUN: llvm-objdump --macho --syms --unwind-info %t/foo | FileCheck %s
34 # CHECK: SYMBOL TABLE:
35 # CHECK-DAG: [[#%x,FOO:]] g F __TEXT,__text _foo
36 # CHECK-DAG: [[#%x,EXCEPT0:]] l O __TEXT,__gcc_except_tab _exception0
38 # CHECK: LSDA descriptors:
39 # CHECK-NEXT: [0]: function offset=0x[[#%.8x,FOO]], LSDA offset=0x[[#%.8x,EXCEPT0]]
41 --- !mach-o
42 FileHeader:
43 magic: 0xFEEDFACF
44 cputype: 0x1000007
45 cpusubtype: 0x3
46 filetype: 0x1
47 ncmds: 2
48 sizeofcmds: 464
49 flags: 0x0
50 reserved: 0x0
51 LoadCommands:
52 - cmd: LC_SEGMENT_64
53 cmdsize: 392
54 segname: ''
55 vmaddr: 0
56 vmsize: 112
57 fileoff: 528
58 filesize: 112
59 maxprot: 7
60 initprot: 7
61 nsects: 4
62 flags: 0
63 Sections:
64 - sectname: __text
65 segname: __TEXT
66 addr: 0x0
67 size: 1
68 offset: 0x210
69 align: 2
70 reloff: 0x0
71 nreloc: 0
72 flags: 0x80000400
73 reserved1: 0x0
74 reserved2: 0x0
75 reserved3: 0x0
76 content: C3
77 - sectname: __gcc_except_tab
78 segname: __TEXT
79 addr: 0x1
80 size: 0
81 offset: 0x211
82 align: 0
83 reloff: 0x0
84 nreloc: 0
85 flags: 0x0
86 reserved1: 0x0
87 reserved2: 0x0
88 reserved3: 0x0
89 content: ''
90 - sectname: __eh_frame
91 segname: __TEXT
92 addr: 0x8
93 size: 72
94 offset: 0x218
95 align: 3
96 reloff: 0x280
97 nreloc: 7
98 flags: 0x0
99 reserved1: 0x0
100 reserved2: 0x0
101 reserved3: 0x0
102 content: 1C00000000000000017A504C5200017810079B0400000010100C0708900100002400000004000000F8FFFFFFFFFFFFFF010000000000000008E7FFFFFFFFFFFFFF0E100000000000
103 relocations:
104 - address: 0x13
105 symbolnum: 4
106 pcrel: true
107 length: 2
108 extern: true
109 type: 4
110 scattered: false
111 value: 0
112 - address: 0x24
113 symbolnum: 1
114 pcrel: false
115 length: 2
116 extern: true
117 type: 5
118 scattered: false
119 value: 0
120 - address: 0x24
121 symbolnum: 2
122 pcrel: false
123 length: 2
124 extern: true
125 type: 0
126 scattered: false
127 value: 0
128 - address: 0x28
129 symbolnum: 2
130 pcrel: false
131 length: 3
132 extern: true
133 type: 5
134 scattered: false
135 value: 0
136 - address: 0x28
137 symbolnum: 3
138 pcrel: false
139 length: 3
140 extern: true
141 type: 0
142 scattered: false
143 value: 0
144 - address: 0x39
145 symbolnum: 2
146 pcrel: false
147 length: 3
148 extern: true
149 type: 5
150 scattered: false
151 value: 0
152 - address: 0x39
153 symbolnum: 0
154 pcrel: false
155 length: 3
156 extern: true
157 type: 0
158 scattered: false
159 value: 0
160 - sectname: __compact_unwind
161 segname: __LD
162 addr: 0x50
163 size: 32
164 offset: 0x260
165 align: 3
166 reloff: 0x2B8
167 nreloc: 4
168 flags: 0x2000000
169 reserved1: 0x0
170 reserved2: 0x0
171 reserved3: 0x0
172 content: '0000000000000000010000000000024200000000000000000000000000000000'
173 relocations:
174 - address: 0x0
175 symbolnum: 3
176 pcrel: false
177 length: 3
178 extern: true
179 type: 0
180 scattered: false
181 value: 0
182 - address: 0x18
183 symbolnum: 0
184 pcrel: false
185 length: 3
186 extern: true
187 type: 0
188 scattered: false
189 value: 0
190 - address: 0x10
191 symbolnum: 4
192 pcrel: false
193 length: 3
194 extern: true
195 type: 0
196 scattered: false
197 value: 0
198 - address: 0x18
199 symbolnum: 0
200 pcrel: false
201 length: 3
202 extern: true
203 type: 0
204 scattered: false
205 value: 0
206 - cmd: LC_SYMTAB
207 cmdsize: 24
208 symoff: 728
209 nsyms: 5
210 stroff: 808
211 strsize: 57
212 LinkEditData:
213 NameList:
214 - n_strx: 29
215 n_type: 0xE
216 n_sect: 2
217 n_desc: 32
218 n_value: 1
219 - n_strx: 41
220 n_type: 0xE
221 n_sect: 3
222 n_desc: 0
223 n_value: 8
224 - n_strx: 51
225 n_type: 0xE
226 n_sect: 3
227 n_desc: 0
228 n_value: 40
229 - n_strx: 2
230 n_type: 0xF
231 n_sect: 1
232 n_desc: 32
233 n_value: 0
234 - n_strx: 7
235 n_type: 0x1
236 n_sect: 0
237 n_desc: 0
238 n_value: 0
239 StringTable:
240 - ' '
241 - _foo
242 - ___gxx_personality_v0
243 - _exception0
244 - EH_Frame1
245 - func.eh