]> git.sur5r.net Git - cc65/commitdiff
Fixed a bug: The op= operators (+=, -=, etc.) worked on const qualified
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 7 Aug 2008 22:22:58 +0000 (22:22 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 7 Aug 2008 22:22:58 +0000 (22:22 +0000)
objects.

git-svn-id: svn://svn.cc65.org/cc65/trunk@3883 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/expr.c

index a9e0bee545c52c39d1f51e8b73c17c07b1cb2e16..daf1e2abed117f58a2db9d4d7ca4f8e3fb2b2315 100644 (file)
@@ -2777,6 +2777,11 @@ static void opeq (const GenDesc* Gen, ExprDesc* Expr)
        return;
     }
 
+    /* The left side must not be const qualified */
+    if (IsQualConst (Expr->Type)) {
+       Error ("Assignment to const");
+    }
+
     /* There must be an integer or pointer on the left side */
     if (!IsClassInt (Expr->Type) && !IsTypePtr (Expr->Type)) {
         Error ("Invalid left operand type");
@@ -2875,6 +2880,11 @@ static void addsubeq (const GenDesc* Gen, ExprDesc *Expr)
        return;
     }
 
+    /* The left side must not be const qualified */
+    if (IsQualConst (Expr->Type)) {
+       Error ("Assignment to const");
+    }
+
     /* There must be an integer or pointer on the left side */
     if (!IsClassInt (Expr->Type) && !IsTypePtr (Expr->Type)) {
         Error ("Invalid left operand type");