Ver Fonte

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

gingerBill há 3 anos atrás
pai
commit
f504b200a9
1 ficheiros alterados com 1 adições e 0 exclusões
  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);
 	}
 	}
 }
 }