fix #no_nil in debug info

Fixes #4664
This commit is contained in:
Laytan Laats
2025-01-08 18:47:32 +01:00
parent 30bb2250c7
commit 2aae4cfd46
+4 -5
View File
@@ -415,6 +415,7 @@ gb_internal LLVMMetadataRef lb_debug_union(lbModule *m, Type *type, String name,
LLVMMetadataRef member_scope = lb_get_llvm_metadata(m, bt->Union.scope); LLVMMetadataRef member_scope = lb_get_llvm_metadata(m, bt->Union.scope);
unsigned element_count = cast(unsigned)bt->Union.variants.count; unsigned element_count = cast(unsigned)bt->Union.variants.count;
if (index_offset > 0) { if (index_offset > 0) {
GB_ASSERT(index_offset == 1);
element_count += 1; element_count += 1;
} }
@@ -437,13 +438,11 @@ gb_internal LLVMMetadataRef lb_debug_union(lbModule *m, Type *type, String name,
for_array(j, bt->Union.variants) { for_array(j, bt->Union.variants) {
Type *variant = bt->Union.variants[j]; Type *variant = bt->Union.variants[j];
unsigned field_index = cast(unsigned)(index_offset+j); char name[32] = {};
gb_snprintf(name, gb_size_of(name), "v%td", j);
char name[16] = {};
gb_snprintf(name, gb_size_of(name), "v%u", field_index);
isize name_len = gb_strlen(name); isize name_len = gb_strlen(name);
elements[field_index] = LLVMDIBuilderCreateMemberType( elements[index_offset+j] = LLVMDIBuilderCreateMemberType(
m->debug_builder, member_scope, m->debug_builder, member_scope,
name, name_len, name, name_len,
file, line, file, line,