ares_nowarn: icc 9.1 workaround
[platform/upstream/c-ares.git] / ares_nowarn.c
1
2 /* Copyright (C) 2010-2011 by Daniel Stenberg
3  *
4  * Permission to use, copy, modify, and distribute this
5  * software and its documentation for any purpose and without
6  * fee is hereby granted, provided that the above copyright
7  * notice appear in all copies and that both that copyright
8  * notice and this permission notice appear in supporting
9  * documentation, and that the name of M.I.T. not be used in
10  * advertising or publicity pertaining to distribution of the
11  * software without specific, written prior permission.
12  * M.I.T. makes no representations about the suitability of
13  * this software for any purpose.  It is provided "as is"
14  * without express or implied warranty.
15  */
16
17
18 #include "ares_setup.h"
19
20 #ifdef HAVE_ASSERT_H
21 #  include <assert.h>
22 #endif
23
24 #if defined(__INTEL_COMPILER) && defined(__unix__)
25
26 #ifdef HAVE_SYS_SOCKET_H
27 #  include <sys/socket.h>
28 #endif
29 #ifdef HAVE_NETINET_IN_H
30 #  include <netinet/in.h>
31 #endif
32 #ifdef HAVE_ARPA_INET_H
33 #  include <arpa/inet.h>
34 #endif
35
36 #endif /* __INTEL_COMPILER && __unix__ */
37
38 #define BUILDING_ARES_NOWARN_C 1
39
40 #include "ares_nowarn.h"
41
42 #if (SIZEOF_INT == 2)
43 #  define CARES_MASK_SINT  0x7FFF
44 #  define CARES_MASK_UINT  0xFFFF
45 #elif (SIZEOF_INT == 4)
46 #  define CARES_MASK_SINT  0x7FFFFFFF
47 #  define CARES_MASK_UINT  0xFFFFFFFF
48 #elif (SIZEOF_INT == 8)
49 #  define CARES_MASK_SINT  0x7FFFFFFFFFFFFFFF
50 #  define CARES_MASK_UINT  0xFFFFFFFFFFFFFFFF
51 #elif (SIZEOF_INT == 16)
52 #  define CARES_MASK_SINT  0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
53 #  define CARES_MASK_UINT  0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
54 #endif
55
56 /*
57 ** unsigned size_t to signed int
58 */
59
60 int aresx_uztosi(size_t uznum)
61 {
62 #ifdef __INTEL_COMPILER
63 #  pragma warning(push)
64 #  pragma warning(disable:810) /* conversion may lose significant bits */
65 #endif
66
67   return (int)(uznum & (size_t) CARES_MASK_SINT);
68
69 #ifdef __INTEL_COMPILER
70 #  pragma warning(pop)
71 #endif
72 }
73
74 /*
75 ** signed long to signed int
76 */
77
78 int aresx_sltosi(long slnum)
79 {
80 #ifdef __INTEL_COMPILER
81 #  pragma warning(push)
82 #  pragma warning(disable:810) /* conversion may lose significant bits */
83 #endif
84
85   DEBUGASSERT(slnum >= 0);
86   return (int)(slnum & (long) CARES_MASK_SINT);
87
88 #ifdef __INTEL_COMPILER
89 #  pragma warning(pop)
90 #endif
91 }
92
93 /*
94 ** signed ssize_t to signed int
95 */
96
97 int aresx_sztosi(ssize_t sznum)
98 {
99 #ifdef __INTEL_COMPILER
100 #  pragma warning(push)
101 #  pragma warning(disable:810) /* conversion may lose significant bits */
102 #endif
103
104   DEBUGASSERT(sznum >= 0);
105   return (int)(sznum & (ssize_t) CARES_MASK_SINT);
106
107 #ifdef __INTEL_COMPILER
108 #  pragma warning(pop)
109 #endif
110 }
111
112 /*
113 ** signed ssize_t to unsigned int
114 */
115
116 unsigned int aresx_sztoui(ssize_t sznum)
117 {
118 #ifdef __INTEL_COMPILER
119 #  pragma warning(push)
120 #  pragma warning(disable:810) /* conversion may lose significant bits */
121 #endif
122
123   DEBUGASSERT(sznum >= 0);
124   return (unsigned int)(sznum & (ssize_t) CARES_MASK_UINT);
125
126 #ifdef __INTEL_COMPILER
127 #  pragma warning(pop)
128 #endif
129 }
130
131 #if defined(__INTEL_COMPILER) && defined(__unix__)
132
133 int aresx_FD_ISSET(int fd, fd_set *fdset)
134 {
135   #pragma warning(push)
136   #pragma warning(disable:1469) /* clobber ignored */
137   return FD_ISSET(fd, fdset);
138   #pragma warning(pop)
139 }
140
141 void aresx_FD_SET(int fd, fd_set *fdset)
142 {
143   #pragma warning(push)
144   #pragma warning(disable:1469) /* clobber ignored */
145   FD_SET(fd, fdset);
146   #pragma warning(pop)
147 }
148
149 void aresx_FD_ZERO(fd_set *fdset)
150 {
151   #pragma warning(push)
152   #pragma warning(disable:593) /* variable was set but never used */
153   FD_ZERO(fdset);
154   #pragma warning(pop)
155 }
156
157 unsigned short aresx_htons(unsigned short usnum)
158 {
159 #if (__INTEL_COMPILER == 910) && defined(__i386__)
160   return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
161 #else
162   #pragma warning(push)
163   #pragma warning(disable:810) /* conversion may lose significant bits */
164   return htons(usnum);
165   #pragma warning(pop)
166 #endif
167 }
168
169 unsigned short aresx_ntohs(unsigned short usnum)
170 {
171 #if (__INTEL_COMPILER == 910) && defined(__i386__)
172   return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
173 #else
174   #pragma warning(push)
175   #pragma warning(disable:810) /* conversion may lose significant bits */
176   return ntohs(usnum);
177   #pragma warning(pop)
178 #endif
179 }
180
181 #endif /* __INTEL_COMPILER && __unix__ */