| ... | @@ -668,6 +668,7 @@ static LLVMValueRef get_safety_crash_err_fn(CodeGen *g) { | ... | @@ -668,6 +668,7 @@ static LLVMValueRef get_safety_crash_err_fn(CodeGen *g) { |
| 668 | | 668 | |
| 669 | g->generate_error_name_table = true; | 669 | g->generate_error_name_table = true; |
| 670 | generate_error_name_table(g); | 670 | generate_error_name_table(g); |
| | 671 | assert(g->err_name_table != nullptr); |
| 671 | | 672 | |
| 672 | size_t unwrap_err_msg_text_len = strlen(unwrap_err_msg_text); | 673 | size_t unwrap_err_msg_text_len = strlen(unwrap_err_msg_text); |
| 673 | size_t err_buf_len = strlen(unwrap_err_msg_text) + g->largest_err_name_len; | 674 | size_t err_buf_len = strlen(unwrap_err_msg_text) + g->largest_err_name_len; |
| ... | @@ -755,7 +756,6 @@ static void gen_debug_safety_crash_for_err(CodeGen *g, LLVMValueRef err_val) { | ... | @@ -755,7 +756,6 @@ static void gen_debug_safety_crash_for_err(CodeGen *g, LLVMValueRef err_val) { |
| 755 | LLVMValueRef safety_crash_err_fn = get_safety_crash_err_fn(g); | 756 | LLVMValueRef safety_crash_err_fn = get_safety_crash_err_fn(g); |
| 756 | LLVMBuildCall(g->builder, safety_crash_err_fn, &err_val, 1, ""); | 757 | LLVMBuildCall(g->builder, safety_crash_err_fn, &err_val, 1, ""); |
| 757 | LLVMBuildUnreachable(g->builder); | 758 | LLVMBuildUnreachable(g->builder); |
| 758 | | | |
| 759 | } | 759 | } |
| 760 | | 760 | |
| 761 | static void add_bounds_check(CodeGen *g, LLVMValueRef target_val, | 761 | static void add_bounds_check(CodeGen *g, LLVMValueRef target_val, |
| ... | @@ -2649,7 +2649,7 @@ static LLVMValueRef ir_render_unwrap_err_payload(CodeGen *g, IrExecutable *execu | ... | @@ -2649,7 +2649,7 @@ static LLVMValueRef ir_render_unwrap_err_payload(CodeGen *g, IrExecutable *execu |
| 2649 | LLVMValueRef err_union_ptr = ir_llvm_value(g, instruction->value); | 2649 | LLVMValueRef err_union_ptr = ir_llvm_value(g, instruction->value); |
| 2650 | LLVMValueRef err_union_handle = get_handle_value(g, err_union_ptr, err_union_type, is_volatile); | 2650 | LLVMValueRef err_union_handle = get_handle_value(g, err_union_ptr, err_union_type, is_volatile); |
| 2651 | | 2651 | |
| 2652 | if (ir_want_debug_safety(g, &instruction->base) && instruction->safety_check_on) { | 2652 | if (ir_want_debug_safety(g, &instruction->base) && instruction->safety_check_on && g->error_decls.length > 1) { |
| 2653 | LLVMValueRef err_val; | 2653 | LLVMValueRef err_val; |
| 2654 | if (type_has_bits(child_type)) { | 2654 | if (type_has_bits(child_type)) { |
| 2655 | LLVMValueRef err_val_ptr = LLVMBuildStructGEP(g->builder, err_union_handle, err_union_err_index, ""); | 2655 | LLVMValueRef err_val_ptr = LLVMBuildStructGEP(g->builder, err_union_handle, err_union_err_index, ""); |