From 0cc04850d7d8432658b79a7e11c088fbd84b2183 Mon Sep 17 00:00:00 2001 From: yuyi Date: Sat, 17 Apr 2021 07:39:52 +0800 Subject: [PATCH] cgen: fix empty struct init (#9769) --- vlib/v/gen/c/cgen.v | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vlib/v/gen/c/cgen.v b/vlib/v/gen/c/cgen.v index c5dcd109f9..8793da1558 100644 --- a/vlib/v/gen/c/cgen.v +++ b/vlib/v/gen/c/cgen.v @@ -5122,9 +5122,12 @@ fn (mut g Gen) struct_init(struct_init ast.StructInit) { } // The rest of the fields are zeroed. // `inited_fields` is a list of fields that have been init'ed, they are skipped - // mut nr_fields := 0 + mut nr_fields := 1 if sym.kind == .struct_ { info := sym.info as ast.Struct + $if !msvc { + nr_fields = info.fields.len + } if info.is_union && struct_init.fields.len > 1 { verror('union must not have more than 1 initializer') } @@ -5219,7 +5222,7 @@ fn (mut g Gen) struct_init(struct_init ast.StructInit) { g.indent-- } - if !initialized { + if !initialized && nr_fields > 0 { g.write('0') }