Browse Source

Improve `unreachable` generation by putting a `trap` before it

gingerBill 3 years ago
parent
commit
f504b200a9
1 changed files with 1 additions and 0 deletions
  1. 1 0
      src/llvm_backend_utility.cpp

+ 1 - 0
src/llvm_backend_utility.cpp

@@ -42,6 +42,7 @@ bool lb_is_type_aggregate(Type *t) {
 void lb_emit_unreachable(lbProcedure *p) {
 void lb_emit_unreachable(lbProcedure *p) {
 	LLVMValueRef instr = LLVMGetLastInstruction(p->curr_block->block);
 	LLVMValueRef instr = LLVMGetLastInstruction(p->curr_block->block);
 	if (instr == nullptr || !lb_is_instr_terminating(instr)) {
 	if (instr == nullptr || !lb_is_instr_terminating(instr)) {
+		lb_call_intrinsic(p, "trap", nullptr, 0, nullptr, 0);
 		LLVMBuildUnreachable(p->builder);
 		LLVMBuildUnreachable(p->builder);
 	}
 	}
 }
 }