diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-05-24 14:26:46 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-05-24 14:26:46 +0000 |
commit | bfe3212dd807d018cb66479829fd81c8e7bd0f81 (patch) | |
tree | 881fd3800ad9f6e1dc8560763aae90edd641b483 /test/MC/SystemZ/tokens.s | |
parent | f386961da34426d12de8558ad04ad7f22c71489a (diff) | |
download | llvm-bfe3212dd807d018cb66479829fd81c8e7bd0f81.tar.gz llvm-bfe3212dd807d018cb66479829fd81c8e7bd0f81.tar.bz2 llvm-bfe3212dd807d018cb66479829fd81c8e7bd0f81.tar.xz |
[SystemZ] Improve AsmParser handling of invalid instructions
Previously, an invalid instruction like:
foo %r1, %r0
would generate the rather odd error message:
....: error: unknown token in expression
foo %r1, %r0
^
We now get the more informative:
....: error: invalid instruction
foo %r1, %r0
^
The same would happen if an address were used where a register was expected.
We now get "invalid operand for instruction" instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182644 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/SystemZ/tokens.s')
-rw-r--r-- | test/MC/SystemZ/tokens.s | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/test/MC/SystemZ/tokens.s b/test/MC/SystemZ/tokens.s new file mode 100644 index 0000000000..07b29d8ade --- /dev/null +++ b/test/MC/SystemZ/tokens.s @@ -0,0 +1,70 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid instruction +#CHECK: foo 100, 200 +#CHECK: error: register expected +#CHECK: foo 100(, 200 +#CHECK: error: register expected +#CHECK: foo 100(0), 200 +#CHECK: error: invalid operand +#CHECK: foo 100(%a0), 200 +#CHECK: error: %r0 used in an address +#CHECK: foo 100(%r0), 200 +#CHECK: error: invalid operand +#CHECK: foo 100(%r1,%a0), 200 +#CHECK: error: %r0 used in an address +#CHECK: foo 100(%r1,%r0), 200 +#CHECK: error: unexpected token in address +#CHECK: foo 100(%r1,%r2, 200 +#CHECK: error: invalid instruction +#CHECK: foo 100(%r1,%r2), 200 +#CHECK: error: unexpected token in argument list +#CHECK: foo 100(%r1,%r2)(, 200 +#CHECK: error: invalid instruction +#CHECK: foo %r0, 200 +#CHECK: error: invalid instruction +#CHECK: foo %r15, 200 +#CHECK: error: invalid register +#CHECK: foo %r16, 200 +#CHECK: error: invalid instruction +#CHECK: foo %f0, 200 +#CHECK: error: invalid instruction +#CHECK: foo %f15, 200 +#CHECK: error: invalid register +#CHECK: foo %f16, 200 +#CHECK: error: invalid instruction +#CHECK: foo %a0, 200 +#CHECK: error: invalid instruction +#CHECK: foo %a15, 200 +#CHECK: error: invalid register +#CHECK: foo %a16, 200 +#CHECK: error: invalid register +#CHECK: foo %c, 200 +#CHECK: error: invalid register +#CHECK: foo %, 200 +#CHECK: error: unknown token in expression +#CHECK: foo {, 200 + + foo 100, 200 + foo 100(, 200 + foo 100(0), 200 + foo 100(%a0), 200 + foo 100(%r0), 200 + foo 100(%r1,%a0), 200 + foo 100(%r1,%r0), 200 + foo 100(%r1,%r2, 200 + foo 100(%r1,%r2), 200 + foo 100(%r1,%r2)(, 200 + foo %r0, 200 + foo %r15, 200 + foo %r16, 200 + foo %f0, 200 + foo %f15, 200 + foo %f16, 200 + foo %a0, 200 + foo %a15, 200 + foo %a16, 200 + foo %c, 200 + foo %, 200 + foo {, 200 |