aboutsummaryrefslogtreecommitdiff
path: root/src/tilde_builtin.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2023-07-24 11:30:07 +0100
committergingerBill <bill@gingerbill.org>2023-07-24 11:30:07 +0100
commit4051dd95223f9662c78c05d09e01b925d2d99ac0 (patch)
tree30b3cc20a7913c1032485d9d02f1125013881b16 /src/tilde_builtin.cpp
parent360cb9eb9ab0162587d390102780d00f8d0c9139 (diff)
Update Tilde to get basic "Hello World" working with `runtime.print_string`
Diffstat (limited to 'src/tilde_builtin.cpp')
-rw-r--r--src/tilde_builtin.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/tilde_builtin.cpp b/src/tilde_builtin.cpp
index 6deaf0e9b..b40eacc7f 100644
--- a/src/tilde_builtin.cpp
+++ b/src/tilde_builtin.cpp
@@ -303,12 +303,15 @@ gb_internal cgValue cg_build_builtin(cgProcedure *p, BuiltinProcId id, Ast *expr
case BuiltinProc_min:
if (ce->args.count == 2) {
Type *t = type_of_expr(expr);
- return cg_builtin_min(p, t, cg_build_expr(p, ce->args[0]), cg_build_expr(p, ce->args[1]));
+ cgValue x = cg_build_expr(p, ce->args[0]);
+ cgValue y = cg_build_expr(p, ce->args[1]);
+ return cg_builtin_min(p, t, x, y);
} else {
Type *t = type_of_expr(expr);
cgValue x = cg_build_expr(p, ce->args[0]);
for (isize i = 1; i < ce->args.count; i++) {
- x = cg_builtin_min(p, t, x, cg_build_expr(p, ce->args[i]));
+ cgValue y = cg_build_expr(p, ce->args[i]);
+ x = cg_builtin_min(p, t, x, y);
}
return x;
}
@@ -316,12 +319,15 @@ gb_internal cgValue cg_build_builtin(cgProcedure *p, BuiltinProcId id, Ast *expr
case BuiltinProc_max:
if (ce->args.count == 2) {
Type *t = type_of_expr(expr);
- return cg_builtin_max(p, t, cg_build_expr(p, ce->args[0]), cg_build_expr(p, ce->args[1]));
+ cgValue x = cg_build_expr(p, ce->args[0]);
+ cgValue y = cg_build_expr(p, ce->args[1]);
+ return cg_builtin_max(p, t, x, y);
} else {
Type *t = type_of_expr(expr);
cgValue x = cg_build_expr(p, ce->args[0]);
for (isize i = 1; i < ce->args.count; i++) {
- x = cg_builtin_max(p, t, x, cg_build_expr(p, ce->args[i]));
+ cgValue y = cg_build_expr(p, ce->args[i]);
+ x = cg_builtin_max(p, t, x, y);
}
return x;
}