diff --git a/src/asm/symbol.c b/src/asm/symbol.c index 856826db..2207c2f6 100644 --- a/src/asm/symbol.c +++ b/src/asm/symbol.c @@ -20,6 +20,7 @@ struct sSymbol *tHashedSymbols[HASHSIZE]; struct sSymbol *pScope = NULL; struct sSymbol *pPCSymbol = NULL; struct sSymbol *p_NARGSymbol = NULL; +struct sSymbol *p__LINE__Symbol = NULL; char *currentmacroargs[MAXMACROARGS + 1]; char *newmacroargs[MAXMACROARGS + 1]; char SavedTIME[256]; @@ -60,6 +61,13 @@ Callback_NARG(struct sSymbol * sym) return (i); } +SLONG +Callback__LINE__(struct sSymbol * sym) +{ + sym = sym; + return (nLineNo); +} + /* * Get the nValue field of a symbol */ @@ -864,6 +872,9 @@ sym_PrepPass2(void) sym_AddEqu("_NARG", 0); p_NARGSymbol = findsymbol("_NARG", NULL); p_NARGSymbol->Callback = Callback_NARG; + sym_AddEqu("__LINE__", 0); + p__LINE__Symbol = findsymbol("__LINE__", NULL); + p__LINE__Symbol->Callback = Callback__LINE__; math_DefinePI(); } @@ -890,6 +901,9 @@ sym_Init(void) sym_AddEqu("_NARG", 0); p_NARGSymbol = findsymbol("_NARG", NULL); p_NARGSymbol->Callback = Callback_NARG; + sym_AddEqu("__LINE__", 0); + p__LINE__Symbol = findsymbol("__LINE__", NULL); + p__LINE__Symbol->Callback = Callback__LINE__; sym_AddSet("_RS", 0);