diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-12-20 16:11:49 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-12-20 16:12:19 +0000 |
| commit | 9c22159b16d5346721f29f818e3d756c0ecd4647 (patch) | |
| tree | f7eba4046bc22cfbe84a42d91d52a426b7b89ec2 /src/main/java | |
| parent | b8fc4287839236f239baa9de35dbe0141b56cbf7 (diff) | |
Get jmp buf LLVM type from function
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/llvm/codegen/LlvmPatioCodeGen.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/LlvmPatioCodeGen.java b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/LlvmPatioCodeGen.java index b7e160b3..c82f0a05 100644 --- a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/LlvmPatioCodeGen.java +++ b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/LlvmPatioCodeGen.java @@ -34,8 +34,10 @@ public class LlvmPatioCodeGen { private static final LlvmType EXCEPTION_TAG_TYPE = LlvmTypes.INT_32; private static final LlvmType EXCEPTION_VALUE_TYPE = LlvmTypes.INT_64; - // TODO: find size of jmp_buf properly - private static final LlvmType JMP_BUF_DATA = LlvmTypes.array(200, LlvmTypes.INT_8); + private static LlvmType jmpBufData() { + // TODO: find size of jmp_buf properly + return LlvmTypes.array(200, LlvmTypes.INT_8); + } private static final LlvmFunctionDeclaration SETJMP_DECLARATION = new LlvmFunctionDeclaration( "_setjmp", @@ -669,7 +671,7 @@ public class LlvmPatioCodeGen { context = context.addInstruction(new LlvmAlloca( jmpBuf, - JMP_BUF_DATA + jmpBufData() )); var previousExceptionHandlerResult = context.allocateLocalName(LlvmCodeGenLocalVariableSpace.TRY_PREVIOUS_EXCEPTION_HANDLER); |
