This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Convert libiberty to use ISO C prototype style


[ I sent an earlier patch but it does not seem to make it through. ]

This implements a quarter (I think) of the conversion of libiberty to
use C90 prototype style, as discussed on the main list.

-- Gaby

include/
2005-03-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* demangle.h: Remove uses of PARAMS.

	* libiberty.h (ANSI_PROTOTYPES): Remove guard since
	ANSI_PROTOTYPES is always assumed.
	Remove uses of PARAMS throughout.

libiberty/
2005-03-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	Convert libiberty to use ISO C prototype style 2/n.
	* cp-demangle.h: Remove uses of PARAMS.
	* cp-demangle.c: Likewise.
	(d_dump, cplus_demangle_fill_name, 
	cplus_demangle_fill_extended_operator, cplus_demangle_fill_ctor, 
	cplus_demangle_fill_dtor, d_make_empty, d_make_comp, d_make_name, 
	d_make_builtin_type, d_make_operator, d_make_extended_operator, 
	d_make_ctor, d_make_dtor, d_make_template_param, d_make_sub, 
	cplus_demangle_mangled_name, has_return_type, 
	is_ctor_dtor_or_conversion, d_encoding, d_name, d_nested_name, 
	d_prefix, d_unqualified_name, d_source_name, d_number, 
	d_identifier, d_operator_name, d_special_name, d_call_offset, 
	d_ctor_dtor_name, cplus_demangle_type, d_cv_qualifiers, 
	d_function_type, d_bare_function_type, d_class_enum_type, 
	d_array_type, d_pointer_to_member_type, d_template_param, 
	d_template_args, d_template_arg, d_expression, d_expr_primary, 
	d_local_name, d_discriminator, d_add_substitution, 
	d_substitution, d_print_resize, d_print_append_char, 
	d_print_append_buffer, d_print_error, cplus_demangle_print, 
 	d_print_comp, d_print_java_identifier, d_print_mod_list, 
 	d_print_mod, d_print_function_type, d_print_array_type, 
 	d_print_expr_op, d_print_cast, cplus_demangle_init_info, 
 	d_demangle, __cxa_demangle, cplus_demangle_v3, java_demangle_v3, 
 	is_ctor_or_dtor, is_gnu_v3_mangled_ctor, is_gnu_v3_mangled_dtor,
 	print_usage, main): 
 
2005-03-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
 	Convert libiberty to ISO C prototype style 1/n.
 	* _doprnt.c: Remove conditional #include <varargs.h> on
 	ANSI_PROTOTYPES as the latter is always assumed.
 	(_doprnt, checkit, main): Use ISO C prototype.
 	* alloca.c (find_stack_direction, C_alloca): Use ISO C prototype.
 	* argv.c: Remove conditional #includes on ANSI_PROTOTYPES.
 	(dupargv, freeargv, buildargv, main): Use ISO C prototype. 
 	* atexit.c (atexit): Likewise
 	* asprintf.c: Remove conditional include on ANSI_PROTOTYPES.
 	(asprintf): Use ISO C prototype. 
 	* basename.c (basename): Likewise
 	* bcmp.c (bcmp): Likewise.
 	* bcopy.c (bcopy): Likewise.
 	* bzero.c (bzero): Likewise.
 	* bsearch.c (bsearch): Likewise.  Improve const-correctness.
 	* choose-temp.c (choose_temp_base): Likewise.
 	* calloc.c: Remove conditional #include on ANSI_PROTOTYPES.
 	(calloc): Use ISO C prototype.
 	* clock.c (clock): Likewise.
 	* concat.c: Remove conditional #include on ANSI_PROTOTYPES.
 	(vconcat_length, vconcat_copy, concat_length, concat_copy, 
 	concat_copy2, concat, reconcat, main): Use ISO C prototype.
 	* copysign.c (copysign): Likewise.

Index: include/demangle.h
===================================================================
RCS file: /cvs/gcc/gcc/include/demangle.h,v
retrieving revision 1.26
diff -p -r1.26 demangle.h
*** include/demangle.h	4 May 2004 18:13:54 -0000	1.26
--- include/demangle.h	26 Mar 2005 18:31:59 -0000
*************** extern const struct demangler_engine
*** 110,140 ****
  } libiberty_demanglers[];
  
  extern char *
! cplus_demangle PARAMS ((const char *mangled, int options));
  
  extern int
! cplus_demangle_opname PARAMS ((const char *opname, char *result, int options));
  
  extern const char *
! cplus_mangle_opname PARAMS ((const char *opname, int options));
  
  /* Note: This sets global state.  FIXME if you care about multi-threading. */
  
  extern void
! set_cplus_marker_for_demangling PARAMS ((int ch));
  
  extern enum demangling_styles 
! cplus_demangle_set_style PARAMS ((enum demangling_styles style));
  
  extern enum demangling_styles 
! cplus_demangle_name_to_style PARAMS ((const char *name));
  
  /* V3 ABI demangling entry points, defined in cp-demangle.c.  */
  extern char*
! cplus_demangle_v3 PARAMS ((const char* mangled, int options));
  
  extern char*
! java_demangle_v3 PARAMS ((const char* mangled));
  
  
  enum gnu_v3_ctor_kinds {
--- 110,140 ----
  } libiberty_demanglers[];
  
  extern char *
! cplus_demangle (const char *mangled, int options);
  
  extern int
! cplus_demangle_opname (const char *opname, char *result, int options);
  
  extern const char *
! cplus_mangle_opname (const char *opname, int options);
  
  /* Note: This sets global state.  FIXME if you care about multi-threading. */
  
  extern void
! set_cplus_marker_for_demangling (int ch);
  
  extern enum demangling_styles 
! cplus_demangle_set_style (enum demangling_styles style);
  
  extern enum demangling_styles 
! cplus_demangle_name_to_style (const char *name);
  
  /* V3 ABI demangling entry points, defined in cp-demangle.c.  */
  extern char*
! cplus_demangle_v3 (const char* mangled, int options);
  
  extern char*
