diff options
| author | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-27 10:20:32 +0000 |
|---|---|---|
| committer | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-27 10:20:40 +0000 |
| commit | 08247ead8ecd05d892b98bfb12ed807bcfebfc5c (patch) | |
| tree | de10d620840075c96aa7fdcbc2bda6745ca22877 /src/codegen/codegen_stmt.c | |
| parent | 86ae08ff28ee47c57546c487b0bdaab27c4ab5ad (diff) | |
Fix zero init bug
Diffstat (limited to 'src/codegen/codegen_stmt.c')
| -rw-r--r-- | src/codegen/codegen_stmt.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/codegen/codegen_stmt.c b/src/codegen/codegen_stmt.c index 6e41109..1679d97 100644 --- a/src/codegen/codegen_stmt.c +++ b/src/codegen/codegen_stmt.c @@ -942,6 +942,13 @@ void codegen_node_single(ParserContext *ctx, ASTNode *node, FILE *out) fprintf(out, " = "); codegen_expression(ctx, node->var_decl.init_expr, out); } + else if (node->type_info && (node->type_info->kind == TYPE_ARRAY || + node->type_info->kind == TYPE_STRUCT || + node->type_info->kind == TYPE_BOOL)) + { + // Zero initialize arrays and structs by default so we don't have garbage + fprintf(out, " = {0}"); + } fprintf(out, ";\n"); if (node->var_decl.init_expr && emit_move_invalidation(ctx, node->var_decl.init_expr, out)) |
