summaryrefslogtreecommitdiff
path: root/bfd/elf32-v850.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2005-05-17 10:22:40 +0000
committerNick Clifton <nickc@redhat.com>2005-05-17 10:22:40 +0000
commit8916f605782330100f1f70870d5196c183511c4f (patch)
treece20e0ea61eaf6d6a5df4b153bba97eae29928e0 /bfd/elf32-v850.c
parentd7a20bf684939734bf55a2869874d3d5715cb0fc (diff)
downloadbinutils-redhat-8916f605782330100f1f70870d5196c183511c4f.tar.gz
(v850_elf_relocate_section): Move code to test for the presence of a symbol
table to just before the symbol table is actually used.
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,