xref: /llvm-project/llvm/test/MC/AArch64/adr-diagnostics.s (revision b127771f7d2972acad81550e03cc4e1e3c1fcd1c)
1// RUN: not llvm-mc -triple aarch64-none-linux-gnu %s -filetype=obj -o /dev/null 2>&1 | FileCheck %s
2
3  adr x0, -start
4// CHECK: error: expected relocatable expression
5// CHECK-NEXT:   adr x0, -start
6// CHECK-NEXT:   ^
7  adr x1, start * 10
8// CHECK: error: expected relocatable expression
9// CHECK-NEXT:   adr x1, start * 10
10// CHECK-NEXT:   ^
11  adr x2, 2 * (start + 987136)
12// CHECK: error: expected relocatable expression
13// CHECK-NEXT:   adr x2, 2 * (start + 987136)
14// CHECK-NEXT:   ^
15  adr x3, (end + start)
16// CHECK: error: expected relocatable expression
17// CHECK-NEXT:   adr x3, (end + start)
18// CHECK-NEXT:   ^
19  adr x4, #(end - start)
20// CHECK: error: symbol 'start' can not be undefined in a subtraction expression
21// CHECK-NEXT:   adr x4, #(end - start)
22// CHECK-NEXT:   ^
23
24  adrp x0, -start
25// CHECK: error: expected relocatable expression
26// CHECK-NEXT:   adrp x0, -start
27// CHECK-NEXT:   ^
28  adrp x1, start * 10
29// CHECK: error: expected relocatable expression
30// CHECK-NEXT:   adrp x1, start * 10
31// CHECK-NEXT:   ^
32  adrp x2, 2 * (start + 987136)
33// CHECK: error: expected relocatable expression
34// CHECK-NEXT:   adrp x2, 2 * (start + 987136)
35// CHECK-NEXT:   ^
36  adrp x3, (end + start)
37// CHECK: error: expected relocatable expression
38// CHECK-NEXT:   adrp x3, (end + start)
39// CHECK-NEXT:   ^
40  adrp x4, #(end - start)
41// CHECK: error: symbol 'start' can not be undefined in a subtraction expression
42// CHECK-NEXT:   adrp x4, #(end - start)
43// CHECK-NEXT:   ^
44