removed crash() call: it was wrong
authoreck <none@none>
Fri, 14 Sep 1990 16:39:11 +0000 (16:39 +0000)
committereck <none@none>
Fri, 14 Sep 1990 16:39:11 +0000 (16:39 +0000)
lang/cem/cemcom.ansi/ch3mon.c
lang/cem/cemcom.ansi/fltcstoper.c

index dc3463c..907b75f 100644 (file)
@@ -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;
 
index 57512d2..c5a2508 100644 (file)
@@ -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)