OSDN Git Service

2000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
[pf3gnuchains/gcc-fork.git] / gcc / java / ChangeLog
index 3e41ae5..a6940b4 100644 (file)
+2000-07-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (simple_name:): Fixed typo in error message.
+
+2000-07-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
+       or its first operand can be error marks.
+
+2000-07-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
+       * parse.y (method_header): Likewise.
+
+2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (find_as_inner_class): Handle the case where the
+       enclosing context of an innerclass has been loaded as bytecode.
+
+2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+        * parse.y (simple_name:): Reject `$' in type names.
+       (resolve_type_during_patch): Use `type' as a second
+       argument to resolve_no_layout. Fixes gcj/257.
+
+2000-07-18  Jeff Sturm  <jeff.sturm@appnet.com>
+
+       * lang-specs.h: Added %(jc1) to java compiler options.
+
+2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * .cvsignore: New file.
+
+2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (not_accessible_p): Access granted to innerclasses
+       (indirectly) extending the reference type. Fixes gcj/249.
+
+2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (patch_method_invocation): Fixed comment.
+       (maybe_use_access_method): Build this$<n>s to the context of the
+       target method, or a type that extends it. Fixes gcj/242.
+
+2000-07-13  Mark Mitchell  <mark@codesourcery.com>
+
+       * parse.c: Remove.
+
+2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (fold_constant_for_init): Avoid bullish conversion.
+
+2000-07-13  Tom Tromey  <tromey@cygnus.com>
+
+       * lang-specs.h: Added %{I*}.
+
+2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * lang-specs.h: Use the new named specs.  Remove unnecessary braces.
+
+2000-07-12  Mark Mitchell  <mark@codesourcery.com>
+
+       * parse-scan.c: Remove.
+
+2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c (set_super_info): Handled protected inner classes.
+       (common_enclosing_context_p): Bail early if arguments aren't both
+       inner classes.
+       (get_access_flags_from_decl): Handle private and protected inner
+       classes.
+       * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
+       (CLASS_PROTECTED): Likewise.
+       (struct lang_type): New bitfield `poic.'
+       * parse.y (jdep_resolve_class): Call check_inner_class_access on
+       inner classes only.
+       (check_inner_class_access): Renamed arguments, added
+       comments. Handles protected inner classes (fixes gcj/225)
+       (not_accessible_p): Fixed comments. Avoid handling inner classes.
+
+2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (resolve_qualified_expression_name): Verify qualified
+       access to `this.' Fixes gcj/239.
+
+2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-write.c (generate_classfile): Don't install ConstantValue
+       for null pointers.
+
+2000-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (resolve_qualified_expression_name): Handle inner class
+       access. Fixes gcj/256.
+
+2000-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-write.c (generate_classfile): Properly install the
+       ConstantValue attribute and the initial value constant pool index
+       on string constants.
+       * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
+       class files.
+
+2000-07-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
+       construct.
+       * parse.y (find_as_inner_class): Fixed typo.
+       (do_resolve_class): Explore enclosing contexts when searching for
+       innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
+       (check_inner_class_access): Check `decl' which can be null in case
+       of previous errors.
+
+2000-07-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * java-tree.h (java_debug_context): Declared `extern.'
+       (safe_layout_class): Likewise.
+       * parse.y (resolve_field_access): Field must be `static' in order
+       to be replaced by its initial value. Added comments.
+       (find_applicable_accessible_methods_list): Fixed typo.
+       (find_most_specific_methods_list): Methods found in innerclasses
+       take over methods founds in the enclosing contexts.
+       (java_complete_tree): Loosen restrictions on the type of DECLs
+       that can be replaced by their initialization values.
+       (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p.'
+
+2000-07-05  Tom Tromey  <tromey@cygnus.com>
+
+       * Make-lang.in (PARSE_DIR): New macro.
+       (PARSE_RELDIR): Likewise.
+       (PARSE_C): Likewise.
+       (PARSE_SCAN_C): Likewise.
+       ($(PARSE_C)): New target.
+       ($(PARSE_SCAN_C)): Likewise.
+       (SET_BISON): New macro.
+       (BISONFLAGS): Likewise.
+       (JAVABISONFLAGS): Likewise.
+
+2000-07-02  Bryce McKinlay  <bryce@albatross.co.nz>
+
+        * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
+        argument on the first pass for CNI as well as JNI.
+        (print_method_info): Set up method name on the first pass only.
+       
+2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (parser_qualified_classname): Removed parameter
+       `is_static'.
+       (create_interface): Removed first passed parameter to
+       parser_qualified_classname.
+       (create_class): Likewise. Don't install alias on static
+       innerclasses. Fixes gcj/275.
+
+2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (maybe_generate_pre_expand_clinit): Don't build a
+       debugable statement with empty_stmt_node. Fixes gcj/272
+
+2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * expr.c (build_instanceof): Layout type after it's loaded. Fixes
+       gcj/271.
+
+2000-06-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-write.c (push_long_const): Appropriately cast short negative
+       constant to jword.
+
+2000-06-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (verify_constructor_super): Use loop variable
+       `m_arg_type' initialized with `mdecl_arg_type'.
+
+2000-06-29  Tom Tromey  <tromey@cygnus.com>
+
+       * parse.y (resolve_field_access): Handle case where `type_found'
+       is NULL.
+
+2000-06-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * expr.c (lookup_field): The same field can be found through two
+       different interface. Don't declare it ambiguous in that case.
+
+2000-06-27  Tom Tromey  <tromey@cygnus.com>
+
+       * lex.c (java_lineterminator): Don't recognize \r after \n.  If \r
+       follows \r, then unget it at a lower level.
+
+2000-06-26  Tom Tromey  <tromey@cygnus.com>
+
+       * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
+       java_complete_tree.
+
+2000-06-25  Tom Tromey  <tromey@cygnus.com>
+
+       * parse.y (for_statement): Wrap expression in a WFL if it is a
+       constant.  For PR gcj/268.
+
+2000-06-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (do_resolve_class): Minor optimiztion in the package
+       list search. Removed unecessary test and return statement.
+       (valid_ref_assignconv_cast_p): Order of arguments to
+       enclosing_context_p fixed.
+
+2000-06-24  Tom Tromey  <tromey@cygnus.com>
+
+       * expr.c (lookup_field): Print error and return error_mark_node if
+       field reference is ambiguous.
+
+       * parse.y (check_abstract_method_definitions): Also check if
+       `other_method' is abstract.
+
+2000-06-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
+       classes.
+       * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
+       (struct lang_type): New field `pic.'
+       (CLASS_PRIVATE): New macro.
+       * parse.y (check_inner_class_access): New function.
+       (jdep_resolve_class): Call it.
+
+2000-06-23  Tom Tromey  <tromey@cygnus.com>
+
+       * parse.y (patch_incomplete_class_ref): Initialize the returned
+       class.  For PR gcj/260.
+
+2000-06-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
+
+2000-06-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
+       Java specific checks.
+       * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
+       screened by DECL_P.
+       * java-tree.def (CASE_EXPR): Marked 'e'.
+       (DEFAULT_EXPR): Likewise.
+       * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
+       screened by DECL_P.
+       * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
+       Java specific checks.
+       (generate_bytecode_insns): Test try_block for BLOCK before using
+       BLOCK_EXPR_BODY.
+       * parse.y (build_wfl_wrap): Added `location' argument. Set
+       EXPR_WFL_LINECOL accordingly.
+       (dim_expr:): Wrap constants with WFLs.
+       (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
+       (resolve_package): Check for `stmt' not being a BLOCK before
+       building a debuggable statement with it.
+       (make_qualified_primary): Added extra parameter to build_wfl_wrap
+       invocation.
+       (resolve_field_access): Make sure `decl' is a DECL before treating
+       it as such.
+       (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
+       IDENTIFIER_NODE before treating it as such.
+       (patch_new_array_init): Make sure `elt' is a TREE_LIST before
+       treating it as such.
+       (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
+       to be applied only on non array types.
+
+2000-06-16  Per Bothner  <per@bothner.com>
+
+       * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN):  Don't
+       define in terms of DECL_RESULT, as that fails when --enable-checking.
+       
+2000-06-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * jcf-write.c (CHECK_PUT): Add static prototype.  Make pointer
+       types the same in comparison.
+       (CHECK_OP): Add static prototype.
+
+2000-06-13  Jakub Jelinek  <jakub@redhat.com>
+
+       * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
+       * parse.y (java_complete_class): Set DECL_USER_ALIGN.
+       * parse.c: Rebuilt.
+
+2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * decl.c (create_primitive_vtable): Prototype.
+
+       * jcf-write.c (generate_bytecode_insns): Initialize variable
+       `saved_context'.
+
+       * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
+
+2000-06-09  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * parse.y (find_applicable_accessible_methods_list): Use a hashtable
+       to track searched classes, and do not search the same class more than
+       once. Call find_applicable_accessible_methods_list on immediate
+       superclass, instead of search_applicable_method_list on all ancestors.
+       Fix for PR gcj/238.
+
+2000-06-09  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * parse.y (register_fields): Permit static fields in inner classes
+       if they are final. Fix for PR gcj/255.
+
+2000-06-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
+       * parse.y (find_in_imports): Returned type changed to void,
+       leading comment fixed.
+       (register_package): New function.
+       (qualify_and_find): Likewise.
+       (package_declaration:): Use `register_package'.
+       (single_type_import_declaration:): Removed local variable
+       `node'. Added missing `;' for consistency.
+       (type_import_on_demand_declaration:): Use `chainon' to link new
+       entries.
+       (lookup_field_wrapper): Lookup local variables defined in outer
+       contexts first.
+       (java_complete_class): Don't reverse the list of imported on demand.
+       (do_resolve_class): Reorganized. Removed local variable
+       `original_name'. Call `qualify_and_find' with the current package
+       name, invoke `find_in_imports_on_demand' right after. Call
+       `qualify_and_find' with the packages we've seen so far. Fixed
+       operations numbering in comments.
+       (java_expand_class): Don't reverse `package_list'.
+       (find_most_specific_methods_list): New local variables `abstract'
+       and `candidates'. Use them to pick the right method.
+
+Tue Jun  6 11:39:05 2000  Tom Tromey  <tromey@ferrule.cygnus.com>
+
+       * parse.y (check_modifiers_consistency): Don't subtract out
+       `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
+
+2000-06-04  Philipp Thomas  <pthomas@suse.de>
+
+       * Makefile.in (INTLLIBS): New.
+       (LIBS): Add above.
+       (DEPLIBS): Ditto.
+
+Fri Jun  2 16:48:55 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c (get_dispatch_table): Build the vtable dummy entry list
+       element with a null purpose. Fixed leading comment.
+       (build_dtable_decl): Build an accurate dtable type when appropriate
+       and use it.
+
+2000-06-02  Richard Henderson  <rth@cygnus.com>
+
+       * lang.c (lang_get_alias_set): New.
+
+2000-05-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
+       before using it as the accessed field.
+
+2000-05-31  Tom Tromey  <tromey@cygnus.com>
+
+       * java-tree.h (boolean_array_vtable, byte_array_vtable,
+       char_array_vtable, short_array_vtable, int_array_vtable,
+       long_array_vtable, float_array_vtable, double_array_vtable):
+       Declare.
+       * expr.c (get_primitive_array_vtable): New function.
+       (create_primitive_vtable): New function.
+       (java_lang_expand_expr): Enable code to statically generate
+       arrays.
+       * decl.c (init_decl_processing): Create primitive vtables.
+       (boolean_array_vtable, byte_array_vtable, char_array_vtable,
+       short_array_vtable, int_array_vtable, long_array_vtable,
+       float_array_vtable, double_array_vtable): Define.
+
+2000-05-26  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * java/parse.y (find_applicable_accessible_methods_list):
+       Don't add an uninitialized value to the list.
+
+2000-05-25  Tom Tromey  <tromey@cygnus.com>
+
+       * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
+       when trying to see if field's class should be initialized.  Always
+       initialize field's declaring class, not qualified class.
+       For PR gcj/162.
+
+       * parse.y (array_constructor_check_entry): Pass `wfl_value', not
+       `wfl_operator', to maybe_build_primttype_type_ref.
+       Fixes PR gcj/235.
+
+2000-05-23  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * parse.y (patch_method_invocation): Don't try to lookup methods
+       in primitive types.
+
+2000-05-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (resolve_field_access): Call the appropriate <clinit>
+       before accessing the length of a static array. Craft a decl for
+       the field while its time. Fixes PR gcj/129.
+2000-05-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (resolve_package): Correctly set `*next' (was off by
+       one.)
+       (resolve_qualified_expression_name): Fixed comment.
+
+Thu Apr 27 17:47:34 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-parse.c (jcf_parse_source): Reset current_class and 
+       current_function_decl to NULL before parsing a new file.
+
+Thu Apr 27 17:25:33 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (block_end:): If the collected block doesn't feature a
+       statement, insert an empty statement.
+
+2000-04-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+        * parse.y (maybe_yank_clinit): New function.
+        (maybe_generate_pre_expand_clinit): Always link <clinit> at the
+        end of the list of methods belonging to a class.
+        (java_complete_expand_method): Check whether <clinit> is really
+        necessary and expand it accordingly.
+
+2000-04-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
+       processed by the method's switch statement.
+
+2000-05-19  Tom Tromey  <tromey@cygnus.com>
+
+       * java-tree.h: Added init state enum.
+       * decl.c (emit_init_test_initialization): Initialize class
+       initialization check variable by looking at class' state.
+
+2000-05-19  Tom Tromey  <tromey@cygnus.com>
+
+       * java-tree.h (build_instanceof): Declare.
+       (build_get_class): Declare.
+       * parse.y (patch_binop): Use build_instanceof.
+       * expr.c (build_instanceof): New function.  If class is final,
+       don't make a function call.
+       (expand_java_INSTANCEOF): Use it.
+       (build_get_class): New function.
+
+2000-05-18  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * jcf-write.c (generate_classfile): Scan the source_file for
+       slashes with the right pointer variable.
+
+Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * lang.c (lang_decode_option): Update -Wunused flags by calling
+       set_Wunused.
+       * decl.c (poplevel): Replace warn_unused with warn_unused_label.
+
+2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * check_init.c (check_init): Constify local char *.
+       * class.c (push_class): Constify local char *.
+       * java_tree.h: Update prototypes.
+       * jcf-io.c (open_class): Constify filename parameter and
+       return value.
+       (find_class): Remove redundant string copy.  Cast return from
+       open_class.
+       * jcf-parse.c (read_class, parse_class_file, yyparse):
+       Constify local char *.
+       * jcf-write.c (generate_bytecode_insns, generate_classfile):
+       Constify local char *.
+       * jcf.h (JCF): Constify filename and classname.
+       (JCF_FINISH): Cast args to FREE to char * when appropriate.
+       * lang.c (init_parse): Constify parameter and return value.
+       * lex.c (java_get_line_col): Constify filename parameter.
+       * parse.h: Constify parser_ctxt.filename.  Update prototypes.
+       * parse.y (java_parser_context_suspend,
+       issue_warning_error_from_context, safe_layout_class): Constify
+       local char *.
+       * parse.c: Regenerate.
+
+2000-05-08  Tom Tromey  <tromey@cygnus.com>
+
+       * expr.c (build_jni_stub): Cache the result of
+       _Jv_LookupJNIMethod.
+
+2000-05-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * decl.c (predef_filenames_size): Now 7.
+       (predef_filenames): New seventh entry.
+
+2000-05-04  Tom Tromey  <tromey@cygnus.com>
+
+       * boehm.c (mark_reference_fields): Don't mark RawData fields.
+       Keep track of when we've seen a reference field after a
+       non-reference field.
+       (get_boehm_type_descriptor): Handle case where we see
+       non-reference fields but no trailing reference field.
+       * decl.c (rawdata_ptr_type_node): Define.
+       (init_decl_processing): Initialize rawdata_ptr_type_node.
+       * java-tree.h (rawdata_ptr_type_node): Declare.
+
+2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
+       specifiers in calls to fprintf.
+
+2000-05-03  Andrew Haley  <aph@cygnus.com>
+
+       * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
+
+       * javaop.h (WORD_TO_INT): New function.
+       (IMMEDIATE_s4): Use WORD_TO_INT.
+       * jcf.h (JPOOL_INT): Ditto.
+
+       * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
+       separator.
+
+2000-04-19  Tom Tromey  <tromey@cygnus.com>
+
+       * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
+       on native function.
+       * jcf-parse.c (parse_class_file): Call build_jni_stub for native
+       JNI methods.
+       * expr.c (build_jni_stub): New function.
+       * lang-specs.h: -fjni and -femit-class-file are incompatible.
+       * parse.c: Rebuilt.
+       * parse.y (java_complete_expand_methods): Expand a native method
+       and call build_jni_stub if -fjni given.
+       * lang-options.h: Document -fjni.
+       * lang.c (flag_jni): New global.
+       (lang_f_options): Added `jni' entry.
+       * java-tree.h (soft_lookupjnimethod_node,
+       soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
+       Declare.
+       (flag_jni): Declare.
+       (build_jni_stub): Declare.
+       (struct lang_decl): Added `native' flag.
+       (METHOD_NATIVE): Redefined to use `native' field of lang specific
+       structure.
+       * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
+       soft_jnipopsystemframe_node): New globals.
+       (init_decl_processing): Set them.  _Jv_InitClass only takes one
+       argument.
+
+       * java-tree.def: Put into `C' mode.
+
+2000-04-27  Tom Tromey  <tromey@cygnus.com>
+
+       Fix for PR gcj/2:
+       * expr.c (expand_invoke): Generate check to see if object pointer
+       is null in nonvirtual invocation case.
+       * java-tree.h (soft_nullpointer_node): Declare.
+       * decl.c (soft_nullpointer_node): New global.
+       (init_decl_processing): Initialize soft_nullpointer_node.
+       * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
+       or `private' methods.
+       (patch_invoke): Handle INVOKE_NONVIRTUAL case.
+
+Wed Apr 26 14:29:33 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * decl.c (complete_start_java_method): Don't call _Jv_InitClass
+       from <clinit>
+
+2000-04-26  Tom Tromey  <tromey@cygnus.com>
+
+       * zextract.c (find_zip_file_start): New function.
+       (read_zip_archive): Use it.
+
+2000-04-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
+
+2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c (common_enclosing_context_p): New function.
+       * java-tree.h (common_enclosing_context_p): Added prototype.
+       * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
+       classes sharing an outer context with the current instance.
+       * parse.y (build_access_to_thisn): Fixed leading comment.
+       (verify_constructor_super): New local `supper_inner'. Skip
+       enclosing context argument in the case of inner class constructors.
+       (patch_method_invocation): Insert proper context as second
+       parameter to pure inner class constructor super invocations.
+
+Mon Apr 24 14:59:36 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (end_class_declaration): Reset the interface number
+       counter.
+
+2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+        * parse.y (source_start_java_method): Deleted unecessary code.
+        (patch_method_invocation): Fixed comment.
+
+2000-04-24  Robert Lipe <robertlipe@usa.net>
+
+       * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
+
+2000-04-23  Tom Tromey  <tromey@cygnus.com>
+
+       * boehm.c (mark_reference_fields): Use int_byte_position.
+
+2000-04-22  Tom Tromey  <tromey@cygnus.com>
+
+       * boehm.c (mark_reference_fields): Only call byte_position on
+       non-static fields.
+
+2000-04-22  Tom Tromey  <tromey@cygnus.com>
+
+       * boehm.c (mark_reference_fields): Added `last_view_index'
+       argument.  Use DECL_FIELD_OFFSET to determine field's offset.
+
+Thu Apr 20 17:41:28 2000  Mo DeJong  <mdejong@cygnus.com>
+
+       * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
+       * parse.y (check_class_interface_creation): Fixed comments. Select
+       permitted modifiers for (inner) interfaces. Changed error message
+       to report rejected modifiers used with local classes.
+
+2000-04-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
+       of directly inherited type considered in scope.
+       * parse.y (do_resolve_class): Search inherited classes for inner
+       classes.
+
+2000-04-20  Tom Tromey  <tromey@cygnus.com>
+
+       * parse.y (not_accessible_p): Use member's class, not current
+       class, when doing inheritance check for protected reference.
+       Fixes PR gcj/124.
+
+Thu Apr 20 18:20:58 2000  Jason Schroeder  <shrode@subnature.com>
+
+       * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
+
+2000-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (lookup_field_wrapper): Search for final local aliases.
+       (resolve_expression_name): Let lookup_field_wrapper search for
+       final local aliases. Force the value of `name' if one is found.
+       (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
+       an expression name. Fixed comments.
+
+2000-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (yyerror): `msg' can be null, don't use it in that case.
+
+2000-04-19  Tom Tromey  <tromey@cygnus.com>
+
+       * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
+
+2000-04-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
+
+2000-04-18  Tom Tromey  <tromey@cygnus.com>
+
+       PR gcj/211:
+       * gjavah.c (utf8_cmp): Changed return value.
+       (cxx_keyword_subst): Handle all C++ keywords.  Allocate new return
+       result.
+       (cxx_keywords): New global.
+       (get_field_name): Handle new result of cxx_keyword_subst.
+       (print_method_info): Likewise.
+
+2000-04-17  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names 
+       with a newline, for CNI.
+       (print_stub_or_jni): Print a space or newline before method name for 
+       CNI as well as JNI.
+       (print_cxx_classname): Don't write leading "::" in CNI stub method.
+       (process_file): Include gcj/cni.h if generating CNI stubs.      
+
+2000-04-16  Tom Tromey  <tromey@cygnus.com>
+
+       * gjavah.c (decompile_method): Use print_field_name.
+       Fixes PR gcj/205.
+
+2000-04-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (java_expand_classes): Reverse the package list once.
+       (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
+       reduction.
+       (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
+       the `==' and `!=' operators.
+
+2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-write.c (generate_bytecode_insns): At invokation time,
+       always relate an interface method to the type of its selector.
+       
+2000-04-05  Tom Tromey  <tromey@cygnus.com>
+
+       Fix for PR gcj/2:
+       * expr.c (expand_invoke): Generate check to see if object pointer
+       is null in nonvirtual invocation case.
+       * java-tree.h (soft_nullpointer_node): Declare.
+       * decl.c (soft_nullpointer_node): New global.
+       (init_decl_processing): Initialize soft_nullpointer_node.
+       * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
+       or `private' methods.
+       (patch_invoke): Handle INVOKE_NONVIRTUAL case.
+
+2000-04-05  Tom Tromey  <tromey@cygnus.com>
+
+       Fix for PR gcj/140:
+       * parse.y (check_final_assignment): Recognize assignments to the
+       `length' field of an array when generating class files.
+
+2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c (decl_hash): Prototype removed.
+       (decl_compare): Likewise.
+
+2000-04-05  Tom Tromey  <tromey@cygnus.com>
+
+       * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
+       * parse.y (check_modifiers_consistency): Check for final/volatile
+       clash.  Fixes PR gcj/164.
+
+2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
+       made global.
+       (java_hash_compare_tree_node): Renamed from `decl_compare, made
+       global.
+       (add_method_1): Use `java_hash_hash_tree_node' and
+       `java_hash_compare_tree_node'.
+       * java-tree.h: (java_hash_hash_tree_node): Prototyped.
+       (java_hash_compare_tree_node): Likewise.
+       * parse.y (find_applicable_accessible_methods_list): Create,
+       delete and use a hash table to remember already searched interfaces.
+
+2000-04-03  Matt Welsh  <mdw@cs.berkeley.edu>
+
+       * jcf-depend.c (add_entry): Fixed bug where list was always replaced
+       with latest entry.
+
+2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * boehm.c (mark_reference_fields, set_bit): Prototype.
+       (set_bit): Un-ANSI-fy definition.
+
+       * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
+       Prototype.
+
+       * decl.c (emit_init_test_initialization): Likewise.
+
+       * gjavah.c (jni_print_char): Likewise.
+
+       * parse.y (create_new_parser_context): Likewise.
+
+Thu Mar 30 15:26:56 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
+       patch missing hunk. Fixed indentation.
+
+2000-03-30  Tom Tromey  <tromey@cygnus.com>
+
+       * gjavah.c (D_NAN_MASK): Only define as word-reversed when
+       HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
+
+2000-03-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
+       when negative *before* using it as an array index.
+       * ChangeLog: Fixed typo.
+
+2000-03-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
+       to 0 when it reaches -1.
+
+2000-03-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-parse.c (get_constant): Properly cast `num' during the
+       invocation of `add_double'.
+       * jcf-write.c (push_long_const): Properly cast `lo' before
+       comparing it to short bounds.
+       * parse-scan.y (interface_declaration:): Rule re-arrange so that
+       `interface_body:' is reduced after the current interface is
+       pushed.
+
+2000-03-26  Tom Tromey  <tromey@cygnus.com>
+
+       * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
+       Java-specific `-f' option.
+
+Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * decl.c (init_decl_processing): Only call initialize_sizetypes once.
+       Adjust order of making types.
+       Make bitsize_*_node values.
+
+Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * class.c (make_field_value): Use byte_position.
+       * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
+       (java_array_data_offset): Likewise.
+       * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
+       bzero call.
+
+2000-03-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (check_abstract_method_definitions): New local
+       `end_type_reached'. Make sure we also consider `end_type'.
+       (java_check_abstract_method_definitions): Make sure we eventually
+       consider `java.lang.Object'.
+       (maybe_use_access_method): Don't use access method if not in the
+       context of a pure inner class or if the method's context is right.
+       (find_applicable_accessible_methods_list): New static flag
+       `object_done'. Don't search abstract classes as interfaces. Fixed
+       indentation. Fixed the `java.lang.Object' only search. Search
+       class interface(s) first, then fully search enclosing contexts.
+       (find_most_specific_methods_list): Pick the closest candidate when
+       they're all abstract.
+
+Mon Mar 20 08:58:51 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
+       properly initialize `finished_label.' Don't emit gotos for empty
+       try statements.
+
+2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
+
+       * except.c (emit_handlers): Clear catch_clauses_last.
+
+2000-03-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (check_method_types_complete): New function.
+       (create_class): Reset anonymous class counter only when seeing an
+       non inner classe.
+       (java_complete_class): JDEP_METHOD: Don't recompute signature
+       if incomplete.
+
+2000-03-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c (build_static_ref): Fixed indentation in comment.
+       * java-tree.def (TRY_EXPR): Fixed typo in name.
+       (CLASS_LITERAL): Likewise.
+       * java-tree.h: (TYPE_DOT_CLASS): New macro.
+       (struct lang_type): New field `dot_class'.
+       * jcf-write.c (generate_bytecode_insns): Fixed error message.
+       (generate_classfile): Method `class$' is synthetic.
+       * parse.y (build_do_class_method): New function.
+       (build_dot_class_method_invocation): Likewise.
+       (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
+       (resolve_qualified_expression_name): Handle CLASS_LITERAL.
+       (qualify_ambiguous_name): Likewise.
+       (patch_incomplete_class_ref): Invoke synthetic method if necessary.
+       (build_try_statement): Fixed leading comment.
+
+Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * class.c (make_field_value): Properly handle sizes.
+       (get_dispatch_vector): Use tree_low_cst and host_integerp.
+       (layout_class_method): Count using trees.
+       * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
+       * expr.c (java_array_data_offset): Use int_bit_position.
+       (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
+       (build_invokevirtual): Use tree_low_cst and do computations with trees.
+       
+2000-03-16  Tom Tromey  <tromey@cygnus.com>
+
+       * lang.c (flag_hash_synchronization): New global.
+       (lang_f_options): Added `hash-synchronization'.
+       * lang-options.h: Mention -fhash-synchronization.
+       * java-tree.h (flag_hash_synchronization): Declare.
+       * expr.c (java_lang_expand_expr): Only push `sync_info' value when
+       hash table synchronization is disabled.
+       * decl.c (init_decl_processing): Only push `sync_info' value when
+       hash table synchronization is disabled.
+       * class.c (make_class_data): Only push `sync_info' field when hash
+       table synchronization is disabled.  Removed dead code.
+
+2000-03-16  Tom Tromey  <tromey@cygnus.com>
+
+       * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
+
+2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
+       classes.
+       * parse.y (patch_method_invocation): Handle anonymous classes
+       creation in static context.
+
+2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
+       * parse.y (resolve_qualified_expression_name): Use it.
+       (patch_method_invocation): Likewise.
+
+2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (register_incomplete_type): JDEP_ENCLOSING set
+       depending on the type of dependency which dictates what the
+       current class is.
+       (unresolved_type_p): Resolved types limited to the current class.
+
+2000-03-15  Tom Tromey  <tromey@cygnus.com>
+
+       * decl.c (init_decl_processing): Set type of `sync_info' to be
+       pointer to Object.
+
+       * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
+       Correctly compute bit number for current slot.  Zero `high' and
+       `low' in DS_LENGTH case.  Don't skip inherited fields.  Use
+       mark_reference_fields.
+       (mark_reference_fields): New function.
+
+Tue Mar 14 17:15:41 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (register_incomplete_type): Fixed initialization of
+       JDEP_ENCLOSING.
+
+2000-02-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse-scan.y (inner_qualifier, inner_qualifier_length): New
+       static globals.
+       (push_class_context, pop_class_context): New function.
+       (class_body:): Call pop_class_context.
+       (interface_body:): Likewise.
+       (INNER_QUALIFIER): New macro.
+       (report_class_declaration): Changed output format and use
+       INNER_QUALIFIER. Call push_class_context.
+
+2000-02-14  Andrew Haley  <aph@cygnus.com>
+
+        * check-init.c (check_init): Add new cases for unary and binary
+        tree nodes.
+
+2000-03-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (resolve_package): Set `next' once a type name has been
+       progressively discovered.
+       (resolve_qualified_expression_name): Propagate resolution only if
+       there are remaining qualifiers. Take into account `q' might have
+       been cleared after re-qualification.
+       * parse.y (patch_method_invocation): New local `resolved'.
+       Section dealing with qualified expression rewritten to use
+       resolve_field_access.
+
+Mon Mar 13 12:21:13 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.h (PUSH_CPC): Fixed indentation.
+       (DEBUG_CPC): New macro.
+       (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
+       SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
+       * parse.y (class_body_declaration:): Use
+       SET_CPC_INSTANCE_INITIALIZER_STMT.
+       (method_declaration:): Check for null current_function_decl.
+       (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
+       (java_parser_context_pop_initialized_field): Better handling of
+       empty lists.
+       (maybe_make_nested_class_name): Mark nested class name as
+       qualified when necessary.
+       (end_class_declaration): Don't call java_parse_context_resume when
+       one or more error occured.
+       (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
+       (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
+       SET_CPC_INITIALIZER_STMT.
+       (method_header): Check for inner classes declaring static methods.
+       (resolve_qualified_expression_name): Handle situation where `this'
+       is implied.
+
+Mon Mar 13 11:36:51 2000  Hans Boehm <boehm@acm.org>
+
+       * typeck.c (build_prim_array_type): Correctly set the high word too.
+
+2000-03-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (java_complete_expand_methods): Leave <clinit> out of
+       ordinary methods.
+       (maybe_generate_pre_expand_clinit): Put <clinit> at the end of the
+       list of methods for interfaces.
+
+2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (qualify_ambiguous_name): Properly handle expressions
+       using `null'.
+       
+2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (check_final_assignment): Extended to process
+       COMPOUND_EXPR.
+       (patch_assignment): Have check_final_assignment called only once.
+
+2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * java-tree.h (IS_INIT_CHECKED): New flag.
+       * check-init.c (check_init): Test and set IS_INIT_CHECKED.
+       * parse.y (patch_string): Call force_evaluation_order on the
+       completed string concatenation tree.
+       * expr.c (force_evaluation_order): Call force_evaluation_order on
+        function's arguments too.
+
+Mon Mar  6 18:07:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * decl.c (emit_init_test_initialization): Mark KEY as unused.
+       * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
+       (build_anewarray): Likewise.
+       * parse.y (patch_newarray): Likewise.
+       * parse.c: Regenerated.
+
+2000-03-06  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * decl.c (init_decl_processing): Added new class fields `depth',
+       `ancestors', and `idt' to class_type_node. Use
+       _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
+       * class.c (make_class_data): Push initial values for new fields.
+       * java-tree.h: Updated prototype for `build_invokeinterface'.
+       * expr.c (build_invokeinterface): Changed parameters to accept
+       `method' tree. Calculate index of `method' in its declaring
+       interface. Build call to _Jv_LookupInterfaceMethodIdx.
+       (expand_invoke): Call `build_invokeinterface' with new parameters.
+       * parse.y (patch_invoke): Call `build_invokeinterface' with new
+       parameters.
+
+2000-03-06  Bryce McKinlay <bryce@albatross.co.nz>
+
+       * typeck.c (lookup_do): Search superinterfaces first
+       when looking up an interface method. From Godmar Back
+       <gback@cs.utah.edu>
+
+2000-03-06  Tom Tromey  <tromey@cygnus.com>
+
+       * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
+
+2000-03-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * java-tree.h (lookup_argument_method2): Declared.
+       (safe_layout_class): Prototype moved from parse.h.
+       * parse.h (safe_layout_class): Prototype moved to java-tree.h.
+       * parse.y (java_check_regular_methods): Local `super_class' gone.
+       Call lookup_argument_method2 instead of lookup_argument_method.
+       Perform modifier match for methods found declared in implemented
+       interfaces. Fixed indentation problem. Overriding/hiding error
+       report to take place only for methods found in classes.
+       * typeck.c (lookup_argument_method): Changed leading
+       comment. Re-written by calling lookup_do.
+       (lookup_argument_method2): New function.
+       (lookup_java_method): Re-written by calling lookup_do.
+       (lookup_do): New function.
+
+Thu Mar  2 15:18:33 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * check-init.c (check_init): Removed dead code. Handle (blank)
+       final variables.
+       * parse.y (declare_local_variables): New local `final_p', set it
+       and use it to initialize LOCAL_FINAL.
+       (check_final_assignment): Only check FIELD_DECLs.
+
+2000-02-17  Tom Tromey  <tromey@cygnus.com>
+
+       * Makefile.in (JAVA_OBJS): Added boehm.o.
+       (boehm.o): New target.
+       * Make-lang.in (JAVA_SRCS): Added boehm.c.
+       * java-tree.h (flag_use_boehm_gc): Declare.
+       (get_boehm_type_descriptor): Declare.
+       * lang.c (lang_f_options): Added `use-boehm-gc'.
+       (flag_use_boehm_gc): New global.
+       * lang-options.h: Added -fuse-boehm-gc.
+       * boehm.c: New file.
+       * class.c (get_dispatch_table): If class uses a Boehm type
+       descriptor, put it in the vtable.
+       (make_class_data): Removed dead code.
+
+2000-03-03  Per Bothner  <per@bothner.com>
+
+       * decl.c (init_decl_processing):  Initialize sizetype properly.
+
+2000-03-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
+       (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
+       * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.  
+       * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
+       (jcf_parse): New local `current'. Load innerclasses seen in outer
+       context being processed.
+       * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
+       * jcf-write.c (append_innerclasses_attribute): New function.
+       (append_innerclasses_attribute_entry): Likewise.
+       (get_access_flags): Handle static classes. Set anonymous and local
+       classes to be private.
+       (generate_classfile): Attribute count adjusted. Call
+       append_innerclasses_attribute.
+       * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
+       PURE_INNER_CLASS_TYPE_P.
+       * parse.y (parser_qualified_classname): New parameter `is_static',
+       produce non qualified name accordingly.
+       (block_statement:): Set LOCAL_CLASS_P when declaring local class.
+       (create_interface): Added argument to parser_qualified_classname.
+       (create_class): Added argument to parser_qualified_classname. Setup
+       alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
+       (add_inner_class_fields): Fixed indentation.
+       (method_declarator): Use PURE_INNER_CLASS_DECP_P.
+       (method_declarator): Fixed typo in comment.
+       (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
+       (build_current_thisn): Likewise.
+       (patch_method_invocation): Likewise.
+
+2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
+
+       * decl.c (current_function_decl): Move to toplev.c.
+
+Mon Feb 28 08:20:42 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
+       (DECL_BIT_INDEX): Use underlying representation.
+       * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
+
+Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (build_java_ret): Pass proper type to size_binop.
+
+2000-02-25  Anthony Green  <green@cygnus.com>
+
+       * expr.c (build_class_init): Mark the decl to be ignored by
+       check_init.
+       * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
+       * check-init.c: Move DECL_BIT_INDEX to java-tree.h
+       * class.c (init_test_hash_newfunc): New function.
+       (decl_hash): New function.
+       (decl_compare): New function.
+       * decl.c (emit_init_test_initialization): New function.
+       (complete_start_java_method): Traverse the init test hashtable,
+       calling emit_init_test_initialization.
+       (always_initialize_class_p): Define.
+       * expr.c (build_class_init): Use initialization tests when
+       emitting class initialization code.
+       (always_initialize_class_p): Declare.
+       * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
+       1.
+       * java-tree.h: Include hash.h.
+       (DECL_FUNCTION_INIT_TEST_TABLE): Define.
+       (struct lang_decl): Add init_test_table field.
+       (init_test_hash_entry): Define.
+
+Fri Feb 25 18:41:31 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * gjavah.c (main): Avoid using `argi' to report unimplemented
+       options.
+
+Fri Feb 25 18:47:25 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
+       initialize locals to avoid warnings. Local `exception_type' moved
+       into if statement.
+
+Fri Feb 25 18:00:37 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (resolve_expression_name): Use `orig' as a second
+       argument to resolve_field_access.
+       (resolve_field_access): Removed unecessary code when dealing with
+       static fields.
+
+Wed Feb 23 17:41:50 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c (push_super_field): Don't push the field twice.
+       * jcf-parse.c (parse_source_file): Call java_reorder_fields.
+       * parse.h (java_reorder_fields): Prototyped.
+       * parse.y (java_reorder_fields): New function.
+       (java_layout_class): Simplified not to worry about re-ordering.
+
+2000-02-23  Tom Tromey  <tromey@cygnus.com>
+
+       * gjavah.c (print_name): In JNI case, correctly quote string.
+       (print_method_info): Don't handle overrides in JNI mode.
+
+2000-02-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
+       value type set to `boolean_type_node'.
+
+Mon Jan 18 14:30:09 2000  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
+
+       * jcf-dump.c (main): Test for correct condition after
+       output file creation.
+
+2000-02-19  Anthony Green  <green@cygnus.com>
+
+       * jcf-depend.c (add_entry): Fix test for first list entry.
+
+Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
+       * constants.c (build_constants_constructor): Likewise.
+
+2000-02-19  Anthony Green  <green@cygnus.com>
+
+       * jcf-depend.c (add_entry): Add entries to the end of the list.
+
+Wed Nov 03 02:16:00 PST 1999  Pekka Nikander  <pekka.nikander@hut.fi>
+
+       * decl.c (INT_TYPE_SIZE): Define if necessary.
+       (expand_java_return): Handle the case of a native integer smaller
+       than a JVM integer.
+
+2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
+
+       * gjavah.c (help): Use GCCBUGURL.
+       * jv-scan.c (help): Likewise.
+       * jcf-dump.c (help): Likewise.
+
+Thu Feb 17 14:30:37 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-write.c (generate_bytecode_insns): Don't generate empty
+       `finally' clauses.
+
+Thu Feb 17 13:20:58 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-parse.c (load_class): Call `fatal' if no file containing
+       the target class are found.
+
+2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
+       lex.c, lex.h, and PARSE_H to...                            
+       (parse.o, parse-scan.o): ...here, respectively.
+
+       * lex.c: Split out code that may trigger SIGFPE from yylex()
+       to its own function.
+       * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
+
+2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
+
+2000-02-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (outer_field_access_p): Stop in time when outer contexts
+       are exhausted.
+       (resolve_qualified_expression_name): Properly qualify *everything*
+       after a package.type to be resoled as expression names.
+       (find_applicable_accessible_methods_list): Save/restore `class' to
+       isolate it from a possible outer context search.
+
+2000-02-15  Tom Tromey  <tromey@cygnus.com>
+
+       * gjavah.c (jni_print_char): New function.
+       (print_full_cxx_name): Use it.
+       (decode_signature_piece): Likewise.
+       (print_cxx_classname): Likewise.
+
+2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
+       version.o.
+       (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
+
+       * gjavah.c: Include version.h.
+       
+       * jcf-dump.c: Likewise.
+
+       * jv-scan.c: Likewise.
+
+Sat Feb 12 04:34:04 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (outer_field_access_fix): First parameter now a tree
+       node. Check for assignement to final. First argument to
+       build_outer_field_access_fix modified to accomodate prototype.
+       (build_outer_field_access): Don't check for assignment to final
+       here.
+       (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
+       possibly returned by outer_field_access_fix. Changed
+       outer_field_access_fix's first argument.
+       (check_final_assignment): $finit$'s context is OK.
+       (patch_unaryop): Use node instead of its line/column value when
+       calling outer_field_access_fix.
+
+Fri Feb 11 17:38:26 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (interface_declaration:): No longer tagged
+       <node>. Re-installed default action.
+       (class_member_declaration:): Handle inner interfaces.
+       (interface_member_declaration): Handle inner interfaces and
+       classes.
+       (create_interface): Push error if one seen. Suspend parsing
+       context when processing an inner interface.
+       (register_fields): Inner class static field limitations not to
+       apply to inner interfaces.
+
+Thu Feb 10 22:07:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * jcf-parse.c (load_class): Update `java_error_count' when a
+       class' file can't be found.
+       (parse.y): Avoid (byte)code generation when errors seen.
+
+Thu Feb 10 20:10:43 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
+       decodes a valid node.
+       (patch_binop): Handle TRUNC_DIV_EXPR.
+
+Thu Feb 10 16:04:26 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (resolve_package): New local `acc.' Try to progressively
+       build and guess a package and type name.
+
+Thu Feb 10 12:52:09 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.y (find_applicable_accessible_methods_list): Load and
+       layout the search class if necessary.
+       (java_complete_tree): Keep to original type of the folded initial
+       value.
+
+2000-02-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+        * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
+        Generate error message if circularity is detected. New static
+        local `list.'
+        * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro.  *
+        * jcf-write.c (generate_bytecode_insns): Very simply handle
+        SAVE_EXPR.
+        * parse.y (java_check_circular_reference): Use
+        `cyclic_inheritance_report' during report, if necessary.
+        (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
+        walking NEW_ARRAY_INIT twice.
+
+2000-02-09  Tom Tromey  <tromey@cygnus.com>
+
+        * parse.y (check_class_interface_creation): Allow inner classes to
+        be `private' or `protected', check modifiers' consistency. Prevent
+        block local classes from bearing any modifiers.
+
+2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * except.c (check_start_handlers): Re-add prototype lost in last
+       patch.
+       (maybe_start_try): Remove excess argument to `check_start_handlers'.
+
+2000-02-09  Andrew Haley  <aph@cygnus.com>
+
+       * decl.c (clear_binding_level): Remove excess initializer.
+       (maybe_poplevels): Remove unused variable.
+       (force_poplevels): Ditto.
+       (struct binding_level): Add comment.
+       
+2000-02-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+        * jcf-write.c (generate_classfile): Don't consider
+        pre-initialization with reference value (use <clinit> instead.)
+        * parse.y (java_fix_constructors): No generated constructor for
+        interfaces.
+        (build_outer_field_access): Removed debug message.
+        (outer_field_expanded_access_p): Adapted to bytecode generation.
+        (build_outer_field_access_method): Use fix_method_argument_names.
+        (build_outer_method_access_method): Fixed indentation. Added
+        comment. Handle access method generation for static and also void
+        methods.
+        (build_access_to_thisn): Inserted debug message.
+        (maybe_build_thisn_access_method): Use fix_method_argument_names.
+        (resolve_qualified_expression_name): Fixed comment.
+        (not_accessible_p): Adapted to bytecode generation. Added comment.
+        (patch_method_invocation): Added comment.
+        (maybe_use_access_method): Fixed leading comment. Handle static
+        methods.
+        (java_complete_lhs): Don't shortcut handling of initialized upon
+        declaration String type static fields when generating bytecode.
+        (patch_unaryop): Handle outer field access when generating
+        bytecode.
+
+Thu Feb  3 20:23:19 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * java-tree.h (FIELD_THISN): New macro.
+       * jcf-write.c (append_synthetic_attribute): New function.
+       (generate_classfile): Set "Synthetic" attribute on this$<n>,
+       val$<name> fields, access$<n> and $finit$ methods. Fixed indentation.
+       * parse.y (add_inner_class_fields): Set FIELD_THISN for created
+       this$<n> fields.
+       (build_outer_field_access): Turned on access functions usage and
+       generation when compiling to bytecode.
+       (maybe_use_access_method): Likewise.
+
+2000-01-25  Andrew Haley  <aph@cygnus.com>
+
+        * java-except.h (struct eh_range): Add `expanded' field.
+        (maybe_start_try): Add end_pc arg.
+        (maybe_end_try): Ditto.
+       * java-tree.h (force_poplevels): new function.
+        * expr.c (expand_byte_code): Don't call maybe_start_try or
+        maybe_end_try.
+        * except.c (add_handler): Reset expanded.
+        (expand_start_java_handler): Set expanded.
+        (check_start_handlers): Don't expand a start handler that's
+        already been expanded.
+        (maybe_start_try): Add end_pc arg.  Only expand a handler which
+        ends after end_pc.
+       (expand_end_java_handler): call force_poplevels.
+       (force_poplevels): new function.
+        * decl.c (binding_level): Add start_pc of binding level.
+        (maybe_pushlevels): Call maybe_start_try when pushing binding
+        levels.
+        (maybe_poplevels): Call maybe_end_try when popping binding levels.
+        (LARGEST_PC): Define.
+        (clear_binding_level): Use LARGEST_PC.
+
+       * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
+       * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
+       (binding_depth, is_class_level, current_pc): new variables.
+        (struct binding_level): ditto.
+       (indent): new function.
+       (push_jvm_slot): add debugging info.
+       (maybe_pushlevels): ditto.
+       (maybe_poplevels): ditto.
+       (pushlevel): ditto.
+       (poplevel): ditto.
+       (start_java_method): ditto.
+       (give_name_to_locals): comment only.
+       * except.c (binding_depth, is_class_level, current_pc): 
+       new variables.
+       (expand_start_java_handler): add debugging info.
+       (expand_end_java_handler): ditto.
+       
+2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
+       (print_name_for_stub_or_jni, process_file): Constify a char*.
+
+2000-02-03  Tom Tromey  <tromey@cygnus.com>
+
+       * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
+
+2000-01-31  Scott Bambrough  <scottb@netwinder.org>
+
+       * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
+       assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
+       defined to be 1.
+
+Wed Feb  2 18:43:37 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
+       * java-tree.h (TYPE_II_STMT_LIST): New macro.
+       (struct lang_type): New field `ii_block'.
+       * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
+       CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
+       * parse.h (struct parser_ctxt): New field `instance_initializers'.
+       (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
+       CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
+       CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
+       macros.
+       * parse.y (add_instance_initializer): New function.
+       (in_instance_initializer): New static global.
+       (class_body_declaration:): Link instance initializer block.
+       (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
+       (array_creation_expression:): Remove unused local.
+       (java_parser_context_push_initialized_field): Fixed leading
+       comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
+       CPC_INSTANCE_INITIALIZER_LIST.
+       (java_parser_context_pop_initialized_field): Likewise.
+       (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
+       (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
+       CPC_INITIALIZER_STMT.
+       (fix_constructors): New local `class_type'. Use it. Call
+       add_instance_initializer.
+       (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
+       (patch_return): Forbid return in instance initializers.
+       (patch_throw_statement): Enforce exception handling in the context
+       of instance initializers.
+       
+2000-02-03  Tom Tromey  <tromey@cygnus.com>
+
+       * Make-lang.in (java.mostlyclean): Remove executables in
+       `mostlyclean'.
+
+2000-01-31  Scott Bambrough  <scottb@netwinder.org>
+
+       * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
+       HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
+       (java_float_finite): Convert to use union Word from javaop.h.
+       (java_double_finite): Convert to use union DWord from javaop.h.
+
 2000-02-02  Tom Tromey  <tromey@cygnus.com>
 
        * gjavah.c (options): Added `jni' entry.
        (main): Use getopt_long_only to parse command line.
        (usage): Changed message.
 
+Tue Feb  1 22:23:41 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
+       * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
+       ANONYMOUS_ARRAY_INITIALIZER): New access macros.
+       * parse.y (array_creation_expression:): Handle anonymous arrays.
+       (build_array_from_name): Don't set `ret_name' if null.
+       (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
+       (qualify_ambiguous_name): Likewise.
+       (java_complete_expand_class): Likewise.
+
+Tue Feb  1 14:59:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
+       * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
+       (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
+       (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
+       (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
+       AIPL_FUNCTION_COMPLETED_INVOCATION.
+       (AIPL_FUNCTION_CTOR_INVOCATION): Replaces 
+       AIPL_FUNCTION_INVOCATION_READY.
+       (AIPL_FUNCTION_DECLARATION): New enum entry.
+       * parse.y (reorder_static_initialized): New function.
+       (java_parser_context_pop_initialized_field): Use it.
+       (add_inner_class_fields): Use
+       MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
+       augmented. Install marker after last alias initializer, if any.
+       (generate_finit): Fixed typo. Don't try to retain only the used
+       fields.
+       (method_header): Compute and set DECL_FUNCTION_NAP.
+       (method_declarator): Fixed comment. Insert alias initializer in
+       parameter list.
+       (build_alias_initializer_parameter_list): Fixed leading
+       comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
+       replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
+       (java_complete_expand_class): Code to retain only used aliases
+       removed.
+       (java_complete_expand_methods): New local `first_decl'. Generate
+       $finit$ first, then expand the constructors, regular methods and
+       <clinit>.
+       (java_complete_expand_method): Don't report error on missing
+       return statement if previously detected bogus.
+       (fix_constructors): Don't patch constructor parameters list.
+       (patch_method_invocation): Use new AIPL enum values. Reverse
+       alias initializer list for anonymous classes.
+       
 2000-01-30  Anthony Green  <green@redhat.com>
 
        * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
        error handling/recovery.
        * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
 
+Fri Jan 28 20:10:57 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
+       FIELD_LOCAL_ALIAS_USED): New macros.
+       (DECL_FUNCTION_NAP): New macro.
+       (struct lang_decl): New field `nap'.
+       (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
+       (struct lang_type): New fields `finit_stmt_list' and
+       `clinit_stmt_list'.
+       (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
+       * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
+       (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
+       UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
+       (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
+       AIPL_FUNCTION_INVOCATION_READY): New enum fields.
+       (BUILD_THROW): Macro line separator re-indented.
+       * parse.y (end_class_declaration): New function.
+       (maybe_generate_pre_expand_clinit): New name for
+       java_pre_expand_clinit. Create <clinit> off TYPE_CLINIT_STMT_LIST,
+       pre-expand static fields.
+       (maybe_generate_clinit): Function deleted.
+       (check_for_static_method_reference): Prototype's parameter list
+       indented.
+       (generate_finit): New name for maybe_generate_finit. Changed
+       leading comment. Function rewritten to use
+       TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
+       (build_alias_initializer_parameter_list): New function.
+       (java_parser_context_pop_initialized_field): Likewise.
+       (add_inner_class_fields): Likewise.
+       (type_declaration:): Call end_class_declaration.
+       (class_member_declaration:): Likewise.
+       (formal_parameter_list:): Fixed typos.
+       (formal_parameter:): Use ARG_FINAL_P to mark created tree list
+       element. Improved error handling.
+       (block_statement:): Call end_class_declaration.
+       (anonymous_class_creation:): Likewise.
+       (create_anonymous_class): Fixed comments.
+       (create_class): Call add_inner_class_fields.
+       (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
+       (method_header): Use MARK_FINAL_PARMS.
+       (finish_method_declaration): Use UNMARK_FINAL_PARMS.
+       (method_declarator): Propagate final argument flag.
+       (craft_constructor): New local `artificial'. Call
+       build_alias_initializer_parameter_list. Use
+       CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
+       (source_start_java_method): Mark parm decls with LOCAL_FINAL if
+       necessary.
+       (complete_expand_class): Get rid of unused outer context local
+       alias fields.
+       (java_complete_expand_methods): Fixed leading
+       comment. Generate/pre-expand <clinit> first. Changed method
+       expansion order to regular, $finit$, constructors, <clinit>.
+       (java_complete_expand_method): Set current_function_decl.
+       (fix_constructors): Fix constructor parameter list to account for
+       outer context local alias initializers.
+       (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
+       (resolve_expression_name): Lookup outer context local aliases. New
+       local `access', use it.
+       (patch_method_invocation): Patch inner class ctor invocation with
+       outer context local aliases initialization values. $finit$
+       invocation patching now includes things generated with
+       build_alias_initializer_parameter_list.
+       (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
+       (build_super_invocation): Likewise.
+       (patch_assignment): Changed comment.
+
 2000-01-27  Andrew Haley  <aph@cygnus.com>
 
         * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
        * zextract.c: Likewise.
        * zipfile.h: Likewise.
        
+2000-01-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
+       (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
+       * constants.c (build_constant_data_ref): Check for cached
+       current_constant_pool_data_ref. Cache current_constant_pool_data_ref
+       in TYPE_CPOOL_DATE_REF.
+       * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
+       MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
+       (struct lang_type): New fields `cpool' and `cpool_data_ref'.
+       (LOCAL_FINAL): New macro.
+       * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
+       constant pool -- don't try to reuse.
+       (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
+       TYPE_LANG_SPECIFIC.
+       (find_in_current_zip): Use TYPE_JCF.
+       * parse.h (java_check_final): Prototype removed.
+       * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
+       (maybe_create_class_interface_decl,
+       check_class_interface_creation): Likewise.
+       (java_expand_finals): Function removed.
+       (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
+       (block_statement:): Fixed comment.
+       (anonymous_class_creation:): Likewise.
+       (check_class_interface_creation): Reversed Jan 12, 2000 extra
+       argument patch.
+       (check_class_interface_creation): Loosened error report on (inner)
+       public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
+       (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
+       (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
+       argument patch.
+       (create_interface): Likewise.
+       (anonymous_class_counter): New static global.
+       (create_anonymous_class): Reversed Jan 12, 2000 extra argument
+       patch. Fixed comments.
+       (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
+       anonymous_class_counter when declaring a toplevel class.
+       (craft_constructor): Fixed constructor name when handling
+       anonymous classes. Anonymous class constructors to feature hidden
+       this$<n> parameter.
+       (java_fix_constructors): Added comment.
+       (java_check_final): Function removed.
+       (java_complete_expand_methods): Fixed comment. Don't generate
+       class data, save its outgoing constant pool instead.
+       (verify_constructor_super): Skip anonymous class constructor
+       hidden this$<n> parameter.
+       (java_expand_classes): New local `saved_ctxp'. Removed call to
+       java_expand_finals and java_check_final. Expand anonymous class
+       constructors. Generate class data.
+       (build_super_invocation): Skip anonymous class hidden this$<n>
+       parameter.
+       * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
+       MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
+       (set_java_signature): Likewise.
+       
+Mon Jan 18 14:30:09 2000  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
+
+       * gjavah.c: Delete ACC_VISIBILITY define.
+       * jcf.h: Add ACC_VISIBILITY define.
+       * parse.y: final: rule tagged <value>.
+       (java_check_regular_methods): Use ACC_VISIBILITY define for
+       default package access check.
+       (local_variable_declaration_statement): Use final: rule.
+
 Mon Jan 17 11:58:17 2000  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
 
        * parse.y (format_parameter:): Use final: rule instead of modifiers:.
@@ -124,6 +1768,235 @@ Mon Jan 17 11:58:17 2000  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
 
        * gjavah.c (print_field_info): Allow non-static final fields.
 
+Fri Jan 14 18:03:41 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
+       * parse.y (patch_anonymous_class): New function.
+       (create_anonymous_class): Register incomplete type when the
+       class/interface to extends/implement isn't known yet.
+       (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
+       (verify_constructor_super): Tuned error message.
+
+Fri Jan 14 00:14:24 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
+       (ANONYMOUS_CLASS_P): New macro.
+       (TYPE_SIGNATURE, TYPE_JCF): New macros.
+       (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
+       * parse.y (create_class): Added leading argument.
+       (maybe_create_class_interface_decl,
+       check_class_interface_creation): Likewise.
+       (craft_constructor): New function.
+       (verify_constructor_super): Added argument in prototype.
+       (class_declaration:): Inserted leading argument.
+       (for_begin:): Use FOR_LOOP_P.
+       (anonymous_class_creation): Create WFL of the anonymous class to
+       instantiate. Call build_new_invocation. Added comments.
+       (check_class_interface_creation): Handle parameter `anonymous' in
+       verbose mode class creation announce.
+       (link_nested_class_to_enclosing): Exclude anonymous classes.
+       (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
+       anonymous class, even though they appear to have an enclosing
+       context.
+       (create_interface): Pass extra argument to
+       check_class_interface_creation.
+       (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
+       (create_class): Call check_class_interface_creation and
+       maybe_create_class_interface_decl with extra new argument. Don't
+       add private this$<n> to anonymous classes.
+       (method_declarator): Insert hidden this$<n> to anonymous class
+       constructors.
+       (java_fix_constructors): Deleted code creating default
+       constructor. Call craft_constructor instead.
+       (java_check_regular_methods): Set `saw_constructor' to 1 for
+       anonymous classes.
+       (fix_constructors): Pass extra argument to verify_constructor_super.
+       (verify_constructor_super): New local `sdecl', use it. Search for
+       matching constructor (possibly featuring arguments) in super
+       class.
+       (lookup_method_invoke): Craft constructor according to arguments
+       list when dealing with anonymous class constructors.
+       (build_super_invocation): Pass arguments to anonymous class super
+       constructors.
+       (search_loop): Use FOR_LOOP_P.
+       (labeled_block_contains_loop_p): Likewise.
+       
+Wed Jan 12 00:38:47 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * class.c (set_super_info): Set CLASS_STATIC when appropriate.
+       (enclosing_context_p): New function.
+       (get_access_flags_from_decl): Handle CLASS_STATIC.
+       (maybe_layout_super_class): Extra first argument passed to
+       do_resolve_class.
+       (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
+       ID_INIT_P.
+       * decl.c (access0_identifier_node): New global.
+       (init_decl_processing): access0_identifier_node initialized. 
+       (pushdecl): Set DECL_CONTEXT only on non type decls.
+       * expr.c (lookup_field): Lookup inner class fields in enclosing
+       contexts.
+       (expand_invoke): Use ID_INIT_P.
+       (expand_java_field_op): Use DECL_CLINIT_P.
+       * java-tree.def (CLASS_LITERAL): New tree code.
+       * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
+       DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
+       (struct lang_decl): New field `inner_access'.
+       (enclosing_context_p): Prototyped.
+       (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
+       ID_CLINIT_P): New macros.
+       (CLASS_STATIC): New macro.
+       (CLASS_ACCESS0_GENERATED_P): New macro.
+       (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
+       TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
+       INNER_CLASS_P): New macros.
+       (DECL_INNER_CLASS_LIST): New macro.
+       * jcf-parse.c (yyparse): Avoid the use of ANSI string
+       concatenation.
+       * jcf-write.c (generate_bytecode_insns): binop: Change the type of
+       the shift value to int. Fixed typo in comment.
+       * lex.c (inst_id, wpv_id): Initialize.
+       * mangle.c (unicode_mangling_length): Take `$' into account.
+       * parse.h (DRECOVER, RECOVER): Terminate properly.
+       (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
+       (typedef struct _jdep): New field `enclosing'.
+       (JDEP_ENCLOSING): New macro.
+       (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
+       (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
+       (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
+       GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
+       GET_ENCLOSING_CPC_CONTEXT): New macros.
+       (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.    
+       (do_resolve_class): Added extra argument in prototype.
+       * parse.y (resolve_class): Added extra argument in prototype.
+       (maybe_create_class_interface_decl): Likewise.
+       (maybe_use_access_method, build_wfl_wrap): New functions.
+       (java_complete_expand_classes, java_complete_expand_class):
+       Likewise.
+       (java_parser_context_push_initialized_field,
+       java_parser_context_suspend, java_parser_context_resume):
+       Likewise.
+       (maybe_make_nested_class_name, make_nested_class_name,
+       set_nested_class_simple_name_value,
+       link_nested_class_to_enclosing, find_as_inner_class,
+       find_as_inner_class_do, check_inner_class_redefinition,
+       build_thisn_assign, build_current_thisn, build_access_to_thisn,
+       maybe_build_thisn_access_method, build_outer_field_access,
+       build_outer_field_access_methods, build_outer_field_access_expr,
+       build_outer_method_access_method, build_new_access_id,
+       build_outer_field_access_method, outer_field_access_p,
+       outer_field_expanded_access_p, outer_field_access_fix,
+       build_incomplete_class_ref, patch_incomplete_class_ref,
+       create_anonymous_class): Likewise.
+       (inst_id, wpv_id): New static global variables.
+       (synchronized:): New rule, tagged <node>.
+       (type_declaration:): No longer tagged <node>. Call POP_CPC in sub
+       rules.
+       (anonymous_class_creation:): New rule, tagged <node>.
+       (NEW_TK): Tagged <node>.
+       (type_literals, array_type_literal): New rules, tagged <node>.
+       (class_declaration:): Removed action when reducing by class_body:
+       (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
+       using GET_CPC in sub-rules.
+       (class_member_declaration): Handle inner classes.
+       (method_declaration): When reducing method_header:, reset
+       current_function_decl when appropriate.
+       (method_declarator:): Set the number of formal parameter to 0 for
+       method declared without arguments.
+       (constructor_declarator:): Likewise.
+       (static_initializer:): List of elements kept in a list.
+       (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
+       use of the keyword `static' for type declarations.
+       (block_statement:): Handle inner class declarations.
+       (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
+       type qualified `this'.
+       (class_instance_creation_expression): Use anonymous_class_creation:
+       to handle inner class instances creation. Handle qualified `new'.
+       (something_dot_new): Added appropriate actions.
+       (create_new_parser_context): New function.
+       (java_push_parser_context, java_parser_context_save_global,
+       java_parser_context_suspend): Use create_new_parser_context.
+       (check_modifiers): Changed leading comment.
+       (check_class_interface_creation): Handle interclasses.
+       (add_superinterfaces): Fixed comment.
+       (create_interface): Build qualified name from the raw_name instead
+       of its matching WFL. Push the initialized fields list. raw_name added
+       as an extra argument to maybe_create_class_interface_decl.
+       (create_class): Build qualified name from the raw_name instead of
+       its matching WFL. Removed assignment to current_parsed_class_un.
+       Call PUSH_ERROR before returning an error. Suspend the current
+       parser context when processing an inner class. Push the
+       initialized fields list. raw_name added as an extra argument to
+       maybe_create_class_interface_decl. Add the private this$<n>
+       field. 
+       (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
+       (register_fields): Get the class type from GET_CPC and handle
+       previous errors.  Added code to handle the creation of static
+       fields in inner classes. Initialized fields initialization
+       statements kept in a list of lists.
+       (maybe_generate_finit): Initialized fields initialization
+       statements kept in a list of lists. Use GET_CPC.
+       (maybe_generate_clinit): Likewise.
+       (method_header): Use GET_CPC and GET_CPC_UN.
+       (parser_qualified_classname): Handle inner classes.
+       (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
+       (java_fix_constructors): Hide pointer to enclosing context
+       instance in constructor list when dealing with inner classes.
+       (jdep_resolve_class): Call resolve_class with extra first argument
+       JDEP_ENCLOSING.
+       (resolve_class): Add enclosing context as a first extra argument
+       to do_resolve_class.
+       (do_resolve_class): Call find_as_inner_class. Handle WFLs
+       properly.
+       (resolve_no_layout): Extra argument added to resolve_class
+       invocation.
+       (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
+       (java_get_real_method_name): Use GET_CPC_UN.
+       (check_abstract_method_definitions): Use DECL_CLINIT_P.
+       (java_check_abstract_methods): Handle static method declared in
+       inner classes by an error.
+       (java_check_regular_methods): Use DECL_CLINIT_P.
+       (source_start_java_method): Also set DECL_MAX_LOCALS.
+       (create_artificial_method): Call java_parser_context_save_global
+       and java_parser_context_restore_global instead of saving/restoring
+       the context by hand.
+       (expand_start_java_method): Improved verbose mode message.
+       (java_complete_expand_methods): Fixed leading comment. Use
+       DECL_CLINIT_P.
+       (fix_constructors): Added assignment to this$<n> if necessary.
+       (java_expand_classes): Call java_complete_expand_classes instead
+       of java_complete_expand_methods.
+       (make_qualified_primary): Simplified.
+       (merge_qualified_name): Optimized for missing left or right parts.
+       (resolve_expression_name): Handle access to outer class fields from
+       interclasses.
+       (resolve_qualified_expression_name): New macro
+       RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
+       classes. Report error on non appropriate qualification of
+       `new'. Handle qualified `this'.
+       (not_accessible_p): Allow access to outer class private fields from
+       inner classes.
+       (patch_method_invocation): Handle method invocations through
+       access methods and inner class constructor invocations.
+       (find_applicable_accessible_methods_list): Search enclosing
+       contexts of an inner class.
+       (search_applicable_methods_list): Fixed typo.
+       (argument_types_convertible): Handle inner class constructors'
+       hidden outer context reference argument.
+       (qualify_ambiguous_name): Handle qualified `this'.
+       (java_complete_lhs): Handle use of field accessed through
+       artificial access methods in various cases of assignments. Handle
+       CLASS_LITERAL node.
+       (check_final_assignment): Use DECL_CLINIT_P.
+       (valid_ref_assignconv_cast_p): Handle the destination being an
+       enclosing context of the source.
+       (patch_unaryop): Handle use of field accessed through artificial
+       access methods.
+       (patch_return): Use DECL_CLINIT_P.
+       (patch_throw_statement): Use DECL_CLINIT_P.
+       (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
+       * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
+       ID_INIT_P.
+       
 2000-01-16  Anthony Green  <green@cygnus.com>
 
        * parse.y (build_string_concatenation): Only use
@@ -352,6 +2225,11 @@ Tue Nov 30 12:28:34 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
         check.
         * expr.c (expand_java_arraystore): Likewise. 
 
+1999-11-28 Anthony Green <green@cygnus.com>
+
+       * decl.c (find_local_variable): Reuse single slot decls when
+         appropriate.
+
 Wed Nov 24 17:33:26 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
         * jcf-parse.c (saw_java_source): Global variable removed.
@@ -654,6 +2532,10 @@ Thu Sep  9 17:33:28 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
        * class.c (finish_class): We're now outside a valid method
        declaration. Tell the rest of gcc so.
 
+1999-09-08  Bruce Korb  autogen@linuxbox.com
+
+       * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
+
 1999-09-07  Tom Tromey  <tromey@cygnus.com>
 
        * gjavah.c (add_class_decl): Generate include for gcj/array.h, not