OSDN Git Service

2001-03-27 Andrew Haley <aph@cambridge.redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / java / ChangeLog
index d931457..252fc04 100644 (file)
@@ -1,3 +1,835 @@
+2001-03-27  Andrew Haley  <aph@cambridge.redhat.com>
+
+       * lang-options.h: Add flag_check_references.
+
+2001-04-04  Per Bothner  <per@bothner.com>
+
+       * java-tree.h (CONSTANT_VALUE_P):  New macro.
+       * jcf-write.c (generate_classfile):  Use CONSTANT_VALUE_P.
+       * parse.y (maybe_build_class_init_for_field):  New static function.
+       (resolve_expression_name, resolve_field_access):  Use
+       maybe_build_class_init_for_field instead of build_class_init 
+       This does not do the init if the field is compile-time-constant.
+       (resolve_field_access):  Simplify.
+
+       * parse.y (fold_constant_for_init):  Merge test into switch.
+
+2001-04-03  Zack Weinberg  <zackw@stanford.edu>
+
+       * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
+       on gansidecl.h.
+       * buffer.c, jvgenmain.c: Don't include gansidecl.h.
+
+2001-04-02  Zack Weinberg  <zackw@stanford.edu>
+
+       * expr.c (pop_type_0): Save the result of the first
+       lang_printable_name call in a scratch buffer, so it 
+       won't be clobbered by the second call.
+
+2001-03-30  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * parse-scan.y (array_type:): Rewritten.
+       (type_declaration:): `empty_statement' replaces `SC_TK.'
+       (class_member_declaration:): `empty statement' added.
+       (method_body:): Simplified.
+       (static_initializer:): Likewise.
+       (primary_no_new_array:): Use `type_literals.'
+       (type_literals:): New rule.
+       (dims:): Set and update `bracket_count.'
+       Fixes PR java/1074. Fixes PR java/2412.
+
+2001-03-28  Hans Boehm  <boehm@acm.org>
+
+       * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
+       (get_boehm_type_descriptor): Set type on returned value to be a
+       pointer length integer.
+
+2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * expr.c (pop_type_0): Call `concat' rather than building the
+       string manually.
+       (pop_type): Add format specifier in call to `error'.
+
+       * parse.y (patch_method_invocation): Avoid casting away
+       const-ness.
+
+2001-03-28  Jeffrey Oldham  <oldham@codesourcery.com>
+
+       * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
+
+2001-03-28  Richard Henderson  <rth@redhat.com>
+
+       IA-64 ABI Exception Handling:
+       * Make-lang.in (except.o): Don't depend on eh-common.h.
+       * check-init.c (check_init): Handle EXC_PTR_EXPR.
+       * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
+       [soft_exceptioninfo_call_node]: Remove.
+       [eh_personality_libfunc, lang_eh_runtime_type]: New.
+       (end_java_method): No emit_handlers.
+       * except.c (java_set_exception_lang_code): Remove.
+       (method_init_exceptions): Don't call it.
+       (prepare_eh_table_type): No CATCH_ALL_TYPE.
+       (build_exception_object_ref): New.
+       (expand_end_java_handler): Update for except.h name changes.
+       (emit_handlers, expand_resume_after_catch): Remove.
+       * expr.c (java_lang_expand_expr): Update for except.h name changes.
+       (process_jvm_instruction): Use build_exception_object_ref.
+       * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
+       (soft_exceptioninfo_call_node): Remove.
+       (build_exception_object_ref): Declare.
+       * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
+       soft_exceptioninfo_call_node.  Move processing ...
+       [EXC_PTR_EXPR]: ... here.
+       * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
+       * parse.y (catch_clause_parameter): Use build_exception_object_ref.
+       (source_end_java_method): No java_set_exception_lang_code or
+       emit_handlers.
+       (build_dot_class_method): Use build_exception_object_ref.
+       (try_reference_assignconv): Check EXC_PTR_EXPR not
+       soft_exceptioninfo_call_node.
+
+2001-03-28  Richard Henderson  <rth@redhat.com>
+
+       * java-tree.h (throw_node): Define as a single member of
+       java_global_trees instead of a separate array.
+       (JTI_THROW_NODE): New.
+       * decl.c (throw_node): Don't declare.
+       (init_decl_processing): Init a scalar throw_node.
+       Don't register it for gc.
+       * check-init.c (check_init): Reference scalar throw_node.
+       * expr.c (build_java_athrow): Likewise.
+       * jcf-write.c (generate_bytecode_insns): Likewise.
+       * parse.h (BUILD_THROW): Likewise.
+
+2001-03-28  Richard Henderson  <rth@redhat.com>
+
+       * decl.c (end_java_method): Do not save and restore
+       flag_non_call_exceptions.
+       * parse.y (source_end_java_method): Likewise.
+       * lang.c (flag_exceptions): Don't declare.
+       (java_init_options): Set flag_non_call_exceptions.  Set
+       flag_exceptions here ...
+       (java_init): ... not here.
+
+2001-03-27  Richard Henderson  <rth@redhat.com>
+
+       * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
+       exceptions_via_longjmp.
+
+       * lang.c (flag_new_exceptions): Don't declare it.
+       (java_init_options): Or set it.
+
+2001-03-27  Richard Henderson  <rth@redhat.com>
+
+       * decl.c (end_java_method): Rename asynchronous_exceptions to
+       flag_non_call_exceptions.
+       * parse.y (source_end_java_method): Likewise.
+
+2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
+
+2001-03-26  Mark Mitchell  <mark@codesourcery.com>
+
+       * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
+
+2001-03-26  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * parse.y (find_as_inner_class): Follow current package
+       indications not to mistakingly load an unrelated class.
+
+2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * constants.c (PUTN): Use memcpy, not bcopy.
+
+       * lex.c (java_read_char): Use memmove, not bcopy.
+
+       * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
+
+2001-03-23  Per Bothner  <per@bothner.com>
+
+       * verify.c (verify_jvm_instructions):  Replace 3 pop_type by POP_TYPE
+       macro for better error pin-pointing.
+       * java-tree.h:  Fix typo in comment.
+
+       * jcf-write.c (generate_bytecode_insns):  Changes to TRY_FINALLY_EXPR.
+       Don't include jsr/goto in exception range.
+       Check if start and end of exception range are the same (also TRY_EXPR).
+       Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
+       However, do emit the following goto even if try_block is empty.
+       Defer freeing exception_decl until after the finalizer, to make
+       sure the local isn't reused in the finalizer.  Fixes PR java/1208.
+
+       * parse.y (java_complete_lhs):  If the try-clause is empty, just
+       return the finally-clause and vice versa.
+
+2001-03-23  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * gcj.texi (Input Options): documented the check for attribute
+       `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
+       * java-tree.h (flag_force_classes_archive_check): Declared extern.
+       * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
+       (jcf_parse): Check for the right classes archive if necessary.
+       * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
+       (jcf_parse_fields): Fixed indentation.
+       * jcf-write.c (append_gcj_attribute): New function.
+       (generate_classfile): Compute the attribute count, invoke
+       `append_gcj_attribute'.
+       * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
+       turned into bit fields. New bit field `right_zip.'
+       (JCF_ZERO): Set `right_zip' to zero.
+       * lang-options.h (-fforce-classes-archive-check): Added flag.
+       * lang.c (flag_force_classes_archive_check): New flag.
+       (lang_f_options): New entry `force-classes-archive-check.'
+       Fixes PR java/1213.
+
+2001-02-07  Andrew Haley  <aph@redhat.com>
+
+       * gcj.texi (Configure-time Options): Add -fcheck-references.
+       * expr.c (build_java_indirect_ref): New function.
+       (java_check_reference): New function.
+       (build_java_array_length_access): Use build_java_indirect_ref to
+       check for null references.
+       (build_java_arrayaccess): Likewise.
+       (build_get_class): Likewise.
+       (build_field_ref): Likewise.
+       (invoke_build_dtable): Likewise.
+       (build_invokeinterface): Likewise.
+       * lang.c (lang_f_options): Add flag_check_references.
+       * jvspec.c (jvgenmain_spec): Add flag_check_references.
+       * java-tree.h (flag_check_references): New variable.
+       * lang.c (flag_check_references): Likewise.
+       * parse.y (patch_invoke): Use java_check_reference.     
+       (patch_assignment): Allow for extra nesting in
+       _Jv_CheckArrayStore.
+
+2001-03-23  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
+       * lex.c (cxx_keywords): Likewise.
+
+2001-03-21  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * parse.y (qualify_ambiguous_name): Broaden `length'
+       recognition. Help MODIFY_EXPR be resolved as expression names.
+       Fixes PR java/2066. Fixes PR java/2400.
+
+2001-03-21  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * gjavah.c (process_file): Mark interface definitions with 
+       "__attribute__ ((java_interface))".
+
+2001-03-21  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * class.c (layout_class): Fixed push_super_field's second
+       argument. Fixes PR java/2333.
+       (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
+       too early to lay innerclasses out.
+
+2001-03-20  Tom Tromey  <tromey@redhat.com>
+
+       * lex.c (java_read_unicode): Only accept leading `u's.
+
+2001-03-20  Tom Tromey  <tromey@redhat.com>
+
+       * jcf-parse.c (read_class): Initialize `class'.
+
+2001-03-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
+
+       * jcf_parse.c (jcf_parse): Eliminate unused variable.
+
+2001-03-19  Mark Mitchell  <mark@codesourcery.com>
+
+       * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
+       (layout_class): Likewise.
+       (layout_class_method): Likewise.
+       (emit_register_classes): Likewise.
+       * decl.c (builtin_function): Likewise.
+       (give_name_to_locals): Likewise.
+
+2001-03-19  Per Bothner  <per@bothner.com>
+
+       * jcf-parse.c (load_inner_classes):  Check CLASS_LOADED_P
+       before trying to load an inner class.
+
+       Fixes to process to command-line .class files in two passes.
+       * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P):  New flags.
+       (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P):  Rename to ..
+       (CLASS_FROM_CURRENTLY_COMPILED_P):  ... because it is more general now.
+       * class.c (is_compiled_class):  Fix for renamed flag.
+       * parse.y (maybe_create_class_interface_decl):  Likewise.
+       * jcf-parse.c (yyparse):  Also set if compiling .class files.
+       * jcf-parse.c (read_class);  Read current_class.
+       (jcf_parse):  Make static.
+       (load_inner_classes):  New function, with code moved from jcf_parse,
+       because we need to inner classes after the command-line files are read.
+       (yyparse):  Set finput to NULL when it doesn't need to be closed.
+       Reduce use of main_jcf (basically only for archive) and
+       use finput instead of main_jcf->read_state.
+       Inline jcf_figure_file_type into yyparse.
+       Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
+       Defer load_inner_classes and parse_class_file to a second pass,
+       after we've correctly mapped command-line .clas fiels to classes.
+       (jcf_figure_file_type):  Removed.
+       * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE):  Removed flags.
+       (JCF_ZERO):  Also clear zipd field.
+       * zipfile.h:  Conditionalize on JCF_H insread of JCF_ZIP.
+
+2001-03-18  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
+
+       * jcf-parse.c (yyparse): Change ch from char * to char.
+
+2001-03-19  Per Bothner  <per@bothner.com>
+
+       * jvspec.c (lang_specific_driver):  Check for .zip and .jar files.
+       Add constructed filelist-file at end, following -xjava.  Thus any .o
+       and library files are not affected by the -xjava.  Also wrap
+       explicit @FILE with -xjava and -xnone.
+
+2001-03-19  Andrew Haley  <aph@cambridge.redhat.com>
+
+        * class.c (build_static_field_ref): Call make_decl_rtl() after
+        setting the DECL_EXTERNAL flag.
+
+2001-03-17  Per Bothner  <per@bothner.com>
+
+       * decl.c (clear_binding_level):  Fix initializer (broke 03-15).
+
+       * jcf-write.c (generate_bytecode_insns):  Handle emitting iinc
+       when result is is needed (target is STACK_TARGET).
+
+       * parse.h (JDEP_SOLV):  Removed.
+       * parse.y (register_incomplete_type):  Use JDEP_TO_RESOLVE instead.
+
+       * parse.y (incomplete_class_list): Removed.
+       (obtain_incomplete_type): Don't use or set incomplete_class_list.
+       It doesn't work if resolve_class changes the name of an array type
+       that is on the list and then someone else looks for the modified name.
+       Also, seems liable to break when compiling multiple source files at
+       once.  So the simplest is to just remove incomplete_class_list -
+       it is only a minor space win and it is not even clear it saves time.
+
+       * parse.y (resolve_class):  Remove unneeded promote_type.
+
+2001-03-15  Per Bothner  <per@bothner.com>
+
+       * java-tree.h (BLOCK_IS_IMPLICIT):  New flag.
+       * parse.h (BLOCK_EXPR_ORIGIN):  Removed macro.
+       * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
+       Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
+
+       * jcf-parse.c (yyparse):  Set/reset input_filename for source file.
+       * parse.y (java_expand_classes):  Likewise.
+
+       * parse.y (expand_start_java_method):  Was only called once and had a
+       misleading name, so inline in caller java_complete_expand_method.
+       (enter_a_block):  Likewise inline in enter_block and remove.
+
+       Remove junk from when gcc/java was created (by copying from C/C++).
+       * decl.c (keep_next_level_flag, keep_next_if_subblocks):  Remove.
+       (struct binding_level):  Remove fields keep, keep_if_subblocks,
+       more_cleanups_ok, have_cleanups (which have never been used).
+       (pushlevel, poplevel):  Remove related useless code.
+
+       * class.c (make_class_data):  The class_dtable_decl (i.e. the
+       vtable for Class) should be external, except when compiling Class.
+
+       * jvspec.c (lang_specific_driver):  Fix -C handling.
+       Check -save-temps to see if temp @FILE should be deleted.
+       Follow-up to/fix for February 16 patch.
+
+       * verify.c (verify_jvm_instructions):  Better error msgs for dup.
+       (type_stack_dup):  Remove no-longer neded error check.
+
+2001-03-15  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * mangle.c (mangle_record_type): Rename 'from_pointer' argument
+       to 'for_pointer'. If this type is for a pointer (argument) mangling,
+       don't surround the element with 'N..E' if the type name is 
+       unqualified.
+
+2001-03-14  Mark Mitchell  <mark@codesourcery.com>
+
+       * class.c (build_static_field_ref): Use COPY_DECL_RTL,
+       DECL_RTL_SET_P, etc.
+       (make_method_value): Likewise.
+       (get_dispatch_table): Likewise.
+
+       * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
+
+2001-03-07  Tom Tromey  <tromey@redhat.com>
+
+       * config-lang.in (lang_requires): Define.
+
+2001-03-07  Brad Lucier  <lucier@math.purdue.edu>
+
+       * typeck.c (convert): Check flag_unsafe_math_optimizations,
+       not flag_fast_math.
+
+2001-03-05  Per Bothner  <per@bothner.com>
+
+       Fix a problem where rest_of_decl_compilation applied to
+       class_dtable_decl causes problems because it was done too early,
+       before output file was opened.
+       * decl.c (init_decl_processing):  Remove init of class_dtable_decl.
+       * class.c (class_dtable_decl):  Add macro - element of class_roots.
+       (make_class_data):  Define class_dtable_decl.
+       * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl):  Removed.
+
+2001-03-01  Zack Weinberg  <zackw@stanford.edu>
+
+       * java/class.c, java/decl.c, java/java-tree.h: Replace all
+       uses of 'boolean' with 'bool'.
+
+2001-03-01  Zack Weinberg  <zackw@stanford.edu>
+
+       * lang-specs.h: Add zero initializer for cpp_spec field to all
+       array elements.
+
+2001-02-16  Per Bothner  <per@bothner.com>
+
+       Handle compiling multiple input files at once, and @FILE syntax.
+       * gcj.texi:  Updated documentation to match.
+       * java-tree.h (flag_filelist_file, init_src_parse):  New declarations.
+       * jcf-parse.c (parse_source_file):  Split into ...
+       (parse_source_file_1):  New function - and:
+       (parse_source_file_2):  New function.
+       (yyparse):  On -ffilelist-file, open and scan named file.
+       On first pass over files, only do parse_source_file_1.
+       A new second pass calls parse_source_file_2 for each file to compile.
+       (init_jcf_parse):  Call init_src_parse.
+       * jvspec.c (INDIRECT_FILE_ARG):  New flag.
+       (lang_specific_driver):  Support @FILELIST-FILE syntax, as well
+       as multiple input file combined in one compilation.
+       * lang-options.h:  Add -ffilelist-file
+       * lang.c (flag_filelist_file):  New flag variable.
+       (lang_f_options):  Handle -ffilelist-file.
+       * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
+       * parse.h (struct parse_ctxt):  Remove fields incomplete_class and
+       gclass_list - use global fields of src_parse_roots instead.
+       * parse.y (src_parse_roots):  New array.
+       (incomplete_class_list, gclass_list):  New macros.
+       (push_parser_context, java_pop_parser_context,
+       java_parser_context_resume):  Don't fiddle with deleted fields.
+       (various):  Use incomplete_class gclass_list and global macros
+       instead of parse_ctxt fields - the lists are global.
+       (init_src_parse):  New function.
+
+Fri Feb 23 15:28:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
+
+2001-02-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * parse.y (check_inner_class_access): Moved declaration of local
+       `enclosing_decl_type' to the right location.
+
+2001-02-19  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * parse.y (parser_check_super_interface): Don't call 
+       check_pkg_class_access for an inner interface.
+       (parser_check_super): Don't call check_pkg_class_access for inner 
+       class.
+       (do_resolve_class): Simplify enclosing type loop. Don't call 
+       check_pkg_class_access if CL and DECL are not set.
+       (find_in_imports_on_demand): Set DECL if class_type needed to be
+       loaded. Don't call check_pkg_class_access for an inner class.
+       (check_inner_class_access): Rewritten to implement member access
+       rules as per spec 6.6.1.
+       (check_pkg_class_access): Handle the empty package correctly.
+       (in_same_package): New function. Determine if two classes are in the
+       same package.
+
+2001-02-18  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * typeck.c (build_java_array_type): Don't try to poke a public `clone'
+       method into array types.
+       * parse.y (patch_method_invocation): Bypass access check on clone call
+       to array instance.
+       
+2001-02-15  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * expr.c (build_instanceof): Check for arrays when trying fold to
+       false.
+
+2001-02-15  Jim Meyering  <meyering@lucent.com>
+
+       * Make-lang.in (java.install-common): Depend on `installdirs'.
+       (java.install-info): Likewise.
+
+2001-02-15  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
+
+2001-02-14  Tom Tromey  <tromey@redhat.com>
+            Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       Fix for PR java/1261.
+       * typeck.c (build_java_array_type): Add public `clone' method to
+       arrays.
+       * parse.y (resolve_qualified_expression_name): Use current_class
+       when checking for inaccessibility.
+       (patch_method_invocation): Fixed error message when accessibility
+       denied.  Added `from_super' argument.
+
+2001-02-14  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * parse.y (resolve_class): Don't build a fake decl. Use the one
+       already built.
+       * typeck.c (build_java_array_type): Build and assign decl to array
+       type.
+
+2001-02-14  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * parse.y (not_accessible_p): Changed leading comment. Added extra
+       `where' argument. Use it to enforce protected access rules.
+       (resolve_qualified_expression_name): Added extra argument to
+       not_accessible_p.
+       (patch_method_invocation): Use argument `primary' to provide
+       not_accessible_p with an extra argument.
+       (lookup_method_invoke): Added extra argument to not_accessible_p.
+       (search_applicable_method_list): Likewise.
+
+2001-02-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * parse.y (resolve_qualified_expression_name): Try to resolve as
+       an inner class access only if `decl' is a TYPE_DECL.
+
+2001-02-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * decl.c (classdollar_identifier_node): Initialize.
+       * java-tree.h (enum java_tree_index): New entry 
+       `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
+       (classdollar_identifier_node): New macro.
+       (ID_CLASSDOLLAR_P): Likewise.
+       * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
+       (build_dot_class_method_invocation): Likewise.
+       (find_applicable_accessible_methods_list): `class$' can't be
+       inherited.
+
+2001-02-09  Raja R Harinath  <harinath@cs.umn.edu>
+
+       * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
+
+2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
+       * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
+       gone.
+
+2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
+       outside of the `__U' sequence too.
+       (unicode_mangling_length): Count `_' or `U' outside of the `__U'
+       sequence too.
+
+2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
+
+       * jvgenmain.c (error): Reversed 2001-02-01 deletion.
+
+2001-02-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
+       (JVGENMAIN_OBJS): Likewise.
+       * java-tree.h (append_gpp_mangled_name): New prototype. 
+       * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
+       Removed cast calling `gcc_add_root.'
+       * jvgenmain.c (mangle_obstack): New global, initialized.
+       (main): Use it.
+       (do_mangle_class): Constify local `ptr.'
+       Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
+       append_gpp_mangle_name and update `count' if necessary.
+       Use `mangle_obstack.'
+       * mangle.c (append_unicode_mangled_name): Removed.
+       (append_gpp_mangled_name): Likewise.
+       (unicode_mangling_length): Likewise.
+       (mangle_member_name): Return type set to `void.'
+       (mangle_field_decl): Don't append `U' in escaped names.
+       (mangle_method_decl): Likewise.
+       (mangle_member_name): Just use `append_gpp_mangled_name.'
+       * mangle_name.c: New file.
+
+2001-02-07  Per Bothner  <per@bothner.com>
+
+       * check-init.c (check_init):  Fix TRY_FINALLY_EXPR logic.
+
+       * check-init.c (check_init):  Don't call done_alternative after
+       processing loop code, as a LOOP_EXPR never terminates normally.
+
+2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
+
+2001-02-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
+       DECLs.
+
+2001-02-06  Tom Tromey  <tromey@redhat.com>
+
+       * lex.c (java_new_lexer): Longer error message.
+
+2001-02-05  Jeff Sturm  <jeff.sturm@commerceone.com>
+           Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * typeck.c (build_prim_array_type): Added leading comment.
+       (build_java_array_type): Moved locals out of
+       block. Always create the `data' field, fixed alignment to match
+       C++.
+
+2001-02-04  Tom Tromey  <tromey@redhat.com>
+
+       * expr.c (java_lang_expand_expr): Don't bother recomputing
+       `length'.  Use rest_of_decl_compilation, not make_decl_rtl.
+       Fixes PR java/1866.
+
+2001-02-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (process_imports): Save the original name of the import
+       for better error report.
+
+2001-02-04  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
+       of macros used when compiling jvspec.c.
+       * jvspec.c (lang_specific_driver): Link with the shared
+       libgcc by default.
+
+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.
+       (error): Remove unused function.
+       (main): Don't use "__attribute__ alias" on generated class symbol.
+
+2001-01-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
+       argument.
+       * parse.y (finish_method_declaration): Code accounting for WFLed
+       method DECL_NAMEs deleted.
+       (check_abstract_method_definitions): Likewise.
+       (resolve_type_during_patch): Layout resolved type.
+       * typeck.c (lookup_do): Removed unused local.
+
+2001-01-30  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
+       * decl.c (init_decl_processing): Use integer_minus_one_node, not
+       integer_negative_one_node.
+       * expr.c (build_java_binop): Likewise.
+
+2001-01-24  Jeff Sturm  <jeff.sturm@commerceone.com>
+
+       * zextract.c (read_zip_archive): Read file_offset before writing
+       zipd and consequently clobbering the header contents.
+
+2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Make-lang.in: Remove all dependencies on defaults.h.
+       * decl.c: Don't include defaults.h.
+       * expr.c: Likewise.
+       * parse.y: Likewise.
+
+2001-01-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * ChangeLog (2001-01-21): Fixed typo.
+       * class.c (layout_class_method): Code accounting for WFLed
+       method DECL_NAMEs deleted.
+       * constant.c (find_methodref_index): Likewise.
+       * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
+       * java-tree.h (DECL_FUNCTION_WFL): New macro.
+       (struct lang_decl): New field `wfl'.
+       (java_get_real_method_name): Prototype deleted.
+       * mangle.c (mangle_method_decl): Code accounting for WFLed
+       method DECL_NAMEs deleted.
+       * parse.h (GET_METHOD_NAME): Macro deleted.
+       * parse.y (reset_method_name): Deleted.
+       (method_header): Set DECL_FUNCTION_WFL.
+       (check_abstract_method_header): Code accounting for WFLed method
+       DECL_NAMEs deleted.
+       (java_get_real_method_name): Deleted.
+       (check_method_redefinition): Code accounting for WFLed method
+       DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
+       (java_check_regular_methods): Likewise.
+       (java_check_abstract_methods): Likewise.
+       (java_expand_classes): Don't call `reset_method_name.'
+       (search_applicable_method_list): Use DECL_NAMEs instead of
+       GET_METHOD_NAME.
+       * typeck.c (lookup_do): Code accounting for WFLed method
+       DECL_NAMEs deleted.
+
+2001-01-25  Richard Earnshaw  <rearnsha@arm.com>
+
+       * lex.c (java_read_char): Check for EOF from getc first.
+
+2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c (layout_class): Don't lay the superclass out if it's
+       already being laid out.
+       * jcf-parse.c (handle_innerclass_attribute): New function.
+       (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
+       handle_innerclasses_attribute.
+       (jcf_parse): Don't load an innerclasses if it's already being
+       laid out.
+       * jcf-write.c (append_innerclass_attribute_entry): Static
+       `anonymous_name' and its initialization deleted. `ocii' and `ini'
+       to be zero for anonymous classes.
+
+2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
+       necessary.
+       * jcf-parse.c (set_source_filename): Use
+       MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
+
+2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
+       gets a unique asm name.
+
+2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
+       (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
+       if necessary.
+       (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
+       * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
+       * parse.y (lookup_package_type_and_set_next): Deleted.
+       (resolve_package): Removed unnecessary code.
+       (find_applicable_accessible_methods_list): `finit$' can't be
+       inherited.
+       * verify.c (pop_argument_types): Added missing prototype.
+
+2001-01-23  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * config-lang.in: Disable java by default.
+
+2001-01-23  Tom Tromey  <tromey@redhat.com>
+
+       * gcj.texi (Copying): New node.
+       Added copyright information.
+
+2001-01-21  Per Bothner  <per@bothner.com>
+
+       Various fixes to allow compiling a compressed .jar/.zip archive.
+       * zipfile.h (struct ZipFileCache):  Replace by struct ZipFile.
+       (struct ZipFile):  Add fields name and next (from  ZipFileCache).
+       (struct ZipDirectory):  New field zipf points to owning ZipFile.
+       * jcf.h (struct ZipDirectory):  Add forward declaration.
+       (struct JCF):   Declare zipd field to have type struct ZipDirectory.
+       Remove seen_in_zip and zip_offset fields.
+       (JCF_SEEN_IN_ZIP):  New macro.
+       * zextract.c (read_zip_archive):  Set ZipDirectory's zipf field.
+       * jcf-io.c:  Change all ZipFileCache to ZipFile.
+       (read_zip_member):  New function.
+       (open_in_zip):  Call read_zip_member.
+       * jcf-parse.c (find_in_current_zip):  Remove function.
+       (read_class):  Merge in find_in_current_zip functionality.
+       Call read_zip_member if needed.
+       (parse_zip_file_entries):  Use read_zip_member.
+       (process_zip_dir):  Update for removed and added JCF fields.
+       (jcf_figure_file_type):  Re-use, don't copy initial ZipFile struct.
+
+2001-01-21  Per Bothner  <per@bothner.com>
+
+       Minor optimization of static ggc roots.
+       * jcf-parse.c (parse_roots):  New static field.
+       (current_field, current_method, current_file_list):  Replace by macros
+       naming fields of parse_roots.
+       (init_jcf_parse):  Combine 3 ggc_add_tree_root calls to 1.
+       * class.c (class_roots):  New static field.
+       (registered_class, fields_ident, info_ident, class_list):
+       New macros naming fields of parse_roots.
+       (build_static_field_ref):  Don't register roots here.
+       (layout_class):  Static field list replaced by macro class_list.
+       (init_class_processing):  Call ggc_add_tree_root for 4 roots.
+       Initialize fields_ident and info_ident here.
+
+2001-01-21  Per Bothner  <per@bothner.com>
+
+       * jcf-parse.c (ggc_mark_jcf):  New function.
+       (init_jcf_parse):  Register current_jcf as ggc root.
+
+2001-01-21  Per Bothner  <per@bothner.com>
+
+       * lang.c (put_decl_node):  Print method's name.
+
+2001-01-21  Per Bothner  <per@bothner.com>
+
+       * verify.c (VERIFICATION_ERROR_WITH_INDEX):  New macro.
+       (verify_jvm_instructions):  Use it, for better error messages on loads.
+
+2001-01-21  Per Bothner  <per@bothner.com>
+
+       * verify.c (merge_type_state):  Still may have to merge even if
+       LABEL_VERIFIED (label).
+
+2001-01-21  Per Bothner  <per@bothner.com>
+
+       * parse.y (method_header):  Don't set the DECL_NAME of a FUNCTION_DECL
+       to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
+
+2001-01-19  Per Bothner  <per@bothner.com>
+
+       * expr.c (pop_type_0):  Only return object_ptr_type_node on mismatch
+       if expeting an interface type.  Refines Tom's change of 2000-09-12.
+
 2001-01-18  Per Bothner  <per@bothner.com>
 
        * gcj.texi (Input Options): Mention .java files.