| ... | @@ -6359,6 +6359,7 @@ static void resolve_llvm_types_slice(CodeGen *g, ZigType *type, ResolveStatus wa | ... | @@ -6359,6 +6359,7 @@ static void resolve_llvm_types_slice(CodeGen *g, ZigType *type, ResolveStatus wa |
| 6359 | LLVMTypeRef element_types[2]; | 6359 | LLVMTypeRef element_types[2]; |
| 6360 | element_types[slice_ptr_index] = get_llvm_type(g, ptr_type); | 6360 | element_types[slice_ptr_index] = get_llvm_type(g, ptr_type); |
| 6361 | element_types[slice_len_index] = get_llvm_type(g, g->builtin_types.entry_usize); | 6361 | element_types[slice_len_index] = get_llvm_type(g, g->builtin_types.entry_usize); |
| | 6362 | if (type->data.structure.resolve_status >= wanted_resolve_status) return; |
| 6362 | LLVMStructSetBody(type->llvm_type, element_types, 2, false); | 6363 | LLVMStructSetBody(type->llvm_type, element_types, 2, false); |
| 6363 | | 6364 | |
| 6364 | uint64_t ptr_debug_size_in_bits = ptr_type->size_in_bits; | 6365 | uint64_t ptr_debug_size_in_bits = ptr_type->size_in_bits; |
| ... | @@ -6776,6 +6777,12 @@ static void resolve_llvm_types_union(CodeGen *g, ZigType *union_type, ResolveSta | ... | @@ -6776,6 +6777,12 @@ static void resolve_llvm_types_union(CodeGen *g, ZigType *union_type, ResolveSta |
| 6776 | static void resolve_llvm_types_pointer(CodeGen *g, ZigType *type) { | 6777 | static void resolve_llvm_types_pointer(CodeGen *g, ZigType *type) { |
| 6777 | if (type->llvm_di_type != nullptr) return; | 6778 | if (type->llvm_di_type != nullptr) return; |
| 6778 | | 6779 | |
| | 6780 | if (!type_has_bits(type)) { |
| | 6781 | type->llvm_type = g->builtin_types.entry_void->llvm_type; |
| | 6782 | type->llvm_di_type = g->builtin_types.entry_void->llvm_di_type; |
| | 6783 | return; |
| | 6784 | } |
| | 6785 | |
| 6779 | ZigType *elem_type = type->data.pointer.child_type; | 6786 | ZigType *elem_type = type->data.pointer.child_type; |
| 6780 | | 6787 | |
| 6781 | if (type->data.pointer.is_const || type->data.pointer.is_volatile || | 6788 | if (type->data.pointer.is_const || type->data.pointer.is_volatile || |
| ... | @@ -6811,6 +6818,12 @@ static void resolve_llvm_types_pointer(CodeGen *g, ZigType *type) { | ... | @@ -6811,6 +6818,12 @@ static void resolve_llvm_types_pointer(CodeGen *g, ZigType *type) { |
| 6811 | static void resolve_llvm_types_integer(CodeGen *g, ZigType *type) { | 6818 | static void resolve_llvm_types_integer(CodeGen *g, ZigType *type) { |
| 6812 | if (type->llvm_di_type != nullptr) return; | 6819 | if (type->llvm_di_type != nullptr) return; |
| 6813 | | 6820 | |
| | 6821 | if (!type_has_bits(type)) { |
| | 6822 | type->llvm_type = g->builtin_types.entry_void->llvm_type; |
| | 6823 | type->llvm_di_type = g->builtin_types.entry_void->llvm_di_type; |
| | 6824 | return; |
| | 6825 | } |
| | 6826 | |
| 6814 | unsigned dwarf_tag; | 6827 | unsigned dwarf_tag; |
| 6815 | if (type->data.integral.is_signed) { | 6828 | if (type->data.integral.is_signed) { |
| 6816 | if (type->size_in_bits == 8) { | 6829 | if (type->size_in_bits == 8) { |