diagnostic.h (set_internal_error_function): Renamed.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Sun, 4 Feb 2001 22:44:12 +0000 (22:44 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Sun, 4 Feb 2001 22:44:12 +0000 (17:44 -0500)
* 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.

From-SVN: r39443

50 files changed:
gcc/ChangeLog
gcc/c-parse.in
gcc/config/arm/arm.c
gcc/config/avr/avr.c
gcc/config/c4x/c4x.c
gcc/config/dsp16xx/dsp16xx.c
gcc/config/dsp16xx/dsp16xx.md
gcc/config/h8300/h8300.c
gcc/config/i386/i386.c
gcc/config/m68hc11/m68hc11.c
gcc/config/m68k/m68k.c
gcc/config/mips/mips.c
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/except.c
gcc/cp/init.c
gcc/diagnostic.c
gcc/diagnostic.h
gcc/dwarf2out.c
gcc/dwarfout.c
gcc/emit-rtl.c
gcc/except.c
gcc/expr.c
gcc/f/ChangeLog
gcc/f/com.c
gcc/f/lex.c
gcc/flow.c
gcc/graph.c
gcc/hash.c
gcc/hash.h
gcc/java/ChangeLog
gcc/java/check-init.c
gcc/java/class.c
gcc/java/constants.c
gcc/java/decl.c
gcc/java/expr.c
gcc/java/java-tree.h
gcc/java/jcf-parse.c
gcc/java/jcf-write.c
gcc/java/jv-scan.c
gcc/java/lex.c
gcc/java/mangle.c
gcc/java/parse.h
gcc/java/parse.y
gcc/java/typeck.c
gcc/java/verify.c
gcc/objc/objc-act.c
gcc/profile.c
gcc/toplev.c
gcc/toplev.h

index 721efd4d37a466f1907779746de2efdd9f21f590..3a77f7c2f1e16af492af3b82a0315ccbcdc0aad3 100644 (file)
@@ -1,3 +1,63 @@
+Sun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * 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.
+
+       * except.c (duplicate_eh_handlers): Call abort instead of fatal.
+       * flow.c (verify_flow_info): 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.
+       * config/dsp16xx/dsp16xx.c (dsp16xx_invalid_register_for_compare):
+       Deleted.
+       * config/dsp16xx/dsp16xx.md (unnamed cmphi): Call abort instead of it.
+
+       * c-parse.in (methoddef): Call fatal_error instead of fatal.
+       * objc/objc-act.c (build_ivar_chain): Likewise.
+       * 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.
+       * objc/objc-act.c (objc_init): Likewise.
+       
+       * config/arm/arm.c (arm_override_options): Make errors non-fatal.
+       * 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.
+
+       * config/dsp16xx/dsp16xx.c (print_operand): Call output_operand_lossage
+       instead of fatal.
+       * config/mips/mips.c (print_operand): 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.
+       * objc/objc_act.c (objc_check_decl): Remove unneeded fatal call.
+       (get_object_reference): Likewise.
+
 2001-02-04  Nick Clifton  <nickc@redhat.com>
 
        * config/arm/arm.c (all_cores): Add 710T, 720T, 740T, 940T, 9e,
index a51161c85a8b140ae6719847f159cc4743a8459f..4f1de58772cfff3196acd3f5af1c0d15a1492091 100644 (file)
@@ -2501,7 +2501,7 @@ methoddef:
                  if (objc_implementation_context)
                    objc_inherit_code = CLASS_METHOD_DECL;
                   else
-                   fatal ("method definition not in class context");
+                   fatal_error ("method definition not in class context");
                }
          methoddecl
                {
@@ -2526,7 +2526,7 @@ methoddef:
                  if (objc_implementation_context)
                    objc_inherit_code = INSTANCE_METHOD_DECL;
                   else
-                   fatal ("method definition not in class context");
+                   fatal_error ("method definition not in class context");
                }
          methoddecl
                {
index f26c571d7182e95ec2567df6e1f53287034d6884..53dd0dd0f095cf1f76f054bd87a0d68074c92684 100644 (file)
@@ -573,7 +573,7 @@ arm_override_options ()
     target_flags |= ARM_FLAG_APCS_FRAME;
   
   if (TARGET_APCS_REENT && flag_pic)
-    fatal ("-fpic and -mapcs-reent are incompatible");
+    error ("-fpic and -mapcs-reent are incompatible");
   
   if (TARGET_APCS_REENT)
     warning ("APCS reentrant code not supported.  Ignored");
@@ -621,7 +621,7 @@ arm_override_options ()
       else if (streq (target_fp_name, "3"))
        arm_fpu_arch = FP_SOFT3;
       else
-       fatal ("Invalid floating point emulation option: -mfpe-%s",
+       error ("Invalid floating point emulation option: -mfpe-%s",
               target_fp_name);
     }
   else
@@ -9425,6 +9425,7 @@ is_called_in_ARM_mode (func)
 }
 
 /* The bits which aren't usefully expanded as rtl. */
+
 const char *
 thumb_unexpanded_epilogue ()
 {
@@ -9489,7 +9490,8 @@ thumb_unexpanded_epilogue ()
       if (mask == 0)
        /* Oh dear!  We have no low registers into which we can pop
            high registers!  */
-       fatal ("No low registers available for popping high registers");
+       internal_error
+         ("no low registers available for popping high registers");
       
       for (next_hi_reg = 8; next_hi_reg < 13; next_hi_reg++)
        if (regs_ever_live[next_hi_reg] && !call_used_regs[next_hi_reg]
@@ -10066,7 +10068,7 @@ output_thumb_prologue (f)
 
 const char *
 thumb_load_double_from_address (operands)
-     rtx * operands;
+     rtx *operands;
 {
   rtx addr;
   rtx base;
@@ -10075,13 +10077,10 @@ thumb_load_double_from_address (operands)
   rtx arg2;
   
   if (GET_CODE (operands[0]) != REG)
-    fatal ("thumb_load_double_from_address: destination is not a register");
+    abort ();
   
   if (GET_CODE (operands[1]) != MEM)
-    {
-      debug_rtx (operands[1]);
-      fatal ("thumb_load_double_from_address: source is not a computed memory address");
-    }
+    abort ();
 
   /* Get the memory address.  */
   addr = XEXP (operands[1], 0);
@@ -10124,7 +10123,7 @@ thumb_load_double_from_address (operands)
        base = arg1, offset = arg2;
   
       if (GET_CODE (base) != REG)
-       fatal ("thumb_load_double_from_address: base is not a register");
+       abort ();
 
       /* Catch the case of <address> = <reg> + <reg> */
       if (GET_CODE (offset) == REG)
@@ -10181,8 +10180,7 @@ thumb_load_double_from_address (operands)
       break;
       
     default:
-      debug_rtx (operands[1]);
-      fatal ("thumb_load_double_from_address: Unhandled address calculation");
+      abort ();
       break;
     }
   
index 3dc112353c4f42a6c19589ae2020821cd30474cc..b01f9519859506a83f146abf6a5a71c6bd455ab6 100644 (file)
@@ -182,18 +182,18 @@ avr_override_options ()
               avr_mcu_name);
       for (t = avr_mcu_types; t->name; t++)
        fprintf (stderr,"   %s\n", t->name);
-      fatal ("select right MCU name");
     }
 
   switch (t->arch)
     {
-      case AVR1:
-      default:
-       fatal ("MCU `%s' not supported", avr_mcu_name);
-      case AVR2: avr_enhanced_p = 0; avr_mega_p = 0; break;
-      case AVR3: avr_enhanced_p = 0; avr_mega_p = 1; break;
-      case AVR4: avr_enhanced_p = 1; avr_mega_p = 0; break;
-      case AVR5: avr_enhanced_p = 1; avr_mega_p = 1; break;
+    case AVR1:
+    default:
+      error ("MCU `%s' not supported", avr_mcu_name);
+      /* ... fall through ... */
+    case AVR2: avr_enhanced_p = 0; avr_mega_p = 0; break;
+    case AVR3: avr_enhanced_p = 0; avr_mega_p = 1; break;
+    case AVR4: avr_enhanced_p = 1; avr_mega_p = 0; break;
+    case AVR5: avr_enhanced_p = 1; avr_mega_p = 1; break;
     }
 
   if (optimize && !TARGET_NO_TABLEJUMP)
@@ -910,7 +910,7 @@ ptrreg_to_str (regno)
     case REG_Y: return "Y";
     case REG_Z: return "Z";
     default:
-      fatal ("register r%d isn't a pointer\n", regno);
+      abort ();
     }
   return NULL;
 }
@@ -933,10 +933,6 @@ cond_string (code)
        return "pl";
       else
        return "ge";
-    case GT:
-      fatal ("Internal compiler bug: command `bgt'");
-    case LE:
-      fatal ("Internal compiler bug: command `ble'");
     case LT:
       if (cc_prev_status.flags & CC_OVERFLOW_UNUSABLE)
        return "mi";
@@ -944,10 +940,6 @@ cond_string (code)
        return "lt";
     case GEU:
       return "sh";
-    case GTU:
-      fatal ("Internal compiler bug: command `bgtu'");
-    case LEU:
-      fatal ("Internal compiler bug: command `bleu'");
     case LTU:
       return "lo";
     default:
@@ -4532,7 +4524,7 @@ unique_section (decl, reloc)
        prefix = ".text";
     }
   else 
-    fatal ("Strange situation: unique section is not a FUNCTION_DECL");
+    abort ();
 
   if (flag_function_sections)
     {
@@ -5009,7 +5001,7 @@ avr_normalize_condition (condition)
     case LEU:
       return LTU;
     default:
-      fatal ("Wrong condition: %s", GET_RTX_NAME (condition));
+      abort ();
     }
 }
 
index 1f65ba60467b312a6ee314fcc84ff8a0c495cfdc..48f4451ad69059c328b01f0debabdd4ef9bad3fd 100644 (file)
@@ -1,26 +1,26 @@
 /* Subroutines for assembler code output on the TMS320C[34]x
-   Copyright (C) 1994, 1995, 1996, 1997, 1998,
-   1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
 
    Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz)
               and Herman Ten Brugge (Haj.Ten.Brugge@net.HCC.nl).
 
-   This file is part of GNU CC.
+This file is part of GNU CC.
 
-   GNU CC is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
 
-   GNU CC is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
-   along with GNU CC; see the file COPYING.  If not, write to
-   the Free Software Foundation, 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
 
 /* Some output-actions in c4x.md need these.  */
 #include "config.h"
@@ -858,8 +858,9 @@ c4x_expand_prologue ()
             requires more than 32767 words of local temporary
             storage!  */
          if (size > 32767)
-           fatal ("ISR %s requires %d words of local vars, max is 32767.",
+           error ("ISR %s requires %d words of local vars, max is 32767.",
                   current_function_name, size);
+
          insn = emit_insn (gen_addqi3 (gen_rtx_REG (QImode, SP_REGNO),
                                        gen_rtx_REG (QImode, SP_REGNO),
                                        GEN_INT (size)));
@@ -1408,7 +1409,7 @@ c4x_emit_libcall (libcall, code, dmode, smode, noperands, operands)
       break;
 
     default:
-      fatal ("c4x_emit_libcall: Bad number of operands");
+      abort ();
     }
 
   insns = get_insns ();
@@ -3970,7 +3971,7 @@ c4x_valid_operands (code, operands, mode, force)
       break;
       
     default:
-      fatal ("c4x_valid_operands: Internal error");
+      abort ();
       break;
     }
       
index 0c81dd1340281d80c5a2d26be824646f28f975e1..c74ac3884111186c896d0ea5c02df6dad7daef5a 100644 (file)
@@ -1,5 +1,5 @@
 /* Subroutines for assembler code output on the DSP1610.
-   Copyright (C) 1994, 1995, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1995, 1997, 1998, 2001 Free Software Foundation, Inc.
    Contributed by Michael Collison (collison@world.std.com).
 
 This file is part of GNU CC.
@@ -268,8 +268,7 @@ dsp16xx_reg_class_from_letter (c)
       return SLOW_MEM_LOAD_REGS;
 
     default:
-      fatal ("Invalid register class letter %c", c);
-      return NO_REGS;
+      abort ();
     }
 }
 /* Return the class number of the smallest class containing
@@ -371,7 +370,7 @@ limit_reload_class (mode, class)
       return class;
 
     case ACCUM_HIGH_REGS:
-      fatal ("ACCUM_HIGH_REGS class in limit_reload_class");
+      abort ();
 
     case A1L_REG:
     case ACCUM_LOW_REGS:
@@ -398,7 +397,7 @@ limit_reload_class (mode, class)
       return class;
 
     case YH_OR_ACCUM_HIGH_REGS:
-      fatal ("YH_OR_ACCUM_HIGH_REGS found in limit_reload_class");
+      abort ();
 
     case X_OR_YH_REGS:
       return class;
@@ -406,8 +405,7 @@ limit_reload_class (mode, class)
     case YL_REG:
       /* Register 'yl' is invalid for QImode, so we should never
         see it. */
-
-      fatal ("YL found in limit_reload_class");
+      abort ();
 
     case YL_OR_ACCUM_LOW_REGS:
     case X_OR_YL_REGS:
@@ -1220,26 +1218,24 @@ function_prologue (file, size)
     {
       if (current_frame_info.var_size == 1)
        fprintf (file, "\t*%s++\n", sp);
+      else if (SMALL_INTVAL (current_frame_info.var_size)
+              && ((current_frame_info.var_size & 0x8000) == 0))
+       fprintf (file, "\t%s=%ld\n\t*%s++%s\n", reg_names[REG_J],
+                current_frame_info.var_size, sp, reg_names[REG_J]);
       else
-        {
-         if(SMALL_INTVAL(current_frame_info.var_size) && ((current_frame_info.var_size & 0x8000) == 0))
-           fprintf (file, "\t%s=%ld\n\t*%s++%s\n", reg_names[REG_J], current_frame_info.var_size, sp, reg_names[REG_J]);
-         else
-           fatal ("Stack size > 32k");
-       }
+       error ("Stack size > 32k");
     }
   
-  /* Save any registers this function uses, unless they are
-   * used in a call, in which case we don't need to
-   */
+  /* Save any registers this function uses, unless they are used in a call,
+     in which case we don't need to.  */
   
-  for( regno = 0; regno < FIRST_PSEUDO_REGISTER; ++ regno )
+  for (regno = 0; regno < FIRST_PSEUDO_REGISTER; ++ regno)
     if (dsp16xx_call_saved_register (regno)) 
       {
 #if OLD_REGISTER_SAVE
-       fprintf( file, "\t*%s++=%s\n", sp, reg_names[regno] );
+       fprintf (file, "\t*%s++=%s\n", sp, reg_names[regno]);
 #else
-       fprintf( file, "\tpush(*%s)=%s\n", sp, reg_names[regno] );
+       fprintf (file, "\tpush(*%s)=%s\n", sp, reg_names[regno]);
 #endif
       }
   
@@ -1247,24 +1243,23 @@ function_prologue (file, size)
     {
       if (current_frame_info.args_size == 1)
        fprintf (file, "\t*%s++\n", sp);
+      else if (SMALL_INTVAL (current_frame_info.args_size)
+              && (current_frame_info.args_size & 0x8000) == 0)
+       fprintf (file, "\t%s=%ld\n\t*%s++%s\n", reg_names[REG_J],
+                current_frame_info.args_size, sp, reg_names[REG_J]);
       else
-        {
-         if(SMALL_INTVAL(current_frame_info.args_size) && ((current_frame_info.args_size & 0x8000) == 0))
-           fprintf (file, "\t%s=%ld\n\t*%s++%s\n", reg_names[REG_J], current_frame_info.args_size, sp, reg_names[REG_J]);
-         else
-           fatal ("Stack size > 32k");
-       }
+       error ("Stack size > 32k");
     }
   
   if (frame_pointer_needed)
     {
-      fprintf( file, "\t%s=%s\n", a1h, sp );
-      fprintf( file, "\t%s=%s\n", fp, a1h );  /* Establish new base frame */
-      fprintffile, "\t%s=%ld\n", reg_names[REG_J], -total_size);
-      fprintffile, "\t*%s++%s\n", fp, reg_names[REG_J]);
+      fprintf (file, "\t%s=%s\n", a1h, sp);
+      fprintf (file, "\t%s=%s\n", fp, a1h);  /* Establish new base frame */
+      fprintf (file, "\t%s=%ld\n", reg_names[REG_J], -total_size);
+      fprintf (file, "\t*%s++%s\n", fp, reg_names[REG_J]);
     }
   
-  fprintf( file, "\t/* END FUNCTION PROLOGUE: */\n\n" );
+  fprintf (file, "\t/* END FUNCTION PROLOGUE: */\n\n");
 }
 
 void
@@ -1482,9 +1477,10 @@ double_reg_to_memory (operands)
       else if (GET_CODE (XEXP(addr,1)) == CONST_INT)
        offset = INTVAL(XEXP(addr,1)) + 1;
       else
-       fatal ("Invalid addressing mode");
+       abort ();
 
-      fprintf (asm_out_file, "\t*(%d)=%s\n", offset + 31, reg_names[REGNO(operands[1]) + 1]);
+      fprintf (asm_out_file, "\t*(%d)=%s\n", offset + 31,
+              reg_names[REGNO(operands[1]) + 1]);
     }
     else
     {
@@ -1660,40 +1656,43 @@ print_operand(file, op, letter)
     {
        /* Print the low half of a 32-bit register pair */
         if (letter == 'w')
-           fprintf( file, "%s", reg_names[REGNO(op)+1] );
+           fprintf (file, "%s", reg_names[REGNO (op) + 1]);
         else if (letter == 'u' || !letter)
-           fprintf( file, "%s", reg_names[REGNO(op)]);
+           fprintf (file, "%s", reg_names[REGNO (op)]);
        else if (letter == 'b')
-           fprintf ( file, "%sh", reg_names[REGNO(op)]);
+           fprintf (file, "%sh", reg_names[REGNO (op)]);
        else if (letter == 'm')
-         fprintf (file, "%s", himode_reg_name[REGNO(op)]);
+         fprintf (file, "%s", himode_reg_name[REGNO (op)]);
         else
-           fatal("Bad register extension code");
+         output_operand_lossgae ("Bad register extension code");
     }
-    else if( code == MEM )
-        output_address( XEXP(op,0) );
-    else if( code == CONST_INT )
-    { 
+    else if (code == MEM)
+      output_address (XEXP(op,0));
+    else if (code == CONST_INT)
+      
        HOST_WIDE_INT val = INTVAL (op);
-        if( letter == 'H' )
-            fprintf( file, HOST_WIDE_INT_PRINT_HEX, val & 0xffff);
+
+        if (letter == 'H')
+         fprintf (file, HOST_WIDE_INT_PRINT_HEX, val & 0xffff);
        else if (letter == 'h')
-            fprintf( file, HOST_WIDE_INT_PRINT_DEC, val);
-        else if( letter == 'U' )
-            fprintf( file, HOST_WIDE_INT_PRINT_HEX, (val >> 16) & 0xffff);
+         fprintf (file, HOST_WIDE_INT_PRINT_DEC, val);
+        else if (letter == 'U')
+         fprint(f file, HOST_WIDE_INT_PRINT_HEX, (val >> 16) & 0xffff);
         else
-           output_addr_const( file, op );
-    }
-    else if( code == CONST_DOUBLE && GET_MODE(op) != DImode )
-    {
-         union { double d; int i[2]; } u;
-         union { float f; int i; } u1;
-         u.i[0] = CONST_DOUBLE_LOW (op);
-         u.i[1] = CONST_DOUBLE_HIGH (op);
-         u1.f = u.d;
-          fprintf( file, "0x%x", u1.i );
-    }
-    else output_addr_const( file, op);
+         output_addr_const (file, op);
+      }
+    else if (code == CONST_DOUBLE && GET_MODE (op) != DImode)
+      {
+       union {double d; int i[2]; } u;
+       union {float f; int i; } u1;
+
+       u.i[0] = CONST_DOUBLE_LOW (op);
+       u.i[1] = CONST_DOUBLE_HIGH (op);
+       u1.f = u.d;
+       fprintf (file, "0x%x", u1.i);
+      }
+    else
+      output_addr_const (file, op);
 }
 
 
@@ -1726,10 +1725,10 @@ print_operand_address(file, addr)
          if (offset >= -31 && offset <= 0)
            offset = 31 + offset;
          else
-           fatal ("Invalid offset in ybase addressing");
+           abort ();
        }
       else
-       fatal ("Invalid register in ybase addressing");
+       abort ();
       
       fprintf (file, "*(%d)", offset);
       break;
@@ -1743,7 +1742,7 @@ print_operand_address(file, addr)
 }
 
 void
-output_dsp16xx_float_const(operands)
+output_dsp16xx_float_const (operands)
      rtx *operands;
 {
   rtx src = operands[1];
@@ -1758,7 +1757,7 @@ output_dsp16xx_float_const(operands)
   operands[1] = GEN_INT (value);
   output_asm_insn ("%u0=%U1\n\t%w0=%H1", operands);
 #else
-  fatal ("inline float constants not supported on this host");
+  fatal_error ("inline float constants not supported on this host");
 #endif
 }
 
@@ -1902,7 +1901,7 @@ emit_1600_core_shift (shift_op, operands, shift_amount)
       shift_asm_ptr_first = lshift_right_asm_first;
     }
   else
-    fatal ("Invalid shift operator in emit_1600_core_shift");
+    abort ();
 
   while (shift_amount != 0)
     {
@@ -1984,19 +1983,21 @@ asm_output_float (file, fp_const)
      double fp_const;
 {
 #if HOST_FLOAT_FORMAT == TARGET_FLOAT_FORMAT
-      REAL_VALUE_TYPE d = fp_const;
-      long value;
+  REAL_VALUE_TYPE d = fp_const;
+  long value;
 
-      REAL_VALUE_TO_TARGET_SINGLE (d, value);
-      fputs ("\tint ", file);
+  REAL_VALUE_TO_TARGET_SINGLE (d, value);
+  fputs ("\tint ", file);
 #ifdef WORDS_BIG_ENDIAN
-      fprintf (file, "0x%-4.4lx, 0x%-4.4lx", (value >> 16) & 0xffff, (value & 0xffff));
+  fprintf (file, "0x%-4.4lx, 0x%-4.4lx", (value >> 16) & 0xffff,
+          value & 0xffff);
 #else
-      fprintf (file, "0x%-4.4lx, 0x%-4.4lx", (value & 0xffff), (value >> 16) & 0xffff);
+  fprintf (file, "0x%-4.4lx, 0x%-4.4lx", value & 0xffff,
+          (value >> 16) & 0xffff);
 #endif
-      fputs ("\n", file);
+  fputs ("\n", file);
 #else
-      fatal ("inline float constants not supported on this host");
+  fatal_error ("inline float constants not supported on this host");
 #endif
 }
 
@@ -2171,17 +2172,15 @@ gen_tst_reg (x)
   mode = GET_MODE (x);
 
   if (mode == QImode)
-    {
-         emit_insn (gen_rtx_PARALLEL
-                    (VOIDmode,
-                     gen_rtvec (2, gen_rtx_SET (VOIDmode, cc0_rtx, x),
-                                gen_rtx_CLOBBER (VOIDmode,
-                                                 gen_rtx_SCRATCH (QImode)))));
-       }
+    emit_insn (gen_rtx_PARALLEL
+              (VOIDmode,
+               gen_rtvec (2, gen_rtx_SET (VOIDmode, cc0_rtx, x),
+                          gen_rtx_CLOBBER (VOIDmode,
+                                           gen_rtx_SCRATCH (QImode)))));
   else if (mode == HImode)
     emit_insn (gen_rtx_SET (VOIDmode, cc0_rtx, x));
   else
-    fatal ("Invalid mode for gen_tst_reg");
+    abort ();
 
   return cc0_rtx;
 }
@@ -2262,7 +2261,7 @@ gen_compare_reg (code, x, y)
                                                 force_reg (HImode,y))));
     }
   else
-    fatal ("Invalid mode for integer comparison in gen_compare_reg");
+    abort ();
 
   return cc0_rtx;
 }
@@ -2286,9 +2285,3 @@ output_block_move (operands)
   fprintf (asm_out_file, "\t}\n");
   return "";
 }
-
-void
-dsp16xx_invalid_register_for_compare ()
-{
-  fatal ("Invalid register for compare");
-}
index 28cf9c7caf38372a05a27ec82f9f6b52dd762708..ce7fb96b8500eff04d10a4a55614627121f8a28a 100644 (file)
@@ -1,5 +1,5 @@
 ;;- Machine description for the AT&T DSP1600 for GNU C compiler
-;;  Copyright (C) 1994, 1995, 1997, 1998 Free Software Foundation, Inc.
+;;  Copyright (C) 1994, 1995, 1997, 1998, 2001 Free Software Foundation, Inc.
 ;;  Contributed by Michael Collison (collison@world.std.com).
 
 ;; This file is part of GNU CC.
        {
          output_asm_insn (\"a0=%0\", operands);
        }
-      else if (IS_YBASE_REGISTER_WINDOW (REGNO(operands[0])))
-       {
-         output_asm_insn (\"a0=%u0\;a0l=%w0\", operands);
-       }
+      else if (IS_YBASE_REGISTER_WINDOW (REGNO (operands[0])))
+       output_asm_insn (\"a0=%u0\;a0l=%w0\", operands);
       else
-       dsp16xx_invalid_register_for_compare ();
+       abort ();
     }
   else if (GET_CODE(operands[0]) == CONST_INT)
-    {
-      output_asm_insn (\"a0=%U0\;a0l=%H0\", operands);
-    }
+    output_asm_insn (\"a0=%U0\;a0l=%H0\", operands);
   else if (GET_CODE (operands[0]) == MEM)
     {
       rtx xoperands[2];
 
   if (GET_CODE(operands[1]) == REG)
     {
-      if (REGNO (operands[1]) == REG_Y
-         || REGNO (operands[1]) == REG_PROD)
-       {
-         output_asm_insn (\"a1=%1\", operands);
-       }
-      else if (IS_YBASE_REGISTER_WINDOW (REGNO(operands[1])))
-       {
-         output_asm_insn (\"a1=%u1\;a1l=%w1\", operands);
-       }
+      if (REGNO (operands[1]) == REG_Y || REGNO (operands[1]) == REG_PROD)
+       output_asm_insn (\"a1=%1\", operands);
+      else if (IS_YBASE_REGISTER_WINDOW (REGNO (operands[1])))
+       output_asm_insn (\"a1=%u1\;a1l=%w1\", operands);
       else
-       dsp16xx_invalid_register_for_compare ();
+       abort ();
     }
   else if (GET_CODE (operands[1]) == MEM)
     {
index c2ebcf61bcb92eb47921e6a47de8a581beb728e3..a52120c9dca7357d2378ef26d03186adee749e03 100644 (file)
@@ -1,5 +1,5 @@
 /* Subroutines for insn-output.c for Hitachi H8/300.
-   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
    Free Software Foundation, Inc. 
    Contributed by Steve Chamberlain (sac@cygnus.com),
    Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
@@ -113,7 +113,10 @@ h8300_init_once ()
   h8_mov_op = h8_mov_ops[cpu_type];
 
   if (!TARGET_H8300S && TARGET_MAC)
-    fatal ("-ms2600 is used without -ms.");
+    {
+      error ("-ms2600 is used without -ms.");
+      target_flags |= 1;
+    }
 }
 
 const char *
index 5026976261a6158b06393b8336db864c4d86ad8e..708e8ee084974e8c62e1e8e29ef67d1f283dc665 100644 (file)
@@ -458,6 +458,7 @@ static int ix86_fp_comparison_cost PARAMS ((enum rtx_code code));
 void
 override_options ()
 {
+  int i;
   /* Comes from final.c -- no real reason to change it.  */
 #define MAX_CODE_ALIGN 16
 
@@ -509,7 +510,6 @@ override_options ()
 
   if (ix86_arch_string != 0)
     {
-      int i;
       for (i = 0; i < pta_size; i++)
        if (! strcmp (ix86_arch_string, processor_alias_table[i].name))
          {
@@ -518,13 +518,13 @@ override_options ()
            ix86_cpu = ix86_arch;
            break;
          }
+
       if (i == pta_size)
        error ("bad value (%s) for -march= switch", ix86_arch_string);
     }
 
   if (ix86_cpu_string != 0)
     {
-      int i;
       for (i = 0; i < pta_size; i++)
        if (! strcmp (ix86_cpu_string, processor_alias_table[i].name))
          {
@@ -547,10 +547,11 @@ override_options ()
   /* Validate registers in register allocation order.  */
   if (ix86_reg_alloc_order)
     {
-      int i, ch;
+      int  ch;
+
       for (i = 0; (ch = ix86_reg_alloc_order[i]) != '\0'; i++)
        {
-         int regno = 0;
+         int regno = -1;
 
          switch (ch)
            {
@@ -562,53 +563,62 @@ override_options ()
            case 'D':   regno = 5;      break;
            case 'B':   regno = 6;      break;
 
-           default:    fatal ("Register '%c' is unknown", ch);
+           default:    error ("Register '%c' is unknown", ch);
            }
 
-         if (regs_allocated[regno])
-           fatal ("Register '%c' already specified in allocation order", ch);
+         if (regno >= 0)
+           {
+             if (regs_allocated[regno])
+               error ("Register '%c' already specified in allocation order",
+                      ch);
 
-         regs_allocated[regno] = 1;
+             regs_allocated[regno] = 1;
+           }
        }
     }
 
   /* Validate -mregparm= value.  */
   if (ix86_regparm_string)
     {
-      ix86_regparm = atoi (ix86_regparm_string);
-      if (ix86_regparm < 0 || ix86_regparm > REGPARM_MAX)
-       fatal ("-mregparm=%d is not between 0 and %d",
-              ix86_regparm, REGPARM_MAX);
+      i = atoi (ix86_regparm_string);
+      if (i < 0 || i > REGPARM_MAX)
+       error ("-mregparm=%d is not between 0 and %d", i, REGPARM_MAX);
+      else
+       ix86_regparm = i;
     }
 
   /* Validate -malign-loops= value, or provide default.  */
   ix86_align_loops = processor_target_table[ix86_cpu].align_loop;
   if (ix86_align_loops_string)
     {
-      ix86_align_loops = atoi (ix86_align_loops_string);
-      if (ix86_align_loops < 0 || ix86_align_loops > MAX_CODE_ALIGN)
-       fatal ("-malign-loops=%d is not between 0 and %d",
-              ix86_align_loops, MAX_CODE_ALIGN);
+      i = atoi (ix86_align_loops_string);
+      if (i < 0 || i > MAX_CODE_ALIGN)
+       error ("-malign-loops=%d is not between 0 and %d", i, MAX_CODE_ALIGN);
+      else
+       ix86_align_loops = i;
     }
 
   /* Validate -malign-jumps= value, or provide default.  */
   ix86_align_jumps = processor_target_table[ix86_cpu].align_jump;
   if (ix86_align_jumps_string)
     {
-      ix86_align_jumps = atoi (ix86_align_jumps_string);
-      if (ix86_align_jumps < 0 || ix86_align_jumps > MAX_CODE_ALIGN)
-       fatal ("-malign-jumps=%d is not between 0 and %d",
-              ix86_align_jumps, MAX_CODE_ALIGN);
+      i = atoi (ix86_align_jumps_string);
+      if (i < 0 || i > MAX_CODE_ALIGN)
+       error ("-malign-jumps=%d is not between 0 and %d", i, MAX_CODE_ALIGN);
+      else
+       ix86_align_jumps = i;
     }
 
   /* Validate -malign-functions= value, or provide default.  */
   ix86_align_funcs = processor_target_table[ix86_cpu].align_func;
   if (ix86_align_funcs_string)
     {
-      ix86_align_funcs = atoi (ix86_align_funcs_string);
-      if (ix86_align_funcs < 0 || ix86_align_funcs > MAX_CODE_ALIGN)
-       fatal ("-malign-functions=%d is not between 0 and %d",
-              ix86_align_funcs, MAX_CODE_ALIGN);
+      i = atoi (ix86_align_funcs_string);
+      if (i < 0 || i > MAX_CODE_ALIGN)
+       error ("-malign-functions=%d is not between 0 and %d",
+              i, MAX_CODE_ALIGN);
+      else
+       ix86_align_funcs = i;
     }
 
   /* Validate -mpreferred-stack-boundary= value, or provide default.
@@ -616,20 +626,22 @@ override_options ()
   ix86_preferred_stack_boundary = 128;
   if (ix86_preferred_stack_boundary_string)
     {
-      int i = atoi (ix86_preferred_stack_boundary_string);
+      i = atoi (ix86_preferred_stack_boundary_string);
       if (i < 2 || i > 31)
-       fatal ("-mpreferred-stack-boundary=%d is not between 2 and 31", i);
-      ix86_preferred_stack_boundary = (1 << i) * BITS_PER_UNIT;
+       error ("-mpreferred-stack-boundary=%d is not between 2 and 31", i);
+      else
+       ix86_preferred_stack_boundary = (1 << i) * BITS_PER_UNIT;
     }
 
   /* Validate -mbranch-cost= value, or provide default.  */
   ix86_branch_cost = processor_target_table[ix86_cpu].branch_cost;
   if (ix86_branch_cost_string)
     {
-      ix86_branch_cost = atoi (ix86_branch_cost_string);
-      if (ix86_branch_cost < 0 || ix86_branch_cost > 5)
-       fatal ("-mbranch-cost=%d is not between 0 and 5",
-              ix86_branch_cost);
+      i = atoi (ix86_branch_cost_string);
+      if (i < 0 || i > 5)
+       error ("-mbranch-cost=%d is not between 0 and 5", i);
+      else
+       ix86_branch_cost = i;
     }
 
   /* Keep nonleaf frame pointers.  */
index 787ddd1522dc73868529413706a7c8a1606a350f..2fcf4ce6dabdd5e18f5587e702f30997fb8113d4 100644 (file)
@@ -1,5 +1,5 @@
 /* Subroutines for code generation on Motorola 68HC11 and 68HC12.
-   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
    Contributed by Stephane Carrez (stcarrez@worldnet.fr)
 
 This file is part of GNU CC.
@@ -761,7 +761,7 @@ m68hc11_emit_libcall (name, code, dmode, smode, noperands, operands)
       break;
 
     default:
-      fatal ("m68hc11_emit_libcall: Bad number of operands");
+      abort ();
     }
 
   insns = get_insns ();
index 43d3421db4171861f02d10cf7e4c1a7b559e757c..430e618e37ebdef36f6715df5b9f541765b54d05 100644 (file)
@@ -1,5 +1,5 @@
 /* Subroutines for insn-output.c for Motorola 68000 family.
-   Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+   Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
    Free Software Foundation, Inc.
 
 This file is part of GNU CC.
@@ -90,41 +90,43 @@ void
 override_options ()
 {
   int def_align;
+  int i;
 
   def_align = 1;
 
   /* Validate -malign-loops= value, or provide default */
+  m68k_align_loops = def_align;
   if (m68k_align_loops_string)
     {
-      m68k_align_loops = atoi (m68k_align_loops_string);
-      if (m68k_align_loops < 1 || m68k_align_loops > MAX_CODE_ALIGN)
-       fatal ("-malign-loops=%d is not between 1 and %d",
-              m68k_align_loops, MAX_CODE_ALIGN);
+      i = atoi (m68k_align_loops_string);
+      if (i < 1 || i > MAX_CODE_ALIGN)
+       error ("-malign-loops=%d is not between 1 and %d", i, MAX_CODE_ALIGN);
+      else
+       m68k_align_loops = i;
     }
-  else
-    m68k_align_loops = def_align;
 
   /* Validate -malign-jumps= value, or provide default */
+  m68k_align_jumps = def_align;
   if (m68k_align_jumps_string)
     {
-      m68k_align_jumps = atoi (m68k_align_jumps_string);
-      if (m68k_align_jumps < 1 || m68k_align_jumps > MAX_CODE_ALIGN)
-       fatal ("-malign-jumps=%d is not between 1 and %d",
-              m68k_align_jumps, MAX_CODE_ALIGN);
+      i = atoi (m68k_align_jumps_string);
+      if (i < 1 || i > MAX_CODE_ALIGN)
+       error ("-malign-jumps=%d is not between 1 and %d", i, MAX_CODE_ALIGN);
+      else
+       m68k_align_jumps = i;
     }
-  else
-    m68k_align_jumps = def_align;
 
   /* Validate -malign-functions= value, or provide default */
+  m68k_align_funcs = def_align;
   if (m68k_align_funcs_string)
     {
-      m68k_align_funcs = atoi (m68k_align_funcs_string);
-      if (m68k_align_funcs < 1 || m68k_align_funcs > MAX_CODE_ALIGN)
-       fatal ("-malign-functions=%d is not between 1 and %d",
-              m68k_align_funcs, MAX_CODE_ALIGN);
+      i = atoi (m68k_align_funcs_string);
+      if (i < 1 || i > MAX_CODE_ALIGN)
+       error ("-malign-functions=%d is not between 1 and %d",
+              i, MAX_CODE_ALIGN);
+      else
+       m68k_align_funcs = i;
     }
-  else
-    m68k_align_funcs = def_align;
 }
 \f
 /* This function generates the assembly code for function entry.
index 381001d66c57025df766cf04c2b9ff7bf33fd743..fbfa31fe53a96f7e25fe71d07b64796fdee4811b 100644 (file)
@@ -4953,10 +4953,16 @@ override_options ()
   if (! ISA_HAS_64BIT_REGS)
     {
       if (TARGET_FLOAT64)
-       fatal ("-mips%d does not support 64 bit fp registers", mips_isa);
+       {
+         error ("-mips%d does not support 64 bit fp registers", mips_isa);
+         target_flags &= ~ MASK_FLAG64;
+       }
 
       else if (TARGET_64BIT)
-       fatal ("-mips%d does not support 64 bit gp registers", mips_isa);
+       {
+         error ("-mips%d does not support 64 bit gp registers", mips_isa);
+         target_flags &= ~MASK_64BIT;
+       }
     }
 
   if (mips_abi != ABI_32 && mips_abi != ABI_O64)
@@ -5572,8 +5578,7 @@ print_operand (file, op, letter)
     fputs (reg_names[GP_REG_FIRST], file);
 
   else if (letter == 'd' || letter == 'x' || letter == 'X')
-    fatal ("PRINT_OPERAND: letter %c was found & insn was not CONST_INT",
-          letter);
+    output_operand_lossage ("invalid use of %%d, %%x, or %%X");
 
   else if (letter == 'B')
     fputs (code == EQ ? "z" : "n", file);
@@ -6434,8 +6439,9 @@ save_restore_insns (store_p, large_reg, large_offset, file)
                       - GET_MODE_SIZE (gpr_mode));
 
       if (gp_offset < 0 || end_offset < 0)
-       fatal ("gp_offset (%ld) or end_offset (%ld) is less than zero.",
-              (long) gp_offset, (long) end_offset);
+       internal_error
+         ("gp_offset (%ld) or end_offset (%ld) is less than zero.",
+          (long) gp_offset, (long) end_offset);
 
       /* If we see a large frame in mips16 mode, we save the registers
          before adjusting the stack pointer, and load them afterward.  */
@@ -6651,8 +6657,9 @@ save_restore_insns (store_p, large_reg, large_offset, file)
       end_offset = fp_offset - (current_frame_info.fp_reg_size - fp_size);
 
       if (fp_offset < 0 || end_offset < 0)
-       fatal ("fp_offset (%ld) or end_offset (%ld) is less than zero.",
-              (long) fp_offset, (long) end_offset);
+       internal_error
+         ("fp_offset (%ld) or end_offset (%ld) is less than zero.",
+          (long) fp_offset, (long) end_offset);
 
       else if (fp_offset < 32768)
        base_reg_rtx = stack_pointer_rtx, base_offset  = 0;
index 66746f08df172af5d1359a8fb991a08582e8d52d..b03d4812d889f741e57e8930a261846414ca8614 100644 (file)
@@ -1,3 +1,12 @@
+Sun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * decl.c (pushdecl): Call abort instead of fatal.
+       * except.c (decl_is_java_type): Call fatal_error instead of fatal.
+       * init.c (build_new_1): Likewise.
+       (build_java_class_ref): Call internal_error and fatal_error, not fatal.
+       * decl.c (build_typename_type): hash_table_init now returns void.
+       decl.c (init_decl_processing): Make an error non-fatal.
+
 2001-02-04  Mark Mitchell  <mark@codesourcery.com>
 
        * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
index a250e67c68c396964ca468b3aa60adf0a147f236..13e3094e791db43b0636ec6a1b714e00f9e52ad6 100644 (file)
@@ -3867,7 +3867,9 @@ pushdecl (x)
          else if (TREE_CODE (t) == PARM_DECL)
            {
              if (DECL_CONTEXT (t) == NULL_TREE)
-               fatal ("parse errors have confused me too much");
+               /* This is probaby caused by too many errors, but calling
+                  abort will say that if errors have occurred.  */
+               abort ();
 
              /* Check for duplicate params.  */
              if (duplicate_decls (x, t))
@@ -5520,16 +5522,15 @@ build_typename_type (context, name, fullname, base_type)
 {
   tree t;
   tree d;
-  struct hash_entrye;
+  struct hash_entry *e;
 
   static struct hash_table ht;
 
   if (!ht.table)
     {
       static struct hash_table *h = &ht;
-      if (!hash_table_init (&ht, &hash_newfunc, &typename_hash,
-                           &typename_compare))
-       fatal ("virtual memory exhausted");
+
+      hash_table_init (&ht, &hash_newfunc, &typename_hash, &typename_compare);
       ggc_add_tree_hash_table_root (&h, 1);
     }
 
@@ -6290,7 +6291,7 @@ init_decl_processing ()
   /* Check to see that the user did not specify an invalid combination
      of command-line options.  */
   if (flag_new_abi && !flag_vtable_thunks)
-    fatal ("the new ABI requires vtable thunks");
+    error ("the new ABI requires vtable thunks");
 
   /* Create all the identifiers we need.  */
   initialize_predefined_identifiers ();
@@ -7611,7 +7612,6 @@ check_initializer (decl, init)
 
       DECL_INITIAL (decl) = init;
 
-      /* This will keep us from needing to worry about our obstacks.  */
       my_friendly_assert (init != NULL_TREE, 149);
       init = NULL_TREE;
     }
index 19d5eea26c562f6524c3201e4f57a7c89dc14a15..bcca6863bcbfe79447dceedeffca995c1cc0e012 100644 (file)
@@ -466,8 +466,11 @@ decl_is_java_type (decl, err)
        {
          tree jthrow_node
            = IDENTIFIER_GLOBAL_VALUE (get_identifier ("jthrowable"));
+
          if (jthrow_node == NULL_TREE)
-           fatal ("call to Java `catch' or `throw', while `jthrowable' undefined");
+           fatal_error
+             ("call to Java `catch' or `throw' with `jthrowable' undefined");
+
          jthrow_node = TREE_TYPE (TREE_TYPE (jthrow_node));
 
          if (! DERIVED_FROM_P (jthrow_node, TREE_TYPE (decl)))
index 191738952398244bb842eab6c00379e27bb8605d..7cd6c5739d61a62ffe59897fae1c66b6a891ce2f 100644 (file)
@@ -1,6 +1,6 @@
 /* Handle initialization things in C++.
    Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000 Free Software Foundation, Inc.
+   1999, 2000, 2001 Free Software Foundation, Inc.
    Contributed by Michael Tiemann (tiemann@cygnus.com)
 
 This file is part of GNU CC.
@@ -2205,9 +2205,10 @@ build_java_class_ref (type)
     CL_suffix = get_identifier("class$");
   if (jclass_node == NULL_TREE)
     {
-      jclass_node = IDENTIFIER_GLOBAL_VALUE (get_identifier("jclass"));
+      jclass_node = IDENTIFIER_GLOBAL_VALUE (get_identifier ("jclass"));
       if (jclass_node == NULL_TREE)
-       fatal("call to Java constructor, while `jclass' undefined");
+       fatal_error ("call to Java constructor, while `jclass' undefined");
+
       jclass_node = TREE_TYPE (jclass_node);
     }
 
@@ -2222,7 +2223,7 @@ build_java_class_ref (type)
            break;
          }
       if (!field)
-       fatal ("Can't find class$");
+       internal_error ("Can't find class$");
     }
   else
     name = build_static_name (type, CL_suffix);
@@ -2398,7 +2399,9 @@ build_new_1 (exp)
       use_java_new = 1;
       alloc_decl = IDENTIFIER_GLOBAL_VALUE (get_identifier (alloc_name));
       if (alloc_decl == NULL_TREE)
-       fatal("call to Java constructor, while `%s' undefined", alloc_name);
+       fatal_error ("call to Java constructor with `%s' undefined",
+                    alloc_name);
+
       class_addr = build1 (ADDR_EXPR, jclass_node, class_decl);
       alloc_call = (build_function_call
                    (alloc_decl,
index 9a9948029a2c7bb0903f457e450df7654e574184..2dccd4c8b0d9f140cb645b67fd09ad7eac21f886 100644 (file)
@@ -1,5 +1,5 @@
 /* Language-independent diagnostic subroutines for the GNU C compiler
-   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
    Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
 
 This file is part of GNU CC.
@@ -1108,23 +1108,32 @@ fnotice VPARAMS ((FILE *file, const char *msgid, ...))
 }
 
 
-/* Print a fatal error message.  NAME is the text.
+/* Print a fatal I/O error message.  Argument are like printf.
    Also include a system error message based on `errno'.  */
 
 void
-pfatal_with_name (name)
-  const char *name;
+fatal_io_error VPARAMS ((const char *msgid, ...))
 {
-  fprintf (stderr, "%s: ", progname);
-  perror (name);
-  exit (FATAL_EXIT_CODE);
-}
+#ifndef ANSI_PROTOTYPES
+  const char *msgid;
+#endif
+  va_list ap;
+  output_state os;
 
-void
-fatal_io_error (name)
-  const char *name;
-{
-  verbatim ("%s: %s: I/O error\n", progname, name);
+  os = output_buffer_state (diagnostic_buffer);
+  VA_START (ap, msgid);
+
+#ifndef ANSI_PROTOTYPES
+  msgid = va_arg (ap, const char *);
+#endif
+
+  output_printf (diagnostic_buffer, "%s: %s: ", progname, xstrerror (errno));
+  output_buffer_ptr_to_format_args (diagnostic_buffer) = &ap;
+  output_buffer_text_cursor (diagnostic_buffer) = msgid;
+  output_format (diagnostic_buffer);
+  finish_diagnostic ();
+  output_buffer_state (diagnostic_buffer) = os;
+  va_end (ap);
   exit (FATAL_EXIT_CODE);
 }
 
@@ -1368,6 +1377,8 @@ error_for_asm VPARAMS ((rtx insn, const char *msgid, ...))
   va_end (ap);
 }
 
+/* Report an error message.  The arguments are like that of printf.  */
+
 void
 error VPARAMS ((const char *msgid, ...))
 {
@@ -1389,22 +1400,49 @@ error VPARAMS ((const char *msgid, ...))
   va_end (ap);
 }
 
-/* Report a fatal error at the current line number.  Allow a front end to
+/* Likewise, except that the compilation is terminated after printing the
+   error message.  */
+
+void
+fatal_error VPARAMS ((const char *msgid, ...))
+{
+#ifndef ANSI_PROTOTYPES
+  const char *msgid;
+#endif
+  va_list ap;
+  diagnostic_context dc;
+
+  VA_START (ap, msgid);
+
+#ifndef ANSI_PROTOTYPES
+  msgid = va_arg (ap, const char *);
+#endif
+
+  set_diagnostic_context
+    (&dc, msgid, &ap, input_filename, lineno, /* warn = */ 0);
+  report_diagnostic (&dc);
+  va_end (ap);
+
+  fprintf (stderr, "compilation terminated.\n");
+  exit (FATAL_EXIT_CODE);
+}
+
+/* Report a compiler error at the current line number.  Allow a front end to
    intercept the message.  */
 
-static void (*fatal_function) PARAMS((const char *, va_list *));
+static void (*internal_error_function) PARAMS ((const char *, va_list *));
 
-/* Set the function to call when a fatal error occurs.  */
+/* Set the function to call when a compiler error occurs.  */
 
 void
-set_fatal_function (f)
+set_internal_error_function (f)
      void (*f) PARAMS ((const char *, va_list *));
 {
-  fatal_function = f;
+  internal_error_function = f;
 }
 
 void
-fatal VPARAMS ((const char *msgid, ...))
+internal_error VPARAMS ((const char *msgid, ...))
 {
 #ifndef ANSI_PROTOTYPES
   const char *msgid;
@@ -1424,15 +1462,16 @@ fatal VPARAMS ((const char *msgid, ...))
       exit (FATAL_EXIT_CODE);
     }
 
-  if (fatal_function != 0)
-    (*fatal_function) (_(msgid), &ap);
+  if (internal_error_function != 0)
+    (*internal_error_function) (_(msgid), &ap);
   
   set_diagnostic_context
     (&dc, msgid, &ap, input_filename, lineno, /* warn = */0);
   report_diagnostic (&dc);
   va_end (ap);
 
-  fprintf (stderr, "Please submit a full bug report, with preprocessed source if appropriate.\n");
+  fprintf (stderr, "Please submit a full bug report, ");
+  fprintf (stderr, "with preprocessed source if appropriate.\n");
   fprintf (stderr, "See %s for instructions.\n", GCCBUGURL);
   exit (FATAL_EXIT_CODE);
 }
@@ -1661,7 +1700,8 @@ error_recursion ()
   if (diagnostic_lock < 3)
     finish_diagnostic ();
 
-  fatal ("Internal compiler error: Error reporting routines re-entered.");
+  internal_error
+    ("Internal compiler error: Error reporting routines re-entered.");
 }
 
 /* Given a partial pathname as input, return another pathname that
@@ -1718,8 +1758,8 @@ fancy_abort (file, line, function)
      int line;
      const char *function;
 {
-  fatal ("Internal compiler error in %s, at %s:%d",
-        function, trim_filename (file), line);
+  internal_error ("Internal compiler error in %s, at %s:%d",
+                 function, trim_filename (file), line);
 }
 
 /* Setup DC for reporting a diagnostic MESSAGE (an error or a WARNING),
index 3ae06a71370b967bfa7ea14774928e73e57c756e..5217e384b9d0f7ee5bd5e4bccde29d3f0ded27ac 100644 (file)
@@ -169,7 +169,7 @@ extern output_buffer *diagnostic_buffer;
 extern void set_diagnostic_context     PARAMS ((diagnostic_context *,
                                                 const char *, va_list *,
                                                 const char *, int, int));
-extern void set_fatal_function         PARAMS ((void (*)
+extern void set_internal_error_function        PARAMS ((void (*)
                                                 PARAMS ((const char *,
                                                          va_list *))));
 extern void report_diagnostic          PARAMS ((diagnostic_context *));
index 04bfdbc8eab0791fa0b6aa8d7a59431a372cf552..e424086a0c56a389ad2b9015cc05ec5184684c8a 100644 (file)
@@ -3181,8 +3181,8 @@ get_cfa_from_loc_descr (cfa, loc)
          cfa->offset = ptr->dw_loc_oprnd1.v.val_unsigned;
          break;
        default:
-         fatal ("DW_LOC_OP %s not implememnted yet.\n",
-                dwarf_stack_op_name (ptr->dw_loc_opc));
+         internal_error ("DW_LOC_OP %s not implememnted\n",
+                         dwarf_stack_op_name (ptr->dw_loc_opc));
        }
     }
 }
index ff73b8474ab932c7009beb16a86f24e39b76ca79..9c7cb47dbb49da98614f846fb541f6f524f25cd4 100644 (file)
@@ -5711,7 +5711,8 @@ dwarfout_init (asm_out_file, main_input_filename)
            register char *dirname;
 
            if (!pwd)
-             pfatal_with_name ("getpwd");
+             fatal_io_error ("can't get current directory");
+
            dirname = concat (pwd, "/", NULL);
            ASM_OUTPUT_DWARF_STRING_NEWLINE (asm_out_file, dirname);
            free (dirname);
index 8291a7ae229ad437706bec9eab98abf548d9045a..0b9e4aa9e51ccc75fa8dbd4644de173fe17c5452 100644 (file)
@@ -1001,7 +1001,8 @@ gen_realpart (mode, x)
           && GET_MODE_BITSIZE (mode) < BITS_PER_WORD
           && REG_P (x)
           && REGNO (x) < FIRST_PSEUDO_REGISTER)
-    fatal ("Unable to access real part of complex value in a hard register on this target");
+    internal_error
+      ("Can't access real part of complex value in hard register");
   else if (WORDS_BIG_ENDIAN)
     return gen_highpart (mode, x);
   else
@@ -1024,7 +1025,8 @@ gen_imagpart (mode, x)
           && GET_MODE_BITSIZE (mode) < BITS_PER_WORD
           && REG_P (x)
           && REGNO (x) < FIRST_PSEUDO_REGISTER)
-    fatal ("Unable to access imaginary part of complex value in a hard register on this target");
+    internal_error
+      ("can't access imaginary part of complex value in hard register");
   else
     return gen_highpart (mode, x);
 }
index d923b70a35b77f56450ece5990cb9e1d2a54f2ab..4770031220a3551863d9f28bfc51a95c855dd8ab 100644 (file)
@@ -967,7 +967,8 @@ duplicate_eh_handlers (old_note_eh_region, new_note_eh_region, map)
 
   region = find_func_region (old_note_eh_region);
   if (region == -1)
-    fatal ("Cannot duplicate non-existant exception region.");
+    /* Cannot duplicate non-existant exception region.  */
+    abort ();
 
   /* duplicate_eh_handlers may have been called during a symbol remap. */
   new_region = find_func_region (new_note_eh_region);
index a76fb5eeffd435b59d83ff14bf2595f4073dd121..f4ff9b2d7439d8b811c2c75db4ce4ac56786632c 100644 (file)
@@ -5831,6 +5831,7 @@ var_rtx (exp)
 }
 
 #ifdef MAX_INTEGER_COMPUTATION_MODE
+
 void
 check_max_integer_computation_mode (exp)
      tree exp;
@@ -5856,7 +5857,7 @@ check_max_integer_computation_mode (exp)
       mode = TYPE_MODE (TREE_TYPE (exp));
       if (GET_MODE_CLASS (mode) == MODE_INT
          && mode > MAX_INTEGER_COMPUTATION_MODE)
-       fatal ("unsupported wide integer operation");
+       internal_error ("unsupported wide integer operation");
     }
 
   /* Check operand of a unary op.  */
@@ -5865,7 +5866,7 @@ check_max_integer_computation_mode (exp)
       mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
       if (GET_MODE_CLASS (mode) == MODE_INT
          && mode > MAX_INTEGER_COMPUTATION_MODE)
-       fatal ("unsupported wide integer operation");
+       internal_error ("unsupported wide integer operation");
     }
 
   /* Check operands of a binary/comparison op.  */
@@ -5874,12 +5875,12 @@ check_max_integer_computation_mode (exp)
       mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
       if (GET_MODE_CLASS (mode) == MODE_INT
          && mode > MAX_INTEGER_COMPUTATION_MODE)
-       fatal ("unsupported wide integer operation");
+       internal_error ("unsupported wide integer operation");
 
       mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 1)));
       if (GET_MODE_CLASS (mode) == MODE_INT
          && mode > MAX_INTEGER_COMPUTATION_MODE)
-       fatal ("unsupported wide integer operation");
+       internal_error ("unsupported wide integer operation");
     }
 }
 #endif
@@ -6037,7 +6038,7 @@ expand_expr (exp, target, tmode, modifier)
 
       if (GET_MODE_CLASS (mode) == MODE_INT
          && mode > MAX_INTEGER_COMPUTATION_MODE)
-       fatal ("unsupported wide integer operation");
+       internal_error ("unsupported wide integer operation");
     }
 
   if (tmode != mode
@@ -6052,7 +6053,7 @@ expand_expr (exp, target, tmode, modifier)
       && TREE_CODE (exp) != RTL_EXPR
       && GET_MODE_CLASS (tmode) == MODE_INT
       && tmode > MAX_INTEGER_COMPUTATION_MODE)
-    fatal ("unsupported wide integer operation");
+    internal_error ("unsupported wide integer operation");
 
   check_max_integer_computation_mode (exp);
 #endif
index 315640f02bed39962040dd0c4695175f75ea37fa..745890cfdf3b382f7654e5cfebd6183b2773cbef 100644 (file)
@@ -1,3 +1,12 @@
+Sun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * com.c (ffecom_init_0): Call fatal_error instead of fatal.
+       * com.c (init_parse): Call fatal_io_error instead of
+       pfatal_with_name.
+       (ffecom_decode_include_option_): Make errors non-fatal.
+       * lex.c (ffelex_cfelex_, ffelex_get_directive_line_): Likewise.
+       (ffelex_hash_): Likewise.
+       
 Sat Jan 27 20:52:18 2001  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * Make-lang.in: Remove all dependencies on defaults.h.
index 2fd237ae4517d978505bb60d4e1db5b533f1dd2a..198a1f719d23ae14403462f8589818a15cad30ce 100644 (file)
@@ -11855,7 +11855,7 @@ ffecom_init_0 ()
   /* Set up pointer types.  */
 
   if (ffecom_pointer_kind_ == FFEINFO_basictypeNONE)
-    fatal ("no INTEGER type can hold a pointer on this configuration");
+    fatal_error ("no INTEGER type can hold a pointer on this configuration");
   else if (0 && ffe_is_do_internal_checks ())
     fprintf (stderr, "Pointer type kt=%d\n", ffecom_pointer_kind_);
   ffetype_set_kind (ffeinfo_type (FFEINFO_basictypeINTEGER,
@@ -14608,7 +14608,7 @@ init_parse (filename)
   else
     finput = fopen (filename, "r");
   if (finput == 0)
-    pfatal_with_name (filename);
+    fatal_io_error ("can't open %s", filename);
 
 #ifdef IO_BUFFER_SIZE
   setvbuf (finput, (char *) xmalloc (IO_BUFFER_SIZE), _IOFBF, IO_BUFFER_SIZE);
@@ -16078,12 +16078,12 @@ ffecom_decode_include_option_ (char *spec)
       dirtmp = (struct file_name_list *)
        xmalloc (sizeof (struct file_name_list));
       dirtmp->next = 0;                /* New one goes on the end */
-      if (spec[0] != 0)
-       dirtmp->fname = spec;
-      else
-       fatal ("Directory name must immediately follow -I option with no intervening spaces, as in `-Idir', not `-I dir'");
+      dirtmp->fname = spec;
       dirtmp->got_name_map = 0;
-      append_include_chain (dirtmp, dirtmp);
+      if (spec[0] == 0)
+       error ("Directory name must immediately follow -I");
+      else
+       append_include_chain (dirtmp, dirtmp);
     }
   return 1;
 }
index 4c90f267f8458114a9eacd5836943a1328e5adf2..ea0ef059b76197593fa6b8d6ff135dc4d5ee3991 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation of Fortran lexer
-   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1998, 2001 Free Software Foundation, Inc.
    Contributed by James Craig Burley.
 
 This file is part of GNU Fortran.
@@ -803,7 +803,7 @@ ffelex_cfelex_ (ffelexToken *xtoken, FILE *finput, int c)
 
            case EOF:
            case '\n':
-             fatal ("Badly formed directive -- no closing quote");
+             error ("Badly formed directive -- no closing quote");
              done = TRUE;
              break;
 
@@ -1036,7 +1036,7 @@ ffelex_get_directive_line_ (char **text, FILE *finput)
          || c == EOF)
        {
          if (looking_for != 0)
-           fatal ("Bad directive -- missing close-quote");
+           error ("Bad directive -- missing close-quote");
 
          *p++ = '\0';
          *text = directive_buffer;
@@ -1366,7 +1366,7 @@ ffelex_hash_ (FILE *finput)
            {
              lineno = 1;
              input_filename = old_input_filename;
-             fatal ("Use `#line ...' instead of `# ...' in first line");
+             error ("Use `#line ...' instead of `# ...' in first line");
            }
 
          if (num == 1)
@@ -1410,7 +1410,7 @@ ffelex_hash_ (FILE *finput)
        {
          lineno = 1;
          input_filename = old_input_filename;
-         fatal ("Use `#line ...' instead of `# ...' in first line");
+         error ("Use `#line ...' instead of `# ...' in first line");
        }
     }
   else
index 00529d9d5e8ca1730cbb45d81be56f9ebbdcee6e..aff84451e8d37b275e2b0f24983580b5791cd862 100644 (file)
@@ -6948,7 +6948,9 @@ verify_flow_info ()
          basic_block bb = NOTE_BASIC_BLOCK (x);
          num_bb_notes++;
          if (bb->index != last_bb_num_seen + 1)
-           fatal ("Basic blocks not numbered consecutively");
+           /* Basic blocks not numbered consecutively.  */
+           abort ();
+              
          last_bb_num_seen = bb->index;
        }
 
@@ -6988,8 +6990,9 @@ verify_flow_info ()
     }
 
   if (num_bb_notes != n_basic_blocks)
-    fatal ("number of bb notes in insn chain (%d) != n_basic_blocks (%d)",
-          num_bb_notes, n_basic_blocks);
+    internal_error
+      ("number of bb notes in insn chain (%d) != n_basic_blocks (%d)",
+       num_bb_notes, n_basic_blocks);
 
   if (err)
     abort ();
index 871831985409df891a93b5f68a5de57ed774868e..0f9e4ef22b9717b6a9a6f05476640e92f72ebf5b 100644 (file)
@@ -1,23 +1,23 @@
 /* Output routines for graphical representation.
-   Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   This file is part of GNU CC.
+This file is part of GNU CC.
 
-   GNU CC is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
 
-   GNU CC is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
-   along with GNU CC; see the file COPYING.  If not, write to
-   the Free Software Foundation, 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
 
 #include <config.h>
 #include "system.h"
@@ -399,6 +399,7 @@ print_rtl_graph_with_bb (base, suffix, rtx_first)
 
 
 /* Similar as clean_dump_file, but this time for graph output files.  */
+
 void
 clean_graph_dump_file (base, suffix)
      const char *base;
@@ -417,7 +418,7 @@ clean_graph_dump_file (base, suffix)
   fp = fopen (buf, "w");
 
   if (fp == NULL)
-    pfatal_with_name (buf);
+    fatal_io_error ("can't open %s", buf);
 
   switch (graph_dump_format)
     {
index acbcd88bde00b91393fa4065a7d06532ce73a71e..1f7e49e4085a57af5d1dd7308dd20f78a942faf8 100644 (file)
@@ -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 obstackmemory;
+     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;
index b42502b8108868574efe8a0df75b60bd97f38f1f..d79bc08dee142c827c248f99c8fa991b49ab0823 100644 (file)
@@ -1,5 +1,5 @@
 /* Header file for generic hash table support.
-   Copyright (C) 1993, 1994, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1993, 1994, 1997, 1998, 2001 Free Software Foundation, Inc.
    Written by Steve Chamberlain <sac@cygnus.com>
 
 This file was lifted from BFD, the Binary File Descriptor library.
@@ -76,7 +76,7 @@ struct hash_table
 };
 
 /* Initialize a hash table.  */
-extern boolean hash_table_init
+extern void hash_table_init
   PARAMS ((struct hash_table *,
           struct hash_entry *(*) (struct hash_entry *,
                                   struct hash_table *,
@@ -85,7 +85,7 @@ extern boolean hash_table_init
           boolean (*comp) (hash_table_key, hash_table_key)));
 
 /* Initialize a hash table specifying a size.  */
-extern boolean hash_table_init_n
+extern void hash_table_init_n
   PARAMS ((struct hash_table *,
           struct hash_entry *(*) (struct hash_entry *,
                                   struct hash_table *,
index faba27c28da838cfd891e66a84b504814fd1f3b7..ad17577c1132f4f3867cd163efad2c5d8ce4a6ad 100644 (file)
@@ -1,3 +1,58 @@
+Sun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * check-init.c (check_init): Call internal_error instead of fatal.
+       * expr.c (java_lang_expand_expr): Likewise.
+       * jcf-parse.c (get_constant): Likewise.
+       * mangle.c (java_mangle_decl): Likewise.
+       * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
+       (operator_string): Likewise.
+       * check-init.c (check_init): Call abort instead of fatal.
+       * class.c (build_class_ref): Likewise.
+       * constants.c (write_constant_pool): Likewise.
+       * decl.c (start_java_method): Likewise.
+       * 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-tree.h (INNER_CLASS_P): Likewise.
+       * jcf-parse.c (parse_signature, get_name_constant): Likewise.
+       (give_name_to_class, get_class_constant): Likewise.
+       * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
+       (find_constant_index, generate_bytecode_conditional): Likewise.
+       (generate_bytecode_insns, perform_relocations): Likewise.
+       * lex.c (java_unget_unicode, java_lex): Likewise.
+       * mangle.c (mangle_type, mangle_record_type): Likewise.
+       (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
+       (finish_mangling): Likewise.
+       * parse.h (MARK_FINAL_PARMS): Likewise.
+       * 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.
+       * typeck.c (set_local_type, parse_signature_type): Likewise.
+       (parse_signature_string, build_java_signature): Likewise;
+       (set_java_signature): Likewise.
+       * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
+       * class.c (add_method): Call fatal_error instead of fatal.
+       (build_static_field_ref): Likewise.
+       * expr.c (build_known_method_ref, expand_invoke): Likewise.
+       * jcf-parse.c (get_constant, jcf_parse): Likewise.
+       * lex.c (java_new_new_lexer): Likewise.
+       * jv-scan.c (main): Likewise.
+       (fatal_error): Renamed from fatal.
+       * jcf-parse.c (yyparse): Call fatal_io_error instead of
+       pfatal_with_name.
+       * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
+       (yyparse): Likewise.
+       * jcf-write.c (make_class_file_name, write_classfile): Likewise.
+       * lex.c (java_get_line_col): Likewise.
+       * jcf-parse.c (load_class): Make errors non-fatal.
+       * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
+       
 2001-02-01  Bryce McKinlay  <bryce@albatross.co.nz>
 
        * jvgenmain.c (class_mangling_suffix): Remove unused string.
index 7de0e183b3a433acb9bebe4a59e2697681473941..9d891968d25990c72b02257e74018823fbd04db4 100644 (file)
@@ -1,6 +1,5 @@
 /* Code to test for "definitive assignment".
-
-   Copyright (C) 1999, 2000  Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2001  Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -464,7 +463,7 @@ check_init (exp, before)
        words when_false = tmp + num_current_words;
 #ifdef ENABLE_JC1_CHECKING
        if (TREE_CODE (alt->block) != LOOP_EXPR)
-         fatal ("internal error in check-init:  EXIT_EXPR not in LOOP_EXPR");
+         abort ();
 #endif
        check_bool_init (TREE_OPERAND (exp, 0), before, when_false, when_true);
        done_alternative (when_true, alt);
@@ -535,7 +534,7 @@ check_init (exp, before)
        struct alternatives *alt = alternatives;        
 #ifdef ENABLE_JC1_CHECKING
        if (TREE_CODE (alt->block) != CLEANUP_POINT_EXPR)
-         fatal ("internal error in check-init:  WITH_CLEANUP_EXPR not in CLEANUP_POINT_EXPR");
+         abort ();
 #endif
        check_init (TREE_OPERAND (exp, 0), before);
        UNION (alt->combined, alt->combined, before);
@@ -728,8 +727,9 @@ check_init (exp, before)
       break;
       
     default:
-      fatal ("internal error in check-init: tree code not implemented: %s",
-           tree_code_name [(int) TREE_CODE (exp)]);
+      internal_error
+       ("internal error in check-init: tree code not implemented: %s",
+        tree_code_name [(int) TREE_CODE (exp)]);
     }
 }
 
index b0b47199983c3a8a43e47eb6428eb8d4384fe576..615c0754e6065cce6672e99b7327d9e19ff4cae0 100644 (file)
@@ -1,5 +1,6 @@
 /* Functions related to building classes and their related objects.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -692,9 +693,12 @@ add_method (this_class, access_flags, name, method_sig)
 {
   tree handle_class = CLASS_TO_HANDLE_TYPE (this_class);
   tree function_type, fndecl;
-  const unsigned char *sig = (const unsigned char*)IDENTIFIER_POINTER (method_sig);
+  const unsigned char *sig
+    = (const unsigned char *) IDENTIFIER_POINTER (method_sig);
+
   if (sig[0] != '(')
-    fatal ("bad method signature");
+    fatal_error ("bad method signature");
+
   function_type = get_type_from_signature (method_sig);
   fndecl = add_method_1 (handle_class, access_flags, name, function_type);
   set_java_signature (TREE_TYPE (fndecl), method_sig);
@@ -928,7 +932,8 @@ build_class_ref (type)
              else if (type == void_type_node)
                 prim_class_name = "java.lang.Void";
              else
-               fatal ("internal error - bad type to build_class_ref");
+               abort ();
+
              prim_class = lookup_class (get_identifier (prim_class_name));
              return build (COMPONENT_REF, NULL_TREE,
                            prim_class, TYPE_identifier_node);
@@ -1000,8 +1005,8 @@ build_static_field_ref (fdecl)
          if (fld == fdecl)
            break;
          if (fld == NULL_TREE)
-           fatal ("field '%s' not found in class",
-                  IDENTIFIER_POINTER (DECL_NAME (fdecl)));
+           fatal_error ("field '%s' not found in class",
+                        IDENTIFIER_POINTER (DECL_NAME (fdecl)));
          if (FIELD_STATIC (fld))
            field_index++;
        }
index ee7be0b008dfbc89aa1a99f5b33502550a700ef6..0dcd715b2d9b0727a698f13c797af7b5b073500a 100644 (file)
@@ -268,10 +268,10 @@ count_constant_pool_bytes (cpool)
 void
 write_constant_pool (cpool, buffer, length)
      CPool *cpool;
-     unsigned charbuffer;
+     unsigned char *buffer;
      int length;
 {
-  unsigned charptr = buffer;
+  unsigned char *ptr = buffer;
   int i = 1;
   jword *datap = &cpool->data[1];
   PUT2 (cpool->count);
@@ -311,8 +311,9 @@ write_constant_pool (cpool, buffer, length)
          break;
        }
     }
+
   if (ptr != buffer + length)
-    fatal("internal error - incorrect constant pool");
+    abort ();
 }
 
 CPool *outgoing_cpool;
index a19d06dbda6870b136c88425723be4df0db79b6a..f59605906a37ccb6e24ed562fb2705d0946f15c2 100644 (file)
@@ -1,6 +1,7 @@
 /* Process declarations and variables for the GNU compiler for the
    Java(TM) language.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -1817,8 +1818,8 @@ start_java_method (fndecl)
     {
       tree parm_name = NULL_TREE, parm_decl;
       tree parm_type = TREE_VALUE (tem);
-      if (i >= DECL_MAX_LOCALS(fndecl))
-       fatal ("function has more parameters than local slots");
+      if (i >= DECL_MAX_LOCALS (fndecl))
+       abort ();
 
       parm_decl = build_decl (PARM_DECL, parm_name, parm_type);
       DECL_CONTEXT (parm_decl) = fndecl;
index 16653ec0fd5447fb1a887fa4122a399997c8416c..d74dfc035aa7802d0b352256499d9737c2ce9122 100644 (file)
@@ -1,5 +1,6 @@
 /* Process expressions for the GNU compiler for the Java(TM) language.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -279,7 +280,7 @@ push_type (type)
      tree type;
 {
   if (! push_type_0 (type))
-    fatal ("stack overflow");
+    abort ();
 }
 
 static void
@@ -497,14 +498,17 @@ java_stack_pop (count)
   while (count > 0)
     {
       tree type, val;
+
       if (stack_pointer == 0)
-       fatal ("stack underflow");
+       abort ();
+
       type = stack_type_map[stack_pointer - 1];
       if (type == TYPE_SECOND)
        {
          count--;
          if (stack_pointer == 1 || count <= 0)
-           fatal ("stack underflow");
+           abort ();
+
          type = stack_type_map[stack_pointer - 2];
        }
       val = pop_value (type);
@@ -526,7 +530,8 @@ java_stack_swap ()
       || (type2 = stack_type_map[stack_pointer - 2]) == TYPE_UNKNOWN
       || type1 == TYPE_SECOND || type2 == TYPE_SECOND
       || TYPE_IS_WIDE (type1) || TYPE_IS_WIDE (type2))
-    fatal ("bad stack swap");
+    /* Bad stack swap.  */
+    abort ();
 
   flush_quick_stack ();
   decl1 = find_stack_slot (stack_pointer - 1, type1);
@@ -562,15 +567,18 @@ java_stack_dup (size, offset)
       if (type == TYPE_SECOND)
        {
          if (src_index <= low_index)
-           fatal ("dup operation splits 64-bit number");
+           /* Dup operation splits 64-bit number.  */
+           abort ();
+
          stack_type_map[dst_index] = type;
          src_index--;  dst_index--;
          type = stack_type_map[src_index];
          if (! TYPE_IS_WIDE (type))
-            fatal ("internal error - dup operation");
+           abort ();
        }
       else if (TYPE_IS_WIDE (type))
-       fatal ("internal error - dup operation");
+       abort ();
+
       if (src_index != dst_index)
        {
          tree src_decl = find_stack_slot (src_index, type);
@@ -669,7 +677,7 @@ encode_newarray_type (type)
   else if (type == long_type_node)
     return 11;
   else
-    fatal ("Can't compute type code - patch_newarray");
+    abort ();
 }
 
 /* Build a call to _Jv_ThrowBadArrayIndex(), the
@@ -695,11 +703,14 @@ build_java_array_length_access (node)
 {
   tree type = TREE_TYPE (node);
   HOST_WIDE_INT length;
+
   if (!is_array_type_p (type))
-    fatal ("array length on a non-array reference");
+    abort ();
+
   length = java_array_type_length (type);
   if (length >= 0)
     return build_int_2 (length, 0);
+
   return fold (build1 (INDIRECT_REF,
                       int_type_node,
                       fold (build (PLUS_EXPR, ptr_type_node,
@@ -807,7 +818,7 @@ build_java_check_indexed_type (array_node, indexed_type)
   tree elt_type;
 
   if (!is_array_type_p (TREE_TYPE (array_node)))
-    fatal ("array indexing on a non-array reference");
+    abort ();
 
   elt_type = (TYPE_ARRAY_ELEMENT (TREE_TYPE (TREE_TYPE (array_node))));
 
@@ -819,7 +830,7 @@ build_java_check_indexed_type (array_node, indexed_type)
     return boolean_type_node;
 
   if (indexed_type != elt_type )
-    fatal ("type array element mismatch");
+    abort ();
   else
     return indexed_type;
 }
@@ -1041,7 +1052,8 @@ expand_java_pushc (ival, type)
       value = build_real (type, x);
     }
   else
-    fatal ("internal error in expand_java_pushc");
+    abort ();
+
   push_value (value);
 }
 
@@ -1257,7 +1269,7 @@ build_java_soft_divmod (op, type, op1, op2)
     }
 
   if (! call)
-    fatal ("Internal compiler error in build_java_soft_divmod");
+    abort ();
                  
   call = build (CALL_EXPR, type,
                build_address_of (call),
@@ -1733,8 +1745,8 @@ build_known_method_ref (method, method_type, self_type, method_signature, arg_li
          if (method == meth)
            break;
          if (meth == NULL_TREE)
-           fatal ("method '%s' not found in class",
-                  IDENTIFIER_POINTER (DECL_NAME (method)));
+           fatal_error ("method '%s' not found in class",
+                        IDENTIFIER_POINTER (DECL_NAME (method)));
          method_index++;
        }
       method_index *= int_size_in_bytes (method_type_node);
@@ -1831,7 +1843,7 @@ build_invokeinterface (dtable, method)
          break;
        }
       if (meth == NULL_TREE)
-        fatal ("internal error in build_invokeinterface");
+       abort ();
     }
 
   lookup_arg = tree_cons (NULL_TREE, dtable,
@@ -1858,7 +1870,8 @@ expand_invoke (opcode, method_ref_index, nargs)
   tree method_name = COMPONENT_REF_NAME (&current_jcf->cpool, method_ref_index);
   tree self_type = get_class_constant
     (current_jcf, COMPONENT_REF_CLASS_INDEX(&current_jcf->cpool, method_ref_index));
-  const char *self_name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (self_type)));
+  const char *self_name
+    = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (self_type)));
   tree call, func, method, arg_list, method_type;
   tree cond = NULL_TREE;
 
@@ -1867,7 +1880,7 @@ expand_invoke (opcode, method_ref_index, nargs)
       load_class (self_type, 1);
       safe_layout_class (self_type);
       if (TREE_CODE (TYPE_SIZE (self_type)) == ERROR_MARK)
-       fatal ("failed to find class '%s'", self_name);
+       fatal_error ("failed to find class '%s'", self_name);
     }
   layout_class_methods (self_type);
 
@@ -2501,8 +2514,7 @@ java_lang_expand_expr (exp, target, tmode, modifier)
       return const0_rtx;
 
     default:
-      fatal ("Can't expand '%s' tree - java_lang_expand_expr",
-            tree_code_name [TREE_CODE (exp)]);
+      internal_error ("Can't expand %s", tree_code_name [TREE_CODE (exp)]);
     }
 }
 
index c390432042e40dbbbd3a2cb1bed96337aa68c3ce..7aeab9a8e35dee8eda90a0213c41652df8f92975 100644 (file)
@@ -1415,7 +1415,7 @@ extern tree *type_map;
                             INNER_CLASS_DECL_P (NODE) :                      \
                             (TREE_CODE (NODE) == RECORD_TYPE ?               \
                              INNER_CLASS_TYPE_P (NODE) :                     \
-                             (fatal ("INNER_CLASS_P: Wrong node type"), 0)))
+                             (abort (), 0)))
 
 /* On a TYPE_DECL, hold the list of inner classes defined within the
    scope of TYPE_DECL.  */
index 24eb0a30d9d0470c9c354f180741b40f589e037b..7cc1de62c11211c2223691dc08a78c402c44fd51 100644 (file)
@@ -240,14 +240,12 @@ parse_signature (jcf, sig_index)
      JCF *jcf;
      int sig_index;
 {
-  if (sig_index <= 0 || sig_index >= JPOOL_SIZE(jcf)
+  if (sig_index <= 0 || sig_index >= JPOOL_SIZE (jcf)
       || JPOOL_TAG (jcf, sig_index) != CONSTANT_Utf8)
-    fatal ("invalid field/method signature");
+    abort ();
   else
-    {
-      return parse_signature_string (JPOOL_UTF_DATA (jcf, sig_index),
-                                    JPOOL_UTF_LENGTH (jcf, sig_index));
-    }
+    return parse_signature_string (JPOOL_UTF_DATA (jcf, sig_index),
+                                  JPOOL_UTF_LENGTH (jcf, sig_index));
 }
 
 void
@@ -364,7 +362,8 @@ get_constant (jcf, index)
          {
            int char_len = UT8_CHAR_LENGTH (*utf8);
            if (char_len < 0 || char_len > 3 || char_len > i)
-             fatal ("bad string constant");
+             fatal_error ("bad string constant");
+
            utf8 += char_len;
            i -= char_len;
            str_len++;
@@ -415,12 +414,12 @@ get_constant (jcf, index)
     default:
       goto bad;
     }
-  JPOOL_TAG(jcf, index) = tag | CONSTANT_ResolvedFlag;
+  JPOOL_TAG (jcf, index) = tag | CONSTANT_ResolvedFlag;
   jcf->cpool.data [index] = (jword) value;
   return value;
  bad:
-  fatal ("bad value constant type %d, index %d", 
-        JPOOL_TAG( jcf, index ), index);
+  internal_error ("bad value constant type %d, index %d", 
+                 JPOOL_TAG (jcf, index), index);
 }
 
 tree
@@ -429,8 +428,10 @@ get_name_constant (jcf, index)
   int index;
 {
   tree name = get_constant (jcf, index);
+
   if (TREE_CODE (name) != IDENTIFIER_NODE)
-    fatal ("bad nameandtype index %d", index);
+    abort ();
+
   return name;
 }
 
@@ -479,9 +480,9 @@ give_name_to_class (jcf, i)
      JCF *jcf;
      int i;
 {
-  if (i <= 0 || i >= JPOOL_SIZE(jcf)
+  if (i <= 0 || i >= JPOOL_SIZE (jcf)
       || JPOOL_TAG (jcf, i) != CONSTANT_Class)
-    fatal ("bad class index %d", i);
+    abort ();
   else
     {
       tree this_class;
@@ -507,9 +508,9 @@ tree
 get_class_constant (JCF *jcf , int i)
 {
   tree type;
-  if (i <= 0 || i >= JPOOL_SIZE(jcf)
+  if (i <= 0 || i >= JPOOL_SIZE (jcf)
       || (JPOOL_TAG (jcf, i) & ~CONSTANT_ResolvedFlag) != CONSTANT_Class)
-    fatal ("bad class index %d", i);
+    abort ();
 
   if (JPOOL_TAG (jcf, i) != CONSTANT_ResolvedClass)
     {
@@ -517,6 +518,7 @@ get_class_constant (JCF *jcf , int i)
       /* verify_constant_pool confirmed that name_index is a CONSTANT_Utf8. */
       const char *name = JPOOL_UTF_DATA (jcf, name_index);
       int nlength = JPOOL_UTF_LENGTH (jcf, name_index);
+
       if (name[0] == '[')  /* Handle array "classes". */
          type = TREE_TYPE (parse_signature_string (name, nlength));
       else
@@ -614,7 +616,7 @@ load_class (class_or_name, verbose)
     name = DECL_NAME (TYPE_NAME (class_or_name));
 
   if (read_class (name) == 0 && verbose)
-    fatal ("Cannot find file for class %s.", IDENTIFIER_POINTER (name));
+    error ("Cannot find file for class %s.", IDENTIFIER_POINTER (name));
 }
 
 /* Parse a source file when JCF refers to a source file.  */
@@ -637,12 +639,10 @@ jcf_parse_source ()
   if (!HAS_BEEN_ALREADY_PARSED_P (file))
     {
       if (!(finput = fopen (input_filename, "r")))
-       fatal ("input file `%s' just disappeared - jcf_parse_source",
-              input_filename);
+       fatal_io_error ("can't reopen %s", input_filename);
       parse_source_file (file, finput);
       if (fclose (finput))
-       fatal ("can't close input file `%s' stream - jcf_parse_source",
-              input_filename);
+       fatal_io_error ("can't close %s", input_filename);
     }
   java_pop_parser_context (IS_A_COMMAND_LINE_FILENAME_P (file));
   java_parser_context_restore_global ();
@@ -658,13 +658,13 @@ jcf_parse (jcf)
   tree current;
 
   if (jcf_parse_preamble (jcf) != 0)
-    fatal ("Not a valid Java .class file.\n");
+    fatal_error ("not a valid Java .class file");
   code = jcf_parse_constant_pool (jcf);
   if (code != 0)
-    fatal ("error while parsing constant pool");
+    fatal_error ("error while parsing constant pool");
   code = verify_constant_pool (jcf);
   if (code > 0)
-    fatal ("error in constant pool entry #%d\n", code);
+    fatal_error ("error in constant pool entry #%d\n", code);
 
   jcf_parse_class (jcf);
   if (main_class == NULL_TREE)
@@ -689,13 +689,13 @@ jcf_parse (jcf)
   
   code = jcf_parse_fields (jcf);
   if (code != 0)
-    fatal ("error while parsing fields");
+    fatal_error ("error while parsing fields");
   code = jcf_parse_methods (jcf);
   if (code != 0)
-    fatal ("error while parsing methods");
+    fatal_error ("error while parsing methods");
   code = jcf_parse_final_attributes (jcf);
   if (code != 0)
-    fatal ("error while parsing final attributes");
+    fatal_error ("error while parsing final attributes");
 
   /* The fields of class_type_node are already in correct order. */
   if (current_class != class_type_node && current_class != object_type_node)
@@ -954,14 +954,14 @@ yyparse ()
       
       /* Close previous descriptor, if any */
       if (main_jcf->read_state && fclose (main_jcf->read_state))
-       fatal ("failed to close input file `%s' - yyparse",
-              (main_jcf->filename ? main_jcf->filename : "<unknown>"));
+       fatal_io_error ("can't close %s",
+                       main_jcf->filename ? main_jcf->filename : "<unknown>");
       
       /* Set jcf up and open a new file */
       JCF_ZERO (main_jcf);
       main_jcf->read_state = fopen (IDENTIFIER_POINTER (name), "rb");
       if (main_jcf->read_state == NULL)
-       pfatal_with_name (IDENTIFIER_POINTER (name));
+       fatal_io_error ("can't open %s", IDENTIFIER_POINTER (name));
       
       /* Set new input_filename and finput */
       finput = main_jcf->read_state;
index 1106a75953051b6aaf07433eb1cc1110f84160f3..5cb4fb368a2b095b57c021af1efeecdaf2d21298 100644 (file)
@@ -1,5 +1,5 @@
 /* Write out a Java(TM) class file.
-   Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -355,14 +355,15 @@ static void append_innerclasses_attribute_entry PARAMS ((struct jcf_partial *, t
 static int CHECK_PUT PARAMS ((void *, struct jcf_partial *, int));
 
 static int
-CHECK_PUT(ptr, state, i)
+CHECK_PUT (ptr, state, i)
      void *ptr;
      struct jcf_partial *state;
      int i;
 {
-  if ((unsigned char *)ptr < state->chunk->data
-      || (unsigned char*)ptr + i > state->chunk->data + state->chunk->size)
-    fatal ("internal error - CHECK_PUT failed");
+  if ((unsigned char *) ptr < state->chunk->data
+      || (unsigned char *) ptr + i > state->chunk->data + state->chunk->size)
+    abort ();
+
   return 0;
 }
 #else
@@ -411,16 +412,16 @@ alloc_chunk (last, data, size, work)
 static int CHECK_OP PARAMS ((struct jcf_partial *));
 
 static int
-CHECK_OP(struct jcf_partial *state)
+CHECK_OP (state)
+     struct jcf_partial *state;
 {
   if (state->bytecode.ptr > state->bytecode.limit)
-    {
-      fatal("internal error - CHECK_OP failed");
-    }
+    abort ();
+
   return 0;
 }
 #else
-#define CHECK_OP(STATE) ((void)0)
+#define CHECK_OP(STATE) ((void) 0)
 #endif
 
 static unsigned char *
@@ -687,7 +688,8 @@ get_access_flags (decl)
        flags |= ACC_PRIVATE;
     }
   else
-    fatal ("internal error - bad argument to get_access_flags");
+    abort ();
+
   if (TREE_CODE (decl) == FUNCTION_DECL)
     {
       if (METHOD_NATIVE (decl))
@@ -833,11 +835,10 @@ find_constant_index (value, state)
        }
     }
   else if (TREE_CODE (value) == STRING_CST)
-    {
-      return find_string_constant (&state->cpool, value);
-    }
+    return find_string_constant (&state->cpool, value);
+
   else
-    fatal ("find_constant_index - bad type");
+    abort ();
 }
 
 /* Push 64-bit long constant on VM stack.
@@ -1176,12 +1177,12 @@ generate_bytecode_conditional (exp, true_label, false_label,
                                       true_label, false_label,
                                       true_branch_first, state);
        if (state->code_SP != save_SP_after)
-         fatal ("internal error  non-matching SP");
+         abort ();
       }
       break;
     case TRUTH_NOT_EXPR:
-      generate_bytecode_conditional (TREE_OPERAND (exp, 0), false_label, true_label,
-                                    ! true_branch_first, state);
+      generate_bytecode_conditional (TREE_OPERAND (exp, 0), false_label,
+                                    true_label, ! true_branch_first, state);
       break;
     case TRUTH_ANDIF_EXPR:
       {
@@ -1345,7 +1346,7 @@ generate_bytecode_conditional (exp, true_label, false_label,
       break;
     }
   if (save_SP != state->code_SP)
-    fatal ("internal error - SP mismatch");
+    abort ();
 }
 
 /* Call pending cleanups i.e. those for surrounding CLEANUP_POINT_EXPRs
@@ -2062,12 +2063,12 @@ generate_bytecode_insns (exp, target, state)
       else if (TREE_CODE (exp) == ARRAY_REF)
        {
          jopcode = OPCODE_iastore + adjust_typed_op (TREE_TYPE (exp), 7);
-         RESERVE(1);
+         RESERVE (1);
          OP1 (jopcode);
          NOTE_POP (TYPE_IS_WIDE (TREE_TYPE (exp)) ? 4 : 3);
        }
       else
-       fatal ("internal error (bad lhs to MODIFY_EXPR)");
+       abort ();
       break;
     case PLUS_EXPR:
       jopcode = OPCODE_iadd;
@@ -2579,8 +2580,8 @@ generate_bytecode_insns (exp, target, state)
              {
                DECL_CONTEXT (f) = saved_context;
                if (nargs <= 0)
-                 fatal ("Illegal number of arguments to invokeinterface, nargs=%d",
-                        nargs);
+                 abort ();
+
                OP1 (nargs);
                OP1 (0);
              }
@@ -2767,7 +2768,7 @@ perform_relocations (state)
            }
        }
       if (new_ptr != chunk->data)
-       fatal ("internal error - perform_relocations");
+       abort ();
     }
   state->code_length = pc;
 }
@@ -3288,16 +3289,11 @@ make_class_file_name (clas)
       if (s == NULL)
        break;
       *s = '\0';
-      if (stat (r, &sb) == -1)
-       {
+      if (stat (r, &sb) == -1
          /* Try to make it.  */
-         if (mkdir (r, 0755) == -1)
-           {
-             fatal ("failed to create directory `%s'", r);
-             free (r);
-             return NULL;
-           }
-       }
+         && mkdir (r, 0755) == -1)
+       fatal_io_error ("can't create directory %s", r);
+
       *s = DIR_SEPARATOR;
       /* Skip consecutive separators.  */
       for (dname = s + 1; *dname && *dname == DIR_SEPARATOR; ++dname)
@@ -3321,15 +3317,16 @@ write_classfile (clas)
 
   if (class_file_name != NULL)
     {
-      FILEstream = fopen (class_file_name, "wb");
+      FILE *stream = fopen (class_file_name, "wb");
       if (stream == NULL)
-       fatal ("failed to open `%s' for writing", class_file_name);
+       fatal_io_error ("can't to open %s", class_file_name);
+
       jcf_dependency_add_target (class_file_name);
       init_jcf_state (state, work);
       chunks = generate_classfile (clas, state);
       write_chunks (stream, chunks);
       if (fclose (stream))
-       fatal ("failed to close after writing `%s'", class_file_name);
+       fatal_io_error ("can't close %s", class_file_name);
       free (class_file_name);
     }
   release_jcf_state (state);
index bb0be618c52401fbf7325552ea73a019088ff4ca..d5b0d0a678328a666e8b76fb5b62f53c08f9af1c 100644 (file)
@@ -1,5 +1,5 @@
 /* Main for jv-scan
-   Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
    Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com)
 
 This file is part of GNU CC.
@@ -36,7 +36,8 @@ Boston, MA 02111-1307, USA.  */
 
 #include <getopt.h>
 
-void fatal PARAMS ((const char *s, ...)) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
+extern void fatal_error PARAMS ((const char *s, ...))
+     ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
 void warning PARAMS ((const char *s, ...)) ATTRIBUTE_PRINTF_1;
 void gcc_obstack_init PARAMS ((struct obstack *obstack));
 void report PARAMS ((void));
@@ -178,10 +179,11 @@ DEFUN (main, (argc, argv),
 
   /* Check on bad usage */
   if (flag_find_main + flag_dump_class + flag_complexity > 1)
-    fatal ("Only one of `--print-main', `--list-class', and `--complexity' allowed");
+    fatal_error
+      ("Only one of `--print-main', `--list-class', and `--complexity' allowed");
 
   if (output_file && !(out = fopen (output_file, "w")))
-    fatal ("Can't open output file `%s'", output_file);
+    fatal_error ("Can't open output file `%s'", output_file);
 
   ft = ftell (out);
 
@@ -217,7 +219,7 @@ DEFUN (main, (argc, argv),
            reset_report ();
          }
        else
-         fatal ("File not found `%s'", argv [i]);
+         fatal_error ("File not found `%s'", argv [i]);
       }
 
   /* Flush and close */
@@ -235,7 +237,7 @@ DEFUN (main, (argc, argv),
    functions */
 
 void
-fatal VPARAMS ((const char *s, ...))
+fatal_error VPARAMS ((const char *s, ...))
 {
 #ifndef ANSI_PROTOTYPES
   const char *s;
index fdfb0a7705d5b28aeedb1e09783e1a9d709efe5b..06eb35d7937723dc5e460e176e9600a3fcac8b4d 100644 (file)
@@ -67,6 +67,7 @@ static int utf8_cmp PARAMS ((const unsigned char *, int, const char *));
 
 java_lexer *java_new_lexer PARAMS ((FILE *, const char *));
 
+#ifdef HAVE_ICONV
 /* This is nonzero if we have initialized `need_byteswap'.  */
 static int byteswap_init = 0;
 
@@ -75,6 +76,7 @@ static int byteswap_init = 0;
    doing a conversion once at startup and seeing what happens.  This
    flag holds the results of this determination.  */
 static int need_byteswap = 0;
+#endif
 
 void
 java_init_lex (finput, encoding)
@@ -161,7 +163,9 @@ static void
 java_unget_unicode ()
 {
   if (!ctxp->c_line->current)
-    fatal ("can't unget unicode - java_unget_unicode");
+    /* Can't unget unicode.  */
+    abort ();
+
   ctxp->c_line->current--;
   ctxp->c_line->char_col -= JAVA_COLUMN_DELTA (0);
 }
@@ -211,6 +215,7 @@ java_allocate_new_line ()
 }
 
 /* Create a new lexer object.  */
+
 java_lexer *
 java_new_lexer (finput, encoding)
      FILE *finput;
@@ -277,8 +282,8 @@ java_new_lexer (finput, encoding)
     {
       /* If iconv failed, use the internal decoder if the default
         encoding was requested.  This code is used on platforms where
-        iconv() exists but is insufficient for our needs.  For
-        instance, on Solaris 2.5 iconv() cannot handle UTF-8 or UCS-2.  */
+        iconv exists but is insufficient for our needs.  For
+        instance, on Solaris 2.5 iconv cannot handle UTF-8 or UCS-2.  */
       if (strcmp (encoding, DEFAULT_ENCODING))
        enc_error = 1;
 #ifdef HAVE_ICONV
@@ -288,7 +293,7 @@ java_new_lexer (finput, encoding)
     }
 
   if (enc_error)
-    fatal ("unknown encoding: `%s'", encoding);
+    fatal_error ("unknown encoding: `%s'", encoding);
 
   return lex;
 }
@@ -956,7 +961,7 @@ java_lex (java_lval)
   ctxp->elc.prev_col = ctxp->elc.col;
   ctxp->elc.col = ctxp->c_line->char_col - JAVA_COLUMN_DELTA (-1);
   if (ctxp->elc.col < 0)
-    fatal ("ctxp->elc.col < 0 - java_lex");
+    abort ();
 
   /* Numeric literals */
   if (JAVA_ASCII_DIGIT (c) || (c == '.'))
@@ -1712,7 +1717,7 @@ java_get_line_col (filename, line, col)
   char *base;
 
   if (!(fp = fopen (filename, "r")))
-    fatal ("Can't open file - java_display_line_col");
+    fatal_io_error ("can't open %s", filename);
 
   while (cline != line)
     {
index e6ead9b5114af091e1acebf8a8840c7f1b79601f..1c83ac2fc34478a077a8efba66175f4ee803a718 100644 (file)
@@ -85,8 +85,7 @@ java_mangle_decl (obstack, decl)
       mangle_method_decl (decl);
       break;
     default:
-      fatal ("Can't mangle `%s\' -- java_mangle_decl", 
-            tree_code_name [TREE_CODE (decl)]);
+      internal_error ("Can't mangle %s", tree_code_name [TREE_CODE (decl)]);
     }
   return finish_mangling ();
 }
@@ -368,7 +367,7 @@ mangle_type (type)
       break;
     bad_type:
     default:
-      fatal ("internal error - trying to mangle unknown type");
+      abort ();
     }
 }
 
@@ -481,7 +480,7 @@ mangle_record_type (type, from_pointer)
   do { obstack_1grow (mangle_obstack, 'N'); nadded_p = 1; } while (0)
 
   if (TREE_CODE (type) != RECORD_TYPE)
-    fatal ("Non RECORD_TYPE argument -- mangle_record_type");
+    abort ();
 
   if (!TYPE_PACKAGE_LIST (type))
     set_type_package_list (type);
@@ -534,7 +533,7 @@ mangle_pointer_type (type)
   pointer_type = type;
   type = TREE_TYPE (type);
   if (TREE_CODE (type) != RECORD_TYPE)
-    fatal ("Double indirection found -- mangle_pointer_type");
+    abort ();
   
   obstack_1grow (mangle_obstack, 'P');
   if (mangle_record_type (type, /* for_pointer = */ 1))
@@ -560,7 +559,8 @@ mangle_array_type (p_type)
 
   type = TREE_TYPE (p_type);
   if (!type)
-    fatal ("Non pointer array type -- mangle_array_type");
+    abort ();
+
   elt_type = TYPE_ARRAY_ELEMENT (type);
 
   /* We cache a bit of the Jarray <> mangle. */
@@ -736,7 +736,8 @@ init_mangling (obstack)
   if (!compression_table)
     compression_table = make_tree_vec (10);
   else
-    fatal ("Mangling already in progress -- init_mangling");
+    /* Mangling already in progress.  */
+    abort ();
 
   /* Mangled name are to be suffixed */
   obstack_grow (mangle_obstack, "_Z", 2);
@@ -754,7 +755,8 @@ finish_mangling ()
   tree result;
 
   if (!compression_table)
-    fatal ("Mangling already finished -- finish_mangling");
+    /* Mangling already finished.  */
+    abort ();
 
   ggc_del_root (&compression_table);
   compression_table = NULL_TREE;
index 15e9852b767075cfd6098ff082787efe1cfac3c0..dc2590708ce680d3d9dd6bb3d4bca277b34bc5ca 100644 (file)
@@ -1,5 +1,5 @@
 /* Language parser definitions for the GNU compiler for the Java(TM) language.
-   Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
    Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com)
 
 This file is part of GNU CC.
@@ -290,7 +290,7 @@ extern tree stabilize_reference PARAMS ((tree));
         current = TREE_CHAIN (current), list = TREE_CHAIN (list))      \
       ARG_FINAL_P (current) = ARG_FINAL_P (list);                      \
     if (current != list)                                               \
-      fatal ("MARK_FINAL_PARMS");                                      \
+      abort ();                                                                \
   }
 
 /* Reset the ARG_FINAL_P that might have been set in method M args.  */
index d56613365be4095fed66876f15b15987930f007f..33c868c22264280b17e029f7efbacb08b74f36f8 100644 (file)
@@ -2596,7 +2596,7 @@ pop_current_osb (ctxp)
   int to_return;
 
   if (ctxp->osb_depth < 0)
-    fatal ("osb stack underflow");
+    abort ();
   
   to_return = CURRENT_OSB (ctxp);
   ctxp->osb_depth--;
@@ -3167,7 +3167,7 @@ unreachable_stmt_error (node)
       parse_error_context (wfl_operator, "Unreachable statement");
     }
   else
-    fatal ("Can't get valid statement - unreachable_stmt_error");
+    abort ();
 }
 
 int
@@ -3467,8 +3467,7 @@ make_nested_class_name (cpc_list)
   /* Why is NO_DOLLAR_IN_LABEL defined? */
 #if 0
 #ifdef NO_DOLLAR_IN_LABEL
-  fatal ("make_nested_class_name: Can't use '$' as a separator "
-        "for inner classes");
+  internal_error ("Can't use '$' as a separator for inner classes");
 #endif
 #endif
   obstack_1grow (&temporary_obstack, '$');
@@ -4985,7 +4984,7 @@ obtain_incomplete_type (type_name)
   else if (INCOMPLETE_TYPE_P (type_name))
     name = TYPE_NAME (type_name);
   else
-    fatal ("invalid type name - obtain_incomplete_type");
+    abort ();
 
   for (ptr = ctxp->incomplete_class; ptr; ptr = TREE_CHAIN (ptr))
     if (TYPE_NAME (ptr) == name)
@@ -5422,8 +5421,7 @@ java_complete_class ()
              break;
 
            default:
-             fatal ("Can't handle patch code %d - java_complete_class",
-                    JDEP_KIND (dep));
+             abort ();
            }
        }
     }
@@ -6180,7 +6178,7 @@ java_check_regular_methods (class_decl)
   java_check_abstract_method_definitions (class_decl);
 
   if (!saw_constructor)
-    fatal ("No constructor found");
+    abort ();
 }
 
 /* Return a non zero value if the `throws' clause of METHOD (if any)
@@ -7723,7 +7721,7 @@ java_complete_expand_method (mdecl)
       /* Pop the exceptions and sanity check */
       POP_EXCEPTIONS();
       if (currently_caught_type_list)
