49 lines · c
1/*===---- float.h - Characteristics of floating point types ----------------===2 *3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4 * See https://llvm.org/LICENSE.txt for license information.5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6 *7 *===-----------------------------------------------------------------------===8 */9 10#if defined(__MVS__) && __has_include_next(<float.h>)11#include <__float_header_macro.h>12#include_next <float.h>13#else14 15#if !defined(__need_infinity_nan)16#define __need_float_float17#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \18 !defined(__STRICT_ANSI__)19#define __need_infinity_nan20#endif21#include <__float_header_macro.h>22#endif23 24#ifdef __need_float_float25/* If we're on MinGW, fall back to the system's float.h, which might have26 * additional definitions provided for Windows.27 * For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx28 *29 * Also fall back on AIX to allow additional definitions and30 * implementation-defined values.31 */32#if (defined(__MINGW32__) || defined(_MSC_VER) || defined(_AIX)) && \33 __STDC_HOSTED__ && __has_include_next(<float.h>)34 35# include_next <float.h>36 37#endif38 39#include <__float_float.h>40#undef __need_float_float41#endif42 43#ifdef __need_infinity_nan44#include <__float_infinity_nan.h>45#undef __need_infinity_nan46#endif47 48#endif /* __MVS__ */49