diff options
| author | gingerBill <bill@gingerbill.org> | 2020-06-16 16:21:44 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2020-06-16 16:21:44 +0100 |
| commit | 781395ada1883203582adec70e5ab1a2eda316bb (patch) | |
| tree | 3064a744c0b406c83c74b9d05c9c87fd392f8b8f /src/ir.cpp | |
| parent | 9635ea8706e462bf5c42c8fbaf792b96137ad21a (diff) | |
Add `deferred_in_out` attribute
Diffstat (limited to 'src/ir.cpp')
| -rw-r--r-- | src/ir.cpp | 8 |
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); |