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