From a2461522406fc6b2b5e4a6a5f80a5e8ea44ae3f6 Mon Sep 17 00:00:00 2001 From: eck Date: Fri, 14 Sep 1990 16:39:11 +0000 Subject: [PATCH] removed crash() call: it was wrong --- lang/cem/cemcom.ansi/ch3mon.c | 2 ++ lang/cem/cemcom.ansi/fltcstoper.c | 17 ++++------------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/lang/cem/cemcom.ansi/ch3mon.c b/lang/cem/cemcom.ansi/ch3mon.c index dc3463c2c..907b75f48 100644 --- a/lang/cem/cemcom.ansi/ch3mon.c +++ b/lang/cem/cemcom.ansi/ch3mon.c @@ -37,9 +37,11 @@ ch3mon(oper, expp) case '*': /* 3.3.3.2 */ /* no FIELD type allowed */ if ((*expp)->ex_type->tp_fund != POINTER) { + if ((*expp)->ex_type != error_type) { expr_error(*expp, "* applied to non-pointer (%s)", symbol2str((*expp)->ex_type->tp_fund)); + } } else { expr = *expp; diff --git a/lang/cem/cemcom.ansi/fltcstoper.c b/lang/cem/cemcom.ansi/fltcstoper.c index 57512d2f4..c5a2508e9 100644 --- a/lang/cem/cemcom.ansi/fltcstoper.c +++ b/lang/cem/cemcom.ansi/fltcstoper.c @@ -67,24 +67,15 @@ fltcstbin(expp, oper, expr) case NOTEQUAL: cmpval = (cmpval != 0); break; } break; - case '%': - case LEFT: - case RIGHT: - case '&': - case '|': - case '^': - /* - expr_error(*expp, "floating operand for %s", symbol2str(oper)); - break; - */ default: - crash("(fltcstoper) bad operator %s", symbol2str(oper)); - /*NOTREACHED*/ + /* in case of situations like a += 3.0; where a undefined */ + flt_status = 0; + break; } switch (flt_status) { case 0: - case FLT_UNFL: + case FLT_UNFL: /* ignore underflow */ break; case FLT_OVFL: if (!ResultKnown) -- 2.34.1