summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2011-07-13 18:49:30 +0000
committerJim Grosbach <grosbach@apple.com>2011-07-13 18:49:30 +0000
commitbb24c595f71e8b111ce7f3a422845b2e5853ff78 (patch)
treee6e9e5616f10a169f848d55661d7ab56131f8737 /llvm/test
parentdffafded6c13a9b308433c85a1156501e65bb6e8 (diff)
downloadbcm5719-llvm-bb24c595f71e8b111ce7f3a422845b2e5853ff78.tar.gz
bcm5719-llvm-bb24c595f71e8b111ce7f3a422845b2e5853ff78.zip
Improve ARM assembly parsing diagnostics a bit.
Catch potential cascading errors on a malformed so_reg operand and bail after the first error. Add some tests for the diagnostics we do want. llvm-svn: 135055
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/MC/ARM/diagnostics.s43
1 files changed, 43 insertions, 0 deletions
diff --git a/llvm/test/MC/ARM/diagnostics.s b/llvm/test/MC/ARM/diagnostics.s
new file mode 100644
index 00000000000..dab84c1df10
--- /dev/null
+++ b/llvm/test/MC/ARM/diagnostics.s
@@ -0,0 +1,43 @@
+@ RUN: not llvm-mc -triple=armv7-apple-darwin < %s 2> %t
+@ RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
+
+@ Check for various assembly diagnostic messages on invalid input.
+
+ @ Out of range shift immediate values.
+ adc r1, r2, r3, lsl #invalid
+ adc r4, r5, r6, lsl #-1
+ adc r4, r5, r6, lsl #32
+ adc r4, r5, r6, lsr #-1
+ adc r4, r5, r6, lsr #33
+ adc r4, r5, r6, asr #-1
+ adc r4, r5, r6, asr #33
+ adc r4, r5, r6, ror #-1
+ adc r4, r5, r6, ror #32
+
+@ CHECK-ERRORS: error: invalid immediate shift value
+@ CHECK-ERRORS: adc r1, r2, r3, lsl #invalid
+@ CHECK-ERRORS: ^
+@ CHECK-ERRORS: error: immediate shift value out of range
+@ CHECK-ERRORS: adc r4, r5, r6, lsl #-1
+@ CHECK-ERRORS: ^
+@ CHECK-ERRORS: error: immediate shift value out of range
+@ CHECK-ERRORS: adc r4, r5, r6, lsl #32
+@ CHECK-ERRORS: ^
+@ CHECK-ERRORS: error: immediate shift value out of range
+@ CHECK-ERRORS: adc r4, r5, r6, lsr #-1
+@ CHECK-ERRORS: ^
+@ CHECK-ERRORS: error: immediate shift value out of range
+@ CHECK-ERRORS: adc r4, r5, r6, lsr #33
+@ CHECK-ERRORS: ^
+@ CHECK-ERRORS: error: immediate shift value out of range
+@ CHECK-ERRORS: adc r4, r5, r6, asr #-1
+@ CHECK-ERRORS: ^
+@ CHECK-ERRORS: error: immediate shift value out of range
+@ CHECK-ERRORS: adc r4, r5, r6, asr #33
+@ CHECK-ERRORS: ^
+@ CHECK-ERRORS: error: immediate shift value out of range
+@ CHECK-ERRORS: adc r4, r5, r6, ror #-1
+@ CHECK-ERRORS: ^
+@ CHECK-ERRORS: error: immediate shift value out of range
+@ CHECK-ERRORS: adc r4, r5, r6, ror #32
+@ CHECK-ERRORS: ^
OpenPOWER on IntegriCloud