merge from gcc
authorDJ Delorie <dj@redhat.com>
Fri, 17 Aug 2001 06:33:05 +0000 (06:33 +0000)
committerDJ Delorie <dj@redhat.com>
Fri, 17 Aug 2001 06:33:05 +0000 (06:33 +0000)
include/ChangeLog
include/hashtab.h
libiberty/ChangeLog
libiberty/hashtab.c

index 305754fec075ea480107c0f04caebdf46c58600e..b7d460e13aa01d8331caf2f1ab5a1cd647d19401 100644 (file)
@@ -1,3 +1,7 @@
+2001-08-16  Richard Henderson  <rth@redhat.com>
+
+       * hashtab.h (htab_hash_string): Declare.
+
 2001-06-13  Andrew Cagney  <ac131313@redhat.com>
 
        * libiberty.h (lbasename): Change function declaration to return a
index a577c5e2afe644c5d60763dbc2a2d75b4bdb6d65..8871710e5d8b1694a760f17730d85045f7cbc0ea 100644 (file)
@@ -145,6 +145,9 @@ extern htab_hash htab_hash_pointer;
 /* An equality function for pointers.  */
 extern htab_eq htab_eq_pointer;
 
+/* A hash function for null-terminated strings.  */
+extern hashval_t htab_hash_string PARAMS ((const PTR));
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
index a62db15285bbd34d535eed1dbd4daac59cd8eafd..84653bbe2fdb86e48d93c8af678d56ea3ec1142a 100644 (file)
@@ -1,3 +1,7 @@
+2001-08-16  Richard Henderson  <rth@redhat.com>
+
+       * hashtab.c (htab_hash_string): New.
+
 2001-08-13  Andrew Cagney  <ac131313@redhat.com>
 
        * floatformat.c (floatformat_ieee_double_littlebyte_bigword): Fix
index 274ad9ec2076d8d63fb845f1b0511310f2bcb941..28078027fef18ad75c109b8ba69f7e28328ff3f9 100644 (file)
@@ -561,3 +561,19 @@ htab_collisions (htab)
 
   return (double) htab->collisions / (double) htab->searches;
 }
+
+/* Hash P as a null-terminated string.  */
+
+hashval_t
+htab_hash_string (p)
+     const PTR p;
+{
+  const unsigned char *str = (const unsigned char *) p;
+  hashval_t r = 0;
+  unsigned char c;
+
+  while ((c = *str++) != 0)
+    r = r * 67 + c - 113;
+
+  return r;
+}