OSDN Git Service

* real.h (ieee_extended_intel_96_round_53_format): New.
[pf3gnuchains/gcc-fork.git] / gcc / builtins.def
index 1d456e9..5f814bb 100644 (file)
@@ -85,9 +85,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
    we ignore the version of these builtins that does not begin with
    __builtin.  */
 #undef DEF_EXT_FALLBACK_BUILTIN
-#define DEF_EXT_FALLBACK_BUILTIN(ENUM, NAME, TYPE)     \
+#define DEF_EXT_FALLBACK_BUILTIN(ENUM, NAME, TYPE, ATTRS)      \
   DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE,        \
-              false, true, true, ATTR_NOTHROW_LIST, true)
+              false, true, true, ATTRS, true)
 
 /* A library builtin (like __builtin_strchr) is a builtin equivalent
    of an ANSI/ISO standard library function.  In addition to the
@@ -285,10 +285,25 @@ 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,
+               ATTR_CONST_NOTHROW_LIST)
+DEF_C99_BUILTIN(BUILT_IN_CABSL,
+               "__builtin_cabsl",
+               BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
+               ATTR_CONST_NOTHROW_LIST)
 
-/* The system prototypes for `bzero' and `bcmp' functions have many
-   variations, so don't specify parameters to avoid conflicts.  The
-   expand_* functions check the argument types anyway.  */
+/* The system prototypes for `bzero', 'bcopy' and `bcmp' functions
+   have many variations, so don't specify parameters to avoid
+   conflicts.  The expand_* functions check the argument types anyway.
+   In addition, these functions have traditionally accepted NULL
+   pointers when the length parameter is zero, so don't apply
+   attribute "nonnull".  */
 DEF_BUILTIN (BUILT_IN_BZERO,
             "__builtin_bzero",
             BUILT_IN_NORMAL,
@@ -296,6 +311,13 @@ DEF_BUILTIN (BUILT_IN_BZERO,
             BT_FN_VOID_VAR,
             true, true, true,
             ATTR_NOTHROW_LIST, false)
+DEF_BUILTIN (BUILT_IN_BCOPY,
+            "__builtin_bcopy",
+            BUILT_IN_NORMAL,
+            BT_FN_VOID_CONST_PTR_PTR_SIZE, 
+            BT_FN_VOID_VAR,
+            true, true, true,
+            ATTR_NOTHROW_LIST, false)
 DEF_BUILTIN (BUILT_IN_BCMP,
             "__builtin_bcmp",
             BUILT_IN_NORMAL,
@@ -370,85 +392,89 @@ DEF_GCC_BUILTIN(BUILT_IN_PARITYLL,
 DEF_EXT_LIB_BUILTIN(BUILT_IN_INDEX,
                    "__builtin_index",
                    BT_FN_STRING_CONST_STRING_INT,
-                   ATTR_PURE_NOTHROW_LIST)
+                   ATTR_PURE_NOTHROW_NONNULL_1)
 DEF_EXT_LIB_BUILTIN(BUILT_IN_RINDEX,
                    "__builtin_rindex",
                    BT_FN_STRING_CONST_STRING_INT,
-                   ATTR_PURE_NOTHROW_LIST)
+                   ATTR_PURE_NOTHROW_NONNULL_1)
 
 DEF_LIB_BUILTIN(BUILT_IN_MEMCPY,
                "__builtin_memcpy",
                BT_FN_PTR_PTR_CONST_PTR_SIZE,
-               ATTR_NOTHROW_LIST)
+               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_LIST)
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
 DEF_LIB_BUILTIN(BUILT_IN_MEMSET,
                "__builtin_memset",
                BT_FN_PTR_PTR_INT_SIZE,
-               ATTR_NOTHROW_LIST)
+               ATTR_NOTHROW_NONNULL_1)
 DEF_EXT_LIB_BUILTIN(BUILT_IN_MEMPCPY,
                "__builtin_mempcpy",
                BT_FN_PTR_PTR_CONST_PTR_SIZE,
-               ATTR_NOTHROW_LIST)
+               ATTR_NOTHROW_NONNULL_1_2)
 
 DEF_LIB_BUILTIN(BUILT_IN_STRCAT,
                "__builtin_strcat",
                BT_FN_STRING_STRING_CONST_STRING,
-               ATTR_NOTHROW_LIST)
+               ATTR_NOTHROW_NONNULL_1_2)
 DEF_LIB_BUILTIN(BUILT_IN_STRNCAT,
                "__builtin_strncat",
                BT_FN_STRING_STRING_CONST_STRING_SIZE,
-               ATTR_NOTHROW_LIST)
+               ATTR_NOTHROW_NONNULL_1_2)
 DEF_EXT_LIB_BUILTIN(BUILT_IN_STPCPY,
                "__builtin_stpcpy",
                BT_FN_STRING_STRING_CONST_STRING,
-               ATTR_NOTHROW_LIST)
+               ATTR_NOTHROW_NONNULL_1_2)
 DEF_LIB_BUILTIN(BUILT_IN_STRCPY,
                "__builtin_strcpy",
                BT_FN_STRING_STRING_CONST_STRING,
-               ATTR_NOTHROW_LIST)
+               ATTR_NOTHROW_NONNULL_1_2)
 DEF_LIB_BUILTIN(BUILT_IN_STRNCPY,
                "__builtin_strncpy",
                BT_FN_STRING_STRING_CONST_STRING_SIZE,
-               ATTR_NOTHROW_LIST)
+               ATTR_NOTHROW_NONNULL_1_2)
 DEF_LIB_BUILTIN(BUILT_IN_STRCMP,
                "__builtin_strcmp",
                BT_FN_INT_CONST_STRING_CONST_STRING,
-               ATTR_PURE_NOTHROW_LIST)
+               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_LIST)
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
 DEF_LIB_BUILTIN(BUILT_IN_STRLEN,
                "__builtin_strlen",
                BT_FN_SIZE_CONST_STRING,
-               ATTR_PURE_NOTHROW_LIST)
+               ATTR_PURE_NOTHROW_NONNULL_1)
 DEF_LIB_BUILTIN(BUILT_IN_STRSTR,
                "__builtin_strstr",
                BT_FN_STRING_CONST_STRING_CONST_STRING,
-               ATTR_PURE_NOTHROW_LIST)
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
 DEF_LIB_BUILTIN(BUILT_IN_STRPBRK,
                "__builtin_strpbrk",
                BT_FN_STRING_CONST_STRING_CONST_STRING,
-               ATTR_PURE_NOTHROW_LIST)
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
 DEF_LIB_BUILTIN(BUILT_IN_STRSPN,
                "__builtin_strspn",
                BT_FN_SIZE_CONST_STRING_CONST_STRING,
-               ATTR_PURE_NOTHROW_LIST)
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
 DEF_LIB_BUILTIN(BUILT_IN_STRCSPN,
                "__builtin_strcspn",
                BT_FN_SIZE_CONST_STRING_CONST_STRING,
-               ATTR_PURE_NOTHROW_LIST)
+               ATTR_PURE_NOTHROW_NONNULL_1_2)
 DEF_LIB_BUILTIN(BUILT_IN_STRCHR,
                "__builtin_strchr",
                BT_FN_STRING_CONST_STRING_INT,
-               ATTR_PURE_NOTHROW_LIST)
+               ATTR_PURE_NOTHROW_NONNULL_1)
 DEF_LIB_BUILTIN(BUILT_IN_STRRCHR,
                "__builtin_strrchr",
                BT_FN_STRING_CONST_STRING_INT,
-               ATTR_PURE_NOTHROW_LIST)
+               ATTR_PURE_NOTHROW_NONNULL_1)
 
 DEF_LIB_BUILTIN(BUILT_IN_SQRT,
                "__builtin_sqrt",
@@ -481,6 +507,16 @@ DEF_LIB_BUILTIN(BUILT_IN_LOG,
                                : (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,
@@ -533,6 +569,16 @@ DEF_C99_C90RES_BUILTIN(BUILT_IN_LOGF,
                                       : (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,
@@ -585,6 +631,16 @@ DEF_C99_C90RES_BUILTIN(BUILT_IN_LOGL,
                                       : (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",
+                      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,
@@ -636,28 +692,28 @@ DEF_GCC_BUILTIN(BUILT_IN_HUGE_VALL,
 DEF_LIB_BUILTIN(BUILT_IN_NAN,
                "__builtin_nan",
                BT_FN_DOUBLE_CONST_STRING,
-               ATTR_CONST_NOTHROW_LIST)
+               ATTR_CONST_NOTHROW_NONNULL_1)
 DEF_LIB_BUILTIN(BUILT_IN_NANF,
                "__builtin_nanf",
                BT_FN_FLOAT_CONST_STRING,
-               ATTR_CONST_NOTHROW_LIST)
+               ATTR_CONST_NOTHROW_NONNULL_1)
 DEF_LIB_BUILTIN(BUILT_IN_NANL,
                "__builtin_nanl",
                BT_FN_LONG_DOUBLE_CONST_STRING,
-               ATTR_CONST_NOTHROW_LIST)
+               ATTR_CONST_NOTHROW_NONNULL_1)
 
 DEF_LIB_BUILTIN(BUILT_IN_NANS,
                "__builtin_nans",
                BT_FN_DOUBLE_CONST_STRING,
-               ATTR_CONST_NOTHROW_LIST)
+               ATTR_CONST_NOTHROW_NONNULL_1)
 DEF_LIB_BUILTIN(BUILT_IN_NANSF,
                "__builtin_nansf",
                BT_FN_FLOAT_CONST_STRING,
-               ATTR_CONST_NOTHROW_LIST)
+               ATTR_CONST_NOTHROW_NONNULL_1)
 DEF_LIB_BUILTIN(BUILT_IN_NANSL,
                "__builtin_nansl",
                BT_FN_LONG_DOUBLE_CONST_STRING,
-               ATTR_CONST_NOTHROW_LIST)
+               ATTR_CONST_NOTHROW_NONNULL_1)
 
 DEF_GCC_BUILTIN(BUILT_IN_SAVEREGS,
                "__builtin_saveregs",
@@ -678,7 +734,7 @@ DEF_GCC_BUILTIN(BUILT_IN_ARGS_INFO,
 DEF_GCC_BUILTIN(BUILT_IN_CONSTANT_P, 
                "__builtin_constant_p", 
                BT_FN_INT_VAR,
-               ATTR_NULL)
+               ATTR_CONST_NOTHROW_LIST)
 DEF_GCC_BUILTIN(BUILT_IN_FRAME_ADDRESS,
                "__builtin_frame_address",
                BT_FN_PTR_UNSIGNED,
@@ -733,7 +789,7 @@ DEF_LIB_BUILTIN(BUILT_IN_PUTCHAR,
 DEF_LIB_BUILTIN(BUILT_IN_PUTS,
                "__builtin_puts",
                BT_FN_INT_CONST_STRING,
-               ATTR_NOTHROW_LIST)
+               ATTR_NOTHROW_NONNULL_1)
 DEF_C99_BUILTIN(BUILT_IN_SNPRINTF,
                "__builtin_snprintf",
                BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
@@ -782,17 +838,17 @@ DEF_LIB_BUILTIN(BUILT_IN_VSPRINTF,
 DEF_FALLBACK_BUILTIN(BUILT_IN_FPUTC,
                     "__builtin_fputc",
                     BT_FN_INT_INT_PTR,
-                    ATTR_NOTHROW_LIST)
+                    ATTR_NOTHROW_NONNULL_2)
 DEF_BUILTIN (BUILT_IN_FPUTS,
             "__builtin_fputs",
             BUILT_IN_NORMAL,
             BT_FN_INT_CONST_STRING_PTR,
             BT_FN_INT_VAR,
-            true, true, false, ATTR_NOTHROW_LIST, true)
+            true, true, false, ATTR_NOTHROW_NONNULL_1_2, true)
 DEF_FALLBACK_BUILTIN(BUILT_IN_FWRITE,
                     "__builtin_fwrite",
                     BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
-                     ATTR_NOTHROW_LIST)
+                     ATTR_NOTHROW_NONNULL_1_4)
 DEF_FRONT_END_LIB_BUILTIN(BUILT_IN_FPRINTF,
                         "__builtin_fprintf",
                         BT_FN_INT_PTR_CONST_STRING_VAR,
@@ -802,10 +858,10 @@ DEF_FRONT_END_LIB_BUILTIN(BUILT_IN_FPRINTF,
 
 DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_PUTCHAR_UNLOCKED,
                         "__builtin_putchar_unlocked",
-                        BT_FN_INT_INT)
+                        BT_FN_INT_INT, ATTR_NOTHROW_LIST)
 DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_PUTS_UNLOCKED,
                         "__builtin_puts_unlocked",
-                        BT_FN_INT_CONST_STRING)
+                        BT_FN_INT_CONST_STRING, ATTR_NOTHROW_NONNULL_1)
 DEF_EXT_FRONT_END_LIB_BUILTIN(BUILT_IN_PRINTF_UNLOCKED,
                              "__builtin_printf_unlocked",
                              BT_FN_INT_CONST_STRING_VAR,
@@ -820,16 +876,16 @@ DEF_EXT_FRONT_END_LIB_BUILTIN(BUILT_IN_PRINTF_UNLOCKED,
 
 DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_FPUTC_UNLOCKED,
                         "__builtin_fputc_unlocked",
-                        BT_FN_INT_INT_PTR)
+                        BT_FN_INT_INT_PTR, ATTR_NOTHROW_NONNULL_2)
 DEF_BUILTIN (BUILT_IN_FPUTS_UNLOCKED,
             "__builtin_fputs_unlocked",
             BUILT_IN_NORMAL,
             BT_FN_INT_CONST_STRING_PTR,
             BT_FN_INT_VAR,
-            true, true, true, ATTR_NOTHROW_LIST, true)
+            true, true, true, ATTR_NOTHROW_NONNULL_1_2, true)
 DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_FWRITE_UNLOCKED,
                         "__builtin_fwrite_unlocked",
