[Mesa-dev] [PATCH 01/24] configure.ac: Add CFLAG -Wno-missing-field-initializers (v5)

Eric Engestrom eric.engestrom at intel.com
Wed Jun 20 08:39:02 UTC 2018


On Wednesday, 2018-06-20 10:24:51 +0200, Gert Wollny wrote:
> Hi Dylan & Eric, 
> 
> are you fine with how the flag is added now in meson? If you don't have
> any complaints I'm going to push the changes later today. 

Looks good to me, thanks!
Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>

> 
> many thanks, 
> Gert 
> 
> Am Dienstag, den 19.06.2018, 10:07 +0200 schrieb Gert Wollny:
> > This warning is misleading: When a struct is partially initialized
> > without
> > assigning to the structure members by name, then the remaining fields
> > will be zeroed out, and this warning will be issued (if enabled). If,
> > on the
> > other hand, the partial initialization is done by assigning to named
> > members,
> > the remaining structure elements may hold random data, but the
> > warning is not
> > issued. Since in Mesa the first approach to initialize structure
> > elements is
> > used very often, and it is usually assumed that the remaining
> > elements are
> > zeroed out, heeding this warning would be counter-productive.
> > 
> > v2: - add -Wno-missing-field-initializers to meson-build
> >     - fix empty line error
> >     (both Eric Engestrom)
> > 
> > v3: * check for -Wmissing-field-initializers warning and then disable
> > it
> >       because gcc and clang always accept -Wno-* (Dylan Baker)
> >     * Also disable this warning for C++
> > 
> > v4: * meson.build add -Wno-missing-field-initializers to
> >       c_args instead of no_override_init_args (Eric Engstrom)
> > 
> > v5: * configure.ac: Correct copy/paste error with CFLAGS/CXXFLAGS
> > 
> > Reviewed-by: Marek Olšák <marek.olsak at amd.com> (v1)
> > Reviewed-by: Emil Velikov <emil.velikov at collabora.com> (v2)
> > Signed-off-by: Gert Wollny <gert.wollny at collabora.com>
> > ---
> >  configure.ac |  4 ++++
> >  meson.build  | 13 ++++++++++---
> >  2 files changed, 14 insertions(+), 3 deletions(-)
> > 
> > diff --git a/configure.ac b/configure.ac
> > index 7a0e475420..1529e47c95 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -302,7 +302,10 @@ AX_CHECK_COMPILE_FLAG([-
> > Wall],                                 [CFLAGS="$CFLAGS
> >  AX_CHECK_COMPILE_FLAG([-Werror=implicit-function-declaration],
> > [CFLAGS="$CFLAGS -Werror=implicit-function-declaration"])
> >  AX_CHECK_COMPILE_FLAG([-Werror=missing-
> > prototypes],            [CFLAGS="$CFLAGS -Werror=missing-
> > prototypes"])
> >  AX_CHECK_COMPILE_FLAG([-Wmissing-
> > prototypes],                  [CFLAGS="$CFLAGS -Wmissing-
> > prototypes"])
> > +dnl Dylan Baker: gcc and clang always accepr -Wno-*, hence check for
> > the original warning, then set the no-* flag
> > +AX_CHECK_COMPILE_FLAG([-Wmissing-field-
> > initializers],          [CFLAGS="$CFLAGS -Wno-missing-field-
> > initializers"])
> >  AX_CHECK_COMPILE_FLAG([-fno-math-
> > errno],                       [CFLAGS="$CFLAGS -fno-math-errno"])
> > +
> >  AX_CHECK_COMPILE_FLAG([-fno-trapping-
> > math],                    [CFLAGS="$CFLAGS -fno-trapping-math"])
> >  AX_CHECK_COMPILE_FLAG([-
> > fvisibility=hidden],                   [VISIBILITY_CFLAGS="-
> > fvisibility=hidden"])
> >  
> > @@ -314,6 +317,7 @@ AX_CHECK_COMPILE_FLAG([-
> > Wall],                                 [CXXFLAGS="$CXXFL
> >  AX_CHECK_COMPILE_FLAG([-fno-math-
> > errno],                       [CXXFLAGS="$CXXFLAGS -fno-math-errno"])
> >  AX_CHECK_COMPILE_FLAG([-fno-trapping-
> > math],                    [CXXFLAGS="$CXXFLAGS -fno-trapping-math"])
> >  AX_CHECK_COMPILE_FLAG([-
> > fvisibility=hidden],                   [VISIBILITY_CXXFLAGS="-
> > fvisibility=hidden"])
> > +AX_CHECK_COMPILE_FLAG([-Wmissing-field-
> > initializers],          [CXXFLAGS="$CXXFLAGS -Wno-missing-field-
> > initializers"])
> >  AC_LANG_POP([C++])
> >  
> >  # Flags to help ensure that certain portions of the code -- and only
> > those
> > diff --git a/meson.build b/meson.build
> > index 65ae32172d..c02b3d5c41 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -762,6 +762,10 @@ foreach a : ['-Wall', '-Werror=implicit-
> > function-declaration',
> >      c_args += a
> >    endif
> >  endforeach
> > +if cc.has_argument('-Wmissing-field-initializers')
> > +  c_args += '-Wno-missing-field-initializers'
> > +endif
> > +
> >  c_vis_args = []
> >  if cc.has_argument('-fvisibility=hidden')
> >    c_vis_args += '-fvisibility=hidden'
> > @@ -778,9 +782,12 @@ endforeach
> >  
> >  # For some reason, the test for -Wno-foo always succeeds with gcc,
> > even if the
> >  # option is not supported. Hence, check for -Wfoo instead.
> > -if cpp.has_argument('-Wnon-virtual-dtor')
> > -  cpp_args += '-Wno-non-virtual-dtor'
> > -endif
> > +
> > +foreach a : ['non-virtual-dtor', 'missing-field-initializers']
> > +  if cpp.has_argument('-W' + a)
> > +    cpp_args += '-Wno-' + a
> > +  endif
> > +endforeach
> >  
> >  no_override_init_args = []
> >  foreach a : ['override-init', 'initializer-overrides']
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list