| ... | @@ -22949,12 +22949,20 @@ static IrInstruction *ir_analyze_instruction_slice(IrAnalyze *ira, IrInstruction | ... | @@ -22949,12 +22949,20 @@ static IrInstruction *ir_analyze_instruction_slice(IrAnalyze *ira, IrInstruction |
| 22949 | if (parent_ptr == nullptr) | 22949 | if (parent_ptr == nullptr) |
| 22950 | return ira->codegen->invalid_instruction; | 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; | 22953 | if (parent_ptr->special == ConstValSpecialUndef) { |
| 22957 | abs_offset = 0; | 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 | } else { | 22966 | } else { |
| 22959 | array_val = const_ptr_pointee(ira, ira->codegen, &ptr_ptr->value, instruction->base.source_node); | 22967 | array_val = const_ptr_pointee(ira, ira->codegen, &ptr_ptr->value, instruction->base.source_node); |
| 22960 | if (array_val == nullptr) | 22968 | if (array_val == nullptr) |