* write.c (relax_segment): Don't zap fr_symbol when relaxing.

This commit is contained in:
Alan Modra
2001-05-24 23:33:00 +00:00
parent 1608870fd8
commit 766c03c9fa
2 changed files with 12 additions and 4 deletions

View File

@ -1,3 +1,7 @@
2001-05-25 Alan Modra <amodra@one.net.au>
* write.c (relax_segment): Don't zap fr_symbol when relaxing.
2000-05-24 Tom Rix <trix@redhat.com> 2000-05-24 Tom Rix <trix@redhat.com>
* config/obj-coff.c : (add_lineno) xcoff allows negative line * config/obj-coff.c : (add_lineno) xcoff allows negative line

View File

@ -2453,18 +2453,22 @@ relax_segment (segment_frag_root, segment)
case rs_space: case rs_space:
if (symbolP) if (symbolP)
{ {
growth = S_GET_VALUE (symbolP); offsetT amount;
amount = S_GET_VALUE (symbolP);
if (symbol_get_frag (symbolP) != &zero_address_frag if (symbol_get_frag (symbolP) != &zero_address_frag
|| S_IS_COMMON (symbolP) || S_IS_COMMON (symbolP)
|| ! S_IS_DEFINED (symbolP)) || ! S_IS_DEFINED (symbolP))
as_bad_where (fragP->fr_file, fragP->fr_line, as_bad_where (fragP->fr_file, fragP->fr_line,
_(".space specifies non-absolute value")); _(".space specifies non-absolute value"));
fragP->fr_symbol = 0; if (amount < 0)
if (growth < 0)
{ {
as_warn (_(".space or .fill with negative value, ignored")); as_warn (_(".space or .fill with negative value, ignored"));
growth = 0; amount = 0;
fragP->fr_symbol = 0;
} }
growth = (fragP->fr_address + amount
- fragP->fr_next->fr_address);
} }
else else
growth = 0; growth = 0;