llvm-project/llvm/test/MC/RISCV/invalid-attribute.s
Paul Kirth b146a57f67
Reapply "[RISCV] Support RISCV Atomics ABI attributes (#84597)"
This patch adds support for the atomic_abi attribute, specifid in
https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc#tag_riscv_atomic_abi-14-uleb128version.

This was previously reverted due to ld.bfd segfaulting w/ unknown riscv
attributes. Attribute emission is now guarded by a backend flag
`--riscv-abi-attributes`, which is off by default. Linker support in
LLD for attribute merging is now in a standalone patch.

Reviewers: kito-cheng, MaskRay, asb

Reviewed By: MaskRay

Pull Request: https://github.com/llvm/llvm-project/pull/90266
2024-07-02 08:23:03 -07:00

39 lines
1.3 KiB
ArmAsm

## Negative tests:
## - Unknown attribute name.
## - Feed integer value to string type attribute.
## - Feed string value to integer type attribute.
## - Invalid arch string.
# RUN: not llvm-mc %s -triple=riscv32 -filetype=asm 2>&1 | FileCheck %s
# RUN: not llvm-mc %s -triple=riscv64 -filetype=asm 2>&1 | FileCheck %s
.attribute unknown, "unknown"
# CHECK: [[@LINE-1]]:12: error: attribute name not recognised: unknown
.attribute arch, "foo"
# CHECK: [[@LINE-1]]:18: error: invalid arch name 'foo', string must begin with rv32{i,e,g}, rv64{i,e,g}, or a supported profile name{{$}}
.attribute arch, "rv32i2p1_y2p0"
# CHECK: [[@LINE-1]]:18: error: invalid arch name 'rv32i2p1_y2p0', invalid standard user-level extension 'y'
.attribute stack_align, "16"
# CHECK: [[@LINE-1]]:25: error: expected numeric constant
.attribute unaligned_access, "0"
# CHECK: [[@LINE-1]]:30: error: expected numeric constant
.attribute priv_spec, "2"
# CHECK: [[@LINE-1]]:23: error: expected numeric constant
.attribute priv_spec_minor, "0"
# CHECK: [[@LINE-1]]:29: error: expected numeric constant
.attribute priv_spec_revision, "0"
# CHECK: [[@LINE-1]]:32: error: expected numeric constant
.attribute arch, 30
# CHECK: [[@LINE-1]]:18: error: expected string constant
.attribute atomic_abi, "16"
# CHECK: [[@LINE-1]]:24: error: expected numeric constant