Browse Source

removed crash() call: it was wrong

eck 34 years ago
parent
commit
e6dbf12f0a
2 changed files with 6 additions and 13 deletions
  1. 2 0
      lang/cem/cemcom.ansi/ch3mon.c
  2. 4 13
      lang/cem/cemcom.ansi/fltcstoper.c

+ 2 - 0
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;
 

+ 4 - 13
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)