]> git.sur5r.net Git - cc65/commitdiff
Changed solution for r4329 so that it uses less memory.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 5 Oct 2009 18:22:28 +0000 (18:22 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 5 Oct 2009 18:22:28 +0000 (18:22 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4331 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/expr.c

index 9d8af55d548a10ef326cb0dcf621e41a84bac0f6..cf417577f5963837a3e87073ecd4055a499100c1 100644 (file)
@@ -1107,7 +1107,7 @@ static void StructRef (ExprDesc* Expr)
 
     /* The type is the type of the field plus any qualifiers from the struct */
     Q = GetQualifier (Expr->Type);
-    if (Q == T_QUAL_NONE) {
+    if (GetQualifier (Field->Type) == (GetQualifier (Field->Type) | Q)) {
         Expr->Type = Field->Type;
     } else {
         Expr->Type = TypeDup (Field->Type);
@@ -1599,9 +1599,9 @@ void hie10 (ExprDesc* Expr)
                 ED_MakeRValExpr (Expr);
             }
             /* If the expression is already a pointer to function, the
-             * additional dereferencing operator must be ignored. A function 
+             * additional dereferencing operator must be ignored. A function
              * itself is represented as "pointer to function", so any number
-             * of dereference operators is legal, since the result will 
+             * of dereference operators is legal, since the result will
              * always be converted to "pointer to function".
              */
             if (IsTypeFuncPtr (Expr->Type) || IsTypeFunc (Expr->Type)) {