aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>1998-06-11 22:58:05 +0000
committerNick Clifton <nickc@redhat.com>1998-06-11 22:58:05 +0000
commitd32f7037b2fd00f8f65364607805c23270039d36 (patch)
treefabbe3ed8acd7fbaa1b284b752352cd577cd66bf
parentbee3033d5abca9d8ea219c08303e03c0d4de18a9 (diff)
downloadgdb-d32f7037b2fd00f8f65364607805c23270039d36.zip
gdb-d32f7037b2fd00f8f65364607805c23270039d36.tar.gz
gdb-d32f7037b2fd00f8f65364607805c23270039d36.tar.bz2
Fix for PR11938 - display suitable error messages for bogus .byte, .short and .quad directives.
-rw-r--r--gas/ChangeLog3
-rw-r--r--gas/config/tc-d30v.c18
2 files changed, 21 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d7cde28..731ed0f 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,8 @@
Thu Jun 11 08:56:46 1998 Nick Clifton <nickc@cygnus.com>
+ * config/tc-d30v.c (md_apply_fix3): Catch BFD_RELOC_8,
+ BFD_RELOC_16, BFD_RELOC_64 and issue appropriate error messages.
+
* write.c (adjust_reloc_syms): Add more checks for NULL pointers.
* config/tc-v850.c (v850_comm): Set SEC_COMMON bit on special
diff --git a/gas/config/tc-d30v.c b/gas/config/tc-d30v.c
index dbf657b..46e5eb9 100644
--- a/gas/config/tc-d30v.c
+++ b/gas/config/tc-d30v.c
@@ -1628,6 +1628,24 @@ md_apply_fix3 (fixp, valuep, seg)
switch (fixp->fx_r_type)
{
+ case BFD_RELOC_8:
+ /* Caused by a bad .byte directive. */
+ as_fatal (_("line %d: unable to place address of symbol '%s' into a byte"),
+ fixp->fx_line, S_GET_NAME (fixp->fx_addsy));
+ break;
+
+ case BFD_RELOC_16:
+ /* Caused by a bad .short directive. */
+ as_fatal (_("line %d: unable to place address of symbol '%s' into a short"),
+ fixp->fx_line, S_GET_NAME (fixp->fx_addsy));
+ break;
+
+ case BFD_RELOC_64:
+ /* Caused by a bad .quad directive. */
+ as_fatal (_("line %d: unable to place address of symbol '%s' into a .quad"),
+ fixp->fx_line, S_GET_NAME (fixp->fx_addsy));
+ break;
+
case BFD_RELOC_D30V_6:
check_size (value, 6, fixp->fx_file, fixp->fx_line);
insn |= value & 0x3F;