lkml.org 
[lkml]   [2019]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 2/3] linux/build_bug.h: Change type to int
    Date
    Having BUILD_BUG_ON_ZERO produce a value of type size_t leads to awkward
    casts in cases where the result needs to be signed, or of smaller type
    than size_t. To avoid this, cast the value to int instead and rely on
    implicit type conversions when a larger or unsigned type is needed.

    Suggested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
    ---
    Changes in v3:
    - This patch is new in v3

    include/linux/build_bug.h | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/include/linux/build_bug.h b/include/linux/build_bug.h
    index 0fe5426f2bdc..e3a0be2c90ad 100644
    --- a/include/linux/build_bug.h
    +++ b/include/linux/build_bug.h
    @@ -9,11 +9,11 @@
    #else /* __CHECKER__ */
    /*
    * Force a compilation error if condition is true, but also produce a
    - * result (of value 0 and type size_t), so the expression can be used
    + * result (of value 0 and type int), so the expression can be used
    * e.g. in a structure initializer (or where-ever else comma expressions
    * aren't permitted).
    */
    -#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:(-!!(e)); }))
    +#define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
    #endif /* __CHECKER__ */

    /* Force a compilation error if a constant expression is not a power of 2 */
    --
    2.22.0
    \
     
     \ /
      Last update: 2019-08-11 20:51    [W:2.399 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site