-       fatal ("Exception list non empty - java_complete_expand_method");
+       abort ();
 
       if (flag_emit_xref)
        DECL_FUNCTION_THROWS (mdecl) = exception_copy;
@@ -8736,7 +8734,9 @@ cut_identifier_in_qualified (wfl)
     if (!TREE_CHAIN (q))
       {
        if (!previous)
-         fatal ("Operating on a non qualified qualified WFL - cut_identifier_in_qualified");
+         /* Operating on a non qualified qualified WFL.  */
+         abort ();
+
        TREE_CHAIN (previous) = NULL_TREE;
        return TREE_PURPOSE (q);
       }
@@ -9580,7 +9580,7 @@ check_deprecation (wfl, decl)
          strcpy (the, "class");
          break;
        default:
-         fatal ("unexpected DECL code - check_deprecation");
+         abort ();
        }
       parse_warning_context 
        (wfl, "The %s `%s' in class `%s' has been deprecated", 
@@ -10181,7 +10181,7 @@ patch_invoke (patch, method, args)
          break;
 
        default:
-         fatal ("internal error - unknown invocation_mode result");
+         abort ();
        }
 
       /* Ensure self_type is initialized, (invokestatic). FIXME */
@@ -10426,7 +10426,7 @@ find_applicable_accessible_methods_list (lc, class, name, arglist)
        {
          lc = 1;
          if (!list)
-           fatal ("finit$ not found in class -- find_applicable_accessible_methods_list");
+           abort ();
        }
 
       /* We must search all interfaces of this class */
@@ -11644,7 +11644,7 @@ java_complete_lhs (node)
          return field;
        }
       else
-       fatal ("unimplemented java_complete_tree for COMPONENT_REF");
+       abort ();
       break;
 
     case THIS_EXPR:
@@ -11691,8 +11691,7 @@ java_complete_lhs (node)
       if ((nn = patch_string (node)))
        node = nn;
       else
-       fatal ("No case for tree code `%s' - java_complete_tree\n",
-              tree_code_name [TREE_CODE (node)]);
+       internal_error ("No case for %s", tree_code_name [TREE_CODE (node)]);
     }
   return node;
 }
@@ -11841,7 +11840,7 @@ lookup_name_in_blocks (name)
 
       /* Paranoid sanity check. To be removed */
       if (TREE_CODE (b) != BLOCK)
-       fatal ("non block expr function body - lookup_name_in_blocks");
+       abort ();
 
       for (current = BLOCK_EXPR_DECLS (b); current; 
           current = TREE_CHAIN (current))
@@ -12136,7 +12135,7 @@ check_final_variable_indirect_assignment (stmt)
        if (TREE_CODE (decl) != FUNCTION_DECL)
          decl = TREE_OPERAND (TREE_OPERAND (decl, 0), 0);
        if (TREE_CODE (decl) != FUNCTION_DECL)
-         fatal ("Can't find FUNCTION_DECL in CALL_EXPR - check_final_variable_indirect_assignment");
+         abort ();
        if (DECL_FUNCTION_ALL_FINAL_INITIALIZED (decl))
          return 1;
        if (DECL_FINIT_P (decl) || DECL_CONTEXT (decl) != current_class)
@@ -12861,8 +12860,8 @@ operator_string (node)
     case PREDECREMENT_EXPR:    /* Fall through */
     case POSTDECREMENT_EXPR: BUILD_OPERATOR_STRING ("--");
     default:
-      fatal ("unregistered operator %s - operator_string",
-            tree_code_name [TREE_CODE (node)]);
+      internal_error ("unregistered operator %s",
+                     tree_code_name [TREE_CODE (node)]);
     }
   return NULL;
 #undef BUILD_OPERATOR_STRING
@@ -13561,8 +13560,7 @@ build_unaryop (op_token, op_location, op1)
     case MINUS_TK: op = NEGATE_EXPR; break;
     case NEG_TK: op = TRUTH_NOT_EXPR; break;
     case NOT_TK: op = BIT_NOT_EXPR; break;
