From ae1625734c48d7616123f81137f18936bbfee59e Mon Sep 17 00:00:00 2001 From: ehofman Date: Mon, 26 Oct 2009 09:05:19 +0000 Subject: [PATCH] move all isnan() declarations from sample_group.cxx to compiler.h since it's too important not to have available everywhere. --- simgear/compiler.h | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/simgear/compiler.h b/simgear/compiler.h index da0020cc..cfa91f86 100644 --- a/simgear/compiler.h +++ b/simgear/compiler.h @@ -131,9 +131,35 @@ // #ifdef __APPLE__ +# ifdef __GNUC__ +# if ( __GNUC__ >= 3 ) && ( __GNUC_MINOR__ >= 3 ) inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } -#else +# else + // any C++ header file undefines isinf and isnan + // so this should be included before + // the functions are STILL in libm (libSystem on mac os x) +extern "C" int isnan (double); +extern "C" int isinf (double); +# endif +# else +inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } +# endif +#endif + +#if defined (__FreeBSD__) +# if __FreeBSD_version < 500000 + extern "C" { + inline int isnan(double r) { return !(r <= 0 || r >= 0); } + } +# endif +#endif + +#if defined (__CYGWIN__) +# include // isnan +#endif +#if defined(__MINGW32__) +# define isnan(x) _isnan(x) #endif -- 2.39.5