diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-07-05 14:17:04 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-07-05 14:17:04 +0000 |
commit | 5254c2638d6822fe3e884d45eab7d00929bd451d (patch) | |
tree | b55f01d26d29408a3e82fd8ae83301772ebd6c50 | |
parent | f732f2b11b136f34aecb95b0a2e72f5f272eb723 (diff) |
Teach Clang's <float.h> to also include MinGW's <float.h>, which provides additional system definitions, from Ruben Van Boxem
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134407 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Headers/float.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/Headers/float.h b/lib/Headers/float.h index 28fb882bd2..6eede0b6ba 100644 --- a/lib/Headers/float.h +++ b/lib/Headers/float.h @@ -24,6 +24,48 @@ #ifndef __FLOAT_H #define __FLOAT_H +/* If we're on MinGW, fall baack to the system's float.h, which might have + * additional definitions provided for Windows. + * For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx + */ +#if defined(__MINGW32__) && \ + defined(__has_include_next) && __has_include_next(<float.h>) +# include_next <float.h> + +/* Undefine anything that we'll be redefining below. */ +# undef FLT_EVAL_METHOD +# undef FLT_ROUNDS +# undef FLT_RADIX +# undef FLT_MANT_DIG +# undef DBL_MANT_DIG +# undef LDBL_MANT_DIG +# undef DECIMAL_DIG +# undef FLT_DIG +# undef DBL_DIG +# undef LDBL_DIG +# undef FLT_MIN_EXP +# undef DBL_MIN_EXP +# undef LDBL_MIN_EXP +# undef FLT_MIN_10_EXP +# undef DBL_MIN_10_EXP +# undef LDBL_MIN_10_EXP +# undef FLT_MAX_EXP +# undef DBL_MAX_EXP +# undef LDBL_MAX_EXP +# undef FLT_MAX_10_EXP +# undef DBL_MAX_10_EXP +# undef LDBL_MAX_10_EXP +# undef FLT_MAX +# undef DBL_MAX +# undef LDBL_MAX +# undef FLT_EPSILON +# undef DBL_EPSILON +# undef LDBL_EPSILON +# undef FLT_MIN +# undef DBL_MIN +# undef LDBL_MIN +#endif + /* Characteristics of floating point types, C99 5.2.4.2.2 */ #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ |