[committed] [PR/target 102957] Allow Z*-ext extension with only 2 char.

Kito Cheng kito.cheng@sifive.com
Tue Nov 9 16:28:25 GMT 2021


We was assume the Z* extension should be more than 2 char, so we put an
assertion there, but it should just an error or warning rather than an
assertion, however RISC-V has add `Zk` extension, which just 2 char, so
actually, we should just allow that.

gcc/ChangeLog

	PR target/102957
	* common/config/riscv/riscv-common.c (multi_letter_subset_rank): Remove
	assertion for Z*-ext.

gcc/testsuite/ChangeLog

	* gcc.target/riscv/pr102957.c: New.
---
 gcc/common/config/riscv/riscv-common.c    | 1 -
 gcc/testsuite/gcc.target/riscv/pr102957.c | 5 +++++
 2 files changed, 5 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gcc.target/riscv/pr102957.c

diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv/riscv-common.c
index 37b6ea80086..f3c120b4cb4 100644
--- a/gcc/common/config/riscv/riscv-common.c
+++ b/gcc/common/config/riscv/riscv-common.c
@@ -202,7 +202,6 @@ multi_letter_subset_rank (const std::string &subset)
       high_order = 1;
       break;
     case 'z':
-      gcc_assert (subset.length () > 2);
       high_order = 2;
       break;
     case 'x':
diff --git a/gcc/testsuite/gcc.target/riscv/pr102957.c b/gcc/testsuite/gcc.target/riscv/pr102957.c
new file mode 100644
index 00000000000..8a7e541bf6d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/pr102957.c
@@ -0,0 +1,5 @@
+/* { dg-do compile } */
+/* { dg-options "-O -march=rv64gzb -mabi=lp64" } */
+int foo()
+{
+}
-- 
2.33.0



More information about the Gcc-patches mailing list