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