From: ceriel Date: Mon, 6 Jul 1987 18:24:46 +0000 (+0000) Subject: Bug fix: ch7sel should call any2opnd X-Git-Tag: release-5-5~4031 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=85421efb19da6bbbcdb88ba9774185383667ba3b;p=ack.git Bug fix: ch7sel should call any2opnd --- diff --git a/lang/cem/cemcom/ch7.c b/lang/cem/cemcom/ch7.c index e70bc898f..c276a829a 100644 --- a/lang/cem/cemcom/ch7.c +++ b/lang/cem/cemcom/ch7.c @@ -33,10 +33,13 @@ ch7sel(expp, oper, idf) /* The selector idf is applied to *expp; oper may be '.' or ARROW. */ - register struct expr *exp = *expp; - register struct type *tp = exp->ex_type; + register struct expr *exp; + register struct type *tp; register struct sdef *sd; + any2opnd(expp, oper); + exp = *expp; + tp = exp->ex_type; if (oper == ARROW) { if (tp->tp_fund == POINTER) /* normal case */ tp = tp->tp_up; @@ -44,11 +47,8 @@ ch7sel(expp, oper, idf) "char c; c->selector" */ switch (tp->tp_fund) { - case CHAR: - case SHORT: case INT: case LONG: - case ENUM: /* Allowed by RM 14.1 */ ch7cast(expp, CAST, pa_type); sd = idf2sdef(idf, tp); @@ -76,11 +76,8 @@ ch7sel(expp, oper, idf) case STRUCT: case UNION: break; - case CHAR: - case SHORT: case INT: case LONG: - case ENUM: /* warning will be given by idf2sdef() */ break; default: