symbol->stype = (BYTE)type;
symbol->senv = (WORD)envno;
symbol->sattr = 0;
- symbol->sattre = (rgpu || rdsp ? RISCSYM : 0);
+//we don't do this, it could be a forward reference!
+// symbol->sattr = DEFINED; // We just defined it...
+ // This is a bad assumption. Not every symbol 1st seen in a RISC section is
+ // a RISC symbol!
+// symbol->sattre = (rgpu || rdsp ? RISCSYM : 0);
+ symbol->sattre = 0;
symbol->svalue = 0;
symbol->sorder = NULL;
symbol->uid = currentUID++;
if (symbol->stype == type // Type, envno and name must match
&& symbol->senv == envno
&& *name == *symbol->sname // Fast check for first character
- && !strcmp(name, symbol->sname))
+ && !strcmp(name, symbol->sname)) // More expensive check
break;
symbol = symbol->snext;
}
- return symbol; // Return NULL or matching symbol
+ // Return NULL or matching symbol
+ return symbol;
}
//
// Put symbol on "order-of-declaration" list of symbols
//
-void sym_decl(SYM * symbol)
+//void sym_decl(SYM * symbol)
+void AddToSymbolOrderList(SYM * symbol)
{
if (symbol->sattr & SDECLLIST)
return; // Already on list