aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_proc.cpp
diff options
context:
space:
mode:
authorLaytan Laats <laytanlaats@hotmail.com>2024-02-21 22:05:11 +0100
committerLaytan Laats <laytanlaats@hotmail.com>2024-02-21 22:05:11 +0100
commitf6f3a760bcdbad183a4141738b19779e88ed7dfc (patch)
treeb2796b3382b17733f425e581f6a0da43d9704ba8 /src/llvm_backend_proc.cpp
parent41549b502b3da7fafbe8bdf79c9a7417559b12b6 (diff)
Promote types in `#c_varargs` according to C rules
Diffstat (limited to 'src/llvm_backend_proc.cpp')
-rw-r--r--src/llvm_backend_proc.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp
index 9419f9a3c..4a981277d 100644
--- a/src/llvm_backend_proc.cpp
+++ b/src/llvm_backend_proc.cpp
@@ -3361,9 +3361,9 @@ gb_internal lbValue lb_build_call_expr_internal(lbProcedure *p, Ast *expr) {
for (Ast *var_arg : variadic) {
lbValue arg = lb_build_expr(p, var_arg);
if (is_type_any(elem_type)) {
- array_add(&args, lb_emit_conv(p, arg, default_type(arg.type)));
+ array_add(&args, lb_emit_conv(p, arg, c_vararg_promote_type(default_type(arg.type))));
} else {
- array_add(&args, lb_emit_conv(p, arg, elem_type));
+ array_add(&args, lb_emit_conv(p, arg, c_vararg_promote_type(elem_type)));
}
}
break;