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