From: Gurucharan Shetty <gshe...@nicira.com> 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 <b...@nicira.com> Signed-off-by: Gurucharan Shetty <gshe...@nicira.com> Acked-by: Ben Pfaff <b...@nicira.com> Signed-off-by: Jarno Rajahalme <ja...@ovn.org> --- lib/type-props.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/type-props.h b/lib/type-props.h index 8c83ea6..3c908a7 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. -- 2.1.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev