* builtins.def: Alphabetize.
authorRoger Sayle <roger@eyesopen.com>
Thu, 31 Jul 2003 03:16:24 +0000 (03:16 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Thu, 31 Jul 2003 03:16:24 +0000 (03:16 +0000)
From-SVN: r69989

gcc/ChangeLog
gcc/builtins.def

index 13cb927..7729d5d 100644 (file)
@@ -1,3 +1,7 @@
+2003-07-30  Roger Sayle  <roger@eyesopen.com>
+
+       * builtins.def: Alphabetize.
+
 2003-07-30  Matt Kraai  <kraai@alumni.cmu.edu>
 
        * doc/c-tree.texi: Normalize spellings of "lowercase" and
index 47cb7fc..0807450 100644 (file)
@@ -106,337 +106,277 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
               true, true, !flag_isoc99, ATTRS, TARGET_C99_FUNCTIONS)
 
 
+DEF_LIB_BUILTIN(BUILT_IN_ABORT,
+               "__builtin_abort",
+               BT_FN_VOID,
+               ATTR_NORETURN_NOTHROW_LIST)
+
+DEF_LIB_BUILTIN(BUILT_IN_ABS,
+               "__builtin_abs",
+               BT_FN_INT_INT,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_AGGREGATE_INCOMING_ADDRESS,
+               "__builtin_aggregate_incoming_address",
+               BT_FN_PTR_VAR,
+               ATTR_NULL)
+
 DEF_EXT_LIB_BUILTIN(BUILT_IN_ALLOCA,
                    "__builtin_alloca",
                    BT_FN_PTR_SIZE,
                    ATTR_MALLOC_NOTHROW_LIST)
 
