Make .DEF, .REF and friends also work with cheap local symbols.

git-svn-id: svn://svn.cc65.org/cc65/trunk@4767 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz
2010-07-26 17:28:34 +00:00
parent 38d50cce0b
commit 7d506c84c9
5 changed files with 48 additions and 31 deletions

View File

@@ -385,7 +385,7 @@ static ExprNode* FuncDefined (void)
/* Handle the .DEFINED builtin function */
{
/* Parse the symbol name and search for the symbol */
SymEntry* Sym = ParseScopedSymName (SYM_FIND_EXISTING);
SymEntry* Sym = ParseAnySymName (SYM_FIND_EXISTING);
/* Check if the symbol is defined */
return GenLiteralExpr (Sym != 0 && SymIsDef (Sym));
@@ -597,7 +597,7 @@ static ExprNode* FuncReferenced (void)
/* Handle the .REFERENCED builtin function */
{
/* Parse the symbol name and search for the symbol */
SymEntry* Sym = ParseScopedSymName (SYM_FIND_EXISTING);
SymEntry* Sym = ParseAnySymName (SYM_FIND_EXISTING);
/* Check if the symbol is referenced */
return GenLiteralExpr (Sym != 0 && SymIsRef (Sym));
@@ -867,13 +867,9 @@ static ExprNode* Factor (void)
case TOK_NAMESPACE:
case TOK_IDENT:
N = Symbol (ParseScopedSymName (SYM_ALLOC_NEW));
break;
case TOK_LOCAL_IDENT:
N = Symbol (SymFindLocal (SymLast, &SVal, SYM_ALLOC_NEW));
NextTok ();
break;
N = Symbol (ParseAnySymName (SYM_ALLOC_NEW));
break;
case TOK_ULABEL:
N = ULabRef (IVal);