@ RUN: llvm-mc -filetype=obj --triple=thumbv6m-none-eabi %s -o %t @ RUN: llvm-readelf -r %t | FileCheck %s --check-prefix=RELOC @ RUN: llvm-objdump -d --triple=thumbv6m-none-eabi %t | FileCheck %s --check-prefix=ADDEND .section .text._func1, "ax" .balign 4 .global _func1 .type _func1, %function _func1: adr r0, _func2 @ RELOC: R_ARM_THM_PC8 bx lr // Checking the encoding only, as the disassembly is not quite correct here. //00000000 <_func1>: // 0: a0ff adr r0, #1020 <_func1+0x103> // Thumb16 encoding supports only adding of the encoded immediate (not // subtracting, see [Arm ARM]), therefore sign change is required if the pcrel // offset is negative. This makes the calculation of the addend for // R_ARM_THM_PC8 more complex, for details see [ELF for the Arm 32-bit // architecture]. @ ADDEND: a0ff adr