From 76d4accffd19a094761bf25b2d66435ce6642105 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Fri, 29 Mar 2019 21:51:58 +0000 Subject: RISC-V: Fix __riscv_compressed regression. This was accidentally broken by the patch adding ELF attribute support. The __riscv_compressed predefined macro is not being defined when the target supports the C extension. The fix adds testcases to verify that all of the predefined macros are correct for various option combinations. gcc/ * common/config/riscv/riscv-common.c (riscv_parse_arch_string): Clear MASK_RVC and then set if C subset supported. gcc/testsuite/ * gcc.target/riscv/predef-1.c: New. * gcc.target/riscv/predef-2.c: New. * gcc.target/riscv/predef-3.c: New. * gcc.target/riscv/predef-4.c: New. * gcc.target/riscv/predef-5.c: New. * gcc.target/riscv/predef-6.c: New. * gcc.target/riscv/predef-7.c: New. * gcc.target/riscv/predef-8.c: New. From-SVN: r270026 --- gcc/common/config/riscv/riscv-common.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gcc/common') diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv/riscv-common.c index 72c43c6..9452bd3 100644 --- a/gcc/common/config/riscv/riscv-common.c +++ b/gcc/common/config/riscv/riscv-common.c @@ -564,6 +564,10 @@ riscv_parse_arch_string (const char *isa, int *flags, location_t loc) if (subset_list->lookup ("d")) *flags |= MASK_DOUBLE_FLOAT; + *flags &= ~MASK_RVC; + if (subset_list->lookup ("c")) + *flags |= MASK_RVC; + if (current_subset_list) delete current_subset_list; -- cgit v1.1