[igt-dev] [PATCH i-g-t] meson: add -Wno-missing-braces

Ser, Simon simon.ser at intel.com
Thu Mar 21 07:21:29 UTC 2019


On Wed, 2019-03-20 at 14:11 +0200, Jani Nikula wrote:
> On Wed, 20 Mar 2019, "Ser, Simon" <simon.ser at intel.com> wrote:
> > On Wed, 2019-03-20 at 11:38 +0200, Jani Nikula wrote:
> > > On Wed, 20 Mar 2019, "Ser, Simon" <simon.ser at intel.com> wrote:
> > > > Enabling -Werror=missing-braces results in this error with
> > > > Clang:
> > > > 
> > > >     ../tests/kms_vrr.c:203:20: error: suggest braces around
> > > > initialization of subobject [-Werror,-Wmissing-braces]
> > > >             drmVBlank vbl = { 0 };
> > > >                               ^
> > > >                               {}
> > > > 
> > > > I don't believe there is any value in keeping this, so let's
> > > > just
> > > > disable it.
> > > 
> > > I fail to come up with examples right now, but I think there are
> > > legitimate cases for the warning.
> > > 
> > > Arguably the above initializer should be written as simply {}
> > > instead
> > > of
> > > having the 0 value for initializing the first member which
> > > happens to
> > > be
> > > a substruct.
> > 
> > Unfortunately using {} is a GNU extension, and ISO C forbids empty
> > initializer lists.
> 
> Right, it's also okay in ISO C++11.

I don't know about C++, but FWIW it's forbidden in ISO C11:

> gcc -std=c11 -Wall -pedantic test.c
test.c: In function ‘main’:
test.c:7:23: warning: ISO C forbids empty initializer braces [-
Wpedantic]
  struct thing stuff = {};

> > Does IGT use un-standardized extensions?
> 
> I'm pretty sure it does, but I'll defer decisions about this to the
> IGT
> maintainers.
> 
> BR,
> Jani.
> 
> 
> > > BR,
> > > Jani.
> > > 
> > > 
> > > > Signed-off-by: Simon Ser <simon.ser at intel.com>
> > > > ---
> > > >  meson.build | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > diff --git a/meson.build b/meson.build
> > > > index 557400a5..bb100b75 100644
> > > > --- a/meson.build
> > > > +++ b/meson.build
> > > > @@ -38,6 +38,7 @@ cc_args = [
> > > >  	'-Wno-type-limits',
> > > >  	'-Wno-unused-parameter',
> > > >  	'-Wno-unused-result',
> > > > +	'-Wno-missing-braces',
> > > >  	'-Werror=address',
> > > >  	'-Werror=array-bounds',
> > > > @@ -45,7 +46,6 @@ cc_args = [
> > > >  	'-Werror=init-self',
> > > >  	'-Werror=int-to-pointer-cast',
> > > >  	'-Werror=main',
> > > > -	'-Werror=missing-braces',
> > > >  	'-Werror=nonnull',
> > > >  	'-Werror=pointer-to-int-cast',
> > > >  	'-Werror=return-type',
---------------------------------------------------------------------
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


More information about the igt-dev mailing list