diff options
| author | Baitinq <[email protected]> | 2025-05-17 11:40:28 +0200 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-05-17 11:40:28 +0200 |
| commit | 9df061a08d0a031a6ba91b9b674c9b5758a6177e (patch) | |
| tree | 4fb4c518d8a3c0a9440347d9bec22faef6342026 /src | |
| parent | Bootstrap: Tokenizer: Tokenize ints (diff) | |
| download | interpreter-9df061a08d0a031a6ba91b9b674c9b5758a6177e.tar.gz interpreter-9df061a08d0a031a6ba91b9b674c9b5758a6177e.tar.bz2 interpreter-9df061a08d0a031a6ba91b9b674c9b5758a6177e.zip | |
Codegen: Fix bug with global functions as params
Diffstat (limited to 'src')
| -rw-r--r-- | src/codegen.zig | 6 |
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| { |