2000-06-15 H.J. Lu <hjl@gnu.org>
* sort.h: New file. Impored from gcc. * hashtab.h: Updated from from gcc. 2000-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * demangle.h (demangling_styles): Remove trailing comma in enum. * dyn-string.h (dyn_string_append_char): Change parameter from char to int. 2000-06-04 Alex Samuel <samuel@codesourcery.com> * dyn-string.h: Move here from gcc/dyn-string.h. Add new functions. * demangle.h (DMGL_GNU_NEW_ABI): New macro. (DMGL_STYLE_MASK): Or in DMGL_GNU_NEW_ABI. (current_demangling_style): Add gnu_new_abi_demangling. (GNU_NEW_ABI_DEMANGLING_STYLE_STRING): New macro. (GNU_NEW_ABI_DEMANGLING): Likewise. (cplus_demangle_new_abi): New declaration.
This commit is contained in:
		| @@ -1,3 +1,27 @@ | ||||
| 2000-06-15  H.J. Lu  <hjl@gnu.org> | ||||
|  | ||||
| 	* sort.h: New file. Impored from gcc. | ||||
|  | ||||
| 	* hashtab.h: Updated from from gcc. | ||||
|  | ||||
| 2000-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu> | ||||
|  | ||||
| 	* demangle.h (demangling_styles): Remove trailing comma in enum. | ||||
|  | ||||
| 	* dyn-string.h (dyn_string_append_char): Change parameter from | ||||
| 	char to int. | ||||
|  | ||||
| 2000-06-04  Alex Samuel  <samuel@codesourcery.com> | ||||
|  | ||||
| 	* dyn-string.h: Move here from gcc/dyn-string.h.  Add new functions. | ||||
|  | ||||
| 	* demangle.h (DMGL_GNU_NEW_ABI): New macro. | ||||
| 	(DMGL_STYLE_MASK): Or in DMGL_GNU_NEW_ABI.  | ||||
| 	(current_demangling_style): Add gnu_new_abi_demangling. | ||||
| 	(GNU_NEW_ABI_DEMANGLING_STYLE_STRING): New macro. | ||||
| 	(GNU_NEW_ABI_DEMANGLING): Likewise. | ||||
| 	(cplus_demangle_new_abi): New declaration. | ||||
|  | ||||
| Tue May 30 16:53:34 2000  Andrew Cagney  <cagney@b1.cygnus.com> | ||||
|  | ||||
| 	* floatformat.h (struct floatformat): Add field name. | ||||
|   | ||||
| @@ -24,21 +24,23 @@ | ||||
|  | ||||
| /* Options passed to cplus_demangle (in 2nd parameter). */ | ||||
|  | ||||
| #define DMGL_NO_OPTS	0		/* For readability... */ | ||||
| #define DMGL_PARAMS	(1 << 0)	/* Include function args */ | ||||
| #define DMGL_ANSI	(1 << 1)	/* Include const, volatile, etc */ | ||||
| #define DMGL_JAVA	(1 << 2)	/* Demangle as Java rather than C++. */ | ||||
| #define DMGL_NO_OPTS	 0		/* For readability... */ | ||||
| #define DMGL_PARAMS	 (1 << 0)	/* Include function args */ | ||||
| #define DMGL_ANSI	 (1 << 1)	/* Include const, volatile, etc */ | ||||
| #define DMGL_JAVA	 (1 << 2)	/* Demangle as Java rather than C++. */ | ||||
|  | ||||
| #define DMGL_AUTO	(1 << 8) | ||||
| #define DMGL_GNU	(1 << 9) | ||||
| #define DMGL_LUCID	(1 << 10) | ||||
| #define DMGL_ARM	(1 << 11) | ||||
| #define DMGL_HP 	(1 << 12)       /* For the HP aCC compiler; same as ARM | ||||
|                                            except for template arguments, etc. */ | ||||
| #define DMGL_EDG	(1 << 13) | ||||
| #define DMGL_AUTO	 (1 << 8) | ||||
| #define DMGL_GNU	 (1 << 9) | ||||
| #define DMGL_LUCID	 (1 << 10) | ||||
| #define DMGL_ARM	 (1 << 11) | ||||
| #define DMGL_HP 	 (1 << 12)       /* For the HP aCC compiler; | ||||
|                                             same as ARM except for | ||||
|                                             template arguments, etc. */ | ||||
| #define DMGL_EDG	 (1 << 13) | ||||
| #define DMGL_GNU_NEW_ABI (1 << 14) | ||||
|  | ||||
| /* If none of these are set, use 'current_demangling_style' as the default. */ | ||||
| #define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG) | ||||
| #define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG|DMGL_GNU_NEW_ABI) | ||||
|  | ||||
| /* Enumeration of possible demangling styles. | ||||
|  | ||||
| @@ -56,17 +58,19 @@ extern enum demangling_styles | ||||
|   lucid_demangling = DMGL_LUCID, | ||||
|   arm_demangling = DMGL_ARM, | ||||
|   hp_demangling = DMGL_HP, | ||||
|   edg_demangling = DMGL_EDG | ||||
|   edg_demangling = DMGL_EDG, | ||||
|   gnu_new_abi_demangling = DMGL_GNU_NEW_ABI | ||||
| } current_demangling_style; | ||||
|  | ||||
| /* Define string names for the various demangling styles. */ | ||||
|  | ||||
| #define AUTO_DEMANGLING_STYLE_STRING	"auto" | ||||
| #define GNU_DEMANGLING_STYLE_STRING	"gnu" | ||||
| #define LUCID_DEMANGLING_STYLE_STRING	"lucid" | ||||
| #define ARM_DEMANGLING_STYLE_STRING	"arm" | ||||
| #define HP_DEMANGLING_STYLE_STRING	"hp" | ||||
| #define EDG_DEMANGLING_STYLE_STRING	"edg" | ||||
| #define AUTO_DEMANGLING_STYLE_STRING	      "auto" | ||||
| #define GNU_DEMANGLING_STYLE_STRING    	      "gnu" | ||||
| #define LUCID_DEMANGLING_STYLE_STRING	      "lucid" | ||||
| #define ARM_DEMANGLING_STYLE_STRING	      "arm" | ||||
| #define HP_DEMANGLING_STYLE_STRING	      "hp" | ||||
| #define EDG_DEMANGLING_STYLE_STRING	      "edg" | ||||
| #define GNU_NEW_ABI_DEMANGLING_STYLE_STRING   "gnu-new-abi" | ||||
|  | ||||
| /* Some macros to test what demangling style is active. */ | ||||
|  | ||||
| @@ -77,6 +81,17 @@ extern enum demangling_styles | ||||
| #define ARM_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_ARM) | ||||
| #define HP_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_HP) | ||||
| #define EDG_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_EDG) | ||||
| #define GNU_NEW_ABI_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU_NEW_ABI) | ||||
|  | ||||
| /* Provide information about the available demangle styles. This code is | ||||
|    pulled from gdb into libiberty because it is useful to binutils also.  */ | ||||
|  | ||||
| extern struct demangler_engine | ||||
| { | ||||
|   const char *demangling_style_name; | ||||
|   enum demangling_styles demangling_style; | ||||
|   const char *demangling_style_doc; | ||||
| } libiberty_demanglers[]; | ||||
|  | ||||
| extern char * | ||||
| cplus_demangle PARAMS ((const char *mangled, int options)); | ||||
| @@ -92,4 +107,14 @@ cplus_mangle_opname PARAMS ((const char *opname, int options)); | ||||
| 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)); | ||||
|  | ||||
| /* New-ABI demangling entry point, defined in cp-demangle.c.  */ | ||||
| extern char* | ||||
| cplus_demangle_new_abi PARAMS ((const char* mangled)); | ||||
|  | ||||
| #endif	/* DEMANGLE_H */ | ||||
|   | ||||
							
								
								
									
										64
									
								
								include/dyn-string.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								include/dyn-string.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| /* An abstract string datatype. | ||||
|    Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. | ||||
|    Contributed by Mark Mitchell (mark@markmitchell.com). | ||||
|  | ||||
| This file is part of GNU CC. | ||||
|     | ||||
| GNU CC is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2, or (at your option) | ||||
| any later version. | ||||
|  | ||||
| GNU CC is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with GNU CC; see the file COPYING.  If not, write to | ||||
| the Free Software Foundation, 59 Temple Place - Suite 330, | ||||
| Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
|  | ||||
| typedef struct dyn_string | ||||
| { | ||||
|   int allocated;	/* The amount of space allocated for the string.  */ | ||||
|   int length;		/* The actual length of the string.  */ | ||||
|   char *s;		/* The string itself, NUL-terminated.  */ | ||||
| }* dyn_string_t; | ||||
|  | ||||
| /* The length STR, in bytes, not including the terminating NUL.  */ | ||||
| #define dyn_string_length(STR)                                          \ | ||||
|   ((STR)->length) | ||||
|  | ||||
| /* The NTBS in which the contents of STR are stored.  */ | ||||
| #define dyn_string_buf(STR)                                             \ | ||||
|   ((STR)->s) | ||||
|  | ||||
| /* Compare DS1 to DS2 with strcmp.  */ | ||||
| #define dyn_string_compare(DS1, DS2)                                    \ | ||||
|   (strcmp ((DS1)->s, (DS2)->s)) | ||||
|  | ||||
|  | ||||
| extern void dyn_string_init             PARAMS ((struct dyn_string *, int)); | ||||
| extern dyn_string_t dyn_string_new      PARAMS ((int)); | ||||
| extern void dyn_string_delete           PARAMS ((dyn_string_t)); | ||||
| extern char *dyn_string_release         PARAMS ((dyn_string_t)); | ||||
| extern dyn_string_t dyn_string_resize   PARAMS ((dyn_string_t, int)); | ||||
| extern void dyn_string_clear            PARAMS ((dyn_string_t)); | ||||
| extern void dyn_string_copy             PARAMS ((dyn_string_t, dyn_string_t)); | ||||
| extern void dyn_string_copy_cstr        PARAMS ((dyn_string_t, const char *)); | ||||
| extern void dyn_string_prepend          PARAMS ((dyn_string_t, dyn_string_t)); | ||||
| extern void dyn_string_prepend_cstr     PARAMS ((dyn_string_t, const char *)); | ||||
| extern void dyn_string_insert           PARAMS ((dyn_string_t, int, | ||||
| 						 dyn_string_t)); | ||||
| extern void dyn_string_insert_cstr      PARAMS ((dyn_string_t, int, | ||||
| 						 const char *)); | ||||
| extern dyn_string_t dyn_string_append   PARAMS ((dyn_string_t, dyn_string_t)); | ||||
| extern dyn_string_t dyn_string_append_cstr    | ||||
|                                         PARAMS ((dyn_string_t, const char *)); | ||||
| extern dyn_string_t dyn_string_append_char | ||||
|                                         PARAMS ((dyn_string_t, int)); | ||||
| extern void dyn_string_substring        PARAMS ((dyn_string_t,  | ||||
| 						 dyn_string_t, int, int)); | ||||
| extern int dyn_string_eq                PARAMS ((dyn_string_t, dyn_string_t)); | ||||
| @@ -1,5 +1,5 @@ | ||||
| /* An expandable hash tables datatype.   | ||||
|    Copyright (C) 1999 Free Software Foundation, Inc. | ||||
|    Copyright (C) 1999, 2000 Free Software Foundation, Inc. | ||||
|    Contributed by Vladimir Makarov (vmakarov@cygnus.com). | ||||
|  | ||||
| This program is free software; you can redistribute it and/or modify | ||||
| @@ -38,10 +38,13 @@ extern "C" { | ||||
|  | ||||
| #include <ansidecl.h> | ||||
|  | ||||
| /* The type for a hash code.  */ | ||||
| typedef unsigned int hashval_t; | ||||
|  | ||||
| /* Callback function pointer types.  */ | ||||
|  | ||||
| /* Calculate hash of a table entry.  */ | ||||
| typedef unsigned int (*htab_hash) PARAMS ((const void *)); | ||||
| typedef hashval_t (*htab_hash) PARAMS ((const void *)); | ||||
|  | ||||
| /* Compare a table entry with a possible entry.  The entry already in | ||||
|    the table always comes first, so the second element can be of a | ||||
| @@ -99,6 +102,9 @@ struct htab | ||||
|  | ||||
| typedef struct htab *htab_t; | ||||
|  | ||||
| /* An enum saying whether we insert into the hash table or not.  */ | ||||
| enum insert_option {NO_INSERT, INSERT}; | ||||
|  | ||||
| /* The prototypes of the package functions. */ | ||||
|  | ||||
| extern htab_t	htab_create	PARAMS ((size_t, htab_hash, | ||||
| @@ -107,11 +113,13 @@ extern void	htab_delete	PARAMS ((htab_t)); | ||||
| extern void	htab_empty	PARAMS ((htab_t)); | ||||
|  | ||||
| extern void    *htab_find	PARAMS ((htab_t, const void *)); | ||||
| extern void   **htab_find_slot	PARAMS ((htab_t, const void *, int)); | ||||
| extern void    *htab_find_with_hash		PARAMS ((htab_t, const void *, | ||||
| 							 unsigned int)); | ||||
| extern void   **htab_find_slot_with_hash	PARAMS ((htab_t, const void *, | ||||
| 							 unsigned int, int)); | ||||
| extern void   **htab_find_slot	PARAMS ((htab_t, const void *, | ||||
| 					 enum insert_option)); | ||||
| extern void    *htab_find_with_hash	  PARAMS ((htab_t, const void *, | ||||
| 						   hashval_t)); | ||||
| extern void   **htab_find_slot_with_hash  PARAMS ((htab_t, const void *, | ||||
| 						   hashval_t, | ||||
| 						   enum insert_option)); | ||||
| extern void	htab_clear_slot	PARAMS ((htab_t, void **)); | ||||
| extern void	htab_remove_elt	PARAMS ((htab_t, void *)); | ||||
|  | ||||
| @@ -121,6 +129,12 @@ extern size_t	htab_size	PARAMS ((htab_t)); | ||||
| extern size_t	htab_elements	PARAMS ((htab_t)); | ||||
| extern double	htab_collisions	PARAMS ((htab_t)); | ||||
|  | ||||
| /* A hash function for pointers.  */ | ||||
| extern htab_hash htab_hash_pointer; | ||||
|  | ||||
| /* An equality function for pointers.  */ | ||||
| extern htab_eq htab_eq_pointer; | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif /* __cplusplus */ | ||||
|   | ||||
							
								
								
									
										48
									
								
								include/sort.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								include/sort.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| /* Sorting algorithms. | ||||
|    Copyright (C) 2000 Free Software Foundation, Inc. | ||||
|    Contributed by Mark Mitchell <mark@codesourcery.com>. | ||||
|  | ||||
| This file is part of GNU CC. | ||||
|     | ||||
| GNU CC is free software; you can redistribute it and/or modify it | ||||
| under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation; either version 2, or (at your option) | ||||
| any later version. | ||||
|  | ||||
| GNU CC is distributed in the hope that it will be useful, but | ||||
| WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
| General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with GNU CC; see the file COPYING.  If not, write to | ||||
| the Free Software Foundation, 59 Temple Place - Suite 330, | ||||
| Boston, MA 02111-1307, USA.  */ | ||||
|  | ||||
| #ifndef SORT_H | ||||
| #define SORT_H | ||||
|  | ||||
| #include <sys/types.h> /* For size_t */ | ||||
| #ifdef __STDC__ | ||||
| #include <stddef.h> | ||||
| #endif	/* __STDC__ */ | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif /* __cplusplus */ | ||||
|  | ||||
| #include <ansidecl.h> | ||||
|  | ||||
| /* Sort an array of pointers.  */ | ||||
|  | ||||
| extern void sort_pointers PARAMS ((size_t, void **, void **)); | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif /* __cplusplus */ | ||||
|  | ||||
| #endif /* SORT_H */ | ||||
|  | ||||
|  | ||||
|     | ||||
|     | ||||
		Reference in New Issue
	
	Block a user