aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_debug.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2023-08-05 16:05:39 +0100
committergingerBill <bill@gingerbill.org>2023-08-05 16:05:39 +0100
commitc91898a8889604617140ad15c70f4d68494fa0a1 (patch)
treebf5f82b295f1751ce2e099a07edbfdfe175a7ddb /src/llvm_backend_debug.cpp
parentafa8eb2d6fdf1e3fd7278ee1623506984a150f15 (diff)
Remove #relative slices; Replace with #relative multi-pointers
Diffstat (limited to 'src/llvm_backend_debug.cpp')
-rw-r--r--src/llvm_backend_debug.cpp17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/llvm_backend_debug.cpp b/src/llvm_backend_debug.cpp
index b9c6c606e..e053c5b40 100644
--- a/src/llvm_backend_debug.cpp
+++ b/src/llvm_backend_debug.cpp
@@ -442,19 +442,12 @@ gb_internal LLVMMetadataRef lb_debug_type_internal(lbModule *m, Type *type) {
gbString name = type_to_string(type, temporary_allocator());
return LLVMDIBuilderCreateTypedef(m->debug_builder, base_integer, name, gb_string_length(name), nullptr, 0, nullptr, cast(u32)(8*type_align_of(type)));
}
+ case Type_RelativeMultiPointer: {
+ LLVMMetadataRef base_integer = lb_debug_type(m, type->RelativeMultiPointer.base_integer);
+ gbString name = type_to_string(type, temporary_allocator());
+ return LLVMDIBuilderCreateTypedef(m->debug_builder, base_integer, name, gb_string_length(name), nullptr, 0, nullptr, cast(u32)(8*type_align_of(type)));
+ }
- case Type_RelativeSlice:
- {
- unsigned element_count = 0;
- LLVMMetadataRef elements[2] = {};
- Type *base_integer = type->RelativeSlice.base_integer;
- unsigned base_bits = cast(unsigned)(8*type_size_of(base_integer));
- elements[0] = lb_debug_struct_field(m, str_lit("data_offset"), base_integer, 0);
- elements[1] = lb_debug_struct_field(m, str_lit("len"), base_integer, base_bits);
- gbString name = type_to_string(type, temporary_allocator());
- return LLVMDIBuilderCreateStructType(m->debug_builder, nullptr, name, gb_string_length(name), nullptr, 0, 2*base_bits, base_bits, LLVMDIFlagZero, nullptr, elements, element_count, 0, nullptr, "", 0);
- }
-
case Type_Matrix: {
LLVMMetadataRef subscripts[1] = {};
subscripts[0] = LLVMDIBuilderGetOrCreateSubrange(m->debug_builder,