aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-avr.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/config/tc-avr.c')
-rw-r--r--gas/config/tc-avr.c24
1 files changed, 2 insertions, 22 deletions
diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c
index c693120..0bc972e 100644
--- a/gas/config/tc-avr.c
+++ b/gas/config/tc-avr.c
@@ -1386,29 +1386,9 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED,
{
arelent *reloc;
- if (fixp->fx_addsy && fixp->fx_subsy)
+ if (fixp->fx_subsy != NULL)
{
- long value = 0;
-
- if ((S_GET_SEGMENT (fixp->fx_addsy) != S_GET_SEGMENT (fixp->fx_subsy))
- || S_GET_SEGMENT (fixp->fx_addsy) == undefined_section)
- {
- as_bad_where (fixp->fx_file, fixp->fx_line,
- "Difference of symbols in different sections is not supported");
- return NULL;
- }
-
- /* We are dealing with two symbols defined in the same section.
- Let us fix-up them here. */
- value += S_GET_VALUE (fixp->fx_addsy);
- value -= S_GET_VALUE (fixp->fx_subsy);
-
- /* When fx_addsy and fx_subsy both are zero, md_apply_fix
- only takes it's second operands for the fixup value. */
- fixp->fx_addsy = NULL;
- fixp->fx_subsy = NULL;
- md_apply_fix (fixp, (valueT *) &value, NULL);
-
+ as_bad_where (fixp->fx_file, fixp->fx_line, _("expression too complex"));
return NULL;
}