diff --git a/src/oberon.c b/src/oberon.c
index 437e7694205489c681c5da3757bdc7e58a42ad39..83f39cd2cebea39ac30fd54f1125ba11151bb045 100644 (file)
--- a/src/oberon.c
+++ b/src/oberon.c
@@ -1995,7 +1995,7 @@ oberon_make_bin_op(oberon_context_t * ctx, int token, oberon_expr_t * a, oberon_
expr = oberon_new_operator(OP_DIV, result, a, b);
break;
case MOD:
expr = oberon_new_operator(OP_DIV, result, a, b);
break;
case MOD:
- expr = oberon_new_operator(OP_DIV, result, a, b);
+ expr = oberon_new_operator(OP_MOD, result, a, b);
break;
default:
printf("token %i line %i\n", token, ctx -> loc.line);
break;
default:
printf("token %i line %i\n", token, ctx -> loc.line);
oberon_error(ctx, "condition must be boolean");
}
oberon_error(ctx, "condition must be boolean");
}
- oberon_generate_branch(ctx, cond, true, begin);
+ oberon_generate_branch(ctx, cond, false, begin);
}
else if(ctx -> token == FOR)
{
}
else if(ctx -> token == FOR)
{
@@ -4535,7 +4535,7 @@ oberon_make_ord_call(oberon_context_t * ctx, int num_args, oberon_expr_t * list_
}
else
{
}
else
{
- expr = oberon_cast_expr(ctx, arg, ctx -> int_type);
+ expr = oberon_cast_expr(ctx, arg, ctx -> shortint_type);
}
return expr;
}
}
return expr;
}