Skip to content

Commit 1271ba4

Browse files
committed
[AArch64][test] Test GOT relocations referencing local STT_TLS are not converted to reference STT_SECTION symbols
AArch64 encodes the GOT-generating intent in MCValue::RefKind instead of MCSymbolRef::Kind for most other targets. It seems useful to test the case for additional coverage.
1 parent b06f16f commit 1271ba4

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

llvm/test/MC/AArch64/tls-relocs.s

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -175,27 +175,28 @@
175175

176176
// TLS initial-exec forms
177177
movz x15, #:gottprel_g1:var
178-
movz w14, #:gottprel_g1:var
178+
// GOT relocations referencing local STT_TLS are not converted to reference STT_SECTION symbols.
179+
movz w14, #:gottprel_g1:local0
179180

180181
// CHECK: movz x15, #:gottprel_g1:var // encoding: [0bAAA01111,A,0b101AAAAA,0x92]
181182
// CHECK: // fixup A - offset: 0, value: :gottprel_g1:var, kind: fixup_aarch64_movw
182-
// CHECK: movz w14, #:gottprel_g1:var // encoding: [0bAAA01110,A,0b101AAAAA,0x12]
183-
// CHECK: // fixup A - offset: 0, value: :gottprel_g1:var, kind: fixup_aarch64_movw
183+
// CHECK: movz w14, #:gottprel_g1:local0 // encoding: [0bAAA01110,A,0b101AAAAA,0x12]
184+
// CHECK: // fixup A - offset: 0, value: :gottprel_g1:local0, kind: fixup_aarch64_movw
184185

185186
// CHECK-ELF-NEXT: 0x78 R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 [[VARSYM]]
186-
// CHECK-ELF-NEXT: 0x7C R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 [[VARSYM]]
187+
// CHECK-ELF-NEXT: 0x7C R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 local0
187188

188189

189190
movk x13, #:gottprel_g0_nc:var
190-
movk w12, #:gottprel_g0_nc:var
191+
movk w12, #:gottprel_g0_nc:local1
191192

192193
// CHECK: movk x13, #:gottprel_g0_nc:var // encoding: [0bAAA01101,A,0b100AAAAA,0xf2]
193194
// CHECK: // fixup A - offset: 0, value: :gottprel_g0_nc:var, kind: fixup_aarch64_movw
194-
// CHECK: movk w12, #:gottprel_g0_nc:var // encoding: [0bAAA01100,A,0b100AAAAA,0x72]
195-
// CHECK: // fixup A - offset: 0, value: :gottprel_g0_nc:var, kind: fixup_aarch64_movw
195+
// CHECK: movk w12, #:gottprel_g0_nc:local1 // encoding: [0bAAA01100,A,0b100AAAAA,0x72]
196+
// CHECK: // fixup A - offset: 0, value: :gottprel_g0_nc:local1, kind: fixup_aarch64_movw
196197

197198
// CHECK-ELF-NEXT: 0x80 R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC [[VARSYM]]
198-
// CHECK-ELF-NEXT: 0x84 R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC [[VARSYM]]
199+
// CHECK-ELF-NEXT: 0x84 R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC local1
199200

200201

201202
adrp x11, :gottprel:var
@@ -396,6 +397,11 @@
396397
// CHECK-ELF-NEXT: 0x10C R_AARCH64_TLSDESC_ADD_LO12 [[VARSYM]]
397398
// CHECK-ELF-NEXT: 0x110 R_AARCH64_TLSDESC_CALL [[VARSYM]]
398399

400+
.section .tbss,"awT",@nobits
401+
.p2align 2, 0x0
402+
local0:
403+
local1:
404+
.word 0
399405

400406
// Make sure symbol 5 has type STT_TLS:
401407

0 commit comments

Comments
 (0)