ares_nowarn: icc 9.1 workaround
authorYang Tse <yangsita@gmail.com>
Wed, 1 Jun 2011 10:13:05 +0000 (12:13 +0200)
committerYang Tse <yangsita@gmail.com>
Wed, 1 Jun 2011 10:13:05 +0000 (12:13 +0200)
ares_nowarn.c

index 640412e..701add5 100644 (file)
@@ -156,18 +156,26 @@ void aresx_FD_ZERO(fd_set *fdset)
 
 unsigned short aresx_htons(unsigned short usnum)
 {
+#if (__INTEL_COMPILER == 910) && defined(__i386__)
+  return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
+#else
   #pragma warning(push)
   #pragma warning(disable:810) /* conversion may lose significant bits */
   return htons(usnum);
   #pragma warning(pop)
+#endif
 }
 
 unsigned short aresx_ntohs(unsigned short usnum)
 {
+#if (__INTEL_COMPILER == 910) && defined(__i386__)
+  return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
+#else
   #pragma warning(push)
   #pragma warning(disable:810) /* conversion may lose significant bits */
   return ntohs(usnum);
   #pragma warning(pop)
+#endif
 }
 
 #endif /* __INTEL_COMPILER && __unix__ */