Author: Alex Bradbury Date: 2023-02-27T09:14:42+01:00 New Revision: e0242291aaa9d5bc619781dad7e1191769c73726
URL: https://github.com/llvm/llvm-project/commit/e0242291aaa9d5bc619781dad7e1191769c73726 DIFF: https://github.com/llvm/llvm-project/commit/e0242291aaa9d5bc619781dad7e1191769c73726.diff LOG: [lld][RISCV][test] Expand testing in riscv-attributes.s This patch is related to the discussion in <https://discourse.llvm.org/t/rfc-resolving-issues-related-to-extension-versioning-in-risc-v/68472/1>. It slightly expands the coverage of behaviour for unrecognized extensions (there are slightly different forms of error for zfoo vs e.g. 'y'), and adds coverage for an extension with an unrecognized/unsupported version number. Use "unrecognized" terminology because the expectation is the error checking will be reduced in a follow-up patch posted for review. (cherry picked from commit 8b5004864aab71859e961af02eb1a5ceeae887f7) Added: Modified: lld/test/ELF/riscv-attributes.s Removed: ################################################################################ diff --git a/lld/test/ELF/riscv-attributes.s b/lld/test/ELF/riscv-attributes.s index 3776673c5f142..a8326eb92aa51 100644 --- a/lld/test/ELF/riscv-attributes.s +++ b/lld/test/ELF/riscv-attributes.s @@ -14,9 +14,17 @@ # RUN: ld.lld a.o b.o c.o -o out2 # RUN: llvm-readobj --arch-specific out2 | FileCheck %s --check-prefix=CHECK2 -# RUN: llvm-mc -filetype=obj -triple=riscv64 invalid_ext.s -o invalid_ext.o -# RUN: not ld.lld invalid_ext.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=INVALID_EXT --implicit-check-not=error: -# INVALID_EXT: error: invalid_ext.o:(.riscv.attributes): rv64i2p0_y2p0: invalid standard user-level extension 'y' +# RUN: llvm-mc -filetype=obj -triple=riscv64 unrecognized_ext1.s -o unrecognized_ext1.o +# RUN: not ld.lld unrecognized_ext1.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=UNRECOGNIZED_EXT1 --implicit-check-not=error: +# UNRECOGNIZED_EXT1: error: unrecognized_ext1.o:(.riscv.attributes): rv64i2p0_y2p0: invalid standard user-level extension 'y' + +# RUN: llvm-mc -filetype=obj -triple=riscv64 unrecognized_ext2.s -o unrecognized_ext2.o +# RUN: not ld.lld unrecognized_ext2.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=UNRECOGNIZED_EXT2 --implicit-check-not=error: +# UNRECOGNIZED_EXT2: error: unrecognized_ext2.o:(.riscv.attributes): rv64i2p0_zmadeup1p0: unsupported version number 1.0 for extension 'zmadeup' + +# RUN: llvm-mc -filetype=obj -triple=riscv64 unrecognized_version.s -o unrecognized_version.o +# RUN: not ld.lld unrecognized_version.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=UNRECOGNIZED_VERSION --implicit-check-not=error: +# UNRECOGNIZED_VERSION: error: unrecognized_version.o:(.riscv.attributes): rv64i99p0: unsupported version number 99.0 for extension 'i' ## A zero value attribute is not printed. # RUN: llvm-mc -filetype=obj -triple=riscv64 unaligned_access_0.s -o unaligned_access_0.o @@ -127,7 +135,7 @@ .attribute priv_spec, 2 .attribute priv_spec_minor, 2 -#--- invalid_ext.s +#--- unrecognized_ext1.s .section .riscv.attributes,"",@0x70000003 .byte 0x41 .long .Lend-.riscv.attributes-1 @@ -139,6 +147,30 @@ .asciz "rv64i2p0_y2p0" .Lend: +#--- unrecognized_ext2.s +.section .riscv.attributes,"",@0x70000003 +.byte 0x41 +.long .Lend-.riscv.attributes-1 +.asciz "riscv" # vendor +.Lbegin: +.byte 1 # Tag_File +.long .Lend-.Lbegin +.byte 5 # Tag_RISCV_arch +.asciz "rv64i2p0_zmadeup1p0" +.Lend: + +#--- unrecognized_version.s +.section .riscv.attributes,"",@0x70000003 +.byte 0x41 +.long .Lend-.riscv.attributes-1 +.asciz "riscv" # vendor +.Lbegin: +.byte 1 # Tag_File +.long .Lend-.Lbegin +.byte 5 # Tag_RISCV_arch +.asciz "rv64i99p0" +.Lend: + #--- unaligned_access_0.s .attribute unaligned_access, 0 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits