+2004-09-30 Per Bothner <per@bothner.com>
+
+ Simplify lexer. Implement --enable-mapped-location support.
+ * jcf-parse.c (parse_class_file): Use linemap_line_start.
+ (parse_source_file_1): Pass filename as extra parameter, so we can call
+ linemap_add and set input_location here, rather than in both callers.
+ (read_class): Pass copied filename to parse_source_file_1.
+ Don't initialize wfl_operator - only needed for source compilation.
+ (read_class, jcf_parse): Call linemap_add with LC_LEAVE.
+ * lex.h: Remove a bunch of debugging macros.
+ * lex.h (struct_java_line, struct java_error): Remove types.
+ (JAVA_COLUMN_DELTA): Remove - use java_lexer.next_colums instead.
+ (struct java_lc_s): Remove prev_col field.
+ (struct java_lexer): New fields next_unicode, next_columns, and
+ avail_unicode. New position field, and maybe token_start field.
+ Don't need hit_eof field - use next_unicode == -1 instead.
+ (JAVA_INTEGERAL_RANGE_ERROR): Rename to JAVA_RANGE_ERROR.
+ (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR): Update accordingly.
+ * parse.h: Various changes for USE_MAPPED_LOCATION.
+ (EXPR_WFL_EMIT_LINE_NOTE): XXX
+ (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
+ (struct parser_ctxt): New file_start_location field.
+ Remove p_line, c_line fields since we no longer save lines.
+ Remove elc, lineno, and current_jcf fields - no longer used.
+ * parse.y: Updates for USE_MAPPED_LOCATION and new lexer.
+ Don't use EXPR_WFL_ADD_COL since that isn't trivial with
+ source_location and is probably not needed anymore anyway.
+ Use new expr_add_Location function.
+ (SET_EXPR_LOCATION_FROM_TOKEN): New convenience macro.
+ (java_pop_parser_context): Minor cleanup.
+ (java_parser_context_save_global, java_parser_context_restore_global,
+ java_pop_parser_context): Save/restore input_location as a unit.
+ (issue_warning_error_from_context): If USE_MAPPED_LOCATION take
+ a source_location instead of a wfl context node.
+ (check_class_interface_creation): input_filename is not addressable.
+ (create_artificial_method): Calling java_parser_context_save_global
+ and java_parser_context_restore_global is overkill. Instead,
+ temporarily set input_location from class decl.
+ (java_layout_seen_class_methods): Set input_location from method decl.
+ (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
+ (finish_loop_body): Likewise.
+ * lex.c: Updates for USE_MAPPED_LOCATION. Use build_unknwon_wfl.
+ (java_sprint_unicode): Take a character, not index in line.
+ (java_sneak_uncode): Replaced by java_peek_unicode.
+ (java_unget_unicode): No longer used.
+ (java_allocate_new_line. java_store_unicode): Removed, since we
+ no longer remember "lines".
+ (java_new_lexer): Update for new data structures.
+ (java_read_char): Move unget_value checking to java_read_unicode.
+ (java_get_unicode, java_peek_unicode, java_next_unicode): New more
+ efficient functions that are used directly when lexing.
+ (java_read_unicode_collapsing_terminators): No longer needed.
+ (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
+ Re-organize to use java_peek_unicode to avoid java_unget_unicode.
+ (java_parse_escape_sequence): Rewrite to be simpler / more efficient.
+ (do_java_lex): Lots of movings around to avoid java_unget_unicode,
+ combine switch branches, and test for common token kinds earlier.
+ (java_lex_error): Rewrite.
+ * jv-scan.c (expand_location): New function, copied from tree.c.
+ (main): Set ctxp->filename instead of setting input_filename directly.
+
+2004-09-30 Per Bothner <per@bothner.com>
+
+ More cleanup for --enable-mapped-location.
+ * class.c (push_class): If USE_MAPPED_LOCATION don't set
+ input_location here. Instead do it in give_name_to_class.
+ (build_class_ref): Set DECL_ARTIFICIAL, for the sake of dwarf2out.
+ * expr.c (expand_byte_code): Call linemap_line_start.
+ * expr.c (build_expr_wfl): If USE_MAPPED_LOCATION, change final
+ parameters to a source_location. Don't need EXPR_WFL_FILENAME_NODE.
+ (expr_add_location): New function, if USE_MAPPED_LOCATION.
+ * class.c (maybe_layout_super_class): Adjust build_expr_wfl call
+ to USE_MAPPED_LOCATION case.
+
+ * java-tree.h (JAVA_FILE_P, ZIP_FILE_P): Remove unused macros.
+ * jcf-parse.c (java_parse_file): Don't set input_filename.
+ Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
+ Create a list of TRANSLATION_UNIT_DECL.
+ (current_file_list): Is now a TRANSLATION_UNIT_DECL chain. The
+ reason is so we can set a DECL_SOURCE_LOCATION for each file.
+ (java_parse_file): Don't set unused ZIP_FILE_P, JAVA_FILE_P..
+ Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
+ (file_start_location): New static.
+ (set_source_filename): Avoid extra access to input_filename macro.
+ Concatenate new name with class's package prefix.
+ (set_source_filename, give_name_to_class): Update.
+ (give_name_to_class): Set class's "line 0" input_location here.
+ (parse_class_file): Set input_location as a unit.
+
+ * jcf-parse.c (load_class): Sanity test if missing inner class file.
+
+2004-09-29 Per Bothner <per@bothner.com>
+
+ * java-tree.h: Redefine some macros and add some declaration
+ to handle the USE_MAPPED_LOCATION case.
+ * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2.
+ * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1.
+ * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
+ USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
+
+ * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
+ * decl.c (finish_method, java_add_stmt): Likewise.
+ * java-gimplify.c (java-gimplify.c): Likewise.
+ * jcf-write.c (generate_bytecode_insns): Likewise.
+ * lang.c (java_post_options): Likewise - call linemap_add.
+
+2004-09-29 Andrew Haley <aph@redhat.com>
+
+ PR java/17007
+ * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
+ result of TRUNC_MOD_EXPR.
+ (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
+ * decl.c (java_init_decl_processing): Mark
+ soft_lookupinterfacemethod_node and soft_instanceof_node pure.
+
+2004-09-28 Tom Tromey <tromey@redhat.com>
+
+ PR java/15710:
+ * class.c (add_miranda_methods): Load superinterface if not
+ already loaded.
+
+2004-09-28 Andrew Haley <aph@redhat.com>
+
+ PR java/17586
+ * jcf-parse.c (load_class): Don't try to read a class that we've
+ already read.
+
+2004-09-28 Andrew Haley <aph@redhat.com>
+
+ * jcf-parse.c (load_class): Back out previous broken patch.
+
+2004-09-28 Andrew Haley <aph@redhat.com>
+
+ PR java/17586
+ * jcf-parse.c (load_class): Don't try to read a class that we've
+ already read.
+ Check that we really did read the right class.
+
+2004-09-25 Tom Tromey <tromey@redhat.com>
+
+ PR java/17500:
+ * parse.y (create_artificial_method): Use add_method_1.
+
+2004-09-25 Kazu Hirata <kazu@cs.umass.edu>
+
+ * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
+ comment typos.
+ * gcj.texi: Fix typos.
+
+2004-09-24 Tom Tromey <tromey@redhat.com>
+
+ PR java/15656:
+ * parse.y (class_instance_creation_expression): Set `$$' to NULL
+ in error parts of rule.
+ (unary_expression): Don't call error_if_numeric_overflow when $1
+ is NULL.
+
+2004-09-24 Tom Tromey <tromey@redhat.com>
+
+ PR java/16789:
+ * parse.y (resolve_qualified_expression_name): Set
+ CAN_COMPLETE_NORMALLY on first call when chaining static calls.
+ * expr.c (force_evaluation_order): Check for empty argument list
+ after stripping COMPOUND_EXPR.
+
2004-09-23 Andrew Haley <aph@redhat.com>
PR java/16927: