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);