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
master
Andrew Kelley 2020-08-13 15:54:46 -07:00
parent fc402bdbbb
commit 576581bd7b
1 changed files with 1 additions and 1 deletions

View File

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