[lkml]   [2007]   [Apr]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[RFC][PATCH] fix abs() macro to work with types wider than int

    is there any reason to use an explicit int instead of a typeof in
    the abs() macro? The current implementation will return bogus
    results when used with longs.

    How about changing the int to a typeof like this?:

    Fix the abs() macro to work with wider types than int.

    Signed-off-by: Jiri Bohac <>

    --- linux-2.6.21-rc5.orig/include/linux/kernel.h
    +++ linux-2.6.21-rc5/include/linux/kernel.h
    @@ -89,7 +89,7 @@ extern int cond_resched(void);
    #define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)

    #define abs(x) ({ \
    - int __x = (x); \
    + typeof(x) __x = (x); \
    (__x < 0) ? -__x : __x; \

    Jiri Bohac <>
    SUSE Labs, SUSE CZ

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-04-19 11:23    [W:0.018 / U:2.688 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site