HI Jiawei: Thanks for the fix!
Two comments: - Could you add testcase like https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/gcc.target/riscv/arch-12.c - And I would prefer those check happened in riscv_subset_list::parse @gcc/common/config/riscv/riscv-common.cc On Sun, Mar 26, 2023 at 4:36 PM Jiawei <jia...@iscas.ac.cn> wrote: > > Z*inx is conflict with float extensions, add incompatible check when > z*inx and hard_float both enabled. > > gcc/ChangeLog: > > * config/riscv/riscv.cc (riscv_option_override): New check. > > --- > gcc/config/riscv/riscv.cc | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc > index 76eee4a55e9..162ba14d3c7 100644 > --- a/gcc/config/riscv/riscv.cc > +++ b/gcc/config/riscv/riscv.cc > @@ -6285,6 +6285,10 @@ riscv_option_override (void) > && riscv_abi != ABI_LP64 && riscv_abi != ABI_ILP32E) > error ("z*inx requires ABI ilp32, ilp32e or lp64"); > > + // Zfinx is conflict with float extensions. > + if (TARGET_ZFINX && TARGET_HARD_FLOAT) > + error ("z*inx is conflict with float extensions"); > + > /* We do not yet support ILP32 on RV64. */ > if (BITS_PER_WORD != POINTER_SIZE) > error ("ABI requires %<-march=rv%d%>", POINTER_SIZE); > -- > 2.25.1 >