aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-06-06 15:16:24 +0100
committergingerBill <bill@gingerbill.org>2020-06-06 15:16:24 +0100
commit59a0bbb38512054eb5c6fc83383c3638ed03d1bf (patch)
treebd7f9e00f72a9b0d1c20e6eddd9251e0012e8070 /src/llvm_backend.cpp
parenta3fa647bfd579e38337cff173a672159d42f7fd6 (diff)
Improve termination rules checking for missing `return`; Make diverging procedure `-> !` be terminators
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 147afcf46..814f79b1b 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -6902,6 +6902,10 @@ lbValue lb_emit_call(lbProcedure *p, lbValue value, Array<lbValue> const &args,
context_ptr = lb_find_or_generate_context_ptr(p);
}
+ defer (if (pt->Proc.diverging) {
+ LLVMBuildUnreachable(p->builder);
+ });
+
set_procedure_abi_types(heap_allocator(), pt);
bool is_c_vararg = pt->Proc.c_vararg;