ares_nowarn: icc 9.1 workaround
[platform/upstream/c-ares.git] / 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__ */