aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.def
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/builtins.def')
-rw-r--r--gcc/builtins.def121
1 files changed, 89 insertions, 32 deletions
diff --git a/gcc/builtins.def b/gcc/builtins.def
index c214128efe7..c208b751629 100644
--- a/gcc/builtins.def
+++ b/gcc/builtins.def
@@ -112,9 +112,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
/* Like DEF_LIB_BUILTIN, except that the function is only a part of
the standard in C99 or above. */
#undef DEF_C99_BUILTIN
-#define DEF_C99_BUILTIN(ENUM, NAME, TYPE) \
+#define DEF_C99_BUILTIN(ENUM, NAME, TYPE, ATTRS) \
DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
- true, true, !flag_isoc99, ATTR_NOTHROW_LIST)
+ true, true, !flag_isoc99, ATTRS)
/* Like DEF_LIB_BUILTIN, except that the function is expanded in the
front-end. */
@@ -171,37 +171,48 @@ DEF_LIB_ALWAYS_BUILTIN(BUILT_IN_FABSL,
DEF_C99_BUILTIN(BUILT_IN_LLABS,
"__builtin_llabs",
- BT_FN_LONGLONG_LONGLONG)
+ BT_FN_LONGLONG_LONGLONG,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_IMAXABS,
"__builtin_imaxabs",
- BT_FN_INTMAX_INTMAX)
+ BT_FN_INTMAX_INTMAX,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CONJ,
"__builtin_conj",
- BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE)
+ BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CONJF,
"__builtin_conjf",
- BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT)
+ BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CONJL,
"__builtin_conjl",
- BT_FN_COMPLEX_LONG_DOUBLE_COMPLEX_LONG_DOUBLE)
+ BT_FN_COMPLEX_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CREAL,
"__builtin_creal",
- BT_FN_DOUBLE_COMPLEX_DOUBLE)
+ BT_FN_DOUBLE_COMPLEX_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CREALF,
"__builtin_crealf",
- BT_FN_FLOAT_COMPLEX_FLOAT)
+ BT_FN_FLOAT_COMPLEX_FLOAT,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CREALL,
"__builtin_creall",
- BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE)
+ BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CIMAG,
"__builtin_cimag",
- BT_FN_DOUBLE_COMPLEX_DOUBLE)
+ BT_FN_DOUBLE_COMPLEX_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CIMAGF,
"__builtin_cimagf",
- BT_FN_FLOAT_COMPLEX_FLOAT)
+ BT_FN_FLOAT_COMPLEX_FLOAT,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CIMAGL,
"__builtin_cimagl",
- BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE)
+ BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_UNUSED_BUILTIN(BUILT_IN_DIV)
DEF_UNUSED_BUILTIN(BUILT_IN_LDIV)
@@ -514,27 +525,69 @@ DEF_GCC_BUILTIN(BUILT_IN_PREFETCH,
BT_FN_VOID_CONST_PTR_VAR,
ATTR_NULL)
-/* Stdio builtins. */
-DEF_FALLBACK_BUILTIN(BUILT_IN_PUTCHAR,
- "__builtin_putchar",
- BT_FN_INT_INT,
- ATTR_NOTHROW_LIST)
-DEF_FALLBACK_BUILTIN(BUILT_IN_PUTS,
- "__builtin_puts",
- BT_FN_INT_CONST_STRING,
- ATTR_NOTHROW_LIST)
+/* stdio.h builtins (without FILE *). */
+
DEF_FRONT_END_LIB_BUILTIN(BUILT_IN_PRINTF,
"__builtin_printf",
BT_FN_INT_CONST_STRING_VAR,
ATTR_FORMAT_PRINTF_1_2)
-DEF_FALLBACK_BUILTIN(BUILT_IN_FPUTC,
- "__builtin_fputc",
- BT_FN_INT_INT_PTR,
- ATTR_NOTHROW_LIST)
+DEF_LIB_BUILTIN(BUILT_IN_PUTCHAR,
+ "__builtin_putchar",
+ BT_FN_INT_INT,
+ ATTR_NOTHROW_LIST)
+DEF_LIB_BUILTIN(BUILT_IN_PUTS,
+ "__builtin_puts",
+ BT_FN_INT_CONST_STRING,
+ ATTR_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)
+
+
+/* stdio.h builtins (with FILE *). */
+
/* 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_FALLBACK_BUILTIN(BUILT_IN_FPUTC,
+ "__builtin_fputc",
+ BT_FN_INT_INT_PTR,
+ ATTR_NOTHROW_LIST)
DEF_BUILTIN (BUILT_IN_FPUTS,
"__builtin_fputs",
BUILT_IN_NORMAL,
@@ -550,7 +603,7 @@ DEF_FRONT_END_LIB_BUILTIN(BUILT_IN_FPRINTF,
BT_FN_INT_PTR_CONST_STRING_VAR,
ATTR_FORMAT_PRINTF_2_3)
-/* Stdio unlocked builtins. */
+/* stdio unlocked builtins (without FILE *). */
DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_PUTCHAR_UNLOCKED,
"__builtin_putchar_unlocked",
@@ -562,13 +615,17 @@ DEF_EXT_FRONT_END_LIB_BUILTIN(BUILT_IN_PRINTF_UNLOCKED,
"__builtin_printf_unlocked",
BT_FN_INT_CONST_STRING_VAR,
ATTR_FORMAT_PRINTF_1_2)
-DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_FPUTC_UNLOCKED,
- "__builtin_fputc_unlocked",
- BT_FN_INT_INT_PTR)
+
+/* stdio unlocked builtins (with FILE *). */
+
/* 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_EXT_FALLBACK_BUILTIN(BUILT_IN_FPUTC_UNLOCKED,
+ "__builtin_fputc_unlocked",
+ BT_FN_INT_INT_PTR)
DEF_BUILTIN (BUILT_IN_FPUTS_UNLOCKED,
"__builtin_fputs_unlocked",
BUILT_IN_NORMAL,
@@ -618,8 +675,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,