[llvm-objdump] - Remove one overload of reportError. NFCI.
[llvm-complete.git] / test / MC / ELF / ARM / clang-section.s
blob12cb57ffcc9329c81810b302989e095a3d54d521
1 // RUN: llvm-mc -filetype=obj -triple arm-eabi %s -o - | llvm-readobj -S --symbols | FileCheck %s
2 // Test that global variables and functions are assigned correct section.
3 .text
4 .syntax unified
5 .eabi_attribute 67, "2.09" @ Tag_conformance
6 .eabi_attribute 6, 1 @ Tag_CPU_arch
7 .eabi_attribute 8, 1 @ Tag_ARM_ISA_use
8 .eabi_attribute 17, 1 @ Tag_ABI_PCS_GOT_use
9 .eabi_attribute 20, 1 @ Tag_ABI_FP_denormal
10 .eabi_attribute 21, 1 @ Tag_ABI_FP_exceptions
11 .eabi_attribute 23, 3 @ Tag_ABI_FP_number_model
12 .eabi_attribute 34, 1 @ Tag_CPU_unaligned_access
13 .eabi_attribute 24, 1 @ Tag_ABI_align_needed
14 .eabi_attribute 25, 1 @ Tag_ABI_align_preserved
15 .eabi_attribute 38, 1 @ Tag_ABI_FP_16bit_format
16 .eabi_attribute 18, 4 @ Tag_ABI_PCS_wchar_t
17 .eabi_attribute 26, 2 @ Tag_ABI_enum_size
18 .eabi_attribute 14, 0 @ Tag_ABI_PCS_R9_use
19 .section my_text.1,"ax",%progbits
20 .globl foo
21 .p2align 2
22 .type foo,%function
23 .code 32 @ @foo
24 foo:
25 .fnstart
26 @ %bb.0: @ %entry
27 ldr r0, .LCPI0_0
28 ldr r0, [r0]
29 mov pc, lr
30 .p2align 2
31 @ %bb.1:
32 .LCPI0_0:
33 .long b
34 .Lfunc_end0:
35 .size foo, .Lfunc_end0-foo
36 .cantunwind
37 .fnend
39 .section my_text.2,"ax",%progbits
40 .globl goo
41 .p2align 2
42 .type goo,%function
43 .code 32 @ @goo
44 goo:
45 .fnstart
46 @ %bb.0: @ %entry
47 .save {r11, lr}
48 push {r11, lr}
49 ldr r0, .LCPI1_0
50 ldr r1, .LCPI1_1
51 bl zoo
52 pop {r11, lr}
53 mov pc, lr
54 .p2align 2
55 @ %bb.1:
56 .LCPI1_0:
57 .long _ZL1g
58 .LCPI1_1:
59 .long _ZZ3gooE7lstat_h
60 .Lfunc_end1:
61 .size goo, .Lfunc_end1-goo
62 .cantunwind
63 .fnend
65 .text
66 .globl hoo
67 .p2align 2
68 .type hoo,%function
69 .code 32 @ @hoo
70 hoo:
71 .fnstart
72 @ %bb.0: @ %entry
73 ldr r0, .LCPI2_0
74 ldr r0, [r0]
75 mov pc, lr
76 .p2align 2
77 @ %bb.1:
78 .LCPI2_0:
79 .long b
80 .Lfunc_end2:
81 .size hoo, .Lfunc_end2-hoo
82 .cantunwind
83 .fnend
85 .type a,%object @ @a
86 .section my_bss.1,"aw",%nobits
87 .globl a
88 .p2align 2
90 .long 0 @ 0x0
91 .size a, 4
93 .type b,%object @ @b
94 .section my_data.1,"aw",%progbits
95 .globl b
96 .p2align 2
98 .long 1 @ 0x1
99 .size b, 4
101 .type c,%object @ @c
102 .section my_bss.1,"aw",%nobits
103 .globl c
104 .p2align 2
106 .zero 16
107 .size c, 16
109 .type d,%object @ @d
110 .globl d
111 .p2align 1
113 .zero 10
114 .size d, 10
116 .type e,%object @ @e
117 .section my_data.1,"aw",%progbits
118 .globl e
119 .p2align 1
121 .short 0 @ 0x0
122 .short 0 @ 0x0
123 .short 1 @ 0x1
124 .short 0 @ 0x0
125 .short 0 @ 0x0
126 .short 0 @ 0x0
127 .size e, 12
129 .type f,%object @ @f
130 .section my_rodata.1,"a",%progbits
131 .globl f
132 .p2align 2
134 .long 2 @ 0x2
135 .size f, 4
137 .type h,%object @ @h
138 .bss
139 .globl h
140 .p2align 2
142 .long 0 @ 0x0
143 .size h, 4
145 .type i,%object @ @i
146 .section my_bss.2,"aw",%nobits
147 .globl i
148 .p2align 2
150 .long 0 @ 0x0
151 .size i, 4
153 .type j,%object @ @j
154 .section my_rodata.1,"a",%progbits
155 .globl j
156 .p2align 2
158 .long 4 @ 0x4
159 .size j, 4
161 .type k,%object @ @k
162 .section my_bss.2,"aw",%nobits
163 .globl k
164 .p2align 2
166 .long 0 @ 0x0
167 .size k, 4
169 .type _ZZ3gooE7lstat_h,%object @ @_ZZ3gooE7lstat_h
170 .p2align 2
171 _ZZ3gooE7lstat_h:
172 .long 0 @ 0x0
173 .size _ZZ3gooE7lstat_h, 4
175 .type _ZL1g,%object @ @_ZL1g
176 .section my_bss.1,"aw",%nobits
177 .p2align 2
178 _ZL1g:
179 .zero 8
180 .size _ZL1g, 8
182 .type l,%object @ @l
183 .section my_data.2,"aw",%progbits
184 .globl l
185 .p2align 2
187 .long 5 @ 0x5
188 .size l, 4
190 .type m,%object @ @m
191 .section my_rodata.2,"a",%progbits
192 .globl m
193 .p2align 2
195 .long 6 @ 0x6
196 .size m, 4
198 .type n,%object @ @n
199 .bss
200 .globl n
201 .p2align 2
203 .long 0 @ 0x0
204 .size n, 4
206 .type o,%object @ @o
207 .data
208 .globl o
209 .p2align 2
211 .long 6 @ 0x6
212 .size o, 4
214 .type p,%object @ @p
215 .section .rodata,"a",%progbits
216 .globl p
217 .p2align 2
219 .long 7 @ 0x7
220 .size p, 4
223 .ident "clang version 5.0.0"
224 .section ".note.GNU-stack","",%progbits
225 .eabi_attribute 30, 1 @ Tag_ABI_optimization_goals
227 //CHECK: Section {
228 //CHECK: Name: .text
229 //CHECK: Type: SHT_PROGBITS (0x1)
230 //CHECK: Flags [ (0x6)
231 //CHECK: SHF_ALLOC (0x2)
232 //CHECK: SHF_EXECINSTR (0x4)
233 //CHECK: ]
234 //CHECK: }
235 //CHECK: Section {
236 //CHECK: Name: my_text.1
237 //CHECK: Type: SHT_PROGBITS (0x1)
238 //CHECK: Flags [ (0x6)
239 //CHECK: SHF_ALLOC (0x2)
240 //CHECK: SHF_EXECINSTR (0x4)
241 //CHECK: ]
242 //CHECK: }
243 //CHECK: Section {
244 //CHECK: Name: my_text.2
245 //CHECK: Type: SHT_PROGBITS (0x1)
246 //CHECK: Flags [ (0x6)
247 //CHECK: SHF_ALLOC (0x2)
248 //CHECK: SHF_EXECINSTR (0x4)
249 //CHECK: ]
250 //CHECK: }
251 //CHECK: Section {
252 //CHECK: Name: my_bss.1
253 //CHECK: Type: SHT_NOBITS (0x8)
254 //CHECK: Flags [ (0x3)
255 //CHECK: SHF_ALLOC (0x2)
256 //CHECK: SHF_WRITE (0x1)
257 //CHECK: ]
258 //CHECK: }
259 //CHECK: Section {
260 //CHECK: Name: my_data.1
261 //CHECK: Type: SHT_PROGBITS (0x1)
262 //CHECK: Flags [ (0x3)
263 //CHECK: SHF_ALLOC (0x2)
264 //CHECK: SHF_WRITE (0x1)
265 //CHECK: ]
266 //CHECK: }
267 //CHECK: Section {
268 //CHECK: Name: my_rodata.1
269 //CHECK: Type: SHT_PROGBITS (0x1)
270 //CHECK: Flags [ (0x2)
271 //CHECK: SHF_ALLOC (0x2)
272 //CHECK: ]
273 //CHECK: }
274 //CHECK: Section {
275 //CHECK: Name: .bss
276 //CHECK: Type: SHT_NOBITS (0x8)
277 //CHECK: Flags [ (0x3)
278 //CHECK: SHF_ALLOC (0x2)
279 //CHECK: SHF_WRITE (0x1)
280 //CHECK: ]
281 //CHECK: }
282 //CHECK: Section {
283 //CHECK: Name: my_bss.2
284 //CHECK: Type: SHT_NOBITS (0x8)
285 //CHECK: Flags [ (0x3)
286 //CHECK: SHF_ALLOC (0x2)
287 //CHECK: SHF_WRITE (0x1)
288 //CHECK: ]
289 //CHECK: }
290 //CHECK: Section {
291 //CHECK: Name: my_data.2
292 //CHECK: Type: SHT_PROGBITS (0x1)
293 //CHECK: Flags [ (0x3)
294 //CHECK: SHF_ALLOC (0x2)
295 //CHECK: SHF_WRITE (0x1)
296 //CHECK: ]
297 //CHECK: }
298 //CHECK: Section {
299 //CHECK: Name: my_rodata.2
300 //CHECK: Type: SHT_PROGBITS (0x1)
301 //CHECK: Flags [ (0x2)
302 //CHECK: SHF_ALLOC (0x2)
303 //CHECK: ]
304 //CHECK: }
305 //CHECK: Section {
306 //CHECK: Name: .data
307 //CHECK: Type: SHT_PROGBITS (0x1)
308 //CHECK: Flags [ (0x3)
309 //CHECK: SHF_ALLOC (0x2)
310 //CHECK: SHF_WRITE (0x1)
311 //CHECK: ]
312 //CHECK: }
313 //CHECK: Section {
314 //CHECK: Name: .rodata
315 //CHECK: Type: SHT_PROGBITS (0x1)
316 //CHECK: Flags [ (0x2)
317 //CHECK: SHF_ALLOC (0x2)
318 //CHECK: ]
319 //CHECK: }
320 //CHECK: Symbol {
321 //CHECK: Name: _ZL1g
322 //CHECK: Section: my_bss.1 (0xE)
323 //CHECK: }
324 //CHECK: Symbol {
325 //CHECK: Name: _ZZ3gooE7lstat_h
326 //CHECK: Section: my_bss.2 (0x12)
327 //CHECK: }
328 //CHECK: Symbol {
329 //CHECK: Name: a
330 //CHECK: Section: my_bss.1 (0xE)
331 //CHECK: }
332 //CHECK: Symbol {
333 //CHECK: Name: b
334 //CHECK: Section: my_data.1 (0xF)
335 //CHECK: }
336 //CHECK: Symbol {
337 //CHECK: Name: c
338 //CHECK: Section: my_bss.1 (0xE)
339 //CHECK: }
340 //CHECK: Symbol {
341 //CHECK: Name: d
342 //CHECK: Section: my_bss.1 (0xE)
343 //CHECK: }
344 //CHECK: Symbol {
345 //CHECK: Name: e
346 //CHECK: Section: my_data.1 (0xF)
347 //CHECK: }
348 //CHECK: Symbol {
349 //CHECK: Name: f
350 //CHECK: Section: my_rodata.1 (0x10)
351 //CHECK: }
352 //CHECK: Symbol {
353 //CHECK: Name: foo
354 //CHECK: Section: my_text.1 (0x4)
355 //CHECK: }
356 //CHECK: Symbol {
357 //CHECK: Name: goo
358 //CHECK: Section: my_text.2 (0x8)
359 //CHECK: }
360 //CHECK: Symbol {
361 //CHECK: Name: h
362 //CHECK: Section: .bss (0x11)
363 //CHECK: }
364 //CHECK: Symbol {
365 //CHECK: Name: hoo
366 //CHECK: Section: .text (0x2)
367 //CHECK: }
368 //CHECK: Symbol {
369 //CHECK: Name: i
370 //CHECK: Section: my_bss.2 (0x12)
371 //CHECK: }
372 //CHECK: Symbol {
373 //CHECK: Name: j
374 //CHECK: Section: my_rodata.1 (0x10)
375 //CHECK: }
376 //CHECK: Symbol {
377 //CHECK: Name: k
378 //CHECK: Section: my_bss.2 (0x12)
379 //CHECK: }
380 //CHECK: Symbol {
381 //CHECK: Name: l
382 //CHECK: Section: my_data.2 (0x13)
383 //CHECK: }
384 //CHECK: Symbol {
385 //CHECK: Name: m
386 //CHECK: Section: my_rodata.2 (0x14)
387 //CHECK: }
388 //CHECK: Symbol {
389 //CHECK: Name: n
390 //CHECK: Section: .bss (0x11)
391 //CHECK: }
392 //CHECK: Symbol {
393 //CHECK: Name: o
394 //CHECK: Section: .data (0x15)
395 //CHECK: }
396 //CHECK: Symbol {
397 //CHECK: Name: p
398 //CHECK: Section: .rodata (0x16)
399 //CHECK: }