FIxed problem with volatile structs and the ./-> operators

This commit is contained in:
ceriel 1991-06-13 15:56:14 +00:00
parent 384d4c7647
commit 3a074a6f99

View 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);