From 9c22159b16d5346721f29f818e3d756c0ecd4647 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 20 Dec 2023 16:11:49 +0000 Subject: Get jmp buf LLVM type from function --- .../shedlang/compiler/backends/llvm/codegen/LlvmPatioCodeGen.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/main/java') 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); -- cgit v1.2.3