[PATCH] Fix missing-field-initializers error

Hyman huangy81 at chinatelecom.cn
Wed Jan 12 17:47:12 UTC 2022



在 2022/1/13 1:31, Daniel P. Berrangé 写道:
> On Thu, Jan 13, 2022 at 12:37:45AM +0800, Hyman wrote:
>>
>>
>> 在 2022/1/13 0:22, Daniel P. Berrangé 写道:
>>> On Thu, Jan 13, 2022 at 12:11:47AM +0800, huangy81 at chinatelecom.cn wrote:
>>>> From: Hyman Huang(黄勇) <huangy81 at chinatelecom.cn>
>>>>
>>>> When compile libvirt via ninja tool with default configuration,
>>>> it report the error message as the following:
>>>> "missing initializer for field 'path' of 'virTPMBinaryInfo'".
>>>> So initialize the 'path' field in 'virTPMBinaryInfo' with 'NULL'.
>>>
>>> I'm wondering why this isn't reported by our automated CI.
>>>
>>> What OS distro / GCC / CLang version are you seeing this with ?
>> The following is my work env:
>>
>> OS distro: CentOS Linux release 7.9.2009 (Core)
> 
> CentOS 7 is no longer a supported build platform for libvirt
> (nor QEMU either)
> 
>> GCC version: gcc (GCC) 7.5.0
> 
> That GCC is used in Ubuntu 18.04 and isn't issuing warnings
> about this.
> 
> Finally  -Wmissing-field-initializers is explicitly documented
> as *not* issuing a warning for named fields
> 
> [quote "info gcc"]
> '-Wmissing-field-initializers'
>       Warn if a structure's initializer has some fields missing.  For
>       example, the following code causes such a warning, because 'x.h' is
>       implicitly zero:
> 
>            struct s { int f, g, h; };
>            struct s x = { 3, 4 };
> 
>       This option does not warn about designated initializers, so the
>       following modification does not trigger a warning:
> 
>            struct s { int f, g, h; };
>            struct s x = { .f = 3, .g = 4 };
> [/quote]
> 
> Given CentOS 7 is no longer a supported platform, we
> can see GCC 7.5.0 works on other platforms, and the
> -Wmissing-field-initializers warning isn';t supposed
> to complain about this scenario, I don't want to take
> this patch.
Ok, sounds reasonable.
> 
> I'd also strongly encourage you to upgrade to a newer
> development platform, given CentOS 7 is explicitly
> not something the libvirt project wants to target
> anymore.
> 
Ok, i get it and thanks for the eetailed explanation :)
> 
> Regards,
> Daniel





More information about the libvir-list mailing list