Skip to content

Commit

Permalink
move slist to back end
Browse files Browse the repository at this point in the history
  • Loading branch information
WalterBright committed Jan 28, 2013
1 parent 1ff8440 commit ef52c15
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 36 deletions.
4 changes: 3 additions & 1 deletion src/backend/global.h
Expand Up @@ -351,7 +351,9 @@ SYMIDX symbol_add(Symbol *s);
void freesymtab(Symbol **stab, SYMIDX n1, SYMIDX n2);
Symbol * symbol_copy(Symbol *s);
Symbol * symbol_searchlist(symlist_t sl, const char *vident);

void slist_add(Symbol *s);
void slist_reset();


#if TX86
// cg87.c
Expand Down
38 changes: 38 additions & 0 deletions src/backend/symbol.c
Expand Up @@ -2354,5 +2354,43 @@ void symbol_gendebuginfo()

#endif

/************************************
* Add symbol to global slist, which are symbols we need to keep around
* for next obj file to be created.
*/

static list_t slist;

void slist_add(Symbol *s)
{
list_prepend(&slist,s);
}

/*************************************
* Resets Symbols so they are now "externs" to the next obj file being created.
*/

void slist_reset()
{
//printf("slist_reset()\n");
for (list_t sl = slist; sl; sl = list_next(sl))
{ Symbol *s = list_symbol(sl);

#if MACHOBJ
s->Soffset = 0;
#endif
s->Sxtrnnum = 0;
s->Stypidx = 0;
s->Sflags &= ~(STRoutdef | SFLweak);
if (s->Sclass == SCglobal || s->Sclass == SCcomdat ||
s->Sfl == FLudata || s->Sclass == SCstatic)
{ s->Sclass = SCextern;
s->Sfl = FLextern;
}
}
}



#endif /* !SPP */

35 changes: 0 additions & 35 deletions src/msc.c
Expand Up @@ -165,41 +165,6 @@ symbol *symboldata(targ_size_t offset,tym_t ty)
return s;
}

/************************************
* Add symbol to slist.
*/

static list_t slist;

void slist_add(Symbol *s)
{
list_prepend(&slist,s);
}

/*************************************
*/

void slist_reset()
{
//printf("slist_reset()\n");
for (list_t sl = slist; sl; sl = list_next(sl))
{ Symbol *s = list_symbol(sl);

#if MACHOBJ
s->Soffset = 0;
#endif
s->Sxtrnnum = 0;
s->Stypidx = 0;
s->Sflags &= ~(STRoutdef | SFLweak);
if (s->Sclass == SCglobal || s->Sclass == SCcomdat ||
s->Sfl == FLudata || s->Sclass == SCstatic)
{ s->Sclass = SCextern;
s->Sfl = FLextern;
}
}
}


/**************************************
*/

Expand Down

0 comments on commit ef52c15

Please sign in to comment.