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_lvalue = (sd->sd_type->tp_fund != ARRAY);
exp->ex_flags &= ~EX_ILVALUE; 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; 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; exp->ex_flags |= EX_VOLATILE;
if (oper == '.' && exp->ex_flags & EX_READONLY) { if (oper == '.' && exp->ex_flags & EX_READONLY) {
exp->ex_type = qualifier_type(exp->ex_type, TQ_CONST); exp->ex_type = qualifier_type(exp->ex_type, TQ_CONST);