1193323Sed//===-- IsNAN.cpp ---------------------------------------------------------===//
2193323Sed//
3193323Sed//                     The LLVM Compiler Infrastructure
4193323Sed//
5193323Sed// This file is distributed under the University of Illinois Open Source
6193323Sed// License. See LICENSE.TXT for details.
7193323Sed//
8193323Sed//===----------------------------------------------------------------------===//
9193323Sed//
10193323Sed// Platform-independent wrapper around C99 isnan().
11193323Sed//
12193323Sed//===----------------------------------------------------------------------===//
13193323Sed
14193323Sed#include "llvm/Config/config.h"
15193323Sed
16193323Sed#if HAVE_ISNAN_IN_MATH_H
17193323Sed# include <math.h>
18193323Sed#elif HAVE_ISNAN_IN_CMATH
19193323Sed# include <cmath>
20193323Sed#elif HAVE_STD_ISNAN_IN_CMATH
21193323Sed# include <cmath>
22193323Sedusing std::isnan;
23193323Sed#elif defined(_MSC_VER)
24193323Sed#include <float.h>
25193323Sed#define isnan _isnan
26193323Sed#else
27193323Sed# error "Don't know how to get isnan()"
28193323Sed#endif
29193323Sed
30193323Sednamespace llvm {
31193323Sed  int IsNAN(float f)  { return isnan(f); }
32193323Sed  int IsNAN(double d) { return isnan(d); }
33193323Sed} // end namespace llvm;
34