From d32f7037b2fd00f8f65364607805c23270039d36 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 11 Jun 1998 22:58:05 +0000 Subject: [PATCH] Fix for PR11938 - display suitable error messages for bogus .byte, .short and .quad directives. --- gas/ChangeLog | 3 +++ gas/config/tc-d30v.c | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index d7cde280cb1..731ed0fe660 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,8 @@ Thu Jun 11 08:56:46 1998 Nick Clifton + * 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 dbf657b6ed1..46e5eb9eb37 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; -- 2.30.2