-                        BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR)
+                        BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, ATTR_NOTHROW_NONNULL_1_4)
 DEF_EXT_FRONT_END_LIB_BUILTIN(BUILT_IN_FPRINTF_UNLOCKED,
                              "__builtin_fprintf_unlocked",
                              BT_FN_INT_PTR_CONST_STRING_VAR,
@@ -870,8 +926,8 @@ DEF_GCC_BUILTIN(BUILT_IN_DWARF_CFA,
                "__builtin_dwarf_cfa",
                BT_FN_PTR,
                ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_DWARF_FP_REGNUM,
-               "__builtin_dwarf_fp_regnum",
+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,
@@ -936,3 +992,19 @@ DEF_C99_BUILTIN(BUILT_IN__EXIT2,
                BT_FN_VOID_INT,
                ATTR_NORETURN_NOTHROW_LIST)
 
+/* Declare malloc, calloc and strdup.  */
+DEF_LIB_BUILTIN(BUILT_IN_MALLOC,
+               "__builtin_malloc",
+               BT_FN_PTR_SIZE,
+               ATTR_MALLOC_NOTHROW_LIST)
+
+DEF_LIB_BUILTIN(BUILT_IN_CALLOC,
+               "__builtin_calloc",
+               BT_FN_PTR_SIZE_SIZE,
+               ATTR_MALLOC_NOTHROW_LIST)
+
+DEF_EXT_LIB_BUILTIN(BUILT_IN_STRDUP,
+                   "__builtin_strdup",
+                   BT_FN_STRING_CONST_STRING,
+                   ATTR_MALLOC_NOTHROW_NONNULL_1)
+