merge from gcc
This commit is contained in:
parent
b489803aee
commit
e06fba33fb
@ -1,3 +1,30 @@
|
||||
2000-03-14 Bernd Schmidt <bernds@cygnus.co.uk>
|
||||
|
||||
* hashtab.h (htab_trav): Modify type so that first arg is of type
|
||||
void **.
|
||||
(htab_find_with_hash, htab_find_slot_with_hash): Declare new
|
||||
functions.
|
||||
|
||||
2000-03-09 Alex Samuel <samuel@codesourcery.com>
|
||||
|
||||
* partition.h: New file.
|
||||
|
||||
2000-03-09 Zack Weinberg <zack@wolery.cumb.org>
|
||||
|
||||
* hashtab.h (struct htab): Add del_f.
|
||||
(htab_del): New type.
|
||||
(htab_create): Add fourth argument.
|
||||
|
||||
2000-03-08 Zack Weinberg <zack@wolery.cumb.org>
|
||||
|
||||
* hashtab.h (hash_table_t): Rename to htab_t.
|
||||
(struct hash_table): Rename to struct htab. Shorten element
|
||||
names. Reorder elements by size.
|
||||
(htab_hash, htab_eq, htab_trav): New typedefs for the callback
|
||||
function pointers.
|
||||
(hash_table_entry_t): Discard; just use void * for element
|
||||
type.
|
||||
|
||||
2000-03-01 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* bfdlink.h (bfd_link_callbacks): Add a boolean arg to
|
||||
@ -85,7 +112,7 @@ Wed Dec 15 11:22:56 1999 Jeffrey A Law (law@cygnus.com)
|
||||
(asprintf, vasprintf): Provide declarations.
|
||||
|
||||
Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be>
|
||||
Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* ansidecl.h: Define and test `GCC_VERSION', not `HAVE_GCC_VERSION'.
|
||||
|
||||
@ -234,18 +261,18 @@ Tue Dec 8 00:30:31 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
from FILE* to void*, for use with gdb's new type GDB_FILE.
|
||||
(fprintf_ftype): change FILE* parameter type to void*.
|
||||
|
||||
* demangle.h: (DMGL_EDG): new macro for Kuck and Associates
|
||||
(DMGL_STYLE_MASK): modify to include Kuck and Assoc style
|
||||
(demangling_styles): add new edg_demangling style
|
||||
(EDG_DEMANGLING_STYLE_STRING): new macro
|
||||
(EDG_DEMANGLING): new macro
|
||||
* demangle.h: (DMGL_EDG): new macro for Kuck and Associates
|
||||
(DMGL_STYLE_MASK): modify to include Kuck and Assoc style
|
||||
(demangling_styles): add new edg_demangling style
|
||||
(EDG_DEMANGLING_STYLE_STRING): new macro
|
||||
(EDG_DEMANGLING): new macro
|
||||
|
||||
* demangle.h (DMGL_HP): new macro, for HP/aCC compiler.
|
||||
(DMGL_STYLE_MASK): modify to include new HP's style.
|
||||
(demangling_styles): add new hp_demangling value.
|
||||
(HP_DEMANGLING_STYLE_STRING): new macro.
|
||||
(ARM_DEMANGLING): coerce to int.
|
||||
(HP_DEMANGLING): new macro.
|
||||
* demangle.h (DMGL_HP): new macro, for HP/aCC compiler.
|
||||
(DMGL_STYLE_MASK): modify to include new HP's style.
|
||||
(demangling_styles): add new hp_demangling value.
|
||||
(HP_DEMANGLING_STYLE_STRING): new macro.
|
||||
(ARM_DEMANGLING): coerce to int.
|
||||
(HP_DEMANGLING): new macro.
|
||||
|
||||
* hp-symtab.h: rewritten, from HP.
|
||||
(quick_procedure): change type of language field to unsigned int
|
||||
@ -969,8 +996,8 @@ Thu Apr 28 19:06:50 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
|
||||
|
||||
Fri Apr 1 00:38:17 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu)
|
||||
|
||||
* obstack.h: Delete use of IN_GCC to control whether
|
||||
stddef.h or gstddef.h is included.
|
||||
* obstack.h: Delete use of IN_GCC to control whether
|
||||
stddef.h or gstddef.h is included.
|
||||
|
||||
Tue Mar 22 13:06:02 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
||||
|
||||
|
@ -38,69 +38,88 @@ extern "C" {
|
||||
|
||||
#include <ansidecl.h>
|
||||
|
||||
/* The hash table element is represented by the following type. */
|
||||
/* Callback function pointer types. */
|
||||
|
||||
typedef const void *hash_table_entry_t;
|
||||
/* Calculate hash of a table entry. */
|
||||
typedef unsigned int (*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
|
||||
different type (but in this case htab_find and htab_find_slot
|
||||
cannot be used; instead the variants that accept a hash value
|
||||
must be used). */
|
||||
typedef int (*htab_eq) PARAMS ((const void *, const void *));
|
||||
|
||||
/* Cleanup function called whenever a live element is removed from
|
||||
the hash table. */
|
||||
typedef void (*htab_del) PARAMS ((void *));
|
||||
|
||||
/* Function called by htab_traverse for each live element. The first
|
||||
arg is the slot of the element (which can be passed to htab_clear_slot
|
||||
if desired), the second arg is the auxiliary pointer handed to
|
||||
htab_traverse. Return 1 to continue scan, 0 to stop. */
|
||||
typedef int (*htab_trav) PARAMS ((void **, void *));
|
||||
|
||||
/* Hash tables are of the following type. The structure
|
||||
(implementation) of this type is not needed for using the hash
|
||||
tables. All work with hash table should be executed only through
|
||||
functions mentioned below. */
|
||||
|
||||
typedef struct hash_table
|
||||
struct htab
|
||||
{
|
||||
/* Pointer to hash function. */
|
||||
htab_hash hash_f;
|
||||
|
||||
/* Pointer to comparison function. */
|
||||
htab_eq eq_f;
|
||||
|
||||
/* Pointer to cleanup function. */
|
||||
htab_del del_f;
|
||||
|
||||
/* Table itself. */
|
||||
void **entries;
|
||||
|
||||
/* Current size (in entries) of the hash table */
|
||||
size_t size;
|
||||
|
||||
/* Current number of elements including also deleted elements */
|
||||
size_t number_of_elements;
|
||||
size_t n_elements;
|
||||
|
||||
/* Current number of deleted elements in the table */
|
||||
size_t number_of_deleted_elements;
|
||||
size_t n_deleted;
|
||||
|
||||
/* The following member is used for debugging. Its value is number
|
||||
of all calls of `find_hash_table_entry' for the hash table. */
|
||||
int searches;
|
||||
of all calls of `htab_find_slot' for the hash table. */
|
||||
unsigned int searches;
|
||||
|
||||
/* The following member is used for debugging. Its value is number
|
||||
of collisions fixed for time of work with the hash table. */
|
||||
int collisions;
|
||||
/* Pointer to function for evaluation of hash value (any unsigned value).
|
||||
This function has one parameter of type hash_table_entry_t. */
|
||||
unsigned (*hash_function) PARAMS ((hash_table_entry_t));
|
||||
/* Pointer to function for test on equality of hash table elements (two
|
||||
parameter of type hash_table_entry_t. */
|
||||
int (*eq_function) PARAMS ((hash_table_entry_t, hash_table_entry_t));
|
||||
/* Table itself */
|
||||
hash_table_entry_t *entries;
|
||||
} *hash_table_t;
|
||||
unsigned int collisions;
|
||||
};
|
||||
|
||||
typedef struct htab *htab_t;
|
||||
|
||||
/* The prototypes of the package functions. */
|
||||
|
||||
extern hash_table_t create_hash_table
|
||||
PARAMS ((size_t, unsigned (*) (hash_table_entry_t),
|
||||
int (*) (hash_table_entry_t, hash_table_entry_t)));
|
||||
extern htab_t htab_create PARAMS ((size_t, htab_hash,
|
||||
htab_eq, htab_del));
|
||||
extern void htab_delete PARAMS ((htab_t));
|
||||
extern void htab_empty PARAMS ((htab_t));
|
||||
|
||||
extern void delete_hash_table PARAMS ((hash_table_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_clear_slot PARAMS ((htab_t, void **));
|
||||
extern void htab_remove_elt PARAMS ((htab_t, void *));
|
||||
|
||||
extern void empty_hash_table PARAMS ((hash_table_t));
|
||||
extern void htab_traverse PARAMS ((htab_t, htab_trav, void *));
|
||||
|
||||
extern hash_table_entry_t *find_hash_table_entry
|
||||
PARAMS ((hash_table_t, hash_table_entry_t, int));
|
||||
|
||||
extern void remove_element_from_hash_table_entry PARAMS ((hash_table_t,
|
||||
hash_table_entry_t));
|
||||
|
||||
extern void clear_hash_table_slot PARAMS ((hash_table_t, hash_table_entry_t *));
|
||||
|
||||
extern void traverse_hash_table PARAMS ((hash_table_t,
|
||||
int (*) (hash_table_entry_t, void *),
|
||||
void *));
|
||||
|
||||
extern size_t hash_table_size PARAMS ((hash_table_t));
|
||||
|
||||
extern size_t hash_table_elements_number PARAMS ((hash_table_t));
|
||||
|
||||
extern int hash_table_collisions PARAMS ((hash_table_t));
|
||||
|
||||
extern int all_hash_table_collisions PARAMS ((void));
|
||||
extern size_t htab_size PARAMS ((htab_t));
|
||||
extern size_t htab_elements PARAMS ((htab_t));
|
||||
extern double htab_collisions PARAMS ((htab_t));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user