Move evaluation of the argument for .BANK into the linker. It is otherwise too

restricted, since no imported symbols may be used.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5746 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz
2012-06-30 17:18:03 +00:00
parent 3e95d3048f
commit 43ea0e3df9
10 changed files with 66 additions and 165 deletions

View File

@@ -1097,21 +1097,6 @@ static void StudyBoolNot (ExprNode* Expr, ExprDesc* D)
static void StudyBank (ExprNode* Expr, ExprDesc* D)
/* Study an EXPR_BANK expression node */
{
/* Get the section reference */
ED_SecRef* SecRef = ED_GetSecRef (D, Expr->V.SecNum);
/* Update the data and the address size */
++SecRef->Count;
/* The expression is always linker evaluated, so invalidate it */
ED_Invalidate (D);
}
static void StudyBankRaw (ExprNode* Expr, ExprDesc* D)
/* Study an EXPR_BANKRAW expression node */
{
/* Study the expression extracting section references */
StudyExprInternal (Expr->Left, D);
@@ -1296,10 +1281,6 @@ static void StudyExprInternal (ExprNode* Expr, ExprDesc* D)
StudyULabel (Expr, D);
break;
case EXPR_BANK:
StudyBank (Expr, D);
break;
case EXPR_PLUS:
StudyPlus (Expr, D);
break;
@@ -1400,8 +1381,8 @@ static void StudyExprInternal (ExprNode* Expr, ExprDesc* D)
StudyBoolNot (Expr, D);
break;
case EXPR_BANKRAW:
StudyBankRaw (Expr, D);
case EXPR_BANK:
StudyBank (Expr, D);
break;
case EXPR_BYTE0: