delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2001/11/03/15:05:12

Date: Sat, 3 Nov 2001 15:03:39 -0500
Message-Id: <200111032003.fA3K3dU05997@envy.delorie.com>
From: DJ Delorie <dj AT delorie DOT com>
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

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.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019