about summary refs log tree commit diff
path: root/src/codegen.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen.zig')
-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| {