merge from gcc

This commit is contained in:
DJ Delorie 2005-04-19 19:09:30 +00:00
parent 39511478d0
commit 5484689472
7 changed files with 36 additions and 30 deletions

View File

@ -1,3 +1,10 @@
2005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* hashtab.h, libiberty.h, objalloc.h, splay-tree.h, ternary.h:
Don't use the PTR macro.
* sort.h: Don't use the PARAMS macro.
2005-04-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2005-04-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* libiberty.h (unlock_stream): New. * libiberty.h (unlock_stream): New.

View File

@ -71,14 +71,14 @@ typedef int (*htab_trav) (void **, void *);
Iff it returns NULL, the hash table implementation will pass an error 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, code back to the user, so if your code doesn't handle errors,
best if you use xcalloc instead. */ 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. */ /* 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 /* Memory allocation and deallocation; variants which take an extra
argument. */ 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 *); typedef void (*htab_free_with_arg) (void *, void *);
/* Hash tables are of the following type. The structure /* Hash tables are of the following type. The structure
@ -99,7 +99,7 @@ struct htab GTY(())
htab_del del_f; htab_del del_f;
/* Table itself. */ /* 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. */ /* Current size (in entries) of the hash table. */
size_t size; size_t size;
@ -123,7 +123,7 @@ struct htab GTY(())
htab_free free_f; htab_free free_f;
/* Alternate allocate/free functions, which take an extra argument. */ /* 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_alloc_with_arg alloc_with_arg_f;
htab_free_with_arg free_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, extern htab_t htab_create_alloc_ex (size_t, htab_hash,
htab_eq, htab_del, htab_eq, htab_del,
PTR, htab_alloc_with_arg, void *, htab_alloc_with_arg,
htab_free_with_arg); htab_free_with_arg);
/* Backward-compatibility functions. */ /* 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, extern void htab_set_functions_ex (htab_t, htab_hash,
htab_eq, htab_del, htab_eq, htab_del,
PTR, htab_alloc_with_arg, void *, htab_alloc_with_arg,
htab_free_with_arg); htab_free_with_arg);
extern void htab_delete (htab_t); extern void htab_delete (htab_t);
extern void htab_empty (htab_t); extern void htab_empty (htab_t);
extern PTR htab_find (htab_t, const void *); extern void * htab_find (htab_t, const void *);
extern PTR *htab_find_slot (htab_t, const void *, enum insert_option); extern void ** htab_find_slot (htab_t, const void *, enum insert_option);
extern PTR htab_find_with_hash (htab_t, const void *, hashval_t); extern void * htab_find_with_hash (htab_t, const void *, hashval_t);
extern PTR *htab_find_slot_with_hash (htab_t, const void *, extern void ** htab_find_slot_with_hash (htab_t, const void *,
hashval_t, hashval_t, enum insert_option);
enum insert_option);
extern void htab_clear_slot (htab_t, void **); extern void htab_clear_slot (htab_t, void **);
extern void htab_remove_elt (htab_t, void *); extern void htab_remove_elt (htab_t, void *);
extern void htab_remove_elt_with_hash (htab_t, void *, hashval_t); 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; extern htab_eq htab_eq_pointer;
/* A hash function for null-terminated strings. */ /* 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. */ /* 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. */ /* Shorthand for hashing something with an intrinsic size. */
#define iterative_hash_object(OB,INIT) iterative_hash (&OB, sizeof (OB), INIT) #define iterative_hash_object(OB,INIT) iterative_hash (&OB, sizeof (OB), INIT)

View File

@ -259,18 +259,18 @@ extern void xmalloc_failed (size_t) ATTRIBUTE_NORETURN;
message to stderr (using the name set by xmalloc_set_program_name, message to stderr (using the name set by xmalloc_set_program_name,
if any) and then call xexit. */ if any) and then call xexit. */
extern PTR xmalloc (size_t) ATTRIBUTE_MALLOC; extern void *xmalloc (size_t) ATTRIBUTE_MALLOC;
/* Reallocate memory without fail. This works like xmalloc. Note, /* Reallocate memory without fail. This works like xmalloc. Note,
realloc type functions are not suitable for attribute malloc since realloc type functions are not suitable for attribute malloc since
they may return the same address across multiple calls. */ they may return the same address across multiple calls. */
extern PTR xrealloc (PTR, size_t); extern void *xrealloc (void *, size_t);
/* Allocate memory without fail and set it to zero. This works like /* Allocate memory without fail and set it to zero. This works like
xmalloc. */ xmalloc. */
extern PTR xcalloc (size_t, size_t) ATTRIBUTE_MALLOC; extern void *xcalloc (size_t, size_t) ATTRIBUTE_MALLOC;
/* Copy a string into a memory buffer without fail. */ /* Copy a string into a memory buffer without fail. */
@ -282,7 +282,7 @@ extern char *xstrndup (const char *, size_t) ATTRIBUTE_MALLOC;
/* Copy an existing memory buffer to a new memory buffer without fail. */ /* Copy an existing memory buffer to a new memory buffer without fail. */
extern PTR xmemdup (const PTR, size_t, size_t) ATTRIBUTE_MALLOC; extern void *xmemdup (const void *, size_t, size_t) ATTRIBUTE_MALLOC;
/* Physical memory routines. Return values are in BYTES. */ /* Physical memory routines. Return values are in BYTES. */
extern double physmem_total (void); extern double physmem_total (void);
@ -530,7 +530,7 @@ extern int vasprintf (char **, const char *, va_list)
USE_C_ALLOCA yourself. The canonical autoconf macro C_ALLOCA is USE_C_ALLOCA yourself. The canonical autoconf macro C_ALLOCA is
also set/unset as it is often used to indicate whether code needs also set/unset as it is often used to indicate whether code needs
to call alloca(0). */ to call alloca(0). */
extern PTR C_alloca (size_t) ATTRIBUTE_MALLOC; extern void *C_alloca (size_t) ATTRIBUTE_MALLOC;
#undef alloca #undef alloca
#if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA #if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA
# define alloca(x) __builtin_alloca(x) # define alloca(x) __builtin_alloca(x)

