[llvm] Do not replace dead constant references in metadata with undef
[llvm-project.git] / lld / test / ELF / arm-adr-err.s
blobbe1305e7b010b0c78f74c2fbc7ec9be68d2f1061
1 // REQUIRES: arm
2 // RUN: llvm-mc --triple=armv7a-none-eabi --arm-add-build-attributes -filetype=obj -o %t.o %s
3 // RUN: not ld.lld %t.o -o /dev/null 2>&1 | FileCheck %s
4 .section .os0, "ax", %progbits
5 .balign 1024
6 .thumb_func
7 low:
8 bx lr
10 /// Check that we error when the immediate for the add or sub is not encodeable
11 .section .os1, "ax", %progbits
12 .arm
13 .balign 1024
14 .global _start
15 .type _start, %function
16 _start:
17 // CHECK: {{.*}}.s.tmp.o:(.os1+0x0): unencodeable immediate 1031 for relocation R_ARM_ALU_PC_G0
18 /// adr r0, low
19 .inst 0xe24f0008
20 .reloc 0, R_ARM_ALU_PC_G0, low
21 // CHECK: {{.*}}.s.tmp.o:(.os1+0x4): unencodeable immediate 1013 for relocation R_ARM_ALU_PC_G0
22 /// adr r1, unaligned
23 .inst 0xe24f1008
24 .reloc 4, R_ARM_ALU_PC_G0, unaligned
26 .balign 512
27 /// ldrd r0, r1, _start
28 // CHECK: {{.*}}.s.tmp.o:(.os1+0x200): relocation R_ARM_LDRS_PC_G0 out of range: 512 is not in [0, 255]; references _start
29 .reloc ., R_ARM_LDRS_PC_G0, _start
30 .inst 0xe14f00d0
32 .section .os2, "ax", %progbits
33 .balign 1024
34 .thumb_func
35 unaligned:
36 bx lr