[Mesa-dev] [PATCH] fix gcc 8 parenthesis warning

Eric Engestrom eric.engestrom at imgtec.com
Fri Mar 23 10:52:32 UTC 2018


On Friday, 2018-03-23 11:01:23 +0100, Marc Dietrich wrote:
> fixes warnings like this:
> [184/1137] Compiling C++ object 'src/compiler/glsl/glsl at sta/lower_jumps.cpp.o'.
> In file included from ../src/mesa/main/mtypes.h:48,
>                  from ../src/compiler/glsl_types.h:149,
>                  from ../src/compiler/glsl/lower_jumps.cpp:59:
> ../src/compiler/glsl/lower_jumps.cpp: In member function '{anonymous}::block_record {anonymous}::ir_lower_jumps_visitor::visit_block(exec_list*)':
> ../src/compiler/glsl/list.h:650:17: warning: unnecessary parentheses in declaration of 'node' [-Wparentheses]

This is gonna be a *very* annoying warning...

>     for (__type *(__inst) = (__type *)(__list)->head_sentinel.next; \

These parentheses are here for a reason: to make sure we can't pass in
something that would break the code or give it an unexpected behaviour.

I would be inclined to NAK this patch and request we kill this warning
at build system level instead.
Shame when compilers self-sabotage like that :/

>                  ^
> ../src/compiler/glsl/lower_jumps.cpp:510:7: note: in expansion of macro 'foreach_in_list'
>        foreach_in_list(ir_instruction, node, list) {
>        ^~~~~~~~~~~~~~~
> 
> Signed-off-by: Marc Dietrich <marvin24 at gmx.de>
> ---
>  src/compiler/glsl/list.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/compiler/glsl/list.h b/src/compiler/glsl/list.h
> index f77fe12991..2bfa273554 100644
> --- a/src/compiler/glsl/list.h
> +++ b/src/compiler/glsl/list.h
> @@ -647,12 +647,12 @@ inline void exec_node::insert_before(exec_list *before)
>  #endif
>  
>  #define foreach_in_list(__type, __inst, __list)      \
> -   for (__type *(__inst) = (__type *)(__list)->head_sentinel.next; \
> +   for (__type *__inst = (__type *)(__list)->head_sentinel.next; \
>          !(__inst)->is_tail_sentinel();               \
>          (__inst) = (__type *)(__inst)->next)
>  
>  #define foreach_in_list_reverse(__type, __inst, __list)   \
> -   for (__type *(__inst) = (__type *)(__list)->tail_sentinel.prev; \
> +   for (__type *__inst = (__type *)(__list)->tail_sentinel.prev; \
>          !(__inst)->is_head_sentinel();                    \
>          (__inst) = (__type *)(__inst)->prev)
>  
> -- 
> 2.16.2
> 
> _______________________________________________
> 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