diff --git a/lang/codegen/codegen.c b/lang/codegen/codegen.c index 7d219bc..f4dac1e 100644 --- a/lang/codegen/codegen.c +++ b/lang/codegen/codegen.c @@ -315,12 +315,17 @@ static enum ivy_status pop_generator_recurse( struct code_generator_state *state = get_current_generator_state(gen); - if (!state || !state->s_gen->g_value_received) { + if (!state) { return IVY_OK; } - struct code_generator_result result - = state->s_gen->g_value_received(gen, state, value); + struct code_generator_result result = { + .r_status = IVY_OK, + }; + + if (state->s_gen->g_value_received) { + state->s_gen->g_value_received(gen, state, value); + } bool should_pop = ((result.r_flags & CODEGEN_R_POP_GENERATOR) != 0) || node_depth <= state->s_depth;