Commit e9155f36 authored by Gurucharan Shetty's avatar Gurucharan Shetty Committed by Ben Pfaff

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: default avatarBen Pfaff <blp@nicira.com>
Signed-off-by: default avatarGurucharan Shetty <gshetty@nicira.com>
Acked-by: default avatarBen Pfaff <blp@nicira.com>
parent b9a89e4b
...@@ -23,10 +23,10 @@ ...@@ -23,10 +23,10 @@
#define TYPE_IS_SIGNED(TYPE) ((TYPE) 1 > (TYPE) -1) #define TYPE_IS_SIGNED(TYPE) ((TYPE) 1 > (TYPE) -1)
#define TYPE_VALUE_BITS(TYPE) (sizeof(TYPE) * CHAR_BIT - TYPE_IS_SIGNED(TYPE)) #define TYPE_VALUE_BITS(TYPE) (sizeof(TYPE) * CHAR_BIT - TYPE_IS_SIGNED(TYPE))
#define TYPE_MINIMUM(TYPE) (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) : 0)
#define TYPE_MAXIMUM(TYPE) (TYPE_IS_SIGNED(TYPE) \ #define TYPE_MAXIMUM(TYPE) (TYPE_IS_SIGNED(TYPE) \
? ~(~(TYPE)0 << TYPE_VALUE_BITS(TYPE)) \ ? ~(~(TYPE)0 << (sizeof(TYPE) * 8 - 1)) \
: (TYPE)-1) : (TYPE)-1)
/* Number of decimal digits required to format an integer of the given TYPE. /* Number of decimal digits required to format an integer of the given TYPE.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment