authorgravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2019-01-06 17:48:31+01:00
committergravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2019-01-06 17:48:31+01:00
logdb928915878c64f9e5c479739bd768bd4ac0b912
tree1879972524543af67f8ee7044f9eafd8c31dea35
parent5f26d1dddbe9004429adca6e55d3344ca58062ae

Respect the type system instead of ConstExprValue when getting field


1 files changed, 1 insertions(+), 2 deletions(-)

src/ir.cpp+1-2
...@@ -14577,8 +14577,7 @@ static IrInstruction *ir_analyze_container_field_ptr(IrAnalyze *ira, Buf *field_...@@ -14577,8 +14577,7 @@ static IrInstruction *ir_analyze_container_field_ptr(IrAnalyze *ira, Buf *field_
14577 return ira->codegen->invalid_instruction;14577 return ira->codegen->invalid_instruction;
14578 if (type_is_invalid(struct_val->type))14578 if (type_is_invalid(struct_val->type))
14579 return ira->codegen->invalid_instruction;14579 return ira->codegen->invalid_instruction;
14580 ConstExprValue *field_val = &struct_val->data.x_struct.fields[field->src_index];14580 ZigType *ptr_type = get_pointer_to_type_extra(ira->codegen, field->type_entry,
14581 ZigType *ptr_type = get_pointer_to_type_extra(ira->codegen, field_val->type,
14582 is_const, is_volatile, PtrLenSingle, align_bytes,14581 is_const, is_volatile, PtrLenSingle, align_bytes,
14583 (uint32_t)(ptr_bit_offset + field->bit_offset_in_host),14582 (uint32_t)(ptr_bit_offset + field->bit_offset_in_host),
14584 (uint32_t)host_int_bytes_for_result_type);14583 (uint32_t)host_int_bytes_for_result_type);