diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-11-29 21:36:12 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-11-29 21:36:12 -0500 |
| commit | 7278c51ddd1f3d0a06a4181f3588032d6940a8d4 (patch) | |
| tree | b9180cb29cf2b2ecd7ae27478b495fb626ee1677 /src/ir.cpp | |
| parent | 559bd27b08f6504addd668a1df01b484dd130430 (diff) | |
| download | zig-7278c51ddd1f3d0a06a4181f3588032d6940a8d4.tar.gz zig-7278c51ddd1f3d0a06a4181f3588032d6940a8d4.zip | |
fix empty result location for parameters not working
Diffstat (limited to 'src/ir.cpp')
| -rw-r--r-- | src/ir.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/ir.cpp b/src/ir.cpp index e7f75dd567..8f79841df3 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -5971,7 +5971,9 @@ static IrInstruction *ir_gen_fn_call(IrBuilder *irb, Scope *scope, AstNode *node IrInstruction *arg_index = ir_build_const_usize(irb, scope, arg_node, i); IrInstruction *arg_type = ir_build_arg_type(irb, scope, node, fn_type, arg_index, true); - ResultLocCast *result_loc_cast = ir_build_cast_result_loc(irb, arg_type, no_result_loc()); + ResultLoc *no_result = no_result_loc(); + ir_build_reset_result(irb, scope, node, no_result); + ResultLocCast *result_loc_cast = ir_build_cast_result_loc(irb, arg_type, no_result); IrInstruction *arg = ir_gen_node_extra(irb, arg_node, scope, LValNone, &result_loc_cast->base); if (arg == irb->codegen->invalid_instruction) @@ -16278,8 +16280,10 @@ static IrInstruction *ir_resolve_result_raw(IrAnalyze *ira, IrInstruction *suspe force_runtime, non_null_comptime); } - return ir_analyze_ptr_cast(ira, suspend_source_instr, parent_result_loc, + result_loc->written = true; + result_loc->resolved_loc = ir_analyze_ptr_cast(ira, suspend_source_instr, parent_result_loc, ptr_type, result_cast->base.source_instruction, false); + return result_loc->resolved_loc; } case ResultLocIdBitCast: { ResultLocBitCast *result_bit_cast = reinterpret_cast<ResultLocBitCast *>(result_loc); |
