1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-26 05:29:30 +00:00

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
This commit is contained in:
cuz 2007-03-18 19:15:35 +00:00
parent 030ce6ad28
commit 80a4c8c02b

View 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);