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) {
88468846 ZigType *gen_return_type;
88478847 if (is_async) {
88488848 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);
88508850 } else if (!type_has_bits(fn_type_id->return_type)) {
88518851 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);
88538853 } else if (first_arg_return) {
88548854 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);
88568856 ZigType *gen_type = get_pointer_to_type(g, fn_type_id->return_type, false);
88578857 gen_param_types.append(get_llvm_type(g, gen_type));
88588858 param_di_types.append(get_llvm_di_type(g, gen_type));
......@@ -8955,7 +8955,7 @@ void resolve_llvm_types_fn(CodeGen *g, ZigFn *fn) {
89558955 ZigList<ZigLLVMDIType *> param_di_types = {};
89568956 ZigList<LLVMTypeRef> gen_param_types = {};
89578957 // 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
89608960 ZigType *frame_type = get_fn_frame_type(g, fn);
89618961 ZigType *ptr_type = get_pointer_to_type(g, frame_type, false);