| ... | ... | @@ -8719,7 +8719,6 @@ static void resolve_llvm_types_optional(CodeGen *g, ZigType *type, ResolveStatus |
| 8719 | 8719 | if (ResolveStatusLLVMFwdDecl >= wanted_resolve_status) return; |
| 8720 | 8720 | } |
| 8721 | 8721 | |
| 8722 | | LLVMTypeRef child_llvm_type = get_llvm_type(g, child_type); |
| 8723 | 8722 | ZigLLVMDIType *child_llvm_di_type = get_llvm_di_type(g, child_type); |
| 8724 | 8723 | if (type->data.maybe.resolve_status >= wanted_resolve_status) return; |
| 8725 | 8724 | |
| ... | ... | @@ -8729,35 +8728,28 @@ static void resolve_llvm_types_optional(CodeGen *g, ZigType *type, ResolveStatus |
| 8729 | 8728 | }; |
| 8730 | 8729 | LLVMStructSetBody(type->llvm_type, elem_types, 2, false); |
| 8731 | 8730 | |
| 8732 | | uint64_t val_debug_size_in_bits = 8*LLVMStoreSizeOfType(g->target_data_ref, child_llvm_type); |
| 8733 | | uint64_t val_debug_align_in_bits = 8*LLVMABISizeOfType(g->target_data_ref, child_llvm_type); |
| 8734 | | uint64_t val_offset_in_bits = 8*LLVMOffsetOfElement(g->target_data_ref, type->llvm_type, 0); |
| 8731 | uint64_t val_offset_in_bits = 8*LLVMOffsetOfElement(g->target_data_ref, type->llvm_type, maybe_child_index); |
| 8732 | uint64_t maybe_offset_in_bits = 8*LLVMOffsetOfElement(g->target_data_ref, type->llvm_type, maybe_null_index); |
| 8735 | 8733 | |
| 8736 | | uint64_t maybe_debug_size_in_bits = 8*LLVMStoreSizeOfType(g->target_data_ref, bool_llvm_type); |
| 8737 | | uint64_t maybe_debug_align_in_bits = 8*LLVMABISizeOfType(g->target_data_ref, bool_llvm_type); |
| 8738 | | uint64_t maybe_offset_in_bits = 8*LLVMOffsetOfElement(g->target_data_ref, type->llvm_type, 1); |
| 8739 | | |
| 8740 | | uint64_t debug_size_in_bits = 8*LLVMStoreSizeOfType(g->target_data_ref, type->llvm_type); |
| 8741 | | uint64_t debug_align_in_bits = 8*LLVMABISizeOfType(g->target_data_ref, type->llvm_type); |
| 8742 | | |
| 8743 | | ZigLLVMDIType *di_element_types[] = { |
| 8734 | ZigLLVMDIType *di_element_types[2]; |
| 8735 | di_element_types[maybe_child_index] = |
| 8744 | 8736 | ZigLLVMCreateDebugMemberType(g->dbuilder, ZigLLVMTypeToScope(type->llvm_di_type), |
| 8745 | 8737 | "val", di_file, line, |
| 8746 | | val_debug_size_in_bits, |
| 8747 | | val_debug_align_in_bits, |
| 8738 | 8 * child_type->abi_size, |
| 8739 | 8 * child_type->abi_align, |
| 8748 | 8740 | val_offset_in_bits, |
| 8749 | | ZigLLVM_DIFlags_Zero, child_llvm_di_type), |
| 8741 | ZigLLVM_DIFlags_Zero, child_llvm_di_type); |
| 8742 | di_element_types[maybe_null_index] = |
| 8750 | 8743 | ZigLLVMCreateDebugMemberType(g->dbuilder, ZigLLVMTypeToScope(type->llvm_di_type), |
| 8751 | 8744 | "maybe", di_file, line, |
| 8752 | | maybe_debug_size_in_bits, |
| 8753 | | maybe_debug_align_in_bits, |
| 8745 | 8*g->builtin_types.entry_bool->abi_size, |
| 8746 | 8*g->builtin_types.entry_bool->abi_align, |
| 8754 | 8747 | maybe_offset_in_bits, |
| 8755 | | ZigLLVM_DIFlags_Zero, bool_llvm_di_type), |
| 8756 | | }; |
| 8748 | ZigLLVM_DIFlags_Zero, bool_llvm_di_type); |
| 8757 | 8749 | ZigLLVMDIType *replacement_di_type = ZigLLVMCreateDebugStructType(g->dbuilder, |
| 8758 | 8750 | compile_unit_scope, |
| 8759 | 8751 | buf_ptr(&type->name), |
| 8760 | | di_file, line, debug_size_in_bits, debug_align_in_bits, ZigLLVM_DIFlags_Zero, |
| 8752 | di_file, line, 8 * type->abi_size, 8 * type->abi_align, ZigLLVM_DIFlags_Zero, |
| 8761 | 8753 | nullptr, di_element_types, 2, 0, nullptr, ""); |
| 8762 | 8754 | |
| 8763 | 8755 | ZigLLVMReplaceTemporary(g->dbuilder, type->llvm_di_type, replacement_di_type); |