summaryrefslogtreecommitdiff
path: root/ares_nowarn.c
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2011-08-21 19:56:06 +0200
committerYang Tse <yangsita@gmail.com>2011-08-21 19:56:06 +0200
commitc8d8ca26060299258182bdee388011fcc53f23cc (patch)
tree8d2039258fd9637c5543931f591f0d3f10571788 /ares_nowarn.c
parent1089cf6052dc90998d1d7b6dd3b8770fd1b273ce (diff)
downloadc-ares-c8d8ca26060299258182bdee388011fcc53f23cc.tar.gz
c-ares-c8d8ca26060299258182bdee388011fcc53f23cc.tar.bz2
c-ares-c8d8ca26060299258182bdee388011fcc53f23cc.zip
warnings: fix another 'conversion may lose significant bits' compiler warning
Diffstat (limited to 'ares_nowarn.c')
-rw-r--r--ares_nowarn.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/ares_nowarn.c b/ares_nowarn.c
index 6c92f6f..0056bb8 100644
--- a/ares_nowarn.c
+++ b/ares_nowarn.c
@@ -64,8 +64,44 @@
#elif (SIZEOF_INT == 16)
# define CARES_MASK_SINT 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
# define CARES_MASK_UINT 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+#else
+# error "SIZEOF_INT not defined"
#endif
+#if (CARES_SIZEOF_LONG == 2)
+# define CARES_MASK_SLONG 0x7FFFL
+# define CARES_MASK_ULONG 0xFFFFUL
+#elif (CARES_SIZEOF_LONG == 4)
+# define CARES_MASK_SLONG 0x7FFFFFFFL
+# define CARES_MASK_ULONG 0xFFFFFFFFUL
+#elif (CARES_SIZEOF_LONG == 8)
+# define CARES_MASK_SLONG 0x7FFFFFFFFFFFFFFFL
+# define CARES_MASK_ULONG 0xFFFFFFFFFFFFFFFFUL
+#elif (CARES_SIZEOF_LONG == 16)
+# define CARES_MASK_SLONG 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFL
+# define CARES_MASK_ULONG 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFUL
+#else
+# error "CARES_SIZEOF_LONG not defined"
+#endif
+
+/*
+** unsigned size_t to signed long
+*/
+
+long aresx_uztosl(size_t uznum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ return (long)(uznum & (size_t) CARES_MASK_SLONG);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
/*
** unsigned size_t to signed int
*/