+2002-09-16 Geoffrey Keating <geoffk@apple.com>
+
+ * java-tree.h (union lang_tree_node): Add chain_next option.
+
+2002-09-16 Richard Henderson <rth@redhat.com>
+
+ * jcf-parse.c (get_constant): Runtime check for IEEE format;
+ use new real.h interface.
+ * jcf-write.c (find_constant_index): Use new real.h interface.
+ * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
+
+2002-09-15 Kazu Hirata <kazu@cs.umass.edu>
+
+ * lang.c: Follow spelling conventions.
+
+2002-09-11 Per Bothner <per@bothner.com>
+
+ * parse.y (fold_constant_for_init): If a VAR_DECL, convert numerical
+ constant to the type of the field.
+ (java_complete_tree): Remove now-redundant code.
+
+ * parse.y (fold_constant_for_init): 'null' is not a constant expr.
+
+2002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu>
+
+ For PR java/5794:
+ * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
+ return label if a ret instruction for the jsr has been reached.
+
+2002-09-09 Ranjit Mathew <rmathew@hotmail.com>
+
+ * parse.y (DIR_SEPARATOR): Don't define.
+ (check_class_interface_creation): Use IS_DIR_SEPARATOR.
+
+2002-08-28 Andrew Haley <aph@redhat.com>
+
+ * verify.c (verify_jvm_instructions): Allow exception handler
+ inside code that is being protected, but generate a warning.
+ * except.c (link_handler): Initialize `expanded' in new eh_range.
+ (binding_depth, is_class_level, current_pc): Declare extern.
+
+2002-09-01 Mark Wielaard <mark@klomp.org>
+
+ * gcj.texi: Add chapter about system properties.
+ Fixed some typos.
+
+2002-08-26 Tom Tromey <tromey@redhat.com>
+
+ * parse.y (try_builtin_assignconv): Allow narrowing primitive
+ conversion if RHS_TYPE is byte, short, or char.
+
+2002-08-22 Tom Tromey <tromey@redhat.com>
+
+ * gcj.texi (Invoking gij): Document -cp and -classpath.
+
+2002-08-21 Tom Tromey <tromey@redhat.com>
+
+ * Make-lang.in (java/jcf-path.o): Use $(datadir), not
+ $(prefix)/share. For PR libgcj/7633.
+
+ For PR java/6005 and PR java/7611:
+ * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
+ (java_can_use_bit_fields_p): New function.
+
+2002-08-16 Tom Tromey <tromey@redhat.com>
+
+ * gcj.texi (Class Initialization): Mention class initialization of
+ arrays.
+
+2002-07-30 Andrew Haley <aph@cambridge.redhat.com>
+
+ * Make-lang.in (java-tree-inline.o): New.
+ (JAVA_OBJS): Add java-tree-inline.o.
+ * parse.y (source_end_java_method): Call java_optimize_inline.
+ (java_expand_method_bodies): Save method's tree in
+ DECL_SAVED_TREE.
+ (add_stmt_to_compound): Keep track of the number of statments.
+ * lang.c (java_init): Enable flag_inline_trees.
+ (java_post_options): If flag_inline_functions is on, enable
+ flag_inline_trees instread.
+ (decl_constant_value): New.
+ (java_tree_inlining_walk_subtrees): New.
+ * java-tree.h (DECL_NUM_STMTS): New macro.
+ (java_optimize_inline): Declare.
+ * expr.c (java_expand_expr): Allow a BLOCK to return a value.
+ Handle a LABEL_EXPR.
+ * decl.c (build_result_decl): If we already have a DECL_RESULT
+ don't make another.
+ (dump_function): New.
+ (java_optimize_inline): New.
+ (dump_function): New.
+
+2002-08-13 Jesse Rosenstock <jmr@fulcrummicro.com>
+
+ For PR java/7483:
+ * parse.y (build_assertion): Invert return from
+ desiredAssertionStatus.
+
+2002-08-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
+
+ * jcf-write.c (get_access_flags): Return correct access flags for
+ private and protected inner classes.
+
+2002-08-08 Nathan Sidwell <nathan@codesourcery.com>
+
+ * java/Make-lang.in (java.mostlyclean): Remove coverage files.
+
+2002-08-05 Geoffrey Keating <geoffk@redhat.com>
+
+ * mangle_name.c: Don't include obstack.h twice.
+ * xref.c: Don't include obstack.h.
+
+2002-08-04 Geoffrey Keating <geoffk@redhat.com>
+
+ * class.c: (permanent_obstack): Delete declaration.
+ * constants.c: (permanent_obstack): Delete declaration.
+ * except.c: (permanent_obstack): Delete declaration.
+ * expr.c: (permanent_obstack): Delete declaration.
+ * jcf-parse.c: (permanent_obstack): Delete declaration.
+ (saveable_obstack): Delete declaration.
+ * parse.h: (permanent_obstack): Delete declaration.
+ * typeck.c: (permanent_obstack): Delete declaration.
+
+2002-08-04 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gcj.texi (version-gcc): Increase to 3.3.
+
+2002-07-22 Tom Tromey <tromey@redhat.com>
+
+ * lex.c (java_lex): Check for `e' or `E' after 0.
+
+2002-07-21 Richard Henderson <rth@redhat.com>
+
+ * lang.c (java_unsafe_for_reeval): New.
+ (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
+
+2002-07-21 Neil Booth <neil@daikokuya.co.uk>
+
+ * jcf-path.c (GET_ENV_PATH_LIST): Remove.
+ (jcf_path_init): Use GET_ENVIRONMENT.
+
+2002-07-10 Roger Sayle <roger@eyesopen.com>
+ Zack Weinberg <zack@codesourcery.com>
+
+ * builtins.c (initialize_builtins): Remove defines that
+ handled C/C++ specific junk hereby removed from builtins.def.
+
+2002-07-07 Neil Booth <neil@daikokuya.co.uk>
+
+ * lang.c (java_post_options): Update prototype.
+
+2002-07-05 Roger Sayle <roger@eyesopen.com>
+
+ * builtins.c (initialize_builtins): Ignore the additional
+ parameter to DEF_BUILTIN. Handle more C/C++ specific junk in
+ the builtins.def file.
+
+2002-07-01 Tom Tromey <tromey@redhat.com>
+
+ For PR libgcj/7073:
+ * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
+ specially.
+
+2002-07-01 Roger Sayle <roger@eyesopen.com>
+
+ * java/decl.c (builtin_function): Accept additional parameter.
+ (java_init_decl_processing): Pass an additional NULL_TREE
+ argument to builtin_function.
+
+2002-06-29 T.J. Mather <tjmather@maxmind.com>
+
+ * gcj.texi: Fixed gcj invocation example so that it compiles.
+
+2002-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
+ * parse.y (mark_parser_ctxt): Likewise.
+ (check_modifiers, declare_local_variables): Avoid incorrect
+ hardcoded constant 10.
+
+ * lex.c (java_read_char): Avoid "comparison is always true"
+ warning.
+
+2002-06-25 Andreas Schwab <schwab@suse.de>
+
+ * expr.c (JSR): Avoid undefined operation on PC.
+
+2002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * decl.c (clear_binding_level): Const-ify.
+
+2002-06-13 Akim Demaille <akim@epita.fr>
+
+ * parse.y (class_declaration, interface_declaration): Make sure
+ all their rules have an action, in order to avoid meaningless `$$
+ = $1' and their type clashes.
+
+2002-06-11 Tom Tromey <tromey@redhat.com>
+
+ * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
+ * parse-scan.y (statement_without_trailing_substatement): Added
+ assert_statement.
+ (assert_statement): New rule.
+ * java-tree.h (struct lang_type) [assertions]: New field.
+ (TYPE_USES_ASSERTIONS): New macro.
+ (CLASS_USES_ASSERTIONS): Likewise.
+ (FIELD_SYNTHETIC): New define.
+ * lex.c (java_lval;): Added ASSERT_TK.
+ * parse.y (ASSERT_TK): Added.
+ (statement_without_trailing_substatement): Added assert_statement.
+ (assert_statement): New rule.
+ (build_assertion): New function.
+ (maybe_generate_pre_expand_clinit): Create and initialize
+ $assertionsDisabled.
+ (lookup_package_type): Removed decl.
+ * keyword.h: Rebuilt.
+ * keyword.gperf (assert): New token.
+
+2002-06-10 Akim Demaille <akim@epita.fr>
+
+ * parse.y (interface_type_list, class_member_declaration)
+ (unary_expression_not_plus_minus): Remove duplicate %type.
+ Whitespace changes.
+
+2002-06-09 Tom Tromey <tromey@redhat.com>
+
+ * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
+
+ * parse.y (method_header): Give error message in all cases.
+ Fixes PR java/6865.
+
+2002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
+
+ Don't use RTL inlining. Fix for PR java/6820.
+ * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
+ (flag_really_inline): New.
+ (java_decode_option): Set flag_really_inline if -finline-functions
+ is seen.
+ (java_post_options): New function. Turn off inlining unless
+ flag_really_inline is set.
+
+2002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
+
+ * gjavah.c (throwable_p): Accept argument as either a classname or
+ signature fragment. Create null-terminated classname string for super
+ when calling itself recursively.
+ (decode_signature_piece): Skip first character from class name
+ signature when calling throwable_p.
+
+2002-06-08 H.J. Lu (hjl@gnu.org)
+
+ * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
+
+2002-06-04 Tom Tromey <tromey@redhat.com>
+
+ * jcf-write.c (perform_relocations): Optmize a goto to a goto.
+
+2002-06-04 Michael Koch <konqueror@gmx.de>
+
+ * gcj.texi (Input Options): Fixed typo.
+
+2002-06-04 Zack Weinberg <zack@codesourcery.com>
+
+ * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
+ typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
+ all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
+ and all now-pointless local variables. Rename other local
+ variables to reflect their not being handles.
+
+ * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
+ #if JCF_USE_STDIO blocks.
+
+ * parse.y: Add missing semicolon at end of rule.
+
+2002-06-03 Geoffrey Keating <geoffk@redhat.com>
+
+ * check-init.c (attach_initialized_static_class): Delete, unused.
+ * parse.y: Use htab_t instead of struct hashtable, update
+ all uses.
+ * java-tree.h: Include hashtab.h instead of hash.h.
+ (struct lang_decl_func): Use htab_t, set up for gengtype.
+ (struct init_test_hash_entry): Delete.
+ (struct treetreehash_entry): New.
+ (java_treetreehash_find): New
+ (java_treetreehash_new): New prototype.
+ (java_treetreehash_create): New prototype.
+ (java_mark_tree): Delete prototype.
+ (java_hash_hash_tree_node): Delete prototype.
+ (java_hash_compare_tree_node): Delete prototype.
+ (attach_initialized_static_class): Delete prototype.
+ * expr.c (build_class_init): Update to use java_treetreehash
+ functions.
+ (java_expand_expr): Update to use htab_t.
+ (emit_init_test_initialization): Likewise.
+ * decl.c (java_mark_tree): Delete.
+ * class.c (init_test_hash_newfunc): Delete.
+ (java_hash_hash_tree_node): Delete.
+ (java_hash_compare_tree_node): Delete.
+ (add_method_1): Update to use java_treetreehash functions.
+ (JAVA_TREEHASHHASH_H): New macro.
+ (java_treetreehash_hash): New function.
+ (java_treetreehash_compare): New function.
+ (java_treetreehash_find): New function.
+ (java_treetreehash_new): New function.
+ (java_treetreehash_create): New function.
+ * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
+
+ * Make-lang.in (java/parse.o): Depend on debug.h.
+ * java-tree.h (struct lang_identifier): Use gengtype.
+ (union lang_tree_node): New.
+ (struct lang_decl_func): Use gengtype.
+ (struct lang_decl_var): Likewise.
+ (struct lang_decl): Likewise.
+ * parse.y: Include debug.h.
+ * lang.c (LANG_HOOKS_MARK_TREE): Delete.
+
+ * lang.c (struct language_function): New dummy structure.
+
+ * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
+ descriminator for DECL_LANG_SPECIFIC.
+ (struct lang_decl_func): Rename from struct lang_decl.
+ (enum lang_decl_desc): New.
+ (struct lang_decl): Make it a union. Update all the accessor macros.
+ (struct lang_type): Use gengtype.
+ * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
+ * decl.c (java_dup_lang_specific_decl): All lang_decl structures
+ are now the same size.
+ (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
+ use discriminator to mark DECL_LANG_SPECIFIC.
+
+ * Make-lang.in (gt-java-builtins.h): New rule.
+ (java/builtins.o): Add dependency on gt-<filename>.h.
+ * builtins.c: Use gengtype for roots.
+ (union string_or_tree): Use gengtype.
+ (struct builtin_record): Use gengtype.
+ * config-lang.in (gtfiles): Add builtins.c.
+
+ * Make-lang.in (gt-java-class.h, gt-java-constants.h,
+ gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
+ gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
+ gt-java-parse.h, gtype-java.h): Add rules to generate.
+ (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
+ (class.o): Add dependency on gt-*.h.
+ (constants.o): Likewise.
+ (decl.o): Likewise.
+ (expr.o): Likewise.
+ (jcf-parse.o): Likewise.
+ (jcf-write.o): Likewise.
+ (lang.o): Likewise.
+ * config-lang.in (gtfiles): New.
+ * class.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
+ * constants.c: Replace uses of ggc_add_* with GTY markers.
+ Include gt-*.h.
+ * decl.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
+ * expr.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
+ * java-tree.h: Replace uses of ggc_add_* with GTY markers.
+ * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
+ Include gt-*.h.
+ * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
+ Include gt-*.h.
+ * lang.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
+ * mangle.c: Replace uses of ggc_add_* with GTY markers. Include
+ gt-*.h.
+ * parse.y: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
+ Include gtype-java.h.
+
+2002-06-02 Tom Tromey <tromey@redhat.com>
+
+ Fix for PR java/5913:
+ * parse.y (patch_binop): Call patch_string on op1.
+
+2002-06-02 Tom Tromey <tromey@redhat.com>
+
+ Fix for PR java/1343, PR java/6336:
+ * parse.y (make_nested_class_name): Remove extraneous `else'; fix
+ formatting. Changed return type.
+ (anonymous_class_counter): Moved to top of file.
+ (maybe_make_nested_class_name): Append number to class name for
+ function-local classes.
+
+2002-05-28 Zack Weinberg <zack@codesourcery.com>
+
+ * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
+ * Make-lang.in: Update dependency lists.
+
+2002-05-18 Mark Mitchell <mark@codesourcery.com>
+
+ * gjavah.c (throwable_p): Do not free the name of the class after
+ passing it to find_class.
+ * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
+ * jcf-io.c (dirent.h): Include it.
+ (fnmatch.h): Likewise.
+ (compare_path): New function.
+ (java_or_class_file): Likewise.
+ (memoized_dirlist_entry): New type.
+ (memoized_dirlist_lookup_eq): New function.
+ (memoized_dirlists): New variable.
+ (caching_stat): New function.
+ (memoized_class_lookup_eq): New function.
+ (memoized_class_lookups): Likewise.
+ (find_class): Use memoized_class_lookups and caching_stat.
+ * jcf.h (JCF_USE_SCANDIR): Define.
+ * parse.y (java_expand_classes): Write the class files in reverse
+ order.
+
+2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
+
+2002-05-13 Mark Mitchell <mark@codesourcery.com>
+
+ * jcf-write.c (write_classfile): Unlink the temporary file if it
+ cannot be renamed. Use concat to build up the name of the
+ temporary file.
+
+2002-05-08 Mark Mitchell <mark@codesourcery.com>
+
+ * jcf-write.c (write_classfile): Write the file to a
+ temporary file and then rename it.
+
+2002-05-07 Tom Tromey <tromey@redhat.com>
+
+ * gjavah.c (throwable_p): Use xstrdup, not strdup.
+
+ Fix for PR java/1200:
+ * gjavah.c (throwable_p): New function.
+ (decode_signature_piece): Use it. A `WeakReference' isn't the
+ same as a `jweak'.
+ Include hashtab.h.
+ (gcjh_streq): New function.
+
+2002-05-07 Andreas Jaeger <aj@suse.de>
+
+ * parse.y (finish_for_loop): Fix if statement.
+
+2002-05-06 Tom Tromey <tromey@redhat.com>
+
+ Fix for PR java/5941:
+ * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
+ loop update expression.
+ (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
+ * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
+
+2002-05-04 Mark Wielaard <mark@klomp.org>
+
+ For PR java/6519:
+ * parse.y (build_string_concatenation): Return just op1 only when op2
+ is null and op1 is a STRING_CST, otherwise always construct a
+ StringBuffer.
+
+2002-04-27 Tom Tromey <tromey@redhat.com>
+
+ For PR java/6382:
+ * parse.y (string_convert_int_cst): New function.
+ (merge_string_cste): Use it.
+
+2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * java-tree.h (java_parse_file): Update.
+ (java_set_yydebug): Remove.
+ * jcf-parse.c (yydebug): Remove.
+ (java_set_yydebug): Die.
+ (java_parse_file): Update.
+ * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
+
+2002-04-24 Tom Tromey <tromey@redhat.com>
+
+ For PR java/6425:
+ * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
+ EXPR_WFL_QUALIFICATION of qual_wfl.
+
+2002-04-23 Per Bothner <per@bothner.com>
+
+ * expr.c (PRE_JSR): Call NOTE_LABEL for return address.
+ * java-tree.h (BCODE_RETURN_TARGET): Removed - never set.
+ (BCODE_TARGET): Remove BCODE_RETURN_TARGET.
+
+2002-04-23 Tom Tromey <tromey@redhat.com>
+
+ For PR java/6314:
+ * jvspec.c (lang_specific_driver): Use --resource, not -R. Also
+ recognize `-fcompile-resource='.
+ * gcj.texi (Invoking gcj): Use --resource, not -R. Expanded text
+ a bit.
+
+2002-04-22 Alexandre Petit-Bianco <apbianco@redhat.com>
+
+ * jcf-parse.c: (yyparse): Don't prepend "./" to relative
+ paths. Fixes PR java/2791.
+
2002-04-19 Andrew Haley <aph@redhat.com>
- * jcf-write.c (push_long_const): lo, hi: New variables.
- Use rshift_double to extract the high part of a 64-bit long.
- Use WORD_TO_INT to extract the low part.
+ * jcf-write.c (push_long_const): lo, hi: New variables.
+ Use rshift_double to extract the high part of a 64-bit long.
+ Use WORD_TO_INT to extract the low part.
- * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
- HOST_WIDE_INT for num. Use JPOOL_UINT to get it.
- CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
+ * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
+ HOST_WIDE_INT for num. Use JPOOL_UINT to get it.
+ CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
Fix for PR java/6294:
* parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
interfaces.
-
+
2002-04-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
Fix for PR java/6085:
Fix for PR java/5993:
* parse.y (resolve_package): Return the decl if resolution was
- successful. Don't special case "java.lang" and "java.lang.reflect"
+ successful. Don't special case "java.lang" and "java.lang.reflect"
packages. Set type_name to the merged identifier.
(resolved_qualified_expression_name): Print error using "name" if
resolve_package returns NULL_TREE.
2002-03-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
- * gcj.texi: @code{gcj} becomes @command{gcj}.
+ * gcj.texi: @code{gcj} becomes @command{gcj}.
@code{gcc} becomes @command{gcc}.
GcjRaw changed to gnu.gcc.RawData.
Fix for PR java/5812.
* expr.c (build_java_jsr): Take pc arguments, and do lookup_label
- gere instead of in JSR macro. Likewise with load_type_state call.
+ here instead of in JSR macro. Likewise with load_type_state call.
Do the latter on if the return_pc has been verified (the jsr returns).
- (JSR): No just call build_java_jsr.
+ (JSR): Now just call build_java_jsr.
2002-03-07 Jeff Sturm <jsturm@one-point.com>