diff --git a/ares_nowarn.c b/ares_nowarn.c index 640412e..701add5 100644 --- a/ares_nowarn.c +++ b/ares_nowarn.c @@ -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__ */