diff options
| author | gingerBill <bill@gingerbill.org> | 2021-11-01 23:00:42 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-11-01 23:00:42 +0000 |
| commit | b01e0fbbc209110cf49b980149edb73ece475af3 (patch) | |
| tree | 2ec8cf21c41cb3ecefa4becf5539bf1684a747a0 /src/llvm_backend_debug.cpp | |
| parent | 4f0a3eec24457ec112094a9517cbd9e5cac91e10 (diff) | |
Correct typo in soa data type debug information generation
Diffstat (limited to 'src/llvm_backend_debug.cpp')
| -rw-r--r-- | src/llvm_backend_debug.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/llvm_backend_debug.cpp b/src/llvm_backend_debug.cpp index 0d4ee9fe3..4a73c03f2 100644 --- a/src/llvm_backend_debug.cpp +++ b/src/llvm_backend_debug.cpp @@ -684,6 +684,9 @@ void lb_debug_complete_types(lbModule *m) { } element_count = cast(unsigned)(bt->Struct.fields.count + element_offset); elements = gb_alloc_array(temporary_allocator(), LLVMMetadataRef, element_count); + + isize field_size_bits = 8*type_size_of(bt) - element_offset*word_bits; + switch (bt->Struct.soa_kind) { case StructSoa_Slice: elements[0] = LLVMDIBuilderCreateMemberType( @@ -691,7 +694,7 @@ void lb_debug_complete_types(lbModule *m) { ".len", 4, file, 0, 8*cast(u64)type_size_of(t_int), 8*cast(u32)type_align_of(t_int), - 8*type_size_of(bt)-word_bits, + field_size_bits, LLVMDIFlagZero, lb_debug_type(m, t_int) ); break; @@ -701,7 +704,7 @@ void lb_debug_complete_types(lbModule *m) { ".len", 4, file, 0, 8*cast(u64)type_size_of(t_int), 8*cast(u32)type_align_of(t_int), - 8*type_size_of(bt)-word_bits + 0*word_bits, + field_size_bits + 0*word_bits, LLVMDIFlagZero, lb_debug_type(m, t_int) ); elements[1] = LLVMDIBuilderCreateMemberType( @@ -709,15 +712,15 @@ void lb_debug_complete_types(lbModule *m) { ".cap", 4, file, 0, 8*cast(u64)type_size_of(t_int), 8*cast(u32)type_align_of(t_int), - 8*type_size_of(bt)-word_bits + 1*word_bits, + field_size_bits + 1*word_bits, LLVMDIFlagZero, lb_debug_type(m, t_int) ); elements[2] = LLVMDIBuilderCreateMemberType( m->debug_builder, record_scope, - ".allocator", 12, + ".allocator", 10, file, 0, 8*cast(u64)type_size_of(t_int), 8*cast(u32)type_align_of(t_int), - 8*type_size_of(bt)-word_bits + 2*word_bits, + field_size_bits + 2*word_bits, LLVMDIFlagZero, lb_debug_type(m, t_allocator) ); break; |