// Export vanilla labels (but don't make them global). An exception is
// made for equates, which are not exported unless they are referenced.
else if (sy->stype == LABEL && lsym_flag
- && (sy->sattr & (DEFINED | REFERENCED)) != 0
- && (!as68_flag || *sy->sname != 'L'))
+ && (sy->sattr & (DEFINED | REFERENCED)) != 0)
{
sy->senv = scount++;
{
uint16_t scount = 0;
-// if (construct == (uint8_t *(*)())constr_elfsymtab)
-// if (buf == NULL)
- {
- // Append all symbols not appearing on the .sdecl list to the end of
- // the .sdecl list
- for(SYM * sy=sorder; sy!=NULL; sy=sy->sorder)
- AddToSymbolDeclarationList(sy);
- }
+ // Append all symbols not appearing on the .sdecl list to the end of
+ // the .sdecl list
+ for(SYM * sy=sorder; sy!=NULL; sy=sy->sorder)
+ AddToSymbolDeclarationList(sy);
// Run through all symbols (now on the .sdecl list) and assign numbers to
// them. We also pick which symbols should be global or not here.
if (sy->stype == LABEL && lsym_flag
&& (sy->sattr & (DEFINED | REFERENCED)) != 0
&& (*sy->sname != '.')
- && (sy->sattr & GLOBAL) == 0)
+ && (sy->sattr & GLOBAL) == 0
+ && (sy->sattre & (EQUATEDREG | UNDEF_EQUR | EQUATEDCC | UNDEF_CC)) == 0)
{
sy->senv = scount++;
for(SYM * sy=sdecl; sy!=NULL; sy=sy->sdecl)
{
if ((sy->stype == LABEL)
+ && (sy->sattre & (EQUATEDREG | UNDEF_EQUR | EQUATEDCC | UNDEF_CC)) == 0
&& ((sy->sattr & (GLOBAL | DEFINED)) == (GLOBAL | DEFINED)
|| (sy->sattr & (GLOBAL | REFERENCED)) == (GLOBAL | REFERENCED))
|| (sy->sattr & COMMON))
if (buf != NULL)
buf = construct(buf, sy, 1);
}
- else if ((sy->sattr == (GLOBAL | REFERENCED)) && (buf != NULL))
+ else if ((sy->sattr == (GLOBAL | REFERENCED)) && (buf != NULL) && (sy->sattre & (EQUATEDREG | UNDEF_EQUR | EQUATEDCC | UNDEF_CC)) == 0)
{
buf = construct(buf, sy, 0);
scount++;