FIxed problem with volatile structs and the ./-> operators
authorceriel <none@none>
Thu, 13 Jun 1991 15:56:14 +0000 (15:56 +0000)
committerceriel <none@none>
Thu, 13 Jun 1991 15:56:14 +0000 (15:56 +0000)
lang/cem/cemcom.ansi/ch3.c

index b6fed17..39df50c 100644 (file)
@@ -147,9 +147,11 @@ ch3sel(expp, oper, idf)
                exp->ex_lvalue = (sd->sd_type->tp_fund != ARRAY);
                exp->ex_flags &= ~EX_ILVALUE;
        }
-       if (sd->sd_type->tp_typequal & TQ_CONST)
+       if ((sd->sd_type->tp_typequal & TQ_CONST)
+           || (tp->tp_typequal & TQ_CONST))
                exp->ex_flags |= EX_READONLY;
-       if (sd->sd_type->tp_typequal & TQ_VOLATILE)
+       if ((sd->sd_type->tp_typequal & TQ_VOLATILE)
+           || (tp->tp_typequal & TQ_VOLATILE))
                exp->ex_flags |= EX_VOLATILE;
        if (oper == '.' && exp->ex_flags & EX_READONLY)  {
                exp->ex_type = qualifier_type(exp->ex_type, TQ_CONST);