-    default: fatal ("Unknown token `%d' for unary operator - build_unaryop",
-                   op_token);
+    default: abort ();
     }
 
   unaryop = build1 (op, NULL_TREE, op1);
index 83be3262dc495a1f97e1091b8d1cdb8edd4d8ebf..e20903da58e51ff3fb6293bc71abbe2f4279c37e 100644 (file)
@@ -1,5 +1,6 @@
 /* Handle types for the GNU compiler for the Java(TM) language.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -52,8 +53,10 @@ set_local_type (slot, type)
 {
   int max_locals = DECL_MAX_LOCALS(current_function_decl);
   int nslots = TYPE_IS_WIDE (type) ? 2 : 1;
+
   if (slot < 0 || slot + nslots - 1 >= max_locals)
-    fatal ("invalid local variable index");
+    abort ();
+
   type_map[slot] = type;
   while (--nslots > 0)
     type_map[++slot] = void_type_node;
@@ -498,9 +501,11 @@ parse_signature_type (ptr, limit)
      const unsigned char **ptr, *limit;
 {
   tree type;
-  if ((*ptr) >= limit)
-    fatal ("bad signature string");
-  switch (*(*ptr))
+
+  if (*ptr >= limit)
+    abort ();
+
+  switch (**ptr)
     {
     case 'B':  (*ptr)++;  return byte_type_node;
     case 'C':  (*ptr)++;  return char_type_node;
@@ -523,7 +528,7 @@ parse_signature_type (ptr, limit)
        for ( ; ; str++)
          {
            if (str >= limit)
-             fatal ("bad signature string");
+             abort ();
            if (*str == ';')
              break;
          }
@@ -532,7 +537,7 @@ parse_signature_type (ptr, limit)
        break;
       }
     default:
-      fatal ("unrecognized signature string");
+      abort ();
     }
   return promote_type (type);
 }
@@ -560,7 +565,7 @@ parse_signature_string (sig_string, sig_length)
          argtype_list = tree_cons (NULL_TREE, argtype, argtype_list);
        }
       if (str++, str >= limit)
-       fatal ("bad signature string");
+       abort ();
       result_type = parse_signature_type (&str, limit);
       argtype_list = chainon (nreverse (argtype_list), end_params_node);
       result_type = build_function_type (result_type, argtype_list);
@@ -696,7 +701,7 @@ build_java_signature (type)
          break;
        bad_type:
        default:
-         fatal ("internal error - build_java_signature passed invalid type");
+         abort ();
        }
       TYPE_SIGNATURE (type) = sig;
     }
@@ -716,7 +721,7 @@ set_java_signature (type, sig)
   MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC (type);
   old_sig = TYPE_SIGNATURE (type);
   if (old_sig != NULL_TREE && old_sig != sig)
-    fatal ("internal error - set_java_signature");
+    abort ();
   TYPE_SIGNATURE (type) = sig;
 #if 0 /* careful about METHOD_TYPE */
   if (IDENTIFIER_SIGNATURE_TYPE (sig) == NULL_TREE && TREE_PERMANENT (type))
index f25fff12bd881d0bf87e6897b051df850b0928e4..5ac1d057e5c4281ffb05313805427bd25fbfd1eb 100644 (file)
@@ -1,6 +1,6 @@
 /* Handle verification of bytecoded methods for the GNU compiler for 
    the Java(TM) language.
-   Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -304,9 +304,10 @@ type_stack_dup (size, offset)
          index++;
          type[index] = stack_type_map[stack_pointer - 2];
          if (! TYPE_IS_WIDE (type[index]))
-           fatal ("internal error - dup operation");
+           abort ();
          if (index == size || index == size + offset)
-           fatal ("dup operation splits 64-bit number");
+           /* Dup operation splits 64-bit number.  */
+           abort ();
        }
       pop_type (type[index]);
     }
@@ -393,8 +394,7 @@ pop_argument_types (arg_types)
 #ifdef __GNUC__
 #define CHECK_PC_IN_RANGE(PC) ({if (PC < 0 || PC > length) goto bad_pc; (void)1;})
 #else
-#define CHECK_PC_IN_RANGE(PC) (PC < 0 || PC > length ? \
-  (fatal("Bad byte codes.\n"), 0) : 1)
+#define CHECK_PC_IN_RANGE(PC) (PC < 0 || PC > length ? (abort (), 0) : 1)
 #endif
 
 #define BCODE byte_ops
index 1cf0af9362e3ee43d0db96ec9ec6cebb4305364a..9856f34e5ca84e438865548381e7d356acc66b50 100644 (file)
@@ -1,6 +1,6 @@
 /* Implement classes and message passing for Objective C.
-   Copyright (C) 1992, 1993, 1994, 1995, 1997, 1998,
-   1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
    Contributed by Steve Naroff.
 
 This file is part of GNU CC.
@@ -730,7 +730,7 @@ objc_init ()
       register char * const dumpname = concat (dumpname, ".decl", NULL);
       gen_declaration_file = fopen (dumpname, "w");
       if (gen_declaration_file == 0)
-       pfatal_with_name (dumpname);
+       fatal_io_error ("can't open %s", dumpname);
       free (dumpname);
     }
 
@@ -1088,10 +1088,7 @@ objc_check_decl (decl)
   if (TREE_CODE (type) == RECORD_TYPE
       && TREE_STATIC_TEMPLATE (type)
       && type != constant_string_type)
-    {
-      error_with_decl (decl, "`%s' cannot be statically allocated");
-      fatal ("statically allocated objects not supported");
-    }
+    error_with_decl (decl, "`%s' cannot be statically allocated");
 }
 
 void
@@ -1151,7 +1148,10 @@ get_object_reference (protocols)
                gen_declaration (type, errbuf));
     }
   else
-    fatal ("Undefined type `id', please import <objc/objc.h>");
+    {
+      error ("Undefined type `id', please import <objc/objc.h>");
+      return error_mark_node;
+    }
 
   /* This clause creates a new pointer type that is qualified with
      the protocol specification...this info is used later to do more
@@ -2585,10 +2585,8 @@ build_ivar_chain (interface, copy)
         }
 
       if (super_interface == interface)
-        {
-          fatal ("Circular inheritance in interface declaration for `%s'",
-                 IDENTIFIER_POINTER (super_name));
-        }
+       fatal_error ("Circular inheritance in interface declaration for `%s'",
+                    IDENTIFIER_POINTER (super_name));
 
       interface = super_interface;
       my_name = CLASS_NAME (interface);
index 5849e7b22d054328edb84a8a24c34a4807c9ae6a..3cdd34b130aced72696bbba716768502fc9792c2 100644 (file)
@@ -904,7 +904,7 @@ init_branch_prob (filename)
       strip_off_ending (data_file, len);
       strcat (data_file, ".bb");
       if ((bb_file = fopen (data_file, "wb")) == 0)
-       pfatal_with_name (data_file);
+       fatal_io_error ("can't open %s", data_file);
 
       /* Open an output file for the program flow graph.  */
       bbg_file_name = (char *) alloca (len + 5);
@@ -912,7 +912,7 @@ init_branch_prob (filename)
       strip_off_ending (bbg_file_name, len);
       strcat (bbg_file_name, ".bbg");
       if ((bbg_file = fopen (bbg_file_name, "wb")) == 0)
-       pfatal_with_name (bbg_file_name);
+       fatal_io_error ("can't open %s", bbg_file_name);
 
       /* Initialize to zero, to ensure that the first file name will be
         written to the .bb file.  */
index 64b9bc3c3051ae0f64f2df5e9c750ac9310ae2e8..26cc52d53d1d99ab7b52b8dce3911f06a7a46877 100644 (file)
@@ -1699,10 +1699,9 @@ pop_float_handler (handled, handler)
 
 static void
 crash_signal (signo)
-     /* If this is missing, some compilers complain.  */
      int signo;
 {
-  fatal ("Internal error: %s.", strsignal (signo));
+  internal_error ("Internal error: %s", strsignal (signo));
 }
 
 /* Strip off a legitimate source ending from the input string NAME of
@@ -1851,7 +1850,7 @@ open_dump_file (index, decl)
 
   rtl_dump_file = fopen (dump_name, open_arg);
   if (rtl_dump_file == NULL)
-    pfatal_with_name (dump_name);
+    fatal_io_error ("can't open %s", dump_name);
 
   free (dump_name);
 
@@ -2209,7 +2208,7 @@ compile_file (name)
     {
       aux_info_file = fopen (aux_info_file_name, "w");
       if (aux_info_file == 0)
-       pfatal_with_name (aux_info_file_name);
+       fatal_io_error ("can't open %s", aux_info_file_name);
     }
 
   /* Open assembler code output file.  Do this even if -fsyntax-only is on,
@@ -2234,7 +2233,7 @@ compile_file (name)
       else
         asm_out_file = fopen (asm_file_name, "w");
       if (asm_out_file == 0)
-        pfatal_with_name (asm_file_name);
+       fatal_io_error ("can't open %s for writing", asm_file_name);
     }
 
 #ifdef IO_BUFFER_SIZE
@@ -2511,8 +2510,10 @@ compile_file (name)
 
   finish_parse ();
 
-  if (ferror (asm_out_file) != 0 || fclose (asm_out_file) != 0)
-    fatal_io_error (asm_file_name);
+  if (ferror (asm_out_file) != 0)
+    fatal_io_error ("error writing to %s", asm_file_name);
+  if (fclose (asm_out_file) != 0)
+    fatal_io_error ("error closing %s", asm_file_name);
 
   /* Do whatever is necessary to finish printing the graphs.  */
   if (graph_dump_format != no_graph)
index 97134d98aaced2aba175c3128c134a2690a76205..093c8f85366483e051d4a71acbdd820ba45fd95b 100644 (file)
@@ -1,5 +1,5 @@
 /* toplev.h - Various declarations for functions found in toplev.c
-   Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -42,21 +42,21 @@ extern void debug_end_source_file   PARAMS ((unsigned));
 extern void debug_define               PARAMS ((unsigned, const char *));
 extern void debug_undef                        PARAMS ((unsigned, const char *));
 extern int debug_ignore_block          PARAMS ((union tree_node *));
-extern void fatal                      PARAMS ((const char *, ...))
-  ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-extern void fatal_io_error             PARAMS ((const char *))
-  ATTRIBUTE_NORETURN;
-extern void pfatal_with_name           PARAMS ((const char *))
-  ATTRIBUTE_NORETURN;
+extern void internal_error             PARAMS ((const char *, ...))
+                                              ATTRIBUTE_PRINTF_1
+                                              ATTRIBUTE_NORETURN;
+extern void fatal_io_error             PARAMS ((const char *, ...))
+                                              ATTRIBUTE_PRINTF_1
+                                              ATTRIBUTE_NORETURN;
 extern void _fatal_insn_not_found      PARAMS ((struct rtx_def *,
                                                const char *, int,
                                                const char *))
-  ATTRIBUTE_NORETURN;
+                                              ATTRIBUTE_NORETURN;
 extern void _fatal_insn                        PARAMS ((const char *,
                                                struct rtx_def *,
                                                const char *, int,
                                                const char *))
-  ATTRIBUTE_NORETURN;
+                                             ATTRIBUTE_NORETURN;
 
 #define fatal_insn(msgid, insn) \
        _fatal_insn (msgid, insn, __FILE__, __LINE__, __FUNCTION__)
@@ -64,22 +64,24 @@ extern void _fatal_insn                     PARAMS ((const char *,
        _fatal_insn_not_found (insn, __FILE__, __LINE__, __FUNCTION__)
 
 extern void warning                    PARAMS ((const char *, ...))
-                                               ATTRIBUTE_PRINTF_1;
+                                              ATTRIBUTE_PRINTF_1;
 extern void error                      PARAMS ((const char *, ...))
-                                               ATTRIBUTE_PRINTF_1;
+                                              ATTRIBUTE_PRINTF_1;
+extern void fatal_error                        PARAMS ((const char *, ...))
+                                              ATTRIBUTE_PRINTF_1;
 extern void pedwarn                    PARAMS ((const char *, ...))
-                                               ATTRIBUTE_PRINTF_1;
+                                              ATTRIBUTE_PRINTF_1;
 extern void pedwarn_with_file_and_line PARAMS ((const char *, int,
-                                                 const char *, ...))
-  ATTRIBUTE_PRINTF_3;
+                                                const char *, ...))
+                                              ATTRIBUTE_PRINTF_3;
 extern void warning_with_file_and_line PARAMS ((const char *, int,
-                                                 const char *, ...))
-  ATTRIBUTE_PRINTF_3;
+                                                const char *, ...))
+                                              ATTRIBUTE_PRINTF_3;
 extern void error_with_file_and_line   PARAMS ((const char *, int,
-                                                 const char *, ...))
-  ATTRIBUTE_PRINTF_3;
+                                                const char *, ...))
+                                              ATTRIBUTE_PRINTF_3;
 extern void sorry                      PARAMS ((const char *, ...))
-  ATTRIBUTE_PRINTF_1;
+                                              ATTRIBUTE_PRINTF_1;
 extern void default_print_error_function PARAMS ((const char *));
 extern void report_error_function      PARAMS ((const char *));
 
@@ -90,20 +92,20 @@ extern void rest_of_compilation             PARAMS ((union tree_node *));
 
 /* The *_with_decl functions aren't suitable for ATTRIBUTE_PRINTF. */
 extern void pedwarn_with_decl          PARAMS ((union tree_node *,
-                                                 const char *, ...));
+                                                const char *, ...));
 extern void warning_with_decl          PARAMS ((union tree_node *,
-                                                 const char *, ...));
+                                                const char *, ...));
 extern void error_with_decl            PARAMS ((union tree_node *,
-                                                 const char *, ...));
+                                                const char *, ...));
 
 extern void announce_function          PARAMS ((union tree_node *));
 
 extern void error_for_asm              PARAMS ((struct rtx_def *,
                                                 const char *, ...))
-  ATTRIBUTE_PRINTF_2;
+                                              ATTRIBUTE_PRINTF_2;
 extern void warning_for_asm            PARAMS ((struct rtx_def *,
                                                 const char *, ...))
-  ATTRIBUTE_PRINTF_2;
+                                              ATTRIBUTE_PRINTF_2;
 #if defined (_JBLEN) || defined (setjmp)
 extern void set_float_handler PARAMS ((jmp_buf));
 extern int push_float_handler PARAMS ((jmp_buf, jmp_buf));
@@ -121,12 +123,13 @@ extern void botch                 PARAMS ((const char *))
 
 #ifdef BUFSIZ
 extern void fnotice                    PARAMS ((FILE *, const char *, ...))
-  ATTRIBUTE_PRINTF_2;
+                                              ATTRIBUTE_PRINTF_2;
 #endif
 
 extern int wrapup_global_declarations   PARAMS ((union tree_node **, int));
 extern void check_global_declarations   PARAMS ((union tree_node **, int));
-extern void note_deferral_of_defined_inline_function PARAMS ((union tree_node *));
+extern void note_deferral_of_defined_inline_function
+                                       PARAMS ((union tree_node *));
 extern int errorcount;
 extern int warningcount;
 extern int sorrycount;