diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2024-02-28 10:49:28 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-28 10:49:28 +0000 |
| commit | 84a7e03178093a6c6bfb582250a775fef745cf48 (patch) | |
| tree | c6c476ccb3ce62cf64bb01a04d5d11ab1f574bf2 /src/llvm_backend_proc.cpp | |
| parent | 1bffc8baac4117171307aa8998c8d9dc7c0c4dae (diff) | |
| parent | bb23648c7133a1827373bfbb8922504f20e0478c (diff) | |
Merge pull request #3220 from laytan/promote-types-in-c-varargs
Promote types in `#c_varargs` according to C rules
Diffstat (limited to 'src/llvm_backend_proc.cpp')
| -rw-r--r-- | src/llvm_backend_proc.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index 13b0171e4..2c94222cf 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; |