| ... | ... | @@ -4893,8 +4893,15 @@ fn airAggregateInit(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { |
| 4893 | 4893 | const struct_obj = result_ty.castTag(.@"struct").?.data; |
| 4894 | 4894 | const fields = struct_obj.fields.values(); |
| 4895 | 4895 | const backing_type = struct_obj.backing_int_ty; |
| 4896 | | // we ensure a new local is created so it's zero-initialized |
| 4897 | | const result = try func.ensureAllocLocal(backing_type); |
| 4896 | |
| 4897 | // ensure the result is zero'd |
| 4898 | const result = try func.allocLocal(backing_type); |
| 4899 | if (struct_obj.backing_int_ty.bitSize(func.target) <= 32) |
| 4900 | try func.addImm32(0) |
| 4901 | else |
| 4902 | try func.addImm64(0); |
| 4903 | try func.addLabel(.local_set, result.local.value); |
| 4904 | |
| 4898 | 4905 | var current_bit: u16 = 0; |
| 4899 | 4906 | for (elements, 0..) |elem, elem_index| { |
| 4900 | 4907 | const field = fields[elem_index]; |