# RUN: llvm-mc -triple=x86_64-unknown-linux -position-independent \
# RUN: -filetype=obj -o %t.o %s
# RUN: llvm-jitlink -noexec -abs X=0x1234 -check=%s %t.o
# RUN: not llvm-jitlink -noexec -abs X=0x12345 %t.o 2>&1 | \
# RUN: FileCheck -check-prefix=CHECK-ERROR %s
#
# Check success and failure cases of R_X86_64_16 handling.
# jitlink-check: *{8}P = X
# CHECK-ERROR: relocation target "X" {{.*}} is out of range of Pointer16 fixup
.text
.section .text.main,"ax",@progbits
.globl main
.p2align 4, 0x90
.type main,@function
main:
xorl %eax, %eax
retq
.Lfunc_end0:
.size main, .Lfunc_end0-main
.type P,@object
.data
.globl P
.p2align 1, 0x0
P:
.short X # Using short here generates R_X86_64_16.
.short 0
.short 0
.short 0
.size P, 8