lkml.org 
[lkml]   [2015]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros
    From
    Date
    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



    \
     
     \ /
      Last update: 2015-12-10 19:01    [W:2.328 / U:0.508 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site