diff options
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/coff-sh.c | 2 | ||||
-rw-r--r-- | bfd/elf32-sh.c | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9789016..515a127 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2019-11-26 Nick Clifton <nickc@redhat.com> + + * elf32-sh.c (sh_elf_reloc): Use a signed_vma when checking for a + negative relocated value. + * coff-sh.c (sh_reloc): Likewise. + 2019-11-25 Alan Modra <amodra@gmail.com> * archures.c (bfd_octets_per_byte): Tail call diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c index 4b6b0de..1077a20 100644 --- a/bfd/coff-sh.c +++ b/bfd/coff-sh.c @@ -632,7 +632,7 @@ sh_reloc (bfd * abfd, sym_value -= 0x1000; insn = (insn & 0xf000) | (sym_value & 0xfff); bfd_put_16 (abfd, (bfd_vma) insn, hit_data); - if (sym_value < (bfd_vma) -0x1000 || sym_value >= 0x1000) + if ((bfd_signed_vma) sym_value < -0x1000 || sym_value >= 0x1000) return bfd_reloc_overflow; break; default: diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c index 8aa49b0..863e2e1 100644 --- a/bfd/elf32-sh.c +++ b/bfd/elf32-sh.c @@ -288,7 +288,7 @@ sh_elf_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol_in, sym_value -= 0x1000; insn = (insn & 0xf000) | (sym_value & 0xfff); bfd_put_16 (abfd, (bfd_vma) insn, hit_data); - if (sym_value < (bfd_vma) -0x1000 || sym_value >= 0x1000) + if ((bfd_signed_vma) sym_value < -0x1000 || sym_value >= 0x1000) return bfd_reloc_overflow; break; default: |