xref: /llvm-project/llvm/test/MC/AArch64/mapping-across-sections.s (revision 46707b0a83b7769965f9b1b3d08b2cc6bd26c469)
1// RUN: llvm-mc -triple=aarch64 -filetype=obj %s | llvm-objdump -t - | FileCheck %s --match-full-lines
2// RUN: llvm-mc -triple=aarch64 -filetype=obj -implicit-mapsyms %s | llvm-objdump -t - | FileCheck %s --check-prefix=CHECK1 --match-full-lines
3
4/// The test covers many state transitions. Let's use the first state and the last state to describe a section.
5/// .text goes through cd -> dd -> cc -> dd.
6/// .data goes through dd -> dc -> cd.
7.file "0.s"
8.section .text1,"ax"
9add w0, w0, w0
10
11.text
12add w0, w0, w0
13.word 42
14
15.pushsection .data,"aw"
16.word 42
17.popsection
18
19.text
20.word 42
21
22.section .text1,"ax"
23add w1, w1, w1
24
25.text
26add w1, w1, w1
27
28.section .data,"aw"
29.word 42
30add w0, w0, w0
31
32.text
33.word 42
34
35## .rodata and subsequent symbols should be after the FILE symbol of "1.s".
36.file "1.s"
37.section .rodata,"a"
38.word 42
39add w0, w0, w0
40
41.section .data,"aw"
42add w0, w0, w0
43.word 42
44
45.text
46
47.ident "clang"
48.section ".note.GNU-stack","",@progbits
49
50// CHECK:      SYMBOL TABLE:
51// CHECK-NEXT: 0000000000000000 l    df *ABS*	0000000000000000 0.s
52// CHECK-NEXT: 0000000000000000 l       .text1	0000000000000000 $x
53// CHECK-NEXT: 0000000000000000 l       .text	0000000000000000 $x
54// CHECK-NEXT: 0000000000000004 l       .text	0000000000000000 $d
55// CHECK-NEXT: 0000000000000000 l       .data	0000000000000000 $d
56// CHECK-NEXT: 000000000000000c l       .text	0000000000000000 $x
57// CHECK-NEXT: 0000000000000008 l       .data	0000000000000000 $x
58// CHECK-NEXT: 0000000000000010 l       .text	0000000000000000 $d
59// CHECK-NEXT: 0000000000000000 l    df *ABS*	0000000000000000 1.s
60// CHECK-NEXT: 0000000000000000 l       .rodata	0000000000000000 $d
61// CHECK-NEXT: 0000000000000004 l       .rodata	0000000000000000 $x
62// CHECK-NEXT: 0000000000000010 l       .data	0000000000000000 $d
63// CHECK-NEXT: 0000000000000000 l       .comment	0000000000000000 $d
64// CHECK-NOT:  {{.}}
65
66// CHECK1:      SYMBOL TABLE:
67// CHECK1-NEXT: 0000000000000000 l    df *ABS*	0000000000000000 0.s
68// CHECK1-NEXT: 0000000000000004 l       .text	0000000000000000 $d
69// CHECK1-NEXT: 000000000000000c l       .text	0000000000000000 $x
70// CHECK1-NEXT: 0000000000000008 l       .data	0000000000000000 $x
71// CHECK1-NEXT: 0000000000000010 l       .text	0000000000000000 $d
72// CHECK1-NEXT: 0000000000000014 l       .text	0000000000000000 $x
73// CHECK1-NEXT: 0000000000000000 l    df *ABS*	0000000000000000 1.s
74// CHECK1-NEXT: 0000000000000004 l       .rodata	0000000000000000 $x
75// CHECK1-NEXT: 0000000000000008 l       .rodata	0000000000000000 $d
76// CHECK1-NEXT: 0000000000000010 l       .data	0000000000000000 $d
77// CHECK1-NOT:  {{.}}
78