authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-02-01 23:58:02+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-02-02 15:30:12-05:00
log958f00f1c71f205ce738433d00e9da7dde060f14
tree653f4a1519b2c8b1fdca439e599c0a3244cae834
parenta795c36d7b299f8167fbeb8a650e7477b5390be8

Don't generate any type info for void return types

Closely matches what the LLVM debug emitter expects, the generated DWARF infos are now standard-compliant.

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

src/analyze.cpp+4-4
...@@ -8846,13 +8846,13 @@ static void resolve_llvm_types_fn_type(CodeGen *g, ZigType *fn_type) {...@@ -8846,13 +8846,13 @@ static void resolve_llvm_types_fn_type(CodeGen *g, ZigType *fn_type) {
8846 ZigType *gen_return_type;8846 ZigType *gen_return_type;
8847 if (is_async) {8847 if (is_async) {
8848 gen_return_type = g->builtin_types.entry_void;8848 gen_return_type = g->builtin_types.entry_void;
8849 param_di_types.append(get_llvm_di_type(g, gen_return_type));8849 param_di_types.append(nullptr);
8850 } else if (!type_has_bits(fn_type_id->return_type)) {8850 } else if (!type_has_bits(fn_type_id->return_type)) {
8851 gen_return_type = g->builtin_types.entry_void;8851 gen_return_type = g->builtin_types.entry_void;
8852 param_di_types.append(get_llvm_di_type(g, gen_return_type));8852 param_di_types.append(nullptr);
8853 } else if (first_arg_return) {8853 } else if (first_arg_return) {
8854 gen_return_type = g->builtin_types.entry_void;8854 gen_return_type = g->builtin_types.entry_void;
8855 param_di_types.append(get_llvm_di_type(g, gen_return_type));8855 param_di_types.append(nullptr);
8856 ZigType *gen_type = get_pointer_to_type(g, fn_type_id->return_type, false);8856 ZigType *gen_type = get_pointer_to_type(g, fn_type_id->return_type, false);
8857 gen_param_types.append(get_llvm_type(g, gen_type));8857 gen_param_types.append(get_llvm_type(g, gen_type));
8858 param_di_types.append(get_llvm_di_type(g, gen_type));8858 param_di_types.append(get_llvm_di_type(g, gen_type));
...@@ -8955,7 +8955,7 @@ void resolve_llvm_types_fn(CodeGen *g, ZigFn *fn) {...@@ -8955,7 +8955,7 @@ void resolve_llvm_types_fn(CodeGen *g, ZigFn *fn) {
8955 ZigList<ZigLLVMDIType *> param_di_types = {};8955 ZigList<ZigLLVMDIType *> param_di_types = {};
8956 ZigList<LLVMTypeRef> gen_param_types = {};8956 ZigList<LLVMTypeRef> gen_param_types = {};
8957 // first "parameter" is return value8957 // first "parameter" is return value
8958 param_di_types.append(get_llvm_di_type(g, gen_return_type));8958 param_di_types.append(nullptr);
89598959
8960 ZigType *frame_type = get_fn_frame_type(g, fn);8960 ZigType *frame_type = get_fn_frame_type(g, fn);
8961 ZigType *ptr_type = get_pointer_to_type(g, frame_type, false);8961 ZigType *ptr_type = get_pointer_to_type(g, frame_type, false);