Explorar o código

actually fix #no_nil debug info

Fixes #4664
Laytan Laats hai 8 meses
pai
achega
7185a93a86
Modificáronse 1 ficheiros con 6 adicións e 1 borrados
  1. 6 1
      src/llvm_backend_debug.cpp

+ 6 - 1
src/llvm_backend_debug.cpp

@@ -438,8 +438,13 @@ 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];
 
 
+		ptrdiff_t variant_index = j;
+		if (bt->Union.kind == UnionType_no_nil) {
+			variant_index += 1;
+		}
+
 		char name[32] = {};
 		char name[32] = {};
-		gb_snprintf(name, gb_size_of(name), "v%td", j);
+		gb_snprintf(name, gb_size_of(name), "v%td", variant_index);
 		isize name_len = gb_strlen(name);
 		isize name_len = gb_strlen(name);
 
 
 		elements[index_offset+j] = LLVMDIBuilderCreateMemberType(
 		elements[index_offset+j] = LLVMDIBuilderCreateMemberType(