summaryrefslogtreecommitdiff
path: root/gcc/hash.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-04 22:44:12 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-04 22:44:12 +0000
commitf060a02760f73f379d15babfe5aa33cf0229fbc7 (patch)
tree8141b8180c25362fac62609d1e35c61c9cc898f6 /gcc/hash.c
parent9e43fb6df1d16cdb3978075c4f4cd1f6c86d0715 (diff)
downloadgcc-f060a02760f73f379d15babfe5aa33cf0229fbc7.tar.gz
* diagnostic.h (set_internal_error_function): Renamed.
* toplev.h (internal_error): Renamed from fatal. (pfatal_with_name): Deleted. (fatal_io_error): Now has printf-style arguments. * diagnostic.c (pfatal_with_name): Deleted. (fatal_io_error): Rework to have args in printf-style. (set_internal_error_function): Renamed from set_fatal_function. (internal_error): Renamed from fatal. (error_recursion, fancy_abort): Call internal_error instead of fatal. * dwarf2out.c (get_cfa_from_loc_descr): Likewise. * emit-rtl.c (gen_realpart, gen_imagpart): Likewise. * expr.c (check_max_integer_computation_mode, expand_expr): Likewise. * flow.c (verify_flow_info): Likewise. * config/arm/arm.c (thumb_unexpanded_epilogue): Likewise. * config/mips/mips.c (save_restore_insns): Likewise. * cp/init.c (build_java_class_ref): Likewise. (dsp16xx_reg_class_from_letter): Likewise. (limit_reload_class, double_reg_to_memory): Likewise. (print_operand_address, emit_1600_code_shift): Likewise. (gen_tst_reg, gen_compare_reg): Likewise. * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Likewise. * cp/decl.c (pushdecl): Likewise. * java/check-init.c (check_init): Likewise. * java/expr.c (java_lang_expand_expr): Likewise. * java/jcf-parse.c (get_constant): Likewise. * java/mangle.c (java_mangle_decl): Likewise. * java/parse.y (make_nested_class_name, java_complete_lhs): Likewise. (operator_string): Likewise. * except.c (duplicate_eh_handlers): Call abort instead of fatal. * flow.c (verify_flow_info): Likewise. * ch/convert.c (convert): Likewise. * ch/except.c (pop_handler, chill_check_no_handlers): Likewise. * ch/expr.c (chill_expand_expr): Likewise. * ch/parse.c (peek_token_, pushback_token, require): Likewise. * config/arm/arm.c (thumb_load_double_from_address): Likewise. * config/avr/avr.c (pttreg_to_str, unique_section): Likewise. (avr_normalize_condition): Likewise. * config/c4x/c4x.c (c4x_emit_libcall, c4x_valid_operands): Likewise. * config/dsp16xx/dsp16xx.c (dsp16xx_reg_class_from_letter): Likewise. (limit_reload_class, double_reg_to_memory): Likewise. (print_operand_address, emit_1600_code_shift): Likewise. (gen_tst_reg, gen_compare_reg): Likewise. * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Likewise. * cp/decl.c (pushdecl): Likewise. * java/check-init.c (check_init): Likewise. * java/class.c (build_class_ref): Likewise. * java/constants.c (write_constant_pool): Likewise. * java/decl.c (start_java_method): Likewise. * java/expr.c (push_type, java_stack_pop, java_stack_swap): Likewise. (java_stack_dup, encode_newarray_type): Likewise. (build_java_array_length_access): Likewise. (build_java_check_indexed_type, expand_java_pushc): Likewise. (build_java_soft_divmod, build_invokeinterface): Likewise. * java/java-tree.h (INNER_CLASS_P): Likewise. * java/jcf-parse.c (parse_signature, get_name_constant): Likewise. (give_name_to_class, get_class_constant): Likewise. * java/jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise. (find_constant_index, generate_bytecode_conditional): Likewise. (generate_bytecode_insns, perform_relocations): Likewise. * java/lex.c (java_unget_unicode, java_lex): Likewise. * java/mangle.c (mangle_type, mangle_record_type): Likewise. (mangle_pointer_type, mangle_array_type, init_mangling): Likewise. (finish_mangling): Likewise. * java/parse.h (MARK_FINAL_PARMS): Likewise. * java/parse.y (pop_current_osb, unreachable_stmt_error): Likewise. (obtain_incomplete_type, java_complete_class): Likewise. (java_check_regular_methods, java_complete_expand_method): Likewise. (cut_identifier_in_qualified, check_deprecation): Likewise. (patch_invoke, find_applicable_accessible_methods_list): Likewise. (java_complete_lhs, lookup_name_in_blocks): Likewise. (check_final_variable_indirect_assignment, build_unaryop): Likewise. * java/typeck.c (set_local_type, parse_signature_type): Likewise. (parse_signature_string, build_java_signature): Likewise; (set_java_signature): Likewise. * java/verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise. * c-parse.in (methoddef): Call fatal_error instead of fatal. * objc/objc-act.c (build_ivar_chain): Likewise. * cp/except.c (decl_is_java_type): Likewise. * cp/init.c (build_java_class_ref): Likewise. * cp/init.c (build_new_1): Likewise. * f/com.c (ffecom_init_0): Likewise. * java/class.c (add_method, build_static_field_ref): Likewise. * java/expr.c (build_known_method_ref, expand_invoke): Likewise. * java/jcf-parse.c (get_constant, jcf_parse): Likewise. * java/lex.c (java_new_new_lexer): Likewise. * java/jv-scan.c (main): Likewise. (fatal_error): Renamed from fatal. * dwarfout.c (dwarfout_init): Call fatal_io_error instead of pfatal_with_name. * graph.c (clean_graph_dump_file): Likewise. * profile.c (init_branch_prob): Likewise. * ch/grant.c (write_grant_file): Likewise. * ch/lex.c (init_parse, same_file, yywrap): Likewise. * f/com.c (init_parse): Likewise. * java/jcf-parse.c (yyparse): Likewise. * objc/objc-act.c (objc_init): Likewise. * java/jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal. (yyparse): Likewise. * java/jcf-write.c (make_class_file_name, write_classfile): Likewise. * java/lex.c (java_get_line_col): Likewise. * hash.c (hash_allocate): Don't check for failure returns from obstack functions that can't fail. (hash_table_init_n, hash_table_init): Likewise; also now return void. * hash.h (hash_table_init_n, hash_table_init): Now return void. * cp/decl.c (build_typename_type): hash_table_init now returns void. * ch/lang.c (GNU_xref_begin, GNU_xref_end): Deleted. * ch/lex.c (convert_bitstring): Delete check for alloca failure. * config/dsp16xx/dsp16xx.c (dsp16xx_invalid_register_for_compare): Deleted. * config/dsp16xx/dsp16xx.md (unnamed cmphi): Call abort instead of it. * f/com.c (ffecom_decode_include_option_): Make errors non-fatal. * f/lex.c (ffelex_cfelex_, ffelex_get_directive_line_): Likewise. (ffelex_hash_): Likewise. * config/arm/arm.c (arm_override_options): Likewise. * config/avr/avr.c (avr_override_options): Likewise. * config/c4x/c4x.c (c4x_expand_prologue): Likewise. * config/dsp16xx/dsp16xx.c (function_prologue): Likewise. * config/h8300/h8300.c (h8300_init_once): Likewise. * config/mips/mips.c (override_options): Likewise. * config/i386/i386.c (override_options): Likewise, rework. * config/m68k/m68k.c (override_options): Likewise. * cp/decl.c (init_decl_processing): Likewise. * java/jcf-parse.c (load_class): Likewise. * config/dsp16xx/dsp16xx.c (print_operand): Call output_operand_lossage instead of fatal. * config/mips/mips.c (print_operand): Likewise. * java/lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV. * objc/objc_act.c (objc_check_decl): Remove unneeded fatal call. (get_object_reference): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39443 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/hash.c')
-rw-r--r--gcc/hash.c75
1 files changed, 24 insertions, 51 deletions
diff --git a/gcc/hash.c b/gcc/hash.c
index acbcd88bde0..1f7e49e4085 100644
--- a/gcc/hash.c
+++ b/gcc/hash.c
@@ -1,5 +1,5 @@
/* hash.c -- hash table routines
- Copyright (C) 1993, 1994, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1998, 2001 Free Software Foundation, Inc.
Written by Steve Chamberlain <sac@cygnus.com>
This file was lifted from BFD, the Binary File Descriptor library.
@@ -30,11 +30,11 @@ Boston, MA 02111-1307, USA. */
#define obstack_chunk_free free
/* The default number of entries to use when creating a hash table. */
-#define DEFAULT_SIZE (1009)
+#define DEFAULT_SIZE 1009
/* Create a new hash table, given a number of entries. */
-boolean
+void
hash_table_init_n (table, newfunc, hash, comp, size)
struct hash_table *table;
struct hash_entry *(*newfunc) PARAMS ((struct hash_entry *,
@@ -47,29 +47,19 @@ hash_table_init_n (table, newfunc, hash, comp, size)
unsigned int alloc;
alloc = size * sizeof (struct hash_entry *);
- if (!obstack_begin (&table->memory, alloc))
- {
- error ("no memory");
- return false;
- }
+ obstack_begin (&table->memory, alloc);
table->table = ((struct hash_entry **)
obstack_alloc (&table->memory, alloc));
- if (!table->table)
- {
- error ("no memory");
- return false;
- }
memset ((PTR) table->table, 0, alloc);
table->size = size;
table->newfunc = newfunc;
table->hash = hash;
table->comp = comp;
- return true;
}
/* Create a new hash table with the default number of entries. */
-boolean
+void
hash_table_init (table, newfunc, hash, comp)
struct hash_table *table;
struct hash_entry *(*newfunc) PARAMS ((struct hash_entry *,
@@ -78,7 +68,7 @@ hash_table_init (table, newfunc, hash, comp)
unsigned long (*hash) PARAMS ((hash_table_key));
boolean (*comp) PARAMS ((hash_table_key, hash_table_key));
{
- return hash_table_init_n (table, newfunc, hash, comp, DEFAULT_SIZE);
+ hash_table_init_n (table, newfunc, hash, comp, DEFAULT_SIZE);
}
/* Free a hash table. */
@@ -108,23 +98,21 @@ hash_lookup (table, key, create, copy)
hash = (*table->hash)(key);
index = hash % table->size;
- for (hashp = table->table[index];
- hashp != (struct hash_entry *) NULL;
- hashp = hashp->next)
- {
- if (hashp->hash == hash
- && (*table->comp)(hashp->key, key))
- return hashp;
- }
+ for (hashp = table->table[index]; hashp != 0; hashp = hashp->next)
+ if (hashp->hash == hash
+ && (*table->comp)(hashp->key, key))
+ return hashp;
if (! create)
- return (struct hash_entry *) NULL;
+ return 0;
hashp = (*table->newfunc) ((struct hash_entry *) NULL, table, key);
- if (hashp == (struct hash_entry *) NULL)
- return (struct hash_entry *) NULL;
+ if (hashp == 0)
+ return 0;
+
if (copy)
key = (*copy) (&table->memory, key);
+
hashp->key = key;
hashp->hash = hash;
hashp->next = table->table[index];
@@ -135,14 +123,13 @@ hash_lookup (table, key, create, copy)
/* Base method for creating a new hash table entry. */
-/*ARGSUSED*/
struct hash_entry *
hash_newfunc (entry, table, p)
struct hash_entry *entry;
struct hash_table *table;
hash_table_key p ATTRIBUTE_UNUSED;
{
- if (entry == (struct hash_entry *) NULL)
+ if (entry == 0)
entry = ((struct hash_entry *)
hash_allocate (table, sizeof (struct hash_entry)));
return entry;
@@ -155,12 +142,7 @@ hash_allocate (table, size)
struct hash_table *table;
unsigned int size;
{
- PTR ret;
-
- ret = obstack_alloc (&table->memory, size);
- if (ret == NULL && size != 0)
- error ("no memory");
- return ret;
+ return obstack_alloc (&table->memory, size);
}
/* Traverse a hash table. */
@@ -172,17 +154,12 @@ hash_traverse (table, func, info)
PTR info;
{
unsigned int i;
+ struct hash_entry *p;
for (i = 0; i < table->size; i++)
- {
- struct hash_entry *p;
-
- for (p = table->table[i]; p != NULL; p = p->next)
- {
- if (! (*func) (p, info))
- return;
- }
- }
+ for (p = table->table[i]; p != 0; p = p->next)
+ if (! (*func) (p, info))
+ return;
}
/* Hash a string. Return a hash-code for the string. */
@@ -206,6 +183,7 @@ string_hash (k)
hash ^= hash >> 2;
++len;
}
+
hash += len + (len << 17);
hash ^= hash >> 2;
@@ -227,18 +205,13 @@ string_compare (k1, k2)
hash_table_key
string_copy (memory, k)
- struct obstack* memory;
+ struct obstack *memory;
hash_table_key k;
{
char *new;
- char *string = (char*) k;
+ char *string = (char *) k;
new = (char *) obstack_alloc (memory, strlen (string) + 1);
- if (!new)
- {
- error ("no memory");
- return NULL;
- }
strcpy (new, string);
return new;