authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-08-13 15:54:46-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-08-13 20:32:32-07:00
log576581bd7b78825ce27d6a73fc42dd90eab8fbd1
treea3c0f0d60d982d73c206bd172bddf2cdb69806fd
parentfc402bdbbbb5be2a538f0469f3f213264e7fcc59

stage1: fix enums having wrong debug info

It wasn't wrong info, but e.g. GDB couldn't handle non-power-of-two enum tags. Now we tell debug info that enum tags are always power of two size. closes #4526 closes #5432

1 files changed, 1 insertions(+), 1 deletions(-)

src/analyze.cpp+1-1
......@@ -8623,7 +8623,7 @@ static void resolve_llvm_types_enum(CodeGen *g, ZigType *enum_type, ResolveStatu
86238623 enum_type->llvm_type = get_llvm_type(g, tag_int_type);
86248624
86258625 // create debug type for tag
8626 uint64_t tag_debug_size_in_bits = tag_int_type->size_in_bits;
8626 uint64_t tag_debug_size_in_bits = 8*tag_int_type->abi_size;
86278627 uint64_t tag_debug_align_in_bits = 8*tag_int_type->abi_align;
86288628 ZigLLVMDIType *tag_di_type = ZigLLVMCreateDebugEnumerationType(g->dbuilder,
86298629 ZigLLVMFileToScope(import->data.structure.root_struct->di_file), buf_ptr(&enum_type->name),