/*===---- float.h - Characteristics of floating point types ----------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if defined(__MVS__) && __has_include_next() #include <__float_header_macro.h> #include_next #else #if !defined(__need_infinity_nan) #define __need_float_float #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ !defined(__STRICT_ANSI__) #define __need_infinity_nan #endif #include <__float_header_macro.h> #endif #ifdef __need_float_float /* If we're on MinGW, fall back 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 * * Also fall back on AIX to allow additional definitions and * implementation-defined values. */ #if (defined(__MINGW32__) || defined(_MSC_VER) || defined(_AIX)) && \ __STDC_HOSTED__ && __has_include_next() # include_next #endif #include <__float_float.h> #undef __need_float_float #endif #ifdef __need_infinity_nan #include <__float_infinity_nan.h> #undef __need_infinity_nan #endif #endif /* __MVS__ */