xref: /aosp_15_r20/external/llvm/test/MC/ELF/section-sym-redefine.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj  -t -r --expand-relocs | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker// Local symbol overriding section.
4*9880d681SAndroid Build Coastguard Worker.section x1,"a",@progbits
5*9880d681SAndroid Build Coastguard Worker.local  x1
6*9880d681SAndroid Build Coastguard Worker.comm   x1,4,4
7*9880d681SAndroid Build Coastguard Worker.long x1  // reloc: .bss + 0
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker// Section declared after local. Local symbol wins.
10*9880d681SAndroid Build Coastguard Worker.local  x2
11*9880d681SAndroid Build Coastguard Worker.comm   x2,4,4
12*9880d681SAndroid Build Coastguard Worker.section x2,"a",@progbits
13*9880d681SAndroid Build Coastguard Worker.long x2  // reloc: .bss + 4
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker// No overriding symbol.
16*9880d681SAndroid Build Coastguard Worker.section x3,"a",@progbits
17*9880d681SAndroid Build Coastguard Worker.long x3  // reloc: x3(section) + 0
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Worker// Global vs section.
20*9880d681SAndroid Build Coastguard Worker.section x4,"a",@progbits
21*9880d681SAndroid Build Coastguard Worker.long 0
22*9880d681SAndroid Build Coastguard Worker.globl x4
23*9880d681SAndroid Build Coastguard Worker.section foo, "a", @progbits
24*9880d681SAndroid Build Coastguard Workerx4:
25*9880d681SAndroid Build Coastguard Worker.long 0
26*9880d681SAndroid Build Coastguard Worker.long x4  // reloc: x4(global) + 0
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Worker// Global vs implicit section
29*9880d681SAndroid Build Coastguard Worker.globl .data
30*9880d681SAndroid Build Coastguard Worker.data:
31*9880d681SAndroid Build Coastguard Worker.long 42
32*9880d681SAndroid Build Coastguard Worker.long .data // reloc: .data(global) + 0
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Worker// CHECK: Relocations [
35*9880d681SAndroid Build Coastguard Worker// CHECK:   Section (4) .relax1 {
36*9880d681SAndroid Build Coastguard Worker// CHECK:     Relocation {
37*9880d681SAndroid Build Coastguard Worker// CHECK:       Offset: 0x0
38*9880d681SAndroid Build Coastguard Worker// CHECK:       Type: R_X86_64_32 (10)
39*9880d681SAndroid Build Coastguard Worker// CHECK:       Symbol: .bss (3)
40*9880d681SAndroid Build Coastguard Worker// CHECK:       Addend: 0x0
41*9880d681SAndroid Build Coastguard Worker// CHECK:     }
42*9880d681SAndroid Build Coastguard Worker// CHECK:   }
43*9880d681SAndroid Build Coastguard Worker// CHECK:   Section (7) .relax2 {
44*9880d681SAndroid Build Coastguard Worker// CHECK:     Relocation {
45*9880d681SAndroid Build Coastguard Worker// CHECK:       Offset: 0x0
46*9880d681SAndroid Build Coastguard Worker// CHECK:       Type: R_X86_64_32 (10)
47*9880d681SAndroid Build Coastguard Worker// CHECK:       Symbol: .bss (3)
48*9880d681SAndroid Build Coastguard Worker// CHECK:       Addend: 0x4
49*9880d681SAndroid Build Coastguard Worker// CHECK:     }
50*9880d681SAndroid Build Coastguard Worker// CHECK:   }
51*9880d681SAndroid Build Coastguard Worker// CHECK:   Section (9) .relax3 {
52*9880d681SAndroid Build Coastguard Worker// CHECK:     Relocation {
53*9880d681SAndroid Build Coastguard Worker// CHECK:       Offset: 0x0
54*9880d681SAndroid Build Coastguard Worker// CHECK:       Type: R_X86_64_32 (10)
55*9880d681SAndroid Build Coastguard Worker// CHECK:       Symbol: x3 (4)
56*9880d681SAndroid Build Coastguard Worker// CHECK:       Addend: 0x0
57*9880d681SAndroid Build Coastguard Worker// CHECK:     }
58*9880d681SAndroid Build Coastguard Worker// CHECK:   }
59*9880d681SAndroid Build Coastguard Worker// CHECK:   Section (12) .relafoo {
60*9880d681SAndroid Build Coastguard Worker// CHECK:     Relocation {
61*9880d681SAndroid Build Coastguard Worker// CHECK:       Offset: 0x4
62*9880d681SAndroid Build Coastguard Worker// CHECK:       Type: R_X86_64_32 (10)
63*9880d681SAndroid Build Coastguard Worker// CHECK:       Symbol: x4 (6)
64*9880d681SAndroid Build Coastguard Worker// CHECK:       Addend: 0x0
65*9880d681SAndroid Build Coastguard Worker// CHECK:     }
66*9880d681SAndroid Build Coastguard Worker// CHECK:     Relocation {
67*9880d681SAndroid Build Coastguard Worker// CHECK:       Offset: 0xC
68*9880d681SAndroid Build Coastguard Worker// CHECK:       Type: R_X86_64_32 (10)
69*9880d681SAndroid Build Coastguard Worker// CHECK:       Symbol: .data (5)
70*9880d681SAndroid Build Coastguard Worker// CHECK:       Addend: 0x0
71*9880d681SAndroid Build Coastguard Worker// CHECK:     }
72*9880d681SAndroid Build Coastguard Worker// CHECK:   }
73*9880d681SAndroid Build Coastguard Worker// CHECK: ]
74*9880d681SAndroid Build Coastguard Worker// CHECK: Symbols [
75*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
76*9880d681SAndroid Build Coastguard Worker// CHECK:     Name:  (0)
77*9880d681SAndroid Build Coastguard Worker// CHECK:     Value: 0x0
78*9880d681SAndroid Build Coastguard Worker// CHECK:     Size: 0
79*9880d681SAndroid Build Coastguard Worker// CHECK:     Binding: Local (0x0)
80*9880d681SAndroid Build Coastguard Worker// CHECK:     Type: None (0x0)
81*9880d681SAndroid Build Coastguard Worker// CHECK:     Other: 0
82*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: Undefined (0x0)
83*9880d681SAndroid Build Coastguard Worker// CHECK:   }
84*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
85*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: x1 (67)
86*9880d681SAndroid Build Coastguard Worker// CHECK:     Value: 0x0
87*9880d681SAndroid Build Coastguard Worker// CHECK:     Size: 4
88*9880d681SAndroid Build Coastguard Worker// CHECK:     Binding: Local (0x0)
89*9880d681SAndroid Build Coastguard Worker// CHECK:     Type: Object (0x1)
90*9880d681SAndroid Build Coastguard Worker// CHECK:     Other: 0
91*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: .bss (0x5)
92*9880d681SAndroid Build Coastguard Worker// CHECK:   }
93*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
94*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: x2 (59)
95*9880d681SAndroid Build Coastguard Worker// CHECK:     Value: 0x4
96*9880d681SAndroid Build Coastguard Worker// CHECK:     Size: 4
97*9880d681SAndroid Build Coastguard Worker// CHECK:     Binding: Local (0x0)
98*9880d681SAndroid Build Coastguard Worker// CHECK:     Type: Object (0x1)
99*9880d681SAndroid Build Coastguard Worker// CHECK:     Other: 0
100*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: .bss (0x5)
101*9880d681SAndroid Build Coastguard Worker// CHECK:   }
102*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
103*9880d681SAndroid Build Coastguard Worker// CHECK:     Name:  (0)
104*9880d681SAndroid Build Coastguard Worker// CHECK:     Value: 0x0
105*9880d681SAndroid Build Coastguard Worker// CHECK:     Size: 0
106*9880d681SAndroid Build Coastguard Worker// CHECK:     Binding: Local (0x0)
107*9880d681SAndroid Build Coastguard Worker// CHECK:     Type: Section (0x3)
108*9880d681SAndroid Build Coastguard Worker// CHECK:     Other: 0
109*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: .bss (0x5)
110*9880d681SAndroid Build Coastguard Worker// CHECK:   }
111*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
112*9880d681SAndroid Build Coastguard Worker// CHECK:     Name:  (0)
113*9880d681SAndroid Build Coastguard Worker// CHECK:     Value: 0x0
114*9880d681SAndroid Build Coastguard Worker// CHECK:     Size: 0
115*9880d681SAndroid Build Coastguard Worker// CHECK:     Binding: Local (0x0)
116*9880d681SAndroid Build Coastguard Worker// CHECK:     Type: Section (0x3)
117*9880d681SAndroid Build Coastguard Worker// CHECK:     Other: 0
118*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: x3 (0x8)
119*9880d681SAndroid Build Coastguard Worker// CHECK:   }
120*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
121*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: .data (37)
122*9880d681SAndroid Build Coastguard Worker// CHECK:     Value: 0x8
123*9880d681SAndroid Build Coastguard Worker// CHECK:     Size: 0
124*9880d681SAndroid Build Coastguard Worker// CHECK:     Binding: Global (0x1)
125*9880d681SAndroid Build Coastguard Worker// CHECK:     Type: None (0x0)
126*9880d681SAndroid Build Coastguard Worker// CHECK:     Other: 0
127*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: foo (0xB)
128*9880d681SAndroid Build Coastguard Worker// CHECK:   }
129*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
130*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: x4 (43)
131*9880d681SAndroid Build Coastguard Worker// CHECK:     Value: 0x0
132*9880d681SAndroid Build Coastguard Worker// CHECK:     Size: 0
133*9880d681SAndroid Build Coastguard Worker// CHECK:     Binding: Global (0x1)
134*9880d681SAndroid Build Coastguard Worker// CHECK:     Type: None (0x0)
135*9880d681SAndroid Build Coastguard Worker// CHECK:     Other: 0
136*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: foo (0xB)
137*9880d681SAndroid Build Coastguard Worker// CHECK:   }
138*9880d681SAndroid Build Coastguard Worker// CHECK: ]
139