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

Matt Turner mattst88 at gmail.com
Fri Jul 14 19:13:59 UTC 2017


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>


More information about the mesa-dev mailing list