From e65b1a78686f840ab46fe97355d674919185adc8 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Mon, 5 Feb 2018 14:05:51 +0000 Subject: [PATCH] RISC-V/BFD: Correct a missing initializer error with pre-4.7 GCC Correct a commit 9d06997adb88 ("RISC-V: Relax RISCV_PCREL_* to RISCV_GPREL_*") regression and remove a `-Wmissing-field-initializers' compilation error: cc1: warnings being treated as errors .../bfd/elfnn-riscv.c: In function '_bfd_riscv_relax_pc': .../bfd/elfnn-riscv.c:3117: error: missing initializer .../bfd/elfnn-riscv.c:3117: error: (near initialization for 'hi_reloc.hi_addend') make[4]: *** [elf64-riscv.lo] Error 1 which for versions of GCC before 4.7 prevents support for RISC-V targets from being built. See also GCC PR c/36750. bfd/ * elfnn-riscv.c (_bfd_riscv_relax_pc): Use `memset' to initialize `hi_reloc'. --- bfd/ChangeLog | 5 +++++ bfd/elfnn-riscv.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9a8a3201019..ecd1c7beea8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2018-02-05 Maciej W. Rozycki + + * elfnn-riscv.c (_bfd_riscv_relax_pc): Use `memset' to + initialize `hi_reloc'. + 2018-02-05 Maciej W. Rozycki * elfxx-mips.c (_bfd_mips_elf_section_processing): For diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index f2136b2f902..3524fede0f7 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -3143,7 +3143,8 @@ _bfd_riscv_relax_pc (bfd *abfd, /* Chain the _LO relocs to their cooresponding _HI reloc to compute the * actual target address. */ - riscv_pcgp_hi_reloc hi_reloc = {0}; + riscv_pcgp_hi_reloc hi_reloc; + memset (&hi_reloc, 0, sizeof (hi_reloc)); switch (ELFNN_R_TYPE (rel->r_info)) { case R_RISCV_PCREL_LO12_I: -- 2.30.2