xref: /llvm-project/llvm/test/MC/RISCV/option-invalid.s (revision 5f7477a72b826d0d6e7369ebe93cefcd55682d95)
1# RUN: not llvm-mc -triple riscv32 < %s 2>&1 \
2# RUN:   | FileCheck --implicit-check-not=error: %s
3
4# CHECK: :[[#@LINE+1]]:8: error: expected identifier
5.option
6
7# CHECK: :[[#@LINE+1]]:9: error: expected identifier
8.option 123
9
10# CHECK: :[[#@LINE+1]]:9: error: expected identifier
11.option "str"
12
13# CHECK: :[[#@LINE+1]]:13: error: expected newline
14.option rvc foo
15
16# CHECK: :[[#@LINE+1]]:23: error: unexpected token, expected + or -
17.option arch, +f, +d, rv32ifd, -d
18
19# CHECK: :[[#@LINE+1]]:22: error: expected newline
20.option arch, rv32ifd, +f, +d
21
22# CHECK: :[[#@LINE+1]]:16: error: unexpected token, expected identifier
23.option arch, +"c"
24
25# CHECK: :[[#@LINE+1]]:16: error: unknown extension feature
26.option arch, +x
27
28# CHECK: :[[#@LINE+1]]:16: error: unknown extension feature
29.option arch, +relax
30
31# CHECK: :[[#@LINE+1]]:16: error: unexpected token, expected identifier
32.option arch, +
33
34# CHECK: :[[#@LINE+1]]:18: error: expected comma
35.option arch, +c foo
36
37# CHECK: :[[#@LINE+1]]:16: error: extension version number parsing not currently implemented
38.option arch, +c2p0
39
40.option arch, +d
41# CHECK: :[[#@LINE+1]]:16: error: can't disable f extension; d extension requires f extension
42.option arch, -f
43
44# CHECK: :[[#@LINE+1]]:16: error: can't disable zicsr extension; f extension requires zicsr extension
45.option arch, -zicsr
46
47# CHECK: :[[#@LINE+1]]:20: error: 'f' and 'zfinx' extensions are incompatible
48.option arch, +f, +zfinx
49
50## Make sure the above error isn't sticky
51.option arch, +f
52
53# CHECK: :[[#@LINE+1]]:13: error: expected newline
54.option rvc foo
55
56# CHECK: :[[#@LINE+1]]:12: warning: unknown option, expected 'push', 'pop', 'rvc', 'norvc', 'arch', 'relax' or 'norelax'
57.option bar
58
59# CHECK: :[[#@LINE+1]]:12: error: .option pop with no .option push
60.option pop
61
62# CHECK: :[[#@LINE+1]]:14: error: expected newline
63.option push 123
64
65# CHECK: :[[#@LINE+1]]:13: error: expected newline
66.option pop 123
67
68# CHECK: :[[#@LINE+1]]:15: error: bad arch string switching from rv32 to rv64
69.option arch, rv64gc
70