Argh! missing comma...
[deliverable/binutils-gdb.git] / gas / hash.c
index 0f129fb3fa1938f4038d80ff960a1fbc5fd192df..a7b82987b20fab32b90b277581d451c433452a8a 100644 (file)
@@ -1,5 +1,6 @@
 /* hash.c -- gas hash table code
-   Copyright (C) 1987, 90, 91, 92, 93, 94, 95, 96, 98, 1999
+   Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
+   2000, 2001, 2002
    Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 /* This version of the hash table code is a wholescale replacement of
    the old hash table code, which was fairly bad.  This is based on
    the hash table code in BFD, but optimized slightly for the
-   asssembler.  The assembler does not need to derive structures that
+   assembler.  The assembler does not need to derive structures that
    are stored in the hash table.  Instead, it always stores a pointer.
    The assembler uses the hash table mostly to store symbols, and we
    don't need to confuse the symbol structure with a hash table
    structure.  */
 
 #include "as.h"
+#include "safe-ctype.h"
 #include "obstack.h"
 
 /* The default number of entries to use when creating a hash table.  */
@@ -37,8 +39,7 @@
 
 /* An entry in a hash table.  */
 
-struct hash_entry
-{
+struct hash_entry {
   /* Next entry for this hash code.  */
   struct hash_entry *next;
   /* String being hashed.  */
@@ -52,8 +53,7 @@ struct hash_entry
 
 /* A hash table.  */
 
-struct hash_control
-{
+struct hash_control {
   /* The hash array.  */
   struct hash_entry **table;
   /* The number of slots in the hash table.  */
@@ -75,7 +75,7 @@ struct hash_control
 /* Create a hash table.  This return a control block.  */
 
 struct hash_control *
-hash_new ()
+hash_new (void)
 {
   unsigned int size;
   struct hash_control *ret;
@@ -99,14 +99,13 @@ hash_new ()
   ret->deletions = 0;
 #endif
 
-  return ret;  
+  return ret;
 }
 
 /* Delete a hash table, freeing all allocated memory.  */
 
 void
-hash_die (table)
-     struct hash_control *table;
+hash_die (struct hash_control *table)
 {
   obstack_free (&table->memory, 0);
   free (table);
@@ -121,17 +120,14 @@ hash_die (table)
    Each time we look up a string, we move it to the start of the list
    for its hash code, to take advantage of referential locality.  */
 
-static struct hash_entry *hash_lookup PARAMS ((struct hash_control *,
-                                              const char *,
-                                              struct hash_entry ***,
-                                              unsigned long *));
+static struct hash_entry *hash_lookup (struct hash_control *,
+                                      const char *,
+                                      struct hash_entry ***,
+                                      unsigned long *);
 
 static struct hash_entry *
-hash_lookup (table, key, plist, phash)
-     struct hash_control *table;
-     const char *key;
-     struct hash_entry ***plist;
-     unsigned long *phash;
+hash_lookup (struct hash_control *table, const char *key,
+            struct hash_entry ***plist, unsigned long *phash)
 {
   register unsigned long hash;
   unsigned int len;
@@ -205,10 +201,7 @@ hash_lookup (table, key, plist, phash)
    hash table.  */
 
 const char *
-hash_insert (table, key, value)
-     struct hash_control *table;
-     const char *key;
-     PTR value;
+hash_insert (struct hash_control *table, const char *key, PTR value)
 {
   struct hash_entry *p;
   struct hash_entry **list;
@@ -222,7 +215,7 @@ hash_insert (table, key, value)
   ++table->insertions;
 #endif
 
-  p = obstack_alloc (&table->memory, sizeof *p);
+  p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
   p->string = key;
   p->hash = hash;
   p->data = value;
@@ -238,10 +231,7 @@ hash_insert (table, key, value)
    error.  If an entry already exists, its value is replaced.  */
 
 const char *
-hash_jam (table, key, value)
-     struct hash_control *table;
-     const char *key;
-     PTR value;
+hash_jam (struct hash_control *table, const char *key, PTR value)
 {
   struct hash_entry *p;
   struct hash_entry **list;
@@ -262,7 +252,7 @@ hash_jam (table, key, value)
       ++table->insertions;
 #endif
 
-      p = obstack_alloc (&table->memory, sizeof *p);
+      p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
       p->string = key;
       p->hash = hash;
       p->data = value;
@@ -279,10 +269,7 @@ hash_jam (table, key, value)
    table, this does nothing and returns NULL.  */
 
 PTR
-hash_replace (table, key, value)
-     struct hash_control *table;
-     const char *key;
-     PTR value;
+hash_replace (struct hash_control *table, const char *key, PTR value)
 {
   struct hash_entry *p;
   PTR ret;
@@ -306,9 +293,7 @@ hash_replace (table, key, value)
    if the entry is not found.  */
 
 PTR
-hash_find (table, key)
-     struct hash_control *table;
-     const char *key;
+hash_find (struct hash_control *table, const char *key)
 {
   struct hash_entry *p;
 
@@ -323,9 +308,7 @@ hash_find (table, key)
    for that entry, or NULL if there is no such entry.  */
 
 PTR
-hash_delete (table, key)
-     struct hash_control *table;
-     const char *key;
+hash_delete (struct hash_control *table, const char *key)
 {
   struct hash_entry *p;
   struct hash_entry **list;
@@ -354,9 +337,8 @@ hash_delete (table, key)
    hash table.  */
 
 void
-hash_traverse (table, pfn)
-     struct hash_control *table;
-     void (*pfn) PARAMS ((const char *key, PTR value));
+hash_traverse (struct hash_control *table,
+              void (*pfn) (const char *key, PTR value))
 {
   unsigned int i;
 
@@ -373,10 +355,9 @@ hash_traverse (table, pfn)
    name of the hash table, used for printing a header.  */
 
 void
-hash_print_statistics (f, name, table)
-     FILE *f ATTRIBUTE_UNUSED;
-     const char *name ATTRIBUTE_UNUSED;
-     struct hash_control *table ATTRIBUTE_UNUSED;
+hash_print_statistics (FILE *f ATTRIBUTE_UNUSED,
+                      const char *name ATTRIBUTE_UNUSED,
+                      struct hash_control *table ATTRIBUTE_UNUSED)
 {
 #ifdef HASH_STATISTICS
   unsigned int i;
@@ -415,14 +396,23 @@ hash_print_statistics (f, name, table)
 
 /* This test program is left over from the old hash table code.  */
 
-#define TABLES (6)             /* number of hash tables to maintain */
-                               /* (at once) in any testing */
-#define STATBUFSIZE (12)       /* we can have 12 statistics */
+/* Number of hash tables to maintain (at once) in any testing.  */
+#define TABLES (6)
+
+/* We can have 12 statistics.  */
+#define STATBUFSIZE (12)
 
-int statbuf[STATBUFSIZE];      /* display statistics here */
-char answer[100];              /* human farts here */
-char *hashtable[TABLES];       /* we test many hash tables at once */
-char *h;                       /* points to curent hash_control */
+/* Display statistics here.  */
+int statbuf[STATBUFSIZE];
+
+/* Human farts here.  */
+char answer[100];
+
+/* We test many hash tables at once.  */
+char *hashtable[TABLES];
+
+/* Points to current hash_control.  */
+char *h;
 char **pp;
 char *p;
 char *name;
@@ -430,8 +420,9 @@ char *value;
 int size;
 int used;
 char command;
-int number;                    /* number 0:TABLES-1 of current hashed */
-                               /* symbol table */
+
+/* Number 0:TABLES-1 of current hashed symbol table.  */
+int number;
 
 int
 main ()
@@ -449,8 +440,7 @@ main ()
       printf ("hash_test command: ");
       gets (answer);
       command = answer[0];
-      if (isupper (command))
-       command = tolower (command);    /* ecch! */
+      command = TOLOWER (command);     /* Ecch!  */
       switch (command)
        {
        case '#':
@@ -460,8 +450,8 @@ main ()
        case '?':
          for (pp = hashtable; pp < hashtable + TABLES; pp++)
            {
-             printf ("address of hash table #%d control block is %xx\n"
-                     ,pp - hashtable, *pp);
+             printf ("address of hash table #%d control block is %xx\n",
+                     pp - hashtable, *pp);
            }
          break;
        case 'a':
@@ -537,19 +527,9 @@ char *
 what (description)
      char *description;
 {
-  char *retval;
-  char *malloc ();
-
   printf ("   %s : ", description);
   gets (answer);
-  /* will one day clean up answer here */
-  retval = malloc (strlen (answer) + 1);
-  if (!retval)
-    {
-      error ("room");
-    }
-  (void) strcpy (retval, answer);
-  return (retval);
+  return xstrdup (answer);
 }
 
 void
@@ -561,7 +541,6 @@ destroy (string, value)
   free (value);
 }
 
-
 void
 applicatee (string, value)
      char *string;
@@ -570,11 +549,12 @@ applicatee (string, value)
   printf ("%.20s-%.20s\n", string, value);
 }
 
+/* Determine number: what hash table to use.
+   Also determine h: points to hash_control.  */
+
 void
-whattable ()                   /* determine number: what hash table to use */
-                               /* also determine h: points to hash_control */
+whattable ()
 {
-
   for (;;)
     {
       printf ("   what hash table (%d:%d) ?  ", 0, TABLES - 1);
@@ -596,6 +576,4 @@ whattable ()                        /* determine number: what hash table to use */
     }
 }
 
-#endif /* #ifdef TEST */
-
-/* end of hash.c */
+#endif /* TEST */
This page took 0.055076 seconds and 4 git commands to generate.