From 01519f2fd5dc7551291c2e54d5e9b1d4c97df92f Mon Sep 17 00:00:00 2001 From: Ginger Bill Date: Sun, 13 Aug 2017 22:09:26 +0100 Subject: Fix `push_allocator` --- src/ir.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/ir.cpp') diff --git a/src/ir.cpp b/src/ir.cpp index 93888588f..c777280bd 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -7065,7 +7065,9 @@ void ir_build_stmt_internal(irProcedure *proc, AstNode *node) { array_add(&proc->context_stack, next); defer (array_pop(&proc->context_stack)); - irValue *gep = ir_emit_struct_ep(proc, next, 1); + // TODO(bill): is this too leaky? + Selection sel = lookup_field(proc->module->allocator, t_context, str_lit("allocator"), false); + irValue *gep = ir_emit_deep_field_gep(proc, next, sel); ir_emit_store(proc, gep, ir_build_expr(proc, pa->expr)); ir_build_stmt(proc, pa->body); -- cgit v1.2.3