diff --git a/lang/codegen/lambda.c b/lang/codegen/lambda.c index 3d6af81..e8f30b2 100644 --- a/lang/codegen/lambda.c +++ b/lang/codegen/lambda.c @@ -29,7 +29,11 @@ struct lambda_codegen_state { static enum ivy_status switch_to_lambda_func( struct ivy_codegen *gen, struct lambda_codegen_state *lambda) { - lambda->s_outer_block = mie_builder_get_current_block(gen->c_builder); + if (!lambda->s_outer_block) { + lambda->s_outer_block + = mie_builder_get_current_block(gen->c_builder); + } + struct mie_block *block = mie_func_get_last_block(lambda->s_func); if (!block) { block = mie_func_create_block(lambda->s_func, "entry");