summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/MC/ARM/arm-elf-relocation-diagnostics.s27
-rw-r--r--llvm/test/MC/ARM/arm-elf-relocations.s10
2 files changed, 37 insertions, 0 deletions
diff --git a/llvm/test/MC/ARM/arm-elf-relocation-diagnostics.s b/llvm/test/MC/ARM/arm-elf-relocation-diagnostics.s
new file mode 100644
index 00000000000..5fe903f7161
--- /dev/null
+++ b/llvm/test/MC/ARM/arm-elf-relocation-diagnostics.s
@@ -0,0 +1,27 @@
+@ RUN: not llvm-mc -triple armv7-eabi -filetype obj -o - %s 2>&1 \
+@ RUN: | FileCheck %s
+@ RUN: not llvm-mc -triple thumbv7-eabi -filetype obj -o - %s 2>&1 \
+@ RUN: | FileCheck %s
+
+ .byte target(sbrel)
+@ CHECK: error: relocated expression must be 32-bit
+@ CHECK: .byte target(sbrel)
+@ CHECK: ^
+
+@ TODO: enable these negative test cases
+@ .hword target(sbrel)
+@ @ CHECK-SBREL-HWORD: error: relocated expression must be 32-bit
+@ @ CHECK-SBREL-HWORD: .hword target(sbrel)
+@ @ CHECK-SBREL-HWORD: ^
+@
+@ .short target(sbrel)
+@ @ CHECK-SBREL-SHORT: error: relocated expression must be 32-bit
+@ @ CHECK-SBREL-SHORT: .short target(sbrel)
+@ @ CHECK-SBREL-SHORT: ^
+@
+@ .quad target(sbrel)
+@ @ CHECK-SBREL-SHORT: error: relocated expression must be 32-bit
+@ @ CHECK-SBREL-SHORT: .quad target(sbrel)
+@ @ CHECK-SBREL-SHORT: ^
+
+
diff --git a/llvm/test/MC/ARM/arm-elf-relocations.s b/llvm/test/MC/ARM/arm-elf-relocations.s
index 13d9d2b1e1b..4059591d95b 100644
--- a/llvm/test/MC/ARM/arm-elf-relocations.s
+++ b/llvm/test/MC/ARM/arm-elf-relocations.s
@@ -25,3 +25,13 @@
@ CHECK: 0x2 R_ARM_ABS16 abs16_1 0x0
@ CHECK: }
+ .section .text.r_arm_sbrel32
+
+ .word target(sbrel)
+ .word target(SBREL)
+
+@ CHECK: Section {{.*}} .rel.text.r_arm_sbrel32 {
+@ CHECK: 0x0 R_ARM_SBREL32 target 0x0
+@ CHECK: 0x4 R_ARM_SBREL32 target 0x0
+@ CHECK: }
+
OpenPOWER on IntegriCloud