diff --git a/src/stage1/codegen.cpp b/src/stage1/codegen.cpp index 2fc85b42fe..61139648af 100644 --- a/src/stage1/codegen.cpp +++ b/src/stage1/codegen.cpp @@ -4428,6 +4428,7 @@ static LLVMValueRef ir_render_call(CodeGen *g, IrExecutableGen *executable, IrIn gen_assign_raw(g, arg_ptr, get_pointer_to_type(g, gen_param_types.at(arg_i), true), gen_param_values.at(arg_i)); } + gen_param_types.deinit(); if (instruction->modifier == CallModifierAsync) { gen_resume(g, fn_val, frame_result_loc, ResumeIdCall); @@ -4505,6 +4506,8 @@ static LLVMValueRef ir_render_call(CodeGen *g, IrExecutableGen *executable, IrIn LLVMValueRef result_ptr = LLVMBuildStructGEP(g->builder, frame_result_loc, frame_ret_start + 2, ""); return LLVMBuildLoad(g->builder, result_ptr, ""); } + } else { + gen_param_types.deinit(); } if (instruction->new_stack == nullptr || instruction->is_async_call_builtin) { diff --git a/src/stage1/ir.cpp b/src/stage1/ir.cpp index bb4ca8dbf3..fbdae69bb6 100644 --- a/src/stage1/ir.cpp +++ b/src/stage1/ir.cpp @@ -9606,6 +9606,7 @@ static IrInstSrc *ir_gen_continue(IrBuilderSrc *irb, Scope *continue_scope, AstN ScopeRuntime *scope_runtime = runtime_scopes.at(i); ir_mark_gen(ir_build_check_runtime_scope(irb, continue_scope, node, scope_runtime->is_comptime, is_comptime)); } + runtime_scopes.deinit(); IrBasicBlockSrc *dest_block = loop_scope->continue_block; if (!ir_gen_defers_for_block(irb, continue_scope, dest_block->scope, nullptr, nullptr)) @@ -21526,6 +21527,7 @@ static IrInstGen *ir_analyze_instruction_phi(IrAnalyze *ira, IrInstSrcPhi *phi_i predecessor->instruction_list.append(instrs_to_move.pop()); } predecessor->instruction_list.append(branch_instruction); + instrs_to_move.deinit(); } } @@ -21576,7 +21578,10 @@ static IrInstGen *ir_analyze_instruction_phi(IrAnalyze *ira, IrInstSrcPhi *phi_i } if (new_incoming_blocks.length == 1) { - return new_incoming_values.at(0); + IrInstGen *incoming_value = new_incoming_values.at(0); + new_incoming_blocks.deinit(); + new_incoming_values.deinit(); + return incoming_value; } ZigType *resolved_type = nullptr; @@ -24154,6 +24159,7 @@ static IrInstGen *ir_analyze_container_init_fields(IrAnalyze *ira, IrInst *sourc } } + const_ptrs.deinit(); IrInstGen *result = ir_get_deref(ira, source_instr, result_loc, nullptr); if (is_comptime && !instr_is_comptime(result)) {