diff options
Diffstat (limited to 'compat/nan.cpp')
-rw-r--r-- | compat/nan.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/compat/nan.cpp b/compat/nan.cpp new file mode 100644 index 00000000..899b907a --- /dev/null +++ b/compat/nan.cpp @@ -0,0 +1,17 @@ +#include <cmath> +#include "export.hpp" + +#if defined(__GNUC__) +extern "C" OPENTRACK_COMPAT_EXPORT bool __attribute__ ((noinline)) nanp(double value) +#elif defined(_WIN32) +extern "C" OPENTRACK_COMPAT_EXPORT __declspec(noinline) bool nanp(double value) +#else +extern "C" OPENTRACK_COMPAT_EXPORT bool nanp(double value) +#endif +{ + using std::isnan; + using std::isinf; + + const volatile double x = value; + return isnan(x) || isinf(x); +} |