authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-27 21:30:11-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-27 21:30:11-05:00
logae20574d5efaa7c63d78299b761eee38515b5865
tree39a17d6179e8afdd2edac5396667607eb3d50a93
parentc58633ef17beb908fdfed46d7ca13e08d0d93648
signature Commit is signed but in an unrecognized format.

add missing spill for for loops with pointer elems


1 files changed, 2 insertions(+), 3 deletions(-)

src/ir.cpp+2-3
...@@ -8477,9 +8477,8 @@ static IrInstSrc *ir_gen_for_expr(IrBuilderSrc *irb, Scope *parent_scope, AstNod...@@ -8477,9 +8477,8 @@ static IrInstSrc *ir_gen_for_expr(IrBuilderSrc *irb, Scope *parent_scope, AstNod
8477 ResultLocPeerParent *peer_parent = ir_build_result_peers(irb, cond_br_inst, end_block, result_loc, is_comptime);8477 ResultLocPeerParent *peer_parent = ir_build_result_peers(irb, cond_br_inst, end_block, result_loc, is_comptime);
84788478
8479 ir_set_cursor_at_end_and_append_block(irb, body_block);8479 ir_set_cursor_at_end_and_append_block(irb, body_block);
8480 Scope *elem_ptr_scope = node->data.for_expr.elem_is_ptr ? parent_scope : &spill_scope->base;8480 IrInstSrc *elem_ptr = ir_build_elem_ptr(irb, &spill_scope->base, node, array_val_ptr, index_val,
8481 IrInstSrc *elem_ptr = ir_build_elem_ptr(irb, elem_ptr_scope, node, array_val_ptr, index_val, false,8481 false, PtrLenSingle, nullptr);
8482 PtrLenSingle, nullptr);
8483 // TODO make it an error to write to element variable or i variable.8482 // TODO make it an error to write to element variable or i variable.
8484 Buf *elem_var_name = elem_node->data.symbol_expr.symbol;8483 Buf *elem_var_name = elem_node->data.symbol_expr.symbol;
8485 ZigVar *elem_var = ir_create_var(irb, elem_node, parent_scope, elem_var_name, true, false, false, is_comptime);8484 ZigVar *elem_var = ir_create_var(irb, elem_node, parent_scope, elem_var_name, true, false, false, is_comptime);