]> Shamusworld >> Repos - rmac/blobdiff - symbol.c
Fixed word reversed fixup problem.
[rmac] / symbol.c
index f10c55ad85b2a723425b1f6c479ee4baff32be20..d4761214006bf4a98e631cc89fb8321344e4d447 100644 (file)
--- a/symbol.c
+++ b/symbol.c
@@ -91,7 +91,12 @@ SYM * NewSymbol(char * name, int type, int envno)
        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++;
@@ -151,20 +156,22 @@ SYM * lookup(char * name, int type, int envno)
                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