[Mesa-dev] [PATCH] i965: Use a ZERO() macro to initialize GENX_* structs.

Rafael Antognolli rafael.antognolli at intel.com
Fri Jul 14 19:27:34 UTC 2017


On Fri, Jul 14, 2017 at 12:13:59PM -0700, Matt Turner wrote:
> On Fri, Jul 14, 2017 at 11:15 AM, Rafael Antognolli
> <rafael.antognolli at intel.com> wrote:
> > gen4 have commands which start with KernelStartPointer, which is a
> > struct, so if we initialize it struct = { 0 }, we get warnings on some
> > compilers.
> 
> Which compilers?
> 
> >
> > This macro works around that and will silent such warnings.
> 
> s/silent/silence/
> 
> >
> > Signed-off-by: Rafael Antognolli <rafael.antognolli at intel.com>
> > Cc: Jason Ekstrand <jason at jlekstrand.net>
> > ---
> >  src/mesa/drivers/dri/i965/genX_state_upload.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c
> > index 54a547c..7340ed2 100644
> > --- a/src/mesa/drivers/dri/i965/genX_state_upload.c
> > +++ b/src/mesa/drivers/dri/i965/genX_state_upload.c
> > @@ -205,8 +205,10 @@ KSP(struct brw_context *brw, uint32_t offset)
> >        _dw + 1; /* Array starts at dw[1] */             \
> >     })
> >
> > +#define ZERO(T) ({ T tmp; memset(&tmp, 0, sizeof(tmp)); tmp; })
> > +
> >  #define brw_state_emit(brw, cmd, align, offset, name)              \
> > -   for (struct cmd name = { 0, },                                  \
> > +   for (struct cmd name = ZERO(struct cmd),                        \
> 
> Why don't we just use the GNU C extension {}? Clang supports it.
> 
> That would get my
> 
> Reviewed-by: Matt Turner <mattst88 at gmail.com>

Oh, I got the idea from the IRC discussion that we didn't want to use that
because of some options that could enable warnings for it. But I'm fine with
it too.

Rafael


More information about the mesa-dev mailing list