aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@wdc.com>2020-02-06 13:38:31 +0000
committerMaciej W. Rozycki <macro@wdc.com>2020-02-06 13:38:31 +0000
commitb93a662bcf1eaebac6af70684fbc5bd510fcadcf (patch)
tree47fc28518ede02b708b319c7efc6bf187dd4e4ac
parentc2e6f74465797356e57f77c3abc531de580b7f85 (diff)
downloadgdb-b93a662bcf1eaebac6af70684fbc5bd510fcadcf.zip
gdb-b93a662bcf1eaebac6af70684fbc5bd510fcadcf.tar.gz
gdb-b93a662bcf1eaebac6af70684fbc5bd510fcadcf.tar.bz2
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.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-v850.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 25b6387..95152ad 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2020-02-06 Maciej W. Rozycki <macro@wdc.com>
+
+ * 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 <amodra@gmail.com>
* elf64-ppc.c (ppc_stub_plt_branch): Match comment with reality.
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index 667c467..21cd4f2 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
{