summaryrefslogtreecommitdiffstats
path: root/gcc/builtins.def
diff options
context:
space:
mode:
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-24 21:04:12 +0000
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-24 21:04:12 +0000
commit19bf118afd392e4619258db40f91c022dfcdfe95 (patch)
treeb05c49149bd1ed00301b62af2657b2f3d047bc0d /gcc/builtins.def
parentd66d83e573fe8fcebe4b2c8807c6a2fddff7c9e7 (diff)
downloadppe42-gcc-19bf118afd392e4619258db40f91c022dfcdfe95.tar.gz
ppe42-gcc-19bf118afd392e4619258db40f91c022dfcdfe95.zip
* builtins.def (BUILT_IN_PRINTF, BUILT_IN_FPRINTF): Changed from
front-end builtins to normal builtins, using DEF_LIB_BUILTIN. (BUILT_IN_PRINTF_UNLOCKED, BUILT_IN_FPRINTF_UNLOCKED): Changed from front-end to normal builtins, using DEF_EXT_LIB_BUILTIN. (DEF_FRONT_END_LIB_BUILTIN): Delete. (DEF_EXT_FRONT_END_LIB_BUILTIN): Delete. (BUILT_IN_FWRITE_UNLOCKED): Wrap long line. * builtins.c (build_string_literal): New function to construct a char* pointer to a string literal. (expand_builtin_fputs): Change 2nd argument from "int ignore" to "rtx target" to be consistent with other expand_builtin_* functions. Change 3rd argument from "int unlocked" to "bool unlocked". (expand_builtin_printf): Rewrite of c_expand_builtin_printf from c-common.c to avoid front-end dependencies. Optimize printf("") as a no-op when the result isn't required. Handle embedded NULs in format string. (expand_builtin_fprintf): A rewrite of c_expand_builtin_fprintf from c-common.c to avoid front-end dependencies. Likewise, optimize fprintf(fp,"") as a no-op when the result isn't required, evaluating fp for side-effects. Handle embedded NULs in format string. (expand_builtin_sprintf): Fix typo. (expand_builtin): Don't expand BUILT_IN_FPRINT{,_UNLOCKED} when not optimizing. Adjust calls of expand_builtin_fputs to match the API change. Expand BUILT_IN_PRINTF and BUILT_IN_PRINTF_UNLOCKED using expand_builtin_printf. Likewise, expand BUILT_IN_FPRINTF_UNLOCKED and BUILT_IN_FPRINTF using expand_builtin_fprintf. * c-common.c (is_valid_printf_arglist): Delete. (c_expand_builtin): Delete. (c_expand_builtin_printf): Moved to builtins.c. Delete. (c_expand_builtin_fprintf): Moved to builtins.c. Delete. (c_expand_expr): No longer treat CALL_EXPRs specially. (CALLED_AS_BUILT_IN): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69760 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/builtins.def')
-rw-r--r--gcc/builtins.def53
1 files changed, 19 insertions, 34 deletions
diff --git a/gcc/builtins.def b/gcc/builtins.def
index 0eaba889dcb..e05795d5ca5 100644
--- a/gcc/builtins.def
+++ b/gcc/builtins.def
@@ -70,9 +70,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, BT_LAST, \
false, false, false, ATTRS, true)
-
/* A fallback builtin is a builtin (like __builtin_puts) that falls
- back to the corresopnding library function if necessary -- but
+ back to the corresponding library function if necessary -- but
for which we should not introduce the non-`__builtin' variant of
the name. */
#undef DEF_FALLBACK_BUILTIN
@@ -124,21 +123,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
true, true, !flag_isoc99, ATTRS, TARGET_C99_FUNCTIONS)
-/* Like DEF_LIB_BUILTIN, except that the function is expanded in the
- front-end. */
-#undef DEF_FRONT_END_LIB_BUILTIN
-#define DEF_FRONT_END_LIB_BUILTIN(ENUM, NAME, TYPE, ATTRS) \
- DEF_BUILTIN (ENUM, NAME, BUILT_IN_FRONTEND, TYPE, TYPE, \
- true, true, false, ATTRS, true)
-
-/* Like DEF_FRONT_END_LIB_BUILTIN, except that the function is not one
- that is specified by ANSI/ISO C. So, when we're being fully
- conformant we ignore the version of these builtins that does not
- begin with __builtin. */
-#undef DEF_EXT_FRONT_END_LIB_BUILTIN
-#define DEF_EXT_FRONT_END_LIB_BUILTIN(ENUM, NAME, TYPE, ATTRS) \
- DEF_BUILTIN (ENUM, NAME, BUILT_IN_FRONTEND, TYPE, TYPE, \
- true, true, true, ATTRS, true)
DEF_EXT_LIB_BUILTIN(BUILT_IN_ALLOCA,
"__builtin_alloca",
@@ -769,10 +753,10 @@ DEF_GCC_BUILTIN(BUILT_IN_PREFETCH,
/* 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_LIB_BUILTIN(BUILT_IN_PRINTF,
+ "__builtin_printf",
+ BT_FN_INT_CONST_STRING_VAR,
+ ATTR_FORMAT_PRINTF_1_2)
DEF_LIB_BUILTIN(BUILT_IN_PUTCHAR,
"__builtin_putchar",
BT_FN_INT_INT,
@@ -840,10 +824,10 @@ DEF_FALLBACK_BUILTIN(BUILT_IN_FWRITE,
"__builtin_fwrite",
BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
ATTR_NOTHROW_NONNULL_1_4)
-DEF_FRONT_END_LIB_BUILTIN(BUILT_IN_FPRINTF,
- "__builtin_fprintf",
- BT_FN_INT_PTR_CONST_STRING_VAR,
- ATTR_FORMAT_PRINTF_2_3)
+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 *). */
@@ -853,10 +837,10 @@ DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_PUTCHAR_UNLOCKED,
DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_PUTS_UNLOCKED,
"__builtin_puts_unlocked",
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,
- 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)
/* stdio unlocked builtins (with FILE *). */
@@ -876,11 +860,12 @@ DEF_BUILTIN (BUILT_IN_FPUTS_UNLOCKED,
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, 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,
- ATTR_FORMAT_PRINTF_2_3)
+ 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)
/* ISO C99 floating point unordered comparisons. */
DEF_GCC_BUILTIN(BUILT_IN_ISGREATER,
OpenPOWER on IntegriCloud