| ... | ... | @@ -6443,6 +6443,16 @@ static void resolve_llvm_types_struct(CodeGen *g, ZigType *struct_type, ResolveS |
| 6443 | 6443 | size_t first_packed_bits_offset_misalign = SIZE_MAX; |
| 6444 | 6444 | size_t debug_field_count = 0; |
| 6445 | 6445 | |
| 6446 | // trigger all the recursive get_llvm_type calls |
| 6447 | for (size_t i = 0; i < field_count; i += 1) { |
| 6448 | TypeStructField *type_struct_field = &struct_type->data.structure.fields[i]; |
| 6449 | ZigType *field_type = type_struct_field->type_entry; |
| 6450 | if (!type_has_bits(field_type)) |
| 6451 | continue; |
| 6452 | (void)get_llvm_type(g, field_type); |
| 6453 | if (struct_type->data.structure.resolve_status >= wanted_resolve_status) return; |
| 6454 | } |
| 6455 | |
| 6446 | 6456 | for (size_t i = 0; i < field_count; i += 1) { |
| 6447 | 6457 | TypeStructField *type_struct_field = &struct_type->data.structure.fields[i]; |
| 6448 | 6458 | ZigType *field_type = type_struct_field->type_entry; |
| ... | ... | @@ -6661,6 +6671,7 @@ static void resolve_llvm_types_union(CodeGen *g, ZigType *union_type, ResolveSta |
| 6661 | 6671 | |
| 6662 | 6672 | size_t padding_bytes = union_type->data.unionation.union_abi_size - most_aligned_union_member->abi_size; |
| 6663 | 6673 | (void)get_llvm_type(g, most_aligned_union_member); |
| 6674 | if (union_type->data.unionation.resolve_status >= wanted_resolve_status) return; |
| 6664 | 6675 | if (padding_bytes > 0) { |
| 6665 | 6676 | ZigType *u8_type = get_int_type(g, false, 8); |
| 6666 | 6677 | ZigType *padding_array = get_array_type(g, u8_type, padding_bytes); |