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

Reply via email to