From: Gurucharan Shetty Date: Fri, 17 Jul 2015 15:48:23 +0000 (-0700) Subject: type-props: Avoid a MSVC warning. X-Git-Tag: v2.4.0~12 X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fovs.git;a=commitdiff_plain;h=e9155f36db6fe8f23dfd06ac7feaf279f0c1b95c type-props: Avoid a MSVC warning. Currently, MSVC complains when you have a macro of the form TYPE_MAXIMUM(uint64_t) because a part of macro becomes ~(uint64_t)0 << 64 with a warning: C4293: '<<' : shift count negative or too big, undefined behavior. This commit makes changes to the macro to prevent that warning. Suggested-by: Ben Pfaff Signed-off-by: Gurucharan Shetty Acked-by: Ben Pfaff --- diff --git a/lib/type-props.h b/lib/type-props.h index 8c83ea6fc..3c908a736 100644 --- a/lib/type-props.h +++ b/lib/type-props.h @@ -23,10 +23,10 @@ #define TYPE_IS_SIGNED(TYPE) ((TYPE) 1 > (TYPE) -1) #define TYPE_VALUE_BITS(TYPE) (sizeof(TYPE) * CHAR_BIT - TYPE_IS_SIGNED(TYPE)) #define TYPE_MINIMUM(TYPE) (TYPE_IS_SIGNED(TYPE) \ - ? ~(TYPE)0 << TYPE_VALUE_BITS(TYPE) \ + ? ~(TYPE)0 << (sizeof(TYPE) * 8 - 1) \ : 0) #define TYPE_MAXIMUM(TYPE) (TYPE_IS_SIGNED(TYPE) \ - ? ~(~(TYPE)0 << TYPE_VALUE_BITS(TYPE)) \ + ? ~(~(TYPE)0 << (sizeof(TYPE) * 8 - 1)) \ : (TYPE)-1) /* Number of decimal digits required to format an integer of the given TYPE.