mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-17 16:05:56 +08:00
merge from gcc
This commit is contained in:
@ -71,14 +71,14 @@ typedef int (*htab_trav) (void **, void *);
|
||||
Iff it returns NULL, the hash table implementation will pass an error
|
||||
code back to the user, so if your code doesn't handle errors,
|
||||
best if you use xcalloc instead. */
|
||||
typedef PTR (*htab_alloc) (size_t, size_t);
|
||||
typedef void *(*htab_alloc) (size_t, size_t);
|
||||
|
||||
/* We also need a free() routine. */
|
||||
typedef void (*htab_free) (PTR);
|
||||
typedef void (*htab_free) (void *);
|
||||
|
||||
/* Memory allocation and deallocation; variants which take an extra
|
||||
argument. */
|
||||
typedef PTR (*htab_alloc_with_arg) (void *, size_t, size_t);
|
||||
typedef void *(*htab_alloc_with_arg) (void *, size_t, size_t);
|
||||
typedef void (*htab_free_with_arg) (void *, void *);
|
||||
|
||||
/* Hash tables are of the following type. The structure
|
||||
@ -99,7 +99,7 @@ struct htab GTY(())
|
||||
htab_del del_f;
|
||||
|
||||
/* Table itself. */
|
||||
PTR * GTY ((use_param, length ("%h.size"))) entries;
|
||||
void ** GTY ((use_param, length ("%h.size"))) entries;
|
||||
|
||||
/* Current size (in entries) of the hash table. */
|
||||
size_t size;
|
||||
@ -123,7 +123,7 @@ struct htab GTY(())
|
||||
htab_free free_f;
|
||||
|
||||
/* Alternate allocate/free functions, which take an extra argument. */
|
||||
PTR GTY((skip)) alloc_arg;
|
||||
void * GTY((skip)) alloc_arg;
|
||||
htab_alloc_with_arg alloc_with_arg_f;
|
||||
htab_free_with_arg free_with_arg_f;
|
||||
|
||||
@ -145,7 +145,7 @@ extern htab_t htab_create_alloc (size_t, htab_hash,
|
||||
|
||||
extern htab_t htab_create_alloc_ex (size_t, htab_hash,
|
||||
htab_eq, htab_del,
|
||||
PTR, htab_alloc_with_arg,
|
||||
void *, htab_alloc_with_arg,
|
||||
htab_free_with_arg);
|
||||
|
||||
/* Backward-compatibility functions. */
|
||||
@ -154,18 +154,17 @@ extern htab_t htab_try_create (size_t, htab_hash, htab_eq, htab_del);
|
||||
|
||||
extern void htab_set_functions_ex (htab_t, htab_hash,
|
||||
htab_eq, htab_del,
|
||||
PTR, htab_alloc_with_arg,
|
||||
void *, htab_alloc_with_arg,
|
||||
htab_free_with_arg);
|
||||
|
||||
extern void htab_delete (htab_t);
|
||||
extern void htab_empty (htab_t);
|
||||
|
||||
extern PTR htab_find (htab_t, const void *);
|
||||
extern PTR *htab_find_slot (htab_t, const void *, enum insert_option);
|
||||
extern PTR htab_find_with_hash (htab_t, const void *, hashval_t);
|
||||
extern PTR *htab_find_slot_with_hash (htab_t, const void *,
|
||||
hashval_t,
|
||||
enum insert_option);
|
||||
extern void * htab_find (htab_t, const void *);
|
||||
extern void ** htab_find_slot (htab_t, const void *, enum insert_option);
|
||||
extern void * htab_find_with_hash (htab_t, const void *, hashval_t);
|
||||
extern void ** htab_find_slot_with_hash (htab_t, const void *,
|
||||
hashval_t, enum insert_option);
|
||||
extern void htab_clear_slot (htab_t, void **);
|
||||
extern void htab_remove_elt (htab_t, void *);
|
||||
extern void htab_remove_elt_with_hash (htab_t, void *, hashval_t);
|
||||
@ -184,10 +183,10 @@ extern htab_hash htab_hash_pointer;
|
||||
extern htab_eq htab_eq_pointer;
|
||||
|
||||
/* A hash function for null-terminated strings. */
|
||||
extern hashval_t htab_hash_string (const PTR);
|
||||
extern hashval_t htab_hash_string (const void *);
|
||||
|
||||
/* An iterative hash function for arbitrary data. */
|
||||
extern hashval_t iterative_hash (const PTR, size_t, hashval_t);
|
||||
extern hashval_t iterative_hash (const void *, size_t, hashval_t);
|
||||
/* Shorthand for hashing something with an intrinsic size. */
|
||||
#define iterative_hash_object(OB,INIT) iterative_hash (&OB, sizeof (OB), INIT)
|
||||
|
||||
|
Reference in New Issue
Block a user