From: cuz Date: Sun, 18 Mar 2007 19:15:35 +0000 (+0000) Subject: Fix type of "&array" - it will actually generate pointer to array, not pointer X-Git-Tag: V2.12.0~80 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=80a4c8c02b86e56e5bbd2c3e6675ba223c5b523f;p=cc65 Fix type of "&array" - it will actually generate pointer to array, not pointer to element. This will make some valid code work but emits now errors for questionable code. git-svn-id: svn://svn.cc65.org/cc65/trunk@3775 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/src/cc65/expr.c b/src/cc65/expr.c index 718c84fba..03fcef97b 100644 --- a/src/cc65/expr.c +++ b/src/cc65/expr.c @@ -1547,11 +1547,8 @@ void hie10 (ExprDesc* Expr) /* The & operator may be applied to any lvalue, and it may be * applied to functions, even if they're no lvalues. */ - if (ED_IsRVal (Expr) && !IsTypeFunc (Expr->Type)) { - /* Allow the & operator with an array */ - if (!IsTypeArray (Expr->Type)) { - Error ("Illegal address"); - } + if (ED_IsRVal (Expr) && !IsTypeFunc (Expr->Type) && !IsTypeArray (Expr->Type)) { + Error ("Illegal address"); } else { Expr->Type = PointerTo (Expr->Type); ED_MakeRVal (Expr);