Fix for PR11938 - display suitable error messages for bogus .byte, .short and .quad directives.

This commit is contained in:
Nick Clifton
1998-06-11 22:58:05 +00:00
parent bee3033d5a
commit d32f7037b2
2 changed files with 21 additions and 0 deletions

View File

@ -1,5 +1,8 @@
Thu Jun 11 08:56:46 1998 Nick Clifton <nickc@cygnus.com> 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. * write.c (adjust_reloc_syms): Add more checks for NULL pointers.
* config/tc-v850.c (v850_comm): Set SEC_COMMON bit on special * config/tc-v850.c (v850_comm): Set SEC_COMMON bit on special

View File

@ -1628,6 +1628,24 @@ md_apply_fix3 (fixp, valuep, seg)
switch (fixp->fx_r_type) 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: case BFD_RELOC_D30V_6:
check_size (value, 6, fixp->fx_file, fixp->fx_line); check_size (value, 6, fixp->fx_file, fixp->fx_line);
insn |= value & 0x3F; insn |= value & 0x3F;