From a65ccc0c3401d4fe8f7202f98cee17667004912b Mon Sep 17 00:00:00 2001 From: Baitinq Date: Wed, 12 Feb 2025 20:24:22 +0100 Subject: Codegen: Dont alloca for function definitions --- src/codegen.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/codegen.zig b/src/codegen.zig index ddc34cc..b5f46ae 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -130,7 +130,7 @@ pub const CodeGen = struct { std.debug.assert(self.environment.contains_variable(assignment_statement.name) != assignment_statement.is_declaration); - if (assignment_statement.is_declaration and self.environment.scope_stack.items.len > 1) { + if (assignment_statement.is_declaration and self.environment.scope_stack.items.len > 1 and assignment_statement.expression.* != .FUNCTION_DEFINITION) { const y = core.LLVMGetLastFunction(self.llvm_module); core.LLVMPositionBuilderAtEnd(self.builder, core.LLVMGetEntryBasicBlock(y)); const x = try std.fmt.allocPrintZ(self.arena, "{s}", .{assignment_statement.name}); -- cgit 1.4.1