From a6b7f27a848f337a3d742f51a3d22da5712b4e88 Mon Sep 17 00:00:00 2001 From: Baitinq Date: Tue, 11 Mar 2025 00:04:11 +0100 Subject: Codegen: Fix bug with functions without name --- src/codegen.zig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/codegen.zig b/src/codegen.zig index 45ebde6..d463122 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -265,10 +265,11 @@ pub const CodeGen = struct { try self.environment.create_scope(); defer self.environment.drop_scope(); - const ptr = self.environment.get_variable(name.?); + var ptr: ?*Variable = null; // Needed for recursive functions if (name != null) { + ptr = self.environment.get_variable(name.?); try self.environment.add_variable(name.?, try self.create_variable(.{ .value = function, .type = function_type, @@ -309,7 +310,7 @@ pub const CodeGen = struct { core.LLVMPositionBuilderAtEnd(self.builder, builder_pos); // Global functions - if (self.environment.scope_stack.items.len == 2) { + if (name == null or self.environment.scope_stack.items.len == 2) { return try self.create_variable(.{ .value = function, .type = function_type, -- cgit 1.4.1