From b93a662bcf1eaebac6af70684fbc5bd510fcadcf Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Thu, 6 Feb 2020 13:38:31 +0000 Subject: [PATCH] V850/BFD: Fix uninitialized `insn[4]' with R_V850_LONGJUMP warning Correctly point at `insn[2]' rather than `insn[4]' in determining that the third instruction from where an R_V850_LONGJUMP relocation points at is not a recognized one, fixing a problem with commit 86aba9dbfa7e ("Add linker relaxation to v850 toolchain") resulting in a build failure like: .../bfd/elf32-v850.c: In function 'v850_elf_relax_section': .../bfd/elf32-v850.c:3854:5: error: 'insn[4]' may be used uninitialized in this function [-Werror=maybe-uninitialized] 3854 | _bfd_error_handler | ^~~~~~~~~~~~~~~~~~ 3855 | /* xgettext:c-format */ | ~~~~~~~~~~~~~~~~~~~~~~~ 3856 | (_("%pB: %#" PRIx64 ": warning: %s points to " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3857 | "unrecognized insn %#x"), | ~~~~~~~~~~~~~~~~~~~~~~~~~ 3858 | abfd, | ~~~~~ 3859 | (uint64_t) (irel->r_offset + no_match), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3860 | "R_V850_LONGJUMP", | ~~~~~~~~~~~~~~~~~~ 3861 | insn[no_match]); | ~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors Makefile:1608: recipe for target 'elf32-v850.lo' failed make[4]: *** [elf32-v850.lo] Error 1 with GCC 10. bfd/ * elf32-v850.c (v850_elf_relax_section): Fix the index used for reporting an unrecognized instruction with R_V850_LONGJUMP. --- bfd/ChangeLog | 5 +++++ bfd/elf32-v850.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 25b6387dfc3..95152add849 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2020-02-06 Maciej W. Rozycki + + * elf32-v850.c (v850_elf_relax_section): Fix the index used for + reporting an unrecognized instruction with R_V850_LONGJUMP. + 2020-02-05 Alan Modra * elf64-ppc.c (ppc_stub_plt_branch): Match comment with reality. diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index 667c4677958..21cd4f29375 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -3837,7 +3837,7 @@ v850_elf_relax_section (bfd *abfd, if (no_match < 0 && ((insn[2] & JMP_R_MASK) != JMP_R || MOVEA_R2 (insn[1]) != JMP_R1 (insn[2]))) - no_match = 4; + no_match = 2; } else { -- 2.30.2