aboutsummaryrefslogtreecommitdiff
path: root/gas/write.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1999-07-14 14:02:33 +0000
committerIan Lance Taylor <ian@airs.com>1999-07-14 14:02:33 +0000
commit14ad458a39b44fffd593ced9a6311e56e0326c5d (patch)
tree03ccd4fe8a31f2cf2d63e98aa362f95e0379db87 /gas/write.c
parent1e52e2ee34b91eba0f70d584fd37f10350fcea50 (diff)
downloadgdb-14ad458a39b44fffd593ced9a6311e56e0326c5d.zip
gdb-14ad458a39b44fffd593ced9a6311e56e0326c5d.tar.gz
gdb-14ad458a39b44fffd593ced9a6311e56e0326c5d.tar.bz2
* write.c (cvt_frag_to_fill): Use frag file and line in rs_org
error message. (relax_segment): Likewise. After giving a rs_org error, convert the frag to rs_align to avoid cascading errors.
Diffstat (limited to 'gas/write.c')
-rw-r--r--gas/write.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/gas/write.c b/gas/write.c
index ed74709..0c28ac7 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -498,8 +498,9 @@ cvt_frag_to_fill (headersP, sec, fragP)
- fragP->fr_fix) / fragP->fr_var;
if (fragP->fr_offset < 0)
{
- as_bad (_("attempt to .org/.space backwards? (%ld)"),
- (long) fragP->fr_offset);
+ as_bad_where (fragP->fr_file, fragP->fr_line,
+ _("attempt to .org/.space backwards? (%ld)"),
+ (long) fragP->fr_offset);
}
fragP->fr_type = rs_fill;
break;
@@ -2302,8 +2303,16 @@ relax_segment (segment_frag_root, segment)
/* Growth may be negative, but variable part of frag
cannot have fewer than 0 chars. That is, we can't
.org backwards. */
- as_bad (_("attempt to .org backwards ignored"));
- growth = 0;
+ as_bad_where (fragP->fr_file, fragP->fr_line,
+ _("attempt to .org backwards ignored"));
+
+ /* We've issued an error message. Change the
+ frag to avoid cascading errors. */
+ fragP->fr_type = rs_align;
+ fragP->fr_subtype = 0;
+ fragP->fr_offset = 0;
+ fragP->fr_fix = after - address;
+ growth = stretch;
}
growth -= stretch; /* This is an absolute growth factor */