[PATCH] RISC-V/gas: fix build with certain gcc versions

Nelson Chu nelson@rivosinc.com
Fri Oct 28 10:33:07 GMT 2022


Thanks for fixing this!  Please commit.

Thanks
Nelson

On Fri, Oct 28, 2022 at 6:06 PM Jan Beulich <jbeulich@suse.com> wrote:
>
> Some versions of gcc warn by default about shadowed outer-scope
> declarations. This affects frag_align_code, which is declared in
> frags.h. Rename the offending function parameter. While there also
> switch to using true/false at the function call sites.
>
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -549,7 +549,7 @@ make_mapping_symbol (enum riscv_seg_msta
>  void
>  riscv_mapping_state (enum riscv_seg_mstate to_state,
>                      int max_chars,
> -                    bool frag_align_code)
> +                    bool fr_align_code)
>  {
>    enum riscv_seg_mstate from_state =
>         seg_info (now_seg)->tc_segment_info_data.map_state;
> @@ -574,7 +574,7 @@ riscv_mapping_state (enum riscv_seg_msta
>      }
>    else if (seg_arch_symbol != 0
>            && to_state == MAP_INSN
> -          && !frag_align_code
> +          && !fr_align_code
>            && strcmp (riscv_rps_as.subset_list->arch_str,
>                       S_GET_NAME (seg_arch_symbol) + 2) != 0)
>      {
> @@ -3540,7 +3540,7 @@ md_assemble (char *str)
>         return;
>      }
>
> -  riscv_mapping_state (MAP_INSN, 0, 0/* frag_align_code */);
> +  riscv_mapping_state (MAP_INSN, 0, false/* fr_align_code */);
>
>    const struct riscv_ip_error error = riscv_ip (str, &insn, &imm_expr,
>                                                 &imm_reloc, op_hash);
> @@ -4219,7 +4219,7 @@ riscv_frag_align_code (int n)
>    fix_new_exp (frag_now, nops - frag_now->fr_literal, 0,
>                &ex, false, BFD_RELOC_RISCV_ALIGN);
>
> -  riscv_mapping_state (MAP_INSN, worst_case_bytes, 1/* frag_align_code */);
> +  riscv_mapping_state (MAP_INSN, worst_case_bytes, true/* fr_align_code */);
>
>    /* We need to start a new frag after the alignment which may be removed by
>       the linker, to prevent the assembler from computing static offsets.
> @@ -4293,10 +4293,10 @@ riscv_init_frag (fragS * fragP, int max_
>      case rs_fill:
>      case rs_align:
>      case rs_align_test:
> -      riscv_mapping_state (MAP_DATA, max_chars, 0/* frag_align_code */);
> +      riscv_mapping_state (MAP_DATA, max_chars, false/* fr_align_code */);
>        break;
>      case rs_align_code:
> -      riscv_mapping_state (MAP_INSN, max_chars, 1/* frag_align_code */);
> +      riscv_mapping_state (MAP_INSN, max_chars, true/* fr_align_code */);
>        break;
>      default:
>        break;
> @@ -4570,7 +4570,7 @@ s_riscv_insn (int x ATTRIBUTE_UNUSED)
>    save_c = *input_line_pointer;
>    *input_line_pointer = '\0';
>
> -  riscv_mapping_state (MAP_INSN, 0, 0/* frag_align_code */);
> +  riscv_mapping_state (MAP_INSN, 0, false/* fr_align_code */);
>
>    struct riscv_ip_error error = riscv_ip (str, &insn, &imm_expr,
>                                 &imm_reloc, insn_type_hash);


More information about the Binutils mailing list