From ddf005024d396dd4194447bdc0cbe6ef03d43df0 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 17 Jun 2023 22:09:43 +0100 Subject: Add loaded free variables as locals --- .../org/shedlang/compiler/backends/llvm/LlvmCompilerClosures.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerClosures.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerClosures.java index 22c55ce2..1f977db2 100644 --- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerClosures.java +++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerClosures.java @@ -76,7 +76,7 @@ public class LlvmCompilerClosures { ); var functionContext = context.enterFunction(); - var functionClosurePointerResult = context.generateVariableLocal( + var functionClosurePointerResult = functionContext.generateVariableLocal( LlvmCompilerLocalVariableSpace.CLOSURE_POINTER ); var functionClosurePointer = functionClosurePointerResult.value(); @@ -355,11 +355,13 @@ public class LlvmCompilerClosures { var closureFreeVariable = closureFreeVariableResult.value(); context = closureFreeVariableResult.context(); - return context.addInstruction(new LlvmLoad( + context = context.addInstruction(new LlvmLoad( closureFreeVariable, LlvmCompilerTypes.VALUE_TYPE, closureFreeVariablePointer )); + + return context.addLocal(freeVariable.name(), closureFreeVariable); } private static LlvmCompilerResult getClosureFreeVariablePointer( -- cgit v1.2.3