xref: /aosp_15_r20/external/llvm/test/MC/MachO/reloc.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -r -expand-relocs | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker        .data
4*9880d681SAndroid Build Coastguard Worker        .long undef
5*9880d681SAndroid Build Coastguard Worker        .long (undef + 4)
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker        .globl local_a_ext
8*9880d681SAndroid Build Coastguard Workerlocal_a_ext:
9*9880d681SAndroid Build Coastguard Worker        .long local_a_ext
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerlocal_a:
12*9880d681SAndroid Build Coastguard Worker        .long 0
13*9880d681SAndroid Build Coastguard Workerlocal_a_elt:
14*9880d681SAndroid Build Coastguard Worker        .long 0
15*9880d681SAndroid Build Coastguard Workerlocal_b:
16*9880d681SAndroid Build Coastguard Worker        .long local_b - local_c + 245
17*9880d681SAndroid Build Coastguard Worker        .long 0
18*9880d681SAndroid Build Coastguard Workerlocal_c:
19*9880d681SAndroid Build Coastguard Worker        .long 0
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Worker        .long local_a_elt + 1
23*9880d681SAndroid Build Coastguard Worker        .long local_a_elt + 10
24*9880d681SAndroid Build Coastguard Worker        .short local_a_elt + 20
25*9880d681SAndroid Build Coastguard Worker        .byte local_a_elt + 89
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker        .const
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker        .long
30*9880d681SAndroid Build Coastguard Workerbar:
31*9880d681SAndroid Build Coastguard Worker        .long local_a_elt - bar + 33
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard WorkerL0:
34*9880d681SAndroid Build Coastguard Worker        .long L0
35*9880d681SAndroid Build Coastguard Worker        .long L1
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker        .text
38*9880d681SAndroid Build Coastguard Worker_f0:
39*9880d681SAndroid Build Coastguard WorkerL1:
40*9880d681SAndroid Build Coastguard Worker        jmp	0xbabecafe
41*9880d681SAndroid Build Coastguard Worker        jmp L0
42*9880d681SAndroid Build Coastguard Worker        jmp L1
43*9880d681SAndroid Build Coastguard Worker        ret
44*9880d681SAndroid Build Coastguard Worker
45*9880d681SAndroid Build Coastguard Worker        .objc_class_name_A=0
46*9880d681SAndroid Build Coastguard Worker	.globl .objc_class_name_A
47*9880d681SAndroid Build Coastguard Worker
48*9880d681SAndroid Build Coastguard Worker        .text
49*9880d681SAndroid Build Coastguard Worker        .globl _f1
50*9880d681SAndroid Build Coastguard Worker        .weak_definition _f1
51*9880d681SAndroid Build Coastguard Worker_f1:
52*9880d681SAndroid Build Coastguard Worker        .data
53*9880d681SAndroid Build Coastguard Worker        .long _f1
54*9880d681SAndroid Build Coastguard Worker        .long _f1 + 4
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard Worker// CHECK:     Relocations [
57*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:  Section __text {
58*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
59*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x6
60*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 1
61*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
62*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
63*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Section: __const
64*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
65*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
66*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x1
67*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 1
68*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
69*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
70*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Section: - (0)
71*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
72*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:  }
73*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:  Section __data {
74*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
75*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x2F
76*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
77*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
78*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
79*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Symbol: _f1
80*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
81*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
82*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x2B
83*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
84*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
85*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
86*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Symbol: _f1
87*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
88*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
89*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x2A
90*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
91*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 0
92*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
93*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Value: 0x1D
94*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
95*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
96*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x28
97*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
98*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 1
99*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
100*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Value: 0x1D
101*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
102*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
103*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x24
104*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
105*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
106*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
107*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Value: 0x1D
108*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
109*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
110*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x20
111*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
112*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
113*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
114*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Value: 0x1D
115*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
116*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
117*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x14
118*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
119*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
120*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_LOCAL_SECTDIFF (4)
121*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Value: 0x21
122*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
123*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
124*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x0
125*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
126*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
127*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_PAIR (1)
128*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Value: 0x29
129*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
130*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
131*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x8
132*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
133*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
134*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
135*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Section: __data
136*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
137*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
138*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x4
139*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
140*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
141*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
142*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Symbol: undef
143*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
144*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
145*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x0
146*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
147*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
148*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
149*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Symbol: undef
150*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
151*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:  }
152*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:  Section __const {
153*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
154*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x8
155*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
156*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
157*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
158*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Section: __text
159*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
160*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
161*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x4
162*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
163*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
164*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_VANILLA (0)
165*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Section: __const
166*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
167*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
168*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x0
169*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
170*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
171*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_LOCAL_SECTDIFF (4)
172*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Value: 0x1D
173*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
174*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    Relocation {
175*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Offset: 0x0
176*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      PCRel: 0
177*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Length: 2
178*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Type: GENERIC_RELOC_PAIR (1)
179*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:      Value: 0x40
180*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:    }
181*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:  }
182*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:]
183