aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2006-05-09 11:47:48 +0000
committerNick Clifton <nickc@redhat.com>2006-05-09 11:47:48 +0000
commit337ff0a5afa6511854390af9ca41f5de27a40cbc (patch)
tree38e8857ee32895684af844e8d224bb2a21bfd6d5 /bfd
parent8c9f705ebb4a261be2fcf9e032e45fb90123d1d7 (diff)
downloadgdb-337ff0a5afa6511854390af9ca41f5de27a40cbc.zip
gdb-337ff0a5afa6511854390af9ca41f5de27a40cbc.tar.gz
gdb-337ff0a5afa6511854390af9ca41f5de27a40cbc.tar.bz2
* config/tc-arm.c (arm_fix_adjustable): For COFF, convert fixups against
symbols which are not going to be placed into the symbol table. * coffcode.h (coff_write_relocs): Produce an error message if a an out-of-range symbol index is detected in a reloc.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/coffcode.h12
2 files changed, 13 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index cf6d030..3c8c505 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2006-05-09 Nick Clifton <nickc@redhat.com>
+
+ * coffcode.h (coff_write_relocs): Produce an error message if a an
+ out-of-range symbol index is detected in a reloc.
+
2006-05-09 Ben Elliston <bje@au.ibm.com>
* elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Remove unused
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 6eae4a3..badb214 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -2532,11 +2532,15 @@ coff_write_relocs (bfd * abfd, int first_undef)
else
{
n.r_symndx = get_index ((*(q->sym_ptr_ptr)));
- /* Take notice if the symbol reloc points to a symbol
- we don't have in our symbol table. What should we
- do for this?? */
+ /* Check to see if the symbol reloc points to a symbol
+ we don't have in our symbol table. */
if (n.r_symndx > obj_conv_table_size (abfd))
- abort ();
+ {
+ bfd_set_error (bfd_error_bad_value);
+ _bfd_error_handler (_("%B: reloc against a non-existant symbol index: %ld"),
+ abfd, n.r_symndx);
+ return FALSE;
+ }
}
}