aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-common.c
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2000-03-24 20:20:56 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2000-03-24 20:20:56 +0000
commite3a709be4d65ffbaa50949f94039f7ab7686e4f5 (patch)
treed8a9016e5e8a7f8532c10a24cd7aaaad58cd2200 /gcc/c-common.c
parent3424984446d90b366bddbce3dedb9235f8af280b (diff)
downloadgcc-e3a709be4d65ffbaa50949f94039f7ab7686e4f5.zip
gcc-e3a709be4d65ffbaa50949f94039f7ab7686e4f5.tar.gz
gcc-e3a709be4d65ffbaa50949f94039f7ab7686e4f5.tar.bz2
builtins.c (expand_builtin_bzero): New function.
* builtins.c (expand_builtin_bzero): New function. (expand_builtin): Handle bzero. * builtins.def: Add BUILT_IN_BZERO. * c-common.c (c_common_nodes_and_builtins): Provide builtin prototype & function for bzero. From-SVN: r32727
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r--gcc/c-common.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c
index ddab25e..b80501d 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -3462,7 +3462,7 @@ c_common_nodes_and_builtins (cplus_mode, no_builtins, no_nonansi_builtins)
{
tree temp;
tree memcpy_ftype, memset_ftype, strlen_ftype;
- tree bcmp_ftype;
+ tree bzero_ftype, bcmp_ftype;
tree endlink, int_endlink, double_endlink, unsigned_endlink;
tree sizetype_endlink;
tree ptr_ftype, ptr_ftype_unsigned;
@@ -3597,6 +3597,12 @@ c_common_nodes_and_builtins (cplus_mode, no_builtins, no_nonansi_builtins)
sizetype,
endlink))));
+ /* Prototype for bzero. */
+ bzero_ftype
+ = build_function_type (void_type_node,
+ tree_cons (NULL_TREE, traditional_ptr_type_node,
+ traditional_len_endlink));
+
/* Prototype for bcmp. */
bcmp_ftype
= build_function_type (integer_type_node,
@@ -3639,6 +3645,11 @@ c_common_nodes_and_builtins (cplus_mode, no_builtins, no_nonansi_builtins)
/* Suppress error if redefined as a non-function. */
DECL_BUILT_IN_NONANSI (temp) = 1;
+ /* In C mode, don't conflict with system prototype variations. */
+ temp = builtin_function ("bzero",
+ cplus_mode ? bzero_ftype : void_ftype_any,
+ BUILT_IN_BZERO, BUILT_IN_NORMAL, NULL_PTR);
+ DECL_BUILT_IN_NONANSI (temp) = 1;
temp = builtin_function ("bcmp",
cplus_mode ? bcmp_ftype : int_ftype_any,
BUILT_IN_BCMP, BUILT_IN_NORMAL, NULL_PTR);
@@ -3746,8 +3757,10 @@ c_common_nodes_and_builtins (cplus_mode, no_builtins, no_nonansi_builtins)
BUILT_IN_NORMAL, "memcpy");
builtin_function ("__builtin_memcmp", int_ftype_cptr_cptr_sizet,
BUILT_IN_MEMCMP, BUILT_IN_NORMAL, "memcmp");
- builtin_function ("__builtin_memset", memset_ftype, BUILT_IN_MEMSET,
- BUILT_IN_NORMAL, "memset");
+ builtin_function ("__builtin_memset", memset_ftype,
+ BUILT_IN_MEMSET, BUILT_IN_NORMAL, "memset");
+ builtin_function ("__builtin_bzero", bzero_ftype,
+ BUILT_IN_BZERO, BUILT_IN_NORMAL, "bzero");
builtin_function ("__builtin_bcmp", bcmp_ftype,
BUILT_IN_BCMP, BUILT_IN_NORMAL, "bcmp");
builtin_function ("__builtin_strcmp", int_ftype_string_string,