diff options
| author | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-25 12:20:33 +0000 |
|---|---|---|
| committer | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-25 12:20:33 +0000 |
| commit | eae6d2a789f6538806a3859a144e99558d3e6caf (patch) | |
| tree | 1ba0f696c17879af7bec8e017ff1c1c81439d791 /src/codegen/codegen_decl.c | |
| parent | 2dc5214fd8bb6a1168e2f2b643a36043c36c908a (diff) | |
Further fix for #121
Diffstat (limited to 'src/codegen/codegen_decl.c')
| -rw-r--r-- | src/codegen/codegen_decl.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/codegen/codegen_decl.c b/src/codegen/codegen_decl.c index b82e1af..d525963 100644 --- a/src/codegen/codegen_decl.c +++ b/src/codegen/codegen_decl.c @@ -991,7 +991,14 @@ int emit_tests_and_runner(ParserContext *ctx, ASTNode *node, FILE *out) if (cur->type == NODE_TEST) { fprintf(out, "static void _z_test_%d() {\n", test_count); + int saved = defer_count; codegen_walker(ctx, cur->test_stmt.body, out); + // Run defers + for (int i = defer_count - 1; i >= saved; i--) + { + codegen_node_single(ctx, defer_stack[i], out); + } + defer_count = saved; fprintf(out, "}\n"); test_count++; } |
