diff options
author | Jim Wilson <jimw@sifive.com> | 2019-03-29 21:51:58 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2019-03-29 14:51:58 -0700 |
commit | 76d4accffd19a094761bf25b2d66435ce6642105 (patch) | |
tree | 25679b323cfe11e1cf4d4467072deab3944f32be /gcc/common | |
parent | 54ae50ac4532b2a0d72cc03639b8179b500ec043 (diff) | |
download | gcc-76d4accffd19a094761bf25b2d66435ce6642105.zip gcc-76d4accffd19a094761bf25b2d66435ce6642105.tar.gz gcc-76d4accffd19a094761bf25b2d66435ce6642105.tar.bz2 |
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
Diffstat (limited to 'gcc/common')
-rw-r--r-- | gcc/common/config/riscv/riscv-common.c | 4 |
1 files changed, 4 insertions, 0 deletions
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; |