On Thu, May 11, 2017 at 3:52 PM, Arnd Bergmann <[email protected]> wrote: > gcc-7 warns about the result of a constant multiplication used as > a boolean: > > drivers/ide/ide-timings.c: In function 'ide_timing_quantize': > drivers/ide/ide-timings.c:112:24: error: '*' in boolean context, suggest '&&' > instead [-Werror=int-in-bool-context] > q->setup = EZ(t->setup * 1000, T); > > This slightly rearranges the macro to simplify the code and avoid > the warning at the same time.
> #define ENOUGH(v, unit) (((v) - 1) / (unit) + 1) > -#define EZ(v, unit) ((v) ? ENOUGH(v, unit) : 0) > +#define EZ(v, unit) ((v) ? ENOUGH(v * 1000, unit) : 0) Perhaps v -> (v) in the multiplication. -- With Best Regards, Andy Shevchenko

