blob: 5ed3971254bb374e7f9ef4152c8b94a810c7e326 [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"
Reid Spencer7107c3b2006-07-26 16:18:00 +000015#include "llvm/System/IncludeFile.h"
16
Brian Gaeke30135b22004-06-22 23:54:38 +000017#if HAVE_ISNAN_IN_MATH_H
18# include <math.h>
19#elif HAVE_ISNAN_IN_CMATH
20# include <cmath>
21#elif HAVE_STD_ISNAN_IN_CMATH
22# include <cmath>
23using std::isnan;
Chris Lattner67b6e4e2004-10-25 18:46:05 +000024#elif defined(_MSC_VER)
25#include <float.h>
26#define isnan _isnan
Brian Gaeke30135b22004-06-22 23:54:38 +000027#else
28# error "Don't know how to get isnan()"
29#endif
30
31namespace llvm {
32
33int IsNAN (float f) { return isnan (f); }
34int IsNAN (double d) { return isnan (d); }
35
Chris Lattnerd74ea2b2006-05-24 17:04:05 +000036} // end namespace llvm;
Reid Spencer7107c3b2006-07-26 16:18:00 +000037
38DEFINING_FILE_FOR(SupportIsNAN)