some fixes, and changed priority of unary minus

This commit is contained in:
ceriel
1987-06-18 15:46:08 +00:00
parent 9c01340900
commit c839c01680
13 changed files with 94 additions and 35 deletions

View File

@@ -396,8 +396,14 @@ CodeParameters(param, arg)
return;
}
CodePExpr(left);
RangeCheck(tp, left_type);
CodeCoercion(left_type, tp);
CodeCheckExpr(left, tp);
}
CodeCheckExpr(tp1, tp2)
struct type *tp1, *tp2;
{
CodeCoercion(tp1, tp2);
RangeCheck(tp2, tp1);
}
CodePString(nd, tp)
@@ -749,6 +755,7 @@ CodeOper(expr, true_label, false_label)
C_dup(2*tp->tp_size);
C_asp(tp->tp_size);
C_ior(tp->tp_size);
expr->nd_symb = '=';
}
else if (expr->nd_symb == LESSEQUAL) {
/* A <= B is the same as A - B = {}
@@ -756,6 +763,7 @@ CodeOper(expr, true_label, false_label)
C_com(tp->tp_size);
C_and(tp->tp_size);
C_zer(tp->tp_size);
expr->nd_symb = '=';
}
C_cms(tp->tp_size);
break;