From 10f5f234ce066f533bc7dfa96b4acbd342c359c4 Mon Sep 17 00:00:00 2001 From: Baitinq Date: Sat, 24 May 2025 10:29:38 +0200 Subject: Codegen: Fix bug with functions inside functions --- src/codegen.zig | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/codegen.zig b/src/codegen.zig index e9eec9b..619e6db 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -545,11 +545,12 @@ pub const CodeGen = struct { }, .IDENTIFIER => |i| { const variable = self.environment.get_variable(i.name).?; - var param_type = try self.get_llvm_type(variable.node_type); var param_value = variable.value; - if (variable.node_type.TYPE == .FUNCTION_TYPE) { - param_type = llvm.LLVMPointerType(param_type.?, 0); - } else { + if (variable.node_type.TYPE != .FUNCTION_TYPE or variable.stack_level != 0) { + var param_type = try self.get_llvm_type(variable.node_type); + if (variable.node_type.TYPE == .FUNCTION_TYPE) { + param_type = llvm.LLVMPointerType(param_type.?, 0); + } param_value = llvm.LLVMBuildLoad2(self.builder, param_type, variable.value, ""); } -- cgit 1.4.1