[libvirt] [PATCH] qemu: Don't initialize struct utsname
Daniel P. Berrange
berrange at redhat.com
Mon Jan 22 14:18:29 UTC 2018
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 :|
More information about the libvir-list
mailing list