Home | History | Annotate | Download | only in Support
      1 //===-- IsNAN.cpp ---------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // Platform-independent wrapper around C99 isnan().
     11 //
     12 //===----------------------------------------------------------------------===//
     13 
     14 #include "llvm/Config/config.h"
     15 
     16 #if HAVE_ISNAN_IN_MATH_H
     17 # include <math.h>
     18 #elif HAVE_ISNAN_IN_CMATH
     19 # include <cmath>
     20 #elif HAVE_STD_ISNAN_IN_CMATH
     21 # include <cmath>
     22 using std::isnan;
     23 #elif defined(_MSC_VER)
     24 #include <float.h>
     25 #define isnan _isnan
     26 #else
     27 # error "Don't know how to get isnan()"
     28 #endif
     29 
     30 namespace llvm {
     31   int IsNAN(float f)  { return isnan(f); }
     32   int IsNAN(double d) { return isnan(d); }
     33 } // end namespace llvm;
     34