gcc symbol_table

来源:互联网 发布:十六进制转十进制算法 编辑:程序博客网 时间:2024/05/17 10:27
 
 
 
static htab_t symbol_table;
 

/* Symbol table global context.  */symbol_table *symtab;

general_init()

  symtab = new (ggc_cleared_alloc <symbol_table> ()) symbol_table ();

 /* Hash tables are of the following type.  The structure   (implementation) of this type is not needed for using the hash   tables.  All work with hash table should be executed only through   functions mentioned below.  The size of this structure is subject to   change.  */

struct htab {  /* Pointer to hash function.  */  htab_hash hash_f;

  /* Pointer to comparison function.  */  htab_eq eq_f;

  /* Pointer to cleanup function.  */  htab_del del_f;

  /* Table itself.  */  void **entries;

  /* Current size (in entries) of the hash table.  */  size_t size;

  /* Current number of elements including also deleted elements.  */  size_t n_elements;

  /* Current number of deleted elements in the table.  */  size_t n_deleted;

  /* The following member is used for debugging. Its value is number     of all calls of `htab_find_slot' for the hash table. */  unsigned int searches;

  /* The following member is used for debugging.  Its value is number     of collisions fixed for time of work with the hash table. */  unsigned int collisions;

  /* Pointers to allocate/free functions.  */  htab_alloc alloc_f;  htab_free free_f;

  /* Alternate allocate/free functions, which take an extra argument.  */  void *alloc_arg;  htab_alloc_with_arg alloc_with_arg_f;  htab_free_with_arg free_with_arg_f;

  /* Current size (in entries) of the hash table, as an index into the     table of primes.  */  unsigned int size_prime_index;};

 
 
0 0