58 lines · plain
1# RUN: llvm-mc -triple=aarch64 -filetype=obj %s | llvm-readobj -r - | FileCheck %s2# RUN: not llvm-mc -triple=aarch64 %s --defsym ERR=1 -o /dev/null 2>&1 | FileCheck %s --check-prefix=ERR --implicit-check-not=error:3# RUN: not llvm-mc -triple=aarch64 -filetype=obj %s --defsym OBJERR=1 -o /dev/null 2>&1 | FileCheck %s --check-prefix=OBJERR --implicit-check-not=error:4 5.globl g6g:7l:8 9# CHECK: Section ({{.*}}) .rela.data {10# CHECK-NEXT: 0x0 R_AARCH64_PLT32 l 0x011# CHECK-NEXT: 0x4 R_AARCH64_PLT32 l 0x412# CHECK-NEXT: 0x8 R_AARCH64_PLT32 extern 0x413# CHECK-NEXT: 0xC R_AARCH64_PLT32 g 0x814# CHECK-NEXT: 0x10 R_AARCH64_PLT32 g 0x1815# CHECK-NEXT: 0x14 R_AARCH64_FUNCINIT64 .text 0x016# CHECK-NEXT: }17.data18.word l@plt - .19.word l@plt - .data20 21.word extern@plt - . + 422.word g@plt - . + 823.word g@plt - .data + 824 25.quad l@funcinit26 27# CHECK: Section ({{.*}}) .rela.data1 {28# CHECK-NEXT: 0x0 R_AARCH64_GOTPCREL32 data1 0x029# CHECK-NEXT: 0x4 R_AARCH64_GOTPCREL32 extern 0x430# CHECK-NEXT: 0x8 R_AARCH64_GOTPCREL32 extern 0xFFFFFFFFFFFFFFFB31# CHECK-NEXT: }32.section .data1,"aw"33data1:34.word data1@GOTPCREL35.word extern@gotpcrel+436.word extern@GOTPCREL-537 38## Test parse-time errors39.ifdef ERR40# ERR: [[#@LINE+1]]:9: error: @ specifier only allowed after a symbol41.quad 3@plt - .42 43# ERR: [[#@LINE+1]]:9: error: expected ')'44.quad (l@plt - .)45.endif46 47.ifdef OBJERR48.quad g@plt - .49 50.word extern@gotpcrel - .51 52# OBJERR: [[#@LINE+1]]:7: error: symbol 'und' can not be undefined in a subtraction expression53.word extern@plt - und54 55# OBJERR: [[#@LINE+1]]:7: error: symbol 'und' can not be undefined in a subtraction expression56.word extern@gotpcrel - und57.endif58