]> git.sur5r.net Git - cc65/commitdiff
Fixed several const related bugs
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 6 Mar 2002 06:38:48 +0000 (06:38 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 6 Mar 2002 06:38:48 +0000 (06:38 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@1165 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/expr.c

index e272bba98b6a6be3dc4549b72981c738450616b3..f0bc0d8d91b7d5c290b901afcd64c5cf92e6cd55 100644 (file)
@@ -2280,7 +2280,7 @@ static void parsesub (int k, ExprDesc* lval)
                /* Operate on pointers, result type is a pointer */
            } else if (IsClassPtr (lhst) && IsClassPtr (rhst)) {
                /* Left is pointer, right is pointer, must scale result */
-               if (TypeCmp (Indirect (lhst), Indirect (rhst)) < TC_EQUAL) {
+               if (TypeCmp (Indirect (lhst), Indirect (rhst)) < TC_QUAL_DIFF) {
                    Error ("Incompatible pointer types");
                } else {
                    lval->ConstVal = (lval->ConstVal - lval2.ConstVal) / PSizeOf (lhst);
@@ -2315,7 +2315,7 @@ static void parsesub (int k, ExprDesc* lval)
                flags = CF_PTR;
            } else if (IsClassPtr (lhst) && IsClassPtr (rhst)) {
                /* Left is pointer, right is pointer, must scale result */
-               if (TypeCmp (Indirect (lhst), Indirect (rhst)) < TC_EQUAL) {
+               if (TypeCmp (Indirect (lhst), Indirect (rhst)) < TC_QUAL_DIFF) {
                    Error ("Incompatible pointer types");
                } else {
                    rscale = PSizeOf (lhst);
@@ -2358,7 +2358,7 @@ static void parsesub (int k, ExprDesc* lval)
            flags = CF_PTR;
        } else if (IsClassPtr (lhst) && IsClassPtr (rhst)) {
            /* Left is pointer, right is pointer, must scale result */
-           if (TypeCmp (Indirect (lhst), Indirect (rhst)) < TC_EQUAL) {
+           if (TypeCmp (Indirect (lhst), Indirect (rhst)) < TC_QUAL_DIFF) {
                Error ("Incompatible pointer types");
            } else {
                rscale = PSizeOf (lhst);
@@ -3025,7 +3025,7 @@ static void Assignment (ExprDesc* lval)
        g_push (CF_PTR | CF_UNSIGNED, 0);
 
        /* Check for equality of the structs */
-       if (TypeCmp (ltype, lval2.Type) < TC_EQUAL) {
+       if (TypeCmp (ltype, lval2.Type) < TC_STRICT_COMPATIBLE) {
            Error ("Incompatible types");
        }