summaryrefslogtreecommitdiffhomepage
path: root/opentrack-compat/nan.cpp
blob: 899b907ad0abc83c335c2f094aa2e1f6e88d6cb5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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);
}