aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-12-20 16:11:49 +0000
committerMichael Williamson <mike@zwobble.org>2023-12-20 16:12:19 +0000
commit9c22159b16d5346721f29f818e3d756c0ecd4647 (patch)
treef7eba4046bc22cfbe84a42d91d52a426b7b89ec2 /src/main/java
parentb8fc4287839236f239baa9de35dbe0141b56cbf7 (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.java8
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);