diff options
author | Maciej W. Rozycki <macro@wdc.com> | 2020-02-06 13:38:31 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@wdc.com> | 2020-02-06 13:38:31 +0000 |
commit | b93a662bcf1eaebac6af70684fbc5bd510fcadcf (patch) | |
tree | 47fc28518ede02b708b319c7efc6bf187dd4e4ac /bfd/elf32-v850.c | |
parent | c2e6f74465797356e57f77c3abc531de580b7f85 (diff) | |
download | gdb-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.
Diffstat (limited to 'bfd/elf32-v850.c')
-rw-r--r-- | bfd/elf32-v850.c | 2 |
1 files changed, 1 insertions, 1 deletions
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 { |