From: ceriel Date: Tue, 21 Apr 1992 09:54:32 +0000 (+0000) Subject: Fixed bug in initalization expression handling X-Git-Tag: release-5-5~491 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=47c7e6a43d96b0350a6bd70cdfd20bb2bd824626;p=ack.git Fixed bug in initalization expression handling --- diff --git a/lang/cem/cemcom.ansi/arith.c b/lang/cem/cemcom.ansi/arith.c index f450e3656..9ade7d5d9 100644 --- a/lang/cem/cemcom.ansi/arith.c +++ b/lang/cem/cemcom.ansi/arith.c @@ -72,11 +72,18 @@ arithbalance(e1p, oper, e2p) /* 3.1.2.5 */ */ /* ??? t1 == LNGDBL, t2 == DOUBLE */ if (t1 == LNGDBL) { - if (t2 != LNGDBL) + if (t2 != LNGDBL) { + if (t2 == DOUBLE || t2 == FLOAT) + float2float(e2p, lngdbl_type); + else int2float(e2p, lngdbl_type); + } return; } else if (t2 == LNGDBL) { if (t1 != LNGDBL) + if (t1 == DOUBLE || t1 == FLOAT) + float2float(e1p, lngdbl_type); + else int2float(e1p, lngdbl_type); return; } @@ -85,11 +92,15 @@ arithbalance(e1p, oper, e2p) /* 3.1.2.5 */ is converted to double. */ if (t1 == DOUBLE) { - if (t2 != DOUBLE) + if (t2 == FLOAT) + float2float(e2p, double_type); + else if (t2 != DOUBLE) int2float(e2p, double_type); return; } else if (t2 == DOUBLE) { - if (t1 != DOUBLE) + if (t1 == FLOAT) + float2float(e1p, double_type); + else if (t1 != DOUBLE) int2float(e1p, double_type); return; }