aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index fb1a20f6d..60f1a1192 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -3319,6 +3319,14 @@ irValue *ir_emit_call(irProcedure *p, irValue *value, Array<irValue *> const &ar
case DeferredProcedure_out:
result_as_args = ir_value_to_array(p, result);
break;
+ case DeferredProcedure_in_out:
+ {
+ auto out_args = ir_value_to_array(p, result);
+ array_init(&result_as_args, heap_allocator(), in_args.count + out_args.count);
+ array_copy(&result_as_args, in_args, 0);
+ array_copy(&result_as_args, out_args, in_args.count);
+ }
+ break;
}
ir_add_defer_proc(p, p->scope_index, deferred, result_as_args);