xref: /llvm-project/llvm/test/MC/ARM/fdpic.s (revision 2167881f5154823dc3183845700add7df15fc856)
1# RUN: llvm-mc -triple=armv7-linux-gnueabi %s | FileCheck %s --check-prefix=ASM
2# RUN: llvm-mc -filetype=obj -triple=armv7-linux-gnueabi --fdpic %s | llvm-readelf -h -r - | FileCheck %s
3
4# RUN: not llvm-mc -filetype=obj -triple=armv7-linux-gnueabi %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=ERR
5
6# ASM:      .long f(FUNCDESC)
7# ASM-NEXT: .long f(GOTFUNCDESC)
8# ASM-NEXT: .long f(GOTOFFFUNCDESC)
9
10# CHECK:      OS/ABI: ARM FDPIC
11# CHECK:      Machine: ARM
12# CHECK:      Flags: 0x5000000
13
14# CHECK:      R_ARM_FUNCDESC        00000000 f
15# CHECK-NEXT: R_ARM_GOTFUNCDESC     00000000 f
16# CHECK-NEXT: R_ARM_GOTOFFFUNCDESC  00000000 f
17# CHECK-NEXT: R_ARM_TLS_GD32_FDPIC  00000000 tls
18# CHECK-NEXT: R_ARM_TLS_LDM32_FDPIC 00000000 tls
19# CHECK-NEXT: R_ARM_TLS_IE32_FDPIC  00000000 tls
20
21.data
22# ERR: [[#@LINE+1]]:7: error: relocation R_ARM_FUNCDESC only supported in FDPIC mode
23.long f(FUNCDESC)
24# ERR: [[#@LINE+1]]:7: error: relocation R_ARM_GOTFUNCDESC only supported in FDPIC mode
25.long f(GOTFUNCDESC)
26# ERR: [[#@LINE+1]]:7: error: relocation R_ARM_GOTOFFFUNCDESC only supported in FDPIC mode
27.long f(GOTOFFFUNCDESC)
28# ERR: [[#@LINE+1]]:7: error: relocation R_ARM_TLS_GD32_FDPIC only supported in FDPIC mode
29.long tls(tlsgd_fdpic)
30# ERR: [[#@LINE+1]]:7: error: relocation R_ARM_TLS_LDM32_FDPIC only supported in FDPIC mode
31.long tls(tlsldm_fdpic)
32# ERR: [[#@LINE+1]]:7: error: relocation R_ARM_TLS_IE32_FDPIC only supported in FDPIC mode
33.long tls(gottpoff_fdpic)
34