]> git.sur5r.net Git - cc65/commitdiff
Fixed a bug
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 14 Sep 2003 11:12:27 +0000 (11:12 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 14 Sep 2003 11:12:27 +0000 (11:12 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2437 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/expr.c

index feb76482d4c04f2d52128c42a93476b88eaa20eb..43df6bfa480a11f0889b759fbacde42180c550be 100644 (file)
@@ -444,7 +444,10 @@ void ExprLoad (unsigned Flags, int k, ExprDesc* Expr)
        } else if (f != E_MREG) {
            /* Reference with address in primary */
            g_getind (Flags, 0);
-       }
+       } else if (Flags & CF_TEST) {
+            /* The value is already in the primary but needs a test */
+            g_test (Flags);
+        }
     } else {
        /* An rvalue */
        if (f == E_MEOFFS) {
@@ -455,14 +458,14 @@ void ExprLoad (unsigned Flags, int k, ExprDesc* Expr)
            /* Constant of some sort, load it into the primary */
            LoadConstant (Flags, Expr);
        }
-    }
 
-    /* Are we testing this value? */
-    if (Expr->Test & E_FORCETEST) {
-        /* Yes, force a test */
-       Flags |= TypeOf (Expr->Type);
-               g_test (Flags);
-               Expr->Test &= ~E_FORCETEST;
+        /* Are we testing this value? */
+        if (Expr->Test & E_FORCETEST) {
+            /* Yes, force a test */
+            Flags |= TypeOf (Expr->Type);
+            g_test (Flags);
+            Expr->Test &= ~E_FORCETEST;
+        }
     }
 }