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:
parent
53db15ed2a
commit
7a9aaf929a
@ -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.
|
||||
|
@ -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))
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user