aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2002-01-15 11:58:45 +0000
committerNick Clifton <nickc@redhat.com>2002-01-15 11:58:45 +0000
commit1f7fd4789110049226f584999078f24a538a72fb (patch)
tree874dbaa038ffe10fb7b3fab57519ce82feb4f4fd /gas
parent4ee3352dfb3c05c6a0e937fd5a691ba0aa92c15a (diff)
downloadfsf-binutils-gdb-1f7fd4789110049226f584999078f24a538a72fb.zip
fsf-binutils-gdb-1f7fd4789110049226f584999078f24a538a72fb.tar.gz
fsf-binutils-gdb-1f7fd4789110049226f584999078f24a538a72fb.tar.bz2
Fix up generation of VTINHERIT relocs
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-xstormy16.c13
2 files changed, 14 insertions, 5 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9aa6b33..c274442 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2002-01-15 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * config/tc-xstormy16.c: (xstormy16_fix_adjustable): Do not fix
+ vtinherit relocs.
+ (xstormy16_md_apply_fix3): Do not return a value.
+
2002-01-14 Richard Earnshaw <rearnsha@arm.com>
* tc-arm.c (md_longopts): On targets that aren't bi-endian, support
diff --git a/gas/config/tc-xstormy16.c b/gas/config/tc-xstormy16.c
index 7ef10e5..446ac38 100644
--- a/gas/config/tc-xstormy16.c
+++ b/gas/config/tc-xstormy16.c
@@ -1,5 +1,5 @@
/* tc-xstormy16.c -- Assembler for the Sanyo XSTORMY16.
- Copyright (C) 2000, 2001 Free Software Foundation.
+ Copyright (C) 2000, 2001, 2002 Free Software Foundation.
This file is part of GAS, the GNU Assembler.
@@ -400,6 +400,11 @@ xstormy16_fix_adjustable (fixP)
if (S_IS_WEAK (fixP->fx_addsy))
return 0;
+ /* We need the symbol name for the VTABLE entries. */
+ if ( fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
+ || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
+ return 0;
+
return ! xstormy16_force_relocation (fixP);
}
@@ -513,7 +518,7 @@ xstormy16_md_apply_fix3 (fixP, valueP, seg)
}
if (fixP->fx_done)
- return 1;
+ return;
/* The operand isn't fully resolved. Determine a BFD reloc value
based on the operand information and leave it to
@@ -530,7 +535,7 @@ xstormy16_md_apply_fix3 (fixP, valueP, seg)
as_bad_where (fixP->fx_file, fixP->fx_line,
_("unresolved expression that must be resolved"));
fixP->fx_done = 1;
- return 1;
+ return;
}
}
else if (fixP->fx_done)
@@ -578,8 +583,6 @@ xstormy16_md_apply_fix3 (fixP, valueP, seg)
See the comment describing fx_addnumber in write.h.
This field is misnamed (or misused :-). */
fixP->fx_addnumber = value;
-
- return 1;
}