llvm/test/MC/RISCV/rv32c-fuzzed-invalid.s
Ana Pazos bb4f57ce91 [RISCV] Fixed Assertion`Kind == Immediate && "Invalid type access!"' failed.
Summary:
Missing check for isImm() in some Immediate classes.

This bug was uncovered by a LLVM MC Assembler Protocol Buffer Fuzzer
for the RISC-V assembly language.

Reviewers: hiraditya, asb

Reviewed By: hiraditya, asb

Subscribers: llvm-commits, hiraditya, kito-cheng, shiva0217, rkruppe, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, zzheng, edward-jones, mgrang, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei

Differential Revision: https://reviews.llvm.org/D50797

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@340674 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-24 23:47:49 +00:00

18 lines
1.0 KiB
ArmAsm

# REQUIRES: asserts
# RUN: not llvm-mc -triple riscv32 -mattr=+c,+f,+d < %s 2>&1 | FileCheck %s
#
# Fuzzed test cases produced by a LLVM MC Assembler
# Protocol Buffer Fuzzer for the RISC-V assembly language.
#
c.addi x13,f30,0 # CHECK: error: immediate must be non-zero in the range [-32, 31]
c.swsp x0,(f14) # CHECK: error: immediate must be a multiple of 4 bytes in the range [0, 252]
c.lui x4,x0 # CHECK: error: immediate must be in [0xfffe0, 0xfffff] or [1, 31]
c.li x6,x6,x0,x0 # CHECK: error: immediate must be an integer in the range [-32, 31]
c.addi16sp 2,(x0) # CHECK: error: invalid operand for instruction
c.fsdsp f9,x0,0 # CHECK: error: immediate must be a multiple of 8 bytes in the range [0, 504]
c.flw f15,x14,x0 # CHECK: error: immediate must be a multiple of 4 bytes in the range [0, 124]
c.fld f8,f30,x17 # CHECK: error: immediate must be a multiple of 8 bytes in the range [0, 248]
c.addi4spn x8,x2,x8 # CHECK: error: immediate must be a multiple of 4 bytes in the range [4, 1020]