summaryrefslogtreecommitdiff
path: root/src/parser
diff options
context:
space:
mode:
authorZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-26 00:17:24 +0000
committerZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-26 00:17:24 +0000
commit6bef876bf900458a36260ca3fe96e23b06749d74 (patch)
tree81f307c4c4b876f71b54e3ee155e9b8dcd9ad6a9 /src/parser
parent10889700d1e587c2ff5544efeb7f98448a365057 (diff)
Fix for #129
Diffstat (limited to 'src/parser')
-rw-r--r--src/parser/parser_stmt.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/parser/parser_stmt.c b/src/parser/parser_stmt.c
index 21d36eb..6250392 100644
--- a/src/parser/parser_stmt.c
+++ b/src/parser/parser_stmt.c
@@ -463,7 +463,12 @@ ASTNode *parse_defer(ParserContext *ctx, Lexer *l)
else
{
s = ast_create(NODE_RAW_STMT);
- s->raw_stmt.content = consume_and_rewrite(ctx, l);
+ char *raw_content = consume_and_rewrite(ctx, l);
+ // consume_and_rewrite strips the semicolon, so we must add it back for proper C generation
+ char *safe_content = xmalloc(strlen(raw_content) + 2);
+ sprintf(safe_content, "%s;", raw_content);
+ free(raw_content);
+ s->raw_stmt.content = safe_content;
}
ctx->in_defer_block = prev_in_defer;