diff --git a/lang/cem/cemcom.ansi/ch3mon.c b/lang/cem/cemcom.ansi/ch3mon.c index b7794865..fc82a458 100644 --- a/lang/cem/cemcom.ansi/ch3mon.c +++ b/lang/cem/cemcom.ansi/ch3mon.c @@ -42,7 +42,9 @@ ch3mon(oper, expp) symbol2str((*expp)->ex_type->tp_fund)); } else { expr = *expp; - if (expr->ex_lvalue == 0 && expr->ex_class != String) + if ((expr->ex_type->tp_fund == ARRAY + && expr->ex_class != String) + || expr->ex_type->tp_fund == FUNCTION) /* dereference in administration only */ expr->ex_type = expr->ex_type->tp_up; else /* runtime code */