* write.c (write_object_file): Recognize warning-symbol construct

and skip object- and target- handling for the second symbol.
This commit is contained in:
Hans-Peter Nilsson 2005-02-07 03:13:10 +00:00
parent 769946806e
commit aaac53f5a1
2 changed files with 21 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2005-02-07 Hans-Peter Nilsson <hp@axis.com>
* write.c (write_object_file): Recognize warning-symbol construct
and skip object- and target- handling for the second symbol.
2005-02-02 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (dot_pred_rel): Update comment. Handle @-prefixed

View file

@ -1882,12 +1882,22 @@ write_object_file (void)
if (symbol_rootP)
{
symbolS *symp;
bfd_boolean skip_next_symbol = FALSE;
for (symp = symbol_rootP; symp; symp = symbol_next (symp))
{
int punt = 0;
const char *name;
if (skip_next_symbol)
{
/* Don't do anything besides moving the value of the
symbol from the GAS value-field to the BFD value-field. */
symbol_get_bfdsym (symp)->value = S_GET_VALUE (symp);
skip_next_symbol = FALSE;
continue;
}
if (symbol_mri_common_p (symp))
{
if (S_IS_EXTERNAL (symp))
@ -1972,6 +1982,12 @@ write_object_file (void)
/* Set the value into the BFD symbol. Up til now the value
has only been kept in the gas symbolS struct. */
symbol_get_bfdsym (symp)->value = S_GET_VALUE (symp);
/* A warning construct is a warning symbol followed by the
symbol warned about. Don't let anything object-format or
target-specific muck with it; it's ready for output. */
if (symbol_get_bfdsym (symp)->flags & BSF_WARNING)
skip_next_symbol = TRUE;
}
}