+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.