Don't merge labels. Don't merge if the symbol isn't constant. Don't call

S_SET_EXTERNAL if the storage class is already set.
This commit is contained in:
Nick Clifton 2000-07-17 23:27:31 +00:00
parent 53db15ed2a
commit 7a9aaf929a
2 changed files with 22 additions and 10 deletions

View File

@ -1,3 +1,9 @@
2000-07-17 Mark Elbrecht <snowball3@bigfoot.com>
* config/obj-coff.c (obj_frob_symbol): Don't merge labels. Don't
merge if the symbol isn't constant. Don't call S_SET_EXTERNAL if
the storage class is already set.
2000-07-17 Kazu Hirata <kazu@hxi.com>
* config/tc-w65.c: Fix formatting.

View File

@ -1139,24 +1139,30 @@ coff_frob_symbol (symp, punt)
symbolS *real;
if (!SF_GET_LOCAL (symp)
&& !SF_GET_STATICS (symp)
&& S_GET_STORAGE_CLASS (symp) != C_LABEL
&& symbol_constant_p(symp)
&& (real = symbol_find_base (S_GET_NAME (symp), DO_NOT_STRIP))
&& real != symp)
{
c_symbol_merge (symp, real);
*punt = 1;
}
if (!S_IS_DEFINED (symp) && !SF_GET_LOCAL (symp))
if (S_GET_STORAGE_CLASS (symp) == C_NULL)
{
assert (S_GET_VALUE (symp) == 0);
S_SET_EXTERNAL (symp);
}
else if (S_GET_STORAGE_CLASS (symp) == C_NULL)
{
if (S_GET_SEGMENT (symp) == text_section
&& symp != seg_info (text_section)->sym)
S_SET_STORAGE_CLASS (symp, C_LABEL);
if (!S_IS_DEFINED (symp) && !SF_GET_LOCAL (symp))
{
assert (S_GET_VALUE (symp) == 0);
S_SET_EXTERNAL (symp);
}
else if (S_GET_SEGMENT (symp) == text_section
&& symp != seg_info (text_section)->sym)
{
S_SET_STORAGE_CLASS (symp, C_LABEL);
}
else
S_SET_STORAGE_CLASS (symp, C_STAT);
{
S_SET_STORAGE_CLASS (symp, C_STAT);
}
}
if (SF_GET_PROCESS (symp))
{