diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-06-17 21:42:33 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-06-17 21:42:33 +0100 |
| commit | 2ead93bf3d82dc37bfe440917bfd4244d3a3f14f (patch) | |
| tree | 1c320940931844c4985c38cb4fa9927106fe2bdd /src | |
| parent | 9d633e579c5b0ac46eaf3958e1dad6cfe9e5f1da (diff) | |
Include free variable name in LLVM pointer name
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerClosures.java | 3 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java | 8 |
2 files changed, 6 insertions, 5 deletions
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 da60ea7a..b88a8401 100644 --- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerClosures.java +++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerClosures.java @@ -324,7 +324,8 @@ public class LlvmCompilerClosures { LlvmCompilerContext context ) { var freeVariablePointerResult = context.generateVariableLocal( - LlvmCompilerLocalVariableSpace.CLOSURE_FREE_VARIABLE_POINTER + LlvmCompilerLocalVariableSpace.CLOSURE_FREE_VARIABLE_POINTER, + freeVariable.name() ); var freeVariablePointer = freeVariablePointerResult.value(); context = freeVariablePointerResult.context(); diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java index d32d7ee5..e3f41a6c 100644 --- a/src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java +++ b/src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java @@ -111,10 +111,10 @@ public class LlvmCompilerDefineFunctionTests { %closurePointer__0 = call {i64 ([2 x i64] *) *, [2 x i64]} * @shed__runtime__alloc(i64 %size__0) %closureFunctionPointerPointer__0 = getelementptr {i64 ([2 x i64] *) *, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 0 store i64 ([2 x i64] *) * @shed__fun__f__0, ptr %closureFunctionPointerPointer__0 - %closureFreeVariablePointer__0 = getelementptr {i64 ([2 x i64] *) *, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 1, i64 0 - store i64 1, ptr %closureFreeVariablePointer__0 - %closureFreeVariablePointer__1 = getelementptr {i64 ([2 x i64] *) *, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 1, i64 1 - store i64 2, ptr %closureFreeVariablePointer__1 + %closureFreeVariablePointer__a__0 = getelementptr {i64 ([2 x i64] *) *, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 1, i64 0 + store i64 1, ptr %closureFreeVariablePointer__a__0 + %closureFreeVariablePointer__b__0 = getelementptr {i64 ([2 x i64] *) *, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 1, i64 1 + store i64 2, ptr %closureFreeVariablePointer__b__0 %closureValue__0 = ptrtoint ptr %closurePointer__0 to i64""")); assertThat(result.stack(), isSequence( |
