diff options
| author | Brendan Punsky <bpunsky@gmail.com> | 2018-02-24 18:57:08 -0500 |
|---|---|---|
| committer | Brendan Punsky <bpunsky@gmail.com> | 2018-02-24 18:58:22 -0500 |
| commit | 564226be02d30a8179026847a894cf07fbc19f9a (patch) | |
| tree | b4e399a531c41312de3f515515ba671620d06742 /src/ir.cpp | |
| parent | f6c45fc68a5ec82d261ef6821abd3896b9b8405c (diff) | |
fixed issues with uninitialized contexts
also, `any_to_bytes` I think, and maybe some bindings in `core:sys/windows.odin`
Diffstat (limited to 'src/ir.cpp')
| -rw-r--r-- | src/ir.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/ir.cpp b/src/ir.cpp index 1a33f17e1..9613f7192 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -1650,6 +1650,12 @@ irValue *ir_find_or_generate_context_ptr(irProcedure *proc) { if (proc->context_stack.count > 0) { return proc->context_stack[proc->context_stack.count-1]; } + + irBlock *tmp_block = proc->curr_block; + proc->curr_block = proc->blocks[0]; + + defer (proc->curr_block = tmp_block); + irValue *c = ir_add_local_generated(proc, t_context); array_add(&proc->context_stack, c); ir_emit_store(proc, c, ir_emit_load(proc, proc->module->global_default_context)); |