! java_demangle_v3 (const char* mangled);
  
  
  enum gnu_v3_ctor_kinds {
*************** enum gnu_v3_ctor_kinds {
*** 148,154 ****
     gnu_v3_ctor_kinds' value indicating what kind of constructor
     it is.  */
  extern enum gnu_v3_ctor_kinds
! 	is_gnu_v3_mangled_ctor PARAMS ((const char *name));
  
  
  enum gnu_v3_dtor_kinds {
--- 148,154 ----
     gnu_v3_ctor_kinds' value indicating what kind of constructor
     it is.  */
  extern enum gnu_v3_ctor_kinds
! 	is_gnu_v3_mangled_ctor (const char *name);
  
  
  enum gnu_v3_dtor_kinds {
*************** enum gnu_v3_dtor_kinds {
*** 162,168 ****
     gnu_v3_dtor_kinds' value, indicating what kind of destructor
     it is.  */
  extern enum gnu_v3_dtor_kinds
! 	is_gnu_v3_mangled_dtor PARAMS ((const char *name));
  
  /* The V3 demangler works in two passes.  The first pass builds a tree
     representation of the mangled name, and the second pass turns the
--- 162,168 ----
     gnu_v3_dtor_kinds' value, indicating what kind of destructor
     it is.  */
  extern enum gnu_v3_dtor_kinds
! 	is_gnu_v3_mangled_dtor (const char *name);
  
  /* The V3 demangler works in two passes.  The first pass builds a tree
     representation of the mangled name, and the second pass turns the
*************** struct demangle_component
*** 440,464 ****
     unrecognized or inappropriate component type.  */
  
  extern int
! cplus_demangle_fill_component PARAMS ((struct demangle_component *fill,
! 				       enum demangle_component_type,
! 				       struct demangle_component *left,
! 				       struct demangle_component *right));
  
  /* Fill in a DEMANGLE_COMPONENT_NAME.  Returns non-zero on success,
     zero for bad arguments.  */
  
  extern int
! cplus_demangle_fill_name PARAMS ((struct demangle_component *fill,
! 				  const char *, int));
  
  /* Fill in a DEMANGLE_COMPONENT_BUILTIN_TYPE, using the name of the
     builtin type (e.g., "int", etc.).  Returns non-zero on success,
     zero if the type is not recognized.  */
  
  extern int
! cplus_demangle_fill_builtin_type PARAMS ((struct demangle_component *fill,
! 					  const char *type_name));
  
  /* Fill in a DEMANGLE_COMPONENT_OPERATOR, using the name of the
     operator and the number of arguments which it takes (the latter is
--- 440,464 ----
     unrecognized or inappropriate component type.  */
  
  extern int
! cplus_demangle_fill_component (struct demangle_component *fill,
!                                enum demangle_component_type,
!                                struct demangle_component *left,
!                                struct demangle_component *right);
  
  /* Fill in a DEMANGLE_COMPONENT_NAME.  Returns non-zero on success,
     zero for bad arguments.  */
  
  extern int
! cplus_demangle_fill_name (struct demangle_component *fill,
!                           const char *, int);
  
  /* Fill in a DEMANGLE_COMPONENT_BUILTIN_TYPE, using the name of the
     builtin type (e.g., "int", etc.).  Returns non-zero on success,
     zero if the type is not recognized.  */
  
  extern int
! cplus_demangle_fill_builtin_type (struct demangle_component *fill,
!                                   const char *type_name);
  
  /* Fill in a DEMANGLE_COMPONENT_OPERATOR, using the name of the
     operator and the number of arguments which it takes (the latter is
*************** cplus_demangle_fill_builtin_type PARAMS 
*** 467,499 ****
     not recognized.  */
  
  extern int
! cplus_demangle_fill_operator PARAMS ((struct demangle_component *fill,
! 				      const char *opname, int args));
  
  /* Fill in a DEMANGLE_COMPONENT_EXTENDED_OPERATOR, providing the
     number of arguments and the name.  Returns non-zero on success,
     zero for bad arguments.  */
  
  extern int
! cplus_demangle_fill_extended_operator PARAMS ((struct demangle_component *fill,
! 					       int numargs,
! 					       struct demangle_component *nm));
  
  /* Fill in a DEMANGLE_COMPONENT_CTOR.  Returns non-zero on success,
     zero for bad arguments.  */
  
  extern int
! cplus_demangle_fill_ctor PARAMS ((struct demangle_component *fill,
! 				  enum gnu_v3_ctor_kinds kind,
! 				  struct demangle_component *name));
  
  /* Fill in a DEMANGLE_COMPONENT_DTOR.  Returns non-zero on success,
     zero for bad arguments.  */
  
  extern int
! cplus_demangle_fill_dtor PARAMS ((struct demangle_component *fill,
! 				  enum gnu_v3_dtor_kinds kind,
! 				  struct demangle_component *name));
  
  /* This function translates a mangled name into a struct
     demangle_component tree.  The first argument is the mangled name.
--- 467,499 ----
     not recognized.  */
  
  extern int
! cplus_demangle_fill_operator (struct demangle_component *fill,
!                               const char *opname, int args);
  
  /* Fill in a DEMANGLE_COMPONENT_EXTENDED_OPERATOR, providing the
     number of arguments and the name.  Returns non-zero on success,
     zero for bad arguments.  */
  
  extern int
! cplus_demangle_fill_extended_operator (struct demangle_component *fill,
!                                        int numargs,
!                                        struct demangle_component *nm);
  
  /* Fill in a DEMANGLE_COMPONENT_CTOR.  Returns non-zero on success,
     zero for bad arguments.  */
  
  extern int
! cplus_demangle_fill_ctor (struct demangle_component *fill,
!                           enum gnu_v3_ctor_kinds kind,
!                           struct demangle_component *name);
  
  /* Fill in a DEMANGLE_COMPONENT_DTOR.  Returns non-zero on success,
     zero for bad arguments.  */
  
  extern int
! cplus_demangle_fill_dtor (struct demangle_component *fill,
!                           enum gnu_v3_dtor_kinds kind,
!                           struct demangle_component *name);
  
  /* This function translates a mangled name into a struct
     demangle_component tree.  The first argument is the mangled name.
*************** cplus_demangle_fill_dtor PARAMS ((struct
*** 504,512 ****
     needed.  */
  
  extern struct demangle_component *
! cplus_demangle_v3_components PARAMS ((const char *mangled,
! 				      int options,
! 				      void **mem));
  
  /* This function takes a struct demangle_component tree and returns
     the corresponding demangled string.  The first argument is DMGL_*
--- 504,510 ----
     needed.  */
  
  extern struct demangle_component *
! cplus_demangle_v3_components (const char *mangled, int options, void **mem);
  
  /* This function takes a struct demangle_component tree and returns
     the corresponding demangled string.  The first argument is DMGL_*
*************** cplus_demangle_v3_components PARAMS ((co
*** 521,530 ****
     memory allocation error.  */
  
  extern char *
! cplus_demangle_print PARAMS ((int options,
! 			      const struct demangle_component *tree,
! 			      int estimated_length,
! 			      size_t *p_allocated_size));
  
  #ifdef __cplusplus
  }
--- 519,528 ----
     memory allocation error.  */
  
  extern char *
! cplus_demangle_print (int options,
!                       const struct demangle_component *tree,
!                       int estimated_length,
!                       size_t *p_allocated_size);
  
  #ifdef __cplusplus
  }
Index: include/libiberty.h
===================================================================
RCS file: /cvs/gcc/gcc/include/libiberty.h,v
retrieving revision 1.44
diff -p -r1.44 libiberty.h
*** include/libiberty.h	25 Mar 2005 04:41:35 -0000	1.44
--- include/libiberty.h	26 Mar 2005 18:31:59 -0000
*************** extern "C" {
*** 41,66 ****
  
  #include "ansidecl.h"
  
- #ifdef ANSI_PROTOTYPES
  /* Get a definition for size_t.  */
  #include <stddef.h>
  /* Get a definition for va_list.  */
  #include <stdarg.h>
- #endif
  
  /* Build an argument vector from a string.  Allocates memory using
     malloc.  Use freeargv to free the vector.  */
  
! extern char **buildargv PARAMS ((const char *)) ATTRIBUTE_MALLOC;
  
  /* Free a vector returned by buildargv.  */
  
! extern void freeargv PARAMS ((char **));
  
  /* Duplicate an argument vector. Allocates memory using malloc.  Use
     freeargv to free the vector.  */
  
! extern char **dupargv PARAMS ((char **)) ATTRIBUTE_MALLOC;
  
  
  /* Return the last component of a path name.  Note that we can't use a
--- 41,64 ----
  
  #include "ansidecl.h"
  
  /* Get a definition for size_t.  */
  #include <stddef.h>
  /* Get a definition for va_list.  */
  #include <stdarg.h>
  
  /* Build an argument vector from a string.  Allocates memory using
     malloc.  Use freeargv to free the vector.  */
  
! extern char **buildargv (const char *) ATTRIBUTE_MALLOC;
  
  /* Free a vector returned by buildargv.  */
  
! extern void freeargv (char **);
  
  /* Duplicate an argument vector. Allocates memory using malloc.  Use
     freeargv to free the vector.  */
  
! extern char **dupargv (char **) ATTRIBUTE_MALLOC;
  
  
  /* Return the last component of a path name.  Note that we can't use a
*************** extern char **dupargv PARAMS ((char **))
*** 75,81 ****
     is 1, we found it so don't provide any declaration at all.  */
  #if !HAVE_DECL_BASENAME
  #if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
! extern char *basename PARAMS ((const char *));
  #else
  extern char *basename ();
  #endif
--- 73,79 ----
     is 1, we found it so don't provide any declaration at all.  */
  #if !HAVE_DECL_BASENAME
  #if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
! extern char *basename (const char *);
  #else
  extern char *basename ();
  #endif
*************** extern char *basename ();
*** 83,99 ****
  
  /* A well-defined basename () that is always compiled in.  */
  
! extern const char *lbasename PARAMS ((const char *));
  
  /* A well-defined realpath () that is always compiled in.  */
  
! extern char *lrealpath PARAMS ((const char *));
  
  /* Concatenate an arbitrary number of strings.  You must pass NULL as
     the last argument of this function, to terminate the list of
     strings.  Allocates memory using xmalloc.  */
  
! extern char *concat PARAMS ((const char *, ...)) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL;
  
  /* Concatenate an arbitrary number of strings.  You must pass NULL as
     the last argument of this function, to terminate the list of
--- 81,97 ----
  
  /* A well-defined basename () that is always compiled in.  */
  
! extern const char *lbasename (const char *);
  
  /* A well-defined realpath () that is always compiled in.  */
  
! extern char *lrealpath (const char *);
  
  /* Concatenate an arbitrary number of strings.  You must pass NULL as
     the last argument of this function, to terminate the list of
     strings.  Allocates memory using xmalloc.  */
  
! extern char *concat (const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL;
  
  /* Concatenate an arbitrary number of strings.  You must pass NULL as
     the last argument of this function, to terminate the list of
*************** extern char *concat PARAMS ((const char 
*** 102,128 ****
     pointer to be freed after the new string is created, similar to the
     way xrealloc works.  */
  
! extern char *reconcat PARAMS ((char *, const char *, ...)) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL;
  
  /* Determine the length of concatenating an arbitrary number of
     strings.  You must pass NULL as the last argument of this function,
     to terminate the list of strings.  */
  
! extern unsigned long concat_length PARAMS ((const char *, ...)) ATTRIBUTE_SENTINEL;
  
  /* Concatenate an arbitrary number of strings into a SUPPLIED area of
     memory.  You must pass NULL as the last argument of this function,
     to terminate the list of strings.  The supplied memory is assumed
     to be large enough.  */
  
! extern char *concat_copy PARAMS ((char *, const char *, ...)) ATTRIBUTE_SENTINEL;
  
  /* Concatenate an arbitrary number of strings into a GLOBAL area of
     memory.  You must pass NULL as the last argument of this function,
     to terminate the list of strings.  The supplied memory is assumed
     to be large enough.  */
  
! extern char *concat_copy2 PARAMS ((const char *, ...)) ATTRIBUTE_SENTINEL;
  
  /* This is the global area used by concat_copy2.  */
  
--- 100,126 ----
     pointer to be freed after the new string is created, similar to the
     way xrealloc works.  */
  
! extern char *reconcat (char *, const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL;
  
  /* Determine the length of concatenating an arbitrary number of
     strings.  You must pass NULL as the last argument of this function,
     to terminate the list of strings.  */
  
! extern unsigned long concat_length (const char *, ...) ATTRIBUTE_SENTINEL;
  
  /* Concatenate an arbitrary number of strings into a SUPPLIED area of
     memory.  You must pass NULL as the last argument of this function,
     to terminate the list of strings.  The supplied memory is assumed
     to be large enough.  */
  
! extern char *concat_copy (char *, const char *, ...) ATTRIBUTE_SENTINEL;
  
  /* Concatenate an arbitrary number of strings into a GLOBAL area of
     memory.  You must pass NULL as the last argument of this function,
     to terminate the list of strings.  The supplied memory is assumed
     to be large enough.  */
  
! extern char *concat_copy2 (const char *, ...) ATTRIBUTE_SENTINEL;
  
  /* This is the global area used by concat_copy2.  */
  
*************** extern char *libiberty_concat_ptr;
*** 138,149 ****
  
  /* Check whether two file descriptors refer to the same file.  */
  
! extern int fdmatch PARAMS ((int fd1, int fd2));
  
  /* Get the working directory.  The result is cached, so don't call
     chdir() between calls to getpwd().  */
  
! extern char * getpwd PARAMS ((void));
  
  /* Get the current time.  */
  /* Prototypes vary from system to system, so we only provide a
--- 136,147 ----
  
  /* Check whether two file descriptors refer to the same file.  */
  
! extern int fdmatch (int fd1, int fd2);
  
  /* Get the working directory.  The result is cached, so don't call
     chdir() between calls to getpwd().  */
  
! extern char * getpwd (void);
  
  /* Get the current time.  */
  /* Prototypes vary from system to system, so we only provide a
*************** extern char * getpwd PARAMS ((void));
*** 151,271 ****
  #ifdef __MINGW32__
  /* Forward declaration to avoid #include <sys/time.h>.   */
  struct timeval;
! extern int gettimeofday PARAMS ((struct timeval *, void *)); 
  #endif
  
  /* Get the amount of time the process has run, in microseconds.  */
  
! extern long get_run_time PARAMS ((void));
  
  /* Generate a relocated path to some installation directory.  Allocates
     return value using malloc.  */
  
! extern char *make_relative_prefix PARAMS ((const char *, const char *,
! 					   const char *)) ATTRIBUTE_MALLOC;
  
  /* Choose a temporary directory to use for scratch files.  */
  
! extern char *choose_temp_base PARAMS ((void)) ATTRIBUTE_MALLOC;
  
  /* Return a temporary file name or NULL if unable to create one.  */
  
! extern char *make_temp_file PARAMS ((const char *)) ATTRIBUTE_MALLOC;
  
  /* Remove a link to a file unless it is special. */
  
! extern int unlink_if_ordinary PARAMS((const char *));
  
  /* Allocate memory filled with spaces.  Allocates using malloc.  */
  
! extern const char *spaces PARAMS ((int count));
  
  /* Return the maximum error number for which strerror will return a
     string.  */
  
! extern int errno_max PARAMS ((void));
  
  /* Return the name of an errno value (e.g., strerrno (EINVAL) returns
     "EINVAL").  */
  
! extern const char *strerrno PARAMS ((int));
  
  /* Given the name of an errno value, return the value.  */
  
! extern int strtoerrno PARAMS ((const char *));
  
  /* ANSI's strerror(), but more robust.  */
  
! extern char *xstrerror PARAMS ((int));
  
  /* Return the maximum signal number for which strsignal will return a
     string.  */
  
! extern int signo_max PARAMS ((void));
  
  /* Return a signal message string for a signal number
     (e.g., strsignal (SIGHUP) returns something like "Hangup").  */
  /* This is commented out as it can conflict with one in system headers.
     We still document its existence though.  */
  
! /*extern const char *strsignal PARAMS ((int));*/
  
  /* Return the name of a signal number (e.g., strsigno (SIGHUP) returns
     "SIGHUP").  */
  
! extern const char *strsigno PARAMS ((int));
  
  /* Given the name of a signal, return its number.  */
  
! extern int strtosigno PARAMS ((const char *));
  
  /* Register a function to be run by xexit.  Returns 0 on success.  */
  
! extern int xatexit PARAMS ((void (*fn) (void)));
  
  /* Exit, calling all the functions registered with xatexit.  */
  
! extern void xexit PARAMS ((int status)) ATTRIBUTE_NORETURN;
  
  /* Set the program name used by xmalloc.  */
  
! extern void xmalloc_set_program_name PARAMS ((const char *));
  
  /* Report an allocation failure.  */
! extern void xmalloc_failed PARAMS ((size_t)) ATTRIBUTE_NORETURN;
  
  /* Allocate memory without fail.  If malloc fails, this will print a
     message to stderr (using the name set by xmalloc_set_program_name,
     if any) and then call xexit.  */
  
! extern PTR xmalloc PARAMS ((size_t)) ATTRIBUTE_MALLOC;
  
  /* Reallocate memory without fail.  This works like xmalloc.  Note,
     realloc type functions are not suitable for attribute malloc since
     they may return the same address across multiple calls. */
  
! extern PTR xrealloc PARAMS ((PTR, size_t));
  
  /* Allocate memory without fail and set it to zero.  This works like
     xmalloc.  */
  
! extern PTR xcalloc PARAMS ((size_t, size_t)) ATTRIBUTE_MALLOC;
  
  /* Copy a string into a memory buffer without fail.  */
  
! extern char *xstrdup PARAMS ((const char *)) ATTRIBUTE_MALLOC;
  
  /* Copy at most N characters from string into a buffer without fail.  */
  
! extern char *xstrndup PARAMS ((const char *, size_t)) ATTRIBUTE_MALLOC;
  
  /* Copy an existing memory buffer to a new memory buffer without fail.  */
  
! extern PTR xmemdup PARAMS ((const PTR, size_t, size_t)) ATTRIBUTE_MALLOC;
  
  /* Physical memory routines.  Return values are in BYTES.  */
! extern double physmem_total PARAMS ((void));
! extern double physmem_available PARAMS ((void));
  
  
  /* These macros provide a K&R/C89/C++-friendly way of allocating structures
--- 149,269 ----
  #ifdef __MINGW32__
  /* Forward declaration to avoid #include <sys/time.h>.   */
  struct timeval;
! extern int gettimeofday (struct timeval *, void *); 
  #endif
  
  /* Get the amount of time the process has run, in microseconds.  */
  
! extern long get_run_time (void);
  
  /* Generate a relocated path to some installation directory.  Allocates
     return value using malloc.  */
  
! extern char *make_relative_prefix (const char *, const char *,
!                                    const char *) ATTRIBUTE_MALLOC;
  
  /* Choose a temporary directory to use for scratch files.  */
  
! extern char *choose_temp_base (void) ATTRIBUTE_MALLOC;
  
  /* Return a temporary file name or NULL if unable to create one.  */
  
! extern char *make_temp_file (const char *) ATTRIBUTE_MALLOC;
  
  /* Remove a link to a file unless it is special. */
  
! extern int unlink_if_ordinary (const char *);
  
  /* Allocate memory filled with spaces.  Allocates using malloc.  */
  
! extern const char *spaces (int count);
  
  /* Return the maximum error number for which strerror will return a
     string.  */
  
! extern int errno_max (void);
  
  /* Return the name of an errno value (e.g., strerrno (EINVAL) returns
     "EINVAL").  */
  
! extern const char *strerrno (int);
  
  /* Given the name of an errno value, return the value.  */
  
! extern int strtoerrno (const char *);
  
  /* ANSI's strerror(), but more robust.  */
  
! extern char *xstrerror (int);
  
  /* Return the maximum signal number for which strsignal will return a
     string.  */
  
! extern int signo_max (void);
  
  /* Return a signal message string for a signal number
     (e.g., strsignal (SIGHUP) returns something like "Hangup").  */
  /* This is commented out as it can conflict with one in system headers.
     We still document its existence though.  */
  
! /*extern const char *strsignal (int);*/
  
  /* Return the name of a signal number (e.g., strsigno (SIGHUP) returns
     "SIGHUP").  */
  
! extern const char *strsigno (int);
  
  /* Given the name of a signal, return its number.  */
  
! extern int strtosigno (const char *);
  
  /* Register a function to be run by xexit.  Returns 0 on success.  */
  
! extern int xatexit (void (*fn) (void));
  
  /* Exit, calling all the functions registered with xatexit.  */
  
! extern void xexit (int status) ATTRIBUTE_NORETURN;
  
  /* Set the program name used by xmalloc.  */
  
! extern void xmalloc_set_program_name (const char *);
  
  /* Report an allocation failure.  */
! extern void xmalloc_failed (size_t) ATTRIBUTE_NORETURN;
  
  /* Allocate memory without fail.  If malloc fails, this will print a
     message to stderr (using the name set by xmalloc_set_program_name,
     if any) and then call xexit.  */
  
! extern PTR xmalloc (size_t) ATTRIBUTE_MALLOC;
  
  /* Reallocate memory without fail.  This works like xmalloc.  Note,
     realloc type functions are not suitable for attribute malloc since
     they may return the same address across multiple calls. */
  
! extern PTR xrealloc (PTR, size_t);
  
  /* Allocate memory without fail and set it to zero.  This works like
     xmalloc.  */
  
! extern PTR xcalloc (size_t, size_t) ATTRIBUTE_MALLOC;
  
  /* Copy a string into a memory buffer without fail.  */
  
! extern char *xstrdup (const char *) ATTRIBUTE_MALLOC;
  
  /* Copy at most N characters from string into a buffer without fail.  */
  
! extern char *xstrndup (const char *, size_t) ATTRIBUTE_MALLOC;
  
  /* Copy an existing memory buffer to a new memory buffer without fail.  */
  
! extern PTR xmemdup (const PTR, size_t, size_t) ATTRIBUTE_MALLOC;
  
  /* Physical memory routines.  Return values are in BYTES.  */
! extern double physmem_total (void);
! extern double physmem_available (void);
  
  
  /* These macros provide a K&R/C89/C++-friendly way of allocating structures
*************** extern double physmem_available PARAMS (
*** 303,309 ****
  #define _hex_array_size 256
  #define _hex_bad	99
  extern const unsigned char _hex_value[_hex_array_size];
! extern void hex_init PARAMS ((void));
  #define hex_p(c)	(hex_value (c) != _hex_bad)
  /* If you change this, note well: Some code relies on side effects in
     the argument being performed exactly once.  */
--- 301,307 ----
  #define _hex_array_size 256
  #define _hex_bad	99
  extern const unsigned char _hex_value[_hex_array_size];
! extern void hex_init (void);
  #define hex_p(c)	(hex_value (c) != _hex_bad)
  /* If you change this, note well: Some code relies on side effects in
     the argument being performed exactly once.  */
*************** extern void hex_init PARAMS ((void));
*** 319,343 ****
  
  /* Execute a program.  */
  
! extern int pexecute PARAMS ((const char *, char * const *, const char *,
! 			    const char *, char **, char **, int));
  
  /* Wait for pexecute to finish.  */
  
! extern int pwait PARAMS ((int, int *, int));
  
  #if !HAVE_DECL_ASPRINTF
  /* Like sprintf but provides a pointer to malloc'd storage, which must
     be freed by the caller.  */
  
! extern int asprintf PARAMS ((char **, const char *, ...)) ATTRIBUTE_PRINTF_2;
  #endif
  
  #if !HAVE_DECL_VASPRINTF
  /* Like vsprintf but provides a pointer to malloc'd storage, which
     must be freed by the caller.  */
  
! extern int vasprintf PARAMS ((char **, const char *, va_list))
    ATTRIBUTE_PRINTF(2,0);
  #endif
  
--- 317,341 ----
  
  /* Execute a program.  */
  
! extern int pexecute (const char *, char * const *, const char *,
!                      const char *, char **, char **, int);
  
  /* Wait for pexecute to finish.  */
  
! extern int pwait (int, int *, int);
  
  #if !HAVE_DECL_ASPRINTF
  /* Like sprintf but provides a pointer to malloc'd storage, which must
     be freed by the caller.  */
  
! extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
  #endif
  
  #if !HAVE_DECL_VASPRINTF
  /* Like vsprintf but provides a pointer to malloc'd storage, which
     must be freed by the caller.  */
  
! extern int vasprintf (char **, const char *, va_list)
    ATTRIBUTE_PRINTF(2,0);
  #endif
  
*************** extern int vasprintf PARAMS ((char **, c
*** 349,355 ****
     USE_C_ALLOCA yourself.  The canonical autoconf macro C_ALLOCA is
     also set/unset as it is often used to indicate whether code needs
     to call alloca(0).  */
! extern PTR C_alloca PARAMS ((size_t)) ATTRIBUTE_MALLOC;
  #undef alloca
  #if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA
  # define alloca(x) __builtin_alloca(x)
--- 347,353 ----
     USE_C_ALLOCA yourself.  The canonical autoconf macro C_ALLOCA is
     also set/unset as it is often used to indicate whether code needs
     to call alloca(0).  */
! extern PTR C_alloca (size_t) ATTRIBUTE_MALLOC;
  #undef alloca
  #if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA
  # define alloca(x) __builtin_alloca(x)
Index: libiberty/_doprnt.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/_doprnt.c,v
retrieving revision 1.2
diff -p -r1.2 _doprnt.c
*** libiberty/_doprnt.c	22 Jan 2002 20:03:29 -0000	1.2
--- libiberty/_doprnt.c	26 Mar 2005 18:32:03 -0000
*************** Foundation, 59 Temple Place - Suite 330,
*** 21,31 ****
  #include "safe-ctype.h"
  
  #include <stdio.h>
- #ifdef ANSI_PROTOTYPES
  #include <stdarg.h>
- #else
- #include <varargs.h>
- #endif
  #ifdef HAVE_STRING_H
  #include <string.h>
  #endif
--- 21,27 ----
*************** Foundation, 59 Temple Place - Suite 330,
*** 79,88 ****
        } while (0)
  
  int
! _doprnt (format, ap, stream)
!   const char * format;
!   va_list ap;
!   FILE * stream;
  {
    const char * ptr = format;
    char specifier[128];
--- 75,81 ----
        } while (0)
  
  int
! _doprnt (const char *format, va_list ap, FILE *stream)
  {
    const char * ptr = format;
    char specifier[128];
*************** _doprnt (format, ap, stream)
*** 223,232 ****
      fflush(stdin); \
  } while (0)
  
! static int checkit PARAMS ((const char * format, ...)) ATTRIBUTE_PRINTF_1;
  
  static int
! checkit VPARAMS ((const char* format, ...))
  {
    int result;
    VA_OPEN (args, format);
--- 216,225 ----
      fflush(stdin); \
  } while (0)
  
! static int checkit (const char * format, ...) ATTRIBUTE_PRINTF_1;
  
  static int
! checkit (const char* format, ...)
  {
    int result;
    VA_OPEN (args, format);
*************** checkit VPARAMS ((const char* format, ..
*** 239,245 ****
  }
  
  int
! main ()
  {
    RESULT(checkit ("<%d>\n", 0x12345678));
    RESULT(printf ("<%d>\n", 0x12345678));
--- 232,238 ----
  }
  
  int
! main (void)
  {
    RESULT(checkit ("<%d>\n", 0x12345678));
    RESULT(printf ("<%d>\n", 0x12345678));
Index: libiberty/alloca.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/alloca.c,v
retrieving revision 1.8
diff -p -r1.8 alloca.c
*** libiberty/alloca.c	16 Oct 2001 02:50:13 -0000	1.8
--- libiberty/alloca.c	26 Mar 2005 18:32:04 -0000
*************** static int stack_dir;		/* 1 or -1 once k
*** 97,103 ****
  #define	STACK_DIR	stack_dir
  
  static void
! find_stack_direction ()
  {
    static char *addr = NULL;	/* Address of first `dummy', once known.  */
    auto char dummy;		/* To get stack address.  */
--- 97,103 ----
  #define	STACK_DIR	stack_dir
  
  static void
! find_stack_direction (void)
  {
    static char *addr = NULL;	/* Address of first `dummy', once known.  */
    auto char dummy;		/* To get stack address.  */
*************** static header *last_alloca_header = NULL
*** 153,160 ****
  /* @undocumented C_alloca */
  
  PTR
! C_alloca (size)
!      size_t size;
  {
    auto char probe;		/* Probes stack depth: */
    register char *depth = ADDRESS_FUNCTION (probe);
--- 153,159 ----
  /* @undocumented C_alloca */
  
  PTR
! C_alloca (size_t size)
  {
    auto char probe;		/* Probes stack depth: */
    register char *depth = ADDRESS_FUNCTION (probe);
Index: libiberty/argv.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/argv.c,v
retrieving revision 1.13
diff -p -r1.13 argv.c
*** libiberty/argv.c	15 Apr 2003 20:36:33 -0000	1.13
--- libiberty/argv.c	26 Mar 2005 18:32:04 -0000
*************** Boston, MA 02111-1307, USA.  */
*** 29,54 ****
  
  /*  Routines imported from standard C runtime libraries. */
  
- #ifdef ANSI_PROTOTYPES
- 
  #include <stddef.h>
  #include <string.h>
  #include <stdlib.h>
  
- #else	/* !ANSI_PROTOTYPES */
- 
- #if !defined _WIN32 || defined __GNUC__
- extern char *memcpy ();		/* Copy memory region */
- extern int strlen ();		/* Count length of string */
- extern char *malloc ();		/* Standard memory allocater */
- extern char *realloc ();	/* Standard memory reallocator */
- extern void free ();		/* Free malloc'd memory */
- extern char *strdup ();		/* Duplicate a string */
- #endif
- 
- #endif	/* ANSI_PROTOTYPES */
- 
- 
  #ifndef NULL
  #define NULL 0
  #endif
--- 29,38 ----
*************** argument vector.
*** 75,82 ****
  */
  
  char **
! dupargv (argv)
!      char **argv;
  {
    int argc;
    char **copy;
--- 59,65 ----
  */
  
  char **
! dupargv (char **argv)
  {
    int argc;
    char **copy;
*************** itself.
*** 119,126 ****
  
  */
  
! void freeargv (vector)
! char **vector;
  {
    register char **scan;
  
--- 102,108 ----
  
  */
  
! void freeargv (char **vector)
  {
    register char **scan;
  
*************** returned, as appropriate.
*** 174,181 ****
  
  */
  
! char **buildargv (input)
!      const char *input;
  {
    char *arg;
    char *copybuf;
--- 156,162 ----
  
  */
  
! char **buildargv (const char *input)
  {
    char *arg;
    char *copybuf;
*************** static const char *const tests[] =
*** 325,331 ****
    NULL
  };
  
! int main ()
  {
    char **argv;
    const char *const *test;
--- 306,313 ----
    NULL
  };
  
! int
! main (void)
  {
    char **argv;
    const char *const *test;
Index: libiberty/asprintf.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/asprintf.c,v
retrieving revision 1.7
diff -p -r1.7 asprintf.c
*** libiberty/asprintf.c	3 Jun 2003 18:19:17 -0000	1.7
--- libiberty/asprintf.c	26 Mar 2005 18:32:04 -0000
*************** Boston, MA 02111-1307, USA.  */
*** 22,32 ****
  #include "ansidecl.h"
  #include "libiberty.h"
  
- #ifdef ANSI_PROTOTYPES
  #include <stdarg.h>
- #else
- #include <varargs.h>
- #endif
  
  /*
  
--- 22,28 ----
*************** not be allocated, minus one is returned 
*** 45,51 ****
  */
  
  int
! asprintf VPARAMS ((char **buf, const char *fmt, ...))
  {
    int status;
    VA_OPEN (ap, fmt);
--- 41,47 ----
  */
  
  int
! asprintf (char **buf, const char *fmt, ...)
  {
    int status;
    VA_OPEN (ap, fmt);
Index: libiberty/atexit.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/atexit.c,v
retrieving revision 1.4
diff -p -r1.4 atexit.c
*** libiberty/atexit.c	26 Sep 2001 18:16:17 -0000	1.4
--- libiberty/atexit.c	26 Mar 2005 18:32:04 -0000
*************** Causes function @var{f} to be called at 
*** 16,23 ****
  #ifdef HAVE_ON_EXIT
  
  int
! atexit(f)
!      void (*f)();
  {
    /* If the system doesn't provide a definition for atexit, use on_exit
       if the system provides that.  */
--- 16,22 ----
  #ifdef HAVE_ON_EXIT
  
  int
! atexit(void (*f)(void))
  {
    /* If the system doesn't provide a definition for atexit, use on_exit
       if the system provides that.  */
Index: libiberty/basename.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/basename.c,v
retrieving revision 1.6
diff -p -r1.6 basename.c
*** libiberty/basename.c	26 Sep 2001 18:16:17 -0000	1.6
--- libiberty/basename.c	26 Mar 2005 18:32:04 -0000
*************** Behavior is undefined if the pathname en
*** 37,44 ****
  #endif /* DIR_SEPARATOR_2 */
  
  char *
! basename (name)
!      const char *name;
  {
    const char *base;
  
--- 37,43 ----
  #endif /* DIR_SEPARATOR_2 */
  
  char *
! basename (const char *name)
  {
    const char *base;
  
Index: libiberty/bcmp.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/bcmp.c,v
retrieving revision 1.4
diff -p -r1.4 bcmp.c
*** libiberty/bcmp.c	9 Oct 2001 23:33:57 -0000	1.4
--- libiberty/bcmp.c	26 Mar 2005 18:32:04 -0000
*************** result mean @var{x} sorts before @var{y}
*** 17,25 ****
  
  
  int
! bcmp (from, to, count)
!   char *from, *to;
!   int count;
  {
    int rtnval = 0;
  
--- 17,23 ----
  
  
  int
! bcmp (char *from, char *to, int count)
  {
    int rtnval = 0;
  
Index: libiberty/bcopy.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/bcopy.c,v
retrieving revision 1.3
diff -p -r1.3 bcopy.c
*** libiberty/bcopy.c	26 Sep 2001 18:16:17 -0000	1.3
--- libiberty/bcopy.c	26 Mar 2005 18:32:04 -0000
*************** Copies @var{length} bytes from memory re
*** 10,18 ****
  */
  
  void
! bcopy (src, dest, len)
!   register char *src, *dest;
!   int len;
  {
    if (dest < src)
      while (len--)
--- 10,16 ----
  */
  
  void
! bcopy (register char *src, register char *dest, int len)
  {
    if (dest < src)
      while (len--)
Index: libiberty/bsearch.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/bsearch.c,v
retrieving revision 1.2
diff -p -r1.2 bsearch.c
*** libiberty/bsearch.c	26 Sep 2001 18:16:17 -0000	1.2
--- libiberty/bsearch.c	26 Mar 2005 18:32:04 -0000
*************** is respectively less than, matching, or 
*** 67,82 ****
   * look at item 3.
   */
  void *
! bsearch(key, base0, nmemb, size, compar)
! 	register void *key;
! 	void *base0;
! 	size_t nmemb;
! 	register size_t size;
! 	register int (*compar)();
  {
! 	register char *base = base0;
  	register int lim, cmp;
! 	register void *p;
  
  	for (lim = nmemb; lim != 0; lim >>= 1) {
  		p = base + (lim >> 1) * size;
--- 67,79 ----
   * look at item 3.
   */
  void *
! bsearch (register const void *key, const void *base0,
!          size_t nmemb, register size_t size,
!          register int (*compar)(const void *, const void *))
  {
! 	register const char *base = (const char *) base0;
  	register int lim, cmp;
! 	register const void *p;
  
  	for (lim = nmemb; lim != 0; lim >>= 1) {
  		p = base + (lim >> 1) * size;
*************** bsearch(key, base0, nmemb, size, compar)
*** 84,90 ****
  		if (cmp == 0)
  			return (p);
  		if (cmp > 0) {	/* key > p: move right */
! 			base = (char *)p + size;
  			lim--;
  		} /* else move left */
  	}
--- 81,87 ----
  		if (cmp == 0)
  			return (p);
  		if (cmp > 0) {	/* key > p: move right */
! 			base = (const char *)p + size;
  			lim--;
  		} /* else move left */
  	}
Index: libiberty/bzero.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/bzero.c,v
retrieving revision 1.3
diff -p -r1.3 bzero.c
*** libiberty/bzero.c	26 Sep 2001 18:16:17 -0000	1.3
--- libiberty/bzero.c	26 Mar 2005 18:32:04 -0000
*************** is deprecated in favor of @code{memset}.
*** 14,22 ****
  
  
  void
! bzero (to, count)
!   char *to;
!   int count;
  {
    while (count-- > 0)
      {
--- 14,20 ----
  
  
  void
! bzero (char *to, int count)
  {
    while (count-- > 0)
      {
Index: libiberty/calloc.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/calloc.c,v
retrieving revision 1.5
diff -p -r1.5 calloc.c
*** libiberty/calloc.c	15 Apr 2003 20:36:33 -0000	1.5
--- libiberty/calloc.c	26 Mar 2005 18:32:04 -0000
*************** Uses @code{malloc} to allocate storage f
*** 13,31 ****
  */
   
  #include "ansidecl.h"
- #ifdef ANSI_PROTOTYPES
  #include <stddef.h>
- #else
- #define size_t unsigned long
- #endif
  
  /* For systems with larger pointers than ints, this must be declared.  */
! PTR malloc PARAMS ((size_t));
! void bzero PARAMS ((PTR, size_t));
  
  PTR
! calloc (nelem, elsize)
!   size_t nelem, elsize;
  {
    register PTR ptr;  
  
--- 13,26 ----
  */
   
  #include "ansidecl.h"
  #include <stddef.h>
  
  /* For systems with larger pointers than ints, this must be declared.  */
! PTR malloc (size_t);
! void bzero (PTR, size_t);
  
  PTR
! calloc (size_t nelem, size_t elsize)
  {
    register PTR ptr;  
  
Index: libiberty/choose-temp.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/choose-temp.c,v
retrieving revision 1.18
diff -p -r1.18 choose-temp.c
*** libiberty/choose-temp.c	17 Oct 2001 21:15:40 -0000	1.18
--- libiberty/choose-temp.c	26 Mar 2005 18:32:04 -0000
*************** Boston, MA 02111-1307, USA.  */
*** 30,36 ****
  #endif
  
  #include "libiberty.h"
! extern char *choose_tmpdir PARAMS ((void));
  
  /* Name of temporary file.
     mktemp requires 6 trailing X's.  */
--- 30,36 ----
  #endif
  
  #include "libiberty.h"
! extern char *choose_tmpdir (void);
  
  /* Name of temporary file.
     mktemp requires 6 trailing X's.  */
*************** not recommended.
*** 54,60 ****
  */
  
  char *
! choose_temp_base ()
  {
    const char *base = choose_tmpdir ();
    char *temp_filename;
--- 54,60 ----
  */
  
  char *
! choose_temp_base (void)
  {
    const char *base = choose_tmpdir ();
    char *temp_filename;
Index: libiberty/clock.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/clock.c,v
retrieving revision 1.7
diff -p -r1.7 clock.c
*** libiberty/clock.c	7 Oct 2001 21:53:31 -0000	1.7
--- libiberty/clock.c	26 Mar 2005 18:32:04 -0000
*************** number of seconds used.
*** 67,73 ****
  /* FIXME: should be able to declare as clock_t. */
  
  long
! clock ()
  {
  #ifdef HAVE_GETRUSAGE
    struct rusage rusage;
--- 67,73 ----
  /* FIXME: should be able to declare as clock_t. */
  
  long
! clock (void)
  {
  #ifdef HAVE_GETRUSAGE
    struct rusage rusage;
Index: libiberty/concat.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/concat.c,v
retrieving revision 1.12
diff -p -r1.12 concat.c
*** libiberty/concat.c	17 Oct 2001 21:15:40 -0000	1.12
--- libiberty/concat.c	26 Mar 2005 18:32:04 -0000
*************** NOTES
*** 51,61 ****
  #include "libiberty.h"
  #include <sys/types.h>		/* size_t */
  
- #ifdef ANSI_PROTOTYPES
  #include <stdarg.h>
- #else
- #include <varargs.h>
- #endif
  
  # if HAVE_STRING_H
  #  include <string.h>
--- 51,57 ----
*************** NOTES
*** 69,79 ****
  #include <stdlib.h>
  #endif
  
! static inline unsigned long vconcat_length PARAMS ((const char *, va_list));
  static inline unsigned long
! vconcat_length (first, args)
!      const char *first;
!      va_list args;
  {
    unsigned long length = 0;
    const char *arg;
--- 65,73 ----
  #include <stdlib.h>
  #endif
  
! static inline unsigned long vconcat_length (const char *, va_list);
  static inline unsigned long
! vconcat_length (const char *first, va_list args)
  {
    unsigned long length = 0;
    const char *arg;
*************** vconcat_length (first, args)
*** 84,95 ****
    return length;
  }
  
- static inline char *vconcat_copy PARAMS ((char *, const char *, va_list));
  static inline char *
! vconcat_copy (dst, first, args)
!      char *dst;
!      const char *first;
!      va_list args;
  {
    char *end = dst;
    const char *arg;
--- 78,85 ----
    return length;
  }
  
  static inline char *
! vconcat_copy (char *dst, const char *first, va_list args)
  {
    char *end = dst;
    const char *arg;
*************** vconcat_copy (dst, first, args)
*** 108,114 ****
  /* @undocumented concat_length */
  
  unsigned long
! concat_length VPARAMS ((const char *first, ...))
  {
    unsigned long length;
  
--- 98,104 ----
  /* @undocumented concat_length */
  
  unsigned long
! concat_length (const char *first, ...)
  {
    unsigned long length;
  
*************** concat_length VPARAMS ((const char *firs
*** 123,129 ****
  /* @undocumented concat_copy */
  
  char *
! concat_copy VPARAMS ((char *dst, const char *first, ...))
  {
    char *save_dst;
  
--- 113,119 ----
  /* @undocumented concat_copy */
  
  char *
! concat_copy (char *dst, const char *first, ...)
  {
    char *save_dst;
  
*************** char *libiberty_concat_ptr;
*** 142,148 ****
  /* @undocumented concat_copy2 */
  
  char *
! concat_copy2 VPARAMS ((const char *first, ...))
  {
    VA_OPEN (args, first);
    VA_FIXEDARG (args, const char *, first);
--- 132,138 ----
  /* @undocumented concat_copy2 */
  
  char *
! concat_copy2 (const char *first, ...)
  {
    VA_OPEN (args, first);
    VA_FIXEDARG (args, const char *, first);
*************** concat_copy2 VPARAMS ((const char *first
*** 153,159 ****
  }
  
  char *
! concat VPARAMS ((const char *first, ...))
  {
    char *newstr;
  
--- 143,149 ----
  }
  
  char *
! concat (const char *first, ...)
  {
    char *newstr;
  
*************** loop:
*** 190,196 ****
  */
  
  char *
! reconcat VPARAMS ((char *optr, const char *first, ...))
  {
    char *newstr;
  
--- 180,186 ----
  */
  
  char *
! reconcat (char *optr, const char *first, ...)
  {
    char *newstr;
  
*************** reconcat VPARAMS ((char *optr, const cha
*** 221,227 ****
  #include <stdio.h>
  
  int
! main ()
  {
    printf ("\"\" = \"%s\"\n", concat (NULLP));
    printf ("\"a\" = \"%s\"\n", concat ("a", NULLP));
--- 211,217 ----
  #include <stdio.h>
  
  int
! main (void)
  {
    printf ("\"\" = \"%s\"\n", concat (NULLP));
    printf ("\"a\" = \"%s\"\n", concat ("a", NULLP));
Index: libiberty/copysign.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/copysign.c,v
retrieving revision 1.4
diff -p -r1.4 copysign.c
*** libiberty/copysign.c	15 Apr 2003 03:35:47 -0000	1.4
--- libiberty/copysign.c	26 Mar 2005 18:32:04 -0000
*************** typedef union
*** 132,139 ****
  #if defined(__IEEE_BIG_ENDIAN) || defined(__IEEE_LITTLE_ENDIAN)
  
  double
! copysign (x, y)
!      double x, y;
  {
    __ieee_double_shape_type a,b;
    b.value = y;  
--- 132,138 ----
  #if defined(__IEEE_BIG_ENDIAN) || defined(__IEEE_LITTLE_ENDIAN)
  
  double
! copysign (double x, double y)
  {
    __ieee_double_shape_type a,b;
    b.value = y;  
*************** copysign (x, y)
*** 145,152 ****
  #else
  
  double
! copysign (x, y)
!      double x, y;
  {
    if ((x < 0 && y > 0) || (x > 0 && y < 0))
      return -x;
--- 144,150 ----
  #else
  
  double
! copysign (double x, double y)
  {
    if ((x < 0 && y > 0) || (x > 0 && y < 0))
      return -x;
Index: libiberty/cp-demangle.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/cp-demangle.c,v
retrieving revision 1.76
diff -p -r1.76 cp-demangle.c
*** libiberty/cp-demangle.c	13 Feb 2005 06:58:20 -0000	1.76
--- libiberty/cp-demangle.c	26 Mar 2005 18:32:06 -0000
***************
*** 109,147 ****
  #define CP_STATIC_IF_GLIBCPP_V3 static
  
  #define cplus_demangle_fill_name d_fill_name
! static int
! d_fill_name PARAMS ((struct demangle_component *, const char *, int));
  
  #define cplus_demangle_fill_extended_operator d_fill_extended_operator
  static int
! d_fill_extended_operator PARAMS ((struct demangle_component *, int,
! 				  struct demangle_component *));
  
  #define cplus_demangle_fill_ctor d_fill_ctor
  static int
! d_fill_ctor PARAMS ((struct demangle_component *, enum gnu_v3_ctor_kinds,
! 		     struct demangle_component *));
  
  #define cplus_demangle_fill_dtor d_fill_dtor
  static int
! d_fill_dtor PARAMS ((struct demangle_component *, enum gnu_v3_dtor_kinds,
! 		     struct demangle_component *));
  
  #define cplus_demangle_mangled_name d_mangled_name
! static struct demangle_component *
! d_mangled_name PARAMS ((struct d_info *, int));
  
  #define cplus_demangle_type d_type
! static struct demangle_component *
! d_type PARAMS ((struct d_info *));
  
  #define cplus_demangle_print d_print
! static char *
! d_print PARAMS ((int, const struct demangle_component *, int, size_t *));
  
  #define cplus_demangle_init_info d_init_info
! static void
! d_init_info PARAMS ((const char *, int, size_t, struct d_info *));
  
  #else /* ! defined(IN_GLIBCPP_V3) */
  #define CP_STATIC_IF_GLIBCPP_V3
--- 109,142 ----
  #define CP_STATIC_IF_GLIBCPP_V3 static
  
  #define cplus_demangle_fill_name d_fill_name
! static int d_fill_name (struct demangle_component *, const char *, int);
  
  #define cplus_demangle_fill_extended_operator d_fill_extended_operator
  static int
! d_fill_extended_operator (struct demangle_component *, int,
!                           struct demangle_component *);
  
  #define cplus_demangle_fill_ctor d_fill_ctor
  static int
! d_fill_ctor (struct demangle_component *, enum gnu_v3_ctor_kinds,
!              struct demangle_component *);
  
  #define cplus_demangle_fill_dtor d_fill_dtor
  static int
! d_fill_dtor (struct demangle_component *, enum gnu_v3_dtor_kinds,
!              struct demangle_component *);
  
  #define cplus_demangle_mangled_name d_mangled_name
! static struct demangle_component *d_mangled_name (struct d_info *, int);
  
  #define cplus_demangle_type d_type
! static struct demangle_component *d_type (struct d_info *);
  
  #define cplus_demangle_print d_print
! static char *d_print (int, const struct demangle_component *, int, size_t *);
  
  #define cplus_demangle_init_info d_init_info
! static void d_init_info (const char *, int, size_t, struct d_info *);
  
  #else /* ! defined(IN_GLIBCPP_V3) */
  #define CP_STATIC_IF_GLIBCPP_V3
*************** struct d_print_info
*** 286,472 ****
    ((dpi)->buf == NULL || (dpi)->len == 0 ? '\0' : (dpi)->buf[(dpi)->len - 1])
  
  #ifdef CP_DEMANGLE_DEBUG
! static void 
! d_dump PARAMS ((struct demangle_component *, int));
  #endif
  
  static struct demangle_component *
! d_make_empty PARAMS ((struct d_info *));
  
  static struct demangle_component *
! d_make_comp PARAMS ((struct d_info *, enum demangle_component_type,
! 		     struct demangle_component *,
! 		     struct demangle_component *));
  
  static struct demangle_component *
! d_make_name PARAMS ((struct d_info *, const char *, int));
  
  static struct demangle_component *
! d_make_builtin_type PARAMS ((struct d_info *,
! 			     const struct demangle_builtin_type_info *));
  
  static struct demangle_component *
! d_make_operator PARAMS ((struct d_info *,
! 			 const struct demangle_operator_info *));
  
  static struct demangle_component *
! d_make_extended_operator PARAMS ((struct d_info *, int,
! 				  struct demangle_component *));
  
  static struct demangle_component *
! d_make_ctor PARAMS ((struct d_info *, enum gnu_v3_ctor_kinds,
! 		     struct demangle_component *));
  
  static struct demangle_component *
! d_make_dtor PARAMS ((struct d_info *, enum gnu_v3_dtor_kinds,
! 		     struct demangle_component *));
  
  static struct demangle_component *
! d_make_template_param PARAMS ((struct d_info *, long));
  
  static struct demangle_component *
! d_make_sub PARAMS ((struct d_info *, const char *, int));
  
  static int
! has_return_type PARAMS ((struct demangle_component *));
  
  static int
! is_ctor_dtor_or_conversion PARAMS ((struct demangle_component *));
  
! static struct demangle_component *
! d_encoding PARAMS ((struct d_info *, int));
  
! static struct demangle_component *
! d_name PARAMS ((struct d_info *));
  
! static struct demangle_component *
! d_nested_name PARAMS ((struct d_info *));
  
! static struct demangle_component *
! d_prefix PARAMS ((struct d_info *));
  
! static struct demangle_component *
! d_unqualified_name PARAMS ((struct d_info *));
  
! static struct demangle_component *
! d_source_name PARAMS ((struct d_info *));
  
! static long
! d_number PARAMS ((struct d_info *));
  
! static struct demangle_component *
! d_identifier PARAMS ((struct d_info *, int));
  
! static struct demangle_component *
! d_operator_name PARAMS ((struct d_info *));
  
! static struct demangle_component *
! d_special_name PARAMS ((struct d_info *));
  
! static int
! d_call_offset PARAMS ((struct d_info *, int));
  
! static struct demangle_component *
! d_ctor_dtor_name PARAMS ((struct d_info *));
  
  static struct demangle_component **
! d_cv_qualifiers PARAMS ((struct d_info *, struct demangle_component **, int));
  
  static struct demangle_component *
! d_function_type PARAMS ((struct d_info *));
  
  static struct demangle_component *
! d_bare_function_type PARAMS ((struct d_info *, int));
  
  static struct demangle_component *
! d_class_enum_type PARAMS ((struct d_info *));
  
! static struct demangle_component *
! d_array_type PARAMS ((struct d_info *));
  
  static struct demangle_component *
! d_pointer_to_member_type PARAMS ((struct d_info *));
  
  static struct demangle_component *
! d_template_param PARAMS ((struct d_info *));
  
! static struct demangle_component *
! d_template_args PARAMS ((struct d_info *));
  
  static struct demangle_component *
! d_template_arg PARAMS ((struct d_info *));
  
! static struct demangle_component *
! d_expression PARAMS ((struct d_info *));
  
! static struct demangle_component *
! d_expr_primary PARAMS ((struct d_info *));
  
! static struct demangle_component *
! d_local_name PARAMS ((struct d_info *));
  
! static int
! d_discriminator PARAMS ((struct d_info *));
  
  static int
! d_add_substitution PARAMS ((struct d_info *, struct demangle_component *));
  
! static struct demangle_component *
! d_substitution PARAMS ((struct d_info *, int));
  
! static void
! d_print_resize PARAMS ((struct d_print_info *, size_t));
  
! static void
! d_print_append_char PARAMS ((struct d_print_info *, int));
  
  static void
! d_print_append_buffer PARAMS ((struct d_print_info *, const char *, size_t));
  
! static void
! d_print_error PARAMS ((struct d_print_info *));
  
  static void
! d_print_comp PARAMS ((struct d_print_info *,
! 		      const struct demangle_component *));
  
  static void
! d_print_java_identifier PARAMS ((struct d_print_info *, const char *, int));
  
  static void
! d_print_mod_list PARAMS ((struct d_print_info *, struct d_print_mod *, int));
  
  static void
! d_print_mod PARAMS ((struct d_print_info *,
! 		     const struct demangle_component *));
  
  static void
! d_print_function_type PARAMS ((struct d_print_info *,
! 			       const struct demangle_component *,
! 			       struct d_print_mod *));
  
  static void
! d_print_array_type PARAMS ((struct d_print_info *,
! 			    const struct demangle_component *,
! 			    struct d_print_mod *));
  
  static void
! d_print_expr_op PARAMS ((struct d_print_info *,
! 			 const struct demangle_component *));
  
  static void
! d_print_cast PARAMS ((struct d_print_info *,
! 		      const struct demangle_component *));
  
! static char *
! d_demangle PARAMS ((const char *, int, size_t *));
  
  #ifdef CP_DEMANGLE_DEBUG
  
  static void
! d_dump (dc, indent)
!      struct demangle_component *dc;
!      int indent;
  {
    int i;
  
--- 281,437 ----
    ((dpi)->buf == NULL || (dpi)->len == 0 ? '\0' : (dpi)->buf[(dpi)->len - 1])
  
  #ifdef CP_DEMANGLE_DEBUG
! static void d_dump (struct demangle_component *, int);
  #endif
  
  static struct demangle_component *
! d_make_empty (struct d_info *);
  
  static struct demangle_component *
! d_make_comp (struct d_info *, enum demangle_component_type,
!              struct demangle_component *,
!              struct demangle_component *);
  
  static struct demangle_component *
! d_make_name (struct d_info *, const char *, int);
  
  static struct demangle_component *
! d_make_builtin_type (struct d_info *,
!                      const struct demangle_builtin_type_info *);
  
  static struct demangle_component *
! d_make_operator (struct d_info *,
!                  const struct demangle_operator_info *);
  
  static struct demangle_component *
! d_make_extended_operator (struct d_info *, int,
!                           struct demangle_component *);
  
  static struct demangle_component *
! d_make_ctor (struct d_info *, enum gnu_v3_ctor_kinds,
!              struct demangle_component *);
  
  static struct demangle_component *
! d_make_dtor (struct d_info *, enum gnu_v3_dtor_kinds,
!              struct demangle_component *);
  
  static struct demangle_component *
! d_make_template_param (struct d_info *, long);
  
  static struct demangle_component *
! d_make_sub (struct d_info *, const char *, int);
  
  static int
! has_return_type (struct demangle_component *);
  
  static int
! is_ctor_dtor_or_conversion (struct demangle_component *);
  
! static struct demangle_component *d_encoding (struct d_info *, int);
  
! static struct demangle_component *d_name (struct d_info *);
  
! static struct demangle_component *d_nested_name (struct d_info *);
  
! static struct demangle_component *d_prefix (struct d_info *);
  
! static struct demangle_component *d_unqualified_name (struct d_info *);
  
! static struct demangle_component *d_source_name (struct d_info *);
  
! static long d_number (struct d_info *);
  
! static struct demangle_component *d_identifier (struct d_info *, int);
  
! static struct demangle_component *d_operator_name (struct d_info *);
  
! static struct demangle_component *d_special_name (struct d_info *);
  
! static int d_call_offset (struct d_info *, int);
  
! static struct demangle_component *d_ctor_dtor_name (struct d_info *);
  
  static struct demangle_component **
! d_cv_qualifiers (struct d_info *, struct demangle_component **, int);
  
  static struct demangle_component *
! d_function_type (struct d_info *);
  
  static struct demangle_component *
! d_bare_function_type (struct d_info *, int);
  
  static struct demangle_component *
! d_class_enum_type (struct d_info *);
  
! static struct demangle_component *d_array_type (struct d_info *);
  
  static struct demangle_component *
! d_pointer_to_member_type (struct d_info *);
  
  static struct demangle_component *
! d_template_param (struct d_info *);
  
! static struct demangle_component *d_template_args (struct d_info *);
  
  static struct demangle_component *
! d_template_arg (struct d_info *);
  
! static struct demangle_component *d_expression (struct d_info *);
  
! static struct demangle_component *d_expr_primary (struct d_info *);
  
! static struct demangle_component *d_local_name (struct d_info *);
  
! static int d_discriminator (struct d_info *);
  
  static int
! d_add_substitution (struct d_info *, struct demangle_component *);
  
! static struct demangle_component *d_substitution (struct d_info *, int);
  
! static void d_print_resize (struct d_print_info *, size_t);
  
! static void d_print_append_char (struct d_print_info *, int);
  
  static void
! d_print_append_buffer (struct d_print_info *, const char *, size_t);
  
! static void d_print_error (struct d_print_info *);
  
  static void
! d_print_comp (struct d_print_info *, const struct demangle_component *);
  
  static void
! d_print_java_identifier (struct d_print_info *, const char *, int);
  
  static void
! d_print_mod_list (struct d_print_info *, struct d_print_mod *, int);
  
  static void
! d_print_mod (struct d_print_info *, const struct demangle_component *);
  
  static void
! d_print_function_type (struct d_print_info *,
!                        const struct demangle_component *,
!                        struct d_print_mod *);
  
  static void
! d_print_array_type (struct d_print_info *,
!                     const struct demangle_component *,
!                     struct d_print_mod *);
  
  static void
! d_print_expr_op (struct d_print_info *, const struct demangle_component *);
  
  static void
! d_print_cast (struct d_print_info *, const struct demangle_component *);
  
! static char *d_demangle (const char *, int, size_t *);
  
  #ifdef CP_DEMANGLE_DEBUG
  
  static void
! d_dump (struct demangle_component *dc, int indent)
  {
    int i;
  
*************** d_dump (dc, indent)
*** 645,654 ****
  
  CP_STATIC_IF_GLIBCPP_V3
  int
! cplus_demangle_fill_name (p, s, len)
!      struct demangle_component *p;
!      const char *s;
!      int len;
  {
    if (p == NULL || s == NULL || len == 0)
      return 0;
--- 610,616 ----
  
  CP_STATIC_IF_GLIBCPP_V3
  int
! cplus_demangle_fill_name (struct demangle_component *p, const char *s, int len)
  {
    if (p == NULL || s == NULL || len == 0)
      return 0;
*************** cplus_demangle_fill_name (p, s, len)
*** 662,671 ****
  
  CP_STATIC_IF_GLIBCPP_V3
  int
! cplus_demangle_fill_extended_operator (p, args, name)
!      struct demangle_component *p;
!      int args;
!      struct demangle_component *name;
  {
    if (p == NULL || args < 0 || name == NULL)
      return 0;
--- 624,631 ----
  
  CP_STATIC_IF_GLIBCPP_V3
  int
! cplus_demangle_fill_extended_operator (struct demangle_component *p, int args,
!                                        struct demangle_component *name)
  {
    if (p == NULL || args < 0 || name == NULL)
      return 0;
*************** cplus_demangle_fill_extended_operator (p
*** 679,688 ****
  
  CP_STATIC_IF_GLIBCPP_V3
  int
! cplus_demangle_fill_ctor (p, kind, name)
!      struct demangle_component *p;
!      enum gnu_v3_ctor_kinds kind;
!      struct demangle_component *name;
  {
    if (p == NULL
        || name == NULL
--- 639,647 ----
  
  CP_STATIC_IF_GLIBCPP_V3
  int
! cplus_demangle_fill_ctor (struct demangle_component *p,
!                           enum gnu_v3_ctor_kinds kind,
!                           struct demangle_component *name)
  {
    if (p == NULL
        || name == NULL
*************** cplus_demangle_fill_ctor (p, kind, name)
*** 699,708 ****
  
  CP_STATIC_IF_GLIBCPP_V3
  int
! cplus_demangle_fill_dtor (p, kind, name)
!      struct demangle_component *p;
!      enum gnu_v3_dtor_kinds kind;
!      struct demangle_component *name;
  {
    if (p == NULL
        || name == NULL
--- 658,666 ----
  
  CP_STATIC_IF_GLIBCPP_V3
  int
! cplus_demangle_fill_dtor (struct demangle_component *p,
!                           enum gnu_v3_dtor_kinds kind,
!                           struct demangle_component *name)
  {
    if (p == NULL
        || name == NULL
*************** cplus_demangle_fill_dtor (p, kind, name)
*** 718,725 ****
  /* Add a new component.  */
  
  static struct demangle_component *
! d_make_empty (di)
!      struct d_info *di;
  {
    struct demangle_component *p;
  
--- 676,682 ----
  /* Add a new component.  */
  
  static struct demangle_component *
! d_make_empty (struct d_info *di)
  {
    struct demangle_component *p;
  
*************** d_make_empty (di)
*** 733,743 ****
  /* Add a new generic component.  */
  
  static struct demangle_component *
! d_make_comp (di, type, left, right)
!      struct d_info *di;
!      enum demangle_component_type type;
!      struct demangle_component *left;
!      struct demangle_component *right;
  {
    struct demangle_component *p;
  
--- 690,698 ----
  /* Add a new generic component.  */
  
  static struct demangle_component *
! d_make_comp (struct d_info *di, enum demangle_component_type type,
!              struct demangle_component *left,
!              struct demangle_component *right)
  {
    struct demangle_component *p;
  
*************** d_make_comp (di, type, left, right)
*** 826,835 ****
  /* Add a new name component.  */
  
  static struct demangle_component *
! d_make_name (di, s, len)
!      struct d_info *di;
!      const char *s;
!      int len;
  {
    struct demangle_component *p;
  
--- 781,787 ----
  /* Add a new name component.  */
  
  static struct demangle_component *
! d_make_name (struct d_info *di, const char *s, int len)
  {
    struct demangle_component *p;
  
*************** d_make_name (di, s, len)
*** 842,850 ****
  /* Add a new builtin type component.  */
  
  static struct demangle_component *
! d_make_builtin_type (di, type)
!      struct d_info *di;
!      const struct demangle_builtin_type_info *type;
  {
    struct demangle_component *p;
  
--- 794,801 ----
  /* Add a new builtin type component.  */
  
  static struct demangle_component *
! d_make_builtin_type (struct d_info *di,
!                      const struct demangle_builtin_type_info *type)
  {
    struct demangle_component *p;
  
*************** d_make_builtin_type (di, type)
*** 862,870 ****
  /* Add a new operator component.  */
  
  static struct demangle_component *
! d_make_operator (di, op)
!      struct d_info *di;
!      const struct demangle_operator_info *op;
  {
    struct demangle_component *p;
  
--- 813,819 ----
  /* Add a new operator component.  */
  
  static struct demangle_component *
! d_make_operator (struct d_info *di, const struct demangle_operator_info *op)
  {
    struct demangle_component *p;
  
*************** d_make_operator (di, op)
*** 880,889 ****
  /* Add a new extended operator component.  */
  
  static struct demangle_component *
! d_make_extended_operator (di, args, name)
!      struct d_info *di;
!      int args;
!      struct demangle_component *name;
  {
    struct demangle_component *p;
  
--- 829,836 ----
  /* Add a new extended operator component.  */
  
  static struct demangle_component *
! d_make_extended_operator (struct d_info *di, int args,
!                           struct demangle_component *name)
  {
    struct demangle_component *p;
  
*************** d_make_extended_operator (di, args, name
*** 896,905 ****
  /* Add a new constructor component.  */
  
  static struct demangle_component *
! d_make_ctor (di, kind,  name)
!      struct d_info *di;
!      enum gnu_v3_ctor_kinds kind;
!      struct demangle_component *name;
  {
    struct demangle_component *p;
  
--- 843,850 ----
  /* Add a new constructor component.  */
  
  static struct demangle_component *
! d_make_ctor (struct d_info *di, enum gnu_v3_ctor_kinds kind,
!              struct demangle_component *name)
  {
    struct demangle_component *p;
  
*************** d_make_ctor (di, kind,  name)
*** 912,921 ****
  /* Add a new destructor component.  */
  
  static struct demangle_component *
! d_make_dtor (di, kind, name)
!      struct d_info *di;
!      enum gnu_v3_dtor_kinds kind;
!      struct demangle_component *name;
  {
    struct demangle_component *p;
  
--- 857,864 ----
  /* Add a new destructor component.  */
  
  static struct demangle_component *
! d_make_dtor (struct d_info *di, enum gnu_v3_dtor_kinds kind,
!              struct demangle_component *name)
  {
    struct demangle_component *p;
  
*************** d_make_dtor (di, kind, name)
*** 928,936 ****
  /* Add a new template parameter.  */
  
  static struct demangle_component *
! d_make_template_param (di, i)
!      struct d_info *di;
!      long i;
  {
    struct demangle_component *p;
  
--- 871,877 ----
  /* Add a new template parameter.  */
  
  static struct demangle_component *
! d_make_template_param (struct d_info *di, long i)
  {
    struct demangle_component *p;
  
*************** d_make_template_param (di, i)
*** 946,955 ****
  /* Add a new standard substitution component.  */
  
  static struct demangle_component *
! d_make_sub (di, name, len)
!      struct d_info *di;
!      const char *name;
!      int len;
  {
    struct demangle_component *p;
  
--- 887,893 ----
  /* Add a new standard substitution component.  */
  
  static struct demangle_component *
! d_make_sub (struct d_info *di, const char *name, int len)
  {
    struct demangle_component *p;
  
*************** d_make_sub (di, name, len)
*** 969,977 ****
  
  CP_STATIC_IF_GLIBCPP_V3
  struct demangle_component *
! cplus_demangle_mangled_name (di, top_level)
!      struct d_info *di;
!      int top_level;
  {
    if (d_next_char (di) != '_')
      return NULL;
--- 907,913 ----
  
  CP_STATIC_IF_GLIBCPP_V3
  struct demangle_component *
! cplus_demangle_mangled_name (struct d_info *di, int top_level)
  {
    if (d_next_char (di) != '_')
      return NULL;
*************** cplus_demangle_mangled_name (di, top_lev
*** 990,997 ****
     return types.  */
  
  static int
! has_return_type (dc)
!      struct demangle_component *dc;
  {
    if (dc == NULL)
      return 0;
--- 926,932 ----
     return types.  */
  
  static int
! has_return_type (struct demangle_component *dc)
  {
    if (dc == NULL)
      return 0;
*************** has_return_type (dc)
*** 1012,1019 ****
     conversion operator.  */
  
  static int
! is_ctor_dtor_or_conversion (dc)
!      struct demangle_component *dc;
  {
    if (dc == NULL)
      return 0;
--- 947,953 ----
     conversion operator.  */
  
  static int
! is_ctor_dtor_or_conversion (struct demangle_component *dc)
  {
    if (dc == NULL)
      return 0;
*************** is_ctor_dtor_or_conversion (dc)
*** 1041,1049 ****
     we would not correctly demangle names in local scopes.  */
  
  static struct demangle_component *
! d_encoding (di, top_level)
!      struct d_info *di;
!      int top_level;
  {
    char peek = d_peek_char (di);
  
--- 975,981 ----
     we would not correctly demangle names in local scopes.  */
  
  static struct demangle_component *
! d_encoding (struct d_info *di, int top_level)
  {
    char peek = d_peek_char (di);
  
*************** d_encoding (di, top_level)
*** 1105,1112 ****
  */
  
  static struct demangle_component *
! d_name (di)
!      struct d_info *di;
  {
    char peek = d_peek_char (di);
    struct demangle_component *dc;
--- 1037,1043 ----
  */
  
  static struct demangle_component *
! d_name (struct d_info *di)
  {
    char peek = d_peek_char (di);
    struct demangle_component *dc;
*************** d_name (di)
*** 1183,1190 ****
  */
  
  static struct demangle_component *
! d_nested_name (di)
!      struct d_info *di;
  {
    struct demangle_component *ret;
    struct demangle_component **pret;
--- 1114,1120 ----
  */
  
  static struct demangle_component *
! d_nested_name (struct d_info *di)
  {
    struct demangle_component *ret;
    struct demangle_component **pret;
*************** d_nested_name (di)
*** 1218,1225 ****
  */
  
  static struct demangle_component *
! d_prefix (di)
!      struct d_info *di;
  {
    struct demangle_component *ret = NULL;
  
--- 1148,1154 ----
  */
  
  static struct demangle_component *
! d_prefix (struct d_info *di)
  {
    struct demangle_component *ret = NULL;
  
*************** d_prefix (di)
*** 1278,1285 ****
  */
  
  static struct demangle_component *
! d_unqualified_name (di)
!      struct d_info *di;
  {
    char peek;
  
--- 1207,1213 ----
  */
  
  static struct demangle_component *
! d_unqualified_name (struct d_info *di)
  {
    char peek;
  
*************** d_unqualified_name (di)
*** 1304,1311 ****
  /* <source-name> ::= <(positive length) number> <identifier>  */
  
  static struct demangle_component *
! d_source_name (di)
!      struct d_info *di;
  {
    long len;
    struct demangle_component *ret;
--- 1232,1238 ----
  /* <source-name> ::= <(positive length) number> <identifier>  */
  
  static struct demangle_component *
! d_source_name (struct d_info *di)
  {
    long len;
    struct demangle_component *ret;
*************** d_source_name (di)
*** 1321,1328 ****
  /* number ::= [n] <(non-negative decimal integer)>  */
  
  static long
! d_number (di)
!      struct d_info *di;
  {
    int negative;
    char peek;
--- 1248,1254 ----
  /* number ::= [n] <(non-negative decimal integer)>  */
  
  static long
! d_number (struct d_info *di)
  {
    int negative;
    char peek;
*************** d_number (di)
*** 1355,1363 ****
  /* identifier ::= <(unqualified source code identifier)>  */
  
  static struct demangle_component *
! d_identifier (di, len)
!      struct d_info *di;
!      int len;
  {
    const char *name;
  
--- 1281,1287 ----
  /* identifier ::= <(unqualified source code identifier)>  */
  
  static struct demangle_component *
! d_identifier (struct d_info *di, int len)
  {
    const char *name;
  
*************** const struct demangle_operator_info cplu
*** 1460,1467 ****
  };
  
  static struct demangle_component *
! d_operator_name (di)
!      struct d_info *di;
  {
    char c1;
    char c2;
--- 1384,1390 ----
  };
  
  static struct demangle_component *
! d_operator_name (struct d_info *di)
  {
    char c1;
    char c2;
*************** d_operator_name (di)
*** 1519,1526 ****
  */
  
  static struct demangle_component *
! d_special_name (di)
!      struct d_info *di;
  {
    char c;
  
--- 1442,1448 ----
  */
  
  static struct demangle_component *
! d_special_name (struct d_info *di)
  {
    char c;
  
*************** d_special_name (di)
*** 1629,1637 ****
     display it in verbose mode.  */
  
  static int
! d_call_offset (di, c)
!      struct d_info *di;
!      int c;
  {
    if (c == '\0')
      c = d_next_char (di);
--- 1551,1557 ----
     display it in verbose mode.  */
  
  static int
! d_call_offset (struct d_info *di, int c)
  {
    if (c == '\0')
      c = d_next_char (di);
*************** d_call_offset (di, c)
*** 1663,1670 ****
  */
  
  static struct demangle_component *
! d_ctor_dtor_name (di)
!      struct d_info *di;
  {
    if (di->last_name != NULL)
      {
--- 1583,1589 ----
  */
  
  static struct demangle_component *
! d_ctor_dtor_name (struct d_info *di)
  {
    if (di->last_name != NULL)
      {
*************** cplus_demangle_builtin_types[D_BUILTIN_T
*** 1777,1784 ****
  
  CP_STATIC_IF_GLIBCPP_V3
  struct demangle_component *
! cplus_demangle_type (di)
!      struct d_info *di;
  {
    char peek;
    struct demangle_component *ret;
--- 1696,1702 ----
  
  CP_STATIC_IF_GLIBCPP_V3
  struct demangle_component *
! cplus_demangle_type (struct d_info *di)
  {
    char peek;
    struct demangle_component *ret;
*************** cplus_demangle_type (di)
*** 1947,1956 ****
  /* <CV-qualifiers> ::= [r] [V] [K]  */
  
  static struct demangle_component **
! d_cv_qualifiers (di, pret, member_fn)
!      struct d_info *di;
!      struct demangle_component **pret;
!      int member_fn;
  {
    char peek;
  
--- 1865,1872 ----
  /* <CV-qualifiers> ::= [r] [V] [K]  */
  
  static struct demangle_component **
! d_cv_qualifiers (struct d_info *di,
!                  struct demangle_component **pret, int member_fn)
  {
    char peek;
  
*************** d_cv_qualifiers (di, pret, member_fn)
*** 1996,2003 ****
  /* <function-type> ::= F [Y] <bare-function-type> E  */
  
  static struct demangle_component *
! d_function_type (di)
!      struct d_info *di;
  {
    struct demangle_component *ret;
  
--- 1912,1918 ----
  /* <function-type> ::= F [Y] <bare-function-type> E  */
  
  static struct demangle_component *
! d_function_type (struct d_info *di)
  {
    struct demangle_component *ret;
  
*************** d_function_type (di)
*** 2018,2026 ****
  /* <bare-function-type> ::= <type>+  */
  
  static struct demangle_component *
! d_bare_function_type (di, has_return_type)
!      struct d_info *di;
!      int has_return_type;
  {
    struct demangle_component *return_type;
    struct demangle_component *tl;
--- 1933,1939 ----
  /* <bare-function-type> ::= <type>+  */
  
  static struct demangle_component *
! d_bare_function_type (struct d_info *di, int has_return_type)
  {
    struct demangle_component *return_type;
    struct demangle_component *tl;
*************** d_bare_function_type (di, has_return_typ
*** 2075,2082 ****
  /* <class-enum-type> ::= <name>  */
  
  static struct demangle_component *
! d_class_enum_type (di)
!      struct d_info *di;
  {
    return d_name (di);
  }
--- 1988,1994 ----
  /* <class-enum-type> ::= <name>  */
  
  static struct demangle_component *
! d_class_enum_type (struct d_info *di)
  {
    return d_name (di);
  }
*************** d_class_enum_type (di)
*** 2086,2093 ****
  */
  
  static struct demangle_component *
! d_array_type (di)
!      struct d_info *di;
  {
    char peek;
    struct demangle_component *dim;
--- 1998,2004 ----
  */
  
  static struct demangle_component *
! d_array_type (struct d_info *di)
  {
    char peek;
    struct demangle_component *dim;
*************** d_array_type (di)
*** 2130,2137 ****
  /* <pointer-to-member-type> ::= M <(class) type> <(member) type>  */
  
  static struct demangle_component *
! d_pointer_to_member_type (di)
!      struct d_info *di;
  {
    struct demangle_component *cl;
    struct demangle_component *mem;
--- 2041,2047 ----
  /* <pointer-to-member-type> ::= M <(class) type> <(member) type>  */
  
  static struct demangle_component *
! d_pointer_to_member_type (struct d_info *di)
  {
    struct demangle_component *cl;
    struct demangle_component *mem;
*************** d_pointer_to_member_type (di)
*** 2168,2175 ****
  */
  
  static struct demangle_component *
! d_template_param (di)
!      struct d_info *di;
  {
    long param;
  
--- 2078,2084 ----
  */
  
  static struct demangle_component *
! d_template_param (struct d_info *di)
  {
    long param;
  
*************** d_template_param (di)
*** 2197,2204 ****
  /* <template-args> ::= I <template-arg>+ E  */
  
  static struct demangle_component *
! d_template_args (di)
!      struct d_info *di;
  {
    struct demangle_component *hold_last_name;
    struct demangle_component *al;
--- 2106,2112 ----
  /* <template-args> ::= I <template-arg>+ E  */
  
  static struct demangle_component *
! d_template_args (struct d_info *di)
  {
    struct demangle_component *hold_last_name;
    struct demangle_component *al;
*************** d_template_args (di)
*** 2245,2252 ****
  */
  
  static struct demangle_component *
! d_template_arg (di)
!      struct d_info *di;
  {
    struct demangle_component *ret;
  
--- 2153,2159 ----
  */
  
  static struct demangle_component *
! d_template_arg (struct d_info *di)
  {
    struct demangle_component *ret;
  
*************** d_template_arg (di)
*** 2278,2285 ****
  */
  
  static struct demangle_component *
! d_expression (di)
!      struct d_info *di;
  {
    char peek;
  
--- 2185,2191 ----
  */
  
  static struct demangle_component *
! d_expression (struct d_info *di)
  {
    char peek;
  
*************** d_expression (di)
*** 2379,2386 ****
  */
  
  static struct demangle_component *
! d_expr_primary (di)
!      struct d_info *di;
  {
    struct demangle_component *ret;
  
--- 2285,2291 ----
  */
  
  static struct demangle_component *
! d_expr_primary (struct d_info *di)
  {
    struct demangle_component *ret;
  
*************** d_expr_primary (di)
*** 2436,2443 ****
  */
  
  static struct demangle_component *
! d_local_name (di)
!      struct d_info *di;
  {
    struct demangle_component *function;
  
--- 2341,2347 ----
  */
  
  static struct demangle_component *
! d_local_name (struct d_info *di)
  {
    struct demangle_component *function;
  
*************** d_local_name (di)
*** 2475,2482 ****
     We should print it out in verbose mode.  */
  
  static int
! d_discriminator (di)
!      struct d_info *di;
  {
    long discrim;
  
--- 2379,2385 ----
     We should print it out in verbose mode.  */
  
  static int
! d_discriminator (struct d_info *di)
  {
    long discrim;
  
*************** d_discriminator (di)
*** 2492,2500 ****
  /* Add a new substitution.  */
  
  static int
! d_add_substitution (di, dc)
!      struct d_info *di;
!      struct demangle_component *dc;
  {
    if (dc == NULL)
      return 0;
--- 2395,2401 ----
  /* Add a new substitution.  */
  
  static int
! d_add_substitution (struct d_info *di, struct demangle_component *dc)
  {
    if (dc == NULL)
      return 0;
*************** static const struct d_standard_sub_info 
*** 2550,2558 ****
  };
  
  static struct demangle_component *
! d_substitution (di, prefix)
!      struct d_info *di;
!      int prefix;
  {
    char c;
  
--- 2451,2457 ----
  };
  
  static struct demangle_component *
! d_substitution (struct d_info *di, int prefix)
  {
    char c;
  
*************** d_substitution (di, prefix)
*** 2639,2647 ****
  /* Resize the print buffer.  */
  
  static void
! d_print_resize (dpi, add)
!      struct d_print_info *dpi;
!      size_t add;
  {
    size_t need;
  
--- 2538,2544 ----
  /* Resize the print buffer.  */
  
  static void
! d_print_resize (struct d_print_info *dpi, size_t add)
  {
    size_t need;
  
*************** d_print_resize (dpi, add)
*** 2670,2678 ****
  /* Append a character to the print buffer.  */
  
  static void
! d_print_append_char (dpi, c)
!      struct d_print_info *dpi;
!      int c;
  {
    if (dpi->buf != NULL)
      {
--- 2567,2573 ----
  /* Append a character to the print buffer.  */
  
  static void
! d_print_append_char (struct d_print_info *dpi, int c)
  {
    if (dpi->buf != NULL)
      {
*************** d_print_append_char (dpi, c)
*** 2691,2700 ****
  /* Append a buffer to the print buffer.  */
  
  static void
! d_print_append_buffer (dpi, s, l)
!      struct d_print_info *dpi;
!      const char *s;
!      size_t l;
  {
    if (dpi->buf != NULL)
      {
--- 2586,2592 ----
  /* Append a buffer to the print buffer.  */
  
  static void
! d_print_append_buffer (struct d_print_info *dpi, const char *s, size_t l)
  {
    if (dpi->buf != NULL)
      {
*************** d_print_append_buffer (dpi, s, l)
*** 2713,2720 ****
  /* Indicate that an error occurred during printing.  */
  
  static void
! d_print_error (dpi)
!      struct d_print_info *dpi;
  {
    free (dpi->buf);
    dpi->buf = NULL;
--- 2605,2611 ----
  /* Indicate that an error occurred during printing.  */
  
  static void
! d_print_error (struct d_print_info *dpi)
  {
    free (dpi->buf);
    dpi->buf = NULL;
*************** d_print_error (dpi)
*** 2730,2740 ****
  
  CP_STATIC_IF_GLIBCPP_V3
  char *
! cplus_demangle_print (options, dc, estimate, palc)
!      int options;
!      const struct demangle_component *dc;
!      int estimate;
!      size_t *palc;
  {
    struct d_print_info dpi;
  
--- 2621,2628 ----
  
  CP_STATIC_IF_GLIBCPP_V3
  char *
! cplus_demangle_print (int options, const struct demangle_component *dc,
!                       int estimate, size_t *palc)
  {
    struct d_print_info dpi;
  
*************** cplus_demangle_print (options, dc, estim
*** 2769,2777 ****
  /* Subroutine to handle components.  */
  
  static void
! d_print_comp (dpi, dc)
!      struct d_print_info *dpi;
!      const struct demangle_component *dc;
  {
    if (dc == NULL)
      {
--- 2657,2664 ----
  /* Subroutine to handle components.  */
  
  static void
! d_print_comp (struct d_print_info *dpi,
!               const struct demangle_component *dc)
  {
    if (dc == NULL)
      {
*************** d_print_comp (dpi, dc)
*** 3442,3451 ****
     __U<hex-char>+_.  */
  
  static void
! d_print_java_identifier (dpi, name, len)
!      struct d_print_info *dpi;
!      const char *name;
!      int len;
  {
    const char *p;
    const char *end;
--- 3329,3335 ----
     __U<hex-char>+_.  */
  
  static void
! d_print_java_identifier (struct d_print_info *dpi, const char *name, int len)
  {
    const char *p;
    const char *end;
*************** d_print_java_identifier (dpi, name, len)
*** 3495,3504 ****
     qualifiers on this after printing a function.  */
  
  static void
! d_print_mod_list (dpi, mods, suffix)
!      struct d_print_info *dpi;
!      struct d_print_mod *mods;
!      int suffix;
  {
    struct d_print_template *hold_dpt;
  
--- 3379,3386 ----
     qualifiers on this after printing a function.  */
  
  static void
! d_print_mod_list (struct d_print_info *dpi,
!                   struct d_print_mod *mods, int suffix)
  {
    struct d_print_template *hold_dpt;
  
*************** d_print_mod_list (dpi, mods, suffix)
*** 3574,3582 ****
  /* Print a modifier.  */
  
  static void
! d_print_mod (dpi, mod)
!      struct d_print_info *dpi;
!      const struct demangle_component *mod;
  {
    switch (mod->type)
      {
--- 3456,3463 ----
  /* Print a modifier.  */
  
  static void
! d_print_mod (struct d_print_info *dpi,
!              const struct demangle_component *mod)
  {
    switch (mod->type)
      {
*************** d_print_mod (dpi, mod)
*** 3630,3639 ****
  /* Print a function type, except for the return type.  */
  
  static void
! d_print_function_type (dpi, dc, mods)
!      struct d_print_info *dpi;
!      const struct demangle_component *dc;
!      struct d_print_mod *mods;
  {
    int need_paren;
    int saw_mod;
--- 3511,3519 ----
  /* Print a function type, except for the return type.  */
  
  static void
! d_print_function_type (struct d_print_info *dpi,
!                        const struct demangle_component *dc,
!                        struct d_print_mod *mods)
  {
    int need_paren;
    int saw_mod;
*************** d_print_function_type (dpi, dc, mods)
*** 3716,3725 ****
  /* Print an array type, except for the element type.  */
  
  static void
! d_print_array_type (dpi, dc, mods)
!      struct d_print_info *dpi;
!      const struct demangle_component *dc;
!      struct d_print_mod *mods;
  {
    int need_space;
  
--- 3596,3604 ----
  /* Print an array type, except for the element type.  */
  
  static void
! d_print_array_type (struct d_print_info *dpi,
!                     const struct demangle_component *dc,
!                     struct d_print_mod *mods)
  {
    int need_space;
  
*************** d_print_array_type (dpi, dc, mods)
*** 3771,3779 ****
  /* Print an operator in an expression.  */
  
  static void
! d_print_expr_op (dpi, dc)
!      struct d_print_info *dpi;
!      const struct demangle_component *dc;
  {
    if (dc->type == DEMANGLE_COMPONENT_OPERATOR)
      d_append_buffer (dpi, dc->u.s_operator.op->name,
--- 3650,3657 ----
  /* Print an operator in an expression.  */
  
  static void
! d_print_expr_op (struct d_print_info *dpi,
!                  const struct demangle_component *dc)
  {
    if (dc->type == DEMANGLE_COMPONENT_OPERATOR)
      d_append_buffer (dpi, dc->u.s_operator.op->name,
*************** d_print_expr_op (dpi, dc)
*** 3785,3793 ****
  /* Print a cast.  */
  
  static void
! d_print_cast (dpi, dc)
!      struct d_print_info *dpi;
!      const struct demangle_component *dc;
  {
    if (d_left (dc)->type != DEMANGLE_COMPONENT_TEMPLATE)
      d_print_comp (dpi, d_left (dc));
--- 3663,3670 ----
  /* Print a cast.  */
  
  static void
! d_print_cast (struct d_print_info *dpi,
!               const struct demangle_component *dc)
  {
    if (d_left (dc)->type != DEMANGLE_COMPONENT_TEMPLATE)
      d_print_comp (dpi, d_left (dc));
*************** d_print_cast (dpi, dc)
*** 3831,3841 ****
  
  CP_STATIC_IF_GLIBCPP_V3
  void
! cplus_demangle_init_info (mangled, options, len, di)
!      const char *mangled;
!      int options;
!      size_t len;
!      struct d_info *di;
  {
    di->s = mangled;
    di->send = mangled + len;
--- 3708,3715 ----
  
  CP_STATIC_IF_GLIBCPP_V3
  void
! cplus_demangle_init_info (const char *mangled, int options, size_t len,
!                           struct d_info *di)
  {
    di->s = mangled;
    di->send = mangled + len;
*************** cplus_demangle_init_info (mangled, optio
*** 3868,3877 ****
     a memory allocation failure.  On failure, this returns NULL.  */
  
  static char *
! d_demangle (mangled, options, palc)
!      const char* mangled;
!      int options;
!      size_t *palc;
  {
    size_t len;
    int type;
--- 3742,3748 ----
     a memory allocation failure.  On failure, this returns NULL.  */
  
  static char *
! d_demangle (const char* mangled, int options, size_t *palc)
  {
    size_t len;
    int type;
*************** d_demangle (mangled, options, palc)
*** 3995,4001 ****
  
  #if defined(IN_LIBGCC2) || defined(IN_GLIBCPP_V3)
  
! extern char *__cxa_demangle PARAMS ((const char *, char *, size_t *, int *));
  
  /* ia64 ABI-mandated entry point in the C++ runtime library for
     performing demangling.  MANGLED_NAME is a NUL-terminated character
--- 3866,3872 ----
  
  #if defined(IN_LIBGCC2) || defined(IN_GLIBCPP_V3)
  
! extern char *__cxa_demangle (const char *, char *, size_t *, int *);
  
  /* ia64 ABI-mandated entry point in the C++ runtime library for
     performing demangling.  MANGLED_NAME is a NUL-terminated character
*************** extern char *__cxa_demangle PARAMS ((con
*** 4024,4034 ****
     GNU extensions.  */
  
  char *
! __cxa_demangle (mangled_name, output_buffer, length, status)
!      const char *mangled_name;
!      char *output_buffer;
!      size_t *length;
!      int *status;
  {
    char *demangled;
    size_t alc;
--- 3895,3902 ----
     GNU extensions.  */
  
  char *
! __cxa_demangle (const char *mangled_name, char *output_buffer,
!                 size_t *length, int *status)
  {
    char *demangled;
    size_t alc;
*************** __cxa_demangle (mangled_name, output_buf
*** 4094,4102 ****
     demangled name.  Otherwise, return NULL.  */
  
  char *
! cplus_demangle_v3 (mangled, options)
!      const char* mangled;
!      int options;
  {
    size_t alc;
  
--- 3962,3968 ----
     demangled name.  Otherwise, return NULL.  */
  
  char *
! cplus_demangle_v3 (const char* mangled, int options)
  {
    size_t alc;
  
*************** cplus_demangle_v3 (mangled, options)
*** 4111,4118 ****
     of JArray<TYPE> with TYPE[].  */
  
  char *
! java_demangle_v3 (mangled)
!      const char* mangled;
  {
    size_t alc;
    char *demangled;
--- 3977,3983 ----
     of JArray<TYPE> with TYPE[].  */
  
  char *
! java_demangle_v3 (const char* mangled)
  {
    size_t alc;
    char *demangled;
*************** java_demangle_v3 (mangled)
*** 4162,4171 ****
     *DTOR_KIND appropriately.  */
  
  static int
! is_ctor_or_dtor (mangled, ctor_kind, dtor_kind)
!      const char *mangled;
!      enum gnu_v3_ctor_kinds *ctor_kind;
!      enum gnu_v3_dtor_kinds *dtor_kind;
  {
    struct d_info di;
    struct demangle_component *dc;
--- 4027,4035 ----
     *DTOR_KIND appropriately.  */
  
  static int
! is_ctor_or_dtor (const char *mangled,
!                  enum gnu_v3_ctor_kinds *ctor_kind,
!                  enum gnu_v3_ctor_kinds *dtor_kind)
  {
    struct d_info di;
    struct demangle_component *dc;
*************** is_ctor_or_dtor (mangled, ctor_kind, dto
*** 4248,4255 ****
     name.  A non-zero return indicates the type of constructor.  */
  
  enum gnu_v3_ctor_kinds
! is_gnu_v3_mangled_ctor (name)
!      const char *name;
  {
    enum gnu_v3_ctor_kinds ctor_kind;
    enum gnu_v3_dtor_kinds dtor_kind;
--- 4112,4118 ----
     name.  A non-zero return indicates the type of constructor.  */
  
  enum gnu_v3_ctor_kinds
! is_gnu_v3_mangled_ctor (const char *name)
  {
    enum gnu_v3_ctor_kinds ctor_kind;
    enum gnu_v3_dtor_kinds dtor_kind;
*************** is_gnu_v3_mangled_ctor (name)
*** 4264,4271 ****
     name.  A non-zero return indicates the type of destructor.  */
  
  enum gnu_v3_dtor_kinds
! is_gnu_v3_mangled_dtor (name)
!      const char *name;
  {
    enum gnu_v3_ctor_kinds ctor_kind;
    enum gnu_v3_dtor_kinds dtor_kind;
--- 4127,4133 ----
     name.  A non-zero return indicates the type of destructor.  */
  
  enum gnu_v3_dtor_kinds
! is_gnu_v3_mangled_dtor (const char *name)
  {
    enum gnu_v3_ctor_kinds ctor_kind;
    enum gnu_v3_dtor_kinds dtor_kind;
*************** const char* program_name;
*** 4299,4307 ****
  /* Prints usage summary to FP and then exits with EXIT_VALUE.  */
  
  static void
! print_usage (fp, exit_value)
!      FILE* fp;
!      int exit_value;
  {
    fprintf (fp, "Usage: %s [options] [names ...]\n", program_name);
    fprintf (fp, "Options:\n");
--- 4161,4167 ----
  /* Prints usage summary to FP and then exits with EXIT_VALUE.  */
  
  static void
! print_usage (FILE* fp, int exit_value)
  {
    fprintf (fp, "Usage: %s [options] [names ...]\n", program_name);
    fprintf (fp, "Options:\n");
*************** static const struct option long_options[
*** 4328,4336 ****
     with their demangled equivalents.  */
  
  int
! main (argc, argv)
!      int argc;
!      char *argv[];
  {
    int i;
    int opt_char;
--- 4188,4194 ----
     with their demangled equivalents.  */
  
  int
! main (int argc, char *argv[])
  {
    int i;
    int opt_char;
Index: libiberty/cp-demangle.h
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/cp-demangle.h,v
retrieving revision 1.3
diff -p -r1.3 cp-demangle.h
*** libiberty/cp-demangle.h	28 Jun 2004 17:52:45 -0000	1.3
--- libiberty/cp-demangle.h	26 Mar 2005 18:32:06 -0000
*************** cplus_demangle_builtin_types[D_BUILTIN_T
*** 148,161 ****
  
  CP_STATIC_IF_GLIBCPP_V3
  struct demangle_component *
! cplus_demangle_mangled_name PARAMS ((struct d_info *, int));
  
  CP_STATIC_IF_GLIBCPP_V3
  struct demangle_component *
! cplus_demangle_type PARAMS ((struct d_info *));
  
  extern void
! cplus_demangle_init_info PARAMS ((const char *, int, size_t, struct d_info *));
  
  /* cp-demangle.c needs to define this a little differently */
  #undef CP_STATIC_IF_GLIBCPP_V3
--- 148,161 ----
  
  CP_STATIC_IF_GLIBCPP_V3
  struct demangle_component *
! cplus_demangle_mangled_name (struct d_info *, int);
  
  CP_STATIC_IF_GLIBCPP_V3
  struct demangle_component *
! cplus_demangle_type (struct d_info *);
  
  extern void
! cplus_demangle_init_info (const char *, int, size_t, struct d_info *);
  
  /* cp-demangle.c needs to define this a little differently */
  #undef CP_STATIC_IF_GLIBCPP_V3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]