1// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
2
3f1:
4        .cfi_startproc
5	.cfi_lsda 0x3, bar
6        nop
7        .cfi_endproc
8
9f2:
10        .cfi_startproc
11        .cfi_personality 0x00, foo
12	.cfi_lsda 0x3, bar
13        nop
14        .cfi_endproc
15
16f3:
17        .cfi_startproc
18	.cfi_lsda 0x3, bar
19        nop
20        .cfi_endproc
21
22f4:
23        .cfi_startproc
24        .cfi_personality 0x00, foo
25	.cfi_lsda 0x2, bar
26        nop
27        .cfi_endproc
28
29f5:
30        .cfi_startproc
31        .cfi_personality 0x02, foo
32        nop
33        .cfi_endproc
34
35f6:
36        .cfi_startproc
37        .cfi_personality 0x03, foo
38        nop
39        .cfi_endproc
40
41f7:
42        .cfi_startproc
43        .cfi_personality 0x04, foo
44        nop
45        .cfi_endproc
46
47f8:
48        .cfi_startproc
49        .cfi_personality 0x0a, foo
50        nop
51        .cfi_endproc
52
53f9:
54        .cfi_startproc
55        .cfi_personality 0x0b, foo
56        nop
57        .cfi_endproc
58
59f10:
60        .cfi_startproc
61        .cfi_personality 0x0c, foo
62        nop
63        .cfi_endproc
64
65f11:
66        .cfi_startproc
67        .cfi_personality 0x08, foo
68        nop
69        .cfi_endproc
70
71f12:
72        .cfi_startproc
73        .cfi_personality 0x10, foo
74        nop
75        .cfi_endproc
76
77f13:
78        .cfi_startproc
79        .cfi_personality 0x12, foo
80        nop
81        .cfi_endproc
82
83f14:
84        .cfi_startproc
85        .cfi_personality 0x13, foo
86        nop
87        .cfi_endproc
88
89f15:
90        .cfi_startproc
91        .cfi_personality 0x14, foo
92        nop
93        .cfi_endproc
94
95f16:
96        .cfi_startproc
97        .cfi_personality 0x1a, foo
98        nop
99        .cfi_endproc
100
101f17:
102        .cfi_startproc
103        .cfi_personality 0x1b, foo
104        nop
105        .cfi_endproc
106
107f18:
108        .cfi_startproc
109        .cfi_personality 0x1c, foo
110        nop
111        .cfi_endproc
112
113f19:
114        .cfi_startproc
115        .cfi_personality 0x18, foo
116        nop
117        .cfi_endproc
118
119f20:
120        .cfi_startproc
121        .cfi_personality 0x80, foo
122        nop
123        .cfi_endproc
124
125f21:
126        .cfi_startproc
127        .cfi_personality 0x82, foo
128        nop
129        .cfi_endproc
130
131f22:
132        .cfi_startproc
133        .cfi_personality 0x83, foo
134        nop
135        .cfi_endproc
136
137f23:
138        .cfi_startproc
139        .cfi_personality 0x84, foo
140        nop
141        .cfi_endproc
142
143f24:
144        .cfi_startproc
145        .cfi_personality 0x8a, foo
146        nop
147        .cfi_endproc
148
149f25:
150        .cfi_startproc
151        .cfi_personality 0x8b, foo
152        nop
153        .cfi_endproc
154
155f26:
156        .cfi_startproc
157        .cfi_personality 0x8c, foo
158        nop
159        .cfi_endproc
160
161f27:
162        .cfi_startproc
163        .cfi_personality 0x88, foo
164        nop
165        .cfi_endproc
166
167f28:
168        .cfi_startproc
169        .cfi_personality 0x90, foo
170        nop
171        .cfi_endproc
172
173f29:
174        .cfi_startproc
175        .cfi_personality 0x92, foo
176        nop
177        .cfi_endproc
178
179f30:
180        .cfi_startproc
181        .cfi_personality 0x93, foo
182        nop
183        .cfi_endproc
184
185f31:
186        .cfi_startproc
187        .cfi_personality 0x94, foo
188        nop
189        .cfi_endproc
190
191f32:
192        .cfi_startproc
193        .cfi_personality 0x9a, foo
194        nop
195        .cfi_endproc
196
197f33:
198        .cfi_startproc
199        .cfi_personality 0x9b, foo
200        nop
201        .cfi_endproc
202
203f34:
204        .cfi_startproc
205        .cfi_personality 0x9c, foo
206        nop
207        .cfi_endproc
208
209f36:
210        .cfi_startproc
211        .cfi_personality 0x98, foo
212        nop
213        .cfi_endproc
214
215f37:
216        .cfi_startproc simple
217        nop
218        .cfi_endproc
219
220// CHECK:        Section {
221// CHECK:          Index: 4
222// CHECK-NEXT:     Name: .eh_frame
223// CHECK-NEXT:     Type: SHT_PROGBITS
224// CHECK-NEXT:     Flags [
225// CHECK-NEXT:       SHF_ALLOC
226// CHECK-NEXT:     ]
227// CHECK-NEXT:     Address: 0x0
228// CHECK-NEXT:     Offset: 0x68
229// CHECK-NEXT:     Size: 1776
230// CHECK-NEXT:     Link: 0
231// CHECK-NEXT:     Info: 0
232// CHECK-NEXT:     AddressAlignment: 8
233// CHECK-NEXT:     EntrySize: 0
234// CHECK-NEXT:     Relocations [
235// CHECK-NEXT:     ]
236// CHECK-NEXT:     SectionData (
237// CHECK-NEXT:       0000: 14000000 00000000 037A4C52 00017810
238// CHECK-NEXT:       0010: 02031B0C 07089001 14000000 1C000000
239// CHECK-NEXT:       0020: 00000000 01000000 04000000 00000000
240// CHECK-NEXT:       0030: 20000000 00000000 037A504C 52000178
241// CHECK-NEXT:       0040: 100B0000 00000000 00000003 1B0C0708
242// CHECK-NEXT:       0050: 90010000 14000000 28000000 00000000
243// CHECK-NEXT:       0060: 01000000 04000000 00000000 14000000
244// CHECK-NEXT:       0070: 70000000 00000000 01000000 04000000
245// CHECK-NEXT:       0080: 00000000 20000000 00000000 037A504C
246// CHECK-NEXT:       0090: 52000178 100B0000 00000000 00000002
247// CHECK-NEXT:       00A0: 1B0C0708 90010000 10000000 28000000
248// CHECK-NEXT:       00B0: 00000000 01000000 02000000 18000000
249// CHECK-NEXT:       00C0: 00000000 037A5052 00017810 04020000
250// CHECK-NEXT:       00D0: 1B0C0708 90010000 10000000 20000000
251// CHECK-NEXT:       00E0: 00000000 01000000 00000000 18000000
252// CHECK-NEXT:       00F0: 00000000 037A5052 00017810 06030000
253// CHECK-NEXT:       0100: 00001B0C 07089001 10000000 20000000
254// CHECK-NEXT:       0110: 00000000 01000000 00000000 1C000000
255// CHECK-NEXT:       0120: 00000000 037A5052 00017810 0A040000
256// CHECK-NEXT:       0130: 00000000 00001B0C 07089001 10000000
257// CHECK-NEXT:       0140: 24000000 00000000 01000000 00000000
258// CHECK-NEXT:       0150: 18000000 00000000 037A5052 00017810
259// CHECK-NEXT:       0160: 040A0000 1B0C0708 90010000 10000000
260// CHECK-NEXT:       0170: 20000000 00000000 01000000 00000000
261// CHECK-NEXT:       0180: 18000000 00000000 037A5052 00017810
262// CHECK-NEXT:       0190: 060B0000 00001B0C 07089001 10000000
263// CHECK-NEXT:       01A0: 20000000 00000000 01000000 00000000
264// CHECK-NEXT:       01B0: 1C000000 00000000 037A5052 00017810
265// CHECK-NEXT:       01C0: 0A0C0000 00000000 00001B0C 07089001
266// CHECK-NEXT:       01D0: 10000000 24000000 00000000 01000000
267// CHECK-NEXT:       01E0: 00000000 1C000000 00000000 037A5052
268// CHECK-NEXT:       01F0: 00017810 0A080000 00000000 00001B0C
269// CHECK-NEXT:       0200: 07089001 10000000 24000000 00000000
270// CHECK-NEXT:       0210: 01000000 00000000 1C000000 00000000
271// CHECK-NEXT:       0220: 037A5052 00017810 0A100000 00000000
272// CHECK-NEXT:       0230: 00001B0C 07089001 10000000 24000000
273// CHECK-NEXT:       0240: 00000000 01000000 00000000 18000000
274// CHECK-NEXT:       0250: 00000000 037A5052 00017810 04120000
275// CHECK-NEXT:       0260: 1B0C0708 90010000 10000000 20000000
276// CHECK-NEXT:       0270: 00000000 01000000 00000000 18000000
277// CHECK-NEXT:       0280: 00000000 037A5052 00017810 06130000
278// CHECK-NEXT:       0290: 00001B0C 07089001 10000000 20000000
279// CHECK-NEXT:       02A0: 00000000 01000000 00000000 1C000000
280// CHECK-NEXT:       02B0: 00000000 037A5052 00017810 0A140000
281// CHECK-NEXT:       02C0: 00000000 00001B0C 07089001 10000000
282// CHECK-NEXT:       02D0: 24000000 00000000 01000000 00000000
283// CHECK-NEXT:       02E0: 18000000 00000000 037A5052 00017810
284// CHECK-NEXT:       02F0: 041A0000 1B0C0708 90010000 10000000
285// CHECK-NEXT:       0300: 20000000 00000000 01000000 00000000
286// CHECK-NEXT:       0310: 18000000 00000000 037A5052 00017810
287// CHECK-NEXT:       0320: 061B0000 00001B0C 07089001 10000000
288// CHECK-NEXT:       0330: 20000000 00000000 01000000 00000000
289// CHECK-NEXT:       0340: 1C000000 00000000 037A5052 00017810
290// CHECK-NEXT:       0350: 0A1C0000 00000000 00001B0C 07089001
291// CHECK-NEXT:       0360: 10000000 24000000 00000000 01000000
292// CHECK-NEXT:       0370: 00000000 1C000000 00000000 037A5052
293// CHECK-NEXT:       0380: 00017810 0A180000 00000000 00001B0C
294// CHECK-NEXT:       0390: 07089001 10000000 24000000 00000000
295// CHECK-NEXT:       03A0: 01000000 00000000 1C000000 00000000
296// CHECK-NEXT:       03B0: 037A5052 00017810 0A800000 00000000
297// CHECK-NEXT:       03C0: 00001B0C 07089001 10000000 24000000
298// CHECK-NEXT:       03D0: 00000000 01000000 00000000 18000000
299// CHECK-NEXT:       03E0: 00000000 037A5052 00017810 04820000
300// CHECK-NEXT:       03F0: 1B0C0708 90010000 10000000 20000000
301// CHECK-NEXT:       0400: 00000000 01000000 00000000 18000000
302// CHECK-NEXT:       0410: 00000000 037A5052 00017810 06830000
303// CHECK-NEXT:       0420: 00001B0C 07089001 10000000 20000000
304// CHECK-NEXT:       0430: 00000000 01000000 00000000 1C000000
305// CHECK-NEXT:       0440: 00000000 037A5052 00017810 0A840000
306// CHECK-NEXT:       0450: 00000000 00001B0C 07089001 10000000
307// CHECK-NEXT:       0460: 24000000 00000000 01000000 00000000
308// CHECK-NEXT:       0470: 18000000 00000000 037A5052 00017810
309// CHECK-NEXT:       0480: 048A0000 1B0C0708 90010000 10000000
310// CHECK-NEXT:       0490: 20000000 00000000 01000000 00000000
311// CHECK-NEXT:       04A0: 18000000 00000000 037A5052 00017810
312// CHECK-NEXT:       04B0: 068B0000 00001B0C 07089001 10000000
313// CHECK-NEXT:       04C0: 20000000 00000000 01000000 00000000
314// CHECK-NEXT:       04D0: 1C000000 00000000 037A5052 00017810
315// CHECK-NEXT:       04E0: 0A8C0000 00000000 00001B0C 07089001
316// CHECK-NEXT:       04F0: 10000000 24000000 00000000 01000000
317// CHECK-NEXT:       0500: 00000000 1C000000 00000000 037A5052
318// CHECK-NEXT:       0510: 00017810 0A880000 00000000 00001B0C
319// CHECK-NEXT:       0520: 07089001 10000000 24000000 00000000
320// CHECK-NEXT:       0530: 01000000 00000000 1C000000 00000000
321// CHECK-NEXT:       0540: 037A5052 00017810 0A900000 00000000
322// CHECK-NEXT:       0550: 00001B0C 07089001 10000000 24000000
323// CHECK-NEXT:       0560: 00000000 01000000 00000000 18000000
324// CHECK-NEXT:       0570: 00000000 037A5052 00017810 04920000
325// CHECK-NEXT:       0580: 1B0C0708 90010000 10000000 20000000
326// CHECK-NEXT:       0590: 00000000 01000000 00000000 18000000
327// CHECK-NEXT:       05A0: 00000000 037A5052 00017810 06930000
328// CHECK-NEXT:       05B0: 00001B0C 07089001 10000000 20000000
329// CHECK-NEXT:       05C0: 00000000 01000000 00000000 1C000000
330// CHECK-NEXT:       05D0: 00000000 037A5052 00017810 0A940000
331// CHECK-NEXT:       05E0: 00000000 00001B0C 07089001 10000000
332// CHECK-NEXT:       05F0: 24000000 00000000 01000000 00000000
333// CHECK-NEXT:       0600: 18000000 00000000 037A5052 00017810
334// CHECK-NEXT:       0610: 049A0000 1B0C0708 90010000 10000000
335// CHECK-NEXT:       0620: 20000000 00000000 01000000 00000000
336// CHECK-NEXT:       0630: 18000000 00000000 037A5052 00017810
337// CHECK-NEXT:       0640: 069B0000 00001B0C 07089001 10000000
338// CHECK-NEXT:       0650: 20000000 00000000 01000000 00000000
339// CHECK-NEXT:       0660: 1C000000 00000000 037A5052 00017810
340// CHECK-NEXT:       0670: 0A9C0000 00000000 00001B0C 07089001
341// CHECK-NEXT:       0680: 10000000 24000000 00000000 01000000
342// CHECK-NEXT:       0690: 00000000 1C000000 00000000 037A5052
343// CHECK-NEXT:       06A0: 00017810 0A980000 00000000 00001B0C
344// CHECK-NEXT:       06B0: 07089001 10000000 24000000 00000000
345// CHECK-NEXT:       06C0: 01000000 00000000 10000000 00000000
346// CHECK-NEXT:       06D0: 037A5200 01781001 1B000000 10000000
347// CHECK-NEXT:       06E0: 18000000 00000000 01000000 00000000
348// CHECK-NEXT:     )
349// CHECK-NEXT:   }
350
351// CHECK:        Section {
352// CHECK:          Index: 5
353// CHECK-NEXT:     Name: .rela.eh_frame
354// CHECK-NEXT:     Type: SHT_RELA
355// CHECK-NEXT:     Flags [
356// CHECK-NEXT:     ]
357// CHECK-NEXT:     Address: 0x0
358// CHECK-NEXT:     Offset:
359// CHECK-NEXT:     Size: 1752
360// CHECK-NEXT:     Link: 7
361// CHECK-NEXT:     Info: 4
362// CHECK-NEXT:     AddressAlignment: 8
363// CHECK-NEXT:     EntrySize: 24
364// CHECK-NEXT:     Relocations [
365// CHECK-NEXT:       0x20  R_X86_64_PC32 .text 0x0
366// CHECK-NEXT:       0x29  R_X86_64_32   bar   0x0
367// CHECK-NEXT:       0x43  R_X86_64_64   foo   0x0
368// CHECK-NEXT:       0x5C  R_X86_64_PC32 .text 0x1
369// CHECK-NEXT:       0x65  R_X86_64_32   bar   0x0
370// CHECK-NEXT:       0x74  R_X86_64_PC32 .text 0x2
371// CHECK-NEXT:       0x7D  R_X86_64_32   bar   0x0
372// CHECK-NEXT:       0x97  R_X86_64_64   foo   0x0
373// CHECK-NEXT:       0xB0  R_X86_64_PC32 .text 0x3
374// CHECK-NEXT:       0xB9  R_X86_64_16   bar   0x0
375// CHECK-NEXT:       0xCE  R_X86_64_16   foo   0x0
376// CHECK-NEXT:       0xE0  R_X86_64_PC32 .text 0x4
377// CHECK-NEXT:       0xFE  R_X86_64_32   foo   0x0
378// CHECK-NEXT:       0x110 R_X86_64_PC32 .text 0x5
379// CHECK-NEXT:       0x12E R_X86_64_64   foo   0x0
380// CHECK-NEXT:       0x144 R_X86_64_PC32 .text 0x6
381// CHECK-NEXT:       0x162 R_X86_64_16   foo   0x0
382// CHECK-NEXT:       0x174 R_X86_64_PC32 .text 0x7
383// CHECK-NEXT:       0x192 R_X86_64_32   foo   0x0
384// CHECK-NEXT:       0x1A4 R_X86_64_PC32 .text 0x8
385// CHECK-NEXT:       0x1C2 R_X86_64_64   foo   0x0
386// CHECK-NEXT:       0x1D8 R_X86_64_PC32 .text 0x9
387// CHECK-NEXT:       0x1F6 R_X86_64_64   foo   0x0
388// CHECK-NEXT:       0x20C R_X86_64_PC32 .text 0xA
389// CHECK-NEXT:       0x22A R_X86_64_PC64 foo   0x0
390// CHECK-NEXT:       0x240 R_X86_64_PC32 .text 0xB
391// CHECK-NEXT:       0x25E R_X86_64_PC16 foo   0x0
392// CHECK-NEXT:       0x270 R_X86_64_PC32 .text 0xC
393// CHECK-NEXT:       0x28E R_X86_64_PC32 foo   0x0
394// CHECK-NEXT:       0x2A0 R_X86_64_PC32 .text 0xD
395// CHECK-NEXT:       0x2BE R_X86_64_PC64 foo   0x0
396// CHECK-NEXT:       0x2D4 R_X86_64_PC32 .text 0xE
397// CHECK-NEXT:       0x2F2 R_X86_64_PC16 foo   0x0
398// CHECK-NEXT:       0x304 R_X86_64_PC32 .text 0xF
399// CHECK-NEXT:       0x322 R_X86_64_PC32 foo   0x0
400// CHECK-NEXT:       0x334 R_X86_64_PC32 .text 0x10
401// CHECK-NEXT:       0x352 R_X86_64_PC64 foo   0x0
402// CHECK-NEXT:       0x368 R_X86_64_PC32 .text 0x11
403// CHECK-NEXT:       0x386 R_X86_64_PC64 foo   0x0
404// CHECK-NEXT:       0x39C R_X86_64_PC32 .text 0x12
405// CHECK-NEXT:       0x3BA R_X86_64_64   foo   0x0
406// CHECK-NEXT:       0x3D0 R_X86_64_PC32 .text 0x13
407// CHECK-NEXT:       0x3EE R_X86_64_16   foo   0x0
408// CHECK-NEXT:       0x400 R_X86_64_PC32 .text 0x14
409// CHECK-NEXT:       0x41E R_X86_64_32   foo   0x0
410// CHECK-NEXT:       0x430 R_X86_64_PC32 .text 0x15
411// CHECK-NEXT:       0x44E R_X86_64_64   foo   0x0
412// CHECK-NEXT:       0x464 R_X86_64_PC32 .text 0x16
413// CHECK-NEXT:       0x482 R_X86_64_16   foo   0x0
414// CHECK-NEXT:       0x494 R_X86_64_PC32 .text 0x17
415// CHECK-NEXT:       0x4B2 R_X86_64_32   foo   0x0
416// CHECK-NEXT:       0x4C4 R_X86_64_PC32 .text 0x18
417// CHECK-NEXT:       0x4E2 R_X86_64_64   foo   0x0
418// CHECK-NEXT:       0x4F8 R_X86_64_PC32 .text 0x19
419// CHECK-NEXT:       0x516 R_X86_64_64   foo   0x0
420// CHECK-NEXT:       0x52C R_X86_64_PC32 .text 0x1A
421// CHECK-NEXT:       0x54A R_X86_64_PC64 foo   0x0
422// CHECK-NEXT:       0x560 R_X86_64_PC32 .text 0x1B
423// CHECK-NEXT:       0x57E R_X86_64_PC16 foo   0x0
424// CHECK-NEXT:       0x590 R_X86_64_PC32 .text 0x1C
425// CHECK-NEXT:       0x5AE R_X86_64_PC32 foo   0x0
426// CHECK-NEXT:       0x5C0 R_X86_64_PC32 .text 0x1D
427// CHECK-NEXT:       0x5DE R_X86_64_PC64 foo   0x0
428// CHECK-NEXT:       0x5F4 R_X86_64_PC32 .text 0x1E
429// CHECK-NEXT:       0x612 R_X86_64_PC16 foo   0x0
430// CHECK-NEXT:       0x624 R_X86_64_PC32 .text 0x1F
431// CHECK-NEXT:       0x642 R_X86_64_PC32 foo   0x0
432// CHECK-NEXT:       0x654 R_X86_64_PC32 .text 0x20
433// CHECK-NEXT:       0x672 R_X86_64_PC64 foo   0x0
434// CHECK-NEXT:       0x688 R_X86_64_PC32 .text 0x21
435// CHECK-NEXT:       0x6A6 R_X86_64_PC64 foo   0x0
436// CHECK-NEXT:       0x6BC R_X86_64_PC32 .text 0x22
437// CHECK-NEXT:       0x6E4 R_X86_64_PC32 .text 0x23
438// CHECK-NEXT:     ]
439// CHECK:        }
440