]> git.sur5r.net Git - cc65/commitdiff
Fix type of "&array" - it will actually generate pointer to array, not pointer
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 18 Mar 2007 19:15:35 +0000 (19:15 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 18 Mar 2007 19:15:35 +0000 (19:15 +0000)
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

src/cc65/expr.c

index 718c84fbad373e7a8bd27bd0469d65735866157b..03fcef97be31def3f73f428342402904c98ea8a0 100644 (file)
@@ -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);