| ... | @@ -14874,8 +14874,13 @@ static ZigType *ir_analyze_instruction_field_ptr(IrAnalyze *ira, IrInstructionFi | ... | @@ -14874,8 +14874,13 @@ static ZigType *ir_analyze_instruction_field_ptr(IrAnalyze *ira, IrInstructionFi |
| 14874 | if (type_is_invalid(container_ptr->value.type)) | 14874 | if (type_is_invalid(container_ptr->value.type)) |
| 14875 | return ira->codegen->builtin_types.entry_invalid; | 14875 | return ira->codegen->builtin_types.entry_invalid; |
| 14876 | | 14876 | |
| | 14877 | if (container_ptr->value.type->id != ZigTypeIdPointer) { |
| | 14878 | ir_add_error_node(ira, field_ptr_instruction->base.source_node, |
| | 14879 | buf_sprintf("attempt to dereference non-pointer type '%s'", |
| | 14880 | buf_ptr(&container_ptr->value.type->name))); |
| | 14881 | return ira->codegen->builtin_types.entry_invalid; |
| | 14882 | } |
| 14877 | ZigType *container_type = container_ptr->value.type->data.pointer.child_type; | 14883 | ZigType *container_type = container_ptr->value.type->data.pointer.child_type; |
| 14878 | assert(container_ptr->value.type->id == ZigTypeIdPointer); | | |
| 14879 | | 14884 | |
| 14880 | Buf *field_name = field_ptr_instruction->field_name_buffer; | 14885 | Buf *field_name = field_ptr_instruction->field_name_buffer; |
| 14881 | if (!field_name) { | 14886 | if (!field_name) { |