about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBaitinq <[email protected]>2025-05-17 11:40:28 +0200
committerBaitinq <[email protected]>2025-05-17 11:40:28 +0200
commit9df061a08d0a031a6ba91b9b674c9b5758a6177e (patch)
tree4fb4c518d8a3c0a9440347d9bec22faef6342026 /src
parentBootstrap: Tokenizer: Tokenize ints (diff)
downloadinterpreter-9df061a08d0a031a6ba91b9b674c9b5758a6177e.tar.gz
interpreter-9df061a08d0a031a6ba91b9b674c9b5758a6177e.tar.bz2
interpreter-9df061a08d0a031a6ba91b9b674c9b5758a6177e.zip
Codegen: Fix bug with global functions as params
Diffstat (limited to '')
-rw-r--r--src/codegen.zig6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index 1d2e877..d126cde 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -495,12 +495,14 @@ 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 {
+                        param_value = llvm.LLVMBuildLoad2(self.builder, param_type, variable.value, "");
                     }
 
-                    const loaded = llvm.LLVMBuildLoad2(self.builder, param_type, variable.value, "");
-                    return self.generate_literal(loaded, name, expression, variable.node_type);
+                    return self.generate_literal(param_value, name, expression, variable.node_type);
                 },
             },
             .ADDITIVE_EXPRESSION => |exp| {