aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@cygnus>1994-04-05 18:16:37 +0000
committerKen Raeburn <raeburn@cygnus>1994-04-05 18:16:37 +0000
commita7129c48cf54c09f9a3465a58e78fbc434b0e86c (patch)
tree69c96a28210ba3ba1988c96274216f46c433a4da
parent856613c4fe05e5b424d9e9f174c4dd5c922c40b3 (diff)
downloadgdb-a7129c48cf54c09f9a3465a58e78fbc434b0e86c.zip
gdb-a7129c48cf54c09f9a3465a58e78fbc434b0e86c.tar.gz
gdb-a7129c48cf54c09f9a3465a58e78fbc434b0e86c.tar.bz2
(s_reserve): If section passed isn't bss, don't spew remainder of input file in
error message. (tc_gen_reloc): If bfd_reloc_type_lookup returns null, print error message with reloc type and try to process remainder of file.
-rw-r--r--gas/config/tc-sparc.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index 4274ded..7574e16 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -202,7 +202,7 @@ s_reserve (ignore)
if (strncmp (input_line_pointer, ",\"bss\"", 6) != 0
&& strncmp (input_line_pointer, ",\".bss\"", 7) != 0)
{
- as_bad ("bad .reserve segment: `%s'", input_line_pointer);
+ as_bad ("bad .reserve segment -- expected BSS segment", input_line_pointer);
return;
}
@@ -2110,7 +2110,13 @@ tc_gen_reloc (section, fixp)
abort ();
}
reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
- assert (reloc->howto != 0);
+ if (reloc->howto == 0)
+ {
+ as_bad_where (fixp->fx_file, fixp->fx_line,
+ "internal error: can't export reloc type %d",
+ fixp->fx_r_type);
+ return 0;
+ }
assert (!fixp->fx_pcrel == !reloc->howto->pc_relative);
/* @@ Why fx_addnumber sometimes and fx_offset other times? */