View File

@ -45,7 +45,7 @@ struct objalloc
{ {
char *current_ptr; char *current_ptr;
unsigned int current_space; unsigned int current_space;
PTR chunks; void *chunks;
}; };
/* Work out the required alignment. */ /* Work out the required alignment. */
@ -69,7 +69,7 @@ extern struct objalloc *objalloc_create (void);
/* Allocate space from an objalloc structure. Returns NULL if malloc /* Allocate space from an objalloc structure. Returns NULL if malloc
fails. */ fails. */
extern PTR _objalloc_alloc (struct objalloc *, unsigned long); extern void *_objalloc_alloc (struct objalloc *, unsigned long);
/* The macro version of objalloc_alloc. We only define this if using /* The macro version of objalloc_alloc. We only define this if using
gcc, because otherwise we would have to evaluate the arguments gcc, because otherwise we would have to evaluate the arguments
@ -94,7 +94,7 @@ extern PTR _objalloc_alloc (struct objalloc *, unsigned long);
(__len <= __o->current_space \ (__len <= __o->current_space \
? (__o->current_ptr += __len, \ ? (__o->current_ptr += __len, \
__o->current_space -= __len, \ __o->current_space -= __len, \
(PTR) (__o->current_ptr - __len)) \ (void *) (__o->current_ptr - __len)) \
: _objalloc_alloc (__o, __len)); }) : _objalloc_alloc (__o, __len)); })
#else /* ! __GNUC__ */ #else /* ! __GNUC__ */
@ -110,6 +110,6 @@ extern void objalloc_free (struct objalloc *);
/* Free a block allocated by objalloc_alloc. This also frees all more /* Free a block allocated by objalloc_alloc. This also frees all more
recently allocated blocks. */ recently allocated blocks. */
extern void objalloc_free_block (struct objalloc *, PTR); extern void objalloc_free_block (struct objalloc *, void *);
#endif /* OBJALLOC_H */ #endif /* OBJALLOC_H */

View File

@ -35,7 +35,7 @@ extern "C" {
/* Sort an array of pointers. */ /* Sort an array of pointers. */
extern void sort_pointers PARAMS ((size_t, void **, void **)); extern void sort_pointers (size_t, void **, void **);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -69,7 +69,7 @@ typedef int (*splay_tree_foreach_fn) (splay_tree_node, void*);
node structures. The first argument is the number of bytes needed; node structures. The first argument is the number of bytes needed;
the second is a data pointer the splay tree functions pass through the second is a data pointer the splay tree functions pass through
to the allocator. This function must never return zero. */ to the allocator. This function must never return zero. */
typedef PTR (*splay_tree_allocate_fn) (int, void *); typedef void *(*splay_tree_allocate_fn) (int, void *);
/* The type of a function used to free memory allocated using the /* The type of a function used to free memory allocated using the
corresponding splay_tree_allocate_fn. The first argument is the corresponding splay_tree_allocate_fn. The first argument is the
@ -109,7 +109,7 @@ struct splay_tree_s GTY(())
/* Allocate/free functions, and a data pointer to pass to them. */ /* Allocate/free functions, and a data pointer to pass to them. */
splay_tree_allocate_fn allocate; splay_tree_allocate_fn allocate;
splay_tree_deallocate_fn deallocate; splay_tree_deallocate_fn deallocate;
PTR GTY((skip)) allocate_data; void * GTY((skip)) allocate_data;
}; };
typedef struct splay_tree_s *splay_tree; typedef struct splay_tree_s *splay_tree;

View File

@ -38,8 +38,8 @@ ternary_node;
already there, and replace is 0. already there, and replace is 0.
Otherwise, replaces if it it exists, inserts if it doesn't, and Otherwise, replaces if it it exists, inserts if it doesn't, and
returns the data you passed in. */ returns the data you passed in. */
PTR ternary_insert (ternary_tree *p, const char *s, void *ternary_insert (ternary_tree *p, const char *s,
PTR data, int replace); void *data, int replace);
/* Delete the ternary search tree rooted at P. /* Delete the ternary search tree rooted at P.
Does NOT delete the data you associated with the strings. */ Does NOT delete the data you associated with the strings. */
@ -47,5 +47,5 @@ void ternary_cleanup (ternary_tree p);
/* Search the ternary tree for string S, returning the data associated /* Search the ternary tree for string S, returning the data associated
with it if found. */ with it if found. */
PTR ternary_search (const ternary_node *p, const char *s); void *ternary_search (const ternary_node *p, const char *s);
#endif #endif