1 | //===-- Definition of macros from float.h ---------------------------------===// |
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 | #ifndef LLVM_LIBC_MACROS_FLOAT_MACROS_H |
10 | #define LLVM_LIBC_MACROS_FLOAT_MACROS_H |
11 | |
12 | // Suppress `#include_next is a language extension` warnings. |
13 | #ifdef __clang__ |
14 | #pragma clang diagnostic push |
15 | #pragma clang diagnostic ignored "-Wgnu-include-next" |
16 | #pragma clang diagnostic ignored "-Winclude-next-absolute-path" |
17 | #else // gcc |
18 | #pragma GCC system_header |
19 | #endif //__clang__ |
20 | |
21 | #include_next <float.h> |
22 | |
23 | #ifdef __clang__ |
24 | #pragma clang diagnostic pop |
25 | #endif //__clang__ |
26 | |
27 | #ifndef FLT_RADIX |
28 | #define FLT_RADIX __FLT_RADIX__ |
29 | #endif // FLT_RADIX |
30 | |
31 | #ifndef FLT_EVAL_METHOD |
32 | #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ |
33 | #endif // FLT_EVAL_METHOD |
34 | |
35 | #ifndef DECIMAL_DIG |
36 | #define DECIMAL_DIG __DECIMAL_DIG__ |
37 | #endif // DECIMAL_DIG |
38 | |
39 | #ifndef FLT_DECIMAL_DIG |
40 | #define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__ |
41 | #endif // FLT_DECIMAL_DIG |
42 | |
43 | #ifndef DBL_DECIMAL_DIG |
44 | #define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__ |
45 | #endif // DBL_DECIMAL_DIG |
46 | |
47 | #ifndef LDBL_DECIMAL_DIG |
48 | #define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__ |
49 | #endif // LDBL_DECIMAL_DIG |
50 | |
51 | #ifndef FLT_DIG |
52 | #define FLT_DIG __FLT_DIG__ |
53 | #endif // FLT_DIG |
54 | |
55 | #ifndef DBL_DIG |
56 | #define DBL_DIG __DBL_DIG__ |
57 | #endif // DBL_DIG |
58 | |
59 | #ifndef LDBL_DIG |
60 | #define LDBL_DIG __LDBL_DIG__ |
61 | #endif // LDBL_DIG |
62 | |
63 | #ifndef FLT_MANT_DIG |
64 | #define FLT_MANT_DIG __FLT_MANT_DIG__ |
65 | #endif // FLT_MANT_DIG |
66 | |
67 | #ifndef DBL_MANT_DIG |
68 | #define DBL_MANT_DIG __DBL_MANT_DIG__ |
69 | #endif // DBL_MANT_DIG |
70 | |
71 | #ifndef LDBL_MANT_DIG |
72 | #define LDBL_MANT_DIG __LDBL_MANT_DIG__ |
73 | #endif // LDBL_MANT_DIG |
74 | |
75 | #ifndef FLT_MIN |
76 | #define FLT_MIN __FLT_MIN__ |
77 | #endif // FLT_MIN |
78 | |
79 | #ifndef DBL_MIN |
80 | #define DBL_MIN __DBL_MIN__ |
81 | #endif // DBL_MIN |
82 | |
83 | #ifndef LDBL_MIN |
84 | #define LDBL_MIN __LDBL_MIN__ |
85 | #endif // LDBL_MIN |
86 | |
87 | #ifndef FLT_MAX |
88 | #define FLT_MAX __FLT_MAX__ |
89 | #endif // FLT_MAX |
90 | |
91 | #ifndef DBL_MAX |
92 | #define DBL_MAX __DBL_MAX__ |
93 | #endif // DBL_MAX |
94 | |
95 | #ifndef LDBL_MAX |
96 | #define LDBL_MAX __LDBL_MAX__ |
97 | #endif // LDBL_MAX |
98 | |
99 | #ifndef FLT_TRUE_MIN |
100 | #define FLT_TRUE_MIN __FLT_TRUE_MIN__ |
101 | #endif // FLT_TRUE_MIN |
102 | |
103 | #ifndef DBL_TRUE_MIN |
104 | #define DBL_TRUE_MIN __DBL_TRUE_MIN__ |
105 | #endif // DBL_TRUE_MIN |
106 | |
107 | #ifndef LDBL_TRUE_MIN |
108 | #define LDBL_TRUE_MIN __LDBL_TRUE_MIN__ |
109 | #endif // LDBL_TRUE_MIN |
110 | |
111 | #ifndef FLT_EPSILON |
112 | #define FLT_EPSILON __FLT_EPSILON__ |
113 | #endif // FLT_EPSILON |
114 | |
115 | #ifndef DBL_EPSILON |
116 | #define DBL_EPSILON __DBL_EPSILON__ |
117 | #endif // DBL_EPSILON |
118 | |
119 | #ifndef LDBL_EPSILON |
120 | #define LDBL_EPSILON __LDBL_EPSILON__ |
121 | #endif // LDBL_EPSILON |
122 | |
123 | #ifndef FLT_MIN_EXP |
124 | #define FLT_MIN_EXP __FLT_MIN_EXP__ |
125 | #endif // FLT_MIN_EXP |
126 | |
127 | #ifndef DBL_MIN_EXP |
128 | #define DBL_MIN_EXP __DBL_MIN_EXP__ |
129 | #endif // DBL_MIN_EXP |
130 | |
131 | #ifndef LDBL_MIN_EXP |
132 | #define LDBL_MIN_EXP __LDBL_MIN_EXP__ |
133 | #endif // LDBL_MIN_EXP |
134 | |
135 | #ifndef FLT_MIN_10_EXP |
136 | #define FLT_MIN_10_EXP __FLT_MIN_10_EXP__ |
137 | #endif // FLT_MIN_10_EXP |
138 | |
139 | #ifndef DBL_MIN_10_EXP |
140 | #define DBL_MIN_10_EXP __DBL_MIN_10_EXP__ |
141 | #endif // DBL_MIN_10_EXP |
142 | |
143 | #ifndef LDBL_MIN_10_EXP |
144 | #define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__ |
145 | #endif // LDBL_MIN_10_EXP |
146 | |
147 | #ifndef FLT_MAX_EXP |
148 | #define FLT_MAX_EXP __FLT_MAX_EXP__ |
149 | #endif // FLT_MAX_EXP |
150 | |
151 | #ifndef DBL_MAX_EXP |
152 | #define DBL_MAX_EXP __DBL_MAX_EXP__ |
153 | #endif // DBL_MAX_EXP |
154 | |
155 | #ifndef LDBL_MAX_EXP |
156 | #define LDBL_MAX_EXP __LDBL_MAX_EXP__ |
157 | #endif // LDBL_MAX_EXP |
158 | |
159 | #ifndef FLT_MAX_10_EXP |
160 | #define FLT_MAX_10_EXP __FLT_MAX_10_EXP__ |
161 | #endif // FLT_MAX_10_EXP |
162 | |
163 | #ifndef DBL_MAX_10_EXP |
164 | #define DBL_MAX_10_EXP __DBL_MAX_10_EXP__ |
165 | #endif // DBL_MAX_10_EXP |
166 | |
167 | #ifndef LDBL_MAX_10_EXP |
168 | #define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__ |
169 | #endif // LDBL_MAX_10_EXP |
170 | |
171 | // TODO: Add FLT16 and FLT128 constants. |
172 | |
173 | #endif // LLVM_LIBC_MACROS_FLOAT_MACROS_H |
174 | |