From: Cooper Qu Date: Wed, 22 Sep 2021 08:14:36 +0000 (+0800) Subject: RISC-V: Fix wrong version number when arch contains 'p'. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3a6a0158ee07ba2f960ae4a898897460382dc5ec;p=binutils-gdb.git 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 --- 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;