1 2005-03-07 Bryce McKinlay <mckinlay@redhat.com>
3 * verify-glue.c (vfy_is_assignable_from): Perform static check using
4 can_widen_reference_to if the C++ ABI is in use.
5 (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
6 * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
7 type_isresolved, init_state, set_pc, state_get_pc,
8 _Jv_BytecodeVerifier): Clean up unused and disabled functions.
9 (verify_fail): Report the current PC from the verifier context.
10 (free_state): Remove #if 0 block to enable this function.
11 (free_verifier_context): Call free_state on state_list iterator
12 values before freeing them.
13 * expr.c (pop_type_0): Pop correct type for error message when stack
14 contains a multi-word type.
16 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
18 * expr.c (build_java_array_length_access): Remove !flag_new_verifier
19 for known NULL array length access.
21 2005-03-07 Tom Tromey <tromey@redhat.com>
23 * gcj.texi (Invoking gcj-dbtool): Document '-f'.
25 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
27 * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
28 typeck.c: Update copyright.
30 2005-03-06 Ranjit Mathew <rmathew@hotmail.com>
33 * xref.c, xref.h: Remove file.
34 * Make-lang.in (java/xref.o): Remove.
35 * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
36 * lang.c (flag_emit_xref): Remove definition.
37 * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
38 * typeck.c (convert): Remove use of do_not_fold.
39 * parse.y (do_not_fold): Remove definition.
40 (parser grammar): Remove xref code.
41 (maybe_create_class_interface_decl, create_class): Likewise.
42 (register_fields, method_header, finish_method_declaration): Likewise.
43 (declare_local_variables, source_end_java_method): Likewise.
44 (java_complete_expand_classes): Do not set do_not_fold.
45 (java_complete_expand_method): Remove xref code.
46 (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
47 (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
48 (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
49 (patch_synchronized_statement, patch_throw_statement): Likewise.
50 (maybe_build_class_init_for_field): Likewise.
52 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
54 * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
55 instead of IS_NON_TYPE_CODE_CLASS.
57 2005-03-04 Andrew Haley <aph@redhat.com>
60 * class.c (set_method_index): Don't set method_index if it is
62 (layout_class_method): Don't complain about "non-static method foo
63 overrides static method" in the case of indirect dispatch.
65 2005-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
67 * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
69 * Make-lang.in: Don't elide warnings in jcf-io.c.
71 2005-03-01 Per Bothner <per@bothner.com>
74 * check-init.c (wfl): Remove static.
75 (final_assign_error, check_init): Replace calls to parse_error_context
77 (check_init): Save, set, and restore input_location for each exp.
79 2005-03-01 Per Bothner <per@bothner.com>
81 * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
82 if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
83 * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
85 2005-03-01 Per Bothner <per@bothner.com>
87 * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
89 2005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
92 * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
95 2005-02-22 Tom Tromey <tromey@redhat.com>
98 * verify-impl.c (EITHER): New define.
99 (types_compatible): Handle it.
100 (check_field_constant): Use it.
102 2005-02-18 Tom Tromey <tromey@redhat.com>
105 * verify-impl.c (types_equal): Fixed test.
108 * verify-glue.c (vfy_class_has_field): New function.
109 * verify.h (vfy_class_has_field): Declare.
110 * verify-impl.c (check_field_constant): Added 'putfield'
112 (verify_instructions_0): Updated.
113 (types_equal): New function.
115 2005-02-14 Tom Tromey <tromey@redhat.com>
118 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
119 stack effect of multianewarray.
121 2005-02-14 Andrew Haley <aph@redhat.com>
124 * expr.c (expand_byte_code): Call promote_arguments().
125 (promote_arguments): New function.
126 * decl.c (check_local_unnamed_variable): Remove special case for
128 (find_local_variable): Promote all boolean types to int
129 when searching for local variable decls.
131 2005-02-12 Kazu Hirata <kazu@cs.umass.edu>
133 * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
134 parse-scan.y: Update copyright.
136 2005-02-11 Per Bothner <per@bothner.com>
139 * parse-scan.y (input_location): Remove variable.
140 (main_input_filename): New - replaces input_filename, which isn't
141 settable if USE_MAPPED_LOCATION.
142 * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
143 so we don't reference input_location or wfl_operator in that case.
144 * jv-scan.c (expand_location): Remove - no longer used.
145 (main): Set main_input_filename rather than input_filename.
147 2005-02-09 Richard Henderson <rth@redhat.com>
149 * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
150 * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
152 2005-02-08 Marcin Dalecki <martin@dalecki.de>
154 * expr.c (add_type_assertion): Use the proper enumeration type,
155 since this is what htab_find_slot() is expecting.
157 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
159 * gcj.texi: Update copyright dates.
161 2005-02-02 Tom Tromey <tromey@redhat.com>
163 * gcj.texi (libgcj Runtime Properties): Default library_control
166 2005-02-02 Ranjit Mathew <rmathew@hotmail.com>
169 * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
170 (modifiers) when square brackets are present in a declaration for
172 * jv-scan.c (main): Set input_filename and input_line.
174 2005-02-01 Tom Tromey <tromey@redhat.com>
177 * gjavah.c (get_field_name): Don't override name for JNI header.
179 2005-02-01 Roger Sayle <roger@eyesopen.com>
181 * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
182 of unsigned types using iushr and lushr JVM bytecodes.
184 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
187 * gjavah.c (jni_print_float): Do not emit floating-point
188 initialiser for a static final field.
189 (jni_print_double): Likewise.
191 2005-02-01 Mark Mitchell <mark@codesourcery.com>
194 2005-01-31 Mark Mitchell <mark@codesourcery.com>
195 * gjavah.c (print_field_info): Mark static data members of
196 floating-point type with "__extension__".
198 2005-01-31 Mark Mitchell <mark@codesourcery.com>
200 * gjavah.c (print_field_info): Mark static data members of
201 floating-point type with "__extension__".
203 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
206 * parse.y (build_string_concatenation): Remove redundant if.
207 (patch_conditional_expr): Attempt to patch_string() the condition
208 of a ?: as well, in addition to its other operands.
210 2005-01-25 Tom Tromey <tromey@redhat.com>
212 * Make-lang.in (java/java-tree-inline.o): Removed.
214 2005-01-25 Ranjit Mathew <rmathew@hotmail.com>
217 * parse.y (patch_binop): Allow comparisons against NULL only
218 if the other operand is of a reference type.
220 2005-01-24 Tom Tromey <tromey@redhat.com>
222 * java-tree.h (gcj_abi_version): Declare.
223 * class.c (make_class_data): Push gcj_abi_version into "next"
224 field. Renamed field.
225 * decl.c (gcj_abi_version): New global.
226 (parse_version): New function.
227 (java_init_decl_processing): Call it. Renamed 'next' field.
229 (GCJ_BINARYCOMPAT_ADDITION): New define.
231 2005-01-24 Roger Sayle <roger@eyesopen.com>
234 * jcf-write.c (generate_bytecode_insns): Conversions between
235 integer types of the same precision shouldn't generate widening
236 or narrowing conversion bytecodes.
238 2005-01-22 Kazu Hirata <kazu@cs.umass.edu>
240 * java-except.h, java-tree.h: Remove unused prototypes.
242 2005-01-20 Andrew Pinski <pinskia@gcc.gnu.org>
245 * jcf-write.c (perform_relocations): Don't call memcpy if source
246 and destination are the same.
248 2005-01-17 Tom Tromey <tromey@redhat.com>
250 * verify-impl.c (get_short): Sign extend.
253 2005-01-12 Ranjit Mathew <rmathew@hotmail.com>
255 * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
258 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
260 * verify.c: Revert to the version before the BC-ABI merge.
262 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
265 * check-init.c (check_init): Take care of references that do not
266 have an explicit final variable declaration (e.g. array length
267 access) for pre/post in/de-crement operators.
269 2005-01-08 Mark Wielaard <mark@klomp.org>
271 * parse.y (process_imports): Allocate (and free) original_name only
272 when not already defined.
273 * jcf-parse.c (read_class): Free results of find_class() and
275 (java_parse_file): Keep pointer to head of file_list and free when
276 done. Free result of lrealpath().
278 2005-01-05 Tom Tromey <tromey@redhat.com>
280 * gcj.texi (Standard Properties): java.ext.dirs is now used.
282 2004-12-20 Andrew Haley <aph@redhat.com>
284 * typeck.c: Use fold_convert for ints and booleans.
286 2004-12-17 Andrew Haley <aph@redhat.com>
289 * typeck.c (convert): Use a CONVERT_EXPR when converting to
290 BOOLEAN_TYPE or CHAR_TYPE.
291 (convert_to_boolean, convert_to_char) : Remove.
292 * convert.h (convert_to_boolean, convert_to_char) : Remove.
293 * expr.c (expand_load_internal): Do type conversion if type is not
296 2004-12-13 Danny Smith <dannysmith@users.sourceforge.net>
299 * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
302 2004-12-07 Andrew Haley <aph@redhat.com>
305 * jcf-parse.c (load_class): Remove sanity test for missing inner
308 2004-12-06 Tom Tromey <tromey@redhat.com>
310 * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
311 (java.uninstall): Likewise.
312 (java.maintainer-clean): Likewise.
313 (.INTERMEDIATE): Likewise.
314 (java.install-man): Likewise.
315 (gcj-dbtool.pod): New target.
316 * gcj.texi (Code Generation): Document -findirect-dispatch.
317 (libgcj Runtime Properties): Document
318 gnu.gcj.precompiled.db.path.
319 (Top): Link to "Invoking gcj-dbtool".
321 2004-12-06 Tom Tromey <tromey@redhat.com>
324 * java-tree.h (extract_field_decl): Declare.
325 * parse.y (extract_field_decl): Renamed from
326 strip_out_static_field_access_decl. No longer static.
327 * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
329 2004-12-03 Tom Tromey <tromey@redhat.com>
331 * lang.c (flag_new_verifier): Define.
332 (java_post_options): Set flag_new_verifier if indirect dispatch
334 * lang.opt (fnew-verifier): Removed.
336 2004-12-03 Tom Tromey <tromey@redhat.com>
339 * Make-lang.in (java.install-common): Only install transformed
340 gcjh if gcj-cross exists.
342 2004-12-03 Andrew Haley <aph@redhat.com>
345 * except.c (link_handler): Patch 'outer' field of siblings of the
346 range we're demoting.
348 2004-12-03 Andrew Haley <aph@redhat.com>
351 * class.c (layout_class_method): Don't fail to override a method
352 simply because it has DECL_ARTIFICIAL set.
354 2004-12-02 Tom Tromey <tromey@redhat.com>
357 * parse.y (craft_constructor): Special case null_pointer_node.
359 2004-12-02 Tom Tromey <tromey@redhat.com>
362 * java-gimplify.c (java_gimplify_expr): Don't call
363 SET_EXPR_LOCATION unless wrapped tree is an expression.
365 2004-11-27 Per Bothner <per@bothner.com>
367 * jcf-parse.c (set_source_filename): Improvement to Andrew's fix:
368 Fix fencepost error in 'i', which got executed one too many times.
369 Also, fold memcpy into explicit loop, as originally intended.
370 Also, free temporary 'buf' which otherwise leaks.
372 2004-11-27 Per Bothner <per@bothner.com>
374 * expr.c (build_expr_wfl): Only declare last_file and last_filenode
375 local static variables if not USE_MAPPED_LOCATION.
377 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
379 * class.c, decl.c, expr.c: Fix comment typos.
381 2004-11-26 Andrew Pinski <pinskia@physics.uc.edu>
384 * decl.c (end_java_method): Call
385 attach_init_test_initialization_flags on all the init_decls.
386 * parse.y (attach_init_test_initialization_flags): Move to ...
387 * expr.c (attach_init_test_initialization_flags): here and
388 support BIND_EXPR also.
389 * java-tree.h (attach_init_test_initialization_flags): Prototype.
390 * jcf-parse.c (parse_class_file): Don't disable class init
393 2004-11-25 Joseph S. Myers <joseph@codesourcery.com>
395 * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
398 2004-11-24 Richard Henderson <rth@redhat.com>
400 * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
401 vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
403 2004-11-24 Tom Tromey <tromey@redhat.com>
405 * verify.c (defer_merging): Don't use C++-style comment.
406 * verify.h (java_opcode): Added java_opcode_end.
407 * class.c (build_class_ref): Remove C++ comment and old FIXME.
409 * verify-impl.c (vfy_push_type): Removed bogus "return".
410 (initialize_stack): Use vfy_alloc and vfy_free.
411 (verify_instructions_0): Likewise.
413 * Merged gcj-abi-2-dev-branch to trunk.
415 2004-11-24 Andrew Haley <aph@redhat.com>
417 * jcf-parse.c (parse_class_file): Set file_start_location.
419 2004-11-10 Tom Tromey <tromey@redhat.com>
421 * class.c (make_field_value): Don't call build_static_field_ref.
422 (build_static_field_ref): Don't emit direct references when using
425 * gcj.texi (Invoking gij): Document -verbose. Put -verbose and
426 -verbose:class into man page synopsis.
428 2004-11-09 Tom Tromey <tromey@redhat.com>
430 * expr.c (build_java_arraystore_check): Still generate check if
431 element type is itself an array.
433 2004-11-08 Tom Tromey <tromey@redhat.com>
435 * java-tree.h (soft_check_assignment_node): Removed.
436 (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
437 * decl.c (java_init_decl_processing): Don't initialize
438 soft_check_assignment_node.
440 2004-11-05 Tom Tromey <tromey@redhat.com>
442 * class.c (layout_class_methods): Don't add Miranda methods when
443 using indirect dispatch.
445 2004-11-05 Bryce McKinlay <mckinlay@redhat.com>
447 * class.c (make_class_data): Call emit_assertion_table to set the
448 'assertion_table' field.
449 (build_signature_for_libgcj): Move here from expr.c.
450 (add_assertion_table_entry): New function. Callback for assertion
452 (emit_assertion_table): New. Take class argument, and generate
453 assertion table DECL based on the TYPE_ASSERTIONS hashtable.
454 * decl.c (init_decl_processing): Define assertion_entry_type record.
455 Push 'assertion_table' class field instead of 'verify'.
456 * expr.c (type_assertion_eq): Compare 'assertion_code' field.
457 (type_assertion_hash): Include 'assertion_code' in hash.
458 (add_type_assertion): Rewritten. Take class and assertion_code
459 arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
460 (can_widen_reference_to): Use new add_type_assertion() arguments.
461 * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
462 JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
463 (verify_identifier_node): Removed.
464 (assertion_entry_type, assertion_table_type): New.
465 (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
466 assertion code definitions.
467 (struct type_assertion): Add assertion_code. Rename 'source_type' and
468 'target_type' to 'op1' and 'op2'.
469 (add_type_assertion): Declare.
470 (lang_printable_name_wls): Remove unused definition.
471 * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
472 to emit runtime assertion.
473 (vfy_note_stack_type): Clean up non-C90 declarations.
474 (vfy_note_local_type): Likewise.
475 * verify.h (vfy_is_assignable_from): Declare.
476 * verify-impl.c (is_assignable_from_slow): Remove unused function.
477 (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
478 instead of is_assignable_from_slow().
479 (types_compatible): Reinstate ref_compatible() call.
481 2004-11-04 Tom Tromey <tromey@redhat.com>
483 * class.c (build_static_field_ref): Reverted previous patch.
485 * class.c (build_static_field_ref): Don't emit direct references
486 when using indirect dispatch.
488 2004-11-03 Tom Tromey <tromey@redhat.com>
490 * expr.c (expand_java_arrayload): Set lhs_type_node.
491 (expand_java_arraystore): Set rhs_type_node.
493 2004-11-02 Tom Tromey <tromey@redhat.com>
495 * jcf-parse.c (compute_class_name): Use filename length from zip
496 directory, not strlen.
498 * expr.c (expand_invoke): Mark new interface methods as abstract.
500 2004-11-01 Tom Tromey <tromey@redhat.com>
502 * verify-impl.c (push_jump): Removed check for uninitialized
504 (push_exception_jump): Likewise.
505 (handle_ret_insn): Likewise.
506 (handle_jsr_insn): Likewise.
507 (state_check_no_uninitialized_objects): Removed.
509 * decl.c (check_local_unnamed_variable): Recognize
510 promoted-to-int parameters when using the new verifier.
511 * expr.c (expand_java_arraystore): Explicitly request array type
512 when using new verifier.
513 (expand_java_arrayload): Likewise.
514 (invoke_build_dtable): Don't pass object_type_node as
515 expression argument to build_java_indirect_ref.
516 (build_java_check_indexed_type): Do nothing.
517 (build_java_arraystore_check): Handle case where array doesn't
519 (build_java_array_length_access): Likewise.
520 (expand_invoke): Handle case where interface overrides a method
522 (pop_type_0): Always succeed for reference types.
523 (process_jvm_instruction): Don't pop a value in a dead
525 (pop_arguments): Convert arguments to correct types.
527 2004-10-29 Andrew Haley <aph@redhat.com>
529 * jcf-parse.c (give_name_to_class): Remove line that was
532 2004-10-29 Andrew Haley <aph@redhat.com>
534 * jcf-parse.c (set_source_filename): Add code to build new sfname.
536 2004-10-20 Andrew Haley <aph@redhat.com>
538 * decl.c (end_java_method): Don't expand if flag_syntax_only.
540 2004-10-26 Tom Tromey <tromey@redhat.com>
542 * verify.h (vfy_notify_verified): Removed.
543 * verify-glue.c (vfy_notify_verified): Removed.
545 2004-10-26 Tom Tromey <tromey@redhat.com>
547 * verify-impl.c (debug_print_state): Declare `i' before code.
548 (merge_types): Modify `t' when it is null_type.
550 2004-10-26 Tom Tromey <tromey@redhat.com>
552 * verify-impl.c (type_print): Renamed from print. Now static and
554 (debug_print_state): Use type_print.
556 2004-10-25 Tom Tromey <tromey@redhat.com>
558 * expr.c (build_invokeinterface): Compute correct offset for
559 index into interface methods.
561 2004-10-20 Tom Tromey <tromey@redhat.com>
563 * java-tree.h (verify_jvm_instructions_new): Declare.
565 * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
568 * verify-impl.c (verify_instructions): Correctly handle wide
570 * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
571 (vfy_get_component_type): Strip pointer types.
572 (vfy_find_class): Use get_type_from_signature. Strip pointer
574 Include java-except.h.
576 2004-10-20 Bryce McKinlay <mckinlay@redhat.com>
578 * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
579 vfy_push_type_t, set_variable, add_new_state, merge_into,
580 handle_jsr_insn, branch_prepass, check_class_constant,
581 check_wide_constant, get_one_type, compute_static_types,
582 verify_instructions_0): Clean up C99 declarations after statements.
584 2004-10-20 Tom Tromey <tromey@redhat.com>
586 * verify-impl.c (merge_refs): Compare reference against iterator,
589 * verify-glue.c (vfy_tag): Mask off resolved flag.
591 2004-10-19 Tom Tromey <tromey@redhat.com>
593 * verify-impl.c (verify_instructions): Call vfy_note_local_type.
594 (init_state_with_stack): Initialize `this_type' in state.
595 (verify_method): Use debug_print.
596 * verify-glue.c (vfy_is_primitive): Removed debugging print.
597 (vfy_note_stack_depth): Reverted last patch.
598 (vfy_note_stack_type): Note pointer to Object, not Object.
599 (vfy_note_local_type): Likewise.
601 * verify.h (vfy_note_instruction_seen): Declare.
602 * verify-glue.c (verify_jvm_instructions_new): Set
603 BCODE_EXCEPTION_TARGET on target instruction.
604 (vfy_note_instruction_seen): New function.
605 * verify-impl.c (FLAG_INSN_SEEN): New define.
606 (verify_instructions_0): Set flag on instruction. Save state for
608 (verify_instructions): Call vfy_note_instruction_seen.
610 * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
611 (verify_jvm_instructions_new): Call method_init_exceptions,
612 add_handler, and handle_nested_ranges.
613 * verify-impl.c (verify_method): Return 1 on success.
614 (verify_instructions_0): Save the state at PC=0.
616 * verify-impl.c (init_type_from_class): Set is_resolved and
617 ref_next on new ref_intersection.
618 (init_type_from_string): Likewise.
620 2004-10-15 Bryce McKinlay <mckinlay@redhat.com>
622 * expr.c (expand_bytecode): Use verify_jvm_instructions_new
623 if flag_new_verifier is set.
624 * java-tree.h (flag_new_verifier): Declare.
625 * lang.opt (fnew-verifier): New option.
626 * verify-impl.c: Work around namespace pollution by undef'ing
628 (struct verifier_context): Make 'bytecode' const.
629 (verify_fail_pc): Pass -1 PC argument to vfy_fail.
630 (types_compatible): For the BC-ABI, always consider reference types
632 (check_class_constant): Use vfr->current_class.
633 (check_constant): Likewise.
634 (check_wide_constant): Likewise.
635 (check_field_constant): Check for 'L' at start of type name.
636 (get_one_type): Return pointer instead of type. Set type result in
637 caller via passed type pointer.
638 (compute_argument_types): Update to use new get_one_type arguments.
639 (compute_return_type): Likewise.
640 (make_verifier_context): New. Allocate and initialize 'vfr'.
641 (free_verifier_context): New. Free 'vfr' and its contents.
642 (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
643 and free_verifier_context.
645 2004-10-15 Tom Tromey <tromey@redhat.com>
647 * verify-glue.c (vfy_note_local_type): Mark argument as unused.
648 * verify.h (vfy_fail): Fixed formatting.
650 * verify-impl.c (vfr): Fixed comment formatting.
651 (collapse_type): New function.
652 (verify_instructions): Notify compiler about type map.
653 * verify.h (vfy_note_stack_depth): Updated.
654 (vfy_note_stack_type): Likewise.
655 (vfy_note_local_type): Likewise.
656 (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
658 * verify-glue.c (vfy_note_stack_depth): Correctly size type
659 state. Added `method' argument.
660 (vfy_note_stack_type): Renamed from vfy_note_type. Added `method'
662 (vfy_note_local_type): New function.
663 (vfy_unsuitable_type): Likewise.
664 (vfy_return_address_type): Likewise.
665 (vfy_null_type): Likewise.
667 * verify.h (VFY_IN_GCC): Removed.
668 (VFY_WANT_TYPEMAP): Removed.
669 * verify-impl.c (verify_instructions_0): Removed useless "\".
670 (struct state) <next>: Uncomment.
672 2004-10-13 Bryce McKinlay <mckinlay@redhat.com>
674 * verify-impl.c: Formatting fixes. Reformat C++-style comments to
677 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
679 * Make-lang.in (verify.o): Re-enabled this target.
680 * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
681 (vfy_get_interface): Likewise.
682 (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
683 * verify.h (verify_jvm_instructions_new): Declare.
684 * verify-impl.c (free_state): Temporarily comment out unused
687 2004-10-06 Tom Tromey <tromey@redhat.com>
689 * java-tree.h (JV_STATE_READ): New enum value.
691 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
693 * verify.h: New file.
695 2004-10-05 Bryce McKinlay <mckinlay@redhat.com>
697 * verify-impl.c, verify-glue.c, verify.h: New files.
698 * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
700 2004-09-24 Andrew Haley <aph@redhat.com>
702 * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
703 for a slot if it's of pointer type.
705 2004-09-14 Tom Tromey <tromey@redhat.com>
707 * class.c (make_class_data): Correctly initialize "state" field.
708 Initialize "engine" field.
709 * decl.c (java_init_decl_processing): Add "engine" field.
711 2004-09-10 Andrew Haley <aph@redhat.com>
714 * expr.c (build_invokeinterface): Use fast method for interface
716 * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
718 (struct lang_type): Add itable_methods, itable_decl, itable_syms_decl.
719 (emit_symbol_table): Add new arg, element_size.
720 * decl.c (java_init_decl_processing): Initialize Class.itable.
721 * class.c (GEN_TABLE): New macro.
722 (gen_indirect_dispatch_tables): Use it. Add itable.
723 (make_class_data): Add new arg for emit_symbol_table().
725 (add_miranda_methods): Make sure search_class has been parsed.
726 (emit_symbol_table): Add new arg, element_size.
728 2004-09-06 Andrew Haley <aph@redhat.com>
730 * verify.c (merge_types): Return Object for all merges of
732 * expr.c (add_type_assertion): Don't generate assertions when
733 source type is array of Object.
735 2004-09-03 Andrew Haley <aph@redhat.com>
737 * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
739 * lang.c (java_post_options): Force flag_verify_invocations if
740 we're not using indirect dispatch.
742 * expr.c (pop_type_0): Move test for interfaces before call to
743 can_widen_reference_to().
744 (build_signature_for_libgcj): Remove generation of canonical array
746 (add_type_assertion): Canonicalize both arrays.
747 Don't assert that type X can be assigned to Object.
748 Don't assert that type X an be assigned to type X.
749 Don't assert that Object can be assigned to type X.
750 (can_widen_reference_to): Warn whenever we generate an assertion.
751 (process_jvm_instruction): Use throwable_type_node for the type of
754 2004-09-01 Andrew Haley <aph@redhat.com>
756 * decl.c (java_init_decl_processing): Change
757 verify_identifier_node to "__verify".
758 * expr.c (add_type_assertion): Use verify_identifier_node for name.
759 * java-tree.h (verify_identifier_node): Change to "__verify".
761 * expr.c (build_signature_for_libgcj): New function.
762 (add_type_assertion): Use it to construct signatures for
763 source_type and target_type.
765 2004-08-27 Andrew Haley <aph@redhat.com>
767 * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
768 (verify_identifier_node): New.
769 (TYPE_VERIFY_METHOD): New.
770 (struct type_assertion): New type.
771 * expr.c (type_assertion_eq): New function.
772 (type_assertion_hash): New function.
773 (add_type_assertion): New function.
774 (can_widen_reference_to): Call add_type_assertion().
775 * decl.c (java_init_decl_processing): Add verify_identifier_node.
776 * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
777 (finish_class): Output TYPE_VERIFY_METHOD (type).
779 * decl.c (end_java_method): Nullify unused fields.
781 2004-08-17 Andrew Haley <aph@redhat.com>
783 * verify.c (defer_merging): Quieten.
784 * jcf-parse.c (load_class): Only try to open a class file if it's
785 java.lang.Object or if it's part of the current compilation.
786 Check that the class we just tried to load is the class we just
788 (java_parse_file): Set flag_verify_invocations off if we're
789 compiling from .class.
790 (parse_zip_file_entries): Abort if we try to read a dummy class.
791 * expr.c (can_widen_reference_to): Quieten.
792 (build_invokevirtual): Abort if we try to invokevirtual an
794 (expand_invoke): Don't build a non-interface call to an interface.
795 (build_instanceof): Don't do premature optimization if
796 flag_verify_invocations is not set.
797 * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
799 (build_static_field_ref): Add correct type conversion for
801 (add_miranda_methods): Disable generation of Miranda methods for
803 (layout_class_method): Don't complain about non-static method
804 overrides static method with dummy classes.
806 2004-08-13 Tom Tromey <tromey@redhat.com>
808 * class.c (build_static_field_ref): Re-enable atable lookups for
811 * parse.y (strip_out_static_field_access_decl): Indentation fix.
813 2004-08-11 Tom Tromey <tromey@redhat.com>
815 * gcj.texi (libgcj Runtime Properties): Document new properties.
817 2004-08-06 Andrew Haley <aph@redhat.com>
819 * jcf-parse.c (load_class): Check that we really have loaded the
820 class we're looking for.
822 2004-07-19 Andrew Haley <aph@redhat.com>
824 * verify.c (verify_jvm_instructions): Comment change only.
826 * typeck.c (build_java_array_type): Add size field to array name.
828 * java-tree.h (LOCAL_SLOT_P): New.
829 (update_aliases): Add PC argument.
830 (pushdecl_function_level): New function.
832 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
833 MODIFY_EXPR, and SAVE_EXPR.
834 (java_gimplify_modify_expr): New function.
836 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
837 (expand_iinc): Pass PC to update_aliases().
838 (STORE_INTERNAL): Likewise.
839 (process_jvm_instruction): Likewise.
841 * decl.c (base_decl_map): New variable.
842 (uniq): New variable.
843 (update_aliases): Rewrite with more thorough checking.
844 (debug_variable_p): New function.
845 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
846 (check_local_named_variable): Delete whole function.
847 (initialize_local_variable): New function.
848 (check_local_unnamed_variable): Add checks and comments.
849 (find_local_variable): Rewrite.
850 (java_replace_reference): New function.
851 (function_binding_level): New variable.
852 (pushdecl_function_level): New function.
853 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
854 (maybe_pushlevels): Call pushdecl() on each of the new decls.
855 (start_java_method): Reset uniq. Create base_decl_map. Set
856 function_binding_level.
857 (end_java_method): Null unused fields to save memory.
859 2004-06-29 Andrew Haley <aph@redhat.com>
861 * except.c (expand_start_java_handler): Push a new binding level.
862 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
863 register_exception_range() to register where we'll do it.
864 (expand_end_java_handler): Remove old bogus code. Replace with
865 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
866 the top of the expression we're curently building.
867 (maybe_end_try): Delete.
868 * decl.c (binding_level.exception_range): New field.
869 (clear_binding_level): Add field exception_range. Reformat.
870 (poplevel): Call expand_end_java_handler().
871 (poplevel): Call java_add_stmt only if functionbody is false.
872 (maybe_poplevels): Don't call maybe_end_try() from here.
873 (end_java_method): Clear no longer used trees in function decl.
874 (register_exception_range): New function.
875 * java-tree.h (register_exception_range, struct eh_range): Declare.
877 2004-06-22 Andrew Haley <aph@redhat.com>
879 * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
881 * check-init.c (get_variable_decl): Teach check-init about
882 FIELD_DECLs addressed via the otable.
883 * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
886 2004-05-28 Andrew Haley <aph@redhat.com>
888 * jcf-parse.c (load_class): Don't try to read a class that we've
891 * expr.c (build_invokeinterface): Use the old-fashioned way of
892 doing indirect dispatch: look up interfaces by name.
893 * java-tree.h (enum java_tree_index): Add
894 JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
895 * decl.c (java_init_decl_processing): Add
896 soft_lookupinterfacemethodbyname_node.
898 * gjavah.c (print_method_info): Final methods have vtable entries,
899 so gjavah needs to output them.
900 * class.c (layout_class_method): Generate vtable entries for final
902 * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
903 dispatch, even if a method is final.
905 2004-05-25 Andrew Haley <aph@redhat.com>
907 * class.c (build_symbol_entry): Convert the names of constructors
908 to init_identifier_node when generating an entry for the indirect
911 * expr.c (build_known_method_ref): Generate indirect calls for
912 all methods marked DECL_EXTERNAL or TREE_PUBLIC.
914 2004-05-24 Andrew Haley <aph@redhat.com>
916 * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
917 atable element is of the right type.
919 * class.c (build_static_field_ref): Cast pointer to correct type
922 2004-04-20 Bryce McKinlay <mckinlay@redhat.com>
924 * Merged with HEAD as of 20040514. Diff against
925 gcj-abi-2-merge-20040514.
927 2004-04-16 Andrew Haley <aph@redhat.com>
929 * verify.c (check_pending_block): Disable subroutine checks.
930 (defer_merging): New function.
931 (merge_types): If types are dummy, use defer_merging to combine them.
932 (verify_jvm_instructions): If invocation is invokeinterface and
933 target is dummy, assume target really is an interface.
935 * parse.y (patch_invoke): Break out call to java_create_object.
937 * lang.c (flag_verify_invocations): New.
939 * jcf-parse.c (load_class): If we've already failed to load a
940 class, don't try again.
941 (load_class): If we can't find a .class file, don't fail, but emit
943 (parse_class_file): Don't act on dummy methods.
945 * java-tree.h (flag_verify_invocations): New.
947 (lang_type.dummy_class): New field.
948 (java_create_object): New function.
951 * expr.c (build_field_ref): Widen field offset.
952 (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
953 that each of its elements is compatible with the one we're
955 (pop_type_0): Issue a warning to say that we need to generate a
957 (java_create_object): New function.
958 (build_field_ref): Only generate hard refs if we're not using
960 (expand_java_field_op): If we're using !verify_invocations and we
961 see a missing field, generate a decl for it.
963 (expand_invoke): If a class doesn't have the method we seek and
964 we're using !flag_verify_invocations, generate a decl for the
967 (build_known_method_ref): Always use indirect dispatch via the
968 atable for static methods.
970 (expand_java_NEW): Break out object creation into new function,
973 (can_widen_reference_to): Issue a warning to say that we need to
974 generate a runtime check.
976 * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
977 (make_method_value): Also use index for interfaces.
978 (make_class_data): Skip dummy field for inherited data.
979 Don't build method array for dummy methods.
980 Set size_in_byte to -1 when using inirect dispatch
981 Don't build a hard class ref if we don't have a hard ref to our
982 superclass, or if we're using inirect dispatch.
983 Null out dispatch tables.
985 (layout_class_method): Don't complain about non-static method
986 overrides static method is method is artificial.
988 (build_static_field_ref): Disable atable references to static
989 fields for the time being.
991 (layout_class_methods): Check for CLASS_INTERFACE as
992 well as CLASS_ABSTRACT.
994 2004-11-24 Steven Bosscher <stevenb@suse.de>
996 * class.c (make_class_data): Don't check flag_inline_functions.
997 * lang.c (flag_really_inline): Remove unused flag.
998 (java_handle_option): Don't set it here. Remove special handling
999 of flag_inline_functions for Java.
1000 (java_init): Don't set flag_inline_trees here. Already done...
1001 (java_post_options): ...here. Don't clear flag_inline_functions.
1003 2004-11-24 Steven Bosscher <stevenb@suse.de>
1005 * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
1006 (java_gimplify_exit_block_expr): New function.
1007 (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
1009 * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
1010 (EXIT_BLOCK_EXPR): Likewise.
1011 * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
1012 (LABELED_BLOCK_BODY): Likewise.
1013 (EXIT_BLOCK_LABELED_BLOCK): Likewise.
1014 * jcf-write.c (generate_bytecode_insns): Don't handle the unused
1015 EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of
1017 * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
1018 (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
1019 EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the
1020 second operand of EXIT_BLOCK_EXPR.
1021 * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
1023 (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
1025 2004-11-23 Ben Elliston <bje@au.ibm.com>
1027 * xref.h (xref_flag_value): Remove.
1028 (xref_set_data, xref_get_data): Likewise.
1029 (xref_set_current_fp): Likewise.
1030 (XREF_NONE): Likewise.
1031 (XREF_GET_DATA): Likewise.
1032 * xref.c (xref_flag_value): Remove.
1033 (xref_set_data, xref_get_data): Likewise.
1034 (xref_set_current_fp): Likewise.
1036 2004-11-23 Ben Elliston <bje@au.ibm.com>
1038 * gjavah.c (output_directory): Make static.
1039 (temp_directory): Likewise.
1041 2004-11-15 Tom Tromey <tromey@redhat.com>
1043 * decl.c (instn_ptr_type_node): Removed.
1044 (lineNumbers_ptr_type_node): Removed.
1045 (jint_type): Removed.
1046 (jint_ptr_type): Removed.
1048 2004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
1051 * check-init.c (check_init): Ignore DECL_EXPR.
1052 * expr.c (always_initialize_class_p): Reenable.
1053 (build_class_init): Use a variable to store the decl. Also use
1054 boolean_false_node instead of integer_zero_node.
1055 * parse.y (attach_init_test_initialization_flags): Add a decl_expr
1058 2004-11-08 Tom Tromey <tromey@redhat.com>
1061 * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
1062 generating a JNI header.
1063 (print_field_info): Handle JNI headers.
1064 (jni_print_float): Likewise.
1065 (jni_print_double): Likewise.
1067 2004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
1069 * decl.c (end_java_method): Remove duplicated code.
1071 2004-11-06 Zack Weinberg <zack@codesourcery.com>
1072 Gerald Pfeifer <gerald@pfeifer.com>
1074 * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
1077 2004-11-02 Bryce McKinlay <mckinlay@redhat.com>
1080 * class.c: Reinstate 2004-08-18 patch.
1081 (make_local_function_alias): Don't create an alias for extern (native)
1084 2004-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1087 * class.c (make_local_function_alias): Revert 2004-08-18 change.
1088 (make_method_value): Likewise.
1090 2004-10-21 Andrew Haley <aph@redhat.com>
1093 * jcf-parse.c (set_source_filename): Add code to build new sfname.
1095 2004-10-20 Andrew Haley <aph@redhat.com>
1097 * decl.c (end_java_method): Don't expand if flag_syntax_only.
1098 Remove duplicated code block.
1100 2004-10-18 Steven Bosscher <stevenb@suse.de>
1102 * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
1103 New rules to work around old Bison warnings.
1105 2004-10-17 Steven Bosscher <stevenb@suse.de>
1107 * class.c (ident_subst): Always alloca buffer.
1108 * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
1109 opcode after including javaop.def.
1110 * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
1111 conditional expression that exits, to avoid warnings.
1112 * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
1113 a user of an extension.
1114 * win32-host.c: Move check down to have non-empty file when
1115 WIN32 is not defined.
1117 * Make-lang.in (java-warn): Add STRICT_WARN.
1118 (java/jcf-io.o-warn): Don't have Werror for this file.
1119 * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
1121 2004-10-16 Hans-Peter Nilsson <hp@bitrange.com>
1123 * expr.c (expr_add_location): Move declaration to before all
1125 * parse.y (java_expand_classes): Ditto.
1126 * lex.c (java_peek_unicode): Ditto.
1128 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
1130 * check-init.c: Use %<, %> and %q for quoting in diagnostics,
1131 if possible, else convert `foo' to 'foo'.
1132 * class.c: Likewise.
1135 * jcf-io.c: Likewise.
1136 * jcf-parse.c: Likewise.
1139 * parse.h: Likewise.
1141 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
1143 * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
1144 rename parameter 'msg' to 'msgid' in function declaration.
1145 (issue_warning_error_from_context): Likewise.
1146 (yyerror): Rename parameter 'msg' to 'msgid'.
1147 (all over): Use new quoting style for diagnostics.
1149 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
1151 * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
1152 jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
1155 2004-10-14 Matt Austern <austern@apple.com>
1157 * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
1160 2004-10-13 Tom Tromey <tromey@redhat.com>
1163 * lang.opt (--extdirs): Document.
1164 * jvspec.c (lang_specific_driver): Recognize -encoding and
1167 2004-10-06 Ulrich Weigand <uweigand@de.ibm.com>
1169 * parse.y (issue_warning_error_from_context): Use va_list *
1170 instead of va_list parameter.
1171 (parse_error_context): Update call.
1172 (parse_warning_context): Likewise.
1174 2004-10-05 Zack Weinberg <zack@codesourcery.com>
1176 * parse.y, parse-scan.y: Add list of diagnostic messages to
1177 insulate translation template from version of yacc/bison used
1178 to compile the grammar.
1180 2004-10-05 Ranjit Mathew <rmathew@hotmail.com>
1182 Prepare for %q, %< and %> in diagnostic message strings.
1183 * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
1184 Name second parameter 'msgid'.
1185 * parse.y: Additionally include pretty-print.h and diagnostic.h.
1186 (issue_warning_error_from_context): Use pretty-printer functions
1187 instead of vsprintf for constructing formatted messages. Rename
1188 parameter 'msg' to 'msgid'.
1189 (parse_error_context): Rename parameter 'msg' to 'msgid'.
1190 (parse_warning_context): Likewise.
1192 2004-10-05 Andrew Haley <aph@redhat.com>
1195 * jcf-parse.c (parse_zip_file_entries): If a class has a
1196 superclass and a TYPE_SIZE of zero, lay it out.
1198 2004-09-30 Andrew Haley <aph@redhat.com>
1201 * jcf-parse.c (compute_class_name): Rewrite.
1203 2004-10-01 Jan Hubicka <jh@suse.cz>
1205 * java.c (java_expand_body): Update call of tree_rest_of_compilation.
1207 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
1209 * lex.c: Fix a comment typo.
1211 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
1213 * java-tree.h: Fix a comment typo.
1215 2004-09-30 Per Bothner <per@bothner.com>
1217 Simplify lexer. Implement --enable-mapped-location support.
1218 * jcf-parse.c (parse_class_file): Use linemap_line_start.
1219 (parse_source_file_1): Pass filename as extra parameter, so we can call
1220 linemap_add and set input_location here, rather than in both callers.
1221 (read_class): Pass copied filename to parse_source_file_1.
1222 Don't initialize wfl_operator - only needed for source compilation.
1223 (read_class, jcf_parse): Call linemap_add with LC_LEAVE.
1224 * lex.h: Remove a bunch of debugging macros.
1225 * lex.h (struct_java_line, struct java_error): Remove types.
1226 (JAVA_COLUMN_DELTA): Remove - use java_lexer.next_colums instead.
1227 (struct java_lc_s): Remove prev_col field.
1228 (struct java_lexer): New fields next_unicode, next_columns, and
1229 avail_unicode. New position field, and maybe token_start field.
1230 Don't need hit_eof field - use next_unicode == -1 instead.
1231 (JAVA_INTEGERAL_RANGE_ERROR): Rename to JAVA_RANGE_ERROR.
1232 (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR): Update accordingly.
1233 * parse.h: Various changes for USE_MAPPED_LOCATION.
1234 (EXPR_WFL_EMIT_LINE_NOTE): XXX
1235 (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
1236 (struct parser_ctxt): New file_start_location field.
1237 Remove p_line, c_line fields since we no longer save lines.
1238 Remove elc, lineno, and current_jcf fields - no longer used.
1239 * parse.y: Updates for USE_MAPPED_LOCATION and new lexer.
1240 Don't use EXPR_WFL_ADD_COL since that isn't trivial with
1241 source_location and is probably not needed anymore anyway.
1242 Use new expr_add_Location function.
1243 (SET_EXPR_LOCATION_FROM_TOKEN): New convenience macro.
1244 (java_pop_parser_context): Minor cleanup.
1245 (java_parser_context_save_global, java_parser_context_restore_global,
1246 java_pop_parser_context): Save/restore input_location as a unit.
1247 (issue_warning_error_from_context): If USE_MAPPED_LOCATION take
1248 a source_location instead of a wfl context node.
1249 (check_class_interface_creation): input_filename is not addressable.
1250 (create_artificial_method): Calling java_parser_context_save_global
1251 and java_parser_context_restore_global is overkill. Instead,
1252 temporarily set input_location from class decl.
1253 (java_layout_seen_class_methods): Set input_location from method decl.
1254 (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
1255 (finish_loop_body): Likewise.
1256 * lex.c: Updates for USE_MAPPED_LOCATION. Use build_unknwon_wfl.
1257 (java_sprint_unicode): Take a character, not index in line.
1258 (java_sneak_uncode): Replaced by java_peek_unicode.
1259 (java_unget_unicode): No longer used.
1260 (java_allocate_new_line. java_store_unicode): Removed, since we
1261 no longer remember "lines".
1262 (java_new_lexer): Update for new data structures.
1263 (java_read_char): Move unget_value checking to java_read_unicode.
1264 (java_get_unicode, java_peek_unicode, java_next_unicode): New more
1265 efficient functions that are used directly when lexing.
1266 (java_read_unicode_collapsing_terminators): No longer needed.
1267 (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
1268 Re-organize to use java_peek_unicode to avoid java_unget_unicode.
1269 (java_parse_escape_sequence): Rewrite to be simpler / more efficient.
1270 (do_java_lex): Lots of movings around to avoid java_unget_unicode,
1271 combine switch branches, and test for common token kinds earlier.
1272 (java_lex_error): Rewrite.
1273 * jv-scan.c (expand_location): New function, copied from tree.c.
1274 (main): Set ctxp->filename instead of setting input_filename directly.
1276 2004-09-30 Per Bothner <per@bothner.com>
1278 More cleanup for --enable-mapped-location.
1279 * class.c (push_class): If USE_MAPPED_LOCATION don't set
1280 input_location here. Instead do it in give_name_to_class.
1281 (build_class_ref): Set DECL_ARTIFICIAL, for the sake of dwarf2out.
1282 * expr.c (expand_byte_code): Call linemap_line_start.
1283 * expr.c (build_expr_wfl): If USE_MAPPED_LOCATION, change final
1284 parameters to a source_location. Don't need EXPR_WFL_FILENAME_NODE.
1285 (expr_add_location): New function, if USE_MAPPED_LOCATION.
1286 * class.c (maybe_layout_super_class): Adjust build_expr_wfl call
1287 to USE_MAPPED_LOCATION case.
1289 * java-tree.h (JAVA_FILE_P, ZIP_FILE_P): Remove unused macros.
1290 * jcf-parse.c (java_parse_file): Don't set input_filename.
1291 Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
1292 Create a list of TRANSLATION_UNIT_DECL.
1293 (current_file_list): Is now a TRANSLATION_UNIT_DECL chain. The
1294 reason is so we can set a DECL_SOURCE_LOCATION for each file.
1295 (java_parse_file): Don't set unused ZIP_FILE_P, JAVA_FILE_P..
1296 Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
1297 (file_start_location): New static.
1298 (set_source_filename): Avoid extra access to input_filename macro.
1299 Concatenate new name with class's package prefix.
1300 (set_source_filename, give_name_to_class): Update.
1301 (give_name_to_class): Set class's "line 0" input_location here.
1302 (parse_class_file): Set input_location as a unit.
1304 * jcf-parse.c (load_class): Sanity test if missing inner class file.
1306 2004-09-29 Per Bothner <per@bothner.com>
1308 * java-tree.h: Redefine some macros and add some declaration
1309 to handle the USE_MAPPED_LOCATION case.
1310 * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2.
1311 * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1.
1312 * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
1313 USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
1315 * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
1316 * decl.c (finish_method, java_add_stmt): Likewise.
1317 * java-gimplify.c (java-gimplify.c): Likewise.
1318 * jcf-write.c (generate_bytecode_insns): Likewise.
1319 * lang.c (java_post_options): Likewise - call linemap_add.
1321 2004-09-29 Andrew Haley <aph@redhat.com>
1324 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
1325 result of TRUNC_MOD_EXPR.
1326 (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
1327 * decl.c (java_init_decl_processing): Mark
1328 soft_lookupinterfacemethod_node and soft_instanceof_node pure.
1330 2004-09-28 Tom Tromey <tromey@redhat.com>
1333 * class.c (add_miranda_methods): Load superinterface if not
1336 2004-09-28 Andrew Haley <aph@redhat.com>
1339 * jcf-parse.c (load_class): Don't try to read a class that we've
1342 2004-09-28 Andrew Haley <aph@redhat.com>
1344 * jcf-parse.c (load_class): Back out previous broken patch.
1346 2004-09-28 Andrew Haley <aph@redhat.com>
1349 * jcf-parse.c (load_class): Don't try to read a class that we've
1351 Check that we really did read the right class.
1353 2004-09-25 Tom Tromey <tromey@redhat.com>
1356 * parse.y (create_artificial_method): Use add_method_1.
1358 2004-09-25 Kazu Hirata <kazu@cs.umass.edu>
1360 * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
1362 * gcj.texi: Fix typos.
1364 2004-09-24 Tom Tromey <tromey@redhat.com>
1367 * parse.y (class_instance_creation_expression): Set `$$' to NULL
1368 in error parts of rule.
1369 (unary_expression): Don't call error_if_numeric_overflow when $1
1372 2004-09-24 Tom Tromey <tromey@redhat.com>
1375 * parse.y (resolve_qualified_expression_name): Set
1376 CAN_COMPLETE_NORMALLY on first call when chaining static calls.
1377 * expr.c (force_evaluation_order): Check for empty argument list
1378 after stripping COMPOUND_EXPR.
1380 2004-09-23 Andrew Haley <aph@redhat.com>
1383 * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
1386 2004-09-23 Tom Tromey <tromey@redhat.com>
1389 * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
1390 where operand is null.
1392 2004-09-23 Tom Tromey <tromey@redhat.com>
1395 * parse.y (not_accessible_p): Allow access to protected members
1396 even when class is not static.
1398 2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
1400 * Make-lang.in: Revert the gcc-none.o change.
1402 2004-09-22 Nathan Sidwell <nathan@codesourcery.com>
1404 * parse.y (patch_anonymous_class): VEC_space returns true if there
1407 2004-09-21 Matt Austern <austern@apple.com>
1410 * gjavah.c (free_method_name_list): Fix function definition so
1411 it's a proper C prototype.
1413 2004-09-21 Tom Tromey <tromey@redhat.com>
1416 * gjavah.c (free_method_name_list): New method.
1419 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
1420 Zack Weinberg <zack@codesourcery.com>
1422 * java-tree.def: Use tree_code_class enumeration constants
1423 instead of code letters.
1424 * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
1425 new tree-class enumeration constants.
1427 2004-09-13 Tom Tromey <tromey@redhat.com>
1430 * class.c (layout_class_method): Put synthetic methods into the
1433 2004-09-11 Andrew Pinski <apinski@apple.com>
1435 * Make-lang.in (java/ggc-none.c): Change dependency
1436 for ggc.h into $(GGC_H).
1438 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
1440 * Make-lang.in (java/win32-host.o): Add dependency on
1442 * win32-host.c: Add includes for coretypes.h, jcf.h
1444 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
1446 * Make-lang.in (GCJH_OBJS): Change dependency from
1447 ggc-none.o to java/ggc-none.o
1448 (JCFDUMP_OBJS): Likewise.
1449 (java/ggc-none.o): New target.
1451 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
1453 * boehm.c (get_boehm_type_descriptor): Adjust build_int_cst calls.
1454 * class.c (build_utf8_ref, build_static_field_ref,
1455 make_field_value, make_method_value, get_dispatch_table,
1456 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
1457 * constants.c (get_tag_node, build_ref_from_constant_pool,
1458 build_constants_constructor): Likewise.
1459 * decl.c (java_init_decl_processing): Likewise.
1460 * expr.c (build_java_array_length_access, build_newarray,
1461 expand_java_multianewarray, expand_java_pushc, expand_iinc,
1462 build_java_binop, build_field_ref, expand_java_add_case,
1463 expand_java_call, build_known_method_ref, build_invokevirtual,
1464 build_invokeinterface, build_jni_stub): Likewise.
1465 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
1466 * jcf-parse.c (get_constant): Likewise.
1467 * lex.c (do_java_lex): Likewise.
1468 * parse.y (patch_binop, patch_unaryop, patch_cast,
1469 build_newarray_node, patch_newarray): Likewise.
1470 * resource.c (compile_resource_data): Likewise.
1471 * typeck.c (build_prim_array_type): Likewise.
1473 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
1475 * decl.c (java_init_decl_processing): Adjust
1476 initialize_sizetypes call.
1478 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
1480 * jv-scan.c (fancy_abort): Add.
1482 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
1484 * expr.c (build_java_arrayaccess): Use convert to change
1487 2004-08-19 Bryce McKinlay <mckinlay@redhat.com>
1489 * class.c (make_local_function_alias): Allocate extra space for 'L'
1490 in name buffer. Reported by Thomas Neumann.
1492 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
1494 * parse.h (JAVA_RADIX10_FLAG): Rename to ...
1495 (JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning.
1496 * lex.c (do_java_lex): Adjust.
1497 (error_if_numeric_overflow): Likewise.
1499 2004-08-18 Andrew Pinski <apinski@apple.com>
1501 * class.c (make_local_function_alias): Only make a new decl if we
1502 support alias attribute on all decls.
1504 2004-08-18 Bryce McKinlay <mckinlay@redhat.com>
1506 * class.c (make_local_function_alias): New function. Create local
1507 alias for public method DECL.
1508 (make_method_value): Use make_local_function_alias.
1509 * parse.y (craft_constructor): Don't special-case anonymous classes.
1510 Always set ctor_name to init_identifier_node.
1511 (lookup_method_invoke): Call layout_class_method when creating
1512 anonymous class constructor.
1514 2004-08-18 Richard Henderson <rth@redhat.com>
1516 * java-gimplify.c (java_gimplify_expr): Move '2' handling into
1517 default case. Treat '<' similarly. Update for
1518 is_gimple_formal_tmp_var name change.
1520 2004-08-17 Andrew Haley <aph@redhat.com>
1522 * lang.c (lang_printable_name): Obey verbose flag.
1523 * parse.y (constructor_circularity_msg): Set VERBOSE arg for
1524 lang_printable_name().
1525 (verify_constructor_circularity, get_printable_method_name,
1526 check_abstract_method_definitions, java_check_regular_methods,
1527 java_check_abstract_methods, check_inner_class_access,
1528 fix_constructors, patch_method_invocation, patch_return):
1530 * expr.c (pop_type_0): Likewise.
1532 * java-tree.h (lang_printable_name_wls): Delete.
1534 2004-08-16 Tom Tromey <tromey@redhat.com>
1537 * parse.y (primary): Changed for initialized and uninitialized
1539 (array_access): Handle array_creation_initialized.
1540 (array_creation_expression): Split into
1541 array_creation_initialized and array_creation_uninitialized.
1543 2004-08-16 Andrew Haley <aph@redhat.com>
1545 * jcf-write.c (find_constant_index): Canonicalize NaNs when
1546 generating bytecode.
1548 2004-08-16 Elliot Lee <sopwith@redhat.com>
1551 * jcf-parse.c (java_parse_file): Handle filenames with embedded
1552 spaces, and quoted filelists.
1554 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
1556 * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
1557 * class.c (build_utf8_ref, build_static_field_ref,
1558 make_field_value, make_method_value, get_dispatch_table,
1559 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
1560 * constants.c (get_tag_node, build_ref_from_constant_pool,
1561 build_constants_constructor): Likewise.
1562 * decl.c (java_init_decl_processing): Likewise.
1563 * expr.c (build_java_array_length_access, build_newarray,
1564 expand_java_multianewarray, expand_java_pushc, expand_iinc,
1565 build_java_binop, build_field_ref, expand_java_add_case,
1566 expand_java_call, build_known_method_ref, build_invokevirtual,
1567 build_invokeinterface, build_jni_stub): Likewise.
1568 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
1569 * jcf-parse.c (get_constant): Likewise.
1570 * lex.c (do_java_lex): Likewise.
1571 * parse.y (patch_binop, patch_unaryop, patch_cast,
1572 build_null_of_type, patch_newarray): Likewise.
1573 * resource.c (compile_resource_data): Likewise.
1574 * typeck.c (build_prim_array_type): Likewise.
1576 2004-08-10 Bryce McKinlay <mckinlay@redhat.com>
1578 * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
1579 Don't create BLOCK here or call java_gimplify_block.
1581 2004-08-09 H.J. Lu <hongjiu.lu@intel.com>
1583 * java-tree.h (flag_deprecated): Removed.
1584 * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
1585 * parse.y (check_deprecation): Check warn_deprecated instead of
1588 2004-08-06 Kelley Cook <kcook@gcc.gnu.org>
1590 * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
1591 flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
1592 flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
1593 flag_check_references, flag_extraneous_semicolon, flag_deprecated,
1594 flag_force_classes_archive_check, flag_optimize_sci,
1595 flag_indirect_dispatch): Remove explicit declarations.
1596 * lang.opt: Add implicit declare/define/assign. Remove obsolete
1599 2004-08-05 Michael Chastain <mec.gnu@mindspring.com>
1602 * Make-lang.in (java.install-man): Install from either build
1603 tree or source tree, whichever has the file first.
1605 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
1607 * jcf-parse.c (get_constant): Adjust force_fit_type call.
1608 * lex.h (SET_LVAL_NODE_TYPE): Remove.
1609 * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
1610 (do_java_lex): Likewise. Adjust force_fit_type call.
1612 2004-08-04 Roger Sayle <roger@eyesopen.com>
1613 Andrew Haley <aph@redhat.com>
1615 * typeck.c (convert_ieee_real_to_integer): Call fold on the range
1616 checking trees as they're being built.
1617 (convert): Call convert_ieee_real_to_integer if we're
1618 converting a constant, even if we're writing a class file.
1620 2004-08-02 Bryce McKinlay <mckinlay@redhat.com>
1623 * parse.y (fold_constant_for_init): Call resolve_field_access with
1624 correct current_class context.
1626 2004-08-01 Roger Sayle <roger@eyesopen.com>
1628 * decl.c (update_aliases, initialize_local_variable): Replace calls
1629 to build with calls to buildN.
1630 * java-gimplify.c (java_gimplify_modify_expr): Likewise.
1631 * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
1632 * parse.h (BUILD_THROW): Likewise.
1633 * parse.y (switch_expression, synchronized_statement,
1634 catch_clause_parameter, array_creation_expression,
1635 conditional_expression, make_qualified_name,
1636 resolve_qualified_expression_name, patch_method_invocation,
1637 patch_invoke, build_method_invocation, build_new_invocation,
1638 build_assignment, patch_assignment, build_binop, patch_binop,
1639 build_string_concatenation, build_incdec, patch_unaryop,
1640 patch_cast, build_array_ref, build_newarray_node, patch_newarray,
1641 patch_return, build_if_else_statement, build_labeled_block,
1642 build_new_loop, build_loop_body, build_bc_statement,
1643 build_assertion, encapsulate_with_try_catch, build_try_statement,
1644 build_try_finally_statement, patch_synchronized_statement,
1645 emit_test_initialization): Likewise, replace build with buildN.
1647 2004-07-28 Eric Christopher <echristo@redhat.com>
1649 * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
1650 (java_unsafe_for_reeval): Ditto.
1652 2004-07-26 <hp@bitrange.com>
1654 * parse.y (build_super_invocation): Adjust declaration order to
1655 avoid declaration after statement.
1657 2004-07-25 Bernardo Innocenti <bernie@develer.com>
1659 * decl.c: Rename all identifiers named `class' to `cl'.
1661 2004-07-25 Richard Henderson <rth@redhat.com>
1663 * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
1665 2004-07-23 Mike Stump <mrs@apple.com>
1667 * boehm.c (set_bit): Improve type safety wrt unsignedness.
1668 * gjavah.c (throwable_p, decode_signature_piece,
1669 print_full_cxx_name, print_include, add_namelet, add_class_decl,
1670 process_file): Likewise.
1671 * jcf-dump.c (main): Likewise.
1672 * jcf-io.c (read_zip_member): Likewise.
1673 * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
1674 give_name_to_class, get_class_constant): Likewise.
1675 * jcf-write.c (find_constant_wide, push_long_const,
1676 generate_classfile): Likewise.
1677 * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
1678 * parse.y (read_import_dir): Likewise.
1679 * typeck.c (parse_signature_type): Likewise.
1680 * verify.c (verify_jvm_instructions): Likewise.
1681 * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
1683 2004-07-23 Thomas Fitzsimmons <fitzsim@redhat.com>
1685 * Make-lang.in: Replace rmic and rmiregistry references with
1686 grmic and grmiregistry.
1687 * gcj.texi: Likewise.
1689 2004-07-20 Andrew Haley <aph@redhat.com>
1692 * verify.c (verify_jvm_instructions): Comment change only.
1694 * typeck.c (build_java_array_type): Add size field to array name.
1696 * java-tree.h (LOCAL_SLOT_P): New.
1697 (update_aliases): Add PC argument.
1698 (pushdecl_function_level): New function.
1700 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
1701 MODIFY_EXPR, and SAVE_EXPR.
1702 (java_gimplify_modify_expr): New function.
1704 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
1705 (expand_iinc): Pass PC to update_aliases().
1706 (STORE_INTERNAL): Likewise.
1707 (process_jvm_instruction): Likewise.
1709 * decl.c (base_decl_map): New variable.
1710 (uniq): New variable.
1711 (update_aliases): Rewrite with more thorough checking.
1712 (debug_variable_p): New function.
1713 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
1714 (check_local_named_variable): Delete whole function.
1715 (initialize_local_variable): New function.
1716 (check_local_unnamed_variable): Add checks and comments.
1717 (find_local_variable): Rewrite.
1718 (java_replace_reference): New function.
1719 (function_binding_level): New variable.
1720 (pushdecl_function_level): New function.
1721 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
1722 (maybe_pushlevels): Call pushdecl() on each of the new decls.
1723 (start_java_method): Reset uniq. Create base_decl_map. Set
1724 function_binding_level.
1725 (end_java_method): Null unused fields to save memory.
1727 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
1729 * class.c (add_interface_do): Remove.
1730 (set_super_info, interface_of_p, maybe_add_interface,
1731 add_interface, make_class_data, layout_class,
1732 add_miranda_methods): Adjust BINFO accessors and addition.
1733 * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
1735 * jcf-write.c (generate_classfile): Likewise.
1736 * parse.y (patch_anonymous_class, check_inner_circular_reference,
1737 check_circular_reference, java_complete_class,
1738 check_abstract_method_definitions,
1739 java_check_abstract_method_definitions,
1740 check_interface_throws_clauses, java_check_abstract_methods,
1741 lookup_java_interface_method2,
1742 find_applicable_accessible_methods_list): Adjust BINFO accessors
1744 * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
1746 2004-07-18 Roger Sayle <roger@eyesopen.com>
1748 * builtins.c (max_builtin, min_builtin,
1749 java_build_function_call_expr): Replace calls to build with buildN.
1750 * class.c (build_class_ref, build_static_field_ref,
1751 get_dispatch_table, make_class_data, layout_class_method): Likewise.
1752 * constants.c (build_ref_from_constant_pool): Likewise.
1753 * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
1754 add_stmt_to_compound): Likewise.
1755 * except.c (build_exception_object_ref, expand_end_java_handler):
1757 * java-gimplify.c (java_gimplify_case_expr,
1758 java_gimplify_default_expr, java_gimplify_block,
1759 java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
1760 * jcf-write.c (generate_bytecode_insns): Likewise.
1761 * typeck.c (convert_ieee_real_to_integer): Likewise.
1763 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
1765 * java-tree.h (builtin_function): Declare.
1767 2004-07-16 Steven Bosscher <stevenb@suse.de>
1769 * parse.y (java_complete_expand_methods, java_expand_classes): Don't
1770 abuse restore_line_number_status.
1772 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
1775 * jcf-parse.c (java_emit_static_constructor): Specify default
1778 2004-07-13 Per Bothner <per@bothner.com>
1780 * java-tree.h (all_class_filename): Remove useless macro.
1781 (enum java_tree_index): Remove JTI_ALL_CLASS_FILENAME constant.
1782 (BUILD_FILENAME_IDENTIFIER_NODE): Remove useless macro.
1783 * parse.y (java_parser_context_restore_global): Replace
1784 BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
1785 * jcf-parse.c (read_class, java_parse_file): Likewise.
1787 2004-07-12 Bryce McKinlay <mckinlay@redhat.com>
1790 gjavah.c (print_field_info): Emit constant only if field is static.
1792 2004-07-11 Roger Sayle <roger@eyesopen.com>
1794 * expr.c (java_truthvalue_conversion, flush_quick_stack,
1795 java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
1796 build_java_ret, build_java_throw_out_of_bounds_exception,
1797 build_java_array_length_access, java_check_reference,
1798 build_java_arrayaccess, build_java_arraystore_check, build_newarray,
1799 build_anewarray, expand_java_multianewarray, expand_java_arraystore,
1800 expand_java_arrayload, build_java_monitor, expand_java_return,
1801 expand_load_internal, expand_java_NEW, build_get_class,
1802 build_instanceof, expand_java_CHECKCAST, expand_iinc,
1803 build_java_soft_divmod, build_java_binop, build_field_ref,
1804 expand_compare, expand_java_goto, expand_java_switch,
1805 expand_java_add_case, build_class_init, build_known_method_ref,
1806 invoke_build_dtable, build_invokevirtual, build_invokeinterface,
1807 expand_invoke, build_jni_stub, expand_java_field_op,
1808 java_expand_expr, expand_byte_code, STORE_INTERNAL,
1809 force_evaluation_order, emit_init_test_initialization): Convert
1810 calls to "build" into calls to the prefered "buildN" functions.
1812 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
1814 * java-tree.h (set_block): Remove.
1815 * lang.c (java_clear_binding_stack): New.
1816 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
1817 * decl.c (struct binding_level): Remove this_block.
1818 (clear_binding_level): Likewise.
1819 (poplevel): Don't handle this_block.
1820 (set_block): Remove.
1822 2004-07-10 Bryce McKinlay <mckinlay@redhat.com>
1824 * class.c (common_enclosing_context_p): Remove statement with no
1827 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
1830 * parse.y (create_anonymous_class): Remove 'location' argument. Use
1831 the WFL from TYPE_NAME to get line number for the decl. Fix comment.
1832 (craft_constructor): Inherit access flags for implicit constructor
1833 from the enclosing class.
1834 (create_class): Fix comment typo.
1835 (resolve_qualified_expression_name): Pass type of qualifier to
1836 not_accessible_p, not the type in which target field was found.
1837 (not_accessible_p): Handle inner classes. Expand protected
1838 qualifier-subtype check to enclosing instances, but don't apply this
1839 check to static members. Allow protected access to inner classes
1840 of a subtype. Allow private access within common enclosing context.
1841 (build_super_invocation): Get WFL line number info from current
1843 (build_incomplete_class_ref): Update for new create_anonymous_class
1845 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
1846 common_enclosing_instance_p.
1847 * class.c (common_enclosing_context_p): New. Determine if types
1848 share a common enclosing context, even across static contexts.
1849 (common_enclosing_instance_p): Renamed from
1850 common_enclosing_context_p. Determines if types share a common
1851 non-static enclosing instance.
1852 * java-tree.h (common_enclosing_instance_p): Declare.
1853 * jcf-write.c (get_method_access_flags): New. Surpress private flag
1854 for inner class constructors.
1855 (generate_classfile): Use get_method_access_flags.
1857 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
1859 * class.c (interface_of_p): Check for null TYPE_BINFO.
1861 2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
1863 * class.c (make_class): Do not create binfo here.
1864 (set_super_info): Create it here.
1865 * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
1867 2004-07-08 Richard Henderson <rth@redhat.com>
1869 * expr.c (case_identity, get_primitive_array_vtable,
1870 java_expand_expr, emit_init_test_initialization): Remove.
1871 * java-tree.h (java_expand_expr): Remove.
1872 * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
1874 2004-07-07 Per Bothner <per@bothner.com>
1876 * class.c (build_static_field_ref): Add a NOP_EXPR; otherwise we
1877 get internal error due to mismatched types.
1879 * gcj.texi (Invoking gij): Document new -verbose:class flag.
1881 * gcj.texi (Linking): New node. Document -lgij usage.
1883 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
1885 * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
1886 (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
1887 * java/class.c (set_super_info, class_depth, interface_of_p,
1888 maybe_add_interface, add_interface, make_class_data,
1889 layout_class, add_miranda_methods): Adjust BINFO macros.
1890 * expr.c (can_widen_reference_to, lookup_field): Likewise.
1891 * jcf-write.c (generate_classfile): Likewise.
1892 * parse.y (patch_anonymous_class,
1893 check_inner_circular_reference, check_circular_reference,
1894 java_complete_class, check_abstract_method_definitions,
1895 java_check_abstract_method_definitions,
1896 check_interface_throws_clauses, java_check_abstract_methods,
1897 lookup_java_interface_method2,
1898 find_applicable_accessible_methods_list): Likewise.
1899 * typeck.c (find_method_in_interface): Likewise.
1900 * verify.c (merge_types): Likewise.
1902 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
1904 * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
1905 * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
1907 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
1909 * class.c (make_class): Use make_tree_binfo.
1910 (set_super_info, add_interface_do): Likewise.
1911 * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
1913 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
1915 * verify.c: Correct array element access formatting thinko.
1917 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
1919 * verify.c: Insert a short blurb at the start referring to the JVMS.
1920 (merge_type_state): Remove redundant nested if statement.
1921 (verify_jvm_instructions): Ensure current_subr is initialised to
1923 Minor formatting fixes all over the place.
1925 2004-07-02 Richard Henderson <rth@redhat.com>
1927 * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
1929 2004-07-01 Richard Henderson <rth@redhat.com>
1931 * class.c (registerClass_libfunc): Remove.
1932 (init_class_processing): Don't set it.
1933 (emit_register_classes): Take list_p parameter. Fill it in
1934 with _Jv_RegisterClass calls.
1935 * decl.c (java_init_decl_processing): Don't call
1936 init_resource_processing.
1937 * jcf-parse.c (java_emit_static_constructor): New.
1938 (java_parse_file): Call it.
1939 * resource.c (registerResource_libfunc): Remove.
1940 (init_resource_processing): Remove.
1941 (write_resource_constructor): Take list_p parameter. Fill it in
1942 with _Jv_RegisterResource calls.
1943 * java-tree.h: Update prototypes.
1945 2004-06-29 Bryce McKinlay <mckinlay@redhat.com>
1948 * class.c (layout_class_method): Do not override package-private
1949 method if its in a different package.
1950 (split_qualified_name): Move here from parse.y. Rename from
1951 breakdown_qualified. Add comment.
1952 (in_same_package): Move here from parse.y. Add comment.
1953 * java-tree.h (break_down_qualified, in_same_package): Declare.
1954 (in_same_package): Likewise.
1955 * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
1958 2004-06-29 Andrew Haley <aph@redhat.com>
1960 * except.c (expand_start_java_handler): Push a new binding level.
1961 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
1962 register_exception_range() to register where we'll do it.
1963 (expand_end_java_handler): Remove old bogus code. Replace with
1964 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
1965 the top of the expression we're curently building.
1966 (maybe_end_try): Delete.
1967 * decl.c (binding_level.exception_range): New field.
1968 (clear_binding_level): Add field exception_range. Reformat.
1969 (poplevel): Call expand_end_java_handler().
1970 (poplevel): Call java_add_stmt only if functionbody is false.
1971 (maybe_poplevels): Don't call maybe_end_try() from here.
1972 (end_java_method): Clear no longer used trees in function decl.
1973 (register_exception_range): New function.
1974 * java-tree.h (register_exception_range, struct eh_range): Declare.
1976 2004-06-28 Bryce McKinlay <mckinlay@redhat.com>
1978 * jcf-write.c (get_classfile_modifiers): Formatting fixes.
1980 2004-06-27 Ranjit Mathew <rmathew@hotmail.com>
1983 * expr.c (class_has_finalize_method): Fix method name indentation.
1984 (expand_java_call): Remove K&R style parameter declaration.
1985 (expand_invoke): Fix statement indentation.
1986 (expand_java_field_op): Likewise.
1987 * parse-scan.y: Fix typo.
1988 (reset_report): Fix method name indentation.
1989 * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
1991 * verify.c (verify_jvm_instructions): Document parameters, insert
1993 * lang.c (lang_init_source): Fix method name indentation.
1994 * class.c (common_enclosing_context_p): Likewise.
1995 (emit_symbol_table): Fix parameter list indentation.
1996 * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
1997 parameter declaration.
1998 * constants.c: Fix copyright notice indentation.
1999 * typeck.c (find_method_in_superclasses): Fix parameter list
2001 (find_method_in_interfaces): Likewise.
2002 * zextract.c (makelong): Fix method name indentation.
2004 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2007 * parse.y (create_interface): Set correct access modifiers for
2009 * jcf-write.c (get_classfile_modifiers): New function.
2010 (generate_classfile): Use get_classfile_modifiers, not
2013 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2015 * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
2016 dependency to current parser context, not NULL_TREE, for top-level
2018 (jdep_resolve_class): Enable member access check for all inner
2021 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2023 * parse.y (qualify_and_find): Pass type decl, not identifier, to
2026 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2029 * expr.c (expand_java_field_op): Ensure that target class for static
2030 field access has been loaded.
2032 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2033 Ranjit Mathew <rmathew@hotmail.com>
2035 PR java/1207, java/16178
2036 * jcf-parse.c (load_class): Return immediately if passed a type decl
2037 where CLASS_FROM_SOURCE_P is set. Remove FIXME.
2038 * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
2039 before calling load_class.
2040 (qualify_and_find): Likewise.
2041 (find_in_imports_on_demand): Likewise.
2042 (find_applicable_accessible_methods_list): Likewise.
2044 2004-06-24 Bryce McKinlay <mckinlay@redhat.com>
2046 * parse.y (java_layout_seen_class_methods): Don't call load_class
2047 on class defined by source parser.
2049 2004-06-23 Bryce McKinlay <mckinlay@redhat.com>
2051 * parse.y (set_nested_class_simple_name_value): Removed.
2052 (java_complete_expand_class): Remove calls to
2053 set_nested_class_simple_name_value.
2055 2004-06-22 Andrew Haley <aph@redhat.com>
2056 Ranjit Mathew <rmathew@hotmail.com>
2058 Fixes PR java/16113.
2059 * decl.c (force_poplevels): Remove call to expand_end_bindings.
2061 2004-06-22 Ranjit Mathew <rmathew@hotmail.com>
2063 * parse.y (create_class): Correct diagnostic message about
2064 java.lang.Object extending anything else.
2066 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2068 * class.c (build_class_ref): Add new operand for COMPONENT_REF.
2069 (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
2070 * constants.c (build_ref_from_constant_pool): Likewise.
2071 * expr.c (build_java_array_length_access): Likewise.
2072 (build_get_class, build_field_ref, build_known_method_ref): Likewise.
2073 (invoke_build_dtable, build_invokevirtual): Likewise.
2074 (build_invokeinterface, java_expand_expr): Likewise.
2075 (emit_init_test_initialization): Likewise.
2076 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
2077 * parse.y (make_qualifed_name, build_array_ref): Likewise.
2079 2004-06-21 Andrew Haley <aph@redhat.com>
2081 * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
2084 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
2086 * jcf.h (struct JCF): Change java_source, right_zip and finished
2088 * lex.h (struct java_lexer): Change hit_eof, read_anything,
2089 byte_swap and use_fallback to unsigned int.
2090 * parse.h (struct _jdep): Change flag0 to unsigned int.
2092 2004-06-17 Ranjit Mathew <rmathew@hotmail.com>
2095 * parse.y (java_layout_seen_class_methods): Ensure class is loaded
2096 before trying to lay out its methods.
2097 * jcf-parse.c (read_class): Track parsed files using canonical paths
2098 obtained via lrealpath from libiberty.
2099 (java_parse_file): Likewise.
2100 (parse_source_file_1): Rename formal parameter to reflect its
2101 modified purpose. Minor formatting fix.
2103 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
2105 * class.c (emit_register_classes): Make the function uninlinable,
2106 do not set current_function_cannot_inline.
2107 * resource.c (write_resource_constructor): Do not reset
2108 flag_inline_functions around rest_of_compilation.
2110 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2113 * expr.c (java_truthvalue_conversion): Handle
2114 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2115 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2116 i.e. return the expression.
2118 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
2120 * gjavah.c: Include version.h
2122 2004-05-31 Bryce McKinlay <mckinlay@redhat.com>
2124 * jcf-write.c (generate_bytecode_conditional): Correct handling
2125 of unordered conditionals. Add comment.
2127 2004-05-29 Ranjit Mathew <rmathew@hotmail.com>
2128 Per Bothner <per@bothner.com>
2130 * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
2131 local variable was initialised upon declaration.
2132 * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
2133 variable was final and initialised upon declaration.
2134 * check-init.c (check_final_reassigned): Give error only if a blank
2135 final is not definitely unassigned or if an initialised final is
2137 (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
2138 assignment expressions. Remove case MODIFY_EXPR, label do_default.
2139 (check_init): Perform initialised-variable-removing-optimisation
2140 only on non-final local variables.
2142 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
2144 * jcf-write.c (generate_bytecode_conditional): Handle binops
2145 UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
2147 (generate_bytecode_insns): Likewise.
2149 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
2151 * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
2152 UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
2154 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
2156 * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
2157 (Mixing with C++): Document JvAllocBytes and RawDataManaged.
2159 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
2161 * decl.c (struct binding_level): Add GTY marker. Compile
2162 binding_depth unconditionally.
2163 (current_binding_level, free_binding_level, global_binding_level):
2165 (clear_binding_level): Unconditionally set binding_depth.
2166 (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
2168 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
2170 * lex.c (java_new_lexer): Set 'encoding'.
2171 (java_read_char): Improve error message for unrecognized characters.
2172 * lex.h (struct java_lexer): New field 'encoding'.
2174 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2176 * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
2178 2004-05-21 Mark Wielaard <mark@klomp.org>
2180 * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
2183 2004-05-19 Paolo Bonzini <bonzini@gnu.org>
2185 * typeck.c: Remove non-printable character 160.
2187 2004-05-17 Ranjit Mathew <rmathew@hotmail.com>
2189 * check-init.c: Correct minor typos.
2191 2004-05-13 Diego Novillo <dnovillo@redhat.com>
2193 * Make-lang.in, expr.c, java-gimplify.c: Rename
2194 tree-simple.[ch] to tree-gimple.[ch].
2196 2004-05-14 Ranjit Mathew <rmathew@hotmail.com>
2198 * java-gimplify.c (java_gimplify_expr): Correct minor typos.
2200 2004-05-13 Diego Novillo <dnovillo@redhat.com>
2202 Merge from tree-ssa-20020619-branch. See
2203 ChangeLog.tree-ssa for details.
2205 * Make-lang.in, builtins.c, check-init.c, class.c,
2206 constants.c, decl.c, except.c, expr.c, java-except.h,
2207 java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
2208 lang.c, lang.opt, parse.y, resource.c: Merged.
2209 * java-gimplify.c: New file.
2211 2004-05-10 Andrew Haley <aph@redhat.com>
2213 * parse.y (create_class): Set TYPE_VFIELD.
2214 * decl.c (java_init_decl_processing): Likewise.
2216 * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
2217 * class.c (make_method_value): Replace DECL_VINDEX with call to
2219 (get_dispatch_vector): Likewise.
2220 (layout_class_method): Likewise.
2221 Replace set of DECL_VINDEX with call to set_method_index().
2222 (set_method_index): New function.
2223 (get_method_index): New function.
2224 * java-tree.h (set_method_index): New function decl.
2225 (get_method_index): New function decl.
2227 2004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
2229 * parse.y (check_pkg_class_access): Add new argument
2230 and use it when cl is NULL to call lookup_cl on it.
2231 (parser_check_super_interface): Do not call lookup_cl.
2232 Pass this_decl to check_pkg_class_access and NULL
2233 instead of lookup_cl.
2234 (parser_check_super): Update for change in
2235 check_pkg_class_access.
2236 (do_resolve_class): Likewise.
2237 (process_imports): Likewise.
2238 (find_in_imports_on_demand): Likewise.
2239 (resolve_qualified_expression_name): Likewise.
2241 2004-05-06 Ranjit Mathew <rmathew@hotmail.com>
2243 Fixes PR java/9685, PR java/15073
2244 * parse.y (accessibility_string): New method.
2245 (not_accessible_field_error): Use accessibility_string()
2246 instead of java_accstring_lookup().
2247 (resolve_qualified_expression_name): Check with
2248 check_pkg_class_access() before allowing access using
2251 Use check_pkg_class_access() instead of not_accessible_p()
2252 for unqualified types.
2253 (not_accessible_p): Use DECL_CONTEXT (member) instead of
2254 REFERENCE for package-private access checking.
2255 (patch_method_invocation): Use accessibility_string() instead
2256 of java_accstring_lookup().
2258 2004-04-30 Ranjit Mathew <rmathew@hotmail.com>
2261 * gjavah.c (struct method_name): Add member is_native.
2262 (overloaded_jni_method_exists_p): Match candidate method only if
2264 (print_method_info): Initialise is_native flag from the method's
2267 2004-04-30 Roger Sayle <roger@eyesopen.com>
2269 * builtins.c (java_builtins): Add acos, asin, ceil and floor.
2270 (initialize_builtins): Likewise, define acos, asin, ceil and floor.
2272 2004-04-22 Roger Sayle <roger@eyesopen.com>
2274 * resource.c (write_resource_constructor): Guard call to possibly
2275 NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
2277 2004-04-19 Bryce McKinlay <mckinlay@redhat.com>
2279 * class.c (make_class_data): Add new field aux_info.
2280 * decl.c (java_init_decl_processing): Push type and decl for
2283 2004-04-15 Bryce McKinlay <mckinlay@redhat.com>
2285 * expr.c (expand_java_NEW): Don't use size argument for
2286 _Jv_AllocObject calls.
2287 * parse.y (patch_invoke): Likewise.
2289 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
2291 * expr.c (build_invokeinterface): Remove unused variables to
2294 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
2296 * class.c (get_interface_method_index): New function. Return dispatch
2297 index for interface method.
2298 (make_method_value): For interface methods, set index field to
2299 iface dispatch index, not DECL_VINDEX.
2300 * expr.c (build_invokeinterface): Use get_interface_method_index.
2302 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2304 * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
2306 2004-03-31 Andrew Haley <aph@redhat.com>
2309 * jcf-io.c (opendir_in_zip): Tidy up error handling.
2311 2004-03-30 Zack Weinberg <zack@codesourcery.com>
2313 * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
2314 form of GTY markers.
2316 2004-03-25 Marcus Meissner <meissner@suse.de>
2319 * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
2321 2004-03-23 Tom Tromey <tromey@redhat.com>
2324 * jcf-write.c (make_class_file_name): Don't report if mkdir
2327 2004-03-23 Tom Tromey <tromey@redhat.com>
2329 * gcj.texi (Extensions): Document GCJ_PROPERTIES.
2331 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2333 * class.c, gjavah.c, lang.c: Fix comment typos.
2334 * gcj.texi: Fix typos.
2336 2004-03-19 Per Bothner <per@bothner.com>
2338 * gcj.texi (Code Generation): Document new flags and assert defaults.
2340 * class.c (assume_compiled_node_struct): Rename type to
2341 class_flag_node_struct, as it is now also used for enable_assertions.
2342 Rename assume_compiled_node typedef. Rename excludep field to value.
2343 (find_assume_compiled_node): Rename function to find_class_flag_node.
2344 Minor optimization - avoid needless strlen.
2345 (add_assume_compiled): Some tweaking and optimization.
2346 Rename and generalize to add_class_flag takem an extra parameter.
2347 (add_assume_compled): New just calls add_class_flag.
2348 (add_enable_assert, enable_assertions): New functions.
2349 (enable_assert_tree): New static.
2350 * java-tree.h (add_enable_assert, enable_assertions): New declarations.
2351 * lang.opt (fenable-assertions, fenable-assertions=,
2352 fdisable-assertions, fdisable-assertions=): New options.
2353 * lang.c (java_handle_option): Handle new options.
2354 * parse.y (build_incomplete_class_ref): Handle class$ in an inner
2355 class in an interface - create helper class nested in outer interface.
2356 (build_assertion): Short-circuit if enable_assertions is false.
2358 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2360 * java-tree.h: Changes throughout to add checking to macros
2361 and numerous whitespace changes.
2362 (VAR_OR_FIELD_CHECK): New macro.
2363 * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
2364 FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
2366 2004-03-16 Per Bothner <per@bothner.com>
2368 * jcf-jump.c (options): New --print-constants option.
2369 * gcj.texi (Invoking jcf-dump): Document --print-constants.
2371 * jcf-dump.c (flag_print_constant_pool): Default to off.
2372 (print_constant_terse_with_index): New helper function.
2373 (various places): Check flag_print_constant_pool where missing.
2374 (main): If verbose set flag_print_constant_pool.
2375 (HANDLE_INNERCLASSES_ATTRIBUTE): Null inner class name is anonymous.
2377 2004-03-15 Andrew Haley <aph@redhat.com>
2380 * parse.y (java_complete_lhs): Check that final variable has an
2383 2004-03-12 Andrew Haley <aph@redhat.com>
2386 * typeck.c (convert): Clear TREE_OVERFLOW after an integer
2389 2004-02-29 Roger Sayle <roger@eyesopen.com>
2391 * jcf-parse.c (java_parse_file): Handle the case that input_filename
2394 2004-02-27 Per Bothner <per@bothner.com>
2396 * parse.y (build_assertion): Re-do 02-25 change following Jeff Sturm
2397 suggestion: Use build_incomplete_class_ref.
2398 This fixes PR java/13508, java/11714.
2400 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
2402 * java/parse.h: Update copyright.
2404 2004-02-26 Andrew Haley <aph@redhat.com>
2407 * parse.y (check_interface_throws_clauses): Check for
2408 !METHOD_INVISIBLE (iface_method).
2409 * class.c (layout_class_methods): Check for CLASS_INTERFACE as
2410 well as CLASS_ABSTRACT.
2412 2004-02-25 Per Bothner <per@bothner.com>
2414 * parse.y (build_assertion): If we're in an inner class, create the
2415 class$ helper routine in the outer class.
2417 2004-02-19 Richard Henderson <rth@redhat.com>
2419 * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
2421 2004-02-16 Geoffrey Keating <geoffk@apple.com>
2423 * Make-lang.in (java.install-man): Add extra dependencies.
2425 2004-02-13 Geoffrey Keating <geoffk@apple.com>
2427 * Make-lang.in: Install man pages under the same names
2428 (possibly transformed) as the program they document.
2430 2004-02-10 Joseph S. Myers <jsm@polyomino.org.uk>
2432 * gjavah.c: Include "intl.h".
2433 (error): New function.
2434 (main): Call gcc_init_libintl.
2435 (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
2436 print_stub_or_jni, process_file, main): Use error rather than
2438 (print_method_info, usage, help, version, main): Mark strings for
2439 translation with _. Avoid splitting up sentences. Send
2440 information messages to stdout.
2441 * jcf-dump.c: Include "intl.h".
2442 (main): Call gcc_init_libintl.
2443 (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
2444 Mark error, usage and version messages for translation with _.
2445 Avoid splitting up sentences.
2446 * jv-scan.c: Include "intl.h".
2447 (fatal_error, warning): Change parameter s to msgid. Translate
2449 (main): Call gcc_init_libintl.
2450 (usage, help, version): Mark error, usage and version messages for
2451 translation with _. Avoid splitting up sentences.
2452 * jvgenmain.c: Include "intl.h".
2453 (main): Call gcc_init_libintl.
2454 (usage, main): Mark error messages for translation with _.
2455 * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
2456 JVGENMAIN_OBJS): Add intl.o.
2457 (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
2458 java/jvgenmain.o): Update dependencies.
2460 2004-02-08 Per Bothner <per@bothner.com>
2462 * parse.y (resolve_qualified_expression_name): In case of inaccessible
2463 class don't use not_accessible_field_error, which can get confused.
2465 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
2467 Make-lang.in (po-generated): Delete.
2469 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
2471 * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
2473 * decl.c: Include target.h.
2474 (start_java_method): Replace PROMOTE_PROTOTYPES with
2475 targetm.calls.promote_prototypes.
2476 * expr.c: Include target.h.
2477 (pop_arguments): Replace PROMOTE_PROTOTYPES with
2478 targetm.calls.promote_prototypes.
2479 * parse.y: Include target.h.
2480 (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
2481 with targetm.calls.promote_prototypes.
2483 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
2485 * typeck.c: Update copyright.
2487 2004-02-02 Tom Tromey <tromey@redhat.com>
2489 * decl.c (java_init_decl_processing): Remove duplicate
2492 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
2494 * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
2496 2004-01-28 Andrew Pinski <pinskia@physics.uc.edu>
2498 * expr.c (build_field_ref): Move variable
2501 2004-01-28 Andrew Haley <aph@redhat.com>
2503 * expr.c (build_field_ref): Widen field offset.
2505 2004-01-27 Andrew Haley <aph@redhat.com>
2508 * parse.y (check_interface_throws_clauses): Make sure class_decl
2511 2004-01-22 Jeff Sturm <jsturm@one-point.com>
2514 * parse.y (patch_assignment): Don't modify lhs_type for
2515 reference assignments.
2517 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
2519 * Make-lang.in: Replace $(docdir) with doc.
2520 (java.info, java.srcinfo, java.man, java.srcman): New rules.
2521 (java.install-man): Revamp rule.
2523 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
2525 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
2526 GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
2527 instead of deferred backquote.
2529 2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
2531 * typeck.c (find_method_in_interfaces): Move variable
2534 2004-01-16 Andrew Haley <aph@redhat.com>
2537 * typeck.c (shallow_find_method): New.
2538 (find_method_in_superclasses): New.
2539 (find_method_in_interfaces): New.
2540 (lookup_do): Rewrite.
2541 * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
2543 * jcf-parse.c (read_class): Save and restore output_class.
2544 * decl.c (java_expand_body): Set output_class from fndecl.
2546 2004-01-15 Michael Chastain <mec.gnu@mindspring.com>
2548 * class.c (gen_indirect_dispatch_tables): Fix string length
2551 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
2553 * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
2554 (java.srcextra): Copy above back to source directory if requested.
2555 (po-generated): Delete reference to $(parsedir).
2556 (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
2559 2004-01-14 Jan Hubicka <jh@suse.cz>
2561 * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
2564 2004-01-09 Mark Mitchell <mark@codesourcery.com>
2566 * java-tree.h (java_expand_expr): Change prototype.
2567 * expr.c (java_expand_expr): Add alt_rtl parameter.
2569 2004-01-09 Andrew Haley <aph@redhat.com>
2572 * parse.y (java_fix_constructors): Set output_class.
2573 (java_reorder_fields): Likewise.
2574 (java_layout_classes): Likewise.
2575 (java_expand_classes): Generate indirect dispatch tables.
2576 (java_expand_classes): Set output_class.
2577 (java_finish_classes): Likewise.
2578 * lang.c (java_init): Turn on always_initialize_class_p if we're
2579 using indirect dis[atch.
2580 (java_decl_ok_for_sibcall): Use output_class, not current_class.
2581 (java_get_callee_fndecl): Use class local atable.
2583 (always_initialize_class_p): Decl moved to java-tree.h.
2584 (HANDLE_CLASS_INFO): Set output_class.
2585 (read_class): Likewise.
2586 (parse_class_file): Call gen_indirect_dispatch_tables.
2587 (parse_zip_file_entries): Set output_class.
2588 (java_parse_file): Set output_class. Don't emit symbol tables.
2589 * java-tree.h (output_class): New.
2590 Remove global declarations for otable, atable, and ctable.
2591 (always_initialize_class_p): moved here from decl.c.
2593 (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
2594 TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
2595 TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
2596 (struct lang_type): Add otable_methods, otable_decl,
2597 otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
2598 ctable_decl, catch_classes, type_to_runtime_map.
2599 * expr.c (build_field_ref): Make otable, atable, and ctable class
2600 local rather than global.
2601 (build_known_method_ref): Likewise.
2602 (build_invokeinterface): Likewise.
2603 (java_expand_expr): Pass runtime type (rather than actual type) to
2605 * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
2606 this class. Look up each class in that map to delete duplicates.
2607 (expand_end_java_handler): Pass runtime type (rather than actual
2608 type) to expand_start_catch.
2609 * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
2611 (java_init_decl_processing): Rearrange things. Remove global
2612 declarations of otable, atable, and ctable.
2613 (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
2614 (java_expand_body): Set output_class.
2615 * constants.c (build_constant_data_ref): Use output_class, not
2617 (alloc_name_constant): Likewise.
2618 * class.c (gen_indirect_dispatch_tables): New.
2619 (build_class_ref): Generate hard reference to superclass, even if
2620 using indirect dispatch.
2621 (build_static_field_ref): Use class local atable.
2622 (make_class_data): Generate hard reference to superclass, even if
2623 using indirect dispatch.
2624 Generate symbolic references to interfaces when using indirect
2626 (make_class_data): Emit otable, atable, and ctable.
2627 Make otable, atable, and ctable class local rather than global.
2628 (emit_catch_table): Make otable, atable, and ctable class local
2631 2003-12-25 Andrew Pinski <pinskia@physics.uc.edu>
2633 * parse.y (catch_clause_parameter): Fix typo.
2636 * parse.y: (catch_clause_parameter): Return early if $3, aka
2637 formal_parameter, is null.
2639 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
2641 * class.c: Remove uses of "register" specifier in
2642 declarations of arguments and local variables.
2645 * gjavah.c: Likewise.
2646 * jcf-dump.c: Likewise.
2647 * jcf-io.c: Likewise.
2648 * jcf-parse.c: Likewise.
2649 * jcf-write.c: Likewise.
2650 * keyword.h: Likewise.
2651 * parse.y: Likewise.
2652 * typeck.c: Likewise.
2653 * verify.c: Likewise.
2655 2003-12-06 Kelley Cook <kcook@gcc.gnu.org>
2657 * Make-lang.in (GCJ_CROSS_NAME): Delete.
2658 (java.install_common, java.install-man): Adjust for above.
2659 (java.uninstall): Likewise.
2661 2003-12-03 Michael Koch <konqueror@gmx.de>
2663 * class.c (make_class_data):
2664 Push field value to 'hack_signers' instead of 'signers'.
2665 * decl.c (java_init_decl_processing):
2666 Push field 'hack_signers' instead of 'signers'.
2668 2003-12-03 Zack Weinberg <zack@codesourcery.com>
2670 * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
2673 2003-12-03 Ralph Loader <rcl@ihug.co.nz>
2676 * parse.y (qualify_ambiguous_name): Remove lots of broken
2677 field access processing - there's no need to do that here,
2678 because we have resolve_field_access. Remove
2679 RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
2680 * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
2683 2003-12-01 Jeff Sturm <jsturm@one-point.com>
2686 * parse.y (java_complete_lhs): Save location prior to patching
2689 2003-11-25 Mohan Embar <gnustuff@thisiscool.com>
2692 * resource.c (write_resource_constructor): Append
2693 "_resource" to constructor identifier name.
2695 2003-11-25 Jeff Sturm <jsturm@one-point.com>
2698 * constants.c (cpool_for_class): New function.
2699 (outgoing_cpool): Remove global variable.
2700 (alloc_name_constant): Use cpool_for_class.
2701 (build_constants_constructor): Likewise.
2702 * decl.c (java_expand_body): Set current_class.
2703 * java-tree.h (outgoing_cpool) Remove declaration.
2704 (init_outgoing_cpool): Likewise.
2705 * jcf-parse.c (init_outgoing_cpool): Remove function.
2706 (parse_class_file): Don't call init_outgoing_cpool.
2707 * parse.y (java_complete_expand_methods): Don't call
2708 init_outgoing_cpool. Don't save outgoing_cpool.
2709 (java_expand_classes): Don't restore outgoing_cpool.
2710 (java_finish_classes): Likewise.
2712 2003-11-24 Mohan Embar <gnustuff@thisiscool.com>
2714 * Make-lang.in: (java.install-common) Add
2715 symlink for $(target_noncanonical)-gcjh for
2718 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
2720 * Make-lang.in (java.extraclean): Delete.
2722 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
2724 * Make-lang.in (check-java): Add.
2726 2003-11-19 Jeff Sturm <jsturm@one-point.com>
2729 * except.c (prepare_eh_table_type): Allocate variable-sized
2730 buffer `buf' with alloca.
2732 2003-11-17 Jeff Sturm <jsturm@one-point.com>
2736 decl.c (java_init_decl_processing): Don't initialize
2737 class_not_found_type_node, no_class_def_found_type_node.
2739 java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
2740 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
2741 (class_not_found_type_node, no_class_def_found_type_node):
2744 parse.y (build_dot_class_method_invocation): Add this_class
2745 argument. Qualify method invocations to a different class.
2746 (create_new_parser_context): Initialize saved_data_ctx to 0.
2747 (java_parser_context_save_global): Initialize saved_data_ctx to 1.
2748 (build_dot_class_method): Don't load classes. Register
2750 (build_incomplete_class_ref): Special cases for interfaces
2751 and inner classes. Move build_dot_class_method call to here...
2752 (patch_incomplete_class_ref): ...from here. Pass current_class
2753 to build_dot_class_method_invocation.
2754 (build_assertion): Pass class_type to
2755 build_dot_class_method_invocation.
2756 (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
2758 2003-11-17 Jeff Sturm <jsturm@one-point.com>
2761 * java-tree.h (BLOCK_EMPTY_P): Define.
2762 * parse.y (java_complete_lhs): Check for empty blocks
2763 in TRY_FINALLY_EXPR case.
2765 2003-11-17 Andrew Haley <aph@redhat.com>
2767 * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
2768 (struct lang_decl_var:freed): New variable.
2769 * decl.c (poplevel): Mark local vars that have gone out of scope.
2770 (push_jvm_slot): Don't use the RTL of a var that has gone out of
2773 2003-11-16 Jason Merrill <jason@redhat.com>
2775 * Make-lang.in (java.tags): Create TAGS.sub files in each directory
2776 and TAGS files that include them for each front end.
2778 2003-11-15 Tom Tromey <tromey@redhat.com>
2780 * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
2782 2003-11-12 Jason Merrill <jason@redhat.com>
2784 PR optimization/12547
2785 * lang.c (java_tree_inlining_walk_subtrees): Just walk
2786 BLOCK_EXPR_BODY directly.
2788 2003-11-12 Andrew Haley <aph@redhat.com>
2791 * parse.y (fold_constant_for_init): Check that we really do have a
2795 * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
2796 init_test_decls being inlined.
2799 * parse.y (do_resolve_class): Check return value from
2800 breakdown_qualified().
2802 2003-11-11 Tom Tromey <tromey@redhat.com>
2805 * parse.y (merge_string_cste): Handle case where we have a
2806 pointer that happens to be zero, not null_pointer_node.
2808 2003-11-10 Tom Tromey <tromey@redhat.com>
2810 * jcf-parse.c (classify_zip_file): Correctly compare
2811 filename_length against length of manifest file's name.
2813 2003-11-08 Tom Tromey <tromey@redhat.com>
2816 * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
2818 2003-11-06 Andrew Haley <aph@redhat.com>
2820 * expr.c (java_stack_swap): Make sure destination stack slots are
2821 of the correct type.
2823 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
2825 * Make-lang.in (dvi): Move targets to $(docobjdir).
2826 (gcj.dvi): Simplify rule and adjust target.
2827 (gcj.info): Simplify rule.
2828 (gcj.pod): New intermediate rule.
2829 (gcjh.pod): Likewise.
2830 (jv-scan.pod): Likewise.
2831 (jcf-dump.pod): Likewise.
2832 (gij.pod): Likewise.
2833 (jv-convert.pod): Likewise.
2834 (rmic.pod): Likewise.
2835 (rmiregistry.pod): Likewise.
2838 (jv-scan.1): Delete.
2839 (jcf-dump.1): Delete.
2841 (jv-convert.1): Delete.
2843 (rmiregistry.1): Delete.
2845 2003-11-02 Jeff Sturm <jsturm@one-point.com>
2847 Fixes PR java/12866.
2848 * parse.y (resolve_qualified_expression_name): Move test
2849 for outer field access methods from here...
2850 (check_thrown_exceptions) ...to here.
2852 2003-11-01 Kelley Cook <kcook@gcc.gnu.org>
2854 * .cvsignore: Delete.
2856 2003-10-28 Frank Ch. Eigler <fche@redhat.com>
2858 * verify.c (verify_jvm_instructions): Don't warn about legal
2859 eh binding regions generated for example by jdk 1.4.1.
2861 2003-10-24 David S. Miller <davem@redhat.com>
2863 * jcf-parse.c (jcf_parse): Fix args to fatal_error().
2865 2003-10-22 Andrew Haley <aph@redhat.com>
2867 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
2868 (java_get_callee_fndecl): New.
2870 * jcf-parse.c (java_parse_file): Call emit_catch_table().
2872 * java-tree.h (ctable_decl): New.
2873 (catch_classes): New.
2874 (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
2876 * decl.c (java_init_decl_processing): Add catch_class_type.
2878 Add catch_classes field.
2880 * class.c (build_indirect_class_ref): Break out from
2882 (make_field_value): Check flag_indirect_dispatch.
2883 (make_class_data): Ditto.
2884 Tidy uses of PUSH_FIELD_VALUE.
2885 Add field catch_classes.
2886 (make_catch_class_record): New.
2888 * java-tree.h (PUSH_FIELD_VALUE): Tidy.
2890 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
2892 * jcf-write.c: Follow spelling conventions.
2893 * parse.y: Likewise.
2895 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
2897 * ChangeLog: Fix typos.
2898 * expr.c: Fix comment typos.
2899 * jcf-write.c: Likewise.
2902 * mangle.c: Likewise.
2903 * parse-scan.y: Likewise.
2904 * parse.y: Likewise.
2906 2003-10-22 Tom Tromey <tromey@redhat.com>
2908 * expr.c (expand_byte_code): Only warn about dead bytecode when
2909 extra_warnings is set.
2911 2003-10-22 Bryce McKinlay <bryce@mckinlay.net.nz>
2913 Fix for PR java/12586.
2914 * mangle.c (find_compression_record_match): Don't iterate through
2915 package namespace elements unless they all match compression_table
2918 2003-10-20 Kelley Cook <kcook@gcc.gnu.org>
2920 * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
2921 (generate-manpages): Likewise.
2922 (java.maintainer-clean): Likewise.
2923 (gcj.info): Likewise.
2926 (jv-scan.1): Likewise.
2927 (jcf-dump.1): Likewise.
2929 (jv-convert.1): Likewise.
2931 (rmiregistry.1): Likewise.
2932 (java.install-man): Likewise.
2933 (parse-scan.o): Move and define complete compile line.
2934 (parse.o): Likewise.
2935 (jcf-tree-inline.o): Move.
2937 2003-10-20 Mark Mitchell <mark@codesourcery.com>
2939 * Make-lang.in (info): Update dependencies.
2940 (java.install-info): Remove.
2941 ($(srcdir)/java/gcj.info): Replace with ...
2942 ($(docobjdir)/gcj.info): ... this.
2944 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
2946 * Make-lang.in: Replace uses of $(target_alias) with
2947 $(target_noncanonical).
2949 2003-10-09 Tom Tromey <tromey@redhat.com>
2951 * decl.c (java_init_decl_processing): Declare signers field.
2952 * class.c (make_class_data): Set signers field.
2954 2003-10-09 Jason Merrill <jason@redhat.com>
2956 * parse.y (patch_assignment): Use make_node to create a BLOCK.
2957 * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
2960 2003-10-06 Mark Mitchell <mark@codesourcery.com>
2962 * Make-lang.in (java.info): Replace with ...
2964 (java.dvi): Replace with ...
2966 (java.generated-manpages): Replace with ...
2968 2003-10-03 Kelley Cook <kelleycook@wideopenwest.com>
2970 * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
2972 2003-10-01 Andrew Haley <aph@redhat.com>
2974 * jcf-parse.c (java_parse_file): Write otable and atable.
2975 * java-tree.h (atable_methods): New.
2977 (atable_syms_decl): New.
2978 (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
2979 JTI_ATABLE_SYMS_DECL. Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
2980 (symbol_*type): Rename method_symbol* to symbol*type.
2981 (emit_offset_symbol_table): Delete.
2982 (emit_symbol_table): New.
2983 (get_symbol_table_index): New.
2985 * expr.c (build_field_ref): Handle flag_indirect_dispatch.
2986 (build_known_method_ref): Likewise.
2987 (get_symbol_table_index): Rename from get_offset_table_index.
2988 Parameterize to allow re-use by differing types of symbol table.
2989 (build_invokevirtual): Pass table to get_offset_table_index.
2990 * decl.c (java_init_decl_processing): Push types and decls for
2991 atable and atable_syyms.
2992 * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
2993 (make_class_data): Add new fields atable and atable_syms.
2994 (emit_symbol_table): Rename from emit_offset_symbol_table.
2995 Parameterize to allow re-use by different types of symbol table.
2996 (build_symbol_entry): Renamed from build_method_symbols_entry.
2998 2003-09-30 Roger Sayle <roger@eyesopen.com>
3000 * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
3001 semantics for SAVE_EXPR, by caching the result in a temporary.
3003 2003-09-28 Richard Henderson <rth@redhat.com>
3005 * check-init.c (check_init): Save and restore input_location
3006 instead of file and line separately.
3007 * decl.c (java_expand_body): Likewise.
3008 * jcf-write.c (generate_bytecode_insns): Likewise.
3009 * parse.y (safe_layout_class): Likewise.
3010 * jcf-parse.c (read_class, parse_class_file): Likewise.
3011 (java_parse_file): Use %H for warning locator.
3013 2003-09-28 Roger Sayle <roger@eyesopen.com>
3015 * expr.c (java_check_reference): Use the semantics of COND_EXPRs
3016 with void-type branches instead of using a COMPOUND_EXPR.
3018 2003-09-28 Jeff Sturm <jsturm@one-point.com>
3020 * decl.c (java_optimize_inline, dump_function): Remove.
3021 * java-tree.h (java_optimize_inline): Remove declaration.
3022 * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
3023 * parse.y (source_end_java_method, java_expand_classes):
3024 Likewise. Remove dead code.
3026 2003-09-27 Roger Sayle <roger@eyesopen.com>
3028 * lang.c (java_init_options): Set flag_evaluation_order.
3029 * expr.c (force_evaluation_order): Don't attempt to force
3030 evaluation order of binary operations using save_expr.
3031 * parse.y (java_complete_lhs): No longer need to call
3032 force_evaluation_order when constructing binary operators.
3034 2003-09-27 Alexandre Petit-Bianco <apbianco@redhat.com>
3035 Bryce McKinlay <bryce@mckinlay.net.nz>
3038 * parse.y (not_accessible_field_error): New function.
3039 (resolve_expression_name): Check field access permissions.
3040 (resolve_qualified_expression_name): Use
3041 not_accessible_field_error.
3042 (resolve_qualified_expression_name): Likewise.
3044 2003-09-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3046 * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
3048 2003-09-23 Roger Sayle <roger@eyesopen.com>
3050 * jcf-write.c (generate_bytecode_insns): Optimize binary operations
3051 with equal operands without side-effects.
3053 2003-09-22 Jeff Sturm <jsturm@one-point.com>
3055 * decl.c (java_init_decl_processing): Don't emit otable decls
3056 if flag_indirect_dispatch is not set.
3058 2003-09-21 Richard Henderson <rth@redhat.com>
3060 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
3063 2003-09-21 Richard Henderson <rth@redhat.com>
3065 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
3066 resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
3068 2003-09-20 Richard Henderson <rth@redhat.com>
3070 * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
3072 2003-09-18 Roger Sayle <roger@eyesopen.com>
3074 * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
3075 * check-init.c (check_init): Likewise.
3077 2003-09-18 Roger Sayle <roger@eyesopen.com>
3079 * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
3081 2003-09-16 Andrew Haley <aph@redhat.com>
3083 * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
3085 2003-09-17 Ranjit Mathew <rmathew@hotmail.com>
3088 * mangle.c (find_compression_record_match): Skip
3089 over a "6JArray" (the array template mangled string)
3091 (mangle_array_type): Correct minor typo.
3092 (atms): Move definition to the beginning.
3094 2003-09-16 Bryce McKinlay <bryce@mckinlay.net.nz>
3096 * class.c (add_miranda_methods): Ensure super-interfaces are laid
3097 out. Fix for PR java/12254.
3099 2003-09-11 Richard Henderson <rth@redhat.com>
3101 * parse.y (source_end_java_method): Update for new
3102 cgraph_finalize_function argument.
3104 2003-09-09 Richard Henderson <rth@redhat.com>
3106 * parse.y (source_end_java_method): Update call to
3107 cgraph_finalize_function.
3109 2003-09-03 Jeff Sturm <jsturm@one-point.com>
3111 * decl.c (java_expand_body): New function.
3112 * expr.c (build_class_init): Set DECL_IGNORED_P.
3113 * java-tree.h (start_complete_expand_method,
3114 java_expand_body): Declare.
3115 * jcf-parse.c (cgraph.h): Include.
3116 (java_parse_file): Handle flag_unit_at_a_time.
3117 * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
3118 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
3119 (java_estimate_num_insns): Use walk_tree_without_duplicates.
3120 (java_start_inlining): New function.
3121 * parse.h (java_finish_classes): Declare.
3122 * parse.y: Include cgraph.h.
3123 (block): Don't special-case empty block production.
3124 (craft_constructor): Set DECL_INLINE.
3125 (source_end_java_method): Handle flag_unit_at_a_time.
3126 Replace inline code with call to java_expand_body.
3127 (start_complete_expand_method): Remove static modifier.
3128 (java_expand_method_bodies): Patch function tree for
3129 class initialization and/or synchronization as needed.
3130 Don't begin RTL expansion yet.
3131 (java_expand_classes): Check flag_unit_at_a_time before
3132 calling finish_class.
3133 (java_finish_classes): New function.
3134 (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
3135 (patch_assignment): Set DECL_CONTEXT on temporary variable.
3136 (emit_test_initialization): Set DECL_IGNORED_P.
3138 2003-09-03 Roger Sayle <roger@eyesopen.com>
3140 * builtins.c (enum builtin_type): Delete unused enumeration.
3141 * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
3143 2003-08-28 Tom Tromey <tromey@redhat.com>
3145 * gcj.texi (Extensions): Document gcjlib URLs.
3147 2003-08-20 Tom Tromey <tromey@redhat.com>
3149 * gcj.texi (Extensions): Added xref.
3150 (libgcj Runtime Properties): Document
3151 gnu.gcj.runtime.VMClassLoader.library_control.
3153 2003-08-20 Andrew Haley <aph@redhat.com>
3155 * except.c (prepare_eh_table_type): Use new encoding for exception
3156 handlers when using -fno-assume-compiled.
3158 2003-08-13 Tom Tromey <tromey@redhat.com>
3160 * gcj.texi (Invoking gij): Document -X and -?.
3162 2003-08-13 Mohan Embar <gnustuff@thisiscool.com>
3164 * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
3165 GCJH_OBJS, JCFDUMP_OBJS
3166 * win32-host.c: Removed the unnecessary and broken dependency
3169 2003-08-11 Tom Tromey <tromey@redhat.com>
3171 * parse.y (java_check_regular_methods): Typo fixes. Call
3172 check_interface_throws_clauses. Use
3173 check_concrete_throws_clauses.
3174 (check_interface_throws_clauses): New function.
3175 (check_concrete_throws_clauses): New function.
3176 (hack_is_accessible_p): New function.
3177 (find_most_specific_methods_list): Added FIXME.
3178 * typeck.c (lookup_do): Use `flags' argument to decide what to
3180 (lookup_argument_method_generic): New function.
3181 (lookup_argument_method2): Removed.
3182 * jcf.h (ACC_INVISIBLE): New define.
3183 * jcf-write.c (generate_classfile): Skip invisible methods.
3184 * class.c (add_miranda_methods): New function.
3185 (layout_class_methods): Use it.
3186 (get_access_flags_from_decl): Use ACC_INVISIBLE.
3187 * java-tree.h (METHOD_INVISIBLE): New define.
3188 (lang_decl_func) [invisible]: New field.
3189 (lookup_argument_method_generic): Declare.
3190 (SEARCH_INTERFACE): New define.
3191 (SEARCH_SUPER): Likewise.
3192 (SEARCH_ONLY_INTERFACE): Likewise.
3193 (SEARCH_VISIBLE): Likewise.
3194 (lookup_argument_method2): Removed declaration.
3196 2003-08-05 Tom Tromey <tromey@redhat.com>
3198 Fix for PR java/11600:
3199 * parse.y (java_complete_lhs): See whether we're calling a method
3201 (check_thrown_exceptions): Added `is_array_call' argument;
3202 fixed `clone' checking; updated all callers.
3204 2003-08-05 Steven Bosscher <steven@gcc.gnu.org>
3206 * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
3208 2003-08-03 Tom Tromey <tromey@redhat.com>
3210 * java-tree.h (METHOD_TRANSIENT): Removed.
3211 * decl.c (pushdecl): Removed some dead code.
3212 * class.c (get_access_flags_from_decl): Can't have transient
3214 (add_method_1): Can't have a transient method.
3216 2003-07-28 Andreas Jaeger <aj@suse.de>
3218 * jvspec.c: Convert to ISO C90 prototypes.
3220 2003-07-25 Nathan Sidwell <nathan@codesourcery.com>
3222 * decl.c (force_poplevels): Fix warning call.
3224 2003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
3226 * expr.c (expand_java_field_op): Don't use xxx_with_decl
3227 (expand_java_field_op): Likewise.
3228 * class.c (layout_class_method): Likewise
3229 (emit_register_classes): Likewise.
3230 * decl.c (pushdecl): Likewise.
3231 (poplevel): Likewise.
3232 (force_poplevels): Likewise.
3233 (give_name_to_locals): Likewise.
3234 * check-init.c (check_for_initialization): Likewise.
3236 2003-07-24 Jason Merrill <jason@redhat.com>
3238 * java-tree.h: Move boolean_type_node et al to the back end.
3240 2003-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3242 * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
3245 2003-07-19 Neil Booth <neil@daikokuya.co.uk>
3247 * lang.opt: Don't show -MD_ and -MDD_.
3249 2003-07-18 Neil Booth <neil@daikokuya.co.uk>
3251 * lang-options.h: Remove.
3252 * lang.opt: Add help text.
3254 2003-07-15 Kazu Hirata <kazu@cs.umass.edu>
3256 * expr.c: Remove the last argument to expand_assignment().
3258 2003-07-09 Jan Hubicka <jh@suse.cz>
3260 * java-tree.h (DECL_NUM_STMTS): Rename to...
3261 (DECL_ESTIMATED_INSNS): ... this.
3262 * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
3263 New static functions.
3264 (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
3265 * parser.y (add_stmt_to_compound): Do not account statements.
3267 2003-07-08 Mark Wielaard <mark@klomp.org>
3269 * gcj.texi: CNI now expands to Compiled Native Interface.
3271 2003-07-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3273 * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
3275 2003-07-07 Nathan Sidwell <nathan@codesourcery.com>
3277 * expr.c (expand_byte_code): Adjist emit_line_note call.
3279 2003-07-06 Neil Booth <neil@daikokuya.co.uk>
3281 * lang.c (java_handle_option): Don't handle filenames.
3283 2003-07-02 Zack Weinberg <zack@codesourcery.com>
3285 * jcf-path.c: Don't default-define PATH_SEPARATOR nor
3288 * jcf-write.c: Don't default-define DIR_SEPARATOR.
3289 * jcf.h: Delete COMPARE_FILENAMES definition.
3291 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
3293 * lang.c (java_init_options): Update prototype.
3295 2003-07-01 Nathan Sidwell <nathan@codesourcery.com>
3297 * decl.c (poplevel): Adjust define_label call.
3299 2003-06-27 Zack Weinberg <zack@codesourcery.com>
3301 * gjavah.c (flag_jni): Make non-static.
3302 * parse-scan.y (ctxp): Make non-static.
3304 * class.c (build_method_symbols_entry)
3305 * expr.c (get_offset_table_index)
3306 * jcf-parse.c (jcf_parse):
3307 Mark the definition static, matching the forward declaration.
3309 2003-06-26 Neil Booth <neil@daikokuya.co.uk>
3311 * lang.c (java_handle_option): Don't check for missing arguments.
3313 2003-06-20 Nathan Sidwell <nathan@codesourcery.com>
3315 * class.c (push_class): Use a location_t to save place.
3316 (emit_register_classes): Set input_location. Adjust
3317 expand_function_end call.
3318 * resource.c (write_resource_constructor): Likewise.
3319 * decl.c (end_java_method): Adjust expand_function_end call.
3320 * parse.y (source_end_java_method): Likewise.
3322 2003-06-17 Robert Abeles <rabeles@archaelogic.com>
3324 * lang.c (java_handle_option): Likewise.
3326 2003-06-16 Neil Booth <neil@daikokuya.co.uk>
3328 * lang.c (java_handle_option): Special-casing of optional
3329 joined arguments no longer needed.
3330 * lang.opt: Update switches that take optional argument.
3332 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
3334 * lang.opt: Declare Java.
3335 * lang.c (java_init_options): Update.
3337 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
3339 * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
3341 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
3343 * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
3344 * lang.c (java_handle_option): -MD and -MMD have an underscore.
3345 * lang.opt: -MD and -MMD have an underscore.
3347 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
3349 * class.c (emit_register_classes): Adjust init_function_start
3351 * decl.c (complete_start_java_method): Likewise.
3352 * resource.c (write_resource_constructor): Likewise.
3354 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
3356 * Make-lang.in: Update to use options.c and options.h.
3357 * lang.c: Include options.h not j-options.h.
3358 (java_handle_option): Abort on unrecognized option.
3359 (java_init_options): Request Java switches.
3361 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
3363 * Make-lang.in: Handle mostlyclean.
3365 2003-06-11 Tom Tromey <tromey@redhat.com>
3367 * lang.c (java_handle_option): Update dependency_tracking for
3370 * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
3373 2003-06-10 Andrew Haley <aph@redhat.com>
3375 * resource.c (write_resource_constructor): Use expand_expr to
3376 generate the address of the label attached to a resource.
3377 * Make-lang.in (java/resource.o): Add expr.h
3379 2003-06-10 Andrew Haley <aph@redhat.com>
3381 * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
3382 (java_decl_ok_for_sibcall): New.
3384 2003-06-09 Neil Booth <neil@daikokuya.co.uk>
3386 * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
3387 (java/j-options.c, java/j-options.h): New.
3388 * java-tree.h (resource_name, compile_resource_file,
3389 compile_resource_data): Constify.
3390 * jcf-write.c (jcf_write_base_directory): Similarly.
3391 * jcf.h (jcf_write_base_directory): Similarly.
3392 * lang.c: Include j-options.h.
3393 (cl_options_count, cl_options, string_option, java_decode_option,
3394 lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
3395 process_option_with_no): Remove.
3396 (resource_name): Constify.
3397 (LANG_HOOKS_HANDLE_OPTION): Override.
3398 (java_handle_option): New.
3399 (java_init): Don't call jcf_path_init.
3400 (java_init_options): Call jcf_path_init.
3402 * resource.c (compile_resource_data, compile_resource_file): Constify.
3404 2003-06-09 Nathan Sidwell <nathan@codesourcery.com>
3406 * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
3407 (struct lang_decl_func): Add last_line field.
3408 * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
3409 DECL_SOURCE_LINE_LAST): Remove.
3410 * parse.y (missing_return_error, finish_method_declaration,
3411 lookup_cl, start_artificial_method_body, source_end_java_method,
3412 start_complete_expand_method): Adjust.
3414 2003-06-08 Tom Tromey <tromey@redhat.com>
3416 * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
3417 fno-assume-compiled.
3419 2003-06-08 Roger Sayle <roger@eyesopen.com>
3421 * builtins.c (define_builtin_type, builtin_types): Delete.
3422 (define_builtin): Rewritten to take just the built-in code,
3423 the function's name, type and fallback library function name.
3424 All built-ins used by Java are implicit and BUILT_IN_NORMAL.
3425 (initialize_builtins): Overhaul to define the GCC builtins
3426 used by gcj manually, providing the Java run-time's
3427 implementations as the fallback library function.
3429 2003-06-08 Anthony Green <green@redhat.com>
3431 * parse.y (patch_cast): Fix conversions from floating-point to
3434 2003-06-08 Neil Booth <neil@daikokuya.co.uk>
3436 * Make-lang.in: Update.
3437 * lang.c: Include opts.h. Define cl_options_count and cl_options.
3439 2003-06-07 Neil Booth <neil@daikokuya.co.uk>
3441 * lang.c (java_init_options): Update.
3443 2003-06-05 Jan Hubicka <jh@suse.cz>
3445 * Make-lang.in: Add support for stageprofile and stagefeedback
3447 2003-05-31 Roger Sayle <roger@eyesopen.com>
3449 * lang.c (java_init_options): Prescribe wrap-around two's
3450 complement arithmetic overflow by setting flag_wrapv.
3452 2003-05-29 Roger Sayle <roger@eyesopen.com>
3454 * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
3455 (builtin_record): Add an additional builtin_code field to
3456 record which GCC built-in corresponds to the Java function.
3457 (java_builtins): Add new entries for atan, atan2, exp, log,
3459 (max_builtin, min_builtin, abs_builtin): Perform constant
3460 folding on the resulting tree.
3461 (java_build_function_call_expr): Likewise, perform constant
3462 folding on the resulting tree.
3463 (initialize_builtins): The NULL creators are now allowed in
3464 the java_builtins table, which is now terminated by an entry
3465 with builtin_code == END_BUILTINS.
3466 (check_for_builtin): Likewise. If the matching creator is
3467 NULL, construct the call using java_build_function_call_expr
3468 directly with the decl for the corresponding builtin_code.
3470 2003-05-23 Nathanael Nerode <neroden@gcc.gnu.org>
3472 * win32-host.c: Normalize copyright boilerplate.
3474 2003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3476 * parse.y (print_int_node): Use string concatentation on
3477 HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
3478 function calls into one.
3480 2003-05-13 Zack Weinberg <zack@codesourcery.com>
3482 * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
3483 fatal_io_error with calls to fatal_error; add ": %m" to the end of
3484 all the affected error messages.
3486 2003-05-13 Richard Henderson <rth@redhat.com>
3488 * class.c (layout_class_method): Set DECL_EXTERNAL.
3489 * decl.c (java_mark_decl_local, java_mark_class_local): New.
3490 * java-tree.h (java_mark_class_local): Declare.
3491 * jcf-parse.c (parse_class_file): Use it.
3492 * parse.y (java_expand_classes): Likewise.
3494 2003-05-04 Nathan Sidwell <nathan@codesourcery.com>
3496 * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
3497 * lex.h: #include input.h.
3498 * jv-scan.c (input_filename): Remove.
3500 2003-05-02 Tom Tromey <tromey@redhat.com>
3503 * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
3504 (handle_inner_classes): New function.
3506 2003-05-01 Tom Tromey <tromey@redhat.com>
3509 * parse.y (finish_for_loop): Do nothing if update expression is a
3510 EXPR_WFL_NODE wrapping nothing.
3511 (java_complete_lhs) <COMPOUND_EXPR>: Likewise.
3513 2003-05-02 Nathan Sidwell <nathan@codesourcery.com>
3515 * lex.h (input_lineno): Remove declaration.
3516 * parse-scan.y: #include input.h.
3517 (input_filename): Remove declaration.
3518 (input_location): Add definition.
3519 (input_line): Remove definition.
3521 2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
3523 * lex.h (lineno): Rename to ...
3524 (input_line): ... here
3525 * parse-scan.y (lineno): Rename to ...
3526 (input_line): ... here.
3527 (reset_report): Rename lineno to input_line.
3528 * check-init.c (check_init): Likewise.
3529 * class.c (push_class): Likewise.
3530 * decl.c (complete_start_java_method, end_java_method): Likewise.
3531 * expr.c (expand_byte_code): Likewise.
3532 * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
3533 * jcf-write.c (generate_bytecode_insns): Likewise.
3534 * lex.c (java_init_lex, java_allocate_new_line,
3535 do_java_lex): Likewise.
3536 * parse.h (YYNOT_TWICE): Likewise.
3537 * parse.y (empty_statement, expression_statement,
3538 java_pop_parser_context, java_parser_context_save_global,
3539 yyerror, register_fields, method_header, safe_layout_class,
3540 find_in_imports_on_demand, create_artificial_method,
3541 source_end_java_method, start_complete_expand_method,
3542 build_thisn_assign, java_complete_lhs,
3543 maybe_absorb_scoping_block): Likewise.
3545 2003-04-20 Mohan Embar <gnustuff@thisiscool.com>
3547 * jcf-io.c (find_class): use DIR_SEPARATOR instead of
3548 '/' when computing java source filename
3550 2003-04-13 Tom Tromey <tromey@redhat.com>
3552 * gjavah.c (print_c_decl): Indentation fix.
3554 2003-04-12 Zack Weinberg <zack@codesourcery.com>
3556 * class.c (make_field_value, make_method_value, get_dispatch_table)
3557 (make_class_data, emit_offset_symbol_table)
3558 * constants.c (build_constants_constructor)
3559 * java-tree.h (START_RECORD_CONSTRUCTOR)
3560 * parse.y (maybe_build_array_element_wfl):
3561 Use build_constructor.
3563 2003-04-10 Eric Blake <ebb9@email.byu.edu>
3566 * parse.y (string_convert_int_cst): Always use at least one digit
3567 in string conversion. Remove ASCII dependence.
3568 (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
3570 2003-03-16 Mohan Embar <gnustuff@thisiscool.com>
3572 * Make-lang.in: added win32-host.c
3573 * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
3574 resolves to open() on non-Win32 platforms and
3575 Win32-specific jcf_open_exact_case() on Win32
3576 * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
3577 when trying .java and .class files
3578 * win32-host.c: added to repository. Defines
3579 Win32-specific jcf_open_exact_case()
3581 2003-04-10 Andrew Haley <aph@redhat.com>
3583 * jcf-write.c (struct jcf_partial): num_jsrs: new field.
3584 (maybe_free_localvar): Renamed from localvar_free.
3585 Add new arg, really.
3586 (generate_bytecode_insns): Set new variable, jsrs.
3587 Only free local vars if no jsr insns have been emittted.
3588 Call maybe_free_localvar, not localvar_free.
3590 2003-03-30 Joseph S. Myers <jsm@polyomino.org.uk>
3592 * gcj.texi: Remove @ at start of file.
3594 2003-03-25 Tom Tromey <tromey@redhat.com>
3596 * parse.y (create_interface): Call CHECK_DEPRECATED.
3598 2003-03-23 Zack Weinberg <zack@codesourcery.com>
3600 * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
3602 2003-03-21 Zack Weinberg <zack@codesourcery.com>
3604 * javaop.h (jfloat, jdouble): Make them structures mirroring
3605 the bit fields of IEEE float and double respectively.
3606 (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
3607 JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
3608 (union Word, union DWord): Delete.
3609 (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
3611 * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
3612 D_NAN_MASK): Delete.
3613 (jni_print_float, jni_print_double): New. Generate
3614 hexadecimal floating constants.
3615 (print_field_info): Use jni_print_float/double.
3617 * jcf-dump.c: Include math.h. Use ldexp/frexp to assemble
3618 finite floating point numbers for output; special case
3621 2003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>
3623 * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
3624 Replace 0 and 1 with true and false in return statements.
3626 2003-03-19 Tom Tromey <tromey@redhat.com>
3628 * lex.c (do_java_lex): Renamed from java_lex.
3629 (java_lex): New function.
3632 2003-03-13 Tom Tromey <tromey@redhat.com>
3634 * parse.y (resolve_inner_class): Error if qualifier is a primitive
3637 2003-03-04 Andrew Haley <aph@redhat.com>
3639 * gjavah.c (is_first_data_member): New global variable.
3640 (print_c_decl): If it's the first data member, align it as the
3642 (process_file): Set is_first_data_member.
3644 2003-03-11 Tom Tromey <tromey@redhat.com>
3646 * parse.y (resolve_field_access): Initialize class if field is
3647 found in another static field.
3648 * expr.c (build_class_init): Don't optimize out initialization of
3649 implemented interface.
3651 2003-03-11 Andrew Haley <aph@redhat.com>
3653 * jcf-io.c (caching_stat): Initialize origsep to remove compiler
3656 2003-03-10 Ranjit Mathew <rmathew@hotmail.com>
3658 * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
3659 and DIR_SEPARATOR_2 for a target.
3660 Correct minor typos.
3662 * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
3663 and DIR_SEPARATOR_2 for a target into account.
3665 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
3667 * lang.c (java_init): Update prototype, move code to java_post_options.
3668 (java_post_options): Similarly.
3670 2003-03-05 Ranjit Mathew <rmathew@hotmail.com>
3672 * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
3673 compare file name components depending on the case-sensitivity
3674 or otherwise of the host file system.
3676 * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
3677 "strcmp" to compare file name components.
3678 Use IS_DIR_SEPARATOR instead of comparing directly against
3680 (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
3681 comparing directly against DIR_SEPARATOR.
3683 2003-03-04 Tom Tromey <tromey@redhat.com>
3685 * Make-lang.in (java.tags): New target.
3687 2003-03-01 Roger Sayle <roger@eyesopen.com>
3689 * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
3690 (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
3692 2003-03-01 Tom Tromey <tromey@redhat.com>
3694 * parse.y (jdep_resolve_class): Only check deprecation if we found
3697 2003-02-28 Tom Tromey <tromey@redhat.com>
3700 * class.c (maybe_layout_super_class): Always pass a WFL to
3702 * parse.y (do_resolve_class): Updated comment to explain
3705 2003-02-26 Tom Tromey <tromey@redhat.com>
3707 * jcf-write.c (generate_classfile): Check whether class is
3708 deprecated before writing attribute count.
3710 2003-02-25 Roger Sayle <roger@eyesopen.com>
3712 * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
3713 built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
3715 2003-02-23 Tom Tromey <tromey@redhat.com>
3717 * lang-options.h: Added -Wdeprecated.
3718 * gcj.texi (Warnings): Document -Wdeprecated.
3719 * java-tree.h (flag_deprecated): Declare.
3720 * lang.c (lang_W_options): Added deprecated.
3721 (flag_deprecated): New global.
3722 * chartables.h: Rebuilt.
3723 * gen-table.pl (process_one): Look at whitespace.
3724 (print_tables): Define LETTER_SPACE, LETTER_MASK.
3725 * parse.h (CLEAR_DEPRECATED): New macro.
3726 (CHECK_DEPRECATED_NO_RESET): New macro.
3727 * jcf-parse.c (handle_deprecated): New function.
3728 (HANDLE_DEPRECATED_ATTRIBUTE): New define.
3729 * jcf-reader.c (get_attribute): Handle Deprecated attribute.
3730 * parse.y (resolve_type_during_patch): Check deprecation.
3731 (jdep_resolve_class): Likewise.
3732 (process_imports): Likewise.
3733 (resolve_expression_name): Likewise.
3734 (check_deprecation): Strip arrays from decl. Check
3736 (patch_method_invocation): Also check the particular constructor
3738 (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
3739 * jcf-write.c (append_deprecated_attribute): New function.
3740 (generate_classfile): Generate deprecated attribute when
3742 * lex.c (java_parse_doc_section): Return type now void. Rewrote.
3743 (java_lex) [case '*']: Simplify logic.
3744 (java_start_char_p): Use LETTER_MASK.
3745 (java_part_char_p): Likewise.
3746 (java_space_char_p): New function.
3748 2003-02-20 Nathan Sidwell <nathan@codesourcery.com>
3750 Change base class access representation.
3751 * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
3752 (add_interface_do): Likewise.
3754 2003-02-12 Ranjit Mathew <rmathew@hotmail.com>
3756 * decl.c (java_init_decl_processing): Change
3757 soft_lookupjnimethod_node to reflect the change in
3758 signature of _Jv_LookupJNIMethod in libjava/jni.cc
3759 * expr.c (build_jni_stub): Calculate and pass the size
3760 on the stack of the arguments to a JNI function. Use
3761 new target macro MODIFY_JNI_METHOD_CALL to allow a
3762 target to modify the call to a JNI method.
3764 2003-02-08 Roger Sayle <roger@eyesopen.com>
3766 * jcf-io.c (java_or_class_file): Use libiberty's lbasename
3767 instead of basename to avoid compiler warnings on Tru64.
3769 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
3771 * gcj.texi: Update to GFDL 1.2.
3773 2003-01-31 Andrew Haley <aph@redhat.com>
3775 * parse.y (java_expand_classes): Scan the whole class list looking
3776 for access methods that haven't yet been expanded.
3778 2003-01-31 Adrian Bunk <bunk@fs.tum.de>
3782 * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
3783 to fix bootstrap on sparc-unknown-netbsdelf1.5.
3784 * jcf-parse.c: Likewise.
3786 2003-01-31 Mark Wielaard <mark@klomp.org>
3788 * gjavah.c (throwable_p): Allocate 1 more byte for string.
3790 2003-01-31 Nathan Sidwell <nathan@codesourcery.com>
3792 * class.c (make_class): Use BINFO_ELTS.
3793 (set_super_info): Likewse.
3794 (add_interface_do): Likewise.
3796 2003-01-30 Tom Tromey <tromey@redhat.com>
3798 * jcf-parse.c (read_class): Update identifier's class value if it
3799 changed during parsing.
3801 2003-01-30 Loren James Rittle <ljrittle@acm.org>
3803 * Make-lang.in (po-generated): Find the targets in $(parsedir).
3804 Propagate change to all other rules as required.
3805 (java/parse-scan.o): Add explicit dependency on
3806 $(parsedir)/java/parse-scan.c .
3808 2003-01-29 Tom Tromey <tromey@redhat.com>
3810 * parse.y (patch_assignment): Only transform the rhs of an
3811 assignment when compiling to native.
3813 2003-01-28 Tom Tromey <tromey@redhat.com>
3815 * jcf-write.c (generate_bytecode_conditional): Typo fixes.
3817 2003-01-28 Tom Tromey <tromey@redhat.com>
3819 * lex.c (java_lex): Don't include UEOF as part of token.
3820 (java_read_unicode): Error if \u sequence prematurely terminated.
3822 2003-01-27 Tom Tromey <tromey@redhat.com>
3824 * parse.y (java_check_regular_methods): Check for construct after
3825 checking types in throws clause.
3827 2003-01-24 Tom Tromey <tromey@redhat.com>
3829 * class.c (build_static_field_ref): Only a String or numeric field
3830 can fold to a constant.
3832 2003-01-23 Tom Tromey <tromey@redhat.com>
3834 * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
3835 file name in resource buffer.
3837 2003-01-23 Tom Tromey <tromey@redhat.com>
3839 * expr.c (build_known_method_ref): Use method's context to find
3842 2003-01-23 Tom Tromey <tromey@redhat.com>
3844 * constants.c (set_constant_entry): Allocated cleared memory.
3846 2003-01-22 Tom Tromey <tromey@redhat.com>
3848 * java-tree.h: Don't use PARAMS.
3849 * resource.c: Add prototypes for all functions.
3850 (write_resource_constructor): Use `const char *' to avoid
3853 2003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>
3855 * jcf-parse.c (process_zip_dir): Remove unused variable.
3857 2003-01-22 Tom Tromey <tromey@redhat.com>
3859 * expr.c (build_invokeinterface): Abort if method's context is not
3862 2003-01-22 Tom Tromey <tromey@redhat.com>
3864 * gcj.texi (Input and output files): Mention non-class entries.
3865 * decl.c (java_init_decl_processing): Call
3866 init_resource_processing.
3867 * java-tree.h (compile_resource_data, write_resource_constructor,
3868 compile_resource_file, init_resource_processing): Declare.
3869 * config-lang.in (gtfiles): Added resource.c.
3870 * Make-lang.in (gt-java-resource.h): New target.
3871 (JAVA_OBJS): Added resource.o.
3872 (java/resource.o): New target.
3873 * resource.c: New file.
3874 * class.c (compile_resource_file): Moved to resource.c.
3875 (registerResource_libfunc): Likewise.
3876 (utf8_decl_list): Mark with GTY; now static.
3877 * jcf-parse.c (classify_zip_file): New function.
3878 (parse_zip_file_entries): Use it; compile .properties files.
3879 (process_zip_dir): Use classify_zip_file and compute_class_name.
3880 Don't write class name into zip directory.
3881 (java_parse_file): Call write_resource_constructor.
3882 (compute_class_name): New function.
3883 * jcf-io.c (read_zip_member): Reindented.
3885 2003-01-21 Tom Tromey <tromey@redhat.com>
3887 * class.c (supers_all_compiled): New function.
3888 (make_class_data): Use it.
3890 2003-01-21 Tom Tromey <tromey@redhat.com>
3892 * parse.y (method_header): Native method can't be strictfp.
3893 No method can be transient or volatile.
3895 2003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3897 Make-lang.in (jvspec.o-warn): Add -Wno-error.
3899 2003-01-18 Kazu Hirata <kazu@cs.umass.edu>
3901 * check-init.c: Fix comment typos.
3902 * class.c: Likewise.
3903 * constants.c: Likewise.
3905 * except.c: Likewise.
3907 * java-except.h: Likewise.
3908 * java-tree.h: Likewise.
3909 * javaop.h: Likewise.
3910 * jcf-dump.c: Likewise.
3911 * jcf-io.c: Likewise.
3912 * jcf-parse.c: Likewise.
3913 * jcf-write.c: Likewise.
3915 * mangle.c: Likewise.
3916 * typeck.c: Likewise.
3917 * verify.c: Likewise.
3919 2003-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3921 * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
3922 * jcf-write.c: Include "tm_p.h".
3924 2003-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3926 * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
3928 2003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3930 * builtins.c (java_build_function_call_expr): Renamed from
3931 build_function_call_expr. All callers changed.
3933 * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
3934 * jcf-parse.c: Include tm_p.h.
3936 * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
3939 2003-01-14 Tom Tromey <tromey@redhat.com>
3941 * class.c (make_class_data): Check that super is compiled before
3942 building class reference to it.
3944 2003-01-14 Andrew Haley <aph@redhat.com>
3946 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
3947 varargs function -- correct.
3949 2003-01-14 Andrew Haley <aph@redhat.com>
3951 * decl.c (java_init_decl_processing): Temporarily back out previous patch.
3953 2003-01-14 Andrew Haley <aph@redhat.com>
3955 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
3956 varargs function -- correct.
3958 * parse.y (patch_assignment): Copy the rhs of an assignment into a
3959 temporary if the RHS is a reference.
3961 2003-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3963 * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
3964 * keyword.h: Regenerated.
3966 * All Files: Convert to ISO C style function definitions.
3968 2003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
3970 * parse.y (check_pkg_class_access): ANSIfy definition.
3972 2003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3974 * decl.c, parse-scan.y, parse.y: Don't cast return value of
3977 * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
3979 2003-01-09 Geoffrey Keating <geoffk@apple.com>
3981 Merge from pch-branch:
3983 2002-12-02 Geoffrey Keating <geoffk@apple.com>
3985 * Make-lang.in (java/gjavah.o): Update dependencies.
3986 * gjavah.c: Include ggc.h.
3988 2002-08-16 Geoffrey Keating <geoffk@redhat.com>
3990 * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
3991 (JCFDUMP_OBJS): Add ggc-none.o.
3992 (java/jcf-dump.o): Depend on GGC_H.
3993 * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
3994 CPool substructures.
3995 * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
3996 * jcf-dump.c: Include ggc.h.
3998 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
4000 * jcf.h (union cpool_entry): New.
4001 (struct CPool): Use gengtype to mark. Change field 'data' to be
4003 (struct JCF): Use gengtype to mark.
4004 (CPOOL_UINT): Update for new cpool_entry type.
4005 (CPOOL_USHORT1): Likewise.
4006 (CPOOL_USHORT2): Likewise.
4007 (CPOOL_FINISH): Use GC to free cpool subfields.
4008 * parse.h (struct parser_ctxt): Mark field current_jcf.
4009 * lex.c (java_init_lex): Use GC to allocate struct JCF.
4010 * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
4011 (main_jcf): Use gengtype to mark.
4012 (ggc_mark_jcf): Delete.
4013 (get_constant): Update for new cpool_entry type.
4014 (give_name_to_class): Likewise.
4015 (get_class_constant): Likewise.
4016 (init_outgoing_cpool): Use GGC to allocate struct CPool.
4017 (java_parse_file): Use GGC to allocate struct JCF.
4018 (init_jcf_parse): Don't call ggc_add_root.
4019 * jcf-reader.c (jcf_parse_constant_pool): Update for new
4021 * java-tree.h (current_jcf): Use gengtype to mark.
4022 (CPOOL_UTF): Update for new cpool_entry type.
4023 (outgoing_cpool): Use gengtype to mark.
4024 (struct lang_type): GC struct JCF and struct CPool.
4025 * config-lang.in (gtfiles): Add jcf.h.
4026 * constants.c (find_tree_constant): New.
4027 (set_constant_entry): Allocate cpool subfields using GGC. Update
4028 for new cpool_entry type.
4029 (find_constant1): Update for new cpool_entry type.
4030 (find_constant2): Likewise.
4031 (find_utf8_constant): Use find_tree_constant.
4032 (find_class_or_string_constant): Remove unnecessary cast to jword.
4033 Update for new cpool_entry type.
4034 (count_constant_pool_bytes): Update for new cpool_entry type.
4035 (write_constant_pool): Likewise.
4036 (alloc_name_constant): Use find_tree_constant.
4037 (build_constants_constructor): Update for new cpool_entry type.