| ... | @@ -12661,21 +12661,27 @@ static void report_recursive_error(IrAnalyze *ira, AstNode *source_node, ConstCa | ... | @@ -12661,21 +12661,27 @@ static void report_recursive_error(IrAnalyze *ira, AstNode *source_node, ConstCa |
| 12661 | { | 12661 | { |
| 12662 | Buf *txt_msg = buf_sprintf("destination pointer requires a terminating '"); | 12662 | Buf *txt_msg = buf_sprintf("destination pointer requires a terminating '"); |
| 12663 | render_const_value(ira->codegen, txt_msg, wanted_type->data.pointer.sentinel); | 12663 | render_const_value(ira->codegen, txt_msg, wanted_type->data.pointer.sentinel); |
| 12664 | buf_appendf(txt_msg, "' sentinel value"); | 12664 | buf_appendf(txt_msg, "' sentinel"); |
| 12665 | if (actual_type->data.pointer.sentinel != nullptr) { | 12665 | if (actual_type->data.pointer.sentinel != nullptr) { |
| 12666 | buf_appendf(txt_msg, ", but source pointer has a terminating '"); | 12666 | buf_appendf(txt_msg, ", but source pointer has a terminating '"); |
| 12667 | render_const_value(ira->codegen, txt_msg, actual_type->data.pointer.sentinel); | 12667 | render_const_value(ira->codegen, txt_msg, actual_type->data.pointer.sentinel); |
| 12668 | buf_appendf(txt_msg, "' sentinel value"); | 12668 | buf_appendf(txt_msg, "' sentinel"); |
| 12669 | } | 12669 | } |
| 12670 | add_error_note(ira->codegen, parent_msg, source_node, txt_msg); | 12670 | add_error_note(ira->codegen, parent_msg, source_node, txt_msg); |
| 12671 | } | 12671 | } |
| 12672 | break; | 12672 | break; |
| 12673 | } | 12673 | } |
| 12674 | case ConstCastResultIdSentinelArrays: { | 12674 | case ConstCastResultIdSentinelArrays: { |
| | 12675 | ZigType *actual_type = cast_result->data.sentinel_arrays->actual_type; |
| 12675 | ZigType *wanted_type = cast_result->data.sentinel_arrays->wanted_type; | 12676 | ZigType *wanted_type = cast_result->data.sentinel_arrays->wanted_type; |
| 12676 | Buf *txt_msg = buf_sprintf("destination array requires a terminating '"); | 12677 | Buf *txt_msg = buf_sprintf("destination array requires a terminating '"); |
| 12677 | render_const_value(ira->codegen, txt_msg, wanted_type->data.pointer.sentinel); | 12678 | render_const_value(ira->codegen, txt_msg, wanted_type->data.array.sentinel); |
| 12678 | buf_appendf(txt_msg, "' sentinel value"); | 12679 | buf_appendf(txt_msg, "' sentinel"); |
| | 12680 | if (actual_type->data.array.sentinel != nullptr) { |
| | 12681 | buf_appendf(txt_msg, ", but source array has a terminating '"); |
| | 12682 | render_const_value(ira->codegen, txt_msg, actual_type->data.array.sentinel); |
| | 12683 | buf_appendf(txt_msg, "' sentinel"); |
| | 12684 | } |
| 12679 | add_error_note(ira->codegen, parent_msg, source_node, txt_msg); | 12685 | add_error_note(ira->codegen, parent_msg, source_node, txt_msg); |
| 12680 | break; | 12686 | break; |
| 12681 | } | 12687 | } |