[clang-format] Handle C-style cast of member function pointer type (#126340)
[llvm-project.git] / lld / test / ELF / Inputs / aarch64-memtag-globals.s
blobcc7ca6e3d13dc518f01b07c28c9aeaf441cd855c
1 #--- input_1.s
2 ## Generated with:
3 ##
4 ## - clang <input_file.c> -fsanitize=memtag-globals -O2 -S -fPIC -o - \
5 ## --target=aarch64-linux-android31 -fno-asynchronous-unwind-tables
6 ##
7 ## <input_file.c> contents:
8 ##
9 ## /// Global variables defined here, of various semantics.
10 ## char global[30] = {};
11 ## __attribute__((no_sanitize("memtag"))) int global_untagged = 0;
12 ## const int const_global = 0;
13 ## static const int hidden_const_global = 0;
14 ## static char hidden_global[12] = {};
15 ## __attribute__((visibility("hidden"))) int hidden_attr_global = 0;
16 ## __attribute__((visibility("hidden"))) const int hidden_attr_const_global = 0;
18 ## /// Should be untagged.
19 ## __thread int tls_global;
20 ## __thread static int hidden_tls_global;
22 ## /// Tagged, from the other file.
23 ## extern int global_extern;
24 ## /// Untagged, from the other file.
25 ## extern __attribute__((no_sanitize("memtag"))) int global_extern_untagged;
26 ## /// Tagged, but from a different DSO (i.e. not this or the sister objfile).
27 ## extern int global_extern_outside_this_dso;
28 ## /// Tagged here (because it's non-const), but untagged in the definition found
29 ## /// in the sister objfile as it's marked as const there.
30 ## extern int global_extern_const_definition_but_nonconst_import;
31 ## /// Tagged here, but untagged in the definition found in the sister objfile
32 ## /// (explicitly).
33 ## extern int global_extern_untagged_definition_but_tagged_import;
35 ## /// ABS64 relocations. Also, forces symtab entries for local and external
36 ## /// globals.
37 ## char *pointer_to_global = &global[0];
38 ## char *pointer_inside_global = &global[17];
39 ## char *pointer_to_global_end = &global[30];
40 ## char *pointer_past_global_end = &global[48];
41 ## int *pointer_to_global_untagged = &global_untagged;
42 ## const int *pointer_to_const_global = &const_global;
43 ## /// RELATIVE relocations.
44 ## const int *pointer_to_hidden_const_global = &hidden_const_global;
45 ## char *pointer_to_hidden_global = &hidden_global[0];
46 ## const int *pointer_to_hidden_attr_global = &hidden_attr_global;
47 ## const int *pointer_to_hidden_attr_const_global = &hidden_attr_const_global;
48 ## /// RELATIVE relocations with special AArch64 MemtagABI semantics, with the
49 ## /// offset ('12' or '16') encoded in the place.
50 ## char *pointer_to_hidden_global_end = &hidden_global[12];
51 ## char *pointer_past_hidden_global_end = &hidden_global[16];
52 ## /// ABS64 relocations.
53 ## int *pointer_to_global_extern = &global_extern;
54 ## int *pointer_to_global_extern_untagged = &global_extern_untagged;
55 ## int *pointer_to_global_extern_outside_this_dso = &global_extern_outside_this_dso;
56 ## int *pointer_to_global_extern_const_definition_but_nonconst_import =
57 ## &global_extern_const_definition_but_nonconst_import;
58 ## int *pointer_to_global_extern_untagged_definition_but_tagged_import =
59 ## &global_extern_untagged_definition_but_tagged_import;
61 ## int *get_address_to_tls_global() { return &tls_global; }
62 ## int *get_address_to_hidden_tls_global() { return &hidden_tls_global; }
64 .text
65 .file "a.c"
66 .globl get_address_to_tls_global // -- Begin function get_address_to_tls_global
67 .p2align 2
68 .type get_address_to_tls_global,@function
69 get_address_to_tls_global: // @get_address_to_tls_global
70 // %bb.0: // %entry
71 stp x29, x30, [sp, #-16]! // 16-byte Folded Spill
72 mov x29, sp
73 adrp x0, :tlsdesc:tls_global
74 ldr x1, [x0, :tlsdesc_lo12:tls_global]
75 add x0, x0, :tlsdesc_lo12:tls_global
76 .tlsdesccall tls_global
77 blr x1
78 mrs x8, TPIDR_EL0
79 add x0, x8, x0
80 ldp x29, x30, [sp], #16 // 16-byte Folded Reload
81 ret
82 .Lfunc_end0:
83 .size get_address_to_tls_global, .Lfunc_end0-get_address_to_tls_global
84 // -- End function
85 .globl get_address_to_hidden_tls_global // -- Begin function get_address_to_hidden_tls_global
86 .p2align 2
87 .type get_address_to_hidden_tls_global,@function
88 get_address_to_hidden_tls_global: // @get_address_to_hidden_tls_global
89 // %bb.0: // %entry
90 stp x29, x30, [sp, #-16]! // 16-byte Folded Spill
91 mov x29, sp
92 adrp x0, :tlsdesc:hidden_tls_global
93 ldr x1, [x0, :tlsdesc_lo12:hidden_tls_global]
94 add x0, x0, :tlsdesc_lo12:hidden_tls_global
95 .tlsdesccall hidden_tls_global
96 blr x1
97 mrs x8, TPIDR_EL0
98 add x0, x8, x0
99 ldp x29, x30, [sp], #16 // 16-byte Folded Reload
101 .Lfunc_end1:
102 .size get_address_to_hidden_tls_global, .Lfunc_end1-get_address_to_hidden_tls_global
103 // -- End function
104 .memtag global // @global
105 .type global,@object
106 .bss
107 .globl global
108 .p2align 4, 0x0
109 global:
110 .zero 32
111 .size global, 32
113 .type global_untagged,@object // @global_untagged
114 .globl global_untagged
115 .p2align 2, 0x0
116 global_untagged:
117 .word 0 // 0x0
118 .size global_untagged, 4
120 .type const_global,@object // @const_global
121 .section .rodata,"a",@progbits
122 .globl const_global
123 .p2align 2, 0x0
124 const_global:
125 .word 0 // 0x0
126 .size const_global, 4
128 .hidden hidden_attr_global // @hidden_attr_global
129 .memtag hidden_attr_global
130 .type hidden_attr_global,@object
131 .bss
132 .globl hidden_attr_global
133 .p2align 4, 0x0
134 hidden_attr_global:
135 .zero 16
136 .size hidden_attr_global, 16
138 .hidden hidden_attr_const_global // @hidden_attr_const_global
139 .type hidden_attr_const_global,@object
140 .section .rodata,"a",@progbits
141 .globl hidden_attr_const_global
142 .p2align 2, 0x0
143 hidden_attr_const_global:
144 .word 0 // 0x0
145 .size hidden_attr_const_global, 4
147 .memtag pointer_to_global // @pointer_to_global
148 .type pointer_to_global,@object
149 .data
150 .globl pointer_to_global
151 .p2align 4, 0x0
152 pointer_to_global:
153 .xword global
154 .zero 8
155 .size pointer_to_global, 16
157 .memtag pointer_inside_global // @pointer_inside_global
158 .type pointer_inside_global,@object
159 .globl pointer_inside_global
160 .p2align 4, 0x0
161 pointer_inside_global:
162 .xword global+17
163 .zero 8
164 .size pointer_inside_global, 16
166 .memtag pointer_to_global_end // @pointer_to_global_end
167 .type pointer_to_global_end,@object
168 .globl pointer_to_global_end
169 .p2align 4, 0x0
170 pointer_to_global_end:
171 .xword global+30
172 .zero 8
173 .size pointer_to_global_end, 16
175 .memtag pointer_past_global_end // @pointer_past_global_end
176 .type pointer_past_global_end,@object
177 .globl pointer_past_global_end
178 .p2align 4, 0x0
179 pointer_past_global_end:
180 .xword global+48
181 .zero 8
182 .size pointer_past_global_end, 16
184 .memtag pointer_to_global_untagged // @pointer_to_global_untagged
185 .type pointer_to_global_untagged,@object
186 .globl pointer_to_global_untagged
187 .p2align 4, 0x0
188 pointer_to_global_untagged:
189 .xword global_untagged
190 .zero 8
191 .size pointer_to_global_untagged, 16
193 .memtag pointer_to_const_global // @pointer_to_const_global
194 .type pointer_to_const_global,@object
195 .globl pointer_to_const_global
196 .p2align 4, 0x0
197 pointer_to_const_global:
198 .xword const_global
199 .zero 8
200 .size pointer_to_const_global, 16
202 .type hidden_const_global,@object // @hidden_const_global
203 .section .rodata,"a",@progbits
204 .p2align 2, 0x0
205 hidden_const_global:
206 .word 0 // 0x0
207 .size hidden_const_global, 4
209 .memtag pointer_to_hidden_const_global // @pointer_to_hidden_const_global
210 .type pointer_to_hidden_const_global,@object
211 .data
212 .globl pointer_to_hidden_const_global
213 .p2align 4, 0x0
214 pointer_to_hidden_const_global:
215 .xword hidden_const_global
216 .zero 8
217 .size pointer_to_hidden_const_global, 16
219 .memtag hidden_global // @hidden_global
220 .type hidden_global,@object
221 .local hidden_global
222 .comm hidden_global,16,16
223 .memtag pointer_to_hidden_global // @pointer_to_hidden_global
224 .type pointer_to_hidden_global,@object
225 .globl pointer_to_hidden_global
226 .p2align 4, 0x0
227 pointer_to_hidden_global:
228 .xword hidden_global
229 .zero 8
230 .size pointer_to_hidden_global, 16
232 .memtag pointer_to_hidden_attr_global // @pointer_to_hidden_attr_global
233 .type pointer_to_hidden_attr_global,@object
234 .globl pointer_to_hidden_attr_global
235 .p2align 4, 0x0
236 pointer_to_hidden_attr_global:
237 .xword hidden_attr_global
238 .zero 8
239 .size pointer_to_hidden_attr_global, 16
241 .memtag pointer_to_hidden_attr_const_global // @pointer_to_hidden_attr_const_global
242 .type pointer_to_hidden_attr_const_global,@object
243 .globl pointer_to_hidden_attr_const_global
244 .p2align 4, 0x0
245 pointer_to_hidden_attr_const_global:
246 .xword hidden_attr_const_global
247 .zero 8
248 .size pointer_to_hidden_attr_const_global, 16
250 .memtag pointer_to_hidden_global_end // @pointer_to_hidden_global_end
251 .type pointer_to_hidden_global_end,@object
252 .globl pointer_to_hidden_global_end
253 .p2align 4, 0x0
254 pointer_to_hidden_global_end:
255 .xword hidden_global+12
256 .zero 8
257 .size pointer_to_hidden_global_end, 16
259 .memtag pointer_past_hidden_global_end // @pointer_past_hidden_global_end
260 .type pointer_past_hidden_global_end,@object
261 .globl pointer_past_hidden_global_end
262 .p2align 4, 0x0
263 pointer_past_hidden_global_end:
264 .xword hidden_global+16
265 .zero 8
266 .size pointer_past_hidden_global_end, 16
268 .memtag global_extern
269 .memtag pointer_to_global_extern // @pointer_to_global_extern
270 .type pointer_to_global_extern,@object
271 .globl pointer_to_global_extern
272 .p2align 4, 0x0
273 pointer_to_global_extern:
274 .xword global_extern
275 .zero 8
276 .size pointer_to_global_extern, 16
278 .memtag pointer_to_global_extern_untagged // @pointer_to_global_extern_untagged
279 .type pointer_to_global_extern_untagged,@object
280 .globl pointer_to_global_extern_untagged
281 .p2align 4, 0x0
282 pointer_to_global_extern_untagged:
283 .xword global_extern_untagged
284 .zero 8
285 .size pointer_to_global_extern_untagged, 16
287 .memtag global_extern_outside_this_dso
288 .memtag pointer_to_global_extern_outside_this_dso // @pointer_to_global_extern_outside_this_dso
289 .type pointer_to_global_extern_outside_this_dso,@object
290 .globl pointer_to_global_extern_outside_this_dso
291 .p2align 4, 0x0
292 pointer_to_global_extern_outside_this_dso:
293 .xword global_extern_outside_this_dso
294 .zero 8
295 .size pointer_to_global_extern_outside_this_dso, 16
297 .memtag global_extern_const_definition_but_nonconst_import
298 .memtag pointer_to_global_extern_const_definition_but_nonconst_import // @pointer_to_global_extern_const_definition_but_nonconst_import
299 .type pointer_to_global_extern_const_definition_but_nonconst_import,@object
300 .globl pointer_to_global_extern_const_definition_but_nonconst_import
301 .p2align 4, 0x0
302 pointer_to_global_extern_const_definition_but_nonconst_import:
303 .xword global_extern_const_definition_but_nonconst_import
304 .zero 8
305 .size pointer_to_global_extern_const_definition_but_nonconst_import, 16
307 .memtag global_extern_untagged_definition_but_tagged_import
308 .memtag pointer_to_global_extern_untagged_definition_but_tagged_import // @pointer_to_global_extern_untagged_definition_but_tagged_import
309 .type pointer_to_global_extern_untagged_definition_but_tagged_import,@object
310 .globl pointer_to_global_extern_untagged_definition_but_tagged_import
311 .p2align 4, 0x0
312 pointer_to_global_extern_untagged_definition_but_tagged_import:
313 .xword global_extern_untagged_definition_but_tagged_import
314 .zero 8
315 .size pointer_to_global_extern_untagged_definition_but_tagged_import, 16
317 .type tls_global,@object // @tls_global
318 .section .tbss,"awT",@nobits
319 .globl tls_global
320 .p2align 2, 0x0
321 tls_global:
322 .word 0 // 0x0
323 .size tls_global, 4
325 .type hidden_tls_global,@object // @hidden_tls_global
326 .p2align 2, 0x0
327 hidden_tls_global:
328 .word 0 // 0x0
329 .size hidden_tls_global, 4
331 .ident "clang version 17.0.0 (https://github.com/llvm/llvm-project.git 6130c9df99a7a7eb9c6adc118a48f8f2acc534ab)"
332 .section ".note.GNU-stack","",@progbits
334 #--- input_2.s
335 ## Generated with:
337 ## - clang <input_file.c> -fsanitize=memtag-globals -O2 -S -o - \
338 ## --target=aarch64-linux-android31 -fno-asynchronous-unwind-tables
340 ## <input_file.c> contents:
342 ## int global_extern;
343 ## static int global_extern_hidden;
344 ## __attribute__((no_sanitize("memtag"))) int global_extern_untagged;
345 ## const int global_extern_const_definition_but_nonconst_import;
346 ## __attribute__((no_sanitize(
347 ## "memtag"))) int global_extern_untagged_definition_but_tagged_import;
350 .text
351 .file "b.c"
352 .memtag global_extern
353 .type global_extern,@object
354 .bss
355 .globl global_extern
356 .p2align 4, 0x0
357 global_extern:
358 .zero 16
359 .size global_extern, 16
361 .type global_extern_untagged,@object
362 .globl global_extern_untagged
363 .p2align 2, 0x0
364 global_extern_untagged:
365 .word 0
366 .size global_extern_untagged, 4
368 .type global_extern_const_definition_but_nonconst_import,@object
369 .section .rodata,"a",@progbits
370 .globl global_extern_const_definition_but_nonconst_import
371 .p2align 2, 0x0
372 global_extern_const_definition_but_nonconst_import:
373 .word 0
374 .size global_extern_const_definition_but_nonconst_import, 4
376 .type global_extern_untagged_definition_but_tagged_import,@object
377 .bss
378 .globl global_extern_untagged_definition_but_tagged_import
379 .p2align 2, 0x0
380 global_extern_untagged_definition_but_tagged_import:
381 .word 0
382 .size global_extern_untagged_definition_but_tagged_import, 4
384 #--- input_3.s
385 ## Generated with:
387 ## - clang <input_file.c> -fsanitize=memtag-globals -O2 -S -o - \
388 ## --target=aarch64-linux-android31 -fno-asynchronous-unwind-tables
390 ## <input_file.c> contents:
392 ## int global_extern_outside_this_dso;
394 ## int main() {
395 ## return 0;
396 ## }
398 .text
399 .file "main.c"
400 .globl main // -- Begin function main
401 .p2align 2
402 .type main,@function
403 main: // @main
404 // %bb.0: // %entry
405 mov w0, wzr
407 .Lfunc_end0:
408 .size main, .Lfunc_end0-main
409 // -- End function
410 .memtag global_extern_outside_this_dso // @global_extern_outside_this_dso
411 .type global_extern_outside_this_dso,@object
412 .bss
413 .globl global_extern_outside_this_dso
414 .p2align 4, 0x0
415 global_extern_outside_this_dso:
416 .zero 16
417 .size global_extern_outside_this_dso, 16