aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-12-21 16:16:44 +0000
committerMichael Williamson <mike@zwobble.org>2023-12-21 16:16:44 +0000
commit812b4db4e97e9554ff63e3f2c5e4b6e88633b219 (patch)
treee8714f205eb7fc0dfae4d25e54a63320bb523551 /src/main/java
parent8a4e269a1ecd0092c82e3fccbe7af9baf09fdf1e (diff)
Avoid silently dropping instructions when generating LLVM code
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvmFunctionContext.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvmFunctionContext.java b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvmFunctionContext.java
index 18e46e3c..c27beec6 100644
--- a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvmFunctionContext.java
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvmFunctionContext.java
@@ -69,7 +69,9 @@ class PatioToLlvmFunctionContext {
}
PatioToLlvmModuleContext.Result<PVector<LlvmBasicBlock>> toBasicBlocks() {
- // TODO: check there are no instructions without a terminator.
+ if (!this.instructions.isEmpty()) {
+ throw new IllegalStateException("basic block is missing terminator instruction");
+ }
return this.moduleContext.toResult(this.basicBlocks);
}