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