| ... | ... | @@ -6901,6 +6901,10 @@ fn airAggFieldVal(cg: *CodeGen, inst: Air.Inst.Index) !?Id { |
| 6901 | 6901 | const pl_ptr_ty_id = try cg.ptrType(layout_payload_ty_id, .function); |
| 6902 | 6902 | const pl_ptr_id = try cg.accessChain(pl_ptr_ty_id, tmp_id, &.{layout.payload_index}); |
| 6903 | 6903 | |
| 6904 | if (field_ty.toIntern() == layout.payload_ty.toIntern()) { |
| 6905 | return try cg.load(field_ty, pl_ptr_id, .{}); |
| 6906 | } |
| 6907 | |
| 6904 | 6908 | const field_ty_id = try cg.resolveType(field_ty, .indirect); |
| 6905 | 6909 | const active_pl_ptr_ty_id = try cg.ptrType(field_ty_id, .function); |
| 6906 | 6910 | const active_pl_ptr_id = cg.allocId(); |
| ... | ... | @@ -7013,6 +7017,12 @@ fn structFieldPtr( |
| 7013 | 7017 | } |
| 7014 | 7018 | |
| 7015 | 7019 | const storage_class = cg.storageClass(object_ptr_ty.ptrAddressSpace(zcu)); |
| 7020 | const field_ty = result_ptr_ty.childType(zcu); |
| 7021 | if (field_ty.toIntern() == layout.payload_ty.toIntern()) { |
| 7022 | if (object_ty.containerLayout(zcu) == .@"packed") return object_ptr; |
| 7023 | return try cg.accessChain(result_ty_id, object_ptr, &.{layout.payload_index}); |
| 7024 | } |
| 7025 | |
| 7016 | 7026 | const layout_payload_ty_id = try cg.resolveType(layout.payload_ty, .indirect); |
| 7017 | 7027 | const pl_ptr_ty_id = try cg.ptrType(layout_payload_ty_id, storage_class); |
| 7018 | 7028 | const pl_ptr_id = blk: { |