From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2093) id 98018398BC39; Thu, 28 Jan 2021 03:26:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 98018398BC39 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Kito Cheng To: gcc-cvs@gcc.gnu.org Subject: [gcc r11-6946] RISC-V: Fix -march option parsing when extension exists. X-Act-Checkin: gcc X-Git-Author: Xing GUO X-Git-Refname: refs/heads/master X-Git-Oldrev: aa69f0a8203095b5a689fae48d5ca8006ecfca61 X-Git-Newrev: f76d0d86454baf99ada0748c73a29816854e1b91 Message-Id: <20210128032658.98018398BC39@sourceware.org> Date: Thu, 28 Jan 2021 03:26:58 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2021 03:26:58 -0000 https://gcc.gnu.org/g:f76d0d86454baf99ada0748c73a29816854e1b91 commit r11-6946-gf76d0d86454baf99ada0748c73a29816854e1b91 Author: Xing GUO Date: Thu Jan 28 11:22:40 2021 +0800 RISC-V: Fix -march option parsing when extension exists. This patch fixes -march option parsing when `p` extension exists, e.g., -march=rv64imafdcp should produce .attribute arch, "rv64i2p0_m2p0_a2p0_f2p0_d2p0_c2p0_p" rather than .attribute arch, "rv64i2p0_m2p0_a2p0_f2p0_d2p0_c_p" gcc/ChangeLog: * common/config/riscv/riscv-common.c (riscv_subset_list::parsing_subset_version): Fix -march option parsing when `p` extension exists. gcc/testsuite/ChangeLog: * gcc.target/riscv/attribute-18.c: New test. Diff: --- gcc/common/config/riscv/riscv-common.c | 4 +--- gcc/testsuite/gcc.target/riscv/attribute-18.c | 4 ++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv/riscv-common.c index b3f5c07c819..6bbe25dba89 100644 --- a/gcc/common/config/riscv/riscv-common.c +++ b/gcc/common/config/riscv/riscv-common.c @@ -527,9 +527,7 @@ riscv_subset_list::parsing_subset_version (const char *ext, /* Might be beginning of `p` extension. */ if (std_ext_p) { - *major_version = version; - *minor_version = 0; - *explicit_version_p = true; + get_default_version (ext, major_version, minor_version); return p; } else diff --git a/gcc/testsuite/gcc.target/riscv/attribute-18.c b/gcc/testsuite/gcc.target/riscv/attribute-18.c new file mode 100644 index 00000000000..1fd80fed51b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/attribute-18.c @@ -0,0 +1,4 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64imafdcp -mabi=lp64d -misa-spec=2.2" } */ +int foo() {} +/* { dg-final { scan-assembler ".attribute arch, \"rv64i2p0_m2p0_a2p0_f2p0_d2p0_c2p0_p\"" } } */