OSDN Git Service

* builtin-types.def: Use `LONGDOUBLE' instead of `LONG_DOUBLE'
[pf3gnuchains/gcc-fork.git] / gcc / builtins.def
1 /* This file contains the definitions and documentation for the
2    builtins used in the GNU compiler.
3    Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
4
5 This file is part of GCC.
6
7 GCC is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2, or (at your option) any later
10 version.
11
12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING.  If not, write to the Free
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA.  */
21
22 /* Before including this file, you should define a macro:
23
24      DEF_BUILTIN (ENUM, NAME, CLASS, TYPE, LIBTYPE, BOTH_P,
25                   FALLBACK_P, NONANSI_P, ATTRS, IMPLICIT)
26
27    This macro will be called once for each builtin function.  The
28    ENUM will be of type `enum built_in_function', and will indicate
29    which builtin function is being processed.  The NAME of the builtin
30    function (which will always start with `__builtin_') is a string
31    literal.  The CLASS is of type `enum built_in_class' and indicates
32    what kind of builtin is being processed.
33
34    Some builtins are actually two separate functions.  For example,
35    for `strcmp' there are two builtin functions; `__builtin_strcmp'
36    and `strcmp' itself.  Both behave identically.  Other builtins
37    define only the `__builtin' variant.  If BOTH_P is TRUE, then this
38    builtin has both variants; otherwise, it is has only the first
39    variant.
40
41    TYPE indicates the type of the function.  The symbols correspond to
42    enumerals from builtin-types.def.  If BOTH_P is true, then LIBTYPE
43    is the type of the non-`__builtin_' variant.  Otherwise, LIBTYPE
44    should be ignored.
45
46    If FALLBACK_P is true then, if for some reason, the compiler cannot
47    expand the builtin function directly, it will call the
48    corresponding library function (which does not have the
49    `__builtin_' prefix.
50
51    If NONANSI_P is true, then the non-`__builtin_' variant is not an
52    ANSI/ISO library function, and so we should pretend it does not
53    exist when compiling in ANSI conformant mode.
54
55    ATTRs is an attribute list as defined in builtin-attrs.def that
56    describes the attributes of this builtin function.  
57
58    IMPLICIT specifies condition when the builtin can be produced by
59    compiler.  For instance C90 reserves floorf function, but does not
60    define it's meaning.  When user uses floorf we may assume that the
61    floorf has the meaning we expect, but we can't produce floorf by
62    simplifying floor((double)float) since the runtime need not implement
63    it.  */
64    
65 /* A GCC builtin (like __builtin_saveregs) is provided by the
66    compiler, but does not correspond to a function in the standard
67    library.  */
68 #undef DEF_GCC_BUILTIN
69 #define DEF_GCC_BUILTIN(ENUM, NAME, TYPE, ATTRS)                \
70   DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, BT_LAST,      \
71                false, false, false, ATTRS, true)
72
73 /* A library builtin (like __builtin_strchr) is a builtin equivalent
74    of an ANSI/ISO standard library function.  In addition to the
75    `__builtin' version, we will create an ordinary version (e.g,
76    `strchr') as well.  If we cannot compute the answer using the
77    builtin function, we will fall back to the standard library
78    version.  */
79 #undef DEF_LIB_BUILTIN                                  
80 #define DEF_LIB_BUILTIN(ENUM, NAME, TYPE, ATTRS)        \
81   DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
82                true, true, false, ATTRS, true)
83
84 /* Like DEF_LIB_BUILTIN, except that the function is not one that is
85    specified by ANSI/ISO C.  So, when we're being fully conformant we
86    ignore the version of these builtins that does not begin with
87    __builtin.  */
88 #undef DEF_EXT_LIB_BUILTIN                              
89 #define DEF_EXT_LIB_BUILTIN(ENUM, NAME, TYPE, ATTRS)    \
90   DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
91                true, true, true, ATTRS, false)
92
93 /* Like DEF_LIB_BUILTIN, except that the function is only a part of
94    the standard in C99 or above.  */
95 #undef DEF_C99_BUILTIN                                  
96 #define DEF_C99_BUILTIN(ENUM, NAME, TYPE, ATTRS)        \
97   DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
98                true, true, !flag_isoc99, ATTRS, TARGET_C99_FUNCTIONS)
99
100 /* Builtin that is specified by C99 and C90 reserve the name for future use.
101    We can still recognize the builtin in C90 mode but we can't produce it
102    implicitly.  */
103 #undef DEF_C99_C90RES_BUILTIN                                   
104 #define DEF_C99_C90RES_BUILTIN(ENUM, NAME, TYPE, ATTRS) \
105   DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
106                true, true, !flag_isoc99, ATTRS, TARGET_C99_FUNCTIONS)
107
108
109 DEF_LIB_BUILTIN(BUILT_IN_ABORT,
110                 "__builtin_abort",
111                 BT_FN_VOID,
112                 ATTR_NORETURN_NOTHROW_LIST)
113
114 DEF_LIB_BUILTIN(BUILT_IN_ABS,
115                 "__builtin_abs",
116                 BT_FN_INT_INT,
117                 ATTR_CONST_NOTHROW_LIST)
118
119 DEF_GCC_BUILTIN(BUILT_IN_AGGREGATE_INCOMING_ADDRESS,
120                 "__builtin_aggregate_incoming_address",
121                 BT_FN_PTR_VAR,
122                 ATTR_NULL)
123
124 DEF_EXT_LIB_BUILTIN(BUILT_IN_ALLOCA,
125                     "__builtin_alloca",
126                     BT_FN_PTR_SIZE,
127                     ATTR_MALLOC_NOTHROW_LIST)
128
129 DEF_GCC_BUILTIN(BUILT_IN_APPLY,
130                 "__builtin_apply",
131                 BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
132                 ATTR_NULL)
133
134 DEF_GCC_BUILTIN(BUILT_IN_APPLY_ARGS,
135                 "__builtin_apply_args",
136                 BT_FN_PTR_VAR,
137                 ATTR_NULL)
138
139 DEF_GCC_BUILTIN(BUILT_IN_ARGS_INFO,
140                 "__builtin_args_info",
141                 BT_FN_INT_INT,
142                 ATTR_NULL)
143
144 DEF_LIB_BUILTIN(BUILT_IN_ATAN,
145                 "__builtin_atan",
146                 BT_FN_DOUBLE_DOUBLE,
147                 flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
148                                                : ATTR_PURE_NOTHROW_LIST)
149
150 DEF_C99_C90RES_BUILTIN(BUILT_IN_ATANF,
151                        "__builtin_atanf",
152                        BT_FN_FLOAT_FLOAT,
153                        flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
154                                                       : ATTR_PURE_NOTHROW_LIST)
155
156 DEF_C99_C90RES_BUILTIN(BUILT_IN_ATANL,
157                        "__builtin_atanl",
158                        BT_FN_LONGDOUBLE_LONGDOUBLE,
159                        flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
160                                                       : ATTR_PURE_NOTHROW_LIST)
161
162 DEF_LIB_BUILTIN(BUILT_IN_ATAN2,
163                 "__builtin_atan2",
164                 BT_FN_DOUBLE_DOUBLE_DOUBLE,
165                 flag_errno_math ? ATTR_NOTHROW_LIST
166                                 : (flag_unsafe_math_optimizations
167                                    ? ATTR_CONST_NOTHROW_LIST
168                                    : ATTR_PURE_NOTHROW_LIST))
169
170 DEF_C99_C90RES_BUILTIN(BUILT_IN_ATAN2F,
171                        "__builtin_atan2f",
172                        BT_FN_FLOAT_FLOAT_FLOAT,
173                        flag_errno_math ? ATTR_NOTHROW_LIST
174                                        : (flag_unsafe_math_optimizations
175                                           ? ATTR_CONST_NOTHROW_LIST
176                                           : ATTR_PURE_NOTHROW_LIST))
177
178 DEF_C99_C90RES_BUILTIN(BUILT_IN_ATAN2L,
179                        "__builtin_atan2l",
180                        BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
181                        flag_errno_math ? ATTR_NOTHROW_LIST
182                                        : (flag_unsafe_math_optimizations
183                                           ? ATTR_CONST_NOTHROW_LIST
184                                           : ATTR_PURE_NOTHROW_LIST))
185
186 /* bcmp has traditionally accepted NULL pointers when the length
187    parameter is zero, so don't apply attribute "nonnull".  */
188 DEF_EXT_LIB_BUILTIN(BUILT_IN_BCMP,
189                     "__builtin_bcmp",
190                     BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
191                     ATTR_PURE_NOTHROW_LIST)
192
193 /* bcopy has traditionally accepted NULL pointers when the length
194    parameter is zero, so don't apply attribute "nonnull".  */
195 DEF_EXT_LIB_BUILTIN(BUILT_IN_BCOPY,
196                     "__builtin_bcopy",
197                     BT_FN_VOID_CONST_PTR_PTR_SIZE, 
198                     ATTR_NOTHROW_LIST)
199
200 /* bzero has traditionally accepted a NULL pointer when the length
201    parameter is zero, so don't apply attribute "nonnull".  */
202 DEF_EXT_LIB_BUILTIN(BUILT_IN_BZERO,
203                     "__builtin_bzero",
204                     BT_FN_VOID_PTR_SIZE, 
205                     ATTR_NOTHROW_LIST)
206
207 DEF_C99_BUILTIN(BUILT_IN_CABS,
208                 "__builtin_cabs",
209                 BT_FN_DOUBLE_COMPLEX_DOUBLE,
210                 ATTR_CONST_NOTHROW_LIST)
211
212 DEF_C99_BUILTIN(BUILT_IN_CABSF,
213                 "__builtin_cabsf",
214                 BT_FN_FLOAT_COMPLEX_FLOAT,
215                 ATTR_CONST_NOTHROW_LIST)
216
217 DEF_C99_BUILTIN(BUILT_IN_CABSL,
218                 "__builtin_cabsl",
219                 BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
220                 ATTR_CONST_NOTHROW_LIST)
221
222 DEF_LIB_BUILTIN(BUILT_IN_CALLOC,
223                 "__builtin_calloc",
224                 BT_FN_PTR_SIZE_SIZE,
225                 ATTR_MALLOC_NOTHROW_LIST)
226
227 DEF_LIB_BUILTIN(BUILT_IN_CEIL,
228                 "__builtin_ceil",
229                 BT_FN_DOUBLE_DOUBLE,
230                 ATTR_CONST_NOTHROW_LIST)
231
232 DEF_C99_C90RES_BUILTIN(BUILT_IN_CEILF,
233                        "__builtin_ceilf",
234                        BT_FN_FLOAT_FLOAT,
235                        ATTR_CONST_NOTHROW_LIST)
236
237 DEF_C99_C90RES_BUILTIN(BUILT_IN_CEILL,
238                        "__builtin_ceill",
239                        BT_FN_LONGDOUBLE_LONGDOUBLE,
240                        ATTR_CONST_NOTHROW_LIST)
241
242 DEF_C99_BUILTIN(BUILT_IN_CIMAG,
243                 "__builtin_cimag",
244                 BT_FN_DOUBLE_COMPLEX_DOUBLE,
245                 ATTR_CONST_NOTHROW_LIST)
246
247 DEF_C99_BUILTIN(BUILT_IN_CIMAGF,
248                 "__builtin_cimagf",
249                 BT_FN_FLOAT_COMPLEX_FLOAT,
250                 ATTR_CONST_NOTHROW_LIST)
251
252 DEF_C99_BUILTIN(BUILT_IN_CIMAGL,
253                 "__builtin_cimagl",
254                 BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
255                 ATTR_CONST_NOTHROW_LIST)
256
257 DEF_GCC_BUILTIN(BUILT_IN_CLASSIFY_TYPE,
258                 "__builtin_classify_type",
259                 BT_FN_INT_VAR,
260                 ATTR_NULL)
261
262 DEF_GCC_BUILTIN(BUILT_IN_CLZ,
263                 "__builtin_clz",
264                 BT_FN_INT_INT,
265                 ATTR_CONST_NOTHROW_LIST)
266
267 DEF_GCC_BUILTIN(BUILT_IN_CLZL,
268                 "__builtin_clzl",
269                 BT_FN_INT_LONG,
270                 ATTR_CONST_NOTHROW_LIST)
271
272 DEF_GCC_BUILTIN(BUILT_IN_CLZLL,
273                 "__builtin_clzll",
274                 BT_FN_INT_LONGLONG,
275                 ATTR_CONST_NOTHROW_LIST)
276
277 DEF_C99_BUILTIN(BUILT_IN_CONJ,
278                 "__builtin_conj",
279                 BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
280                 ATTR_CONST_NOTHROW_LIST)
281
282 DEF_C99_BUILTIN(BUILT_IN_CONJF,
283                 "__builtin_conjf",
284                 BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
285                 ATTR_CONST_NOTHROW_LIST)
286
287 DEF_C99_BUILTIN(BUILT_IN_CONJL,
288                 "__builtin_conjl",
289                 BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
290                 ATTR_CONST_NOTHROW_LIST)
291
292 DEF_GCC_BUILTIN(BUILT_IN_CONSTANT_P, 
293                 "__builtin_constant_p", 
294                 BT_FN_INT_VAR,
295                 ATTR_CONST_NOTHROW_LIST)
296
297 DEF_LIB_BUILTIN(BUILT_IN_COS,
298                 "__builtin_cos",
299                 BT_FN_DOUBLE_DOUBLE,
300                 flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
301                                                : ATTR_PURE_NOTHROW_LIST)
302
303 DEF_C99_C90RES_BUILTIN(BUILT_IN_COSF,
304                        "__builtin_cosf",
305                        BT_FN_FLOAT_FLOAT,
306                        flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
307                                                       : ATTR_PURE_NOTHROW_LIST)
308
309 DEF_C99_C90RES_BUILTIN(BUILT_IN_COSL,
310                        "__builtin_cosl",
311                        BT_FN_LONGDOUBLE_LONGDOUBLE,
312                        flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
313                                                       : ATTR_PURE_NOTHROW_LIST)
314
315 DEF_C99_BUILTIN(BUILT_IN_CREAL,
316                 "__builtin_creal",
317                 BT_FN_DOUBLE_COMPLEX_DOUBLE,
318                 ATTR_CONST_NOTHROW_LIST)
319
320 DEF_C99_BUILTIN(BUILT_IN_CREALF,
321                 "__builtin_crealf",
322                 BT_FN_FLOAT_COMPLEX_FLOAT,
323                 ATTR_CONST_NOTHROW_LIST)
324
325 DEF_C99_BUILTIN(BUILT_IN_CREALL,
326                 "__builtin_creall",
327                 BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
328                 ATTR_CONST_NOTHROW_LIST)
329
330 DEF_GCC_BUILTIN(BUILT_IN_CTZ,
331                 "__builtin_ctz",
332                 BT_FN_INT_INT,
333                 ATTR_CONST_NOTHROW_LIST)
334
335 DEF_GCC_BUILTIN(BUILT_IN_CTZL,
336                 "__builtin_ctzl",
337                 BT_FN_INT_LONG,
338                 ATTR_CONST_NOTHROW_LIST)
339
340 DEF_GCC_BUILTIN(BUILT_IN_CTZLL,
341                 "__builtin_ctzll",
342                 BT_FN_INT_LONGLONG,
343                 ATTR_CONST_NOTHROW_LIST)
344
345 DEF_GCC_BUILTIN(BUILT_IN_DWARF_CFA,
346                 "__builtin_dwarf_cfa",
347                 BT_FN_PTR,
348                 ATTR_NULL)
349
350 DEF_GCC_BUILTIN(BUILT_IN_DWARF_SP_COLUMN,
351                 "__builtin_dwarf_sp_column",
352                 BT_FN_UNSIGNED,
353                 ATTR_NULL)
354
355 DEF_GCC_BUILTIN(BUILT_IN_EH_RETURN,
356                 "__builtin_eh_return",
357                 BT_FN_VOID_PTRMODE_PTR,
358                 ATTR_NORETURN_NOTHROW_LIST)
359
360 DEF_GCC_BUILTIN(BUILT_IN_EH_RETURN_DATA_REGNO,
361                 "__builtin_eh_return_data_regno",
362                 BT_FN_INT_INT,
363                 ATTR_NULL)
364
365 DEF_LIB_BUILTIN(BUILT_IN_EXIT,
366                 "__builtin_exit",
367                 BT_FN_VOID_INT,
368                 ATTR_NORETURN_NOTHROW_LIST)
369
370 DEF_EXT_LIB_BUILTIN(BUILT_IN__EXIT,
371                     "__builtin__exit",
372                     BT_FN_VOID_INT,
373                     ATTR_NORETURN_NOTHROW_LIST)
374
375 DEF_C99_BUILTIN(BUILT_IN__EXIT2,
376                 "__builtin__Exit",
377                 BT_FN_VOID_INT,
378                 ATTR_NORETURN_NOTHROW_LIST)
379
380 DEF_LIB_BUILTIN(BUILT_IN_EXP,
381                 "__builtin_exp",
382                 BT_FN_DOUBLE_DOUBLE,
383                 flag_errno_math ? ATTR_NOTHROW_LIST
384                                 : (flag_unsafe_math_optimizations
385                                    ? ATTR_CONST_NOTHROW_LIST
386                                    : ATTR_PURE_NOTHROW_LIST))
387
388 DEF_C99_C90RES_BUILTIN(BUILT_IN_EXPF,
389                        "__builtin_expf",
390                        BT_FN_FLOAT_FLOAT,
391                        flag_errno_math ? ATTR_NOTHROW_LIST
392                                        : (flag_unsafe_math_optimizations
393                                           ? ATTR_CONST_NOTHROW_LIST
394                                           : ATTR_PURE_NOTHROW_LIST))
395
396 DEF_C99_C90RES_BUILTIN(BUILT_IN_EXPL,
397                        "__builtin_expl",
398                        BT_FN_LONGDOUBLE_LONGDOUBLE,
399                        flag_errno_math ? ATTR_NOTHROW_LIST
400                                        : (flag_unsafe_math_optimizations
401                                           ? ATTR_CONST_NOTHROW_LIST
402                                           : ATTR_PURE_NOTHROW_LIST))
403
404 DEF_GCC_BUILTIN(BUILT_IN_EXPECT,
405                 "__builtin_expect",
406                 BT_FN_LONG_LONG_LONG,
407                 ATTR_NULL)
408
409 DEF_GCC_BUILTIN(BUILT_IN_EXTRACT_RETURN_ADDR,
410                 "__builtin_extract_return_addr",
411                 BT_FN_PTR_PTR,
412                 ATTR_NULL)
413
414 DEF_LIB_BUILTIN(BUILT_IN_FABS,
415                 "__builtin_fabs",
416                 BT_FN_DOUBLE_DOUBLE,
417                 ATTR_CONST_NOTHROW_LIST)
418
419 DEF_C99_C90RES_BUILTIN(BUILT_IN_FABSF,
420                        "__builtin_fabsf",
421                        BT_FN_FLOAT_FLOAT,
422                        ATTR_CONST_NOTHROW_LIST)
423
424 DEF_C99_C90RES_BUILTIN(BUILT_IN_FABSL,
425                        "__builtin_fabsl",
426                        BT_FN_LONGDOUBLE_LONGDOUBLE,
427                        ATTR_CONST_NOTHROW_LIST)
428
429 DEF_EXT_LIB_BUILTIN(BUILT_IN_FFS,
430                     "__builtin_ffs",
431                     BT_FN_INT_INT,
432                     ATTR_CONST_NOTHROW_LIST)
433
434 DEF_GCC_BUILTIN(BUILT_IN_FFSL,
435                 "__builtin_ffsl",
436                 BT_FN_INT_LONG,
437                 ATTR_CONST_NOTHROW_LIST)
438
439 DEF_EXT_LIB_BUILTIN(BUILT_IN_FFSLL,
440                     "__builtin_ffsll",
441                     BT_FN_INT_LONGLONG,
442                     ATTR_CONST_NOTHROW_LIST)
443
444 DEF_LIB_BUILTIN(BUILT_IN_FLOOR,
445                 "__builtin_floor",
446                 BT_FN_DOUBLE_DOUBLE,
447                 ATTR_CONST_NOTHROW_LIST)
448
449 DEF_C99_C90RES_BUILTIN(BUILT_IN_FLOORF,
450                        "__builtin_floorf",
451                        BT_FN_FLOAT_FLOAT,
452                        ATTR_CONST_NOTHROW_LIST)
453
454 DEF_C99_C90RES_BUILTIN(BUILT_IN_FLOORL,
455                        "__builtin_floorl",
456                        BT_FN_LONGDOUBLE_LONGDOUBLE,
457                        ATTR_CONST_NOTHROW_LIST)
458
459 DEF_LIB_BUILTIN(BUILT_IN_FMOD,
460                 "__builtin_fmod",
461                 BT_FN_DOUBLE_DOUBLE_DOUBLE,
462                 flag_errno_math ? ATTR_NOTHROW_LIST
463                                 : (flag_unsafe_math_optimizations
464                                    ? ATTR_CONST_NOTHROW_LIST
465                                    : ATTR_PURE_NOTHROW_LIST))
466
467 DEF_C99_C90RES_BUILTIN(BUILT_IN_FMODF,
468                        "__builtin_fmodf",
469                        BT_FN_FLOAT_FLOAT_FLOAT,
470                        flag_errno_math ? ATTR_NOTHROW_LIST
471                                        : (flag_unsafe_math_optimizations
472                                           ? ATTR_CONST_NOTHROW_LIST
473                                           : ATTR_PURE_NOTHROW_LIST))
474
475 DEF_C99_C90RES_BUILTIN(BUILT_IN_FMODL,
476                        "__builtin_fmodl",
477                        BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
478                        flag_errno_math ? ATTR_NOTHROW_LIST
479                                        : (flag_unsafe_math_optimizations
480                                           ? ATTR_CONST_NOTHROW_LIST
481                                           : ATTR_PURE_NOTHROW_LIST))
482
483 DEF_LIB_BUILTIN(BUILT_IN_FPRINTF,
484                 "__builtin_fprintf",
485                 BT_FN_INT_PTR_CONST_STRING_VAR,
486                 ATTR_FORMAT_PRINTF_2_3)
487
488 DEF_EXT_LIB_BUILTIN(BUILT_IN_FPRINTF_UNLOCKED,
489                     "__builtin_fprintf_unlocked",
490                     BT_FN_INT_PTR_CONST_STRING_VAR,
491                     ATTR_FORMAT_PRINTF_2_3)
492
493 DEF_LIB_BUILTIN(BUILT_IN_FPUTC,
494                 "__builtin_fputc",
495                 BT_FN_INT_INT_PTR,
496                 ATTR_NOTHROW_NONNULL_2)
497
498 DEF_EXT_LIB_BUILTIN(BUILT_IN_FPUTC_UNLOCKED,
499                     "__builtin_fputc_unlocked",
500                     BT_FN_INT_INT_PTR,
501                     ATTR_NOTHROW_NONNULL_2)
502
503 DEF_LIB_BUILTIN(BUILT_IN_FPUTS,
504                 "__builtin_fputs",
505                 BT_FN_INT_CONST_STRING_PTR,
506                 ATTR_NOTHROW_NONNULL_1_2)
507
508 DEF_EXT_LIB_BUILTIN(BUILT_IN_FPUTS_UNLOCKED,
509                     "__builtin_fputs_unlocked",
510                     BT_FN_INT_CONST_STRING_PTR,
511                     ATTR_NOTHROW_NONNULL_1_2)
512
513 DEF_GCC_BUILTIN(BUILT_IN_FRAME_ADDRESS,
514                 "__builtin_frame_address",
515                 BT_FN_PTR_UNSIGNED,
516                 ATTR_NULL)
517
518 DEF_GCC_BUILTIN(BUILT_IN_FROB_RETURN_ADDR,
519                 "__builtin_frob_return_addr",
520                 BT_FN_PTR_PTR,
521                 ATTR_NULL)
522
523 DEF_LIB_BUILTIN(BUILT_IN_FWRITE,
524                 "__builtin_fwrite",
525                 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
526                 ATTR_NOTHROW_NONNULL_1_4)
527
528 DEF_EXT_LIB_BUILTIN(BUILT_IN_FWRITE_UNLOCKED,
529                     "__builtin_fwrite_unlocked",
530                     BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
531                     ATTR_NOTHROW_NONNULL_1_4)
532
533 DEF_GCC_BUILTIN(BUILT_IN_HUGE_VAL,
534                 "__builtin_huge_val",
535                 BT_FN_DOUBLE,
536                 ATTR_CONST_NOTHROW_LIST)
537
538 DEF_GCC_BUILTIN(BUILT_IN_HUGE_VALF,
539                 "__builtin_huge_valf",
540                 BT_FN_FLOAT,
541                 ATTR_CONST_NOTHROW_LIST)
542
543 DEF_GCC_BUILTIN(BUILT_IN_HUGE_VALL,
544                 "__builtin_huge_vall",
545                 BT_FN_LONGDOUBLE,
546                 ATTR_CONST_NOTHROW_LIST)
547
548 DEF_C99_BUILTIN(BUILT_IN_IMAXABS,
549                 "__builtin_imaxabs",
550                 BT_FN_INTMAX_INTMAX,
551                 ATTR_CONST_NOTHROW_LIST)
552
553 DEF_EXT_LIB_BUILTIN(BUILT_IN_INDEX,
554                     "__builtin_index",
555                     BT_FN_STRING_CONST_STRING_INT,
556                     ATTR_PURE_NOTHROW_NONNULL_1)
557
558 DEF_GCC_BUILTIN(BUILT_IN_INF,
559                 "__builtin_inf",
560                 BT_FN_DOUBLE,
561                 ATTR_CONST_NOTHROW_LIST)
562
563 DEF_GCC_BUILTIN(BUILT_IN_INFF,
564                 "__builtin_inff",
565                 BT_FN_FLOAT,
566                 ATTR_CONST_NOTHROW_LIST)
567
568 DEF_GCC_BUILTIN(BUILT_IN_INFL,
569                 "__builtin_infl",
570                 BT_FN_LONGDOUBLE,
571                 ATTR_CONST_NOTHROW_LIST)
572
573 DEF_GCC_BUILTIN(BUILT_IN_INIT_DWARF_REG_SIZES,
574                 "__builtin_init_dwarf_reg_size_table",
575                 BT_FN_VOID_PTR,
576                 ATTR_NULL)
577
578 DEF_GCC_BUILTIN(BUILT_IN_ISGREATER, 
579                 "__builtin_isgreater",
580                 BT_FN_INT_VAR,
581                 ATTR_CONST_NOTHROW_LIST)
582
583 DEF_GCC_BUILTIN(BUILT_IN_ISGREATEREQUAL,
584                 "__builtin_isgreaterequal",
585                 BT_FN_INT_VAR,
586                 ATTR_CONST_NOTHROW_LIST)
587
588 DEF_GCC_BUILTIN(BUILT_IN_ISLESS,
589                 "__builtin_isless",
590                 BT_FN_INT_VAR,
591                 ATTR_CONST_NOTHROW_LIST)
592
593 DEF_GCC_BUILTIN(BUILT_IN_ISLESSEQUAL,
594                 "__builtin_islessequal",
595                 BT_FN_INT_VAR,
596                 ATTR_CONST_NOTHROW_LIST)
597
598 DEF_GCC_BUILTIN(BUILT_IN_ISLESSGREATER,
599                 "__builtin_islessgreater",
600                 BT_FN_INT_VAR,
601                 ATTR_CONST_NOTHROW_LIST)
602
603 DEF_GCC_BUILTIN(BUILT_IN_ISUNORDERED,
604                 "__builtin_isunordered",
605                 BT_FN_INT_VAR,
606                 ATTR_CONST_NOTHROW_LIST)
607
608 DEF_LIB_BUILTIN(BUILT_IN_LABS,
609                 "__builtin_labs",
610                 BT_FN_LONG_LONG,
611                 ATTR_CONST_NOTHROW_LIST)
612
613 DEF_C99_BUILTIN(BUILT_IN_LLABS,
614                 "__builtin_llabs",
615                 BT_FN_LONGLONG_LONGLONG,
616                 ATTR_CONST_NOTHROW_LIST)
617
618 DEF_LIB_BUILTIN(BUILT_IN_LOG,
619                 "__builtin_log",
620                 BT_FN_DOUBLE_DOUBLE,
621                 flag_errno_math ? ATTR_NOTHROW_LIST
622                                 : (flag_unsafe_math_optimizations
623                                    ? ATTR_CONST_NOTHROW_LIST
624                                    : ATTR_PURE_NOTHROW_LIST))
625
626 DEF_C99_C90RES_BUILTIN(BUILT_IN_LOGF,
627                        "__builtin_logf",
628                        BT_FN_FLOAT_FLOAT,
629                        flag_errno_math ? ATTR_NOTHROW_LIST
630                                        : (flag_unsafe_math_optimizations
631                                           ? ATTR_CONST_NOTHROW_LIST
632                                           : ATTR_PURE_NOTHROW_LIST))
633
634 DEF_C99_C90RES_BUILTIN(BUILT_IN_LOGL,
635                        "__builtin_logl",
636                        BT_FN_LONGDOUBLE_LONGDOUBLE,
637                        flag_errno_math ? ATTR_NOTHROW_LIST
638                                        : (flag_unsafe_math_optimizations
639                                           ? ATTR_CONST_NOTHROW_LIST
640                                           : ATTR_PURE_NOTHROW_LIST))
641
642 DEF_GCC_BUILTIN(BUILT_IN_LONGJMP,
643                 "__builtin_longjmp",
644                 BT_FN_VOID_PTR_INT,
645                 ATTR_NORETURN_NOTHROW_LIST)
646
647 DEF_LIB_BUILTIN(BUILT_IN_MALLOC,
648                 "__builtin_malloc",
649                 BT_FN_PTR_SIZE,
650                 ATTR_MALLOC_NOTHROW_LIST)
651
652 DEF_LIB_BUILTIN(BUILT_IN_MEMCMP,
653                 "__builtin_memcmp",
654                 BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
655                 ATTR_PURE_NOTHROW_NONNULL_1_2)
656
657 DEF_LIB_BUILTIN(BUILT_IN_MEMCPY,
658                 "__builtin_memcpy",
659                 BT_FN_PTR_PTR_CONST_PTR_SIZE,
660                 ATTR_NOTHROW_NONNULL_1_2)
661
662 DEF_LIB_BUILTIN(BUILT_IN_MEMMOVE,
663                 "__builtin_memmove",
664                 BT_FN_PTR_PTR_CONST_PTR_SIZE,
665                 ATTR_NOTHROW_NONNULL_1_2)
666
667 DEF_EXT_LIB_BUILTIN(BUILT_IN_MEMPCPY,
668                 "__builtin_mempcpy",
669                 BT_FN_PTR_PTR_CONST_PTR_SIZE,
670                 ATTR_NOTHROW_NONNULL_1_2)
671
672 DEF_LIB_BUILTIN(BUILT_IN_MEMSET,
673                 "__builtin_memset",
674                 BT_FN_PTR_PTR_INT_SIZE,
675                 ATTR_NOTHROW_NONNULL_1)
676
677 DEF_LIB_BUILTIN(BUILT_IN_NAN,
678                 "__builtin_nan",
679                 BT_FN_DOUBLE_CONST_STRING,
680                 ATTR_CONST_NOTHROW_NONNULL_1)
681
682 DEF_LIB_BUILTIN(BUILT_IN_NANF,
683                 "__builtin_nanf",
684                 BT_FN_FLOAT_CONST_STRING,
685                 ATTR_CONST_NOTHROW_NONNULL_1)
686
687 DEF_LIB_BUILTIN(BUILT_IN_NANL,
688                 "__builtin_nanl",
689                 BT_FN_LONGDOUBLE_CONST_STRING,
690                 ATTR_CONST_NOTHROW_NONNULL_1)
691
692 DEF_LIB_BUILTIN(BUILT_IN_NANS,
693                 "__builtin_nans",
694                 BT_FN_DOUBLE_CONST_STRING,
695                 ATTR_CONST_NOTHROW_NONNULL_1)
696
697 DEF_LIB_BUILTIN(BUILT_IN_NANSF,
698                 "__builtin_nansf",
699                 BT_FN_FLOAT_CONST_STRING,
700                 ATTR_CONST_NOTHROW_NONNULL_1)
701
702 DEF_LIB_BUILTIN(BUILT_IN_NANSL,
703                 "__builtin_nansl",
704                 BT_FN_LONGDOUBLE_CONST_STRING,
705                 ATTR_CONST_NOTHROW_NONNULL_1)
706
707 DEF_C99_BUILTIN(BUILT_IN_NEARBYINT,
708                 "__builtin_nearbyint",
709                 BT_FN_DOUBLE_DOUBLE,
710                 ATTR_CONST_NOTHROW_LIST)
711
712 DEF_C99_BUILTIN(BUILT_IN_NEARBYINTF,
713                 "__builtin_nearbyintf",
714                 BT_FN_FLOAT_FLOAT,
715                 ATTR_CONST_NOTHROW_LIST)
716
717 DEF_C99_BUILTIN(BUILT_IN_NEARBYINTL,
718                 "__builtin_nearbyintl",
719                 BT_FN_LONGDOUBLE_LONGDOUBLE,
720                 ATTR_CONST_NOTHROW_LIST)
721
722 DEF_GCC_BUILTIN(BUILT_IN_NEXT_ARG,
723                 "__builtin_next_arg",
724                 BT_FN_PTR_VAR,
725                 ATTR_NULL)
726
727 DEF_GCC_BUILTIN(BUILT_IN_PARITY,
728                 "__builtin_parity",
729                 BT_FN_INT_INT,
730                 ATTR_CONST_NOTHROW_LIST)
731
732 DEF_GCC_BUILTIN(BUILT_IN_PARITYL,
733                 "__builtin_parityl",
734                 BT_FN_INT_LONG,
735                 ATTR_CONST_NOTHROW_LIST)
736
737 DEF_GCC_BUILTIN(BUILT_IN_PARITYLL,
738                 "__builtin_parityll",
739                 BT_FN_INT_LONGLONG,
740                 ATTR_CONST_NOTHROW_LIST)
741
742 DEF_GCC_BUILTIN(BUILT_IN_POPCOUNT,
743                 "__builtin_popcount",
744                 BT_FN_INT_INT,
745                 ATTR_CONST_NOTHROW_LIST)
746
747 DEF_GCC_BUILTIN(BUILT_IN_POPCOUNTL,
748                 "__builtin_popcountl",
749                 BT_FN_INT_LONG,
750                 ATTR_CONST_NOTHROW_LIST)
751
752 DEF_GCC_BUILTIN(BUILT_IN_POPCOUNTLL,
753                 "__builtin_popcountll",
754                 BT_FN_INT_LONGLONG,
755                 ATTR_CONST_NOTHROW_LIST)
756
757 DEF_LIB_BUILTIN(BUILT_IN_POW,
758                 "__builtin_pow",
759                 BT_FN_DOUBLE_DOUBLE_DOUBLE,
760                 flag_errno_math ? ATTR_NOTHROW_LIST
761                                 : (flag_unsafe_math_optimizations
762                                    ? ATTR_CONST_NOTHROW_LIST
763                                    : ATTR_PURE_NOTHROW_LIST))
764
765 DEF_C99_C90RES_BUILTIN(BUILT_IN_POWF,
766                        "__builtin_powf",
767                        BT_FN_FLOAT_FLOAT_FLOAT,
768                        flag_errno_math ? ATTR_NOTHROW_LIST
769                                        : (flag_unsafe_math_optimizations
770                                           ? ATTR_CONST_NOTHROW_LIST
771                                           : ATTR_PURE_NOTHROW_LIST))
772
773 DEF_C99_C90RES_BUILTIN(BUILT_IN_POWL,
774                        "__builtin_powl",
775                        BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
776                        flag_errno_math ? ATTR_NOTHROW_LIST
777                                        : (flag_unsafe_math_optimizations
778                                           ? ATTR_CONST_NOTHROW_LIST
779                                           : ATTR_PURE_NOTHROW_LIST))
780
781 DEF_GCC_BUILTIN(BUILT_IN_PREFETCH,
782                 "__builtin_prefetch",
783                 BT_FN_VOID_CONST_PTR_VAR,
784                 ATTR_NULL)
785
786 DEF_LIB_BUILTIN(BUILT_IN_PRINTF,
787                 "__builtin_printf",
788                 BT_FN_INT_CONST_STRING_VAR,
789                 ATTR_FORMAT_PRINTF_1_2)
790
791 DEF_EXT_LIB_BUILTIN(BUILT_IN_PRINTF_UNLOCKED,
792                     "__builtin_printf_unlocked",
793                     BT_FN_INT_CONST_STRING_VAR,
794                     ATTR_FORMAT_PRINTF_1_2)
795
796 DEF_LIB_BUILTIN(BUILT_IN_PUTCHAR,
797                 "__builtin_putchar",
798                 BT_FN_INT_INT,
799                 ATTR_NOTHROW_LIST)
800
801 DEF_EXT_LIB_BUILTIN(BUILT_IN_PUTCHAR_UNLOCKED,
802                     "__builtin_putchar_unlocked",
803                     BT_FN_INT_INT,
804                     ATTR_NOTHROW_LIST)
805
806 DEF_LIB_BUILTIN(BUILT_IN_PUTS,
807                 "__builtin_puts",
808                 BT_FN_INT_CONST_STRING,
809                 ATTR_NOTHROW_NONNULL_1)
810
811 DEF_EXT_LIB_BUILTIN(BUILT_IN_PUTS_UNLOCKED,
812                     "__builtin_puts_unlocked",
813                     BT_FN_INT_CONST_STRING,
814                     ATTR_NOTHROW_NONNULL_1)
815
816 DEF_GCC_BUILTIN(BUILT_IN_RETURN,
817                 "__builtin_return",
818                 BT_FN_VOID_PTR,
819                 ATTR_NORETURN_NOTHROW_LIST)
820
821 DEF_GCC_BUILTIN(BUILT_IN_RETURN_ADDRESS, 
822                 "__builtin_return_address",
823                 BT_FN_PTR_UNSIGNED,
824                 ATTR_NULL)
825
826 DEF_EXT_LIB_BUILTIN(BUILT_IN_RINDEX,
827                     "__builtin_rindex",
828                     BT_FN_STRING_CONST_STRING_INT,
829                     ATTR_PURE_NOTHROW_NONNULL_1)
830
831 DEF_C99_BUILTIN(BUILT_IN_ROUND,
832                 "__builtin_round",
833                 BT_FN_DOUBLE_DOUBLE,
834                 ATTR_CONST_NOTHROW_LIST)
835
836 DEF_C99_BUILTIN(BUILT_IN_ROUNDF,
837                 "__builtin_roundf",
838                 BT_FN_FLOAT_FLOAT,
839                 ATTR_CONST_NOTHROW_LIST)
840
841 DEF_C99_BUILTIN(BUILT_IN_ROUNDL,
842                 "__builtin_roundl",
843                 BT_FN_LONGDOUBLE_LONGDOUBLE,
844                 ATTR_CONST_NOTHROW_LIST)
845
846 DEF_GCC_BUILTIN(BUILT_IN_SAVEREGS,
847                 "__builtin_saveregs",
848                 BT_FN_PTR_VAR,
849                 ATTR_NULL)
850
851 DEF_LIB_BUILTIN(BUILT_IN_SCANF,
852                 "__builtin_scanf",
853                 BT_FN_INT_CONST_STRING_VAR,
854                 ATTR_FORMAT_SCANF_1_2)
855
856 DEF_GCC_BUILTIN(BUILT_IN_SETJMP,
857                 "__builtin_setjmp",
858                 BT_FN_INT_PTR,
859                 ATTR_NULL)
860
861 DEF_LIB_BUILTIN(BUILT_IN_SIN,
862                 "__builtin_sin",
863                 BT_FN_DOUBLE_DOUBLE,
864                 flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
865                                                : ATTR_PURE_NOTHROW_LIST)
866
867 DEF_C99_C90RES_BUILTIN(BUILT_IN_SINF,
868                        "__builtin_sinf",
869                        BT_FN_FLOAT_FLOAT,
870                        flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
871                                                       : ATTR_PURE_NOTHROW_LIST)
872
873 DEF_C99_C90RES_BUILTIN(BUILT_IN_SINL,
874                        "__builtin_sinl",
875                        BT_FN_LONGDOUBLE_LONGDOUBLE,
876                        flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
877                                                       : ATTR_PURE_NOTHROW_LIST)
878
879 DEF_C99_BUILTIN(BUILT_IN_SNPRINTF,
880                 "__builtin_snprintf",
881                 BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
882                 ATTR_FORMAT_PRINTF_3_4)
883
884 DEF_LIB_BUILTIN(BUILT_IN_SPRINTF,
885                 "__builtin_sprintf",
886                 BT_FN_INT_STRING_CONST_STRING_VAR,
887                 ATTR_FORMAT_PRINTF_2_3)
888
889 DEF_LIB_BUILTIN(BUILT_IN_SSCANF,
890                 "__builtin_sscanf",
891                 BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
892                 ATTR_FORMAT_SCANF_2_3)
893
894 DEF_GCC_BUILTIN(BUILT_IN_STDARG_START,          /* backward compat */
895                 "__builtin_stdarg_start",
896                 BT_FN_VOID_VALIST_REF_VAR,
897                 ATTR_NULL)
898
899 DEF_EXT_LIB_BUILTIN(BUILT_IN_STPCPY,
900                     "__builtin_stpcpy",
901                     BT_FN_STRING_STRING_CONST_STRING,
902                     ATTR_NOTHROW_NONNULL_1_2)
903
904 DEF_LIB_BUILTIN(BUILT_IN_STRCAT,
905                 "__builtin_strcat",
906                 BT_FN_STRING_STRING_CONST_STRING,
907                 ATTR_NOTHROW_NONNULL_1_2)
908
909 DEF_LIB_BUILTIN(BUILT_IN_STRCHR,
910                 "__builtin_strchr",
911                 BT_FN_STRING_CONST_STRING_INT,
912                 ATTR_PURE_NOTHROW_NONNULL_1)
913
914 DEF_LIB_BUILTIN(BUILT_IN_STRCMP,
915                 "__builtin_strcmp",
916                 BT_FN_INT_CONST_STRING_CONST_STRING,
917                 ATTR_PURE_NOTHROW_NONNULL_1_2)
918
919 DEF_LIB_BUILTIN(BUILT_IN_STRCPY,
920                 "__builtin_strcpy",
921                 BT_FN_STRING_STRING_CONST_STRING,
922                 ATTR_NOTHROW_NONNULL_1_2)
923
924 DEF_LIB_BUILTIN(BUILT_IN_STRCSPN,
925                 "__builtin_strcspn",
926                 BT_FN_SIZE_CONST_STRING_CONST_STRING,
927                 ATTR_PURE_NOTHROW_NONNULL_1_2)
928
929 DEF_EXT_LIB_BUILTIN(BUILT_IN_STRDUP,
930                     "__builtin_strdup",
931                     BT_FN_STRING_CONST_STRING,
932                     ATTR_MALLOC_NOTHROW_NONNULL_1)
933
934 DEF_LIB_BUILTIN(BUILT_IN_STRLEN,
935                 "__builtin_strlen",
936                 BT_FN_SIZE_CONST_STRING,
937                 ATTR_PURE_NOTHROW_NONNULL_1)
938
939 DEF_LIB_BUILTIN(BUILT_IN_STRNCAT,
940                 "__builtin_strncat",
941                 BT_FN_STRING_STRING_CONST_STRING_SIZE,
942                 ATTR_NOTHROW_NONNULL_1_2)
943
944 DEF_LIB_BUILTIN(BUILT_IN_STRNCMP,
945                 "__builtin_strncmp",
946                 BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
947                 ATTR_PURE_NOTHROW_NONNULL_1_2)
948
949 DEF_LIB_BUILTIN(BUILT_IN_STRNCPY,
950                 "__builtin_strncpy",
951                 BT_FN_STRING_STRING_CONST_STRING_SIZE,
952                 ATTR_NOTHROW_NONNULL_1_2)
953
954 DEF_LIB_BUILTIN(BUILT_IN_STRPBRK,
955                 "__builtin_strpbrk",
956                 BT_FN_STRING_CONST_STRING_CONST_STRING,
957                 ATTR_PURE_NOTHROW_NONNULL_1_2)
958
959 DEF_LIB_BUILTIN(BUILT_IN_STRRCHR,
960                 "__builtin_strrchr",
961                 BT_FN_STRING_CONST_STRING_INT,
962                 ATTR_PURE_NOTHROW_NONNULL_1)
963
964 DEF_LIB_BUILTIN(BUILT_IN_STRSPN,
965                 "__builtin_strspn",
966                 BT_FN_SIZE_CONST_STRING_CONST_STRING,
967                 ATTR_PURE_NOTHROW_NONNULL_1_2)
968
969 DEF_LIB_BUILTIN(BUILT_IN_STRSTR,
970                 "__builtin_strstr",
971                 BT_FN_STRING_CONST_STRING_CONST_STRING,
972                 ATTR_PURE_NOTHROW_NONNULL_1_2)
973
974 DEF_LIB_BUILTIN(BUILT_IN_SQRT,
975                 "__builtin_sqrt",
976                 BT_FN_DOUBLE_DOUBLE,
977                 flag_errno_math ? ATTR_NOTHROW_LIST
978                                 : (flag_unsafe_math_optimizations
979                                    ? ATTR_CONST_NOTHROW_LIST
980                                    : ATTR_PURE_NOTHROW_LIST))
981
982 DEF_C99_C90RES_BUILTIN(BUILT_IN_SQRTF,
983                        "__builtin_sqrtf",
984                        BT_FN_FLOAT_FLOAT,
985                        flag_errno_math ? ATTR_NOTHROW_LIST
986                                        : (flag_unsafe_math_optimizations
987                                           ? ATTR_CONST_NOTHROW_LIST
988                                           : ATTR_PURE_NOTHROW_LIST))
989
990 DEF_C99_C90RES_BUILTIN(BUILT_IN_SQRTL,
991                        "__builtin_sqrtl",
992                        BT_FN_LONGDOUBLE_LONGDOUBLE,
993                        flag_errno_math ? ATTR_NOTHROW_LIST
994                                        : (flag_unsafe_math_optimizations
995                                           ? ATTR_CONST_NOTHROW_LIST
996                                           : ATTR_PURE_NOTHROW_LIST))
997
998 DEF_LIB_BUILTIN(BUILT_IN_TAN,
999                 "__builtin_tan",
1000                 BT_FN_DOUBLE_DOUBLE,
1001                 flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
1002                                                : ATTR_PURE_NOTHROW_LIST)
1003
1004 DEF_C99_C90RES_BUILTIN(BUILT_IN_TANF,
1005                        "__builtin_tanf",
1006                        BT_FN_FLOAT_FLOAT,
1007                        flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
1008                                                       : ATTR_PURE_NOTHROW_LIST)
1009
1010 DEF_C99_C90RES_BUILTIN(BUILT_IN_TANL,
1011                        "__builtin_tanl",
1012                        BT_FN_LONGDOUBLE_LONGDOUBLE,
1013                        flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
1014                                                       : ATTR_PURE_NOTHROW_LIST)
1015
1016 DEF_GCC_BUILTIN(BUILT_IN_TRAP,
1017                 "__builtin_trap",
1018                 BT_FN_VOID,
1019                 ATTR_NORETURN_NOTHROW_LIST)
1020
1021 DEF_C99_BUILTIN(BUILT_IN_TRUNC,
1022                 "__builtin_trunc",
1023                 BT_FN_DOUBLE_DOUBLE,
1024                 ATTR_CONST_NOTHROW_LIST)
1025
1026 DEF_C99_BUILTIN(BUILT_IN_TRUNCF,
1027                 "__builtin_truncf",
1028                 BT_FN_FLOAT_FLOAT,
1029                 ATTR_CONST_NOTHROW_LIST)
1030
1031 DEF_C99_BUILTIN(BUILT_IN_TRUNCL,
1032                 "__builtin_truncl",
1033                 BT_FN_LONGDOUBLE_LONGDOUBLE,
1034                 ATTR_CONST_NOTHROW_LIST)
1035
1036 DEF_GCC_BUILTIN(BUILT_IN_UNWIND_INIT,
1037                 "__builtin_unwind_init",
1038                 BT_FN_VOID,
1039                 ATTR_NULL)
1040
1041 DEF_GCC_BUILTIN(BUILT_IN_VA_COPY,
1042                 "__builtin_va_copy",
1043                 BT_FN_VOID_VALIST_REF_VALIST_ARG,
1044                 ATTR_NULL)
1045
1046 DEF_GCC_BUILTIN(BUILT_IN_VA_END,
1047                 "__builtin_va_end",
1048                 BT_FN_VOID_VALIST_REF,
1049                 ATTR_NULL)
1050
1051 DEF_GCC_BUILTIN(BUILT_IN_VA_START,
1052                 "__builtin_va_start",
1053                 BT_FN_VOID_VALIST_REF_VAR,
1054                 ATTR_NULL)
1055
1056 DEF_LIB_BUILTIN(BUILT_IN_VPRINTF,
1057                 "__builtin_vprintf",
1058                 BT_FN_INT_CONST_STRING_VALIST_ARG,
1059                 ATTR_FORMAT_PRINTF_1_0)
1060
1061 DEF_C99_BUILTIN(BUILT_IN_VSCANF,
1062                 "__builtin_vscanf",
1063                 BT_FN_INT_CONST_STRING_VALIST_ARG,
1064                 ATTR_FORMAT_SCANF_1_0)
1065
1066 DEF_C99_BUILTIN(BUILT_IN_VSNPRINTF,
1067                 "__builtin_vsnprintf",
1068                 BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
1069                 ATTR_FORMAT_PRINTF_3_0)
1070
1071 DEF_LIB_BUILTIN(BUILT_IN_VSPRINTF,
1072                 "__builtin_vsprintf",
1073                 BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
1074                 ATTR_FORMAT_PRINTF_2_0)
1075
1076 DEF_C99_BUILTIN(BUILT_IN_VSSCANF,
1077                 "__builtin_vsscanf",
1078                 BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
1079                 ATTR_FORMAT_SCANF_2_0)
1080