Date: Sat, 3 Nov 2001 15:03:39 -0500 Message-Id: <200111032003.fA3K3dU05997@envy.delorie.com> From: DJ Delorie To: djgpp-workers AT delorie DOT com In-reply-to: <8582-Sat03Nov2001193344+0200-eliz@is.elta.co.il> Subject: Re: Built-in bzero References: <8582-Sat03Nov2001193344+0200-eliz AT is DOT elta DOT co DOT il> Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk It says this, but it seems it lies: /* The system prototypes for these functions have many variations, so don't specify parameters to avoid conflicts. The expand_* functions check the argument types anyway. */ builtin_function_2 ("__builtin_bzero", "bzero", bzero_ftype, void_ftype_any, BUILT_IN_BZERO, BUILT_IN_NORMAL, 1, 1, 0); The prototype is: /* Prototype for bzero. */ bzero_ftype = build_function_type (void_type_node, tree_cons (NULL_TREE, traditional_ptr_type_node, traditional_len_endlink)); traditonal_ptr_type_node is what strlen uses. traditional_len_endlink refers to "int". My guess is it wants: void bzero (char *, int); As far as whether or not it's a bug, and/or how to shut it up portably, probably best to ask on gcc AT gcc DOT gnu DOT org.