201 inline int g_isnan(float f) { return isnand(f); }
202 #endif
203 inline int g_isnan(double f) { return isnand(f); }
204 #elif defined(__APPLE__)
205 inline int g_isnan(double f) { return isnan(f); }
206 #elif defined(LINUX) || defined(_ALLBSD_SOURCE)
207 inline int g_isnan(float f) { return isnanf(f); }
208 inline int g_isnan(double f) { return isnan(f); }
209 #else
210 #error "missing platform-specific definition here"
211 #endif
212
213 // GCC 4.3 does not allow 0.0/0.0 to produce a NAN value
214 #if (__GNUC__ == 4) && (__GNUC_MINOR__ > 2)
215 #define CAN_USE_NAN_DEFINE 1
216 #endif
217
218
219 // Checking for finiteness
220
221 inline int g_isfinite(jfloat f) { return finite(f); }
222 inline int g_isfinite(jdouble f) { return finite(f); }
223
224
225 // Wide characters
226
227 inline int wcslen(const jchar* x) { return wcslen((const wchar_t*)x); }
228
229
230 // Portability macros
231 #define PRAGMA_INTERFACE #pragma interface
232 #define PRAGMA_IMPLEMENTATION #pragma implementation
233
234 #if (__GNUC__ == 2) && (__GNUC_MINOR__ < 95)
235 #define TEMPLATE_TABLE_BUG
236 #endif
237 #if (__GNUC__ == 2) && (__GNUC_MINOR__ >= 96)
238 #define CONST_SDM_BUG
239 #endif
240
241 // Formatting.
242 #ifdef _LP64
|
201 inline int g_isnan(float f) { return isnand(f); }
202 #endif
203 inline int g_isnan(double f) { return isnand(f); }
204 #elif defined(__APPLE__)
205 inline int g_isnan(double f) { return isnan(f); }
206 #elif defined(LINUX) || defined(_ALLBSD_SOURCE)
207 inline int g_isnan(float f) { return isnanf(f); }
208 inline int g_isnan(double f) { return isnan(f); }
209 #else
210 #error "missing platform-specific definition here"
211 #endif
212
213 // GCC 4.3 does not allow 0.0/0.0 to produce a NAN value
214 #if (__GNUC__ == 4) && (__GNUC_MINOR__ > 2)
215 #define CAN_USE_NAN_DEFINE 1
216 #endif
217
218
219 // Checking for finiteness
220
221 inline int g_isfinite(jfloat f) { return isfinite(f); }
222 inline int g_isfinite(jdouble f) { return isfinite(f); }
223
224
225 // Wide characters
226
227 inline int wcslen(const jchar* x) { return wcslen((const wchar_t*)x); }
228
229
230 // Portability macros
231 #define PRAGMA_INTERFACE #pragma interface
232 #define PRAGMA_IMPLEMENTATION #pragma implementation
233
234 #if (__GNUC__ == 2) && (__GNUC_MINOR__ < 95)
235 #define TEMPLATE_TABLE_BUG
236 #endif
237 #if (__GNUC__ == 2) && (__GNUC_MINOR__ >= 96)
238 #define CONST_SDM_BUG
239 #endif
240
241 // Formatting.
242 #ifdef _LP64
|