authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-01-10 16:11:36+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-10 16:42:49-05:00
log84e98405de5f97101475000a95cd2293507e967d
treecdcad9eaa3f8f021079f68f0125268d613f64c7b
parent570ffc470e1b3b186c079cea1c07adefe6d11c8a

Inform the debugger about the effective type sizes

Makes every debugger happy and closes #2685

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

src/codegen.cpp+5-3
...@@ -8017,7 +8017,8 @@ static void define_builtin_types(CodeGen *g) {...@@ -8017,7 +8017,8 @@ static void define_builtin_types(CodeGen *g) {
8017 buf_init_from_str(&entry->name, info->name);8017 buf_init_from_str(&entry->name, info->name);
80188018
8019 entry->llvm_di_type = ZigLLVMCreateDebugBasicType(g->dbuilder, buf_ptr(&entry->name),8019 entry->llvm_di_type = ZigLLVMCreateDebugBasicType(g->dbuilder, buf_ptr(&entry->name),
8020 size_in_bits, is_signed ? ZigLLVMEncoding_DW_ATE_signed() : ZigLLVMEncoding_DW_ATE_unsigned());8020 8*LLVMStoreSizeOfType(g->target_data_ref, entry->llvm_type),
8021 is_signed ? ZigLLVMEncoding_DW_ATE_signed() : ZigLLVMEncoding_DW_ATE_unsigned());
8021 entry->data.integral.is_signed = is_signed;8022 entry->data.integral.is_signed = is_signed;
8022 entry->data.integral.bit_count = size_in_bits;8023 entry->data.integral.bit_count = size_in_bits;
8023 g->primitive_type_table.put(&entry->name, entry);8024 g->primitive_type_table.put(&entry->name, entry);
...@@ -8033,7 +8034,8 @@ static void define_builtin_types(CodeGen *g) {...@@ -8033,7 +8034,8 @@ static void define_builtin_types(CodeGen *g) {
8033 entry->abi_align = LLVMABIAlignmentOfType(g->target_data_ref, entry->llvm_type);8034 entry->abi_align = LLVMABIAlignmentOfType(g->target_data_ref, entry->llvm_type);
8034 buf_init_from_str(&entry->name, "bool");8035 buf_init_from_str(&entry->name, "bool");
8035 entry->llvm_di_type = ZigLLVMCreateDebugBasicType(g->dbuilder, buf_ptr(&entry->name),8036 entry->llvm_di_type = ZigLLVMCreateDebugBasicType(g->dbuilder, buf_ptr(&entry->name),
8036 entry->size_in_bits, ZigLLVMEncoding_DW_ATE_boolean());8037 8*LLVMStoreSizeOfType(g->target_data_ref, entry->llvm_type),
8038 ZigLLVMEncoding_DW_ATE_boolean());
8037 g->builtin_types.entry_bool = entry;8039 g->builtin_types.entry_bool = entry;
8038 g->primitive_type_table.put(&entry->name, entry);8040 g->primitive_type_table.put(&entry->name, entry);
8039 }8041 }
...@@ -8055,7 +8057,7 @@ static void define_builtin_types(CodeGen *g) {...@@ -8055,7 +8057,7 @@ static void define_builtin_types(CodeGen *g) {
8055 entry->data.integral.bit_count = g->pointer_size_bytes * 8;8057 entry->data.integral.bit_count = g->pointer_size_bytes * 8;
80568058
8057 entry->llvm_di_type = ZigLLVMCreateDebugBasicType(g->dbuilder, buf_ptr(&entry->name),8059 entry->llvm_di_type = ZigLLVMCreateDebugBasicType(g->dbuilder, buf_ptr(&entry->name),
8058 entry->size_in_bits,8060 8*LLVMStoreSizeOfType(g->target_data_ref, entry->llvm_type),
8059 is_signed ? ZigLLVMEncoding_DW_ATE_signed() : ZigLLVMEncoding_DW_ATE_unsigned());8061 is_signed ? ZigLLVMEncoding_DW_ATE_signed() : ZigLLVMEncoding_DW_ATE_unsigned());
8060 g->primitive_type_table.put(&entry->name, entry);8062 g->primitive_type_table.put(&entry->name, entry);
80618063