From 85421efb19da6bbbcdb88ba9774185383667ba3b Mon Sep 17 00:00:00 2001 From: ceriel Date: Mon, 6 Jul 1987 18:24:46 +0000 Subject: [PATCH] Bug fix: ch7sel should call any2opnd --- lang/cem/cemcom/ch7.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) 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: -- 2.34.1