clang 22.0.0git
float.h
Go to the documentation of this file.
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-exception
6 *
7 *===-----------------------------------------------------------------------===
8 */
9
10#if defined(__MVS__) && __has_include_next(<float.h>)
12#include_next <float.h>
13#else
14
15#if !defined(__need_infinity_nan)
16#define __need_float_float
17#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \
18 !defined(__STRICT_ANSI__)
19#define __need_infinity_nan
20#endif
22#endif
23
24#ifdef __need_float_float
25/* If we're on MinGW, fall back to the system's float.h, which might have
26 * additional definitions provided for Windows.
27 * For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx
28 *
29 * Also fall back on AIX to allow additional definitions and
30 * 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#endif
38
39#include <__float_float.h>
40#undef __need_float_float
41#endif
42
43#ifdef __need_infinity_nan
45#undef __need_infinity_nan
46#endif
47
48#endif /* __MVS__ */