X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FSupport%2FIsInf.cpp;h=d6da0c99e8d8d64e65fbaa80f1c68e8c82d6201f;hb=82acfbfe86e798e260738f0b25e6b61117f35541;hp=c50eadff1796982452b10f62c2df427d91e3e7d2;hpb=551ccae044b0ff658fe629dd67edd5ffe75d10e8;p=oota-llvm.git diff --git a/lib/Support/IsInf.cpp b/lib/Support/IsInf.cpp index c50eadff179..d6da0c99e8d 100644 --- a/lib/Support/IsInf.cpp +++ b/lib/Support/IsInf.cpp @@ -1,17 +1,18 @@ -//===-- IsInf.cpp ---------------------------------------------------------===// -// +//===-- IsInf.cpp - Platform-independent wrapper around C99 isinf() -------===// +// // The LLVM Compiler Infrastructure // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. -// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// //===----------------------------------------------------------------------===// // -// Platform-independent wrapper around C99 isinf(). +// Platform-independent wrapper around C99 isinf() // //===----------------------------------------------------------------------===// #include "llvm/Config/config.h" + #if HAVE_ISINF_IN_MATH_H # include #elif HAVE_ISINF_IN_CMATH @@ -24,13 +25,25 @@ using std::isinf; // apparently this has been a problem with Solaris for years. # include static int isinf(double x) { return !finite(x) && x==x; } +#elif defined(_MSC_VER) +#include +#define isinf(X) (!_finite(X)) +#elif defined(_AIX) && defined(__GNUC__) +// GCC's fixincludes seems to be removing the isinf() declaration from the +// system header /usr/include/math.h +# include +static int isinf(double x) { return !finite(x) && x==x; } +#elif defined(__hpux) +// HP-UX is "special" +#include +static int isinf(double x) { return ((x) == INFINITY) || ((x) == -INFINITY); } #else # error "Don't know how to get isinf()" #endif namespace llvm { -int IsInf (float f) { return isinf (f); } -int IsInf (double d) { return isinf (d); } +int IsInf(float f) { return isinf(f); } +int IsInf(double d) { return isinf(d); } -}; // end namespace llvm; +} // end namespace llvm;