mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 23:58:50 +00:00
@@ -1073,6 +1073,7 @@ gb_internal lbValue lb_emit_call(lbProcedure *p, lbValue value, Array<lbValue> c
|
|||||||
|
|
||||||
lbValue result = {};
|
lbValue result = {};
|
||||||
|
|
||||||
|
isize ignored_args = 0;
|
||||||
auto processed_args = array_make<lbValue>(permanent_allocator(), 0, args.count);
|
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];
|
lbArgType *arg = &ft->args[param_index];
|
||||||
if (arg->kind == lbArg_Ignore) {
|
if (arg->kind == lbArg_Ignore) {
|
||||||
param_index += 1;
|
param_index += 1;
|
||||||
|
ignored_args += 1;
|
||||||
continue;
|
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_fix_values = slice_make<lbValue>(permanent_allocator(), ret_count);
|
||||||
auto tuple_geps = 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++) {
|
for (isize j = 0; j < ret_count-1; j++) {
|
||||||
lbValue ret_arg_ptr = processed_args[offset + j];
|
lbValue ret_arg_ptr = processed_args[offset + j];
|
||||||
lbValue ret_arg = lb_emit_load(p, ret_arg_ptr);
|
lbValue ret_arg = lb_emit_load(p, ret_arg_ptr);
|
||||||
|
|||||||
Reference in New Issue
Block a user