[v2] net/ionic: ignore missing field initializers warning

Message ID 20200121095802.3942052-1-ferruh.yigit@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series [v2] net/ionic: ignore missing field initializers warning |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-nxp-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed

Commit Message

Ferruh Yigit Jan. 21, 2020, 9:58 a.m. UTC
  The compiler warning is:
   from .../drivers/net/ionic/ionic_dev.c:7:
.../drivers/net/ionic/ionic_if.h:202:5: note: ‘rsvd’ declared here
  u8 rsvd[62];
     ^

This has been observed with gcc 4.8.5, newer 9+ compiler are not giving
this warning.

Warning is a reminder to the user that there are some fields in the
struct not initialized with the default value.
But the C standard clarifies that in that case the field value will be
zero and code is aware of this behavior, so no initializing to a default
value is intentional and it is safe to ignore this compiler warning.

Adding '-Wno-missing-field-initializers' compiler flag to disable the
warning.

Reported-by: Anoob Joseph <anoobj@marvell.com>
Reported-by: Raslan Darawsheh <rasland@mellanox.com>
Reported-by: Xueming Zhang <xuemingx.zhang@intel.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
v2:
* add flag to ionic_lif.c too
---
 drivers/net/ionic/Makefile    | 3 +++
 drivers/net/ionic/meson.build | 9 +++++++++
 2 files changed, 12 insertions(+)
  

Comments

Alfredo Cardigliano Jan. 21, 2020, 10:01 a.m. UTC | #1
> On 21 Jan 2020, at 10:58, Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> 
> The compiler warning is:
>   from .../drivers/net/ionic/ionic_dev.c:7:
> .../drivers/net/ionic/ionic_if.h:202:5: note: ‘rsvd’ declared here
>  u8 rsvd[62];
>     ^
> 
> This has been observed with gcc 4.8.5, newer 9+ compiler are not giving
> this warning.
> 
> Warning is a reminder to the user that there are some fields in the
> struct not initialized with the default value.
> But the C standard clarifies that in that case the field value will be
> zero and code is aware of this behavior, so no initializing to a default
> value is intentional and it is safe to ignore this compiler warning.
> 
> Adding '-Wno-missing-field-initializers' compiler flag to disable the
> warning.
> 
> Reported-by: Anoob Joseph <anoobj@marvell.com>
> Reported-by: Raslan Darawsheh <rasland@mellanox.com>
> Reported-by: Xueming Zhang <xuemingx.zhang@intel.com>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> v2:
> * add flag to ionic_lif.c too
> ---
> drivers/net/ionic/Makefile    | 3 +++
> drivers/net/ionic/meson.build | 9 +++++++++
> 2 files changed, 12 insertions(+)
> 
> diff --git a/drivers/net/ionic/Makefile b/drivers/net/ionic/Makefile
> index f74ac2d34..bfbe15e27 100644
> --- a/drivers/net/ionic/Makefile
> +++ b/drivers/net/ionic/Makefile
> @@ -31,4 +31,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_ethdev.c
> SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_lif.c
> SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_main.c
> 
> +CFLAGS_ionic_dev.o += -Wno-missing-field-initializers
> +CFLAGS_ionic_lif.o += -Wno-missing-field-initializers
> +
> include $(RTE_SDK)/mk/rte.lib.mk
> diff --git a/drivers/net/ionic/meson.build b/drivers/net/ionic/meson.build
> index dee8a3608..06b776018 100644
> --- a/drivers/net/ionic/meson.build
> +++ b/drivers/net/ionic/meson.build
> @@ -11,3 +11,12 @@ sources = files(
> 	'ionic_main.c'
> )
> 
> +error_cflags = [
> +  '-Wno-missing-field-initializers',
> +]
> +
> +foreach flag: error_cflags
> +        if cc.has_argument(flag)
> +                c_args += flag
> +        endif
> +endforeach
> -- 
> 2.24.1

This looks good to me.

Alfredo
  
Thomas Monjalon Jan. 21, 2020, 1:39 p.m. UTC | #2
21/01/2020 11:01, Alfredo Cardigliano:
> 
> > On 21 Jan 2020, at 10:58, Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> > 
> > The compiler warning is:
> >   from .../drivers/net/ionic/ionic_dev.c:7:
> > .../drivers/net/ionic/ionic_if.h:202:5: note: ‘rsvd’ declared here
> >  u8 rsvd[62];
> >     ^
> > 
> > This has been observed with gcc 4.8.5, newer 9+ compiler are not giving
> > this warning.
> > 
> > Warning is a reminder to the user that there are some fields in the
> > struct not initialized with the default value.
> > But the C standard clarifies that in that case the field value will be
> > zero and code is aware of this behavior, so no initializing to a default
> > value is intentional and it is safe to ignore this compiler warning.
> > 
> > Adding '-Wno-missing-field-initializers' compiler flag to disable the
> > warning.
> > 
> > Reported-by: Anoob Joseph <anoobj@marvell.com>
> > Reported-by: Raslan Darawsheh <rasland@mellanox.com>
> > Reported-by: Xueming Zhang <xuemingx.zhang@intel.com>
> > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > ---
> > v2:
> > * add flag to ionic_lif.c too
> > ---
> > drivers/net/ionic/Makefile    | 3 +++
> > drivers/net/ionic/meson.build | 9 +++++++++
> > 2 files changed, 12 insertions(+)
[...]
> This looks good to me.

Applied, thanks
  

Patch

diff --git a/drivers/net/ionic/Makefile b/drivers/net/ionic/Makefile
index f74ac2d34..bfbe15e27 100644
--- a/drivers/net/ionic/Makefile
+++ b/drivers/net/ionic/Makefile
@@ -31,4 +31,7 @@  SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_ethdev.c
 SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_lif.c
 SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_main.c
 
+CFLAGS_ionic_dev.o += -Wno-missing-field-initializers
+CFLAGS_ionic_lif.o += -Wno-missing-field-initializers
+
 include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ionic/meson.build b/drivers/net/ionic/meson.build
index dee8a3608..06b776018 100644
--- a/drivers/net/ionic/meson.build
+++ b/drivers/net/ionic/meson.build
@@ -11,3 +11,12 @@  sources = files(
 	'ionic_main.c'
 )
 
+error_cflags = [
+  '-Wno-missing-field-initializers',
+]
+
+foreach flag: error_cflags
+        if cc.has_argument(flag)
+                c_args += flag
+        endif
+endforeach