llvm/lld/test/ELF/aarch64-reloc-pauth-ro.s

# REQUIRES: aarch64

# RUN: llvm-mc -filetype=obj -triple=aarch64 %p/Inputs/shared2.s -o %t.so.o
# RUN: ld.lld -shared %t.so.o -soname=so -o %t.so
# RUN: llvm-mc -filetype=obj -triple=aarch64 %s -o %t.o
# RUN: not ld.lld -pie %t.o %t.so -o %t2 2>&1 | FileCheck -DFILE=%t %s --implicit-check-not=error:

# CHECK:      error: relocation R_AARCH64_AUTH_ABS64 cannot be used against symbol 'zed2'; recompile with -fPIC
# CHECK-NEXT: >>> defined in [[FILE]].so
# CHECK-NEXT: >>> referenced by [[FILE]].o:(.ro+0x0)

# CHECK:      error: relocation R_AARCH64_AUTH_ABS64 cannot be used against symbol 'bar2'; recompile with -fPIC
# CHECK:      error: relocation R_AARCH64_AUTH_ABS64 cannot be used against local symbol; recompile with -fPIC

foo:
.type foo, @function

.section .ro, "a"
.p2align 3
.quad zed2@AUTH(da,42)
.quad bar2@AUTH(ia,42)
.quad foo@AUTH(ia,42)