aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-08-17 15:54:45 +0100
committergingerBill <bill@gingerbill.org>2022-08-17 15:54:45 +0100
commitf504b200a9ccee250032e6ed2c1dd3d40e9c9acb (patch)
treefe808b2d35871a13352c8736638accaa4915c2f3 /src
parent82e840a0ca3fb547ac93e680a3dcbbb67958077f (diff)
Improve `unreachable` generation by putting a `trap` before it
Diffstat (limited to 'src')
-rw-r--r--src/llvm_backend_utility.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/llvm_backend_utility.cpp b/src/llvm_backend_utility.cpp
index 8be339ca7..480bad75c 100644
--- a/src/llvm_backend_utility.cpp
+++ b/src/llvm_backend_utility.cpp
@@ -42,6 +42,7 @@ bool lb_is_type_aggregate(Type *t) {
void lb_emit_unreachable(lbProcedure *p) {
LLVMValueRef instr = LLVMGetLastInstruction(p->curr_block->block);
if (instr == nullptr || !lb_is_instr_terminating(instr)) {
+ lb_call_intrinsic(p, "trap", nullptr, 0, nullptr, 0);
LLVMBuildUnreachable(p->builder);
}
}