-DEF_LIB_BUILTIN(BUILT_IN_ABS,
-               "__builtin_abs",
+DEF_GCC_BUILTIN(BUILT_IN_APPLY,
+               "__builtin_apply",
+               BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
+               ATTR_NULL)
+
+DEF_GCC_BUILTIN(BUILT_IN_APPLY_ARGS,
+               "__builtin_apply_args",
+               BT_FN_PTR_VAR,
+               ATTR_NULL)
+
+DEF_GCC_BUILTIN(BUILT_IN_ARGS_INFO,
+               "__builtin_args_info",
                BT_FN_INT_INT,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_LIB_BUILTIN(BUILT_IN_LABS,
-               "__builtin_labs",
-               BT_FN_LONG_LONG,
-               ATTR_CONST_NOTHROW_LIST)
+               ATTR_NULL)
 
-DEF_LIB_BUILTIN(BUILT_IN_FABS,
-               "__builtin_fabs",
+DEF_LIB_BUILTIN(BUILT_IN_ATAN,
+               "__builtin_atan",
                BT_FN_DOUBLE_DOUBLE,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_C99_C90RES_BUILTIN(BUILT_IN_FABSF,
-                      "__builtin_fabsf",
+               flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                              : ATTR_PURE_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_ATANF,
+                      "__builtin_atanf",
                       BT_FN_FLOAT_FLOAT,
-                      ATTR_CONST_NOTHROW_LIST)
-DEF_C99_C90RES_BUILTIN(BUILT_IN_FABSL,
-                      "__builtin_fabsl",
+                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                                     : ATTR_PURE_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_ATANL,
+                      "__builtin_atanl",
                       BT_FN_LONG_DOUBLE_LONG_DOUBLE,
-                      ATTR_CONST_NOTHROW_LIST)
+                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                                     : ATTR_PURE_NOTHROW_LIST)
 
-DEF_LIB_BUILTIN(BUILT_IN_FLOOR,
-                "__builtin_floor",
-                BT_FN_DOUBLE_DOUBLE,
+DEF_LIB_BUILTIN(BUILT_IN_ATAN2,
+               "__builtin_atan2",
+               BT_FN_DOUBLE_DOUBLE_DOUBLE,
+               flag_errno_math ? ATTR_NOTHROW_LIST
+                               : (flag_unsafe_math_optimizations
+                                  ? ATTR_CONST_NOTHROW_LIST
+                                  : ATTR_PURE_NOTHROW_LIST))
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_ATAN2F,
+                      "__builtin_atan2f",
+                      BT_FN_FLOAT_FLOAT_FLOAT,
+                      flag_errno_math ? ATTR_NOTHROW_LIST
+                                      : (flag_unsafe_math_optimizations
+                                         ? ATTR_CONST_NOTHROW_LIST
+                                         : ATTR_PURE_NOTHROW_LIST))
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_ATAN2L,
+                      "__builtin_atan2l",
+                      BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE,
+                      flag_errno_math ? ATTR_NOTHROW_LIST
+                                      : (flag_unsafe_math_optimizations
+                                         ? ATTR_CONST_NOTHROW_LIST
+                                         : ATTR_PURE_NOTHROW_LIST))
+
+/* bcmp has traditionally accepted NULL pointers when the length
+   parameter is zero, so don't apply attribute "nonnull".  */
+DEF_EXT_LIB_BUILTIN(BUILT_IN_BCMP,
+                   "__builtin_bcmp",
+                   BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
+                   ATTR_PURE_NOTHROW_LIST)
+
+/* bcopy has traditionally accepted NULL pointers when the length
+   parameter is zero, so don't apply attribute "nonnull".  */
+DEF_EXT_LIB_BUILTIN(BUILT_IN_BCOPY,
+                   "__builtin_bcopy",
+                   BT_FN_VOID_CONST_PTR_PTR_SIZE, 
+                   ATTR_NOTHROW_LIST)
+
+/* bzero has traditionally accepted a NULL pointer when the length
+   parameter is zero, so don't apply attribute "nonnull".  */
+DEF_EXT_LIB_BUILTIN(BUILT_IN_BZERO,
+                   "__builtin_bzero",
+                   BT_FN_VOID_PTR_SIZE, 
+                   ATTR_NOTHROW_LIST)
+
+DEF_C99_BUILTIN(BUILT_IN_CABS,
+               "__builtin_cabs",
+               BT_FN_DOUBLE_COMPLEX_DOUBLE,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_BUILTIN(BUILT_IN_CABSF,
+               "__builtin_cabsf",
+               BT_FN_FLOAT_COMPLEX_FLOAT,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_BUILTIN(BUILT_IN_CABSL,
+               "__builtin_cabsl",
+               BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
-DEF_C99_C90RES_BUILTIN(BUILT_IN_FLOORF,
-                      "__builtin_floorf",
-                      BT_FN_FLOAT_FLOAT,
-                      ATTR_CONST_NOTHROW_LIST)
-DEF_C99_C90RES_BUILTIN(BUILT_IN_FLOORL,
-                      "__builtin_floorl",
-                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
-                      ATTR_CONST_NOTHROW_LIST)
+
+DEF_LIB_BUILTIN(BUILT_IN_CALLOC,
+               "__builtin_calloc",
+               BT_FN_PTR_SIZE_SIZE,
+               ATTR_MALLOC_NOTHROW_LIST)
 
 DEF_LIB_BUILTIN(BUILT_IN_CEIL,
                 "__builtin_ceil",
                 BT_FN_DOUBLE_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
+
 DEF_C99_C90RES_BUILTIN(BUILT_IN_CEILF,
                       "__builtin_ceilf",
                       BT_FN_FLOAT_FLOAT,
                       ATTR_CONST_NOTHROW_LIST)
+
 DEF_C99_C90RES_BUILTIN(BUILT_IN_CEILL,
                       "__builtin_ceill",
                       BT_FN_LONG_DOUBLE_LONG_DOUBLE,
                       ATTR_CONST_NOTHROW_LIST)
 
-DEF_C99_BUILTIN(BUILT_IN_ROUND,
-               "__builtin_round",
-               BT_FN_DOUBLE_DOUBLE,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_ROUNDF,
-               "__builtin_roundf",
-               BT_FN_FLOAT_FLOAT,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_ROUNDL,
-               "__builtin_roundl",
-               BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+DEF_C99_BUILTIN(BUILT_IN_CIMAG,
+               "__builtin_cimag",
+               BT_FN_DOUBLE_COMPLEX_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
 
-DEF_C99_BUILTIN(BUILT_IN_TRUNC,
-               "__builtin_trunc",
-               BT_FN_DOUBLE_DOUBLE,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_TRUNCF,
-               "__builtin_truncf",
-               BT_FN_FLOAT_FLOAT,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_TRUNCL,
-               "__builtin_truncl",
-               BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+DEF_C99_BUILTIN(BUILT_IN_CIMAGF,
+               "__builtin_cimagf",
+               BT_FN_FLOAT_COMPLEX_FLOAT,
                ATTR_CONST_NOTHROW_LIST)
 
-DEF_C99_BUILTIN(BUILT_IN_NEARBYINT,
-               "__builtin_nearbyint",
-               BT_FN_DOUBLE_DOUBLE,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_NEARBYINTF,
-               "__builtin_nearbyintf",
-               BT_FN_FLOAT_FLOAT,
+DEF_C99_BUILTIN(BUILT_IN_CIMAGL,
+               "__builtin_cimagl",
+               BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_NEARBYINTL,
-               "__builtin_nearbyintl",
-               BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+
+DEF_GCC_BUILTIN(BUILT_IN_CLASSIFY_TYPE,
+               "__builtin_classify_type",
+               BT_FN_INT_VAR,
+               ATTR_NULL)
+
+DEF_GCC_BUILTIN(BUILT_IN_CLZ,
+               "__builtin_clz",
+               BT_FN_INT_INT,
                ATTR_CONST_NOTHROW_LIST)
 
-DEF_C99_BUILTIN(BUILT_IN_LLABS,
-               "__builtin_llabs",
-               BT_FN_LONGLONG_LONGLONG,
+DEF_GCC_BUILTIN(BUILT_IN_CLZL,
+               "__builtin_clzl",
+               BT_FN_INT_LONG,
                ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_IMAXABS,
-               "__builtin_imaxabs",
-               BT_FN_INTMAX_INTMAX,
+
+DEF_GCC_BUILTIN(BUILT_IN_CLZLL,
+               "__builtin_clzll",
+               BT_FN_INT_LONGLONG,
                ATTR_CONST_NOTHROW_LIST)
+
 DEF_C99_BUILTIN(BUILT_IN_CONJ,
                "__builtin_conj",
                BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
+
 DEF_C99_BUILTIN(BUILT_IN_CONJF,
                "__builtin_conjf",
                BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
                ATTR_CONST_NOTHROW_LIST)
+
 DEF_C99_BUILTIN(BUILT_IN_CONJL,
                "__builtin_conjl",
                BT_FN_COMPLEX_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_CONSTANT_P, 
+               "__builtin_constant_p", 
+               BT_FN_INT_VAR,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_LIB_BUILTIN(BUILT_IN_COS,
+               "__builtin_cos",
+               BT_FN_DOUBLE_DOUBLE,
+               flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                              : ATTR_PURE_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_COSF,
+                      "__builtin_cosf",
+                      BT_FN_FLOAT_FLOAT,
+                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                                     : ATTR_PURE_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_COSL,
+                      "__builtin_cosl",
+                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                                     : ATTR_PURE_NOTHROW_LIST)
+
 DEF_C99_BUILTIN(BUILT_IN_CREAL,
                "__builtin_creal",
                BT_FN_DOUBLE_COMPLEX_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
+
 DEF_C99_BUILTIN(BUILT_IN_CREALF,
                "__builtin_crealf",
                BT_FN_FLOAT_COMPLEX_FLOAT,
                ATTR_CONST_NOTHROW_LIST)
+
 DEF_C99_BUILTIN(BUILT_IN_CREALL,
                "__builtin_creall",
                BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_CIMAG,
-               "__builtin_cimag",
-               BT_FN_DOUBLE_COMPLEX_DOUBLE,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_CIMAGF,
-               "__builtin_cimagf",
-               BT_FN_FLOAT_COMPLEX_FLOAT,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_CIMAGL,
-               "__builtin_cimagl",
-               BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_CABS,
-               "__builtin_cabs",
-               BT_FN_DOUBLE_COMPLEX_DOUBLE,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_CABSF,
-               "__builtin_cabsf",
-               BT_FN_FLOAT_COMPLEX_FLOAT,
+
+DEF_GCC_BUILTIN(BUILT_IN_CTZ,
+               "__builtin_ctz",
+               BT_FN_INT_INT,
                ATTR_CONST_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN_CABSL,
-               "__builtin_cabsl",
-               BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
+
+DEF_GCC_BUILTIN(BUILT_IN_CTZL,
+               "__builtin_ctzl",
+               BT_FN_INT_LONG,
                ATTR_CONST_NOTHROW_LIST)
 
-/* These functions have traditionally accepted NULL pointers when the
-   length parameter is zero, so don't apply attribute "nonnull".  */
-DEF_EXT_LIB_BUILTIN(BUILT_IN_BZERO,
-                   "__builtin_bzero",
-                   BT_FN_VOID_PTR_SIZE, 
-                   ATTR_NOTHROW_LIST)
-DEF_EXT_LIB_BUILTIN(BUILT_IN_BCOPY,
-                   "__builtin_bcopy",
-                   BT_FN_VOID_CONST_PTR_PTR_SIZE, 
-                   ATTR_NOTHROW_LIST)
-DEF_EXT_LIB_BUILTIN(BUILT_IN_BCMP,
-                   "__builtin_bcmp",
-                   BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
-                   ATTR_PURE_NOTHROW_LIST)
+DEF_GCC_BUILTIN(BUILT_IN_CTZLL,
+               "__builtin_ctzll",
+               BT_FN_INT_LONGLONG,
+               ATTR_CONST_NOTHROW_LIST)
 
-DEF_EXT_LIB_BUILTIN(BUILT_IN_FFS,
-                   "__builtin_ffs",
-                   BT_FN_INT_INT,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_CLZ,
-                   "__builtin_clz",
-                   BT_FN_INT_INT,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_CTZ,
-                   "__builtin_ctz",
-                   BT_FN_INT_INT,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_POPCOUNT,
-                   "__builtin_popcount",
-                   BT_FN_INT_INT,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_PARITY,
-                   "__builtin_parity",
-                   BT_FN_INT_INT,
-                   ATTR_CONST_NOTHROW_LIST)
+DEF_GCC_BUILTIN(BUILT_IN_DWARF_CFA,
+               "__builtin_dwarf_cfa",
+               BT_FN_PTR,
+               ATTR_NULL)
 
-DEF_GCC_BUILTIN(BUILT_IN_FFSL,
-                   "__builtin_ffsl",
-                   BT_FN_INT_LONG,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_CLZL,
-                   "__builtin_clzl",
-                   BT_FN_INT_LONG,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_CTZL,
-                   "__builtin_ctzl",
-                   BT_FN_INT_LONG,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_POPCOUNTL,
-                   "__builtin_popcountl",
-                   BT_FN_INT_LONG,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_PARITYL,
-                   "__builtin_parityl",
-                   BT_FN_INT_LONG,
-                   ATTR_CONST_NOTHROW_LIST)
+DEF_GCC_BUILTIN(BUILT_IN_DWARF_SP_COLUMN,
+               "__builtin_dwarf_sp_column",
+               BT_FN_UNSIGNED,
+               ATTR_NULL)
 
-DEF_EXT_LIB_BUILTIN(BUILT_IN_FFSLL,
-                   "__builtin_ffsll",
-                   BT_FN_INT_LONGLONG,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_CLZLL,
-                   "__builtin_clzll",
-                   BT_FN_INT_LONGLONG,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_CTZLL,
-                   "__builtin_ctzll",
-                   BT_FN_INT_LONGLONG,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_POPCOUNTLL,
-                   "__builtin_popcountll",
-                   BT_FN_INT_LONGLONG,
-                   ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_PARITYLL,
-                   "__builtin_parityll",
-                   BT_FN_INT_LONGLONG,
-                   ATTR_CONST_NOTHROW_LIST)
+DEF_GCC_BUILTIN(BUILT_IN_EH_RETURN,
+               "__builtin_eh_return",
+               BT_FN_VOID_PTRMODE_PTR,
+               ATTR_NORETURN_NOTHROW_LIST)
 
-DEF_EXT_LIB_BUILTIN(BUILT_IN_INDEX,
-                   "__builtin_index",
-                   BT_FN_STRING_CONST_STRING_INT,
-                   ATTR_PURE_NOTHROW_NONNULL_1)
-DEF_EXT_LIB_BUILTIN(BUILT_IN_RINDEX,
-                   "__builtin_rindex",
-                   BT_FN_STRING_CONST_STRING_INT,
-                   ATTR_PURE_NOTHROW_NONNULL_1)
+DEF_GCC_BUILTIN(BUILT_IN_EH_RETURN_DATA_REGNO,
+               "__builtin_eh_return_data_regno",
+               BT_FN_INT_INT,
+               ATTR_NULL)
 
-DEF_LIB_BUILTIN(BUILT_IN_MEMCPY,
-               "__builtin_memcpy",
-               BT_FN_PTR_PTR_CONST_PTR_SIZE,
-               ATTR_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_MEMMOVE,
-               "__builtin_memmove",
-               BT_FN_PTR_PTR_CONST_PTR_SIZE,
-               ATTR_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_MEMCMP,
-               "__builtin_memcmp",
-               BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
-               ATTR_PURE_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_MEMSET,
-               "__builtin_memset",
-               BT_FN_PTR_PTR_INT_SIZE,
-               ATTR_NOTHROW_NONNULL_1)
-DEF_EXT_LIB_BUILTIN(BUILT_IN_MEMPCPY,
-               "__builtin_mempcpy",
-               BT_FN_PTR_PTR_CONST_PTR_SIZE,
-               ATTR_NOTHROW_NONNULL_1_2)
+DEF_LIB_BUILTIN(BUILT_IN_EXIT,
+               "__builtin_exit",
+               BT_FN_VOID_INT,
+               ATTR_NORETURN_NOTHROW_LIST)
 
-DEF_LIB_BUILTIN(BUILT_IN_STRCAT,
-               "__builtin_strcat",
-               BT_FN_STRING_STRING_CONST_STRING,
-               ATTR_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_STRNCAT,
-               "__builtin_strncat",
-               BT_FN_STRING_STRING_CONST_STRING_SIZE,
-               ATTR_NOTHROW_NONNULL_1_2)
-DEF_EXT_LIB_BUILTIN(BUILT_IN_STPCPY,
-               "__builtin_stpcpy",
-               BT_FN_STRING_STRING_CONST_STRING,
-               ATTR_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_STRCPY,
-               "__builtin_strcpy",
-               BT_FN_STRING_STRING_CONST_STRING,
-               ATTR_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_STRNCPY,
-               "__builtin_strncpy",
-               BT_FN_STRING_STRING_CONST_STRING_SIZE,
-               ATTR_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_STRCMP,
-               "__builtin_strcmp",
-               BT_FN_INT_CONST_STRING_CONST_STRING,
-               ATTR_PURE_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_STRNCMP,
-               "__builtin_strncmp",
-               BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
-               ATTR_PURE_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_STRLEN,
-               "__builtin_strlen",
-               BT_FN_SIZE_CONST_STRING,
-               ATTR_PURE_NOTHROW_NONNULL_1)
-DEF_LIB_BUILTIN(BUILT_IN_STRSTR,
-               "__builtin_strstr",
-               BT_FN_STRING_CONST_STRING_CONST_STRING,
-               ATTR_PURE_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_STRPBRK,
-               "__builtin_strpbrk",
-               BT_FN_STRING_CONST_STRING_CONST_STRING,
-               ATTR_PURE_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_STRSPN,
-               "__builtin_strspn",
-               BT_FN_SIZE_CONST_STRING_CONST_STRING,
-               ATTR_PURE_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_STRCSPN,
-               "__builtin_strcspn",
-               BT_FN_SIZE_CONST_STRING_CONST_STRING,
-               ATTR_PURE_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_STRCHR,
-               "__builtin_strchr",
-               BT_FN_STRING_CONST_STRING_INT,
-               ATTR_PURE_NOTHROW_NONNULL_1)
-DEF_LIB_BUILTIN(BUILT_IN_STRRCHR,
-               "__builtin_strrchr",
-               BT_FN_STRING_CONST_STRING_INT,
-               ATTR_PURE_NOTHROW_NONNULL_1)
+DEF_EXT_LIB_BUILTIN(BUILT_IN__EXIT,
+                   "__builtin__exit",
+                   BT_FN_VOID_INT,
+                   ATTR_NORETURN_NOTHROW_LIST)
+
+DEF_C99_BUILTIN(BUILT_IN__EXIT2,
+               "__builtin__Exit",
+               BT_FN_VOID_INT,
+               ATTR_NORETURN_NOTHROW_LIST)
 
-DEF_LIB_BUILTIN(BUILT_IN_SQRT,
-               "__builtin_sqrt",
-               BT_FN_DOUBLE_DOUBLE,
-               flag_errno_math ? ATTR_NOTHROW_LIST
-                               : (flag_unsafe_math_optimizations
-                                  ? ATTR_CONST_NOTHROW_LIST
-                                  : ATTR_PURE_NOTHROW_LIST))
-DEF_LIB_BUILTIN(BUILT_IN_SIN,
-               "__builtin_sin",
-               BT_FN_DOUBLE_DOUBLE,
-               flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                              : ATTR_PURE_NOTHROW_LIST)
-DEF_LIB_BUILTIN(BUILT_IN_COS,
-               "__builtin_cos",
-               BT_FN_DOUBLE_DOUBLE,
-               flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                              : ATTR_PURE_NOTHROW_LIST)
 DEF_LIB_BUILTIN(BUILT_IN_EXP,
                "__builtin_exp",
                BT_FN_DOUBLE_DOUBLE,
@@ -444,61 +384,7 @@ DEF_LIB_BUILTIN(BUILT_IN_EXP,
                                : (flag_unsafe_math_optimizations
                                   ? ATTR_CONST_NOTHROW_LIST
                                   : ATTR_PURE_NOTHROW_LIST))
-DEF_LIB_BUILTIN(BUILT_IN_LOG,
-               "__builtin_log",
-               BT_FN_DOUBLE_DOUBLE,
-               flag_errno_math ? ATTR_NOTHROW_LIST
-                               : (flag_unsafe_math_optimizations
-                                  ? ATTR_CONST_NOTHROW_LIST
-                                  : ATTR_PURE_NOTHROW_LIST))
-DEF_LIB_BUILTIN(BUILT_IN_TAN,
-               "__builtin_tan",
-               BT_FN_DOUBLE_DOUBLE,
-               flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                              : ATTR_PURE_NOTHROW_LIST)
-DEF_LIB_BUILTIN(BUILT_IN_ATAN,
-               "__builtin_atan",
-               BT_FN_DOUBLE_DOUBLE,
-               flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                              : ATTR_PURE_NOTHROW_LIST)
-DEF_LIB_BUILTIN(BUILT_IN_POW,
-               "__builtin_pow",
-               BT_FN_DOUBLE_DOUBLE_DOUBLE,
-               flag_errno_math ? ATTR_NOTHROW_LIST
-                               : (flag_unsafe_math_optimizations
-                                  ? ATTR_CONST_NOTHROW_LIST
-                                  : ATTR_PURE_NOTHROW_LIST))
-DEF_LIB_BUILTIN(BUILT_IN_ATAN2,
-               "__builtin_atan2",
-               BT_FN_DOUBLE_DOUBLE_DOUBLE,
-               flag_errno_math ? ATTR_NOTHROW_LIST
-                               : (flag_unsafe_math_optimizations
-                                  ? ATTR_CONST_NOTHROW_LIST
-                                  : ATTR_PURE_NOTHROW_LIST))
-DEF_LIB_BUILTIN(BUILT_IN_FMOD,
-               "__builtin_fmod",
-               BT_FN_DOUBLE_DOUBLE_DOUBLE,
-               flag_errno_math ? ATTR_NOTHROW_LIST
-                               : (flag_unsafe_math_optimizations
-                                  ? ATTR_CONST_NOTHROW_LIST
-                                  : ATTR_PURE_NOTHROW_LIST))
-DEF_C99_C90RES_BUILTIN(BUILT_IN_SQRTF,
-                      "__builtin_sqrtf",
-                      BT_FN_FLOAT_FLOAT,
-                      flag_errno_math ? ATTR_NOTHROW_LIST
-                                      : (flag_unsafe_math_optimizations
-                                         ? ATTR_CONST_NOTHROW_LIST
-                                         : ATTR_PURE_NOTHROW_LIST))
-DEF_C99_C90RES_BUILTIN(BUILT_IN_SINF,
-                      "__builtin_sinf",
-                      BT_FN_FLOAT_FLOAT,
-                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                                     : ATTR_PURE_NOTHROW_LIST)
-DEF_C99_C90RES_BUILTIN(BUILT_IN_COSF,
-                      "__builtin_cosf",
-                      BT_FN_FLOAT_FLOAT,
-                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                                     : ATTR_PURE_NOTHROW_LIST)
+
 DEF_C99_C90RES_BUILTIN(BUILT_IN_EXPF,
                       "__builtin_expf",
                       BT_FN_FLOAT_FLOAT,
@@ -506,99 +392,86 @@ DEF_C99_C90RES_BUILTIN(BUILT_IN_EXPF,
                                       : (flag_unsafe_math_optimizations
                                          ? ATTR_CONST_NOTHROW_LIST
                                          : ATTR_PURE_NOTHROW_LIST))
-DEF_C99_C90RES_BUILTIN(BUILT_IN_LOGF,
-                      "__builtin_logf",
-                      BT_FN_FLOAT_FLOAT,
-                      flag_errno_math ? ATTR_NOTHROW_LIST
-                                      : (flag_unsafe_math_optimizations
-                                         ? ATTR_CONST_NOTHROW_LIST
-                                         : ATTR_PURE_NOTHROW_LIST))
-DEF_C99_C90RES_BUILTIN(BUILT_IN_TANF,
-                      "__builtin_tanf",
-                      BT_FN_FLOAT_FLOAT,
-                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                                     : ATTR_PURE_NOTHROW_LIST)
-DEF_C99_C90RES_BUILTIN(BUILT_IN_ATANF,
-                      "__builtin_atanf",
-                      BT_FN_FLOAT_FLOAT,
-                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                                     : ATTR_PURE_NOTHROW_LIST)
-DEF_C99_C90RES_BUILTIN(BUILT_IN_POWF,
-                      "__builtin_powf",
-                      BT_FN_FLOAT_FLOAT_FLOAT,
-                      flag_errno_math ? ATTR_NOTHROW_LIST
-                                      : (flag_unsafe_math_optimizations
-                                         ? ATTR_CONST_NOTHROW_LIST
-                                         : ATTR_PURE_NOTHROW_LIST))
-DEF_C99_C90RES_BUILTIN(BUILT_IN_ATAN2F,
-                      "__builtin_atan2f",
-                      BT_FN_FLOAT_FLOAT_FLOAT,
-                      flag_errno_math ? ATTR_NOTHROW_LIST
-                                      : (flag_unsafe_math_optimizations
-                                         ? ATTR_CONST_NOTHROW_LIST
-                                         : ATTR_PURE_NOTHROW_LIST))
-DEF_C99_C90RES_BUILTIN(BUILT_IN_FMODF,
-                      "__builtin_fmodf",
-                      BT_FN_FLOAT_FLOAT_FLOAT,
-                      flag_errno_math ? ATTR_NOTHROW_LIST
-                                      : (flag_unsafe_math_optimizations
-                                         ? ATTR_CONST_NOTHROW_LIST
-                                         : ATTR_PURE_NOTHROW_LIST))
-DEF_C99_C90RES_BUILTIN(BUILT_IN_SQRTL,
-                      "__builtin_sqrtl",
-                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
-                      flag_errno_math ? ATTR_NOTHROW_LIST
-                                      : (flag_unsafe_math_optimizations
-                                         ? ATTR_CONST_NOTHROW_LIST
-                                         : ATTR_PURE_NOTHROW_LIST))
-DEF_C99_C90RES_BUILTIN(BUILT_IN_SINL,
-                      "__builtin_sinl",
-                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
-                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                                     : ATTR_PURE_NOTHROW_LIST)
-DEF_C99_C90RES_BUILTIN(BUILT_IN_COSL,
-                      "__builtin_cosl",
-                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
-                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                                     : ATTR_PURE_NOTHROW_LIST)
+
 DEF_C99_C90RES_BUILTIN(BUILT_IN_EXPL,
-                      "__builtin_expl",
-                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
-                      flag_errno_math ? ATTR_NOTHROW_LIST
-                                      : (flag_unsafe_math_optimizations
-                                         ? ATTR_CONST_NOTHROW_LIST
-                                         : ATTR_PURE_NOTHROW_LIST))
-DEF_C99_C90RES_BUILTIN(BUILT_IN_LOGL,
-                      "__builtin_logl",
-                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
-                      flag_errno_math ? ATTR_NOTHROW_LIST
-                                      : (flag_unsafe_math_optimizations
-                                         ? ATTR_CONST_NOTHROW_LIST
-                                         : ATTR_PURE_NOTHROW_LIST))
-DEF_C99_C90RES_BUILTIN(BUILT_IN_TANL,
-                      "__builtin_tanl",
-                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
-                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                                     : ATTR_PURE_NOTHROW_LIST)
-DEF_C99_C90RES_BUILTIN(BUILT_IN_ATANL,
-                      "__builtin_atanl",
+                      "__builtin_expl",
                       BT_FN_LONG_DOUBLE_LONG_DOUBLE,
-                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
-                                                     : ATTR_PURE_NOTHROW_LIST)
-DEF_C99_C90RES_BUILTIN(BUILT_IN_POWL,
-                      "__builtin_powl",
-                      BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE,
                       flag_errno_math ? ATTR_NOTHROW_LIST
                                       : (flag_unsafe_math_optimizations
                                          ? ATTR_CONST_NOTHROW_LIST
                                          : ATTR_PURE_NOTHROW_LIST))
-DEF_C99_C90RES_BUILTIN(BUILT_IN_ATAN2L,
-                      "__builtin_atan2l",
-                      BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE,
+
+DEF_GCC_BUILTIN(BUILT_IN_EXPECT,
+               "__builtin_expect",
+               BT_FN_LONG_LONG_LONG,
+               ATTR_NULL)
+
+DEF_GCC_BUILTIN(BUILT_IN_EXTRACT_RETURN_ADDR,
+               "__builtin_extract_return_addr",
+               BT_FN_PTR_PTR,
+               ATTR_NULL)
+
+DEF_LIB_BUILTIN(BUILT_IN_FABS,
+               "__builtin_fabs",
+               BT_FN_DOUBLE_DOUBLE,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_FABSF,
+                      "__builtin_fabsf",
+                      BT_FN_FLOAT_FLOAT,
+                      ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_FABSL,
+                      "__builtin_fabsl",
+                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+                      ATTR_CONST_NOTHROW_LIST)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_FFS,
+                   "__builtin_ffs",
+                   BT_FN_INT_INT,
+                   ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_FFSL,
+               "__builtin_ffsl",
+               BT_FN_INT_LONG,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_FFSLL,
+                   "__builtin_ffsll",
+                   BT_FN_INT_LONGLONG,
+                   ATTR_CONST_NOTHROW_LIST)
+
+DEF_LIB_BUILTIN(BUILT_IN_FLOOR,
+                "__builtin_floor",
+                BT_FN_DOUBLE_DOUBLE,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_FLOORF,
+                      "__builtin_floorf",
+                      BT_FN_FLOAT_FLOAT,
+                      ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_FLOORL,
+                      "__builtin_floorl",
+                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+                      ATTR_CONST_NOTHROW_LIST)
+
+DEF_LIB_BUILTIN(BUILT_IN_FMOD,
+               "__builtin_fmod",
+               BT_FN_DOUBLE_DOUBLE_DOUBLE,
+               flag_errno_math ? ATTR_NOTHROW_LIST
+                               : (flag_unsafe_math_optimizations
+                                  ? ATTR_CONST_NOTHROW_LIST
+                                  : ATTR_PURE_NOTHROW_LIST))
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_FMODF,
+                      "__builtin_fmodf",
+                      BT_FN_FLOAT_FLOAT_FLOAT,
                       flag_errno_math ? ATTR_NOTHROW_LIST
                                       : (flag_unsafe_math_optimizations
                                          ? ATTR_CONST_NOTHROW_LIST
                                          : ATTR_PURE_NOTHROW_LIST))
+
 DEF_C99_C90RES_BUILTIN(BUILT_IN_FMODL,
                       "__builtin_fmodl",
                       BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE,
@@ -607,40 +480,210 @@ DEF_C99_C90RES_BUILTIN(BUILT_IN_FMODL,
                                          ? ATTR_CONST_NOTHROW_LIST
                                          : ATTR_PURE_NOTHROW_LIST))
 
+DEF_LIB_BUILTIN(BUILT_IN_FPRINTF,
+               "__builtin_fprintf",
+               BT_FN_INT_PTR_CONST_STRING_VAR,
+               ATTR_FORMAT_PRINTF_2_3)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_FPRINTF_UNLOCKED,
+                   "__builtin_fprintf_unlocked",
+                   BT_FN_INT_PTR_CONST_STRING_VAR,
+                   ATTR_FORMAT_PRINTF_2_3)
+
+DEF_LIB_BUILTIN(BUILT_IN_FPUTC,
+               "__builtin_fputc",
+               BT_FN_INT_INT_PTR,
+               ATTR_NOTHROW_NONNULL_2)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_FPUTC_UNLOCKED,
+                   "__builtin_fputc_unlocked",
+                   BT_FN_INT_INT_PTR,
+                   ATTR_NOTHROW_NONNULL_2)
+
+DEF_LIB_BUILTIN(BUILT_IN_FPUTS,
+               "__builtin_fputs",
+               BT_FN_INT_CONST_STRING_PTR,
+               ATTR_NOTHROW_NONNULL_1_2)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_FPUTS_UNLOCKED,
+                   "__builtin_fputs_unlocked",
+                   BT_FN_INT_CONST_STRING_PTR,
+                   ATTR_NOTHROW_NONNULL_1_2)
+
+DEF_GCC_BUILTIN(BUILT_IN_FRAME_ADDRESS,
+               "__builtin_frame_address",
+               BT_FN_PTR_UNSIGNED,
+               ATTR_NULL)
+
+DEF_GCC_BUILTIN(BUILT_IN_FROB_RETURN_ADDR,
+               "__builtin_frob_return_addr",
+               BT_FN_PTR_PTR,
+               ATTR_NULL)
+
+DEF_LIB_BUILTIN(BUILT_IN_FWRITE,
+               "__builtin_fwrite",
+               BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
+               ATTR_NOTHROW_NONNULL_1_4)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_FWRITE_UNLOCKED,
+                   "__builtin_fwrite_unlocked",
+                   BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
+                   ATTR_NOTHROW_NONNULL_1_4)
+
+DEF_GCC_BUILTIN(BUILT_IN_HUGE_VAL,
+               "__builtin_huge_val",
+               BT_FN_DOUBLE,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_HUGE_VALF,
+               "__builtin_huge_valf",
+               BT_FN_FLOAT,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_HUGE_VALL,
+               "__builtin_huge_vall",
+               BT_FN_LONG_DOUBLE,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_BUILTIN(BUILT_IN_IMAXABS,
+               "__builtin_imaxabs",
+               BT_FN_INTMAX_INTMAX,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_INDEX,
+                   "__builtin_index",
+                   BT_FN_STRING_CONST_STRING_INT,
+                   ATTR_PURE_NOTHROW_NONNULL_1)
+
 DEF_GCC_BUILTIN(BUILT_IN_INF,
                "__builtin_inf",
                BT_FN_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
+
 DEF_GCC_BUILTIN(BUILT_IN_INFF,
                "__builtin_inff",
                BT_FN_FLOAT,
                ATTR_CONST_NOTHROW_LIST)
+
 DEF_GCC_BUILTIN(BUILT_IN_INFL,
                "__builtin_infl",
                BT_FN_LONG_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
 
-DEF_GCC_BUILTIN(BUILT_IN_HUGE_VAL,
-               "__builtin_huge_val",
-               BT_FN_DOUBLE,
+DEF_GCC_BUILTIN(BUILT_IN_INIT_DWARF_REG_SIZES,
+               "__builtin_init_dwarf_reg_size_table",
+               BT_FN_VOID_PTR,
+               ATTR_NULL)
+
+DEF_GCC_BUILTIN(BUILT_IN_ISGREATER, 
+               "__builtin_isgreater",
+               BT_FN_INT_VAR,
                ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_HUGE_VALF,
-               "__builtin_huge_valf",
-               BT_FN_FLOAT,
+
+DEF_GCC_BUILTIN(BUILT_IN_ISGREATEREQUAL,
+               "__builtin_isgreaterequal",
+               BT_FN_INT_VAR,
                ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_HUGE_VALL,
-               "__builtin_huge_vall",
-               BT_FN_LONG_DOUBLE,
+
+DEF_GCC_BUILTIN(BUILT_IN_ISLESS,
+               "__builtin_isless",
+               BT_FN_INT_VAR,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_ISLESSEQUAL,
+               "__builtin_islessequal",
+               BT_FN_INT_VAR,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_ISLESSGREATER,
+               "__builtin_islessgreater",
+               BT_FN_INT_VAR,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_ISUNORDERED,
+               "__builtin_isunordered",
+               BT_FN_INT_VAR,
                ATTR_CONST_NOTHROW_LIST)
 
+DEF_LIB_BUILTIN(BUILT_IN_LABS,
+               "__builtin_labs",
+               BT_FN_LONG_LONG,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_BUILTIN(BUILT_IN_LLABS,
+               "__builtin_llabs",
+               BT_FN_LONGLONG_LONGLONG,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_LIB_BUILTIN(BUILT_IN_LOG,
+               "__builtin_log",
+               BT_FN_DOUBLE_DOUBLE,
+               flag_errno_math ? ATTR_NOTHROW_LIST
+                               : (flag_unsafe_math_optimizations
+                                  ? ATTR_CONST_NOTHROW_LIST
+                                  : ATTR_PURE_NOTHROW_LIST))
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_LOGF,
+                      "__builtin_logf",
+                      BT_FN_FLOAT_FLOAT,
+                      flag_errno_math ? ATTR_NOTHROW_LIST
+                                      : (flag_unsafe_math_optimizations
+                                         ? ATTR_CONST_NOTHROW_LIST
+                                         : ATTR_PURE_NOTHROW_LIST))
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_LOGL,
+                      "__builtin_logl",
+                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+                      flag_errno_math ? ATTR_NOTHROW_LIST
+                                      : (flag_unsafe_math_optimizations
+                                         ? ATTR_CONST_NOTHROW_LIST
+                                         : ATTR_PURE_NOTHROW_LIST))
+
+DEF_GCC_BUILTIN(BUILT_IN_LONGJMP,
+               "__builtin_longjmp",
+               BT_FN_VOID_PTR_INT,
+               ATTR_NORETURN_NOTHROW_LIST)
+
+DEF_LIB_BUILTIN(BUILT_IN_MALLOC,
+               "__builtin_malloc",
+               BT_FN_PTR_SIZE,
+               ATTR_MALLOC_NOTHROW_LIST)
+
+DEF_LIB_BUILTIN(BUILT_IN_MEMCMP,
+               "__builtin_memcmp",
+               BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
+
+DEF_LIB_BUILTIN(BUILT_IN_MEMCPY,
+               "__builtin_memcpy",
+               BT_FN_PTR_PTR_CONST_PTR_SIZE,
+               ATTR_NOTHROW_NONNULL_1_2)
+
+DEF_LIB_BUILTIN(BUILT_IN_MEMMOVE,
+               "__builtin_memmove",
+               BT_FN_PTR_PTR_CONST_PTR_SIZE,
+               ATTR_NOTHROW_NONNULL_1_2)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_MEMPCPY,
+               "__builtin_mempcpy",
+               BT_FN_PTR_PTR_CONST_PTR_SIZE,
+               ATTR_NOTHROW_NONNULL_1_2)
+
+DEF_LIB_BUILTIN(BUILT_IN_MEMSET,
+               "__builtin_memset",
+               BT_FN_PTR_PTR_INT_SIZE,
+               ATTR_NOTHROW_NONNULL_1)
+
 DEF_LIB_BUILTIN(BUILT_IN_NAN,
                "__builtin_nan",
                BT_FN_DOUBLE_CONST_STRING,
                ATTR_CONST_NOTHROW_NONNULL_1)
+
 DEF_LIB_BUILTIN(BUILT_IN_NANF,
                "__builtin_nanf",
                BT_FN_FLOAT_CONST_STRING,
                ATTR_CONST_NOTHROW_NONNULL_1)
+
 DEF_LIB_BUILTIN(BUILT_IN_NANL,
                "__builtin_nanl",
                BT_FN_LONG_DOUBLE_CONST_STRING,
@@ -650,305 +693,388 @@ DEF_LIB_BUILTIN(BUILT_IN_NANS,
                "__builtin_nans",
                BT_FN_DOUBLE_CONST_STRING,
                ATTR_CONST_NOTHROW_NONNULL_1)
+
 DEF_LIB_BUILTIN(BUILT_IN_NANSF,
                "__builtin_nansf",
                BT_FN_FLOAT_CONST_STRING,
                ATTR_CONST_NOTHROW_NONNULL_1)
+
 DEF_LIB_BUILTIN(BUILT_IN_NANSL,
                "__builtin_nansl",
                BT_FN_LONG_DOUBLE_CONST_STRING,
                ATTR_CONST_NOTHROW_NONNULL_1)
 
-DEF_GCC_BUILTIN(BUILT_IN_SAVEREGS,
-               "__builtin_saveregs",
-               BT_FN_PTR_VAR,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_CLASSIFY_TYPE,
-               "__builtin_classify_type",
-               BT_FN_INT_VAR,
-               ATTR_NULL)
+DEF_C99_BUILTIN(BUILT_IN_NEARBYINT,
+               "__builtin_nearbyint",
+               BT_FN_DOUBLE_DOUBLE,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_BUILTIN(BUILT_IN_NEARBYINTF,
+               "__builtin_nearbyintf",
+               BT_FN_FLOAT_FLOAT,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_BUILTIN(BUILT_IN_NEARBYINTL,
+               "__builtin_nearbyintl",
+               BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+               ATTR_CONST_NOTHROW_LIST)
+
 DEF_GCC_BUILTIN(BUILT_IN_NEXT_ARG,
                "__builtin_next_arg",
                BT_FN_PTR_VAR,
                ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_ARGS_INFO,
-               "__builtin_args_info",
+
+DEF_GCC_BUILTIN(BUILT_IN_PARITY,
+               "__builtin_parity",
                BT_FN_INT_INT,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_CONSTANT_P, 
-               "__builtin_constant_p", 
-               BT_FN_INT_VAR,
                ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_FRAME_ADDRESS,
-               "__builtin_frame_address",
-               BT_FN_PTR_UNSIGNED,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_RETURN_ADDRESS, 
-               "__builtin_return_address",
-               BT_FN_PTR_UNSIGNED,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_AGGREGATE_INCOMING_ADDRESS,
-               "__builtin_aggregate_incoming_address",
-               BT_FN_PTR_VAR,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_APPLY_ARGS,
-               "__builtin_apply_args",
-               BT_FN_PTR_VAR,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_APPLY,
-               "__builtin_apply",
-               BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_RETURN,
-               "__builtin_return",
-               BT_FN_VOID_PTR,
-               ATTR_NORETURN_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_SETJMP,
-               "__builtin_setjmp",
-               BT_FN_INT_PTR,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_LONGJMP,
-               "__builtin_longjmp",
-               BT_FN_VOID_PTR_INT,
-               ATTR_NORETURN_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_TRAP,
-               "__builtin_trap",
-               BT_FN_VOID,
-               ATTR_NORETURN_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_PARITYL,
+               "__builtin_parityl",
+               BT_FN_INT_LONG,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_PARITYLL,
+               "__builtin_parityll",
+               BT_FN_INT_LONGLONG,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_POPCOUNT,
+               "__builtin_popcount",
+               BT_FN_INT_INT,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_POPCOUNTL,
+               "__builtin_popcountl",
+               BT_FN_INT_LONG,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_POPCOUNTLL,
+               "__builtin_popcountll",
+               BT_FN_INT_LONGLONG,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_LIB_BUILTIN(BUILT_IN_POW,
+               "__builtin_pow",
+               BT_FN_DOUBLE_DOUBLE_DOUBLE,
+               flag_errno_math ? ATTR_NOTHROW_LIST
+                               : (flag_unsafe_math_optimizations
+                                  ? ATTR_CONST_NOTHROW_LIST
+                                  : ATTR_PURE_NOTHROW_LIST))
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_POWF,
+                      "__builtin_powf",
+                      BT_FN_FLOAT_FLOAT_FLOAT,
+                      flag_errno_math ? ATTR_NOTHROW_LIST
+                                      : (flag_unsafe_math_optimizations
+                                         ? ATTR_CONST_NOTHROW_LIST
+                                         : ATTR_PURE_NOTHROW_LIST))
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_POWL,
+                      "__builtin_powl",
+                      BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE,
+                      flag_errno_math ? ATTR_NOTHROW_LIST
+                                      : (flag_unsafe_math_optimizations
+                                         ? ATTR_CONST_NOTHROW_LIST
+                                         : ATTR_PURE_NOTHROW_LIST))
+
 DEF_GCC_BUILTIN(BUILT_IN_PREFETCH,
                "__builtin_prefetch",
                BT_FN_VOID_CONST_PTR_VAR,
                ATTR_NULL)
 
-/* stdio.h builtins (without FILE *).  */
-
 DEF_LIB_BUILTIN(BUILT_IN_PRINTF,
                "__builtin_printf",
                BT_FN_INT_CONST_STRING_VAR,
                ATTR_FORMAT_PRINTF_1_2)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_PRINTF_UNLOCKED,
+                   "__builtin_printf_unlocked",
+                   BT_FN_INT_CONST_STRING_VAR,
+                   ATTR_FORMAT_PRINTF_1_2)
+
 DEF_LIB_BUILTIN(BUILT_IN_PUTCHAR,
                "__builtin_putchar",
                BT_FN_INT_INT,
                ATTR_NOTHROW_LIST)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_PUTCHAR_UNLOCKED,
+                   "__builtin_putchar_unlocked",
+                   BT_FN_INT_INT,
+                   ATTR_NOTHROW_LIST)
+
 DEF_LIB_BUILTIN(BUILT_IN_PUTS,
                "__builtin_puts",
                BT_FN_INT_CONST_STRING,
                ATTR_NOTHROW_NONNULL_1)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_PUTS_UNLOCKED,
+                   "__builtin_puts_unlocked",
+                   BT_FN_INT_CONST_STRING,
+                   ATTR_NOTHROW_NONNULL_1)
+
+DEF_GCC_BUILTIN(BUILT_IN_RETURN,
+               "__builtin_return",
+               BT_FN_VOID_PTR,
+               ATTR_NORETURN_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_RETURN_ADDRESS, 
+               "__builtin_return_address",
+               BT_FN_PTR_UNSIGNED,
+               ATTR_NULL)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_RINDEX,
+                   "__builtin_rindex",
+                   BT_FN_STRING_CONST_STRING_INT,
+                   ATTR_PURE_NOTHROW_NONNULL_1)
+
+DEF_C99_BUILTIN(BUILT_IN_ROUND,
+               "__builtin_round",
+               BT_FN_DOUBLE_DOUBLE,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_BUILTIN(BUILT_IN_ROUNDF,
+               "__builtin_roundf",
+               BT_FN_FLOAT_FLOAT,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_C99_BUILTIN(BUILT_IN_ROUNDL,
+               "__builtin_roundl",
+               BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+               ATTR_CONST_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_SAVEREGS,
+               "__builtin_saveregs",
+               BT_FN_PTR_VAR,
+               ATTR_NULL)
+
+DEF_LIB_BUILTIN(BUILT_IN_SCANF,
+               "__builtin_scanf",
+               BT_FN_INT_CONST_STRING_VAR,
+               ATTR_FORMAT_SCANF_1_2)
+
+DEF_GCC_BUILTIN(BUILT_IN_SETJMP,
+               "__builtin_setjmp",
+               BT_FN_INT_PTR,
+               ATTR_NULL)
+
+DEF_LIB_BUILTIN(BUILT_IN_SIN,
+               "__builtin_sin",
+               BT_FN_DOUBLE_DOUBLE,
+               flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                              : ATTR_PURE_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_SINF,
+                      "__builtin_sinf",
+                      BT_FN_FLOAT_FLOAT,
+                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                                     : ATTR_PURE_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_SINL,
+                      "__builtin_sinl",
+                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                                     : ATTR_PURE_NOTHROW_LIST)
+
 DEF_C99_BUILTIN(BUILT_IN_SNPRINTF,
                "__builtin_snprintf",
                BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
                ATTR_FORMAT_PRINTF_3_4)
+
 DEF_LIB_BUILTIN(BUILT_IN_SPRINTF,
                "__builtin_sprintf",
                BT_FN_INT_STRING_CONST_STRING_VAR,
                ATTR_FORMAT_PRINTF_2_3)
-DEF_LIB_BUILTIN(BUILT_IN_SCANF,
-               "__builtin_scanf",
-               BT_FN_INT_CONST_STRING_VAR,
-               ATTR_FORMAT_SCANF_1_2)
+
 DEF_LIB_BUILTIN(BUILT_IN_SSCANF,
                "__builtin_sscanf",
                BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
                ATTR_FORMAT_SCANF_2_3)
-DEF_LIB_BUILTIN(BUILT_IN_VPRINTF,
-               "__builtin_vprintf",
-               BT_FN_INT_CONST_STRING_VALIST_ARG,
-               ATTR_FORMAT_PRINTF_1_0)
-DEF_C99_BUILTIN(BUILT_IN_VSCANF,
-               "__builtin_vscanf",
-               BT_FN_INT_CONST_STRING_VALIST_ARG,
-               ATTR_FORMAT_SCANF_1_0)
-DEF_C99_BUILTIN(BUILT_IN_VSSCANF,
-               "__builtin_vsscanf",
-               BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
-               ATTR_FORMAT_SCANF_2_0)
-DEF_C99_BUILTIN(BUILT_IN_VSNPRINTF,
-               "__builtin_vsnprintf",
-               BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
-               ATTR_FORMAT_PRINTF_3_0)
-DEF_LIB_BUILTIN(BUILT_IN_VSPRINTF,
-               "__builtin_vsprintf",
-               BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
-               ATTR_FORMAT_PRINTF_2_0)
 
+DEF_GCC_BUILTIN(BUILT_IN_STDARG_START,         /* backward compat */
+               "__builtin_stdarg_start",
+               BT_FN_VOID_VALIST_REF_VAR,
+               ATTR_NULL)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_STPCPY,
+                   "__builtin_stpcpy",
+                   BT_FN_STRING_STRING_CONST_STRING,
+                   ATTR_NOTHROW_NONNULL_1_2)
+
+DEF_LIB_BUILTIN(BUILT_IN_STRCAT,
+               "__builtin_strcat",
+               BT_FN_STRING_STRING_CONST_STRING,
+               ATTR_NOTHROW_NONNULL_1_2)
+
+DEF_LIB_BUILTIN(BUILT_IN_STRCHR,
+               "__builtin_strchr",
+               BT_FN_STRING_CONST_STRING_INT,
+               ATTR_PURE_NOTHROW_NONNULL_1)
+
+DEF_LIB_BUILTIN(BUILT_IN_STRCMP,
+               "__builtin_strcmp",
+               BT_FN_INT_CONST_STRING_CONST_STRING,
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
+
+DEF_LIB_BUILTIN(BUILT_IN_STRCPY,
+               "__builtin_strcpy",
+               BT_FN_STRING_STRING_CONST_STRING,
+               ATTR_NOTHROW_NONNULL_1_2)
+
+DEF_LIB_BUILTIN(BUILT_IN_STRCSPN,
+               "__builtin_strcspn",
+               BT_FN_SIZE_CONST_STRING_CONST_STRING,
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_STRDUP,
+                   "__builtin_strdup",
+                   BT_FN_STRING_CONST_STRING,
+                   ATTR_MALLOC_NOTHROW_NONNULL_1)
 
-/* stdio.h builtins (with FILE *).  */
+DEF_LIB_BUILTIN(BUILT_IN_STRLEN,
+               "__builtin_strlen",
+               BT_FN_SIZE_CONST_STRING,
+               ATTR_PURE_NOTHROW_NONNULL_1)
 
-/* Declare the __builtin_ style with arguments and the regular style
-   without them.  We rely on stdio.h to supply the arguments for the
-   regular style declaration since we had to use void* instead of
-   FILE* in the __builtin_ prototype supplied here.  */
+DEF_LIB_BUILTIN(BUILT_IN_STRNCAT,
+               "__builtin_strncat",
+               BT_FN_STRING_STRING_CONST_STRING_SIZE,
+               ATTR_NOTHROW_NONNULL_1_2)
 
-DEF_LIB_BUILTIN(BUILT_IN_FPUTC,
-               "__builtin_fputc",
-               BT_FN_INT_INT_PTR,
-               ATTR_NOTHROW_NONNULL_2)
-DEF_LIB_BUILTIN(BUILT_IN_FPUTS,
-               "__builtin_fputs",
-               BT_FN_INT_CONST_STRING_PTR,
+DEF_LIB_BUILTIN(BUILT_IN_STRNCMP,
+               "__builtin_strncmp",
+               BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
+
+DEF_LIB_BUILTIN(BUILT_IN_STRNCPY,
+               "__builtin_strncpy",
+               BT_FN_STRING_STRING_CONST_STRING_SIZE,
                ATTR_NOTHROW_NONNULL_1_2)
-DEF_LIB_BUILTIN(BUILT_IN_FWRITE,
-               "__builtin_fwrite",
-               BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
-               ATTR_NOTHROW_NONNULL_1_4)
-DEF_LIB_BUILTIN(BUILT_IN_FPRINTF,
-               "__builtin_fprintf",
-               BT_FN_INT_PTR_CONST_STRING_VAR,
-               ATTR_FORMAT_PRINTF_2_3)
 
-/* stdio unlocked builtins (without FILE *).  */
+DEF_LIB_BUILTIN(BUILT_IN_STRPBRK,
+               "__builtin_strpbrk",
+               BT_FN_STRING_CONST_STRING_CONST_STRING,
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
 
-DEF_EXT_LIB_BUILTIN(BUILT_IN_PUTCHAR_UNLOCKED,
-                   "__builtin_putchar_unlocked",
-                   BT_FN_INT_INT,
-                   ATTR_NOTHROW_LIST)
-DEF_EXT_LIB_BUILTIN(BUILT_IN_PUTS_UNLOCKED,
-                   "__builtin_puts_unlocked",
-                   BT_FN_INT_CONST_STRING,
-                   ATTR_NOTHROW_NONNULL_1)
-DEF_EXT_LIB_BUILTIN(BUILT_IN_PRINTF_UNLOCKED,
-                   "__builtin_printf_unlocked",
-                   BT_FN_INT_CONST_STRING_VAR,
-                   ATTR_FORMAT_PRINTF_1_2)
+DEF_LIB_BUILTIN(BUILT_IN_STRRCHR,
+               "__builtin_strrchr",
+               BT_FN_STRING_CONST_STRING_INT,
+               ATTR_PURE_NOTHROW_NONNULL_1)
+
+DEF_LIB_BUILTIN(BUILT_IN_STRSPN,
+               "__builtin_strspn",
+               BT_FN_SIZE_CONST_STRING_CONST_STRING,
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
+
+DEF_LIB_BUILTIN(BUILT_IN_STRSTR,
+               "__builtin_strstr",
+               BT_FN_STRING_CONST_STRING_CONST_STRING,
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
 
-/* stdio unlocked builtins (with FILE *).  */
+DEF_LIB_BUILTIN(BUILT_IN_SQRT,
+               "__builtin_sqrt",
+               BT_FN_DOUBLE_DOUBLE,
+               flag_errno_math ? ATTR_NOTHROW_LIST
+                               : (flag_unsafe_math_optimizations
+                                  ? ATTR_CONST_NOTHROW_LIST
+                                  : ATTR_PURE_NOTHROW_LIST))
 
-/* Declare the __builtin_ style with arguments and the regular style
-   without them.  We rely on stdio.h to supply the arguments for the
-   regular style declaration since we had to use void* instead of
-   FILE* in the __builtin_ prototype supplied here.  */
+DEF_C99_C90RES_BUILTIN(BUILT_IN_SQRTF,
+                      "__builtin_sqrtf",
+                      BT_FN_FLOAT_FLOAT,
+                      flag_errno_math ? ATTR_NOTHROW_LIST
+                                      : (flag_unsafe_math_optimizations
+                                         ? ATTR_CONST_NOTHROW_LIST
+                                         : ATTR_PURE_NOTHROW_LIST))
 
-DEF_EXT_LIB_BUILTIN(BUILT_IN_FPUTC_UNLOCKED,
-                   "__builtin_fputc_unlocked",
-                   BT_FN_INT_INT_PTR,
-                   ATTR_NOTHROW_NONNULL_2)
-DEF_EXT_LIB_BUILTIN(BUILT_IN_FPUTS_UNLOCKED,
-                   "__builtin_fputs_unlocked",
-                   BT_FN_INT_CONST_STRING_PTR,
-                   ATTR_NOTHROW_NONNULL_1_2)
-DEF_EXT_LIB_BUILTIN(BUILT_IN_FWRITE_UNLOCKED,
-                   "__builtin_fwrite_unlocked",
-                   BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
-                   ATTR_NOTHROW_NONNULL_1_4)
-DEF_EXT_LIB_BUILTIN(BUILT_IN_FPRINTF_UNLOCKED,
-                   "__builtin_fprintf_unlocked",
-                   BT_FN_INT_PTR_CONST_STRING_VAR,
-                   ATTR_FORMAT_PRINTF_2_3)
+DEF_C99_C90RES_BUILTIN(BUILT_IN_SQRTL,
+                      "__builtin_sqrtl",
+                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+                      flag_errno_math ? ATTR_NOTHROW_LIST
+                                      : (flag_unsafe_math_optimizations
+                                         ? ATTR_CONST_NOTHROW_LIST
+                                         : ATTR_PURE_NOTHROW_LIST))
 
-  /* ISO C99 floating point unordered comparisons.  */
-DEF_GCC_BUILTIN(BUILT_IN_ISGREATER, 
-               "__builtin_isgreater",
-               BT_FN_INT_VAR,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_ISGREATEREQUAL,
-               "__builtin_isgreaterequal",
-               BT_FN_INT_VAR,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_ISLESS,
-               "__builtin_isless",
-               BT_FN_INT_VAR,
-               ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_ISLESSEQUAL,
-               "__builtin_islessequal",
-               BT_FN_INT_VAR,
+DEF_LIB_BUILTIN(BUILT_IN_TAN,
+               "__builtin_tan",
+               BT_FN_DOUBLE_DOUBLE,
+               flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                              : ATTR_PURE_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_TANF,
+                      "__builtin_tanf",
+                      BT_FN_FLOAT_FLOAT,
+                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                                     : ATTR_PURE_NOTHROW_LIST)
+
+DEF_C99_C90RES_BUILTIN(BUILT_IN_TANL,
+                      "__builtin_tanl",
+                      BT_FN_LONG_DOUBLE_LONG_DOUBLE,
+                      flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST
+                                                     : ATTR_PURE_NOTHROW_LIST)
+
+DEF_GCC_BUILTIN(BUILT_IN_TRAP,
+               "__builtin_trap",
+               BT_FN_VOID,
+               ATTR_NORETURN_NOTHROW_LIST)
+
+DEF_C99_BUILTIN(BUILT_IN_TRUNC,
+               "__builtin_trunc",
+               BT_FN_DOUBLE_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_ISLESSGREATER,
-               "__builtin_islessgreater",
-               BT_FN_INT_VAR,
+
+DEF_C99_BUILTIN(BUILT_IN_TRUNCF,
+               "__builtin_truncf",
+               BT_FN_FLOAT_FLOAT,
                ATTR_CONST_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_ISUNORDERED,
-               "__builtin_isunordered",
-               BT_FN_INT_VAR,
+
+DEF_C99_BUILTIN(BUILT_IN_TRUNCL,
+               "__builtin_truncl",
+               BT_FN_LONG_DOUBLE_LONG_DOUBLE,
                ATTR_CONST_NOTHROW_LIST)
 
-/* Various hooks for the DWARF 2 __throw routine.  */
 DEF_GCC_BUILTIN(BUILT_IN_UNWIND_INIT,
                "__builtin_unwind_init",
                BT_FN_VOID,
                ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_DWARF_CFA,
-               "__builtin_dwarf_cfa",
-               BT_FN_PTR,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_DWARF_SP_COLUMN,
-               "__builtin_dwarf_sp_column",
-               BT_FN_UNSIGNED,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_INIT_DWARF_REG_SIZES,
-               "__builtin_init_dwarf_reg_size_table",
-               BT_FN_VOID_PTR,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_FROB_RETURN_ADDR,
-               "__builtin_frob_return_addr",
-               BT_FN_PTR_PTR,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_EXTRACT_RETURN_ADDR,
-               "__builtin_extract_return_addr",
-               BT_FN_PTR_PTR,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_EH_RETURN,
-               "__builtin_eh_return",
-               BT_FN_VOID_PTRMODE_PTR,
-               ATTR_NORETURN_NOTHROW_LIST)
-DEF_GCC_BUILTIN(BUILT_IN_EH_RETURN_DATA_REGNO,
-               "__builtin_eh_return_data_regno",
-               BT_FN_INT_INT,
-               ATTR_NULL)
 
-/* Variable argument list (stdarg.h) support */
-DEF_GCC_BUILTIN(BUILT_IN_VA_START,
-               "__builtin_va_start",
-               BT_FN_VOID_VALIST_REF_VAR,
-               ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_STDARG_START,         /* backward compat */
-               "__builtin_stdarg_start",
-               BT_FN_VOID_VALIST_REF_VAR,
+DEF_GCC_BUILTIN(BUILT_IN_VA_COPY,
+               "__builtin_va_copy",
+               BT_FN_VOID_VALIST_REF_VALIST_ARG,
                ATTR_NULL)
+
 DEF_GCC_BUILTIN(BUILT_IN_VA_END,
                "__builtin_va_end",
                BT_FN_VOID_VALIST_REF,
                ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_VA_COPY,
-               "__builtin_va_copy",
-               BT_FN_VOID_VALIST_REF_VALIST_ARG,
-               ATTR_NULL)
 
-DEF_GCC_BUILTIN(BUILT_IN_EXPECT,
-               "__builtin_expect",
-               BT_FN_LONG_LONG_LONG,
+DEF_GCC_BUILTIN(BUILT_IN_VA_START,
+               "__builtin_va_start",
+               BT_FN_VOID_VALIST_REF_VAR,
                ATTR_NULL)
 
-/* Declare abort, exit, _exit and _Exit */
-DEF_LIB_BUILTIN(BUILT_IN_ABORT,
-                "__builtin_abort",
-               BT_FN_VOID,
-               ATTR_NORETURN_NOTHROW_LIST)
-DEF_LIB_BUILTIN(BUILT_IN_EXIT,
-               "__builtin_exit",
-               BT_FN_VOID_INT,
-               ATTR_NORETURN_NOTHROW_LIST)
-DEF_EXT_LIB_BUILTIN(BUILT_IN__EXIT,
-                   "__builtin__exit",
-                   BT_FN_VOID_INT,
-                   ATTR_NORETURN_NOTHROW_LIST)
-DEF_C99_BUILTIN(BUILT_IN__EXIT2,
-               "__builtin__Exit",
-               BT_FN_VOID_INT,
-               ATTR_NORETURN_NOTHROW_LIST)
+DEF_LIB_BUILTIN(BUILT_IN_VPRINTF,
+               "__builtin_vprintf",
+               BT_FN_INT_CONST_STRING_VALIST_ARG,
+               ATTR_FORMAT_PRINTF_1_0)
 
-/* Declare malloc, calloc and strdup.  */
-DEF_LIB_BUILTIN(BUILT_IN_MALLOC,
-               "__builtin_malloc",
-               BT_FN_PTR_SIZE,
-               ATTR_MALLOC_NOTHROW_LIST)
+DEF_C99_BUILTIN(BUILT_IN_VSCANF,
+               "__builtin_vscanf",
+               BT_FN_INT_CONST_STRING_VALIST_ARG,
+               ATTR_FORMAT_SCANF_1_0)
 
-DEF_LIB_BUILTIN(BUILT_IN_CALLOC,
-               "__builtin_calloc",
-               BT_FN_PTR_SIZE_SIZE,
-               ATTR_MALLOC_NOTHROW_LIST)
+DEF_C99_BUILTIN(BUILT_IN_VSNPRINTF,
+               "__builtin_vsnprintf",
+               BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
+               ATTR_FORMAT_PRINTF_3_0)
 
-DEF_EXT_LIB_BUILTIN(BUILT_IN_STRDUP,
-                   "__builtin_strdup",
-                   BT_FN_STRING_CONST_STRING,
-                   ATTR_MALLOC_NOTHROW_NONNULL_1)
+DEF_LIB_BUILTIN(BUILT_IN_VSPRINTF,
+               "__builtin_vsprintf",
+               BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
+               ATTR_FORMAT_PRINTF_2_0)
+
+DEF_C99_BUILTIN(BUILT_IN_VSSCANF,
+               "__builtin_vsscanf",
+               BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
+               ATTR_FORMAT_SCANF_2_0)