blob: 3300b7b47f6ba557ffeae5b48dab8d113d7c331a [file] [log] [blame]
Brian Gaeke30135b22004-06-22 23:54:38 +00001//===-- IsNAN.cpp ---------------------------------------------------------===//
Misha Brukmanf976c852005-04-21 22:55:34 +00002//
Brian Gaeke30135b22004-06-22 23:54:38 +00003// The LLVM Compiler Infrastructure
4//
5// This file was developed by the LLVM research group and is distributed under
6// the University of Illinois Open Source License. See LICENSE.TXT for details.
Misha Brukmanf976c852005-04-21 22:55:34 +00007//
Brian Gaeke30135b22004-06-22 23:54:38 +00008//===----------------------------------------------------------------------===//
9//
Misha Brukmanf976c852005-04-21 22:55:34 +000010// Platform-independent wrapper around C99 isnan().
Brian Gaeke30135b22004-06-22 23:54:38 +000011//
12//===----------------------------------------------------------------------===//
13
Reid Spencer551ccae2004-09-01 22:55:40 +000014#include "llvm/Config/config.h"
Brian Gaeke30135b22004-06-22 23:54:38 +000015#if HAVE_ISNAN_IN_MATH_H
16# include <math.h>
17#elif HAVE_ISNAN_IN_CMATH
18# include <cmath>
19#elif HAVE_STD_ISNAN_IN_CMATH
20# include <cmath>
21using std::isnan;
Chris Lattner67b6e4e2004-10-25 18:46:05 +000022#elif defined(_MSC_VER)
23#include <float.h>
24#define isnan _isnan
Brian Gaeke30135b22004-06-22 23:54:38 +000025#else
26# error "Don't know how to get isnan()"
27#endif
28
29namespace llvm {
30
31int IsNAN (float f) { return isnan (f); }
32int IsNAN (double d) { return isnan (d); }
33
34}; // end namespace llvm;