On Mon, Jan 22, 2018 at 03:12:46PM +0100, Jiri Denemark wrote:
On Mon, Jan 22, 2018 at 14:01:26 +0000, Daniel P. Berrange wrote:
> On Mon, Jan 22, 2018 at 02:54:42PM +0100, Jiri Denemark wrote:
> > It breaks the build and it is not really useful for anything.
>
> Why does that break the build ? "{ 0 }" is a valid initializer for
> any struct according to the C standards.
Yeah, it seems -Wmissing-braces falsely reports missing braces in there.
It worked just fine on my host, by our Jenkins builders all failed on
it. Anyway, I didn't bother looking at details as it's easier to drop
the initializer. And doing so makes usage of struct utsname in libvirt
consistent.
Looks like it generates the bogus warning when the first field of the
struct is itself another struct.
eg
struct Base {
int a;
}
struct One {
int b;
struct base c;
};
struct Two {
struct base c;
int b;
};
struct One one = {0};
struct Two two = {0};
The 'two' initializer generates a warning but the 'one' initializer
does not. So that explains why most of our {0} initalizers are working
ok at least.
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|