From 3a6a0158ee07ba2f960ae4a898897460382dc5ec Mon Sep 17 00:00:00 2001 From: Cooper Qu Date: Wed, 22 Sep 2021 16:14:36 +0800 Subject: [PATCH] RISC-V: Fix wrong version number when arch contains 'p'. When specify a default version for p extension in riscv_supported_std_ext[](elfxx-riscv.c) and assembling with -march=rv32imacp, the c extension's version in attribute will become 0p0, the expectation is 2p0. TODO: Remember to add testcase when we have supported standrad p in the future. bfd/ PR gas/28372 * elfxx-riscv.c (riscv_parsing_subset_version): Break if p represent the 'p' extension. Change-Id: Ia4e0cf26f3d7d07acaee8cefd86707ecac663a59 --- bfd/elfxx-riscv.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index c3d019c03a6..044cc63d09e 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1536,13 +1536,9 @@ riscv_parsing_subset_version (const char *p, { np = *(p + 1); + /* Might be beginning of `p` extension. */ if (!ISDIGIT (np)) - { - /* Might be beginning of `p` extension. */ - *major_version = version; - *minor_version = 0; - return p; - } + break; *major_version = version; major_p = false; -- 2.30.2