Обсуждение: Add void cast to StaticAssertExpr?

Поиск
Список
Период
Сортировка

Add void cast to StaticAssertExpr?

От
Tom Lane
Дата:
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?

            regards, tom lane


Re: Add void cast to StaticAssertExpr?

От
Andres Freund
Дата:
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