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 { IsNAN(float f)31 int IsNAN(float f) { return isnan(f); } IsNAN(double d)32 int IsNAN(double d) { return isnan(d); } 33 } // end namespace llvm; 34