On Sat, 2017-04-08 at 17:07 +0100, Alfonso Lima wrote:
> Hi,
> 
> In current linux-next, if you run the script on this piece of
> code:
> 
> #define FOO(a)                                \
>       if (a) {                        \
>               something();            \
>               something_else();       \
>       }
> 
> You should get:
> 
> ERROR: Macros with complex values should be enclosed in parentheses
> #1: FILE: foo.c:1:
> +#define FOO(a)                               \
> +     if (a) {                        \
> +             something();            \
> +             something_else();       \
> +     }
> 
> We could silence checkpatch.pl using "do {} while ()" around the
> if statement. However, the "if () {}" statement should be
> enough. If someone could confirm this, I'll go and fix it.

Multiple if/else use is the reason do {} while (0) is suggested.

        if (bar())
                FOO(a);
        else
                baz(b);
 

Reply via email to