summaryrefslogtreecommitdiff
path: root/bfd/elf32-v850.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/elf32-v850.c')
-rw-r--r--bfd/elf32-v850.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index 00affbb0d8..98db745c54 100644
--- a/bfd/elf32-v850.c
+++ b/bfd/elf32-v850.c
@@ -1649,15 +1649,6 @@ v850_elf_relocate_section (output_bfd, info, input_bfd, input_section,
symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
sym_hashes = elf_sym_hashes (input_bfd);
- if (sym_hashes == NULL)
- {
- info->callbacks->warning
- (info, "no hash table available",
- NULL, input_bfd, input_section, (bfd_vma) 0);
-
- return FALSE;
- }
-
/* Reset the list of remembered HI16S relocs to empty. */
free_hi16s = previous_hi16s;
previous_hi16s = NULL;
@@ -1698,6 +1689,18 @@ v850_elf_relocate_section (output_bfd, info, input_bfd, input_section,
{
bfd_boolean unresolved_reloc, warned;
+ /* Note - this check is delayed until now as it is possible and valid
+ to have a file without any symbols but with relocs that can be
+ processed. */
+ if (sym_hashes == NULL)
+ {
+ info->callbacks->warning
+ (info, "no hash table available",
+ NULL, input_bfd, input_section, (bfd_vma) 0);
+
+ return FALSE;
+ }
+
RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
r_symndx, symtab_hdr, sym_hashes,
h, sec, relocation,