1 | /* This file contains the definitions and documentation for the |
2 | builtins used in the GNU compiler. |
3 | Copyright (C) 2000-2024 Free Software Foundation, Inc. |
4 | |
5 | This file is part of GCC. |
6 | |
7 | GCC is free software; you can redistribute it and/or modify it under |
8 | the terms of the GNU General Public License as published by the Free |
9 | Software Foundation; either version 3, or (at your option) any later |
10 | version. |
11 | |
12 | GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
13 | WARRANTY; without even the implied warranty of MERCHANTABILITY or |
14 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
15 | for more details. |
16 | |
17 | You should have received a copy of the GNU General Public License |
18 | along with GCC; see the file COPYING3. If not see |
19 | <http://www.gnu.org/licenses/>. */ |
20 | |
21 | /* Before including this file, you should define a macro: |
22 | |
23 | DEF_BUILTIN (ENUM, NAME, CLASS, TYPE, LIBTYPE, BOTH_P, |
24 | FALLBACK_P, NONANSI_P, ATTRS, IMPLICIT, COND) |
25 | |
26 | This macro will be called once for each builtin function. The |
27 | ENUM will be of type `enum built_in_function', and will indicate |
28 | which builtin function is being processed. The NAME of the builtin |
29 | function (which will always start with `__builtin_') is a string |
30 | literal. The CLASS is of type `enum built_in_class' and indicates |
31 | what kind of builtin is being processed. |
32 | |
33 | Some builtins are actually two separate functions. For example, |
34 | for `strcmp' there are two builtin functions; `__builtin_strcmp' |
35 | and `strcmp' itself. Both behave identically. Other builtins |
36 | define only the `__builtin' variant. If BOTH_P is TRUE, then this |
37 | builtin has both variants; otherwise, it is has only the first |
38 | variant. |
39 | |
40 | TYPE indicates the type of the function. The symbols correspond to |
41 | enumerals from builtin-types.def. If BOTH_P is true, then LIBTYPE |
42 | is the type of the non-`__builtin_' variant. Otherwise, LIBTYPE |
43 | should be ignored. |
44 | |
45 | If FALLBACK_P is true then, if for some reason, the compiler cannot |
46 | expand the builtin function directly, it will call the |
47 | corresponding library function (which does not have the |
48 | `__builtin_' prefix. |
49 | |
50 | If NONANSI_P is true, then the non-`__builtin_' variant is not an |
51 | ANSI/ISO library function, and so we should pretend it does not |
52 | exist when compiling in ANSI conformant mode. |
53 | |
54 | ATTRs is an attribute list as defined in builtin-attrs.def that |
55 | describes the attributes of this builtin function. |
56 | |
57 | IMPLICIT specifies condition when the builtin can be produced by |
58 | compiler. For instance C90 reserves floorf function, but does not |
59 | define it's meaning. When user uses floorf we may assume that the |
60 | floorf has the meaning we expect, but we can't produce floorf by |
61 | simplifying floor((double)float) since the runtime need not implement |
62 | it. |
63 | |
64 | The builtins is registered only if COND is true. */ |
65 | |
66 | /* A GCC builtin (like __builtin_saveregs) is provided by the |
67 | compiler, but does not correspond to a function in the standard |
68 | library. */ |
69 | #undef DEF_GCC_BUILTIN |
70 | #define DEF_GCC_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
71 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, BT_LAST, \ |
72 | false, false, false, ATTRS, true, true) |
73 | |
74 | /* Like DEF_GCC_BUILTIN, except we don't prepend "__builtin_". */ |
75 | #undef DEF_SYNC_BUILTIN |
76 | #define DEF_SYNC_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
77 | DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, BT_LAST, \ |
78 | false, false, false, ATTRS, true, true) |
79 | |
80 | /* A set of GCC builtins for _FloatN and _FloatNx types. TYPE_MACRO |
81 | is called with an argument such as FLOAT32 to produce the enum |
82 | value for the type. */ |
83 | #undef DEF_GCC_FLOATN_NX_BUILTINS |
84 | #define DEF_GCC_FLOATN_NX_BUILTINS(ENUM, NAME, TYPE_MACRO, ATTRS) \ |
85 | DEF_GCC_BUILTIN (ENUM ## F16, NAME "f16", TYPE_MACRO (FLOAT16), ATTRS) \ |
86 | DEF_GCC_BUILTIN (ENUM ## F32, NAME "f32", TYPE_MACRO (FLOAT32), ATTRS) \ |
87 | DEF_GCC_BUILTIN (ENUM ## F64, NAME "f64", TYPE_MACRO (FLOAT64), ATTRS) \ |
88 | DEF_GCC_BUILTIN (ENUM ## F128, NAME "f128", TYPE_MACRO (FLOAT128), ATTRS) \ |
89 | DEF_GCC_BUILTIN (ENUM ## F32X, NAME "f32x", TYPE_MACRO (FLOAT32X), ATTRS) \ |
90 | DEF_GCC_BUILTIN (ENUM ## F64X, NAME "f64x", TYPE_MACRO (FLOAT64X), ATTRS) \ |
91 | DEF_GCC_BUILTIN (ENUM ## F128X, NAME "f128x", TYPE_MACRO (FLOAT128X), ATTRS) |
92 | |
93 | /* A library builtin (like __builtin_strchr) is a builtin equivalent |
94 | of an ANSI/ISO standard library function. In addition to the |
95 | `__builtin' version, we will create an ordinary version (e.g, |
96 | `strchr') as well. If we cannot compute the answer using the |
97 | builtin function, we will fall back to the standard library |
98 | version. */ |
99 | #undef DEF_LIB_BUILTIN |
100 | #define DEF_LIB_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
101 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
102 | true, true, false, ATTRS, true, true) |
103 | |
104 | /* Like DEF_LIB_BUILTIN, except that the function is not one that is |
105 | specified by ANSI/ISO C. So, when we're being fully conformant we |
106 | ignore the version of these builtins that does not begin with |
107 | __builtin. */ |
108 | #undef DEF_EXT_LIB_BUILTIN |
109 | #define DEF_EXT_LIB_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
110 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
111 | true, true, true, ATTRS, false, true) |
112 | |
113 | /* A set of GCC builtins for _FloatN and _FloatNx types. TYPE_MACRO is called |
114 | with an argument such as FLOAT32 to produce the enum value for the type. If |
115 | we are compiling for the C language with GNU extensions, we enable the name |
116 | without the __builtin_ prefix as well as the name with the __builtin_ |
117 | prefix. C++ does not enable these names by default because a class based |
118 | library should use the __builtin_ names. */ |
119 | #undef DEF_FLOATN_BUILTIN |
120 | #define DEF_FLOATN_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
121 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
122 | targetm.floatn_builtin_p ((int) ENUM), true, true, ATTRS, \ |
123 | false, true) |
124 | #undef DEF_EXT_LIB_FLOATN_NX_BUILTINS |
125 | #define DEF_EXT_LIB_FLOATN_NX_BUILTINS(ENUM, NAME, TYPE_MACRO, ATTRS) \ |
126 | DEF_FLOATN_BUILTIN (ENUM ## F16, NAME "f16", TYPE_MACRO (FLOAT16), ATTRS) \ |
127 | DEF_FLOATN_BUILTIN (ENUM ## F32, NAME "f32", TYPE_MACRO (FLOAT32), ATTRS) \ |
128 | DEF_FLOATN_BUILTIN (ENUM ## F64, NAME "f64", TYPE_MACRO (FLOAT64), ATTRS) \ |
129 | DEF_FLOATN_BUILTIN (ENUM ## F128, NAME "f128", TYPE_MACRO (FLOAT128), ATTRS) \ |
130 | DEF_FLOATN_BUILTIN (ENUM ## F32X, NAME "f32x", TYPE_MACRO (FLOAT32X), ATTRS) \ |
131 | DEF_FLOATN_BUILTIN (ENUM ## F64X, NAME "f64x", TYPE_MACRO (FLOAT64X), ATTRS) \ |
132 | DEF_FLOATN_BUILTIN (ENUM ## F128X, NAME "f128x", TYPE_MACRO (FLOAT128X), \ |
133 | ATTRS) |
134 | |
135 | /* Like DEF_LIB_BUILTIN, except that the function is only a part of |
136 | the standard in C94 or above. */ |
137 | #undef DEF_C94_BUILTIN |
138 | #define DEF_C94_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
139 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
140 | true, true, !flag_isoc94, ATTRS, \ |
141 | targetm.libc_has_function (function_c94, NULL_TREE), true) |
142 | |
143 | /* Like DEF_LIB_BUILTIN, except that the function is only a part of |
144 | the standard in C99 or above. */ |
145 | #undef DEF_C99_BUILTIN |
146 | #define DEF_C99_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
147 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
148 | true, true, !flag_isoc99, ATTRS, \ |
149 | targetm.libc_has_function (function_c99_misc, NULL_TREE), true) |
150 | |
151 | /* Like DEF_LIB_BUILTIN, except that the function is only a part of |
152 | the standard in C11 or above. */ |
153 | #undef DEF_C11_BUILTIN |
154 | #define DEF_C11_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
155 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
156 | true, true, !flag_isoc11, ATTRS, \ |
157 | targetm.libc_has_function (function_c11_misc, NULL_TREE), true) |
158 | |
159 | /* Like DEF_LIB_BUILTIN, except that the function is only a part of |
160 | the standard in C23 or above. */ |
161 | #undef DEF_C23_BUILTIN |
162 | #define DEF_C23_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
163 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
164 | true, true, !flag_isoc23, ATTRS, \ |
165 | targetm.libc_has_function (function_c23_misc, NULL_TREE), true) |
166 | |
167 | /* Like DEF_C99_BUILTIN, but for complex math functions. */ |
168 | #undef DEF_C99_COMPL_BUILTIN |
169 | #define DEF_C99_COMPL_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
170 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
171 | true, true, !flag_isoc99, ATTRS, \ |
172 | targetm.libc_has_function (function_c99_math_complex, \ |
173 | NULL_TREE), \ |
174 | true) |
175 | |
176 | /* Builtin that is specified by C99 and C90 reserve the name for future use. |
177 | We can still recognize the builtin in C90 mode but we can't produce it |
178 | implicitly. */ |
179 | #undef DEF_C99_C90RES_BUILTIN |
180 | #define DEF_C99_C90RES_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
181 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
182 | true, true, !flag_isoc99, ATTRS, \ |
183 | targetm.libc_has_function (function_c99_misc, NULL_TREE), true) |
184 | |
185 | /* Builtin that C99 reserve the name for future use. We can still recognize |
186 | the builtin in C99 mode but we can't produce it implicitly. */ |
187 | #undef DEF_EXT_C99RES_BUILTIN |
188 | #define DEF_EXT_C99RES_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
189 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
190 | true, true, true, ATTRS, false, true) |
191 | |
192 | /* Allocate the enum and the name for a builtin, but do not actually |
193 | define it here at all. */ |
194 | #undef DEF_BUILTIN_STUB |
195 | #define DEF_BUILTIN_STUB(ENUM, NAME) \ |
196 | DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, BT_LAST, BT_LAST, false, false, \ |
197 | false, ATTR_LAST, false, false) |
198 | |
199 | /* Builtins used in implementing coroutine support. */ |
200 | #undef DEF_COROUTINE_BUILTIN |
201 | #define DEF_COROUTINE_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
202 | DEF_BUILTIN (ENUM, "__builtin_coro_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
203 | true, true, true, ATTRS, true, flag_coroutines) |
204 | |
205 | /* Builtin used by the implementation of OpenACC and OpenMP. Few of these are |
206 | actually implemented in the compiler; most are in libgomp. */ |
207 | #undef DEF_GOACC_BUILTIN |
208 | #define DEF_GOACC_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
209 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
210 | false, true, true, ATTRS, false, \ |
211 | flag_openacc) |
212 | #undef DEF_GOACC_BUILTIN_COMPILER |
213 | #define DEF_GOACC_BUILTIN_COMPILER(ENUM, NAME, TYPE, ATTRS) \ |
214 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
215 | flag_openacc, true, true, ATTRS, false, true) |
216 | #undef DEF_GOACC_BUILTIN_ONLY |
217 | #define DEF_GOACC_BUILTIN_ONLY(ENUM, NAME, TYPE, ATTRS) \ |
218 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, BT_LAST, \ |
219 | false, false, true, ATTRS, false, flag_openacc) |
220 | #undef DEF_GOMP_BUILTIN |
221 | #define DEF_GOMP_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
222 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
223 | false, true, true, ATTRS, false, \ |
224 | (flag_openacc \ |
225 | || flag_openmp \ |
226 | || flag_tree_parallelize_loops > 1)) |
227 | |
228 | /* Builtin used by the implementation of GNU TM. These |
229 | functions are mapped to the actual implementation of the STM library. */ |
230 | #undef DEF_TM_BUILTIN |
231 | #define DEF_TM_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
232 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, BT_LAST, \ |
233 | false, true, true, ATTRS, false, flag_tm) |
234 | |
235 | /* Builtin used by the implementation of libsanitizer. These |
236 | functions are mapped to the actual implementation of the |
237 | libtsan library. */ |
238 | #undef DEF_SANITIZER_BUILTIN |
239 | #define DEF_SANITIZER_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ |
240 | DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ |
241 | true, true, true, ATTRS, true, \ |
242 | (flag_sanitize & (SANITIZE_ADDRESS | SANITIZE_THREAD \ |
243 | | SANITIZE_HWADDRESS \ |
244 | | SANITIZE_UNDEFINED \ |
245 | | SANITIZE_UNDEFINED_NONDEFAULT) \ |
246 | || flag_sanitize_coverage)) |
247 | |
248 | /* Define an attribute list for math functions that are normally |
249 | "impure" because some of them may write into global memory for |
250 | `errno'. If !flag_errno_math they are instead "const". */ |
251 | #undef ATTR_MATHFN_ERRNO |
252 | #define ATTR_MATHFN_ERRNO (flag_errno_math ? \ |
253 | ATTR_ERRNOCONST_NOTHROW_LEAF_LIST : ATTR_CONST_NOTHROW_LEAF_LIST) |
254 | |
255 | /* Define an attribute list for math functions that are normally |
256 | "const" but if flag_rounding_math is set they are instead "pure". |
257 | This distinction accounts for the fact that some math functions |
258 | check the rounding mode which is akin to examining global |
259 | memory. */ |
260 | #undef ATTR_MATHFN_FPROUNDING |
261 | #define ATTR_MATHFN_FPROUNDING (flag_rounding_math ? \ |
262 | ATTR_PURE_NOTHROW_LEAF_LIST : ATTR_CONST_NOTHROW_LEAF_LIST) |
263 | |
264 | /* Define an attribute list for math functions that are normally |
265 | "impure" because some of them may write into global memory for |
266 | `errno'. If !flag_errno_math, we can possibly use "pure" or |
267 | "const" depending on whether we care about FP rounding. */ |
268 | #undef ATTR_MATHFN_FPROUNDING_ERRNO |
269 | #define ATTR_MATHFN_FPROUNDING_ERRNO (flag_errno_math ? \ |
270 | (flag_rounding_math ? ATTR_ERRNOPURE_NOTHROW_LEAF_LIST \ |
271 | : ATTR_ERRNOCONST_NOTHROW_LEAF_LIST) : ATTR_MATHFN_FPROUNDING) |
272 | |
273 | /* Define an attribute list for math functions that need to mind FP |
274 | rounding, but because they store into memory they are never "const" |
275 | or "pure". Use of this macro is mainly for documentation and |
276 | maintenance purposes. */ |
277 | #undef ATTR_MATHFN_FPROUNDING_STORE |
278 | #define ATTR_MATHFN_FPROUNDING_STORE ATTR_NOTHROW_LEAF_LIST |
279 | |
280 | /* Define an attribute list for leaf functions that do not throw |
281 | exceptions normally, but may throw exceptions when using |
282 | -fnon-call-exceptions. */ |
283 | #define ATTR_NOTHROWCALL_LEAF_LIST (flag_non_call_exceptions ? \ |
284 | ATTR_LEAF_LIST : ATTR_NOTHROW_LEAF_LIST) |
285 | |
286 | /* Make sure 0 is not a legitimate builtin. */ |
287 | DEF_BUILTIN_STUB(BUILT_IN_NONE, (const char *)0) |
288 | |
289 | /* Category: math builtins. */ |
290 | DEF_LIB_BUILTIN (BUILT_IN_ACOS, "acos" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
291 | DEF_C99_C90RES_BUILTIN (BUILT_IN_ACOSF, "acosf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
292 | DEF_C99_BUILTIN (BUILT_IN_ACOSH, "acosh" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
293 | DEF_C99_BUILTIN (BUILT_IN_ACOSHF, "acoshf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
294 | DEF_C99_BUILTIN (BUILT_IN_ACOSHL, "acoshl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
295 | #define ACOSH_TYPE(F) BT_FN_##F##_##F |
296 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ACOSH, "acosh" , ACOSH_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
297 | DEF_C99_C90RES_BUILTIN (BUILT_IN_ACOSL, "acosl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
298 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ACOS, "acos" , ACOSH_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
299 | DEF_C11_BUILTIN (BUILT_IN_ALIGNED_ALLOC, "aligned_alloc" , BT_FN_PTR_SIZE_SIZE, ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST) |
300 | DEF_LIB_BUILTIN (BUILT_IN_ASIN, "asin" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
301 | DEF_C99_C90RES_BUILTIN (BUILT_IN_ASINF, "asinf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
302 | DEF_C99_BUILTIN (BUILT_IN_ASINH, "asinh" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) |
303 | DEF_C99_BUILTIN (BUILT_IN_ASINHF, "asinhf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) |
304 | DEF_C99_BUILTIN (BUILT_IN_ASINHL, "asinhl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
305 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ASINH, "asinh" , ACOSH_TYPE, ATTR_MATHFN_FPROUNDING) |
306 | DEF_C99_C90RES_BUILTIN (BUILT_IN_ASINL, "asinl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
307 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ASIN, "asin" , ACOSH_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
308 | #undef ACOSH_TYPE |
309 | DEF_LIB_BUILTIN (BUILT_IN_ATAN, "atan" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) |
310 | DEF_LIB_BUILTIN (BUILT_IN_ATAN2, "atan2" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
311 | DEF_C99_C90RES_BUILTIN (BUILT_IN_ATAN2F, "atan2f" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
312 | DEF_C99_C90RES_BUILTIN (BUILT_IN_ATAN2L, "atan2l" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
313 | #define ATAN2_TYPE(F) BT_FN_##F##_##F##_##F |
314 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ATAN2, "atan2" , ATAN2_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
315 | #undef ATAN2_TYPE |
316 | DEF_C99_C90RES_BUILTIN (BUILT_IN_ATANF, "atanf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) |
317 | DEF_C99_BUILTIN (BUILT_IN_ATANH, "atanh" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
318 | DEF_C99_BUILTIN (BUILT_IN_ATANHF, "atanhf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
319 | DEF_C99_BUILTIN (BUILT_IN_ATANHL, "atanhl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
320 | #define ATANH_TYPE(F) BT_FN_##F##_##F |
321 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ATANH, "atanh" , ATANH_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
322 | DEF_C99_C90RES_BUILTIN (BUILT_IN_ATANL, "atanl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
323 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ATAN, "atan" , ATANH_TYPE, ATTR_MATHFN_FPROUNDING) |
324 | DEF_C99_BUILTIN (BUILT_IN_CBRT, "cbrt" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) |
325 | DEF_C99_BUILTIN (BUILT_IN_CBRTF, "cbrtf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) |
326 | DEF_C99_BUILTIN (BUILT_IN_CBRTL, "cbrtl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
327 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CBRT, "cbrt" , ATANH_TYPE, ATTR_MATHFN_FPROUNDING) |
328 | #undef ATANH_TYPE |
329 | DEF_LIB_BUILTIN (BUILT_IN_CEIL, "ceil" , BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
330 | DEF_C99_C90RES_BUILTIN (BUILT_IN_CEILF, "ceilf" , BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
331 | DEF_C99_C90RES_BUILTIN (BUILT_IN_CEILL, "ceill" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
332 | #define CEIL_TYPE(F) BT_FN_##F##_##F |
333 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CEIL, "ceil" , CEIL_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
334 | #undef CEIL_TYPE |
335 | DEF_C99_BUILTIN (BUILT_IN_COPYSIGN, "copysign" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
336 | DEF_C99_BUILTIN (BUILT_IN_COPYSIGNF, "copysignf" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
337 | DEF_C99_BUILTIN (BUILT_IN_COPYSIGNL, "copysignl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
338 | #define COPYSIGN_TYPE(F) BT_FN_##F##_##F##_##F |
339 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_COPYSIGN, "copysign" , COPYSIGN_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
340 | #undef COPYSIGN_TYPE |
341 | DEF_LIB_BUILTIN (BUILT_IN_COS, "cos" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) |
342 | DEF_C99_C90RES_BUILTIN (BUILT_IN_COSF, "cosf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) |
343 | DEF_LIB_BUILTIN (BUILT_IN_COSH, "cosh" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
344 | DEF_C99_C90RES_BUILTIN (BUILT_IN_COSHF, "coshf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
345 | DEF_C99_C90RES_BUILTIN (BUILT_IN_COSHL, "coshl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
346 | #define COSH_TYPE(F) BT_FN_##F##_##F |
347 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_COSH, "cosh" , COSH_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
348 | DEF_C99_C90RES_BUILTIN (BUILT_IN_COSL, "cosl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
349 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_COS, "cos" , COSH_TYPE, ATTR_MATHFN_FPROUNDING) |
350 | DEF_EXT_LIB_BUILTIN (BUILT_IN_DREM, "drem" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
351 | DEF_EXT_LIB_BUILTIN (BUILT_IN_DREMF, "dremf" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
352 | DEF_EXT_LIB_BUILTIN (BUILT_IN_DREML, "dreml" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
353 | DEF_C99_BUILTIN (BUILT_IN_ERF, "erf" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) |
354 | DEF_C99_BUILTIN (BUILT_IN_ERFC, "erfc" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
355 | DEF_C99_BUILTIN (BUILT_IN_ERFCF, "erfcf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
356 | DEF_C99_BUILTIN (BUILT_IN_ERFCL, "erfcl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
357 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ERFC, "erfc" , COSH_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
358 | DEF_C99_BUILTIN (BUILT_IN_ERFF, "erff" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) |
359 | DEF_C99_BUILTIN (BUILT_IN_ERFL, "erfl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
360 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ERF, "erf" , COSH_TYPE, ATTR_MATHFN_FPROUNDING) |
361 | DEF_LIB_BUILTIN (BUILT_IN_EXP, "exp" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
362 | DEF_C23_BUILTIN (BUILT_IN_EXP10, "exp10" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
363 | DEF_C23_BUILTIN (BUILT_IN_EXP10F, "exp10f" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
364 | DEF_C23_BUILTIN (BUILT_IN_EXP10L, "exp10l" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
365 | DEF_C99_BUILTIN (BUILT_IN_EXP2, "exp2" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
366 | DEF_C99_BUILTIN (BUILT_IN_EXP2F, "exp2f" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
367 | DEF_C99_BUILTIN (BUILT_IN_EXP2L, "exp2l" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
368 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_EXP2, "exp2" , COSH_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
369 | DEF_C99_C90RES_BUILTIN (BUILT_IN_EXPF, "expf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
370 | DEF_C99_C90RES_BUILTIN (BUILT_IN_EXPL, "expl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
371 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_EXP, "exp" , COSH_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
372 | DEF_C99_BUILTIN (BUILT_IN_EXPM1, "expm1" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
373 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_EXPM1, "expm1" , COSH_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
374 | #undef COSH_TYPE |
375 | DEF_C99_BUILTIN (BUILT_IN_EXPM1F, "expm1f" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
376 | DEF_C99_BUILTIN (BUILT_IN_EXPM1L, "expm1l" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
377 | DEF_LIB_BUILTIN (BUILT_IN_FABS, "fabs" , BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
378 | DEF_C99_C90RES_BUILTIN (BUILT_IN_FABSF, "fabsf" , BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
379 | DEF_C99_C90RES_BUILTIN (BUILT_IN_FABSL, "fabsl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
380 | #define FABS_TYPE(F) BT_FN_##F##_##F |
381 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_FABS, "fabs" , FABS_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
382 | #undef FABS_TYPE |
383 | DEF_C23_BUILTIN (BUILT_IN_FABSD32, "fabsd32" , BT_FN_DFLOAT32_DFLOAT32, ATTR_CONST_NOTHROW_LEAF_LIST) |
384 | DEF_C23_BUILTIN (BUILT_IN_FABSD64, "fabsd64" , BT_FN_DFLOAT64_DFLOAT64, ATTR_CONST_NOTHROW_LEAF_LIST) |
385 | DEF_C23_BUILTIN (BUILT_IN_FABSD128, "fabsd128" , BT_FN_DFLOAT128_DFLOAT128, ATTR_CONST_NOTHROW_LEAF_LIST) |
386 | DEF_C99_BUILTIN (BUILT_IN_FDIM, "fdim" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
387 | DEF_C99_BUILTIN (BUILT_IN_FDIMF, "fdimf" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
388 | DEF_C99_BUILTIN (BUILT_IN_FDIML, "fdiml" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
389 | #define FDIM_TYPE(F) BT_FN_##F##_##F##_##F |
390 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_FDIM, "fdim" , FDIM_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
391 | #undef FDIM_TYPE |
392 | DEF_C99_BUILTIN (BUILT_IN_FECLEAREXCEPT, "feclearexcept" , BT_FN_INT_INT, ATTR_NOTHROW_LEAF_LIST) |
393 | DEF_C99_BUILTIN (BUILT_IN_FEGETENV, "fegetenv" , BT_FN_INT_FENV_T_PTR, ATTR_NOTHROW_LEAF_LIST) |
394 | DEF_C99_BUILTIN (BUILT_IN_FEGETEXCEPTFLAG, "fegetexceptflag" , BT_FN_INT_FEXCEPT_T_PTR_INT, ATTR_NOTHROW_LEAF_LIST) |
395 | DEF_C99_BUILTIN (BUILT_IN_FEGETROUND, "fegetround" , BT_FN_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
396 | DEF_C99_BUILTIN (BUILT_IN_FEHOLDEXCEPT, "feholdexcept" , BT_FN_INT_FENV_T_PTR, ATTR_NOTHROW_LEAF_LIST) |
397 | DEF_C99_BUILTIN (BUILT_IN_FERAISEEXCEPT, "feraiseexcept" , BT_FN_INT_INT, ATTR_NULL) |
398 | DEF_C99_BUILTIN (BUILT_IN_FESETENV, "fesetenv" , BT_FN_INT_CONST_FENV_T_PTR, ATTR_NOTHROW_LEAF_LIST) |
399 | DEF_C99_BUILTIN (BUILT_IN_FESETEXCEPTFLAG, "fesetexceptflag" , BT_FN_INT_CONST_FEXCEPT_T_PTR_INT, ATTR_NULL) |
400 | DEF_C99_BUILTIN (BUILT_IN_FESETROUND, "fesetround" , BT_FN_INT_INT, ATTR_NOTHROW_LEAF_LIST) |
401 | DEF_C99_BUILTIN (BUILT_IN_FETESTEXCEPT, "fetestexcept" , BT_FN_INT_INT, ATTR_NOTHROW_LEAF_LIST) |
402 | DEF_C99_BUILTIN (BUILT_IN_FEUPDATEENV, "feupdateenv" , BT_FN_INT_CONST_FENV_T_PTR, ATTR_NULL) |
403 | DEF_LIB_BUILTIN (BUILT_IN_FLOOR, "floor" , BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
404 | DEF_C99_C90RES_BUILTIN (BUILT_IN_FLOORF, "floorf" , BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
405 | DEF_C99_C90RES_BUILTIN (BUILT_IN_FLOORL, "floorl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
406 | #define FLOOR_TYPE(F) BT_FN_##F##_##F |
407 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_FLOOR, "floor" , FLOOR_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
408 | #undef FLOOR_TYPE |
409 | DEF_C99_BUILTIN (BUILT_IN_FMA, "fma" , BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) |
410 | DEF_C99_BUILTIN (BUILT_IN_FMAF, "fmaf" , BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) |
411 | DEF_C99_BUILTIN (BUILT_IN_FMAL, "fmal" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
412 | #define FMA_TYPE(F) BT_FN_##F##_##F##_##F##_##F |
413 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_FMA, "fma" , FMA_TYPE, ATTR_MATHFN_FPROUNDING) |
414 | #undef FMA_TYPE |
415 | DEF_C99_BUILTIN (BUILT_IN_FMAX, "fmax" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
416 | DEF_C99_BUILTIN (BUILT_IN_FMAXF, "fmaxf" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
417 | DEF_C99_BUILTIN (BUILT_IN_FMAXL, "fmaxl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
418 | #define FMAX_TYPE(F) BT_FN_##F##_##F##_##F |
419 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_FMAX, "fmax" , FMAX_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
420 | #undef FMAX_TYPE |
421 | DEF_C99_BUILTIN (BUILT_IN_FMIN, "fmin" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
422 | DEF_C99_BUILTIN (BUILT_IN_FMINF, "fminf" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
423 | DEF_C99_BUILTIN (BUILT_IN_FMINL, "fminl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
424 | #define FMIN_TYPE(F) BT_FN_##F##_##F##_##F |
425 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_FMIN, "fmin" , FMIN_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
426 | DEF_LIB_BUILTIN (BUILT_IN_FMOD, "fmod" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
427 | DEF_C99_C90RES_BUILTIN (BUILT_IN_FMODF, "fmodf" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
428 | DEF_C99_C90RES_BUILTIN (BUILT_IN_FMODL, "fmodl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
429 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_FMOD, "fmod" , FMIN_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
430 | #undef FMIN_TYPE |
431 | DEF_LIB_BUILTIN (BUILT_IN_FREXP, "frexp" , BT_FN_DOUBLE_DOUBLE_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
432 | DEF_C99_C90RES_BUILTIN (BUILT_IN_FREXPF, "frexpf" , BT_FN_FLOAT_FLOAT_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
433 | DEF_C99_C90RES_BUILTIN (BUILT_IN_FREXPL, "frexpl" , BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
434 | #define FREXP_TYPE(F) BT_FN_##F##_##F##_INTPTR |
435 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_FREXP, "frexp" , FREXP_TYPE, ATTR_MATHFN_FPROUNDING_STORE) |
436 | #undef FREXP_TYPE |
437 | DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMA, "gamma" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_STORE) |
438 | DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMAF, "gammaf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_STORE) |
439 | DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMAL, "gammal" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_STORE) |
440 | DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMA_R, "gamma_r" , BT_FN_DOUBLE_DOUBLE_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
441 | DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMAF_R, "gammaf_r" , BT_FN_FLOAT_FLOAT_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
442 | DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMAL_R, "gammal_r" , BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
443 | DEF_GCC_BUILTIN (BUILT_IN_HUGE_VAL, "huge_val" , BT_FN_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
444 | DEF_GCC_BUILTIN (BUILT_IN_HUGE_VALF, "huge_valf" , BT_FN_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
445 | DEF_GCC_BUILTIN (BUILT_IN_HUGE_VALL, "huge_vall" , BT_FN_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
446 | #define HUGE_VAL_TYPE(F) BT_FN_##F |
447 | DEF_GCC_FLOATN_NX_BUILTINS (BUILT_IN_HUGE_VAL, "huge_val" , HUGE_VAL_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
448 | #undef HUGE_VAL_TYPE |
449 | DEF_C99_BUILTIN (BUILT_IN_HYPOT, "hypot" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
450 | DEF_C99_BUILTIN (BUILT_IN_HYPOTF, "hypotf" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
451 | DEF_C99_BUILTIN (BUILT_IN_HYPOTL, "hypotl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
452 | #define HYPOT_TYPE(F) BT_FN_##F##_##F##_##F |
453 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_HYPOT, "hypot" , HYPOT_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
454 | #undef HYPOT_TYPE |
455 | DEF_GCC_BUILTIN (BUILT_IN_ICEIL, "iceil" , BT_FN_INT_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
456 | DEF_GCC_BUILTIN (BUILT_IN_ICEILF, "iceilf" , BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
457 | DEF_GCC_BUILTIN (BUILT_IN_ICEILL, "iceill" , BT_FN_INT_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
458 | DEF_GCC_BUILTIN (BUILT_IN_IFLOOR, "ifloor" , BT_FN_INT_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
459 | DEF_GCC_BUILTIN (BUILT_IN_IFLOORF, "ifloorf" , BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
460 | DEF_GCC_BUILTIN (BUILT_IN_IFLOORL, "ifloorl" , BT_FN_INT_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
461 | DEF_C99_BUILTIN (BUILT_IN_ILOGB, "ilogb" , BT_FN_INT_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
462 | DEF_C99_BUILTIN (BUILT_IN_ILOGBF, "ilogbf" , BT_FN_INT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
463 | DEF_C99_BUILTIN (BUILT_IN_ILOGBL, "ilogbl" , BT_FN_INT_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
464 | #define ILOGB_TYPE(F) BT_FN_INT_##F |
465 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ILOGB, "ilogb" , ILOGB_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
466 | #undef ILOGB_TYPE |
467 | DEF_GCC_BUILTIN (BUILT_IN_INF, "inf" , BT_FN_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
468 | DEF_GCC_BUILTIN (BUILT_IN_INFF, "inff" , BT_FN_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
469 | DEF_GCC_BUILTIN (BUILT_IN_INFL, "infl" , BT_FN_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
470 | #define INF_TYPE(F) BT_FN_##F |
471 | DEF_GCC_FLOATN_NX_BUILTINS (BUILT_IN_INF, "inf" , INF_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
472 | #undef INF_TYPE |
473 | DEF_GCC_BUILTIN (BUILT_IN_INFD32, "infd32" , BT_FN_DFLOAT32, ATTR_CONST_NOTHROW_LEAF_LIST) |
474 | DEF_GCC_BUILTIN (BUILT_IN_INFD64, "infd64" , BT_FN_DFLOAT64, ATTR_CONST_NOTHROW_LEAF_LIST) |
475 | DEF_GCC_BUILTIN (BUILT_IN_INFD128, "infd128" , BT_FN_DFLOAT128, ATTR_CONST_NOTHROW_LEAF_LIST) |
476 | DEF_GCC_BUILTIN (BUILT_IN_IRINT, "irint" , BT_FN_INT_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
477 | DEF_GCC_BUILTIN (BUILT_IN_IRINTF, "irintf" , BT_FN_INT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
478 | DEF_GCC_BUILTIN (BUILT_IN_IRINTL, "irintl" , BT_FN_INT_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
479 | DEF_GCC_BUILTIN (BUILT_IN_IROUND, "iround" , BT_FN_INT_DOUBLE, ATTR_MATHFN_ERRNO) |
480 | DEF_GCC_BUILTIN (BUILT_IN_IROUNDF, "iroundf" , BT_FN_INT_FLOAT, ATTR_MATHFN_ERRNO) |
481 | DEF_GCC_BUILTIN (BUILT_IN_IROUNDL, "iroundl" , BT_FN_INT_LONGDOUBLE, ATTR_MATHFN_ERRNO) |
482 | DEF_EXT_LIB_BUILTIN (BUILT_IN_J0, "j0" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
483 | DEF_EXT_LIB_BUILTIN (BUILT_IN_J0F, "j0f" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
484 | DEF_EXT_LIB_BUILTIN (BUILT_IN_J0L, "j0l" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
485 | DEF_EXT_LIB_BUILTIN (BUILT_IN_J1, "j1" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
486 | DEF_EXT_LIB_BUILTIN (BUILT_IN_J1F, "j1f" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
487 | DEF_EXT_LIB_BUILTIN (BUILT_IN_J1L, "j1l" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
488 | DEF_EXT_LIB_BUILTIN (BUILT_IN_JN, "jn" , BT_FN_DOUBLE_INT_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
489 | DEF_EXT_LIB_BUILTIN (BUILT_IN_JNF, "jnf" , BT_FN_FLOAT_INT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
490 | DEF_EXT_LIB_BUILTIN (BUILT_IN_JNL, "jnl" , BT_FN_LONGDOUBLE_INT_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
491 | DEF_GCC_BUILTIN (BUILT_IN_LCEIL, "lceil" , BT_FN_LONG_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
492 | DEF_GCC_BUILTIN (BUILT_IN_LCEILF, "lceilf" , BT_FN_LONG_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
493 | DEF_GCC_BUILTIN (BUILT_IN_LCEILL, "lceill" , BT_FN_LONG_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
494 | DEF_LIB_BUILTIN (BUILT_IN_LDEXP, "ldexp" , BT_FN_DOUBLE_DOUBLE_INT, ATTR_MATHFN_FPROUNDING_ERRNO) |
495 | DEF_C99_C90RES_BUILTIN (BUILT_IN_LDEXPF, "ldexpf" , BT_FN_FLOAT_FLOAT_INT, ATTR_MATHFN_FPROUNDING_ERRNO) |
496 | DEF_C99_C90RES_BUILTIN (BUILT_IN_LDEXPL, "ldexpl" , BT_FN_LONGDOUBLE_LONGDOUBLE_INT, ATTR_MATHFN_FPROUNDING_ERRNO) |
497 | #define LDEXP_TYPE(F) BT_FN_##F##_##F##_INT |
498 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_LDEXP, "ldexp" , LDEXP_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
499 | #undef LDEXP_TYPE |
500 | DEF_GCC_BUILTIN (BUILT_IN_LFLOOR, "lfloor" , BT_FN_LONG_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
501 | DEF_GCC_BUILTIN (BUILT_IN_LFLOORF, "lfloorf" , BT_FN_LONG_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
502 | DEF_GCC_BUILTIN (BUILT_IN_LFLOORL, "lfloorl" , BT_FN_LONG_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
503 | DEF_C99_BUILTIN (BUILT_IN_LGAMMA, "lgamma" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_STORE) |
504 | DEF_C99_BUILTIN (BUILT_IN_LGAMMAF, "lgammaf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_STORE) |
505 | DEF_C99_BUILTIN (BUILT_IN_LGAMMAL, "lgammal" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_STORE) |
506 | #define LGAMMA_TYPE(F) BT_FN_##F##_##F |
507 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_LGAMMA, "lgamma" , LGAMMA_TYPE, ATTR_MATHFN_FPROUNDING_STORE) |
508 | #undef LGAMMA_TYPE |
509 | DEF_EXT_LIB_BUILTIN (BUILT_IN_LGAMMA_R, "lgamma_r" , BT_FN_DOUBLE_DOUBLE_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
510 | DEF_EXT_LIB_BUILTIN (BUILT_IN_LGAMMAF_R, "lgammaf_r" , BT_FN_FLOAT_FLOAT_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
511 | DEF_EXT_LIB_BUILTIN (BUILT_IN_LGAMMAL_R, "lgammal_r" , BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
512 | DEF_GCC_BUILTIN (BUILT_IN_LLCEIL, "llceil" , BT_FN_LONGLONG_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
513 | DEF_GCC_BUILTIN (BUILT_IN_LLCEILF, "llceilf" , BT_FN_LONGLONG_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
514 | DEF_GCC_BUILTIN (BUILT_IN_LLCEILL, "llceill" , BT_FN_LONGLONG_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
515 | DEF_GCC_BUILTIN (BUILT_IN_LLFLOOR, "llfloor" , BT_FN_LONGLONG_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
516 | DEF_GCC_BUILTIN (BUILT_IN_LLFLOORF, "llfloorf" , BT_FN_LONGLONG_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
517 | DEF_GCC_BUILTIN (BUILT_IN_LLFLOORL, "llfloorl" , BT_FN_LONGLONG_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
518 | DEF_C99_BUILTIN (BUILT_IN_LLRINT, "llrint" , BT_FN_LONGLONG_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
519 | DEF_C99_BUILTIN (BUILT_IN_LLRINTF, "llrintf" , BT_FN_LONGLONG_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
520 | DEF_C99_BUILTIN (BUILT_IN_LLRINTL, "llrintl" , BT_FN_LONGLONG_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
521 | #define LLRINT_TYPE(F) BT_FN_LONGLONG_##F |
522 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_LLRINT, "llrint" , LLRINT_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
523 | DEF_C99_BUILTIN (BUILT_IN_LLROUND, "llround" , BT_FN_LONGLONG_DOUBLE, ATTR_MATHFN_ERRNO) |
524 | DEF_C99_BUILTIN (BUILT_IN_LLROUNDF, "llroundf" , BT_FN_LONGLONG_FLOAT, ATTR_MATHFN_ERRNO) |
525 | DEF_C99_BUILTIN (BUILT_IN_LLROUNDL, "llroundl" , BT_FN_LONGLONG_LONGDOUBLE, ATTR_MATHFN_ERRNO) |
526 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_LLROUND, "llround" , LLRINT_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
527 | #undef LLRINT_TYPE |
528 | DEF_LIB_BUILTIN (BUILT_IN_LOG, "log" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
529 | DEF_LIB_BUILTIN (BUILT_IN_LOG10, "log10" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
530 | DEF_C99_C90RES_BUILTIN (BUILT_IN_LOG10F, "log10f" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
531 | DEF_C99_C90RES_BUILTIN (BUILT_IN_LOG10L, "log10l" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
532 | #define LOG10_TYPE(F) BT_FN_##F##_##F |
533 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_LOG10, "log10" , LOG10_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
534 | DEF_C99_BUILTIN (BUILT_IN_LOG1P, "log1p" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
535 | DEF_C99_BUILTIN (BUILT_IN_LOG1PF, "log1pf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
536 | DEF_C99_BUILTIN (BUILT_IN_LOG1PL, "log1pl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
537 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_LOG1P, "log1p" , LOG10_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
538 | DEF_C99_BUILTIN (BUILT_IN_LOG2, "log2" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
539 | DEF_C99_BUILTIN (BUILT_IN_LOG2F, "log2f" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
540 | DEF_C99_BUILTIN (BUILT_IN_LOG2L, "log2l" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
541 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_LOG2, "log2" , LOG10_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
542 | DEF_C99_BUILTIN (BUILT_IN_LOGB, "logb" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
543 | DEF_C99_BUILTIN (BUILT_IN_LOGBF, "logbf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
544 | DEF_C99_BUILTIN (BUILT_IN_LOGBL, "logbl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
545 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_LOGB, "logb" , LOG10_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
546 | DEF_C99_C90RES_BUILTIN (BUILT_IN_LOGF, "logf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
547 | DEF_C99_C90RES_BUILTIN (BUILT_IN_LOGL, "logl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
548 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_LOG, "log" , LOG10_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
549 | #undef LOG10_TYPE |
550 | DEF_C99_BUILTIN (BUILT_IN_LRINT, "lrint" , BT_FN_LONG_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
551 | DEF_C99_BUILTIN (BUILT_IN_LRINTF, "lrintf" , BT_FN_LONG_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
552 | DEF_C99_BUILTIN (BUILT_IN_LRINTL, "lrintl" , BT_FN_LONG_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
553 | #define LRINT_TYPE(F) BT_FN_LONG_##F |
554 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_LRINT, "lrint" , LRINT_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
555 | DEF_C99_BUILTIN (BUILT_IN_LROUND, "lround" , BT_FN_LONG_DOUBLE, ATTR_MATHFN_ERRNO) |
556 | DEF_C99_BUILTIN (BUILT_IN_LROUNDF, "lroundf" , BT_FN_LONG_FLOAT, ATTR_MATHFN_ERRNO) |
557 | DEF_C99_BUILTIN (BUILT_IN_LROUNDL, "lroundl" , BT_FN_LONG_LONGDOUBLE, ATTR_MATHFN_ERRNO) |
558 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_LROUND, "lround" , LRINT_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
559 | #undef LRINT_TYPE |
560 | DEF_LIB_BUILTIN (BUILT_IN_MODF, "modf" , BT_FN_DOUBLE_DOUBLE_DOUBLEPTR, ATTR_MATHFN_FPROUNDING_STORE) |
561 | DEF_C99_C90RES_BUILTIN (BUILT_IN_MODFF, "modff" , BT_FN_FLOAT_FLOAT_FLOATPTR, ATTR_MATHFN_FPROUNDING_STORE) |
562 | DEF_C99_C90RES_BUILTIN (BUILT_IN_MODFL, "modfl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR, ATTR_MATHFN_FPROUNDING_STORE) |
563 | #define MODF_TYPE(F) BT_FN_##F##_##F##_##F##PTR |
564 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_MODF, "modf" , MODF_TYPE, ATTR_MATHFN_FPROUNDING_STORE) |
565 | #undef MODF_TYPE |
566 | DEF_C99_BUILTIN (BUILT_IN_NAN, "nan" , BT_FN_DOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
567 | DEF_C99_BUILTIN (BUILT_IN_NANF, "nanf" , BT_FN_FLOAT_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
568 | DEF_C99_BUILTIN (BUILT_IN_NANL, "nanl" , BT_FN_LONGDOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
569 | #define NAN_TYPE(F) BT_FN_##F##_CONST_STRING |
570 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_NAN, "nan" , NAN_TYPE, ATTR_CONST_NOTHROW_NONNULL) |
571 | DEF_C23_BUILTIN (BUILT_IN_NAND32, "nand32" , BT_FN_DFLOAT32_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
572 | DEF_C23_BUILTIN (BUILT_IN_NAND64, "nand64" , BT_FN_DFLOAT64_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
573 | DEF_C23_BUILTIN (BUILT_IN_NAND128, "nand128" , BT_FN_DFLOAT128_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
574 | DEF_GCC_BUILTIN (BUILT_IN_NANS, "nans" , BT_FN_DOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
575 | DEF_GCC_BUILTIN (BUILT_IN_NANSF, "nansf" , BT_FN_FLOAT_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
576 | DEF_GCC_BUILTIN (BUILT_IN_NANSL, "nansl" , BT_FN_LONGDOUBLE_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
577 | DEF_GCC_FLOATN_NX_BUILTINS (BUILT_IN_NANS, "nans" , NAN_TYPE, ATTR_CONST_NOTHROW_NONNULL) |
578 | #undef NAN_TYPE |
579 | DEF_GCC_BUILTIN (BUILT_IN_NANSF16B, "nansf16b" , BT_FN_BFLOAT16_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
580 | DEF_GCC_BUILTIN (BUILT_IN_NANSD32, "nansd32" , BT_FN_DFLOAT32_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
581 | DEF_GCC_BUILTIN (BUILT_IN_NANSD64, "nansd64" , BT_FN_DFLOAT64_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
582 | DEF_GCC_BUILTIN (BUILT_IN_NANSD128, "nansd128" , BT_FN_DFLOAT128_CONST_STRING, ATTR_CONST_NOTHROW_NONNULL) |
583 | DEF_C99_BUILTIN (BUILT_IN_NEARBYINT, "nearbyint" , BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
584 | DEF_C99_BUILTIN (BUILT_IN_NEARBYINTF, "nearbyintf" , BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
585 | DEF_C99_BUILTIN (BUILT_IN_NEARBYINTL, "nearbyintl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
586 | #define NEARBYINT_TYPE(F) BT_FN_##F##_##F |
587 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_NEARBYINT, "nearbyint" , NEARBYINT_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
588 | #undef NEARBYINT_TYPE |
589 | DEF_C99_BUILTIN (BUILT_IN_NEXTAFTER, "nextafter" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_ERRNO) |
590 | DEF_C99_BUILTIN (BUILT_IN_NEXTAFTERF, "nextafterf" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_ERRNO) |
591 | DEF_C99_BUILTIN (BUILT_IN_NEXTAFTERL, "nextafterl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_ERRNO) |
592 | #define NEXTAFTER_TYPE(F) BT_FN_##F##_##F##_##F |
593 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_NEXTAFTER, "nextafter" , NEXTAFTER_TYPE, ATTR_MATHFN_ERRNO) |
594 | DEF_GCC_BUILTIN (BUILT_IN_NEXTAFTERF16B, "nextafterf16b" , BT_FN_BFLOAT16_BFLOAT16_BFLOAT16, ATTR_MATHFN_ERRNO) |
595 | DEF_C99_BUILTIN (BUILT_IN_NEXTTOWARD, "nexttoward" , BT_FN_DOUBLE_DOUBLE_LONGDOUBLE, ATTR_MATHFN_ERRNO) |
596 | DEF_C99_BUILTIN (BUILT_IN_NEXTTOWARDF, "nexttowardf" , BT_FN_FLOAT_FLOAT_LONGDOUBLE, ATTR_MATHFN_ERRNO) |
597 | DEF_C99_BUILTIN (BUILT_IN_NEXTTOWARDL, "nexttowardl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_ERRNO) |
598 | DEF_LIB_BUILTIN (BUILT_IN_POW, "pow" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
599 | DEF_EXT_LIB_BUILTIN (BUILT_IN_POW10, "pow10" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
600 | DEF_EXT_LIB_BUILTIN (BUILT_IN_POW10F, "pow10f" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
601 | DEF_EXT_LIB_BUILTIN (BUILT_IN_POW10L, "pow10l" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
602 | DEF_C99_C90RES_BUILTIN (BUILT_IN_POWF, "powf" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
603 | DEF_GCC_BUILTIN (BUILT_IN_POWI, "powi" , BT_FN_DOUBLE_DOUBLE_INT, ATTR_MATHFN_FPROUNDING) |
604 | DEF_GCC_BUILTIN (BUILT_IN_POWIF, "powif" , BT_FN_FLOAT_FLOAT_INT, ATTR_MATHFN_FPROUNDING) |
605 | DEF_GCC_BUILTIN (BUILT_IN_POWIL, "powil" , BT_FN_LONGDOUBLE_LONGDOUBLE_INT, ATTR_MATHFN_FPROUNDING) |
606 | DEF_C99_C90RES_BUILTIN (BUILT_IN_POWL, "powl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
607 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_POW, "pow" , NEXTAFTER_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
608 | DEF_C99_BUILTIN (BUILT_IN_REMAINDER, "remainder" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
609 | DEF_C99_BUILTIN (BUILT_IN_REMAINDERF, "remainderf" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
610 | DEF_C99_BUILTIN (BUILT_IN_REMAINDERL, "remainderl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
611 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_REMAINDER, "remainder" , NEXTAFTER_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
612 | #undef NEXTAFTER_TYPE |
613 | DEF_C99_BUILTIN (BUILT_IN_REMQUO, "remquo" , BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
614 | DEF_C99_BUILTIN (BUILT_IN_REMQUOF, "remquof" , BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
615 | DEF_C99_BUILTIN (BUILT_IN_REMQUOL, "remquol" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) |
616 | #define REMQUO_TYPE(F) BT_FN_##F##_##F##_##F##_INTPTR |
617 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_REMQUO, "remquo" , REMQUO_TYPE, ATTR_MATHFN_FPROUNDING_STORE) |
618 | #undef REMQUO_TYPE |
619 | DEF_C99_BUILTIN (BUILT_IN_RINT, "rint" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) |
620 | DEF_C99_BUILTIN (BUILT_IN_RINTF, "rintf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) |
621 | DEF_C99_BUILTIN (BUILT_IN_RINTL, "rintl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
622 | #define RINT_TYPE(F) BT_FN_##F##_##F |
623 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_RINT, "rint" , RINT_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
624 | #undef RINT_TYPE |
625 | DEF_C23_BUILTIN (BUILT_IN_ROUNDEVEN, "roundeven" , BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
626 | DEF_C23_BUILTIN (BUILT_IN_ROUNDEVENF, "roundevenf" , BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
627 | DEF_C23_BUILTIN (BUILT_IN_ROUNDEVENL, "roundevenl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
628 | DEF_C99_BUILTIN (BUILT_IN_ROUND, "round" , BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
629 | DEF_C99_BUILTIN (BUILT_IN_ROUNDF, "roundf" , BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
630 | DEF_C99_BUILTIN (BUILT_IN_ROUNDL, "roundl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
631 | #define ROUND_TYPE(F) BT_FN_##F##_##F |
632 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ROUND, "round" , ROUND_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
633 | #undef ROUND_TYPE |
634 | #define ROUNDEVEN_TYPE(F) BT_FN_##F##_##F |
635 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ROUNDEVEN, "roundeven" , ROUNDEVEN_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
636 | #undef ROUNDEVEN_TYPE |
637 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SCALB, "scalb" , BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
638 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SCALBF, "scalbf" , BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
639 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SCALBL, "scalbl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
640 | DEF_C99_BUILTIN (BUILT_IN_SCALBLN, "scalbln" , BT_FN_DOUBLE_DOUBLE_LONG, ATTR_MATHFN_FPROUNDING_ERRNO) |
641 | DEF_C99_BUILTIN (BUILT_IN_SCALBLNF, "scalblnf" , BT_FN_FLOAT_FLOAT_LONG, ATTR_MATHFN_FPROUNDING_ERRNO) |
642 | DEF_C99_BUILTIN (BUILT_IN_SCALBLNL, "scalblnl" , BT_FN_LONGDOUBLE_LONGDOUBLE_LONG, ATTR_MATHFN_FPROUNDING_ERRNO) |
643 | #define SCALBLN_TYPE(F) BT_FN_##F##_##F##_LONG |
644 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_SCALBLN, "scalbln" , SCALBLN_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
645 | #undef SCALBLN_TYPE |
646 | DEF_C99_BUILTIN (BUILT_IN_SCALBN, "scalbn" , BT_FN_DOUBLE_DOUBLE_INT, ATTR_MATHFN_FPROUNDING_ERRNO) |
647 | DEF_C99_BUILTIN (BUILT_IN_SCALBNF, "scalbnf" , BT_FN_FLOAT_FLOAT_INT, ATTR_MATHFN_FPROUNDING_ERRNO) |
648 | DEF_C99_BUILTIN (BUILT_IN_SCALBNL, "scalbnl" , BT_FN_LONGDOUBLE_LONGDOUBLE_INT, ATTR_MATHFN_FPROUNDING_ERRNO) |
649 | #define SCALBN_TYPE(F) BT_FN_##F##_##F##_INT |
650 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_SCALBN, "scalbn" , SCALBN_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
651 | #undef SCALBN_TYPE |
652 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNBIT, "signbit" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
653 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNBITF, "signbitf" , BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
654 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNBITL, "signbitl" , BT_FN_INT_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
655 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNBITD32, "signbitd32" , BT_FN_INT_DFLOAT32, ATTR_CONST_NOTHROW_LEAF_LIST) |
656 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNBITD64, "signbitd64" , BT_FN_INT_DFLOAT64, ATTR_CONST_NOTHROW_LEAF_LIST) |
657 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNBITD128, "signbitd128" , BT_FN_INT_DFLOAT128, ATTR_CONST_NOTHROW_LEAF_LIST) |
658 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNIFICAND, "significand" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
659 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNIFICANDF, "significandf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
660 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNIFICANDL, "significandl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
661 | DEF_LIB_BUILTIN (BUILT_IN_SIN, "sin" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) |
662 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SINCOS, "sincos" , BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR, ATTR_MATHFN_FPROUNDING_STORE) |
663 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SINCOSF, "sincosf" , BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR, ATTR_MATHFN_FPROUNDING_STORE) |
664 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SINCOSL, "sincosl" , BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR, ATTR_MATHFN_FPROUNDING_STORE) |
665 | DEF_C99_C90RES_BUILTIN (BUILT_IN_SINF, "sinf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) |
666 | DEF_LIB_BUILTIN (BUILT_IN_SINH, "sinh" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
667 | DEF_C99_C90RES_BUILTIN (BUILT_IN_SINHF, "sinhf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
668 | DEF_C99_C90RES_BUILTIN (BUILT_IN_SINHL, "sinhl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
669 | #define SINH_TYPE(F) BT_FN_##F##_##F |
670 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_SINH, "sinh" , SINH_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
671 | DEF_C99_C90RES_BUILTIN (BUILT_IN_SINL, "sinl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
672 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_SIN, "sin" , SINH_TYPE, ATTR_MATHFN_FPROUNDING) |
673 | #undef SINH_TYPE |
674 | DEF_LIB_BUILTIN (BUILT_IN_SQRT, "sqrt" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
675 | DEF_C99_C90RES_BUILTIN (BUILT_IN_SQRTF, "sqrtf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
676 | DEF_C99_C90RES_BUILTIN (BUILT_IN_SQRTL, "sqrtl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
677 | #define SQRT_TYPE(F) BT_FN_##F##_##F |
678 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_SQRT, "sqrt" , SQRT_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
679 | DEF_LIB_BUILTIN (BUILT_IN_TAN, "tan" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) |
680 | DEF_C99_C90RES_BUILTIN (BUILT_IN_TANF, "tanf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) |
681 | DEF_LIB_BUILTIN (BUILT_IN_TANH, "tanh" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) |
682 | DEF_C99_C90RES_BUILTIN (BUILT_IN_TANHF, "tanhf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) |
683 | DEF_C99_C90RES_BUILTIN (BUILT_IN_TANHL, "tanhl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
684 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_TANH, "tanh" , SQRT_TYPE, ATTR_MATHFN_FPROUNDING) |
685 | DEF_C99_C90RES_BUILTIN (BUILT_IN_TANL, "tanl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
686 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_TAN, "tan" , SQRT_TYPE, ATTR_MATHFN_FPROUNDING) |
687 | DEF_C99_BUILTIN (BUILT_IN_TGAMMA, "tgamma" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
688 | DEF_C99_BUILTIN (BUILT_IN_TGAMMAF, "tgammaf" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
689 | DEF_C99_BUILTIN (BUILT_IN_TGAMMAL, "tgammal" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
690 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_TGAMMA, "tgamma" , SQRT_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO) |
691 | #undef SQRT_TYPE |
692 | DEF_C99_BUILTIN (BUILT_IN_TRUNC, "trunc" , BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
693 | DEF_C99_BUILTIN (BUILT_IN_TRUNCF, "truncf" , BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
694 | DEF_C99_BUILTIN (BUILT_IN_TRUNCL, "truncl" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
695 | #define TRUNC_TYPE(F) BT_FN_##F##_##F |
696 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_TRUNC, "trunc" , TRUNC_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
697 | #undef TRUNC_TYPE |
698 | DEF_EXT_LIB_BUILTIN (BUILT_IN_Y0, "y0" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
699 | DEF_EXT_LIB_BUILTIN (BUILT_IN_Y0F, "y0f" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
700 | DEF_EXT_LIB_BUILTIN (BUILT_IN_Y0L, "y0l" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
701 | DEF_EXT_LIB_BUILTIN (BUILT_IN_Y1, "y1" , BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
702 | DEF_EXT_LIB_BUILTIN (BUILT_IN_Y1F, "y1f" , BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
703 | DEF_EXT_LIB_BUILTIN (BUILT_IN_Y1L, "y1l" , BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
704 | DEF_EXT_LIB_BUILTIN (BUILT_IN_YN, "yn" , BT_FN_DOUBLE_INT_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
705 | DEF_EXT_LIB_BUILTIN (BUILT_IN_YNF, "ynf" , BT_FN_FLOAT_INT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) |
706 | DEF_EXT_LIB_BUILTIN (BUILT_IN_YNL, "ynl" , BT_FN_LONGDOUBLE_INT_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) |
707 | |
708 | /* Category: _Complex math builtins. */ |
709 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CABS, "cabs" , BT_FN_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
710 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CABSF, "cabsf" , BT_FN_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
711 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CABSL, "cabsl" , BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
712 | #define CABS_TYPE(F) BT_FN_##F##_COMPLEX_##F |
713 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CABS, "cabs" , CABS_TYPE, ATTR_MATHFN_FPROUNDING) |
714 | #undef CABS_TYPE |
715 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CACOS, "cacos" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
716 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CACOSF, "cacosf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
717 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CACOSH, "cacosh" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
718 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CACOSHF, "cacoshf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
719 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CACOSHL, "cacoshl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
720 | #define CACOSH_TYPE(F) BT_FN_COMPLEX_##F##_COMPLEX_##F |
721 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CACOSH, "cacosh" , CACOSH_TYPE, ATTR_MATHFN_FPROUNDING) |
722 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CACOSL, "cacosl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
723 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CACOS, "cacos" , CACOSH_TYPE, ATTR_MATHFN_FPROUNDING) |
724 | #undef CACOSH_TYPE |
725 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CARG, "carg" , BT_FN_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
726 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CARGF, "cargf" , BT_FN_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
727 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CARGL, "cargl" , BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
728 | #define CARG_TYPE(F) BT_FN_##F##_COMPLEX_##F |
729 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CARG, "carg" , CARG_TYPE, ATTR_MATHFN_FPROUNDING) |
730 | #undef CARG_TYPE |
731 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CASIN, "casin" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
732 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CASINF, "casinf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
733 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CASINH, "casinh" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
734 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CASINHF, "casinhf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
735 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CASINHL, "casinhl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
736 | #define CASINH_TYPE(F) BT_FN_COMPLEX_##F##_COMPLEX_##F |
737 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CASINH, "casinh" , CASINH_TYPE, ATTR_MATHFN_FPROUNDING) |
738 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CASINL, "casinl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
739 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CASIN, "casin" , CASINH_TYPE, ATTR_MATHFN_FPROUNDING) |
740 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CATAN, "catan" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
741 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CATANF, "catanf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
742 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CATANH, "catanh" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
743 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CATANHF, "catanhf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
744 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CATANHL, "catanhl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
745 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CATANH, "catanh" , CASINH_TYPE, ATTR_MATHFN_FPROUNDING) |
746 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CATANL, "catanl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
747 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CATAN, "catan" , CASINH_TYPE, ATTR_MATHFN_FPROUNDING) |
748 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CCOS, "ccos" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
749 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CCOSF, "ccosf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
750 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CCOSH, "ccosh" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
751 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CCOSHF, "ccoshf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
752 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CCOSHL, "ccoshl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
753 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CCOSH, "ccosh" , CASINH_TYPE, ATTR_MATHFN_FPROUNDING) |
754 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CCOSL, "ccosl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
755 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CCOS, "ccos" , CASINH_TYPE, ATTR_MATHFN_FPROUNDING) |
756 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CEXP, "cexp" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
757 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CEXPF, "cexpf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
758 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CEXPL, "cexpl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
759 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CEXP, "cexp" , CASINH_TYPE, ATTR_MATHFN_FPROUNDING) |
760 | DEF_GCC_BUILTIN (BUILT_IN_CEXPI, "cexpi" , BT_FN_COMPLEX_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) |
761 | DEF_GCC_BUILTIN (BUILT_IN_CEXPIF, "cexpif" , BT_FN_COMPLEX_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) |
762 | DEF_GCC_BUILTIN (BUILT_IN_CEXPIL, "cexpil" , BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
763 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CIMAG, "cimag" , BT_FN_DOUBLE_COMPLEX_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
764 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CIMAGF, "cimagf" , BT_FN_FLOAT_COMPLEX_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
765 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CIMAGL, "cimagl" , BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
766 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CLOG, "clog" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
767 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CLOGF, "clogf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
768 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CLOGL, "clogl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
769 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CLOG, "clog" , CASINH_TYPE, ATTR_MATHFN_FPROUNDING) |
770 | #undef CASINH_TYPE |
771 | DEF_EXT_C99RES_BUILTIN (BUILT_IN_CLOG10, "clog10" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
772 | DEF_EXT_C99RES_BUILTIN (BUILT_IN_CLOG10F, "clog10f" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
773 | DEF_EXT_C99RES_BUILTIN (BUILT_IN_CLOG10L, "clog10l" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
774 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CONJ, "conj" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
775 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CONJF, "conjf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
776 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CONJL, "conjl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
777 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CPOW, "cpow" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
778 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CPOWF, "cpowf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
779 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CPOWL, "cpowl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
780 | #define CPOW_TYPE(F) BT_FN_COMPLEX_##F##_COMPLEX_##F##_COMPLEX_##F |
781 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CPOW, "cpow" , CPOW_TYPE, ATTR_MATHFN_FPROUNDING) |
782 | #undef CPOW_TYPE |
783 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CPROJ, "cproj" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
784 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CPROJF, "cprojf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
785 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CPROJL, "cprojl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
786 | #define CPROJ_TYPE(F) BT_FN_COMPLEX_##F##_COMPLEX_##F |
787 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CPROJ, "cproj" , CPROJ_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST) |
788 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CREAL, "creal" , BT_FN_DOUBLE_COMPLEX_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
789 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CREALF, "crealf" , BT_FN_FLOAT_COMPLEX_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
790 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CREALL, "creall" , BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
791 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CSIN, "csin" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
792 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CSINF, "csinf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
793 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CSINH, "csinh" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
794 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CSINHF, "csinhf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
795 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CSINHL, "csinhl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
796 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CSINH, "csinh" , CPROJ_TYPE, ATTR_MATHFN_FPROUNDING) |
797 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CSINL, "csinl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
798 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CSIN, "csin" , CPROJ_TYPE, ATTR_MATHFN_FPROUNDING) |
799 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CSQRT, "csqrt" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
800 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CSQRTF, "csqrtf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
801 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CSQRTL, "csqrtl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
802 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CSQRT, "csqrt" , CPROJ_TYPE, ATTR_MATHFN_FPROUNDING) |
803 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CTAN, "ctan" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
804 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CTANF, "ctanf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
805 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CTANH, "ctanh" , BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, ATTR_MATHFN_FPROUNDING) |
806 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CTANHF, "ctanhf" , BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, ATTR_MATHFN_FPROUNDING) |
807 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CTANHL, "ctanhl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
808 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CTANH, "ctanh" , CPROJ_TYPE, ATTR_MATHFN_FPROUNDING) |
809 | DEF_C99_COMPL_BUILTIN (BUILT_IN_CTANL, "ctanl" , BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) |
810 | DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CTAN, "ctan" , CPROJ_TYPE, ATTR_MATHFN_FPROUNDING) |
811 | #undef CPROJ_TYPE |
812 | |
813 | /* Category: string/memory builtins. */ |
814 | DEF_EXT_LIB_BUILTIN (BUILT_IN_BCMP, "bcmp" , BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
815 | DEF_EXT_LIB_BUILTIN (BUILT_IN_BCOPY, "bcopy" , BT_FN_VOID_CONST_PTR_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
816 | DEF_EXT_LIB_BUILTIN (BUILT_IN_BZERO, "bzero" , BT_FN_VOID_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
817 | DEF_EXT_LIB_BUILTIN (BUILT_IN_INDEX, "index" , BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
818 | DEF_LIB_BUILTIN (BUILT_IN_MEMCHR, "memchr" , BT_FN_PTR_CONST_PTR_INT_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
819 | DEF_LIB_BUILTIN (BUILT_IN_MEMCMP, "memcmp" , BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
820 | DEF_LIB_BUILTIN (BUILT_IN_MEMCPY, "memcpy" , BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
821 | DEF_LIB_BUILTIN (BUILT_IN_MEMMOVE, "memmove" , BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
822 | DEF_EXT_LIB_BUILTIN (BUILT_IN_MEMPCPY, "mempcpy" , BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_RETNONNULL_NOTHROW_LEAF) |
823 | DEF_LIB_BUILTIN (BUILT_IN_MEMSET, "memset" , BT_FN_PTR_PTR_INT_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
824 | DEF_EXT_LIB_BUILTIN (BUILT_IN_RINDEX, "rindex" , BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
825 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STPCPY, "stpcpy" , BT_FN_STRING_STRING_CONST_STRING, ATTR_RETNONNULL_NOTHROW_LEAF) |
826 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STPNCPY, "stpncpy" , BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_RETNONNULL_NOTHROW_LEAF) |
827 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STRCASECMP, "strcasecmp" , BT_FN_INT_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
828 | DEF_LIB_BUILTIN (BUILT_IN_STRCAT, "strcat" , BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF) |
829 | DEF_LIB_BUILTIN (BUILT_IN_STRCHR, "strchr" , BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
830 | DEF_LIB_BUILTIN (BUILT_IN_STRCMP, "strcmp" , BT_FN_INT_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
831 | DEF_LIB_BUILTIN (BUILT_IN_STRCPY, "strcpy" , BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF) |
832 | DEF_LIB_BUILTIN (BUILT_IN_STRCSPN, "strcspn" , BT_FN_SIZE_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
833 | DEF_C23_BUILTIN (BUILT_IN_STRDUP, "strdup" , BT_FN_STRING_CONST_STRING, ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF) |
834 | DEF_C23_BUILTIN (BUILT_IN_STRNDUP, "strndup" , BT_FN_STRING_CONST_STRING_SIZE, ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF) |
835 | DEF_LIB_BUILTIN (BUILT_IN_STRLEN, "strlen" , BT_FN_SIZE_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
836 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STRNCASECMP, "strncasecmp" , BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
837 | DEF_LIB_BUILTIN (BUILT_IN_STRNCAT, "strncat" , BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
838 | DEF_LIB_BUILTIN (BUILT_IN_STRNCMP, "strncmp" , BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
839 | DEF_LIB_BUILTIN (BUILT_IN_STRNCPY, "strncpy" , BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
840 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STRNLEN, "strnlen" , BT_FN_SIZE_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
841 | DEF_LIB_BUILTIN (BUILT_IN_STRPBRK, "strpbrk" , BT_FN_STRING_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
842 | DEF_LIB_BUILTIN (BUILT_IN_STRRCHR, "strrchr" , BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
843 | DEF_LIB_BUILTIN (BUILT_IN_STRSPN, "strspn" , BT_FN_SIZE_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
844 | DEF_LIB_BUILTIN (BUILT_IN_STRSTR, "strstr" , BT_FN_STRING_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF) |
845 | |
846 | /* Category: stdio builtins. */ |
847 | DEF_LIB_BUILTIN (BUILT_IN_FPRINTF, "fprintf" , BT_FN_INT_FILEPTR_CONST_STRING_VAR, ATTR_NONNULL_1_FORMAT_PRINTF_2_3) |
848 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FPRINTF_UNLOCKED, "fprintf_unlocked" , BT_FN_INT_FILEPTR_CONST_STRING_VAR, ATTR_NONNULL_1_FORMAT_PRINTF_2_3) |
849 | DEF_LIB_BUILTIN (BUILT_IN_PUTC, "putc" , BT_FN_INT_INT_FILEPTR, ATTR_NONNULL_LIST) |
850 | DEF_EXT_LIB_BUILTIN (BUILT_IN_PUTC_UNLOCKED, "putc_unlocked" , BT_FN_INT_INT_FILEPTR, ATTR_NONNULL_LIST) |
851 | DEF_LIB_BUILTIN (BUILT_IN_FPUTC, "fputc" , BT_FN_INT_INT_FILEPTR, ATTR_NONNULL_LIST) |
852 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FPUTC_UNLOCKED, "fputc_unlocked" , BT_FN_INT_INT_FILEPTR, ATTR_NONNULL_LIST) |
853 | DEF_LIB_BUILTIN (BUILT_IN_FPUTS, "fputs" , BT_FN_INT_CONST_STRING_FILEPTR, ATTR_NONNULL_LIST) |
854 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FPUTS_UNLOCKED, "fputs_unlocked" , BT_FN_INT_CONST_STRING_FILEPTR, ATTR_NONNULL_LIST) |
855 | DEF_LIB_BUILTIN (BUILT_IN_FSCANF, "fscanf" , BT_FN_INT_FILEPTR_CONST_STRING_VAR, ATTR_FORMAT_SCANF_2_3) |
856 | DEF_LIB_BUILTIN (BUILT_IN_FWRITE, "fwrite" , BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, ATTR_NONNULL_LIST) |
857 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FWRITE_UNLOCKED, "fwrite_unlocked" , BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, ATTR_NONNULL_LIST) |
858 | DEF_LIB_BUILTIN (BUILT_IN_PRINTF, "printf" , BT_FN_INT_CONST_STRING_VAR, ATTR_FORMAT_PRINTF_1_2) |
859 | DEF_EXT_LIB_BUILTIN (BUILT_IN_PRINTF_UNLOCKED, "printf_unlocked" , BT_FN_INT_CONST_STRING_VAR, ATTR_NONNULL_1_FORMAT_PRINTF_1_2) |
860 | DEF_LIB_BUILTIN (BUILT_IN_PUTCHAR, "putchar" , BT_FN_INT_INT, ATTR_NULL) |
861 | DEF_EXT_LIB_BUILTIN (BUILT_IN_PUTCHAR_UNLOCKED, "putchar_unlocked" , BT_FN_INT_INT, ATTR_NULL) |
862 | DEF_LIB_BUILTIN (BUILT_IN_PUTS, "puts" , BT_FN_INT_CONST_STRING, ATTR_NONNULL_LIST) |
863 | DEF_EXT_LIB_BUILTIN (BUILT_IN_PUTS_UNLOCKED, "puts_unlocked" , BT_FN_INT_CONST_STRING, ATTR_NONNULL_LIST) |
864 | DEF_LIB_BUILTIN (BUILT_IN_SCANF, "scanf" , BT_FN_INT_CONST_STRING_VAR, ATTR_FORMAT_SCANF_1_2) |
865 | DEF_C99_BUILTIN (BUILT_IN_SNPRINTF, "snprintf" , BT_FN_INT_STRING_SIZE_CONST_STRING_VAR, ATTR_FORMAT_PRINTF_NOTHROW_3_4) |
866 | |
867 | DEF_LIB_BUILTIN (BUILT_IN_SPRINTF, "sprintf" , BT_FN_INT_STRING_CONST_STRING_VAR, ATTR_NOTHROW_NONNULL_1_FORMAT_PRINTF_2_3) |
868 | DEF_LIB_BUILTIN (BUILT_IN_SSCANF, "sscanf" , BT_FN_INT_CONST_STRING_CONST_STRING_VAR, ATTR_FORMAT_SCANF_NOTHROW_2_3) |
869 | DEF_LIB_BUILTIN (BUILT_IN_VFPRINTF, "vfprintf" , BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG, ATTR_NONNULL_1_FORMAT_PRINTF_2_0) |
870 | DEF_C99_BUILTIN (BUILT_IN_VFSCANF, "vfscanf" , BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG, ATTR_FORMAT_SCANF_2_0) |
871 | DEF_LIB_BUILTIN (BUILT_IN_VPRINTF, "vprintf" , BT_FN_INT_CONST_STRING_VALIST_ARG, ATTR_FORMAT_PRINTF_1_0) |
872 | DEF_C99_BUILTIN (BUILT_IN_VSCANF, "vscanf" , BT_FN_INT_CONST_STRING_VALIST_ARG, ATTR_FORMAT_SCANF_1_0) |
873 | DEF_C99_BUILTIN (BUILT_IN_VSNPRINTF, "vsnprintf" , BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG, ATTR_FORMAT_PRINTF_NOTHROW_3_0) |
874 | DEF_LIB_BUILTIN (BUILT_IN_VSPRINTF, "vsprintf" , BT_FN_INT_STRING_CONST_STRING_VALIST_ARG, ATTR_NOTHROW_NONNULL_1_FORMAT_PRINTF_2_0) |
875 | DEF_C99_BUILTIN (BUILT_IN_VSSCANF, "vsscanf" , BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG, ATTR_FORMAT_SCANF_NOTHROW_2_0) |
876 | |
877 | /* Category: ctype builtins. */ |
878 | DEF_LIB_BUILTIN (BUILT_IN_ISALNUM, "isalnum" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
879 | DEF_LIB_BUILTIN (BUILT_IN_ISALPHA, "isalpha" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
880 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ISASCII, "isascii" , BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST) |
881 | DEF_C99_BUILTIN (BUILT_IN_ISBLANK, "isblank" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
882 | DEF_LIB_BUILTIN (BUILT_IN_ISCNTRL, "iscntrl" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
883 | DEF_LIB_BUILTIN (BUILT_IN_ISDIGIT, "isdigit" , BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST) |
884 | DEF_LIB_BUILTIN (BUILT_IN_ISGRAPH, "isgraph" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
885 | DEF_LIB_BUILTIN (BUILT_IN_ISLOWER, "islower" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
886 | DEF_LIB_BUILTIN (BUILT_IN_ISPRINT, "isprint" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
887 | DEF_LIB_BUILTIN (BUILT_IN_ISPUNCT, "ispunct" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
888 | DEF_LIB_BUILTIN (BUILT_IN_ISSPACE, "isspace" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
889 | DEF_LIB_BUILTIN (BUILT_IN_ISUPPER, "isupper" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
890 | DEF_LIB_BUILTIN (BUILT_IN_ISXDIGIT, "isxdigit" , BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST) |
891 | DEF_EXT_LIB_BUILTIN (BUILT_IN_TOASCII, "toascii" , BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST) |
892 | DEF_LIB_BUILTIN (BUILT_IN_TOLOWER, "tolower" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
893 | DEF_LIB_BUILTIN (BUILT_IN_TOUPPER, "toupper" , BT_FN_INT_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
894 | |
895 | /* Category: wctype builtins. */ |
896 | DEF_C94_BUILTIN (BUILT_IN_ISWALNUM, "iswalnum" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
897 | DEF_C94_BUILTIN (BUILT_IN_ISWALPHA, "iswalpha" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
898 | DEF_C99_BUILTIN (BUILT_IN_ISWBLANK, "iswblank" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
899 | DEF_C94_BUILTIN (BUILT_IN_ISWCNTRL, "iswcntrl" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
900 | DEF_C94_BUILTIN (BUILT_IN_ISWDIGIT, "iswdigit" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
901 | DEF_C94_BUILTIN (BUILT_IN_ISWGRAPH, "iswgraph" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
902 | DEF_C94_BUILTIN (BUILT_IN_ISWLOWER, "iswlower" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
903 | DEF_C94_BUILTIN (BUILT_IN_ISWPRINT, "iswprint" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
904 | DEF_C94_BUILTIN (BUILT_IN_ISWPUNCT, "iswpunct" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
905 | DEF_C94_BUILTIN (BUILT_IN_ISWSPACE, "iswspace" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
906 | DEF_C94_BUILTIN (BUILT_IN_ISWUPPER, "iswupper" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
907 | DEF_C94_BUILTIN (BUILT_IN_ISWXDIGIT, "iswxdigit" , BT_FN_INT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
908 | DEF_C94_BUILTIN (BUILT_IN_TOWLOWER, "towlower" , BT_FN_WINT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
909 | DEF_C94_BUILTIN (BUILT_IN_TOWUPPER, "towupper" , BT_FN_WINT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) |
910 | |
911 | /* Category: integer overflow checking builtins. */ |
912 | DEF_GCC_BUILTIN (BUILT_IN_ADD_OVERFLOW, "add_overflow" , BT_FN_BOOL_VAR, ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF) |
913 | DEF_GCC_BUILTIN (BUILT_IN_SUB_OVERFLOW, "sub_overflow" , BT_FN_BOOL_VAR, ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF) |
914 | DEF_GCC_BUILTIN (BUILT_IN_MUL_OVERFLOW, "mul_overflow" , BT_FN_BOOL_VAR, ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF) |
915 | DEF_GCC_BUILTIN (BUILT_IN_ADD_OVERFLOW_P, "add_overflow_p" , BT_FN_BOOL_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
916 | DEF_GCC_BUILTIN (BUILT_IN_SUB_OVERFLOW_P, "sub_overflow_p" , BT_FN_BOOL_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
917 | DEF_GCC_BUILTIN (BUILT_IN_MUL_OVERFLOW_P, "mul_overflow_p" , BT_FN_BOOL_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
918 | /* Clang compatibility. */ |
919 | DEF_GCC_BUILTIN (BUILT_IN_SADD_OVERFLOW, "sadd_overflow" , BT_FN_BOOL_INT_INT_INTPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
920 | DEF_GCC_BUILTIN (BUILT_IN_SADDL_OVERFLOW, "saddl_overflow" , BT_FN_BOOL_LONG_LONG_LONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
921 | DEF_GCC_BUILTIN (BUILT_IN_SADDLL_OVERFLOW, "saddll_overflow" , BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
922 | DEF_GCC_BUILTIN (BUILT_IN_SSUB_OVERFLOW, "ssub_overflow" , BT_FN_BOOL_INT_INT_INTPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
923 | DEF_GCC_BUILTIN (BUILT_IN_SSUBL_OVERFLOW, "ssubl_overflow" , BT_FN_BOOL_LONG_LONG_LONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
924 | DEF_GCC_BUILTIN (BUILT_IN_SSUBLL_OVERFLOW, "ssubll_overflow" , BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
925 | DEF_GCC_BUILTIN (BUILT_IN_SMUL_OVERFLOW, "smul_overflow" , BT_FN_BOOL_INT_INT_INTPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
926 | DEF_GCC_BUILTIN (BUILT_IN_SMULL_OVERFLOW, "smull_overflow" , BT_FN_BOOL_LONG_LONG_LONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
927 | DEF_GCC_BUILTIN (BUILT_IN_SMULLL_OVERFLOW, "smulll_overflow" , BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
928 | DEF_GCC_BUILTIN (BUILT_IN_UADD_OVERFLOW, "uadd_overflow" , BT_FN_BOOL_UINT_UINT_UINTPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
929 | DEF_GCC_BUILTIN (BUILT_IN_UADDL_OVERFLOW, "uaddl_overflow" , BT_FN_BOOL_ULONG_ULONG_ULONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
930 | DEF_GCC_BUILTIN (BUILT_IN_UADDLL_OVERFLOW, "uaddll_overflow" , BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
931 | DEF_GCC_BUILTIN (BUILT_IN_USUB_OVERFLOW, "usub_overflow" , BT_FN_BOOL_UINT_UINT_UINTPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
932 | DEF_GCC_BUILTIN (BUILT_IN_USUBL_OVERFLOW, "usubl_overflow" , BT_FN_BOOL_ULONG_ULONG_ULONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
933 | DEF_GCC_BUILTIN (BUILT_IN_USUBLL_OVERFLOW, "usubll_overflow" , BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
934 | DEF_GCC_BUILTIN (BUILT_IN_UMUL_OVERFLOW, "umul_overflow" , BT_FN_BOOL_UINT_UINT_UINTPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
935 | DEF_GCC_BUILTIN (BUILT_IN_UMULL_OVERFLOW, "umull_overflow" , BT_FN_BOOL_ULONG_ULONG_ULONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
936 | DEF_GCC_BUILTIN (BUILT_IN_UMULLL_OVERFLOW, "umulll_overflow" , BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
937 | DEF_GCC_BUILTIN (BUILT_IN_ADDC, "addc" , BT_FN_UINT_UINT_UINT_UINT_UINTPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
938 | DEF_GCC_BUILTIN (BUILT_IN_ADDCL, "addcl" , BT_FN_ULONG_ULONG_ULONG_ULONG_ULONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
939 | DEF_GCC_BUILTIN (BUILT_IN_ADDCLL, "addcll" , BT_FN_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
940 | DEF_GCC_BUILTIN (BUILT_IN_SUBC, "subc" , BT_FN_UINT_UINT_UINT_UINT_UINTPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
941 | DEF_GCC_BUILTIN (BUILT_IN_SUBCL, "subcl" , BT_FN_ULONG_ULONG_ULONG_ULONG_ULONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
942 | DEF_GCC_BUILTIN (BUILT_IN_SUBCLL, "subcll" , BT_FN_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONGPTR, ATTR_NOTHROW_NONNULL_LEAF_LIST) |
943 | |
944 | /* Category: miscellaneous builtins. */ |
945 | DEF_LIB_BUILTIN (BUILT_IN_ABORT, "abort" , BT_FN_VOID, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST) |
946 | DEF_LIB_BUILTIN (BUILT_IN_ABS, "abs" , BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST) |
947 | DEF_GCC_BUILTIN (BUILT_IN_AGGREGATE_INCOMING_ADDRESS, "aggregate_incoming_address" , BT_FN_PTR_VAR, ATTR_LEAF_LIST) |
948 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ALLOCA, "alloca" , BT_FN_PTR_SIZE, ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST) |
949 | DEF_GCC_BUILTIN (BUILT_IN_APPLY, "apply" , BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE, ATTR_NULL) |
950 | DEF_GCC_BUILTIN (BUILT_IN_APPLY_ARGS, "apply_args" , BT_FN_PTR_VAR, ATTR_LEAF_LIST) |
951 | DEF_GCC_BUILTIN (BUILT_IN_BSWAP16, "bswap16" , BT_FN_UINT16_UINT16, ATTR_CONST_NOTHROW_LEAF_LIST) |
952 | DEF_GCC_BUILTIN (BUILT_IN_BSWAP32, "bswap32" , BT_FN_UINT32_UINT32, ATTR_CONST_NOTHROW_LEAF_LIST) |
953 | DEF_GCC_BUILTIN (BUILT_IN_BSWAP64, "bswap64" , BT_FN_UINT64_UINT64, ATTR_CONST_NOTHROW_LEAF_LIST) |
954 | DEF_GCC_BUILTIN (BUILT_IN_BSWAP128, "bswap128" , BT_FN_UINT128_UINT128, ATTR_CONST_NOTHROW_LEAF_LIST) |
955 | |
956 | DEF_EXT_LIB_BUILTIN (BUILT_IN_CLEAR_CACHE, "__clear_cache" , BT_FN_VOID_PTR_PTR, ATTR_NOTHROW_LEAF_LIST) |
957 | /* [trans-mem]: Adjust BUILT_IN_TM_CALLOC if BUILT_IN_CALLOC is changed. */ |
958 | DEF_LIB_BUILTIN (BUILT_IN_CALLOC, "calloc" , BT_FN_PTR_SIZE_SIZE, ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST) |
959 | DEF_GCC_BUILTIN (BUILT_IN_CLASSIFY_TYPE, "classify_type" , BT_FN_INT_VAR, ATTR_LEAF_LIST) |
960 | DEF_GCC_BUILTIN (BUILT_IN_CLEAR_PADDING, "clear_padding" , BT_FN_VOID_VAR, ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF) |
961 | DEF_GCC_BUILTIN (BUILT_IN_CLZ, "clz" , BT_FN_INT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST) |
962 | DEF_GCC_BUILTIN (BUILT_IN_CLZIMAX, "clzimax" , BT_FN_INT_UINTMAX, ATTR_CONST_NOTHROW_LEAF_LIST) |
963 | DEF_GCC_BUILTIN (BUILT_IN_CLZL, "clzl" , BT_FN_INT_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
964 | DEF_GCC_BUILTIN (BUILT_IN_CLZLL, "clzll" , BT_FN_INT_ULONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
965 | DEF_GCC_BUILTIN (BUILT_IN_CLZG, "clzg" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
966 | DEF_GCC_BUILTIN (BUILT_IN_CONSTANT_P, "constant_p" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_LEAF_LIST) |
967 | DEF_GCC_BUILTIN (BUILT_IN_CTZ, "ctz" , BT_FN_INT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST) |
968 | DEF_GCC_BUILTIN (BUILT_IN_CTZIMAX, "ctzimax" , BT_FN_INT_UINTMAX, ATTR_CONST_NOTHROW_LEAF_LIST) |
969 | DEF_GCC_BUILTIN (BUILT_IN_CTZL, "ctzl" , BT_FN_INT_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
970 | DEF_GCC_BUILTIN (BUILT_IN_CTZLL, "ctzll" , BT_FN_INT_ULONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
971 | DEF_GCC_BUILTIN (BUILT_IN_CTZG, "ctzg" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
972 | DEF_GCC_BUILTIN (BUILT_IN_CLRSB, "clrsb" , BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST) |
973 | DEF_GCC_BUILTIN (BUILT_IN_CLRSBIMAX, "clrsbimax" , BT_FN_INT_INTMAX, ATTR_CONST_NOTHROW_LEAF_LIST) |
974 | DEF_GCC_BUILTIN (BUILT_IN_CLRSBL, "clrsbl" , BT_FN_INT_LONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
975 | DEF_GCC_BUILTIN (BUILT_IN_CLRSBLL, "clrsbll" , BT_FN_INT_LONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
976 | DEF_GCC_BUILTIN (BUILT_IN_CLRSBG, "clrsbg" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
977 | DEF_EXT_LIB_BUILTIN (BUILT_IN_DCGETTEXT, "dcgettext" , BT_FN_STRING_CONST_STRING_CONST_STRING_INT, ATTR_FORMAT_ARG_2) |
978 | DEF_EXT_LIB_BUILTIN (BUILT_IN_DGETTEXT, "dgettext" , BT_FN_STRING_CONST_STRING_CONST_STRING, ATTR_FORMAT_ARG_2) |
979 | DEF_GCC_BUILTIN (BUILT_IN_DWARF_CFA, "dwarf_cfa" , BT_FN_PTR, ATTR_NULL) |
980 | DEF_GCC_BUILTIN (BUILT_IN_DWARF_SP_COLUMN, "dwarf_sp_column" , BT_FN_UINT, ATTR_NULL) |
981 | DEF_GCC_BUILTIN (BUILT_IN_EH_RETURN, "eh_return" , BT_FN_VOID_PTRMODE_PTR, ATTR_NORETURN_NOTHROW_LEAF_LIST) |
982 | DEF_GCC_BUILTIN (BUILT_IN_EH_RETURN_DATA_REGNO, "eh_return_data_regno" , BT_FN_INT_INT, ATTR_LEAF_LIST) |
983 | DEF_EXT_LIB_BUILTIN (BUILT_IN_EXECL, "execl" , BT_FN_INT_CONST_STRING_CONST_STRING_VAR, ATTR_SENTINEL_NOTHROW_LIST) |
984 | DEF_EXT_LIB_BUILTIN (BUILT_IN_EXECLP, "execlp" , BT_FN_INT_CONST_STRING_CONST_STRING_VAR, ATTR_SENTINEL_NOTHROW_LIST) |
985 | DEF_EXT_LIB_BUILTIN (BUILT_IN_EXECLE, "execle" , BT_FN_INT_CONST_STRING_CONST_STRING_VAR, ATTR_NOTHROW_SENTINEL_1) |
986 | DEF_EXT_LIB_BUILTIN (BUILT_IN_EXECV, "execv" , BT_FN_INT_CONST_STRING_PTR_CONST_STRING, ATTR_NOTHROW_LIST) |
987 | DEF_EXT_LIB_BUILTIN (BUILT_IN_EXECVP, "execvp" , BT_FN_INT_CONST_STRING_PTR_CONST_STRING, ATTR_NOTHROW_LIST) |
988 | DEF_EXT_LIB_BUILTIN (BUILT_IN_EXECVE, "execve" , BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING, ATTR_NOTHROW_LIST) |
989 | DEF_LIB_BUILTIN (BUILT_IN_EXIT, "exit" , BT_FN_VOID_INT, ATTR_NORETURN_NOTHROW_LIST) |
990 | DEF_GCC_BUILTIN (BUILT_IN_EXPECT, "expect" , BT_FN_LONG_LONG_LONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
991 | DEF_GCC_BUILTIN (BUILT_IN_EXPECT_WITH_PROBABILITY, "expect_with_probability" , BT_FN_LONG_LONG_LONG_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
992 | DEF_GCC_BUILTIN (BUILT_IN_ASSUME_ALIGNED, "assume_aligned" , BT_FN_PTR_CONST_PTR_SIZE_VAR, ATTR_CONST_NOTHROW_LEAF_LIST) |
993 | DEF_GCC_BUILTIN (BUILT_IN_EXTEND_POINTER, "extend_pointer" , BT_FN_UNWINDWORD_PTR, ATTR_CONST_NOTHROW_LEAF_LIST) |
994 | DEF_GCC_BUILTIN (, "extract_return_addr" , BT_FN_PTR_PTR, ATTR_LEAF_LIST) |
995 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FFS, "ffs" , BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST) |
996 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FFSIMAX, "ffsimax" , BT_FN_INT_INTMAX, ATTR_CONST_NOTHROW_LEAF_LIST) |
997 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FFSL, "ffsl" , BT_FN_INT_LONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
998 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FFSLL, "ffsll" , BT_FN_INT_LONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
999 | DEF_GCC_BUILTIN (BUILT_IN_FFSG, "ffsg" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1000 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FORK, "fork" , BT_FN_PID, ATTR_NOTHROW_LIST) |
1001 | DEF_GCC_BUILTIN (BUILT_IN_FRAME_ADDRESS, "frame_address" , BT_FN_PTR_UINT, ATTR_NULL) |
1002 | DEF_GCC_BUILTIN (BUILT_IN_STACK_ADDRESS, "stack_address" , BT_FN_PTR, ATTR_NULL) |
1003 | DEF_BUILTIN_STUB (BUILT_IN___STRUB_ENTER, "__builtin___strub_enter" ) |
1004 | DEF_BUILTIN_STUB (BUILT_IN___STRUB_UPDATE, "__builtin___strub_update" ) |
1005 | DEF_BUILTIN_STUB (BUILT_IN___STRUB_LEAVE, "__builtin___strub_leave" ) |
1006 | /* [trans-mem]: Adjust BUILT_IN_TM_FREE if BUILT_IN_FREE is changed. */ |
1007 | DEF_LIB_BUILTIN (BUILT_IN_FREE, "free" , BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) |
1008 | DEF_GCC_BUILTIN (BUILT_IN_FROB_RETURN_ADDR, "frob_return_addr" , BT_FN_PTR_PTR, ATTR_NULL) |
1009 | DEF_EXT_LIB_BUILTIN (BUILT_IN_GETTEXT, "gettext" , BT_FN_STRING_CONST_STRING, ATTR_FORMAT_ARG_1) |
1010 | DEF_C99_BUILTIN (BUILT_IN_IMAXABS, "imaxabs" , BT_FN_INTMAX_INTMAX, ATTR_CONST_NOTHROW_LEAF_LIST) |
1011 | DEF_GCC_BUILTIN (BUILT_IN_INIT_DWARF_REG_SIZES, "init_dwarf_reg_size_table" , BT_FN_VOID_PTR, ATTR_NULL) |
1012 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FINITE, "finite" , BT_FN_INT_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
1013 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FINITEF, "finitef" , BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
1014 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FINITEL, "finitel" , BT_FN_INT_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
1015 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FINITED32, "finited32" , BT_FN_INT_DFLOAT32, ATTR_CONST_NOTHROW_LEAF_LIST) |
1016 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FINITED64, "finited64" , BT_FN_INT_DFLOAT64, ATTR_CONST_NOTHROW_LEAF_LIST) |
1017 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FINITED128, "finited128" , BT_FN_INT_DFLOAT128, ATTR_CONST_NOTHROW_LEAF_LIST) |
1018 | DEF_GCC_BUILTIN (BUILT_IN_FPCLASSIFY, "fpclassify" , BT_FN_INT_INT_INT_INT_INT_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1019 | DEF_GCC_BUILTIN (BUILT_IN_ISFINITE, "isfinite" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1020 | DEF_GCC_BUILTIN (BUILT_IN_ISINF_SIGN, "isinf_sign" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1021 | DEF_C99_C90RES_BUILTIN (BUILT_IN_ISINF, "isinf" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC) |
1022 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ISINFF, "isinff" , BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
1023 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ISINFL, "isinfl" , BT_FN_INT_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
1024 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ISINFD32, "isinfd32" , BT_FN_INT_DFLOAT32, ATTR_CONST_NOTHROW_LEAF_LIST) |
1025 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ISINFD64, "isinfd64" , BT_FN_INT_DFLOAT64, ATTR_CONST_NOTHROW_LEAF_LIST) |
1026 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ISINFD128, "isinfd128" , BT_FN_INT_DFLOAT128, ATTR_CONST_NOTHROW_LEAF_LIST) |
1027 | DEF_C99_C90RES_BUILTIN (BUILT_IN_ISNAN, "isnan" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1028 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ISNANF, "isnanf" , BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) |
1029 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ISNANL, "isnanl" , BT_FN_INT_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) |
1030 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ISNAND32, "isnand32" , BT_FN_INT_DFLOAT32, ATTR_CONST_NOTHROW_LEAF_LIST) |
1031 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ISNAND64, "isnand64" , BT_FN_INT_DFLOAT64, ATTR_CONST_NOTHROW_LEAF_LIST) |
1032 | DEF_EXT_LIB_BUILTIN (BUILT_IN_ISNAND128, "isnand128" , BT_FN_INT_DFLOAT128, ATTR_CONST_NOTHROW_LEAF_LIST) |
1033 | DEF_GCC_BUILTIN (BUILT_IN_ISNORMAL, "isnormal" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1034 | DEF_GCC_BUILTIN (BUILT_IN_ISGREATER, "isgreater" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1035 | DEF_GCC_BUILTIN (BUILT_IN_ISGREATEREQUAL, "isgreaterequal" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1036 | DEF_GCC_BUILTIN (BUILT_IN_ISLESS, "isless" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1037 | DEF_GCC_BUILTIN (BUILT_IN_ISLESSEQUAL, "islessequal" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1038 | DEF_GCC_BUILTIN (BUILT_IN_ISLESSGREATER, "islessgreater" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1039 | DEF_GCC_BUILTIN (BUILT_IN_ISUNORDERED, "isunordered" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1040 | DEF_GCC_BUILTIN (BUILT_IN_ISEQSIG, "iseqsig" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1041 | DEF_GCC_BUILTIN (BUILT_IN_ISSIGNALING, "issignaling" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1042 | DEF_LIB_BUILTIN (BUILT_IN_LABS, "labs" , BT_FN_LONG_LONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
1043 | DEF_C99_BUILTIN (BUILT_IN_LLABS, "llabs" , BT_FN_LONGLONG_LONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
1044 | DEF_GCC_BUILTIN (BUILT_IN_LONGJMP, "longjmp" , BT_FN_VOID_PTR_INT, ATTR_NORETURN_NOTHROW_LIST) |
1045 | /* [trans-mem]: Adjust BUILT_IN_TM_MALLOC if BUILT_IN_MALLOC is changed. */ |
1046 | DEF_LIB_BUILTIN (BUILT_IN_MALLOC, "malloc" , BT_FN_PTR_SIZE, ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST) |
1047 | DEF_GCC_BUILTIN (BUILT_IN_NEXT_ARG, "next_arg" , BT_FN_PTR_VAR, ATTR_LEAF_LIST) |
1048 | DEF_GCC_BUILTIN (BUILT_IN_PARITY, "parity" , BT_FN_INT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST) |
1049 | DEF_GCC_BUILTIN (BUILT_IN_PARITYIMAX, "parityimax" , BT_FN_INT_UINTMAX, ATTR_CONST_NOTHROW_LEAF_LIST) |
1050 | DEF_GCC_BUILTIN (BUILT_IN_PARITYL, "parityl" , BT_FN_INT_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
1051 | DEF_GCC_BUILTIN (BUILT_IN_PARITYLL, "parityll" , BT_FN_INT_ULONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
1052 | DEF_GCC_BUILTIN (BUILT_IN_PARITYG, "parityg" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1053 | DEF_GCC_BUILTIN (BUILT_IN_POPCOUNT, "popcount" , BT_FN_INT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST) |
1054 | DEF_GCC_BUILTIN (BUILT_IN_POPCOUNTIMAX, "popcountimax" , BT_FN_INT_UINTMAX, ATTR_CONST_NOTHROW_LEAF_LIST) |
1055 | DEF_GCC_BUILTIN (BUILT_IN_POPCOUNTL, "popcountl" , BT_FN_INT_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
1056 | DEF_GCC_BUILTIN (BUILT_IN_POPCOUNTLL, "popcountll" , BT_FN_INT_ULONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST) |
1057 | DEF_GCC_BUILTIN (BUILT_IN_POPCOUNTG, "popcountg" , BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) |
1058 | DEF_EXT_LIB_BUILTIN (BUILT_IN_POSIX_MEMALIGN, "posix_memalign" , BT_FN_INT_PTRPTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
1059 | DEF_GCC_BUILTIN (BUILT_IN_PREFETCH, "prefetch" , BT_FN_VOID_CONST_PTR_VAR, ATTR_NOVOPS_LEAF_LIST) |
1060 | DEF_LIB_BUILTIN (BUILT_IN_REALLOC, "realloc" , BT_FN_PTR_PTR_SIZE, ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST) |
1061 | DEF_GCC_BUILTIN (BUILT_IN_RETURN, "return" , BT_FN_VOID_PTR, ATTR_NORETURN_NOTHROW_LEAF_LIST) |
1062 | DEF_GCC_BUILTIN (BUILT_IN_RETURN_ADDRESS, "return_address" , BT_FN_PTR_UINT, ATTR_LEAF_LIST) |
1063 | DEF_GCC_BUILTIN (BUILT_IN_SAVEREGS, "saveregs" , BT_FN_PTR_VAR, ATTR_NULL) |
1064 | DEF_GCC_BUILTIN (BUILT_IN_SETJMP, "setjmp" , BT_FN_INT_PTR, ATTR_RT_NOTHROW_LEAF_LIST) |
1065 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STRFMON, "strfmon" , BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR, ATTR_FORMAT_STRFMON_NOTHROW_3_4) |
1066 | DEF_LIB_BUILTIN (BUILT_IN_STRFTIME, "strftime" , BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_TM_PTR, ATTR_FORMAT_STRFTIME_NOTHROW_3_0) |
1067 | DEF_GCC_BUILTIN (BUILT_IN_TRAP, "trap" , BT_FN_VOID, ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST) |
1068 | DEF_GCC_BUILTIN (BUILT_IN_UNREACHABLE_TRAP, "unreachable trap" , BT_FN_VOID, ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST) |
1069 | DEF_GCC_BUILTIN (BUILT_IN_UNREACHABLE, "unreachable" , BT_FN_VOID, ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST) |
1070 | DEF_GCC_BUILTIN (BUILT_IN_UNWIND_INIT, "unwind_init" , BT_FN_VOID, ATTR_NULL) |
1071 | DEF_GCC_BUILTIN (BUILT_IN_UPDATE_SETJMP_BUF, "update_setjmp_buf" , BT_FN_VOID_PTR, ATTR_NULL) |
1072 | DEF_GCC_BUILTIN (BUILT_IN_VA_COPY, "va_copy" , BT_FN_VOID_VALIST_REF_VALIST_ARG, ATTR_NOTHROW_LEAF_LIST) |
1073 | DEF_GCC_BUILTIN (BUILT_IN_VA_END, "va_end" , BT_FN_VOID_VALIST_REF, ATTR_NOTHROW_LEAF_LIST) |
1074 | DEF_GCC_BUILTIN (BUILT_IN_VA_START, "va_start" , BT_FN_VOID_VALIST_REF_VAR, ATTR_NOTHROW_LEAF_LIST) |
1075 | DEF_GCC_BUILTIN (BUILT_IN_VA_ARG_PACK, "va_arg_pack" , BT_FN_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
1076 | DEF_GCC_BUILTIN (BUILT_IN_VA_ARG_PACK_LEN, "va_arg_pack_len" , BT_FN_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
1077 | DEF_EXT_LIB_BUILTIN (BUILT_IN__EXIT, "_exit" , BT_FN_VOID_INT, ATTR_NORETURN_NOTHROW_LEAF_LIST) |
1078 | DEF_C99_BUILTIN (BUILT_IN__EXIT2, "_Exit" , BT_FN_VOID_INT, ATTR_NORETURN_NOTHROW_LEAF_LIST) |
1079 | |
1080 | /* Implementing nested functions. */ |
1081 | DEF_BUILTIN_STUB (BUILT_IN_INIT_TRAMPOLINE, "__builtin_init_trampoline" ) |
1082 | DEF_BUILTIN_STUB (BUILT_IN_INIT_HEAP_TRAMPOLINE, "__builtin_init_heap_trampoline" ) |
1083 | DEF_BUILTIN_STUB (BUILT_IN_ADJUST_TRAMPOLINE, "__builtin_adjust_trampoline" ) |
1084 | DEF_BUILTIN_STUB (BUILT_IN_INIT_DESCRIPTOR, "__builtin_init_descriptor" ) |
1085 | DEF_BUILTIN_STUB (BUILT_IN_ADJUST_DESCRIPTOR, "__builtin_adjust_descriptor" ) |
1086 | DEF_BUILTIN_STUB (BUILT_IN_NONLOCAL_GOTO, "__builtin_nonlocal_goto" ) |
1087 | DEF_EXT_LIB_BUILTIN (BUILT_IN_GCC_NESTED_PTR_CREATED, "__gcc_nested_func_ptr_created" , BT_FN_VOID_PTR_PTR_PTR, ATTR_NOTHROW_LIST) |
1088 | DEF_EXT_LIB_BUILTIN (BUILT_IN_GCC_NESTED_PTR_DELETED, "__gcc_nested_func_ptr_deleted" , BT_FN_VOID, ATTR_NOTHROW_LIST) |
1089 | |
1090 | /* Implementing __builtin_setjmp. */ |
1091 | DEF_BUILTIN_STUB (BUILT_IN_SETJMP_SETUP, "__builtin_setjmp_setup" ) |
1092 | DEF_BUILTIN_STUB (BUILT_IN_SETJMP_RECEIVER, "__builtin_setjmp_receiver" ) |
1093 | |
1094 | /* Implementing variable sized local variables. */ |
1095 | DEF_BUILTIN_STUB (BUILT_IN_STACK_SAVE, "__builtin_stack_save" ) |
1096 | DEF_BUILTIN_STUB (BUILT_IN_STACK_RESTORE, "__builtin_stack_restore" ) |
1097 | DEF_BUILTIN_STUB (BUILT_IN_ALLOCA_WITH_ALIGN, "__builtin_alloca_with_align" ) |
1098 | DEF_BUILTIN_STUB (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX, "__builtin_alloca_with_align_and_max" ) |
1099 | |
1100 | /* An internal version of memcmp, used when the result is only tested for |
1101 | equality with zero. */ |
1102 | DEF_BUILTIN_STUB (BUILT_IN_MEMCMP_EQ, "__builtin_memcmp_eq" ) |
1103 | |
1104 | /* An internal version of strcmp/strncmp, used when the result is only |
1105 | tested for equality with zero. */ |
1106 | DEF_BUILTIN_STUB (BUILT_IN_STRCMP_EQ, "__builtin_strcmp_eq" ) |
1107 | DEF_BUILTIN_STUB (BUILT_IN_STRNCMP_EQ, "__builtin_strncmp_eq" ) |
1108 | |
1109 | /* Object size checking builtins. */ |
1110 | DEF_GCC_BUILTIN (BUILT_IN_OBJECT_SIZE, "object_size" , BT_FN_SIZE_CONST_PTR_INT, ATTR_CONST_NOTHROW_LEAF_LIST) |
1111 | DEF_GCC_BUILTIN (BUILT_IN_DYNAMIC_OBJECT_SIZE, "dynamic_object_size" , BT_FN_SIZE_CONST_PTR_INT, ATTR_PURE_NOTHROW_LEAF_LIST) |
1112 | DEF_EXT_LIB_BUILTIN (BUILT_IN_MEMCPY_CHK, "__memcpy_chk" , BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
1113 | DEF_EXT_LIB_BUILTIN (BUILT_IN_MEMMOVE_CHK, "__memmove_chk" , BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
1114 | DEF_EXT_LIB_BUILTIN (BUILT_IN_MEMPCPY_CHK, "__mempcpy_chk" , BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_RETNONNULL_NOTHROW_LEAF) |
1115 | DEF_EXT_LIB_BUILTIN (BUILT_IN_MEMSET_CHK, "__memset_chk" , BT_FN_PTR_PTR_INT_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
1116 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STPCPY_CHK, "__stpcpy_chk" , BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_RETNONNULL_NOTHROW_LEAF) |
1117 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STPNCPY_CHK, "__stpncpy_chk" , BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_RETNONNULL_NOTHROW_LEAF) |
1118 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STRCAT_CHK, "__strcat_chk" , BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
1119 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STRCPY_CHK, "__strcpy_chk" , BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
1120 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STRNCAT_CHK, "__strncat_chk" , BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
1121 | DEF_EXT_LIB_BUILTIN (BUILT_IN_STRNCPY_CHK, "__strncpy_chk" , BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF) |
1122 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SNPRINTF_CHK, "__snprintf_chk" , BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR, ATTR_FORMAT_PRINTF_NOTHROW_5_6) |
1123 | DEF_EXT_LIB_BUILTIN (BUILT_IN_SPRINTF_CHK, "__sprintf_chk" , BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR, ATTR_NOTHROW_NONNULL_1_FORMAT_PRINTF_4_5) |
1124 | DEF_EXT_LIB_BUILTIN (BUILT_IN_VSNPRINTF_CHK, "__vsnprintf_chk" , BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG, ATTR_FORMAT_PRINTF_NOTHROW_5_0) |
1125 | DEF_EXT_LIB_BUILTIN (BUILT_IN_VSPRINTF_CHK, "__vsprintf_chk" , BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG, ATTR_NOTHROW_NONNULL_1_FORMAT_PRINTF_4_0) |
1126 | DEF_EXT_LIB_BUILTIN (BUILT_IN_FPRINTF_CHK, "__fprintf_chk" , BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR, ATTR_NONNULL_1_FORMAT_PRINTF_3_4) |
1127 | DEF_EXT_LIB_BUILTIN (BUILT_IN_PRINTF_CHK, "__printf_chk" , BT_FN_INT_INT_CONST_STRING_VAR, ATTR_FORMAT_PRINTF_2_3) |
1128 | DEF_EXT_LIB_BUILTIN (BUILT_IN_VFPRINTF_CHK, "__vfprintf_chk" , BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG, ATTR_NONNULL_1_FORMAT_PRINTF_3_0) |
1129 | DEF_EXT_LIB_BUILTIN (BUILT_IN_VPRINTF_CHK, "__vprintf_chk" , BT_FN_INT_INT_CONST_STRING_VALIST_ARG, ATTR_FORMAT_PRINTF_2_0) |
1130 | |
1131 | /* Profiling hooks. */ |
1132 | DEF_BUILTIN (BUILT_IN_PROFILE_FUNC_ENTER, "__cyg_profile_func_enter" , BUILT_IN_NORMAL, BT_FN_VOID_PTR_PTR, BT_LAST, |
1133 | false, false, false, ATTR_NULL, true, true) |
1134 | DEF_BUILTIN (BUILT_IN_PROFILE_FUNC_EXIT, "__cyg_profile_func_exit" , BUILT_IN_NORMAL, BT_FN_VOID_PTR_PTR, BT_LAST, |
1135 | false, false, false, ATTR_NULL, true, true) |
1136 | |
1137 | /* TLS thread pointer related builtins. */ |
1138 | DEF_BUILTIN (BUILT_IN_THREAD_POINTER, "__builtin_thread_pointer" , |
1139 | BUILT_IN_NORMAL, BT_FN_PTR, BT_LAST, |
1140 | false, false, true, ATTR_CONST_NOTHROW_LIST, true, |
1141 | targetm.have_tls) |
1142 | |
1143 | DEF_BUILTIN (BUILT_IN_SET_THREAD_POINTER, "__builtin_set_thread_pointer" , |
1144 | BUILT_IN_NORMAL, BT_FN_VOID_PTR, BT_LAST, |
1145 | false, false, true, ATTR_NOTHROW_LIST, true, |
1146 | targetm.have_tls) |
1147 | |
1148 | /* TLS emulation. */ |
1149 | DEF_BUILTIN (BUILT_IN_EMUTLS_GET_ADDRESS, targetm.emutls.get_address, |
1150 | BUILT_IN_NORMAL, |
1151 | BT_FN_PTR_PTR, BT_FN_PTR_PTR, |
1152 | true, true, true, ATTR_CONST_NOTHROW_NONNULL_LEAF, false, |
1153 | !targetm.have_tls) |
1154 | DEF_BUILTIN (BUILT_IN_EMUTLS_REGISTER_COMMON, |
1155 | targetm.emutls.register_common, BUILT_IN_NORMAL, |
1156 | BT_FN_VOID_PTR_WORD_WORD_PTR, BT_FN_VOID_PTR_WORD_WORD_PTR, |
1157 | true, true, true, ATTR_NOTHROW_LEAF_LIST, false, |
1158 | !targetm.have_tls) |
1159 | |
1160 | /* Suppressing speculation. Users are expected to use the first (N) |
1161 | variant, which will be translated internally into one of the other |
1162 | types. */ |
1163 | |
1164 | DEF_GCC_BUILTIN (BUILT_IN_SPECULATION_SAFE_VALUE_N, "speculation_safe_value" , |
1165 | BT_FN_VOID_VAR, ATTR_NOVOPS_NOTHROW_LEAF_LIST) |
1166 | |
1167 | DEF_GCC_BUILTIN (BUILT_IN_SPECULATION_SAFE_VALUE_PTR, |
1168 | "speculation_safe_value_ptr" , BT_FN_PTR_PTR_VAR, |
1169 | ATTR_NOVOPS_NOTHROW_LEAF_LIST) |
1170 | DEF_GCC_BUILTIN (BUILT_IN_SPECULATION_SAFE_VALUE_1, "speculation_safe_value_1" , |
1171 | BT_FN_I1_I1_VAR, ATTR_NOVOPS_NOTHROW_LEAF_LIST) |
1172 | DEF_GCC_BUILTIN (BUILT_IN_SPECULATION_SAFE_VALUE_2, "speculation_safe_value_2" , |
1173 | BT_FN_I2_I2_VAR, ATTR_NOVOPS_NOTHROW_LEAF_LIST) |
1174 | DEF_GCC_BUILTIN (BUILT_IN_SPECULATION_SAFE_VALUE_4, "speculation_safe_value_4" , |
1175 | BT_FN_I4_I4_VAR, ATTR_NOVOPS_NOTHROW_LEAF_LIST) |
1176 | DEF_GCC_BUILTIN (BUILT_IN_SPECULATION_SAFE_VALUE_8, "speculation_safe_value_8" , |
1177 | BT_FN_I8_I8_VAR, ATTR_NOVOPS_NOTHROW_LEAF_LIST) |
1178 | DEF_GCC_BUILTIN (BUILT_IN_SPECULATION_SAFE_VALUE_16, |
1179 | "speculation_safe_value_16" , BT_FN_I16_I16_VAR, |
1180 | ATTR_NOVOPS_NOTHROW_LEAF_LIST) |
1181 | |
1182 | /* Exception support. */ |
1183 | DEF_BUILTIN_STUB (BUILT_IN_UNWIND_RESUME, "__builtin_unwind_resume" ) |
1184 | DEF_BUILTIN_STUB (BUILT_IN_CXA_END_CLEANUP, "__builtin_cxa_end_cleanup" ) |
1185 | DEF_BUILTIN_STUB (BUILT_IN_EH_POINTER, "__builtin_eh_pointer" ) |
1186 | DEF_BUILTIN_STUB (BUILT_IN_EH_FILTER, "__builtin_eh_filter" ) |
1187 | DEF_BUILTIN_STUB (BUILT_IN_EH_COPY_VALUES, "__builtin_eh_copy_values" ) |
1188 | |
1189 | /* __FILE__, __LINE__, __FUNCTION__ as builtins. */ |
1190 | DEF_GCC_BUILTIN (BUILT_IN_FILE, "FILE" , BT_FN_CONST_STRING, ATTR_NOTHROW_LEAF_LIST) |
1191 | DEF_GCC_BUILTIN (BUILT_IN_FUNCTION, "FUNCTION" , BT_FN_CONST_STRING, ATTR_NOTHROW_LEAF_LIST) |
1192 | DEF_GCC_BUILTIN (BUILT_IN_LINE, "LINE" , BT_FN_INT, ATTR_NOTHROW_LEAF_LIST) |
1193 | |
1194 | /* Control Flow Redundancy hardening out-of-line checker. */ |
1195 | DEF_BUILTIN_STUB (BUILT_IN___HARDCFR_CHECK, "__builtin___hardcfr_check" ) |
1196 | |
1197 | /* Synchronization Primitives. */ |
1198 | #include "sync-builtins.def" |
1199 | |
1200 | /* Offloading and Multi Processing builtins. */ |
1201 | #include "omp-builtins.def" |
1202 | |
1203 | /* GTM builtins. */ |
1204 | #include "gtm-builtins.def" |
1205 | |
1206 | /* Sanitizer builtins. */ |
1207 | #include "sanitizer.def" |
1208 | |
1209 | /* Coroutine builtins. */ |
1210 | #include "coroutine-builtins.def" |
1211 | |
1212 | #undef DEF_BUILTIN |
1213 | |