summaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2021-04-28 18:44:48 -0600
committerTom Tromey <tom@tromey.com>2021-05-06 08:51:28 -0600
commit77380c6806515baf8a30412c29550c257b01133b (patch)
tree64da23212825d86de5c67fac7e7897a3f9fe1d77 /libiberty
parente69ac0203725fb8da83a1cc88d32191b7a0b2c0c (diff)
libiberty: add htab_eq_string
The libiberty hash table includes a helper function for strings, but no equality function. Consequently, this equality function has been reimplemented a number of times in both the gcc and binutils-gdb source trees. This patch adds the function to the libiberty hash table, as a step toward the goal of removing all the copies. One change to gcc is included here. Normally I would have put this in the next patch, but gensupport.c used the most natural name for its reimplementation of this function, and this can't coexist with the extern function in libiberty. include * hashtab.h (htab_eq_string): Declare. libiberty * hashtab.c (htab_eq_string): New function. gcc * gensupport.c (htab_eq_string): Remove.
Diffstat (limited to 'libiberty')
-rw-r--r--libiberty/hashtab.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libiberty/hashtab.c b/libiberty/hashtab.c
index 0c7208effe1..7c424e8f6cc 100644
--- a/libiberty/hashtab.c
+++ b/libiberty/hashtab.c
@@ -841,6 +841,13 @@ htab_hash_string (const PTR p)
return r;
}
+/* An equality function for null-terminated strings. */
+int
+htab_eq_string (const void *a, const void *b)
+{
+ return strcmp ((const char *) a, (const char *) b) == 0;
+}
+
/* DERIVED FROM:
--------------------------------------------------------------------
lookup2.c, by Bob Jenkins, December 1996, Public Domain.