[PATCH 17/19] RISC-V: drop dead code from subset parsing

Jiawei jiawei@iscas.ac.cn
Wed Apr 29 12:50:53 GMT 2026


> In riscv_update_subset1(), when explicit_subset is NULL, errmsg_internal
> is the empty string. There's no need then to pass this as an extra
> argument to the error handler.
>
> riscv_parsing_subset_version() can't return NULL. Dropping the respective
> checks clarifies that there is no issue with a missing error message (gas
> would rely on one being emitted when parsing fails).
>
> --- a/bfd/elfxx-riscv.c
> +++ b/bfd/elfxx-riscv.c
> @@ -2141,11 +2141,6 @@ riscv_parse_extensions (riscv_parse_subs
>        end_of_version =
>      riscv_parsing_subset_version (q, &major_version, &minor_version);
>        *q = '\0';
> -      if (end_of_version == NULL)
> -    {
> -      free (subset);
> -      return NULL;
> -    }
>
>        /* Check if the prefixed extension name is well-formed. */
>        if (class != RV_ISA_CLASS_SINGLE
> @@ -2700,11 +2695,6 @@ riscv_update_subset1 (riscv_parse_subset
>        end_of_version =
>      riscv_parsing_subset_version (q, &major_version, &minor_version);
>        *q = '\0';
> -      if (end_of_version == NULL)
> -    {
> -      free (subset);
> -      return false;
> -    }
>
>        if (strlen (subset) == 0
>        || (strlen (subset) == 1
> @@ -2725,8 +2715,8 @@ riscv_update_subset1 (riscv_parse_subset
>        if (removed)
>          {
>            rps->error_handler
> -        (_("%sdeprecated - extension `%s' in %s `%s'"),
> -           errmsg_internal, subset, errmsg_caller, implicit_exts);
> +        (_("deprecated - extension `%s' in %s `%s'"),
> +           subset, errmsg_caller, implicit_exts);
>            free (subset);
>            return false;
>          }
> @@ -2735,8 +2725,8 @@ riscv_update_subset1 (riscv_parse_subset
>             || strcmp (subset, "g") == 0)
>          {
>            rps->error_handler
> -        (_("%scannot + base extension `%s' in %s `%s'"),
> -           errmsg_internal, subset, errmsg_caller, implicit_exts);
> +        (_("cannot + base extension `%s' in %s `%s'"),
> +           subset, errmsg_caller, implicit_exts);
>            free (subset);
>            return false;
>          }
>
LGTM.

Reviewed-by: Jiawei <jiawei@iscas.ac.cn>



More information about the Binutils mailing list