Messages in this thread | | | Subject | Re: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros | From | Sergei Shtylyov <> | Date | Thu, 10 Dec 2015 20:26:19 +0300 |
| |
On 12/10/2015 05:56 PM, Geyslan G. Bem wrote:
>>>>>> Don't use the 'do {} while (0)' wrapper in a single statement macro. >>>>>> >>>>>> Caught by checkpatch: "WARNING: Single statement macros should not >>>>>> use a do {} while (0) loop" >>>>>> >>>>>> Signed-off-by: Geyslan G. Bem <geyslan@gmail.com> >>>>>> --- >>>>>> drivers/usb/host/ehci.h | 4 ++-- >>>>>> 1 file changed, 2 insertions(+), 2 deletions(-) >>>>>> >>>>>> diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h >>>>>> index cfeebd8..945000a 100644 >>>>>> --- a/drivers/usb/host/ehci.h >>>>>> +++ b/drivers/usb/host/ehci.h >>>>>> @@ -244,9 +244,9 @@ struct ehci_hcd { /* one per >>>>>> controller */ >>>>>> /* irq statistics */ >>>>>> #ifdef EHCI_STATS >>>>>> struct ehci_stats stats; >>>>>> -# define COUNT(x) do { (x)++; } while (0) >>>>>> +# define COUNT(x) ((x)++) >>>>>> #else >>>>>> -# define COUNT(x) do {} while (0) >>>>>> +# define COUNT(x) ((void) 0) >>>>> >>>>> >>>>> >>>>> Why not just empty #define? >>>> >>>> >>>> Indeed. I'll change it. >>>> Tks Sergei. >>> >>> >>> Since COUNT is not used to return the empty #define is ok. Another way >>> is to use #define COUNT(x) (0) to get a 0 when necessary to read >>> returns.
>> Just 0, no parens please.
> Ok, no parens, since there's no evaluation.
It's because the literals don't need parens at all.
> Then my change is: > > -# define COUNT(x) do { (x)++; } while (0) > +# define COUNT(x) (++(x)) > #else > -# define COUNT(x) do {} while (0) > +# define COUNT(x) 0 > > Pre-increment allowing to return the updated x.
Why if there was a post-increment before?
Anyway, this talk is quite pointless since the macro didn't return any value anyway.
MBR, Sergei
| |