xref: /llvm-project/llvm/test/MC/ARM/arm-elf-symver.s (revision 962b29d7162c8b470ea70540c48d11c2f35d7561)
1@ RUN: llvm-mc -filetype=obj -triple arm-none-linux-gnueabi %s -o - | llvm-readobj -r --symbols - | FileCheck %s
2@ RUN: llvm-mc -filetype=obj -triple thumb-none-linux-gnueabi %s -o - | llvm-readobj -r --symbols - | FileCheck %s
3
4defined1:
5defined2:
6defined3:
7        .symver defined1, bar1@zed
8        .symver undefined1, bar2@zed
9
10        .symver defined2, bar3@@zed
11
12        .symver defined3, bar5@@@zed
13        .symver undefined3, bar6@@@zed
14
15        .long defined1
16        .long undefined1
17        .long defined2
18        .long defined3
19        .long undefined3
20
21        .global global1
22        .symver global1, g1@@zed
23global1:
24
25@ CHECK: Relocations [
26@ CHECK-NEXT:   Section {{.*}} .rel.text {
27@ CHECK-NEXT:     0x0 R_ARM_ABS32 .text
28@ CHECK-NEXT:     0x4 R_ARM_ABS32 bar2@zed
29@ CHECK-NEXT:     0x8 R_ARM_ABS32 .text
30@ CHECK-NEXT:     0xC R_ARM_ABS32 .text
31@ CHECK-NEXT:     0x10 R_ARM_ABS32 bar6@zed
32@ CHECK-NEXT:   }
33@ CHECK-NEXT: ]
34
35@ CHECK:        Symbol {
36@ CHECK:        Symbol {
37@ CHECK-NEXT:     Name: .text (0)
38@ CHECK-NEXT:     Value: 0x0
39@ CHECK-NEXT:     Size: 0
40@ CHECK-NEXT:     Binding: Local (0x0)
41@ CHECK-NEXT:     Type: Section (0x3)
42@ CHECK-NEXT:     Other: 0
43@ CHECK-NEXT:     Section: .text
44@ CHECK-NEXT:   }
45@ CHECK-NEXT:   Symbol {
46@ CHECK-NEXT:     Name: defined1
47@ CHECK-NEXT:     Value: 0x0
48@ CHECK-NEXT:     Size: 0
49@ CHECK-NEXT:     Binding: Local (0x0)
50@ CHECK-NEXT:     Type: None (0x0)
51@ CHECK-NEXT:     Other: 0
52@ CHECK-NEXT:     Section: .text
53@ CHECK-NEXT:   }
54@ CHECK-NEXT:   Symbol {
55@ CHECK-NEXT:     Name: defined2
56@ CHECK-NEXT:     Value: 0x0
57@ CHECK-NEXT:     Size: 0
58@ CHECK-NEXT:     Binding: Local (0x0)
59@ CHECK-NEXT:     Type: None (0x0)
60@ CHECK-NEXT:     Other: 0
61@ CHECK-NEXT:     Section: .text
62@ CHECK-NEXT:   }
63@ CHECK:  Symbol {
64@ CHECK:    Name: bar1@zed
65@ CHECK-NEXT:     Value: 0x0
66@ CHECK-NEXT:     Size: 0
67@ CHECK-NEXT:     Binding: Local (0x0)
68@ CHECK-NEXT:     Type: None (0x0)
69@ CHECK-NEXT:     Other: 0
70@ CHECK-NEXT:     Section: .text
71@ CHECK-NEXT:   }
72@ CHECK-NEXT:   Symbol {
73@ CHECK-NEXT:     Name: bar3@@zed
74@ CHECK-NEXT:     Value: 0x0
75@ CHECK-NEXT:     Size: 0
76@ CHECK-NEXT:     Binding: Local (0x0)
77@ CHECK-NEXT:     Type: None (0x0)
78@ CHECK-NEXT:     Other: 0
79@ CHECK-NEXT:     Section: .text
80@ CHECK-NEXT:   }
81@ CHECK-NEXT:   Symbol {
82@ CHECK-NEXT:     Name: bar5@@zed
83@ CHECK-NEXT:     Value: 0x0
84@ CHECK-NEXT:     Size: 0
85@ CHECK-NEXT:     Binding: Local (0x0)
86@ CHECK-NEXT:     Type: None (0x0)
87@ CHECK-NEXT:     Other: 0
88@ CHECK-NEXT:     Section: .text
89@ CHECK-NEXT:   }
90@ CHECK-NEXT:   Symbol {
91@ CHECK-NEXT:     Name: global1
92@ CHECK-NEXT:     Value: 0x14
93@ CHECK-NEXT:     Size: 0
94@ CHECK-NEXT:     Binding: Global (0x1)
95@ CHECK-NEXT:     Type: None (0x0)
96@ CHECK-NEXT:     Other: 0
97@ CHECK-NEXT:     Section: .text
98@ CHECK-NEXT:   }
99@ CHECK-NEXT:   Symbol {
100@ CHECK-NEXT:     Name: bar2@zed
101@ CHECK-NEXT:     Value: 0x0
102@ CHECK-NEXT:     Size: 0
103@ CHECK-NEXT:     Binding: Global (0x1)
104@ CHECK-NEXT:     Type: None (0x0)
105@ CHECK-NEXT:     Other: 0
106@ CHECK-NEXT:     Section: Undefined (0x0)
107@ CHECK-NEXT:   }
108@ CHECK-NEXT:   Symbol {
109@ CHECK-NEXT:     Name: bar6@zed
110@ CHECK-NEXT:     Value: 0x0
111@ CHECK-NEXT:     Size: 0
112@ CHECK-NEXT:     Binding: Global (0x1)
113@ CHECK-NEXT:     Type: None (0x0)
114@ CHECK-NEXT:     Other: 0
115@ CHECK-NEXT:     Section: Undefined (0x0)
116@ CHECK-NEXT:   }
117@ CHECK-NEXT:   Symbol {
118@ CHECK-NEXT:     Name: g1@@zed
119@ CHECK-NEXT:     Value: 0x14
120@ CHECK-NEXT:     Size: 0
121@ CHECK-NEXT:     Binding: Global (0x1)
122@ CHECK-NEXT:     Type: None (0x0)
123@ CHECK-NEXT:     Other: 0
124@ CHECK-NEXT:     Section: .text
125@ CHECK-NEXT:   }
126@ CHECK-NEXT: ]
127