| ... | ... | @@ -22949,12 +22949,20 @@ static IrInstruction *ir_analyze_instruction_slice(IrAnalyze *ira, IrInstruction |
| 22949 | 22949 | if (parent_ptr == nullptr) |
| 22950 | 22950 | return ira->codegen->invalid_instruction; |
| 22951 | 22951 | |
| 22952 | | array_val = const_ptr_pointee(ira, ira->codegen, parent_ptr, instruction->base.source_node); |
| 22953 | | if (array_val == nullptr) |
| 22954 | | return ira->codegen->invalid_instruction; |
| 22955 | 22952 | |
| 22956 | | rel_end = child_array_type->data.array.len; |
| 22957 | | abs_offset = 0; |
| 22953 | if (parent_ptr->special == ConstValSpecialUndef) { |
| 22954 | array_val = nullptr; |
| 22955 | abs_offset = 0; |
| 22956 | rel_end = SIZE_MAX; |
| 22957 | ptr_is_undef = true; |
| 22958 | } else { |
| 22959 | array_val = const_ptr_pointee(ira, ira->codegen, parent_ptr, instruction->base.source_node); |
| 22960 | if (array_val == nullptr) |
| 22961 | return ira->codegen->invalid_instruction; |
| 22962 | |
| 22963 | rel_end = child_array_type->data.array.len; |
| 22964 | abs_offset = 0; |
| 22965 | } |
| 22958 | 22966 | } else { |
| 22959 | 22967 | array_val = const_ptr_pointee(ira, ira->codegen, &ptr_ptr->value, instruction->base.source_node); |
| 22960 | 22968 | if (array_val == nullptr) |