From 7fea57bdddde04090cc95112b47d0a1a86c341bc Mon Sep 17 00:00:00 2001 From: Zuhaitz Méndez Fernández de Aránguiz Date: Sun, 25 Jan 2026 12:54:33 +0000 Subject: Fix for #123 --- src/codegen/codegen.c | 3 +-- src/codegen/codegen_stmt.c | 7 ++++--- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/codegen') diff --git a/src/codegen/codegen.c b/src/codegen/codegen.c index 8f2b6c1..b375bbb 100644 --- a/src/codegen/codegen.c +++ b/src/codegen/codegen.c @@ -56,7 +56,7 @@ static void codegen_var_expr(ParserContext *ctx, ASTNode *node, FILE *out) if (node->resolved_type && strcmp(node->resolved_type, "unknown") == 0) { - if (node->var_ref.suggestion) + if (node->var_ref.suggestion && !ctx->silent_warnings) { char msg[256]; sprintf(msg, "Undefined variable '%s'", node->var_ref.name); @@ -289,7 +289,6 @@ void codegen_expression(ParserContext *ctx, ASTNode *node, FILE *out) else { fprintf(out, "("); - // Left side: Only move if NOT an assignment target int is_assignment = (node->binary.op[strlen(node->binary.op) - 1] == '=' && strcmp(node->binary.op, "==") != 0 && strcmp(node->binary.op, "!=") != 0 && diff --git a/src/codegen/codegen_stmt.c b/src/codegen/codegen_stmt.c index 003ce42..ff8ea46 100644 --- a/src/codegen/codegen_stmt.c +++ b/src/codegen/codegen_stmt.c @@ -498,9 +498,10 @@ void codegen_match_internal(ParserContext *ctx, ASTNode *node, FILE *out, int us { if (is_string_literal) { - fprintf(out, "({ printf(\"%%s\", "); - codegen_expression(ctx, body, out); - fprintf(out, "); printf(\"\\n\"); 0; })"); + char *inner = body->literal.string_val; + char *code = process_printf_sugar(ctx, inner, 1, "stdout", NULL, NULL, 0); + fprintf(out, "%s;", code); + free(code); } else { -- cgit v1.2.3