Re: Add void cast to StaticAssertExpr?

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2018-02-15T18:04:52Z
Lists: pgsql-hackers
Hi,

On 2018-02-15 12:19:46 -0500, Tom Lane wrote:
> While poking around in buildfarm results, I noticed that some members are
> giving warnings like
> 
> analyze.c:386:181: warning: expression result unused [-Wunused-value]
> 
> which is apparently caused by the use of StaticAssertExpr in
> 
> #define AllocSetContextCreate(parent, name, allocparams) \
>     (StaticAssertExpr(__builtin_constant_p(name), \
>                       "Use AllocSetContextCreateExtended with MEMCONTEXT_COPY_NAME for non-constant context names"), \
>      AllocSetContextCreateExtended(parent, name, 0, allocparams))
> 
> Now, I could silence those warnings via
> 
> -    (StaticAssertExpr(__builtin_constant_p(name), \
> +    ((void) StaticAssertExpr(__builtin_constant_p(name), \
> 
> as I see has already been done in two similar uses of StaticAssertExpr in
> c.h.  However, this seems a bit silly.  Wouldn't it be better to put
> the void cast right into StaticAssertExpr?

No argument against it here.

Greetings,

Andres Freund


Commits

  1. Cast to void in StaticAssertExpr, not its callers.