diff options
Diffstat (limited to 'contrib/llvm/lib/Support/IsNAN.cpp')
-rw-r--r-- | contrib/llvm/lib/Support/IsNAN.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/contrib/llvm/lib/Support/IsNAN.cpp b/contrib/llvm/lib/Support/IsNAN.cpp new file mode 100644 index 000000000000..bdfdfbf3155d --- /dev/null +++ b/contrib/llvm/lib/Support/IsNAN.cpp @@ -0,0 +1,33 @@ +//===-- IsNAN.cpp ---------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// Platform-independent wrapper around C99 isnan(). +// +//===----------------------------------------------------------------------===// + +#include "llvm/Config/config.h" + +#if HAVE_ISNAN_IN_MATH_H +# include <math.h> +#elif HAVE_ISNAN_IN_CMATH +# include <cmath> +#elif HAVE_STD_ISNAN_IN_CMATH +# include <cmath> +using std::isnan; +#elif defined(_MSC_VER) +#include <float.h> +#define isnan _isnan +#else +# error "Don't know how to get isnan()" +#endif + +namespace llvm { + int IsNAN(float f) { return isnan(f); } + int IsNAN(double d) { return isnan(d); } +} // end namespace llvm; |