|
@@ -1073,6 +1073,7 @@ gb_internal lbValue lb_emit_call(lbProcedure *p, lbValue value, Array<lbValue> c
|
|
|
|
|
|
lbValue result = {};
|
|
|
|
|
|
+ isize ignored_args = 0;
|
|
|
auto processed_args = array_make<lbValue>(permanent_allocator(), 0, args.count);
|
|
|
|
|
|
{
|
|
@@ -1095,6 +1096,7 @@ gb_internal lbValue lb_emit_call(lbProcedure *p, lbValue value, Array<lbValue> c
|
|
|
lbArgType *arg = &ft->args[param_index];
|
|
|
if (arg->kind == lbArg_Ignore) {
|
|
|
param_index += 1;
|
|
|
+ ignored_args += 1;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -1203,7 +1205,7 @@ gb_internal lbValue lb_emit_call(lbProcedure *p, lbValue value, Array<lbValue> c
|
|
|
auto tuple_fix_values = slice_make<lbValue>(permanent_allocator(), ret_count);
|
|
|
auto tuple_geps = slice_make<lbValue>(permanent_allocator(), ret_count);
|
|
|
|
|
|
- isize offset = ft->original_arg_count;
|
|
|
+ isize offset = ft->original_arg_count - ignored_args;
|
|
|
for (isize j = 0; j < ret_count-1; j++) {
|
|
|
lbValue ret_arg_ptr = processed_args[offset + j];
|
|
|
lbValue ret_arg = lb_emit_load(p, ret_arg_ptr);
|