Skip to content

Commit 4f243f1

Browse files
MaskRaytru
authored andcommitted
[test] Improve MC/RISCV/riscv64-64b-pcrel.s
(cherry picked from commit 97f6283)
1 parent 1f9ea2d commit 4f243f1

File tree

1 file changed

+39
-34
lines changed

1 file changed

+39
-34
lines changed

llvm/test/MC/RISCV/riscv64-64b-pcrel.s

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,51 @@
11
# RUN: llvm-mc -triple riscv64-unknown-linux-gnu -filetype obj -o - %s \
22
# RUN: | llvm-readobj -r - | FileCheck %s
33
# RUN: not llvm-mc -triple riscv64-unknown-linux-gnu -filetype obj --defsym ERR=1 -o /dev/null %s 2>&1 \
4-
# RUN: | FileCheck %s --check-prefix CHECK-ERROR
4+
# RUN: | FileCheck %s --check-prefix=ERROR
55

6-
# CHECK: Relocations [
7-
# CHECK: .relasx {
8-
# CHECK-NEXT: 0x0 R_RISCV_ADD64 y 0x0
9-
# CHECK-NEXT: 0x0 R_RISCV_SUB64 x 0x0
10-
# CHECK: }
11-
# CHECK: .relasy {
12-
# CHECK-NEXT: 0x0 R_RISCV_ADD64 x 0x0
13-
# CHECK-NEXT: 0x0 R_RISCV_SUB64 y 0x0
14-
# CHECK: }
15-
# CHECK: .relasa {
16-
# CHECK-NEXT: 0x0 R_RISCV_ADD64 a 0x0
17-
# CHECK-NEXT: 0x0 R_RISCV_SUB64 z 0x0
18-
# CHECK: }
6+
# CHECK: Relocations [
7+
# CHECK-NEXT: Section ({{.*}}) .rela.alloc_w {
8+
# CHECK-NEXT: 0x0 R_RISCV_ADD64 extern 0x0
9+
# CHECK-NEXT: 0x0 R_RISCV_SUB64 w 0x0
10+
# CHECK-NEXT: 0x8 R_RISCV_ADD64 w 0x0
11+
# CHECK-NEXT: 0x8 R_RISCV_SUB64 extern 0x0
12+
# CHECK-NEXT: }
13+
# CHECK-NEXT: Section ({{.*}}) .rela.alloc_x {
14+
# CHECK-NEXT: 0x0 R_RISCV_ADD64 y 0x0
15+
# CHECK-NEXT: 0x0 R_RISCV_SUB64 x 0x0
16+
# CHECK-NEXT: }
17+
# CHECK-NEXT: Section ({{.*}}) .rela.alloc_y {
18+
# CHECK-NEXT: 0x0 R_RISCV_ADD64 x 0x0
19+
# CHECK-NEXT: 0x0 R_RISCV_SUB64 y 0x0
20+
# CHECK-NEXT: }
21+
# CHECK-NEXT: Section ({{.*}}) .rela.nonalloc_y {
22+
# CHECK-NEXT: 0x0 R_RISCV_ADD64 nx 0x0
23+
# CHECK-NEXT: 0x0 R_RISCV_SUB64 ny 0x0
24+
# CHECK-NEXT: }
1925
# CHECK-NEXT: ]
2026

21-
.section sx,"aw",@progbits
22-
x:
23-
.quad y-x
27+
.section .alloc_w,"aw",@progbits; w:
28+
.quad extern-w
29+
.quad w-extern
30+
.section .alloc_x,"aw",@progbits; x:
31+
.quad y-x
32+
.section .alloc_y,"aw",@progbits; y:
33+
.quad x-y
2434

25-
.section sy,"aw",@progbits
26-
y:
27-
.quad x-y
28-
29-
.section sz
30-
z:
35+
.section .nonalloc_w; nw:
3136
.ifdef ERR
32-
.quad z-a
33-
34-
# CHECK-ERROR: Cannot represent a difference across sections
35-
# CHECK-ERROR: .quad z-a
36-
# CHECK-ERROR: ^
37-
.else
38-
.quad 0
37+
# ERROR: :[[#@LINE+1]]:7: error: unsupported relocation type
38+
.quad extern-nw
39+
# ERROR: :[[#@LINE+1]]:7: error: symbol 'extern' can not be undefined in a subtraction expression
40+
.quad nw-extern
3941
.endif
40-
41-
.section sa
42-
a:
43-
.quad a-z
42+
.section .nonalloc_x; nx:
43+
.ifdef ERR
44+
# ERROR: :[[#@LINE+1]]:7: error: unsupported relocation type
45+
.quad ny-nx
46+
.endif
47+
.section .nonalloc_y; ny:
48+
.quad nx-ny
4449

4550
## .apple_names/.apple_types are fixed-size and do not need fixups.
4651
## llvm-dwarfdump --apple-names does not process R_RISCV_{ADD,SUB}32 in them.

0 commit comments

Comments
 (0)