1 2005-12-08 Andrew Haley <aph@redhat.com>
3 * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
4 (soft_abstractmethod_node): New.
5 * expr.c (build_field_ref): Add in-line check for missing field.
6 * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
8 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
10 * Make-lang.in (java.all.build, java.install-normal): Remove.
12 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
14 * Make-lang.in: Remove all dependencies on s-gtype, except for
17 2005-12-07 Richard Sandiford <richard@codesourcery.com>
19 * class.c (build_utf8_ref, emit_register_classes): Use
20 switch_to_section and get_section.
22 2005-12-06 Tom Tromey <tromey@redhat.com>
25 * parse.y (patch_new_array_init): Revert previous patch.
26 (lookup_method_invoke): Use size-less array type when creating an
27 anonymous constructor.
29 2005-12-05 Tom Tromey <tromey@redhat.com>
31 * parse.y (patch_new_array_init): Don't set length on array.
33 2005-12-02 Richard Guenther <rguenther@suse.de>
35 * java-gimplify.c (java_gimplify_labeled_block_expr): Use
36 buildN instead of build.
37 * class.c (finish_class): Likewise.
38 * expr.c (java_create_object): Likewise.
40 2005-11-28 Tom Tromey <tromey@redhat.com>
43 * expr.c (build_jni_stub): Unwrap the return value.
44 * java-tree.h (soft_unwrapjni_node): New define.
45 (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
46 * decl.c (java_init_decl_processing): Initialize
49 2005-11-24 Bryce McKinlay <mckinlay@redhat.com>
51 * gcj.texi (gij options): Add -Xss documentation.
53 2005-11-08 Wil Mahan <wmahan@gmail.com>
56 * zextract.c (read_zip_archive): Fix out of memory error when
57 reading jar files with zip-style comments.
59 2005-11-07 Terry Laurenzo <tlaurenzo@gmail.com>
61 * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
63 * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
65 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
66 Wil Mahan <wmahan@gmail.com>
69 * class.c (make_class): Create empty binfo here.
70 (set_super_info): Only create binfo if we have superclasses.
72 2005-10-03 Ranjit Mathew <rmathew@gcc.gnu.org>
75 * parse.y (method_header): Make the result of the rule a NULL_TREE
76 when a parsing error occurs.
78 2005-09-29 Tom Tromey <tromey@redhat.com>
81 * jcf-io.c (memoized_dirlist_hash): New function.
82 (caching_stat): Use it.
84 2005-09-21 Ranjit Mathew <rmathew@gcc.gnu.org>
87 * class.c (inherits_from_p): Try to lay out super class
88 if it is not already laid out.
89 (maybe_layout_super_class): Handle the case where SUPER_CLASS
92 2005-09-18 James A. Morrison <phython@gcc.gnu.org>
94 * builtins.c (max_builtin, min_builtin, abs_builtin,
95 java_build_function_call_expr): Use fold_buildN.
96 * class.c (layout_class_method): Likewise.
97 * expr.c (java_truthvalue_conversion, build_java_jsr,
98 build_java_arrayaccess, expand_java_arrayload, expand_iinc,
99 build_java_binop, build_field_ref, expand_compare,
100 build_known_method_ref, build_invokevirtual,
101 process_jvm_instruction): Likewise.
102 * parse.y (patch_binop, patch_exit_expr): Likewise.
103 * typeck.c (convert_ieee_real_to_integer): Likewise.
104 (convert): Don't call fold after convert_ieee_real_to_integer.
106 2005-09-14 Bryce McKinlay <mckinlay@redhat.com>
109 * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
110 the newly created type. Set import lists here, not in create_class.
111 (jdep_resolve_class): Set current_class.
112 (do_resolve_class): Use current_class's TYPE_PACKAGE to determine
113 the current package context, not ctxp->package.
114 (cicp_cache): Removed.
115 (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
116 * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
117 * java-tree.h (TYPE_PACKAGE): New macro.
118 (struct lang_type): New member 'package'.
120 2005-09-09 Andrew Haley <aph@redhat.com>
123 * expr.c (pop_type_0): If the expected type is object or ptr
124 (i.e. void*), return the type of the object we just popped from
127 2005-09-06 Andrew Pinski <pinskia@physics.uc.edu>
129 * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
130 BLOCK_EXPR_BODY before returning the new BIND_EXPR.
132 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
134 * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
135 jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
136 typos. Follow spelling conventions.
138 2005-09-05 Ranjit Mathew <rmathew@hotmail.com>
141 * typeck.c (lookup_do): Look up interfaces for the original class,
143 * parse.y (java_check_regular_methods): Fix diagnostic message for
144 more restrictive overriding of a method from an interface.
146 2005-08-16 Tom Tromey <tromey@redhat.com>
148 * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
149 class' initial state.
151 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
154 * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
155 `literal_token' for large numeric input tokens.
157 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
160 * parse.y (nested_field_access_p): Rename to nested_member_access_p
161 and expand to handle method accesses across nested classes.
162 (build_outer_method_access_method): Rename to
163 build_nested_method_access_method. Minor adjustments to comments.
164 (resolve_expression_name): Use the newly-renamed
165 nested_member_access_p method.
166 (resolve_qualified_expression_name): Likewise.
167 (patch_method_invocation): Also consider static methods for access
168 method generation. Minor adjustments to comments.
169 (maybe_use_access_method): Use the more general
170 nested_memeber_access_p to determine access across nested class
171 boundaries. Allow THIS_ARG to be NULL (for static methods).
173 2005-08-15 Tom Tromey <tromey@redhat.com>
176 * expr.c (build_field_ref): Don't generate otable reference when
177 DECL_FIELD_OFFSET is 0.
178 * class.c (maybe_layout_super_class): Pass outer class to
181 2005-08-15 Tom Tromey <tromey@redhat.com>
183 * java-tree.h (LABEL_IN_SUBR): Removed.
184 (LABEL_IN_SUBR): Likewise.
185 (LABEL_IS_SUBR_START): Likewise.
186 (LABEL_SUBR_START): Likewise.
187 (LABEL_SUBR_CONTEXT): Likewise.
188 (LABEL_CHANGED): Likewise.
189 (LABEL_RETURN_LABEL): Likewise.
190 (LABEL_RETURN_TYPE_STATE): Likewise.
191 (LABEL_RETURN_LABELS): Likewise.
192 (RETURN_MAP_ADJUSTED): Likewise.
193 (LABEL_PENDING_CHAIN): Likewise.
195 2005-08-15 Tom Tromey <tromey@redhat.com>
197 * Make-lang.in (JAVA_OBJS): Removed verify.o
198 (java/verify.o): Removed.
200 * lang.c (flag_new_verifier): Removed.
201 (java_post_options): Updated.
202 * java-tree.h (flag_new_verifier): Removed.
203 (verify_jvm_instructions): Removed.
204 * expr.c (pop_type_0): Assume flag_new_verifier is true.
205 (build_java_check_indexed_type): Likewise.
206 (expand_java_arraystore): Likewise.
207 (expand_java_arrayload): Likewise.
208 (pop_arguments): Likewise.
209 (expand_byte_code): Likewise.
210 (process_jvm_instruction): Likewise.
212 2005-08-10 Andrew Haley <aph@redhat.com>
214 * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
215 type mismatches to make legal GIMPLE.
217 2005-08-10 Robin Green <greenrd@greenrd.org>
220 * parse.y (maybe_use_access_method): Generalize check from
221 java.lang.Object to any superclass of current_class
223 2005-08-08 Nathan Sidwell <nathan@codesourcery.com>
225 * class.c (build_class_ref): Wrap the primary class type in a
227 * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
228 primary class type from the NOP_EXPR in which it was placed.
230 2005-07-28 Diego Novillo <dnovillo@redhat.com>
232 * expr.c (expand_load_internal): Fix missing parens in
235 2005-07-28 Andrew Haley <aph@redhat.com>
237 * expr.c (expand_load_internal): Convert to destination type.
239 2005-07-22 Manfred Hollstein <mh@suse.com>
241 * verify-impl.c (check_class_constant): Fix uninitialised warnings.
242 (check_constant): Likewise.
243 (check_wide_constant): Likewise.
245 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
247 Make CONSTRUCTOR use VEC to store initializers.
248 * check-init.c (check_init): Update to cope with VEC in
250 * class.c (make_field_value, make_method_value, get_dispatch_table,
251 make_class_data, emit_symbol_table, emit_catch_table,
252 emit_assertion_table): Use build_constructor_from_list instead of
254 * constants.c (build_constants_constructor): Likewise.
255 * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
256 VEC in CONSTRUCTOR_ELTS.
257 * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
258 PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
260 * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
262 * parse.y (build_new_array_init): Use build_constructor_from_list
263 instead of build_constructor.
264 (patch_new_array_init): Update to cope with VEC in
266 (array_constructor_check_entry): Likewise.
268 2005-07-12 Tom Tromey <tromey@redhat.com>
270 * jvspec.c (lang_specific_driver): Put filelist_filename first on
273 2005-07-12 Tom Tromey <tromey@redhat.com>
276 * parse-scan.y (interface_member_declaration): Added
279 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
281 * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
282 (LABEL_PENDING_CHAIN): Ditto.
284 (DECL_BIT_INDEX): Ditto.
286 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
289 * parse.y (inner_class_accessible): New function. Logic moved from
290 check_inner_class_access.
291 (check_inner_class_access): Use inner_class_accessible.
292 (resolve_inner_class): Simplify arguments. Create circularity hash
293 here. Keep looking for classes if we found one that was inaccessible.
294 Return the inaccessible class only if there is no other match.
295 (do_resolve_class): Update for new resolve_inner_class arguments.
296 Don't create circularity_hash here.
298 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
301 * parse.y (add_exception_to_throws): New function.
302 (purge_unchecked_exceptions): Removed.
303 (get_constructor_super): Renamed from verify_constructor_super. Now
304 returns the super constructor after verification.
305 (java_complete_expand_method): Don't use purge_unchecked_exceptions
306 or save/restore the exception list.
307 (check_thrown_exceptions): Add uncaught exceptions in anonymous
308 class initializers and constructors to the throws clause of the method.
310 2005-07-05 Bryce McKinlay <mckinlay@redhat.com>
313 * parse.y (interface_member_declaration): Allow empty statements in
314 interface declarations.
316 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
318 * Makefile.in (parse.o): Adjust dependencies.
319 * parse.y: Include tree-dump.h.
321 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
323 * class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
326 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
328 * parse.y (issue_warning_error_from_context): Call
329 pp_output_formatted_text to be able to get the buffer.
331 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
333 * parse.y (issue_warning_error_from_context): Update for the
334 renaming of pp_format_text to pp_format.
336 2005-06-28 Paul Brook <paul@codesourcery.com>
338 * decl.c (java_init_decl_processing): Call
339 default_init_unwind_resume_libfunc.
341 2005-06-27 Tom Tromey <tromey@redhat.com>
343 PR java/21540, PR java/13788:
344 * parse.y (java_complete_lhs) <CASE_EXPR>: Use
345 fold_constant_for_init.
346 (patch_binop): Added 'folding' argument. Updated all callers.
347 (patch_unaryop) <NOP_EXPR>: New case.
348 (fold_constant_for_init) <NOP_EXPR>: Likewise.
349 (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
351 2005-06-25 Jan Hubicka <jh@suse.cz>
353 * builtins.c (define_builtin): Accept new flags parameter.
354 (initialize_builtins): Mark the builtins const and nothrow accordingly.
356 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
358 * all files: Update FSF address in copyright headers.
360 2005-06-24 Tom Tromey <tromey@redhat.com>
362 * verify-impl.c (verify_instructions_0): Correctly handle
363 situation where PC falls off end.
365 2005-06-23 Bryce McKinlay <mckinlay@redhat.com>
368 * parse.y (find_most_specific_methods_list): Remove special case for
371 2005-06-15 Tom Tromey <tromey@redhat.com>
374 * class.c (make_method_value): Use soft_abstractmethod_node for
376 * java-tree.h (soft_abstractmethod_node): New define.
377 (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
378 * decl.c (java_init_decl_processing): Initialize
379 soft_abstractmethod_node.
381 2005-06-13 Geoffrey Keating <geoffk@apple.com>
383 * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
385 2005-06-13 Per Bothner <per@bothner.com>
387 * expr.c (int highest_label_pc_this_method,
388 start_label_pc_this_method): New globals.
389 (lookup_label): Add start_label_pc_this_method to pc for label, and
390 update highest_label_pc_this_method. This prevents conflicts between
391 labels from different methods.
392 * java-tree.h: Declare new globals.
393 * jcf-parse.c (parse_class_file): If needed bump
394 start_label_pc_this_method and reset highest_label_pc_this_method.
396 2005-06-13 Tom Tromey <tromey@redhat.com>
399 * parse.y (nested_field_access_p): Handle case where outer field
400 is inherited by enclosing class.
402 2005-06-12 Per Bothner <per@bothner.com>
404 * class.c (inherits_from_p): Do load_class if needed.
406 2005-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
408 * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
409 * java-tree.h (parse_error_context): Move...
410 * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
411 * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
412 * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
414 2005-06-08 Roger Sayle <roger@eyesopen.com>
416 * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
418 2005-06-06 Jakub Jelinek <jakub@redhat.com>
420 * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
421 msgid for argument name.
422 * gjavah.c (error): Likewise.
423 * java-tree.h (parse_error_context): Likewise.
424 * parse.y (parse_error_context, parse_warning_context,
425 issue_warning_error_from_context): Likewise.
427 2005-06-01 Tom Tromey <tromey@redhat.com>
430 * class.c (build_static_field_ref): Don't fold constant fields if
431 current class is from a .class file and we're using indirect
434 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
436 * java/verify-glue.c: Don't include errors.h and include toplev.h.
437 * java/Make-lang.in: Updates dependencies.
439 2005-05-26 Ranjit Mathew <rmathew@hotmail.com>
442 * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
443 NESTED_FIELD_ACCESS_IDENTIFIER_P.
444 (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
445 (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
446 * jcf-write.c (generate_classfile): Use
447 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
448 OUTER_FIELD_ACCESS_IDENTIFIER_P.
449 * parse.y (build_outer_field_access): Rename to
450 build_nested_field_access. Support static fields and outer-to-inner
452 (outer_field_access_p): Rename to nested_field_access_p. Support
453 static fields and generalise to outer-to-inner class and sibling
454 inner class accesses.
455 (outer_field_expanded_access_p): Rename to
456 nested_field_expanded_access_p and support static fields.
457 (outer_field_access_fix): Rename to nested_field_access_fix and
458 support static fields.
459 (build_outer_field_access_expr): Rename to
460 build_nested_field_access_expr and support static fields.
461 (build_outer_field_access_methods): Rename to
462 build_nested_field_access_methods and support static fields. For
463 static fields, generate accessors without class instance parameters.
464 (build_outer_field_access_method): Rename to
465 build_nested_field_access_method and support static fields.
466 (build_outer_method_access_method): Use
467 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
468 OUTER_FIELD_ACCESS_IDENTIFIER_P.
469 (resolve_expression_name): Consider static field accesses across
471 (resolve_qualified_expression_name): Likewise.
472 (java_complete_lhs): Use nested_field_access_fix instead of
473 outer_field_access_fix.
474 (patch_unary_op): Rename outer_field_flag to nested_field_flag.
475 Use nested_field_expanded_access_p instead of
476 outer_field_expanded_access_p. Use nested_field_access_fix instead
477 of outer_field_access_fix.
478 (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
479 instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
481 2005-05-26 Bryce McKinlay <mckinlay@redhat.com>
483 * decl.c (GCJ_BINARYCOMPAT_ADDITION,
484 GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
485 (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
486 MINOR_BINARYCOMPAT_ABI_VERSION): New.
487 (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
488 (parse_version): Calculate version ID using new method. Use bit-flags
489 for flag_indirect_dispatch and flag_bootstrap_classes.
491 2005-05-25 Richard Henderson <rth@redhat.com>
494 * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
495 * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
496 DECL_CONTEXT; avoid pushdecl_top_level.
497 (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
498 (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
499 (layout_class_method): Likewise.
500 * decl.c (java_mark_cni_decl_local): New.
501 (java_mark_class_local): Use it.
502 * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
503 (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
504 (struct lang_decl_func): Add local_cni;
505 (struct lang_decl_var): Add class_field, vtable.
506 (java_mangle_decl): Declare.
507 * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
508 * mangle.c: Remove dup obstack.h; include langhooks-def.h.
509 (mangle_obstack_1): New.
510 (java_mangle_decl): Remove obstack argument. Call mangle_class_field,
511 mangle_vtable, and mangle_local_cni_method_decl. Fall back to
512 lhd_set_decl_assembler_name for things that don't need mangling.
513 (mangle_class_field): Rename from java_mangle_class_field, make
514 static, don't call init_mangling or finish_mangling.
515 (mangle_vtable): Similarly.
516 (mangle_local_cni_method_decl): New.
517 (init_mangling): Remove obstack argument. Use &mangle_obstack_1,
518 gcc_assert, and MANGLE_RAW_STRING.
519 (finish_mangling): Use gcc_assert, remove if 0 debugging code.
521 2005-05-25 DJ Delorie <dj@redhat.com>
523 * class.c (set_constant_value): Move warning control from if() to
526 2005-05-24 Richard Henderson <rth@redhat.com>
528 * builtins.c (define_builtin): Don't call make_decl_rtl.
529 * constants.c (build_constant_data_ref): Likewise.
530 * class.c (build_utf8_ref): Likewise.
531 (build_fieldref_cache_entry, build_static_field_ref): Likewise.
532 (get_dispatch_table, layout_class_method): Likewise.
533 (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
535 (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
536 (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
537 to determine if we need a non-zero address.
538 * decl.c (builtin_function): Don't call make_decl_rtl.
539 (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
540 * expr.c (build_known_method_ref): Don't call make_decl_rtl.
541 * resource.c (compile_resource_data): Likewise.
542 * parse.y (resolve_field_access): Re-word comment to avoid
545 2005-05-24 Richard Henderson <rth@redhat.com>
547 * class.c (registered_class): Take it out of class_roots; turn into
549 (register_class): Make static. Don't duplicate decl node. Use
551 (emit_register_classes): Use VEC_iterate. Use output_constant
552 instead of assemble_integer. Don't call mark_decl_referenced
554 * java-tree.h (register_class): Remove decl.
556 2005-05-19 Paolo Bonzini <bonzini@gnu.org>
560 * parse.y (register_package, package_list): Remove.
561 (package_declaration): Do not call register_package.
562 (do_resolve_class): Do not use package_list.
564 2005-05-15 Gerald Pfeifer <gerald@pfeifer.com>
566 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
569 2005-05-15 Tom Tromey <tromey@redhat.com>
572 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
575 2005-05-12 Aaron Luchko <aluchko@redhat.com>
577 * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
579 2005-05-11 Tom Tromey <tromey@redhat.com>
581 * gcj.texi (Code Generation): Document -fbootstrap-classes.
582 * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
583 (parse_version): Use it.
584 * lang.opt (-fbootstrap-classes): New option.
586 2005-05-10 Paolo Bonzini <bonzini@gnu.org>
589 * class.c (maybe_layout_super_class): Look for imports in this_class.
590 * parse.h (ctxp_for_generation_last): New.
591 (do_resolve_class): Add a parameter.
592 * parse.y (ctxp_for_generation_last): New.
593 (java_pop_parser_context): Add at end of list.
594 (find_in_imports, find_in_imports_on_demand): Look in ctxp
595 if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
596 the given type are NULL.
597 (do_resolve_class): Look into the imports of the new second parameter.
598 Adjust recursive calls.
599 (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
600 calls to do_resolve_class.
601 (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
602 (java_complete_class): Do not do that here.
604 2005-05-03 Thomas Fitzsimmons <fitzsim@redhat.com>
607 * Make-lang.in (java): Add gjnih.
608 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
609 (GJNIH_OBJS): New variable.
610 (gjnih$(exeext)): New target.
611 (JAVA_MANFILES): Add gjnih.1.
612 (java.uninstall): Add gjnih.1.
613 (java.mostlyclean): Add gjnih.
614 (java.maintainer-clean): Add gjnih.1.
615 (java/gjavah-jni.o): New target.
616 (.INTERMEDIATE): Add gjnih.pod.
617 (gjnih.pod): New target.
618 * config-lang.in (stagestuff): Add gjnih.
619 * gcj.texi (Top): Add gjnih node.
620 (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
621 -bootclasspath options.
622 (Invoking gjnih): New node.
623 * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
624 (TOOLNAME): New macro.
625 (error): Replace hard-coded gcjh with TOOLNAME.
626 (process_file): Likewise.
629 (help): Likewise. Add help output for -force, -old, -trace and -J
631 (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
632 (options): Add force, old, trace and J fields.
633 (main): Handle -force, -old, -trace and -J options.
635 2005-05-03 Tom Tromey <tromey@redhat.com>
638 * gjavah.c (main): Unlink output file on error.
640 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
642 * constants.c, jvgenmain.c, lang.opt, resource.c: Update
645 2005-04-29 Tom Tromey <tromey@redhat.com>
647 * expr.c (build_jni_stub): Updated for change to build_block.
649 2005-04-29 Andrew Pinski <pinskia@gcc.gnu.org>
651 * expr.c (force_evaluation_order): Declare 'saved' earlier.
653 2005-04-28 Andrew Haley <aph@redhat.com>
656 * java-tree.h (soft_resolvepoolentry_node): New.
657 (alloc_constant_fieldref): Declare.
658 * expr.c (expand_java_field_op): Don't call class_init for
659 accesses to static fields with indirect dispatch.
660 * builtins.c (initialize_builtins): Add "__builtin_expect".
661 * decl.c (soft_resolvepoolentry_node): New variable.
662 (java_init_decl_processing): Create a decl for
663 "_Jv_ResolvePoolEntry".
664 * class.c (build_fieldref_cache_entry): New function.
665 (build_static_field_ref): Rewrite for indirect dispatch.
666 * constants.c (find_name_and_type_constant_tree): New function.
667 (alloc_constant_fieldref): Likewise.
668 (build_constants_constructor): Handle CONSTANT_Fieldref and
669 CONSTANT_NameAndType.
672 * expr.c (force_evaluation_order): Convert outgoing args smaller
675 2005-04-27 Bryce McKinlay <mckinlay@redhat.com>
677 * gcj.texi (libgcj Runtime Properties): Remove obsolete
678 gnu.gcj.runtime.NameFinder.* system properties. Update documentation
679 for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
681 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
683 * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
684 to `unlock_stream' with `unlock_std_streams'.
686 2005-04-25 Jakub Jelinek <jakub@redhat.com>
688 * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
689 instead of just expr.h.
691 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
693 * gjavah.c (main): Unlock the stdio streams.
694 * jcf-dump.c (main): Likewise.
695 * jv-scan.c (main): Likewise.
696 * jvgenmain.c (main): Likewise.
698 2005-04-23 DJ Delorie <dj@redhat.com>
700 * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
701 parse.y: Adjust warning() callers.
703 2005-04-21 Bryce McKinlay <mckinlay@redhat.com>
705 * gcj.texi (Object fields): Change "Integer" to "Int" in example
708 2005-04-20 Bryce McKinlay <mckinlay@redhat.com>
710 * gcj.texi: Fix typos and bogus example.
712 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
714 * except.c: Fix a comment typo.
716 2005-04-19 Julian Brown <julian@codesourcery.com>
718 * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
719 indirect dispatch with PIC.
721 2005-04-18 Andrew Haley <aph@redhat.com>
723 * java-except.h (struct eh_range.handler): Remove unused field.
724 (handle_nested_ranges): Remove function declaration.
725 (sanity_check_exception_range): Add function declaration.
726 * verify.c (verify_jvm_instructions): Remove call to
727 handle_nested_ranges.
728 * verify-glue.c (verify_jvm_instructions_new): Call
729 sanity_check_exception_range.
730 * except.c (link_handler, eh_range_freelist, link_handler,
731 handle_nested_ranges): Remove.
732 (add_handler): Rewrite.
733 (sanity_check_exception_range): New function.
734 (print_ranges): New function.
736 2005-04-13 Julian Brown <julian@codesourcery.com>
738 * decl.c (finish_method): Give methods once-only linkage.
740 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
742 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
744 2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
746 * java-tree.h: Don't use PARAMS().
748 2005-04-07 Per Bothner <per@bothner.com>
750 * class.c (push_class): By default, suppress debug output.
751 (finish_class): Enable debug output for classes we're emitting.
753 2005-04-07 Andrew Haley <aph@redhat.com>
755 * gcj.texi: Correct gcj-dbtool instructions.
757 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
759 * gcj.texi: Fix a typo.
760 * lang.c: Fix a comment typo.
762 2005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com>
764 * gcj.texi (Invoking gij): Add descriptions of new -X options.
765 Mention recognized-and-ignored compatibility options.
766 (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
768 (About CNI): Add Memory allocation section.
770 2005-04-01 Tom Tromey <tromey@redhat.com>
772 * decl.c (java_init_decl_processing): Fix types of
773 _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
774 _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
775 _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
777 2005-03-31 Jan Hubicka <jh@suse.cz>
779 * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
780 * class.c: Include cgraph.h
781 (make_local_functoin_alias): Mark aslias as needed.
782 * resource.c: Include cgraph.h
783 (compile_resource_data): Go via cgraph interface.
785 2005-03-30 Ian Lance Taylor <ian@airs.com>
787 * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
789 2005-03-30 Tom Tromey <tromey@redhat.com>
791 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
792 inner_class_info_index==0 or outer_class_info_index==0.
794 2005-03-29 Tom Tromey <tromey@redhat.com>
796 * gcj.texi (libgcj Runtime Properties): Document
797 gnu.gcj.runtime.endorsed.dirs.
799 2005-03-24 Anthony Green <green@redhat.com>
801 * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
804 2005-03-23 Tom Tromey <tromey@redhat.com>
806 * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
807 (parse_version): Use it.
809 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
811 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
813 2005-03-18 Andrew Haley <aph@redhat.com>
816 * decl.c (update_aliases): Don't update variables that are about
818 (maybe_poplevels): Add comment.
820 2005-03-17 Bryce McKinlay <mckinlay@redhat.com>
823 * jcf-parse.c (duplicate_class_warning): New function.
824 (java_parse_file): Call duplicate_class_warning if
825 CLASS_FROM_CURRENTLY_COMPILED_P is already set.
826 (parse_zip_file_entries): Likewise. Also set
827 CLASS_FROM_CURRENTLY_COMPILED_P.
829 2005-03-16 Andrew Haley <aph@redhat.com>
831 * expr.c (expand_java_arrayload): Don't generate a
832 NullPointerException based on the type of the node.
833 (build_java_array_length_access): Likewise.
835 2005-03-15 Zack Weinberg <zack@codesourcery.com>
837 * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
839 2005-03-11 Tom Tromey <tromey@redhat.com>
841 * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
842 (libgcj Runtime Properties): Document the default .db.
844 2005-03-10 Ranjit Mathew <rmathew@hotmail.com>
847 * parse.y (checks_throws_clauses): Check exceptions list even when
848 the base class does not come from a source file being compiled.
849 (java_complete_lhs): Remove unused variable 'wfl'.
851 2005-03-09 Ranjit Mathew <rmathew@hotmail.com>
854 * decl.c (finish_method): Emit _Jv_InitClass for private static
855 methods inside inner classes as well.
857 2005-03-08 Julian Brown <julian@codesourcery.com>
858 * Revert patch from 2005-03-08 for causing bootstrap failure on
861 2005-03-08 Julian Brown <julian@codesourcery.com>
863 * decl.c (finish_method): Give methods once-only linkage.
865 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
867 * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
869 2005-03-07 Bryce McKinlay <mckinlay@redhat.com>
871 * verify-glue.c (vfy_is_assignable_from): Perform static check using
872 can_widen_reference_to if the C++ ABI is in use.
873 (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
874 * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
875 type_isresolved, init_state, set_pc, state_get_pc,
876 _Jv_BytecodeVerifier): Clean up unused and disabled functions.
877 (verify_fail): Report the current PC from the verifier context.
878 (free_state): Remove #if 0 block to enable this function.
879 (free_verifier_context): Call free_state on state_list iterator
880 values before freeing them.
881 * expr.c (pop_type_0): Pop correct type for error message when stack
882 contains a multi-word type.
884 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
886 * expr.c (build_java_array_length_access): Remove !flag_new_verifier
887 for known NULL array length access.
889 2005-03-07 Tom Tromey <tromey@redhat.com>
891 * gcj.texi (Invoking gcj-dbtool): Document '-f'.
893 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
895 * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
896 typeck.c: Update copyright.
898 2005-03-06 Ranjit Mathew <rmathew@hotmail.com>
901 * xref.c, xref.h: Remove file.
902 * Make-lang.in (java/xref.o): Remove.
903 * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
904 * lang.c (flag_emit_xref): Remove definition.
905 * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
906 * typeck.c (convert): Remove use of do_not_fold.
907 * parse.y (do_not_fold): Remove definition.
908 (parser grammar): Remove xref code.
909 (maybe_create_class_interface_decl, create_class): Likewise.
910 (register_fields, method_header, finish_method_declaration): Likewise.
911 (declare_local_variables, source_end_java_method): Likewise.
912 (java_complete_expand_classes): Do not set do_not_fold.
913 (java_complete_expand_method): Remove xref code.
914 (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
915 (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
916 (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
917 (patch_synchronized_statement, patch_throw_statement): Likewise.
918 (maybe_build_class_init_for_field): Likewise.
920 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
922 * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
923 instead of IS_NON_TYPE_CODE_CLASS.
925 2005-03-04 Andrew Haley <aph@redhat.com>
928 * class.c (set_method_index): Don't set method_index if it is
930 (layout_class_method): Don't complain about "non-static method foo
931 overrides static method" in the case of indirect dispatch.
933 2005-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
935 * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
937 * Make-lang.in: Don't elide warnings in jcf-io.c.
939 2005-03-01 Per Bothner <per@bothner.com>
942 * check-init.c (wfl): Remove static.
943 (final_assign_error, check_init): Replace calls to parse_error_context
945 (check_init): Save, set, and restore input_location for each exp.
947 2005-03-01 Per Bothner <per@bothner.com>
949 * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
950 if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
951 * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
953 2005-03-01 Per Bothner <per@bothner.com>
955 * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
957 2005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
960 * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
963 2005-02-22 Tom Tromey <tromey@redhat.com>
966 * verify-impl.c (EITHER): New define.
967 (types_compatible): Handle it.
968 (check_field_constant): Use it.
970 2005-02-18 Tom Tromey <tromey@redhat.com>
973 * verify-impl.c (types_equal): Fixed test.
976 * verify-glue.c (vfy_class_has_field): New function.
977 * verify.h (vfy_class_has_field): Declare.
978 * verify-impl.c (check_field_constant): Added 'putfield'
980 (verify_instructions_0): Updated.
981 (types_equal): New function.
983 2005-02-14 Tom Tromey <tromey@redhat.com>
986 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
987 stack effect of multianewarray.
989 2005-02-14 Andrew Haley <aph@redhat.com>
992 * expr.c (expand_byte_code): Call promote_arguments().
993 (promote_arguments): New function.
994 * decl.c (check_local_unnamed_variable): Remove special case for
996 (find_local_variable): Promote all boolean types to int
997 when searching for local variable decls.
999 2005-02-12 Kazu Hirata <kazu@cs.umass.edu>
1001 * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
1002 parse-scan.y: Update copyright.
1004 2005-02-11 Per Bothner <per@bothner.com>
1007 * parse-scan.y (input_location): Remove variable.
1008 (main_input_filename): New - replaces input_filename, which isn't
1009 settable if USE_MAPPED_LOCATION.
1010 * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
1011 so we don't reference input_location or wfl_operator in that case.
1012 * jv-scan.c (expand_location): Remove - no longer used.
1013 (main): Set main_input_filename rather than input_filename.
1015 2005-02-09 Richard Henderson <rth@redhat.com>
1017 * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
1018 * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
1020 2005-02-08 Marcin Dalecki <martin@dalecki.de>
1022 * expr.c (add_type_assertion): Use the proper enumeration type,
1023 since this is what htab_find_slot() is expecting.
1025 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
1027 * gcj.texi: Update copyright dates.
1029 2005-02-02 Tom Tromey <tromey@redhat.com>
1031 * gcj.texi (libgcj Runtime Properties): Default library_control
1034 2005-02-02 Ranjit Mathew <rmathew@hotmail.com>
1037 * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
1038 (modifiers) when square brackets are present in a declaration for
1040 * jv-scan.c (main): Set input_filename and input_line.
1042 2005-02-01 Tom Tromey <tromey@redhat.com>
1045 * gjavah.c (get_field_name): Don't override name for JNI header.
1047 2005-02-01 Roger Sayle <roger@eyesopen.com>
1049 * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
1050 of unsigned types using iushr and lushr JVM bytecodes.
1052 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
1055 * gjavah.c (jni_print_float): Do not emit floating-point
1056 initialiser for a static final field.
1057 (jni_print_double): Likewise.
1059 2005-02-01 Mark Mitchell <mark@codesourcery.com>
1062 2005-01-31 Mark Mitchell <mark@codesourcery.com>
1063 * gjavah.c (print_field_info): Mark static data members of
1064 floating-point type with "__extension__".
1066 2005-01-31 Mark Mitchell <mark@codesourcery.com>
1068 * gjavah.c (print_field_info): Mark static data members of
1069 floating-point type with "__extension__".
1071 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
1074 * parse.y (build_string_concatenation): Remove redundant if.
1075 (patch_conditional_expr): Attempt to patch_string() the condition
1076 of a ?: as well, in addition to its other operands.
1078 2005-01-25 Tom Tromey <tromey@redhat.com>
1080 * Make-lang.in (java/java-tree-inline.o): Removed.
1082 2005-01-25 Ranjit Mathew <rmathew@hotmail.com>
1085 * parse.y (patch_binop): Allow comparisons against NULL only
1086 if the other operand is of a reference type.
1088 2005-01-24 Tom Tromey <tromey@redhat.com>
1090 * java-tree.h (gcj_abi_version): Declare.
1091 * class.c (make_class_data): Push gcj_abi_version into "next"
1092 field. Renamed field.
1093 * decl.c (gcj_abi_version): New global.
1094 (parse_version): New function.
1095 (java_init_decl_processing): Call it. Renamed 'next' field.
1097 (GCJ_BINARYCOMPAT_ADDITION): New define.
1099 2005-01-24 Roger Sayle <roger@eyesopen.com>
1102 * jcf-write.c (generate_bytecode_insns): Conversions between
1103 integer types of the same precision shouldn't generate widening
1104 or narrowing conversion bytecodes.
1106 2005-01-22 Kazu Hirata <kazu@cs.umass.edu>
1108 * java-except.h, java-tree.h: Remove unused prototypes.
1110 2005-01-20 Andrew Pinski <pinskia@gcc.gnu.org>
1113 * jcf-write.c (perform_relocations): Don't call memcpy if source
1114 and destination are the same.
1116 2005-01-17 Tom Tromey <tromey@redhat.com>
1118 * verify-impl.c (get_short): Sign extend.
1119 (get_int): Likewise.
1121 2005-01-12 Ranjit Mathew <rmathew@hotmail.com>
1123 * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
1126 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
1128 * verify.c: Revert to the version before the BC-ABI merge.
1130 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
1133 * check-init.c (check_init): Take care of references that do not
1134 have an explicit final variable declaration (e.g. array length
1135 access) for pre/post in/de-crement operators.
1137 2005-01-08 Mark Wielaard <mark@klomp.org>
1139 * parse.y (process_imports): Allocate (and free) original_name only
1140 when not already defined.
1141 * jcf-parse.c (read_class): Free results of find_class() and
1143 (java_parse_file): Keep pointer to head of file_list and free when
1144 done. Free result of lrealpath().
1146 2005-01-05 Tom Tromey <tromey@redhat.com>
1148 * gcj.texi (Standard Properties): java.ext.dirs is now used.
1150 2004-12-20 Andrew Haley <aph@redhat.com>
1152 * typeck.c: Use fold_convert for ints and booleans.
1154 2004-12-17 Andrew Haley <aph@redhat.com>
1157 * typeck.c (convert): Use a CONVERT_EXPR when converting to
1158 BOOLEAN_TYPE or CHAR_TYPE.
1159 (convert_to_boolean, convert_to_char) : Remove.
1160 * convert.h (convert_to_boolean, convert_to_char) : Remove.
1161 * expr.c (expand_load_internal): Do type conversion if type is not
1164 2004-12-13 Danny Smith <dannysmith@users.sourceforge.net>
1167 * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
1170 2004-12-07 Andrew Haley <aph@redhat.com>
1173 * jcf-parse.c (load_class): Remove sanity test for missing inner
1176 2004-12-06 Tom Tromey <tromey@redhat.com>
1178 * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
1179 (java.uninstall): Likewise.
1180 (java.maintainer-clean): Likewise.
1181 (.INTERMEDIATE): Likewise.
1182 (java.install-man): Likewise.
1183 (gcj-dbtool.pod): New target.
1184 * gcj.texi (Code Generation): Document -findirect-dispatch.
1185 (libgcj Runtime Properties): Document
1186 gnu.gcj.precompiled.db.path.
1187 (Top): Link to "Invoking gcj-dbtool".
1189 2004-12-06 Tom Tromey <tromey@redhat.com>
1192 * java-tree.h (extract_field_decl): Declare.
1193 * parse.y (extract_field_decl): Renamed from
1194 strip_out_static_field_access_decl. No longer static.
1195 * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
1197 2004-12-03 Tom Tromey <tromey@redhat.com>
1199 * lang.c (flag_new_verifier): Define.
1200 (java_post_options): Set flag_new_verifier if indirect dispatch
1202 * lang.opt (fnew-verifier): Removed.
1204 2004-12-03 Tom Tromey <tromey@redhat.com>
1207 * Make-lang.in (java.install-common): Only install transformed
1208 gcjh if gcj-cross exists.
1210 2004-12-03 Andrew Haley <aph@redhat.com>
1213 * except.c (link_handler): Patch 'outer' field of siblings of the
1214 range we're demoting.
1216 2004-12-03 Andrew Haley <aph@redhat.com>
1219 * class.c (layout_class_method): Don't fail to override a method
1220 simply because it has DECL_ARTIFICIAL set.
1222 2004-12-02 Tom Tromey <tromey@redhat.com>
1225 * parse.y (craft_constructor): Special case null_pointer_node.
1227 2004-12-02 Tom Tromey <tromey@redhat.com>
1230 * java-gimplify.c (java_gimplify_expr): Don't call
1231 SET_EXPR_LOCATION unless wrapped tree is an expression.
1233 2004-11-27 Per Bothner <per@bothner.com>
1235 * jcf-parse.c (set_source_filename): Improvement to Andrew's fix:
1236 Fix fencepost error in 'i', which got executed one too many times.
1237 Also, fold memcpy into explicit loop, as originally intended.
1238 Also, free temporary 'buf' which otherwise leaks.
1240 2004-11-27 Per Bothner <per@bothner.com>
1242 * expr.c (build_expr_wfl): Only declare last_file and last_filenode
1243 local static variables if not USE_MAPPED_LOCATION.
1245 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
1247 * class.c, decl.c, expr.c: Fix comment typos.
1249 2004-11-26 Andrew Pinski <pinskia@physics.uc.edu>
1252 * decl.c (end_java_method): Call
1253 attach_init_test_initialization_flags on all the init_decls.
1254 * parse.y (attach_init_test_initialization_flags): Move to ...
1255 * expr.c (attach_init_test_initialization_flags): here and
1256 support BIND_EXPR also.
1257 * java-tree.h (attach_init_test_initialization_flags): Prototype.
1258 * jcf-parse.c (parse_class_file): Don't disable class init
1261 2004-11-25 Joseph S. Myers <joseph@codesourcery.com>
1263 * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
1266 2004-11-24 Richard Henderson <rth@redhat.com>
1268 * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
1269 vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
1271 2004-11-24 Tom Tromey <tromey@redhat.com>
1273 * verify.c (defer_merging): Don't use C++-style comment.
1274 * verify.h (java_opcode): Added java_opcode_end.
1275 * class.c (build_class_ref): Remove C++ comment and old FIXME.
1277 * verify-impl.c (vfy_push_type): Removed bogus "return".
1278 (initialize_stack): Use vfy_alloc and vfy_free.
1279 (verify_instructions_0): Likewise.
1281 * Merged gcj-abi-2-dev-branch to trunk.
1283 2004-11-24 Andrew Haley <aph@redhat.com>
1285 * jcf-parse.c (parse_class_file): Set file_start_location.
1287 2004-11-10 Tom Tromey <tromey@redhat.com>
1289 * class.c (make_field_value): Don't call build_static_field_ref.
1290 (build_static_field_ref): Don't emit direct references when using
1293 * gcj.texi (Invoking gij): Document -verbose. Put -verbose and
1294 -verbose:class into man page synopsis.
1296 2004-11-09 Tom Tromey <tromey@redhat.com>
1298 * expr.c (build_java_arraystore_check): Still generate check if
1299 element type is itself an array.
1301 2004-11-08 Tom Tromey <tromey@redhat.com>
1303 * java-tree.h (soft_check_assignment_node): Removed.
1304 (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
1305 * decl.c (java_init_decl_processing): Don't initialize
1306 soft_check_assignment_node.
1308 2004-11-05 Tom Tromey <tromey@redhat.com>
1310 * class.c (layout_class_methods): Don't add Miranda methods when
1311 using indirect dispatch.
1313 2004-11-05 Bryce McKinlay <mckinlay@redhat.com>
1315 * class.c (make_class_data): Call emit_assertion_table to set the
1316 'assertion_table' field.
1317 (build_signature_for_libgcj): Move here from expr.c.
1318 (add_assertion_table_entry): New function. Callback for assertion
1319 hashtable traversal.
1320 (emit_assertion_table): New. Take class argument, and generate
1321 assertion table DECL based on the TYPE_ASSERTIONS hashtable.
1322 * decl.c (init_decl_processing): Define assertion_entry_type record.
1323 Push 'assertion_table' class field instead of 'verify'.
1324 * expr.c (type_assertion_eq): Compare 'assertion_code' field.
1325 (type_assertion_hash): Include 'assertion_code' in hash.
1326 (add_type_assertion): Rewritten. Take class and assertion_code
1327 arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
1328 (can_widen_reference_to): Use new add_type_assertion() arguments.
1329 * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
1330 JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
1331 (verify_identifier_node): Removed.
1332 (assertion_entry_type, assertion_table_type): New.
1333 (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
1334 assertion code definitions.
1335 (struct type_assertion): Add assertion_code. Rename 'source_type' and
1336 'target_type' to 'op1' and 'op2'.
1337 (add_type_assertion): Declare.
1338 (lang_printable_name_wls): Remove unused definition.
1339 * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
1340 to emit runtime assertion.
1341 (vfy_note_stack_type): Clean up non-C90 declarations.
1342 (vfy_note_local_type): Likewise.
1343 * verify.h (vfy_is_assignable_from): Declare.
1344 * verify-impl.c (is_assignable_from_slow): Remove unused function.
1345 (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
1346 instead of is_assignable_from_slow().
1347 (types_compatible): Reinstate ref_compatible() call.
1349 2004-11-04 Tom Tromey <tromey@redhat.com>
1351 * class.c (build_static_field_ref): Reverted previous patch.
1353 * class.c (build_static_field_ref): Don't emit direct references
1354 when using indirect dispatch.
1356 2004-11-03 Tom Tromey <tromey@redhat.com>
1358 * expr.c (expand_java_arrayload): Set lhs_type_node.
1359 (expand_java_arraystore): Set rhs_type_node.
1361 2004-11-02 Tom Tromey <tromey@redhat.com>
1363 * jcf-parse.c (compute_class_name): Use filename length from zip
1364 directory, not strlen.
1366 * expr.c (expand_invoke): Mark new interface methods as abstract.
1368 2004-11-01 Tom Tromey <tromey@redhat.com>
1370 * verify-impl.c (push_jump): Removed check for uninitialized
1372 (push_exception_jump): Likewise.
1373 (handle_ret_insn): Likewise.
1374 (handle_jsr_insn): Likewise.
1375 (state_check_no_uninitialized_objects): Removed.
1377 * decl.c (check_local_unnamed_variable): Recognize
1378 promoted-to-int parameters when using the new verifier.
1379 * expr.c (expand_java_arraystore): Explicitly request array type
1380 when using new verifier.
1381 (expand_java_arrayload): Likewise.
1382 (invoke_build_dtable): Don't pass object_type_node as
1383 expression argument to build_java_indirect_ref.
1384 (build_java_check_indexed_type): Do nothing.
1385 (build_java_arraystore_check): Handle case where array doesn't
1387 (build_java_array_length_access): Likewise.
1388 (expand_invoke): Handle case where interface overrides a method
1390 (pop_type_0): Always succeed for reference types.
1391 (process_jvm_instruction): Don't pop a value in a dead
1393 (pop_arguments): Convert arguments to correct types.
1395 2004-10-29 Andrew Haley <aph@redhat.com>
1397 * jcf-parse.c (give_name_to_class): Remove line that was
1400 2004-10-29 Andrew Haley <aph@redhat.com>
1402 * jcf-parse.c (set_source_filename): Add code to build new sfname.
1404 2004-10-20 Andrew Haley <aph@redhat.com>
1406 * decl.c (end_java_method): Don't expand if flag_syntax_only.
1408 2004-10-26 Tom Tromey <tromey@redhat.com>
1410 * verify.h (vfy_notify_verified): Removed.
1411 * verify-glue.c (vfy_notify_verified): Removed.
1413 2004-10-26 Tom Tromey <tromey@redhat.com>
1415 * verify-impl.c (debug_print_state): Declare `i' before code.
1416 (merge_types): Modify `t' when it is null_type.
1418 2004-10-26 Tom Tromey <tromey@redhat.com>
1420 * verify-impl.c (type_print): Renamed from print. Now static and
1422 (debug_print_state): Use type_print.
1424 2004-10-25 Tom Tromey <tromey@redhat.com>
1426 * expr.c (build_invokeinterface): Compute correct offset for
1427 index into interface methods.
1429 2004-10-20 Tom Tromey <tromey@redhat.com>
1431 * java-tree.h (verify_jvm_instructions_new): Declare.
1433 * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
1436 * verify-impl.c (verify_instructions): Correctly handle wide
1438 * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
1439 (vfy_get_component_type): Strip pointer types.
1440 (vfy_find_class): Use get_type_from_signature. Strip pointer
1442 Include java-except.h.
1444 2004-10-20 Bryce McKinlay <mckinlay@redhat.com>
1446 * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
1447 vfy_push_type_t, set_variable, add_new_state, merge_into,
1448 handle_jsr_insn, branch_prepass, check_class_constant,
1449 check_wide_constant, get_one_type, compute_static_types,
1450 verify_instructions_0): Clean up C99 declarations after statements.
1452 2004-10-20 Tom Tromey <tromey@redhat.com>
1454 * verify-impl.c (merge_refs): Compare reference against iterator,
1457 * verify-glue.c (vfy_tag): Mask off resolved flag.
1459 2004-10-19 Tom Tromey <tromey@redhat.com>
1461 * verify-impl.c (verify_instructions): Call vfy_note_local_type.
1462 (init_state_with_stack): Initialize `this_type' in state.
1463 (verify_method): Use debug_print.
1464 * verify-glue.c (vfy_is_primitive): Removed debugging print.
1465 (vfy_note_stack_depth): Reverted last patch.
1466 (vfy_note_stack_type): Note pointer to Object, not Object.
1467 (vfy_note_local_type): Likewise.
1469 * verify.h (vfy_note_instruction_seen): Declare.
1470 * verify-glue.c (verify_jvm_instructions_new): Set
1471 BCODE_EXCEPTION_TARGET on target instruction.
1472 (vfy_note_instruction_seen): New function.
1473 * verify-impl.c (FLAG_INSN_SEEN): New define.
1474 (verify_instructions_0): Set flag on instruction. Save state for
1476 (verify_instructions): Call vfy_note_instruction_seen.
1478 * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
1479 (verify_jvm_instructions_new): Call method_init_exceptions,
1480 add_handler, and handle_nested_ranges.
1481 * verify-impl.c (verify_method): Return 1 on success.
1482 (verify_instructions_0): Save the state at PC=0.
1484 * verify-impl.c (init_type_from_class): Set is_resolved and
1485 ref_next on new ref_intersection.
1486 (init_type_from_string): Likewise.
1488 2004-10-15 Bryce McKinlay <mckinlay@redhat.com>
1490 * expr.c (expand_bytecode): Use verify_jvm_instructions_new
1491 if flag_new_verifier is set.
1492 * java-tree.h (flag_new_verifier): Declare.
1493 * lang.opt (fnew-verifier): New option.
1494 * verify-impl.c: Work around namespace pollution by undef'ing
1496 (struct verifier_context): Make 'bytecode' const.
1497 (verify_fail_pc): Pass -1 PC argument to vfy_fail.
1498 (types_compatible): For the BC-ABI, always consider reference types
1500 (check_class_constant): Use vfr->current_class.
1501 (check_constant): Likewise.
1502 (check_wide_constant): Likewise.
1503 (check_field_constant): Check for 'L' at start of type name.
1504 (get_one_type): Return pointer instead of type. Set type result in
1505 caller via passed type pointer.
1506 (compute_argument_types): Update to use new get_one_type arguments.
1507 (compute_return_type): Likewise.
1508 (make_verifier_context): New. Allocate and initialize 'vfr'.
1509 (free_verifier_context): New. Free 'vfr' and its contents.
1510 (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
1511 and free_verifier_context.
1513 2004-10-15 Tom Tromey <tromey@redhat.com>
1515 * verify-glue.c (vfy_note_local_type): Mark argument as unused.
1516 * verify.h (vfy_fail): Fixed formatting.
1518 * verify-impl.c (vfr): Fixed comment formatting.
1519 (collapse_type): New function.
1520 (verify_instructions): Notify compiler about type map.
1521 * verify.h (vfy_note_stack_depth): Updated.
1522 (vfy_note_stack_type): Likewise.
1523 (vfy_note_local_type): Likewise.
1524 (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
1526 * verify-glue.c (vfy_note_stack_depth): Correctly size type
1527 state. Added `method' argument.
1528 (vfy_note_stack_type): Renamed from vfy_note_type. Added `method'
1530 (vfy_note_local_type): New function.
1531 (vfy_unsuitable_type): Likewise.
1532 (vfy_return_address_type): Likewise.
1533 (vfy_null_type): Likewise.
1535 * verify.h (VFY_IN_GCC): Removed.
1536 (VFY_WANT_TYPEMAP): Removed.
1537 * verify-impl.c (verify_instructions_0): Removed useless "\".
1538 (struct state) <next>: Uncomment.
1540 2004-10-13 Bryce McKinlay <mckinlay@redhat.com>
1542 * verify-impl.c: Formatting fixes. Reformat C++-style comments to
1545 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
1547 * Make-lang.in (verify.o): Re-enabled this target.
1548 * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
1549 (vfy_get_interface): Likewise.
1550 (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
1551 * verify.h (verify_jvm_instructions_new): Declare.
1552 * verify-impl.c (free_state): Temporarily comment out unused
1555 2004-10-06 Tom Tromey <tromey@redhat.com>
1557 * java-tree.h (JV_STATE_READ): New enum value.
1559 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
1561 * verify.h: New file.
1563 2004-10-05 Bryce McKinlay <mckinlay@redhat.com>
1565 * verify-impl.c, verify-glue.c, verify.h: New files.
1566 * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
1568 2004-09-24 Andrew Haley <aph@redhat.com>
1570 * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
1571 for a slot if it's of pointer type.
1573 2004-09-14 Tom Tromey <tromey@redhat.com>
1575 * class.c (make_class_data): Correctly initialize "state" field.
1576 Initialize "engine" field.
1577 * decl.c (java_init_decl_processing): Add "engine" field.
1579 2004-09-10 Andrew Haley <aph@redhat.com>
1582 * expr.c (build_invokeinterface): Use fast method for interface
1584 * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
1585 JTI_ITABLE_PTR_TYPE.
1586 (struct lang_type): Add itable_methods, itable_decl, itable_syms_decl.
1587 (emit_symbol_table): Add new arg, element_size.
1588 * decl.c (java_init_decl_processing): Initialize Class.itable.
1589 * class.c (GEN_TABLE): New macro.
1590 (gen_indirect_dispatch_tables): Use it. Add itable.
1591 (make_class_data): Add new arg for emit_symbol_table().
1593 (add_miranda_methods): Make sure search_class has been parsed.
1594 (emit_symbol_table): Add new arg, element_size.
1596 2004-09-06 Andrew Haley <aph@redhat.com>
1598 * verify.c (merge_types): Return Object for all merges of
1600 * expr.c (add_type_assertion): Don't generate assertions when
1601 source type is array of Object.
1603 2004-09-03 Andrew Haley <aph@redhat.com>
1605 * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
1607 * lang.c (java_post_options): Force flag_verify_invocations if
1608 we're not using indirect dispatch.
1610 * expr.c (pop_type_0): Move test for interfaces before call to
1611 can_widen_reference_to().
1612 (build_signature_for_libgcj): Remove generation of canonical array
1614 (add_type_assertion): Canonicalize both arrays.
1615 Don't assert that type X can be assigned to Object.
1616 Don't assert that type X an be assigned to type X.
1617 Don't assert that Object can be assigned to type X.
1618 (can_widen_reference_to): Warn whenever we generate an assertion.
1619 (process_jvm_instruction): Use throwable_type_node for the type of
1622 2004-09-01 Andrew Haley <aph@redhat.com>
1624 * decl.c (java_init_decl_processing): Change
1625 verify_identifier_node to "__verify".
1626 * expr.c (add_type_assertion): Use verify_identifier_node for name.
1627 * java-tree.h (verify_identifier_node): Change to "__verify".
1629 * expr.c (build_signature_for_libgcj): New function.
1630 (add_type_assertion): Use it to construct signatures for
1631 source_type and target_type.
1633 2004-08-27 Andrew Haley <aph@redhat.com>
1635 * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
1636 (verify_identifier_node): New.
1637 (TYPE_VERIFY_METHOD): New.
1638 (struct type_assertion): New type.
1639 * expr.c (type_assertion_eq): New function.
1640 (type_assertion_hash): New function.
1641 (add_type_assertion): New function.
1642 (can_widen_reference_to): Call add_type_assertion().
1643 * decl.c (java_init_decl_processing): Add verify_identifier_node.
1644 * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
1645 (finish_class): Output TYPE_VERIFY_METHOD (type).
1647 * decl.c (end_java_method): Nullify unused fields.
1649 2004-08-17 Andrew Haley <aph@redhat.com>
1651 * verify.c (defer_merging): Quieten.
1652 * jcf-parse.c (load_class): Only try to open a class file if it's
1653 java.lang.Object or if it's part of the current compilation.
1654 Check that the class we just tried to load is the class we just
1656 (java_parse_file): Set flag_verify_invocations off if we're
1657 compiling from .class.
1658 (parse_zip_file_entries): Abort if we try to read a dummy class.
1659 * expr.c (can_widen_reference_to): Quieten.
1660 (build_invokevirtual): Abort if we try to invokevirtual an
1662 (expand_invoke): Don't build a non-interface call to an interface.
1663 (build_instanceof): Don't do premature optimization if
1664 flag_verify_invocations is not set.
1665 * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
1667 (build_static_field_ref): Add correct type conversion for
1669 (add_miranda_methods): Disable generation of Miranda methods for
1671 (layout_class_method): Don't complain about non-static method
1672 overrides static method with dummy classes.
1674 2004-08-13 Tom Tromey <tromey@redhat.com>
1676 * class.c (build_static_field_ref): Re-enable atable lookups for
1679 * parse.y (strip_out_static_field_access_decl): Indentation fix.
1681 2004-08-11 Tom Tromey <tromey@redhat.com>
1683 * gcj.texi (libgcj Runtime Properties): Document new properties.
1685 2004-08-06 Andrew Haley <aph@redhat.com>
1687 * jcf-parse.c (load_class): Check that we really have loaded the
1688 class we're looking for.
1690 2004-07-19 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-06-29 Andrew Haley <aph@redhat.com>
1729 * except.c (expand_start_java_handler): Push a new binding level.
1730 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
1731 register_exception_range() to register where we'll do it.
1732 (expand_end_java_handler): Remove old bogus code. Replace with
1733 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
1734 the top of the expression we're curently building.
1735 (maybe_end_try): Delete.
1736 * decl.c (binding_level.exception_range): New field.
1737 (clear_binding_level): Add field exception_range. Reformat.
1738 (poplevel): Call expand_end_java_handler().
1739 (poplevel): Call java_add_stmt only if functionbody is false.
1740 (maybe_poplevels): Don't call maybe_end_try() from here.
1741 (end_java_method): Clear no longer used trees in function decl.
1742 (register_exception_range): New function.
1743 * java-tree.h (register_exception_range, struct eh_range): Declare.
1745 2004-06-22 Andrew Haley <aph@redhat.com>
1747 * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
1749 * check-init.c (get_variable_decl): Teach check-init about
1750 FIELD_DECLs addressed via the otable.
1751 * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
1754 2004-05-28 Andrew Haley <aph@redhat.com>
1756 * jcf-parse.c (load_class): Don't try to read a class that we've
1759 * expr.c (build_invokeinterface): Use the old-fashioned way of
1760 doing indirect dispatch: look up interfaces by name.
1761 * java-tree.h (enum java_tree_index): Add
1762 JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
1763 * decl.c (java_init_decl_processing): Add
1764 soft_lookupinterfacemethodbyname_node.
1766 * gjavah.c (print_method_info): Final methods have vtable entries,
1767 so gjavah needs to output them.
1768 * class.c (layout_class_method): Generate vtable entries for final
1770 * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
1771 dispatch, even if a method is final.
1773 2004-05-25 Andrew Haley <aph@redhat.com>
1775 * class.c (build_symbol_entry): Convert the names of constructors
1776 to init_identifier_node when generating an entry for the indirect
1779 * expr.c (build_known_method_ref): Generate indirect calls for
1780 all methods marked DECL_EXTERNAL or TREE_PUBLIC.
1782 2004-05-24 Andrew Haley <aph@redhat.com>
1784 * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
1785 atable element is of the right type.
1787 * class.c (build_static_field_ref): Cast pointer to correct type
1790 2004-04-20 Bryce McKinlay <mckinlay@redhat.com>
1792 * Merged with HEAD as of 20040514. Diff against
1793 gcj-abi-2-merge-20040514.
1795 2004-04-16 Andrew Haley <aph@redhat.com>
1797 * verify.c (check_pending_block): Disable subroutine checks.
1798 (defer_merging): New function.
1799 (merge_types): If types are dummy, use defer_merging to combine them.
1800 (verify_jvm_instructions): If invocation is invokeinterface and
1801 target is dummy, assume target really is an interface.
1803 * parse.y (patch_invoke): Break out call to java_create_object.
1805 * lang.c (flag_verify_invocations): New.
1807 * jcf-parse.c (load_class): If we've already failed to load a
1808 class, don't try again.
1809 (load_class): If we can't find a .class file, don't fail, but emit
1811 (parse_class_file): Don't act on dummy methods.
1813 * java-tree.h (flag_verify_invocations): New.
1815 (lang_type.dummy_class): New field.
1816 (java_create_object): New function.
1817 (METHOD_DUMMY): New.
1819 * expr.c (build_field_ref): Widen field offset.
1820 (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
1821 that each of its elements is compatible with the one we're
1823 (pop_type_0): Issue a warning to say that we need to generate a
1825 (java_create_object): New function.
1826 (build_field_ref): Only generate hard refs if we're not using
1828 (expand_java_field_op): If we're using !verify_invocations and we
1829 see a missing field, generate a decl for it.
1831 (expand_invoke): If a class doesn't have the method we seek and
1832 we're using !flag_verify_invocations, generate a decl for the
1835 (build_known_method_ref): Always use indirect dispatch via the
1836 atable for static methods.
1838 (expand_java_NEW): Break out object creation into new function,
1841 (can_widen_reference_to): Issue a warning to say that we need to
1842 generate a runtime check.
1844 * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
1845 (make_method_value): Also use index for interfaces.
1846 (make_class_data): Skip dummy field for inherited data.
1847 Don't build method array for dummy methods.
1848 Set size_in_byte to -1 when using inirect dispatch
1849 Don't build a hard class ref if we don't have a hard ref to our
1850 superclass, or if we're using inirect dispatch.
1851 Null out dispatch tables.
1853 (layout_class_method): Don't complain about non-static method
1854 overrides static method is method is artificial.
1856 (build_static_field_ref): Disable atable references to static
1857 fields for the time being.
1859 (layout_class_methods): Check for CLASS_INTERFACE as
1860 well as CLASS_ABSTRACT.
1862 2004-11-24 Steven Bosscher <stevenb@suse.de>
1864 * class.c (make_class_data): Don't check flag_inline_functions.
1865 * lang.c (flag_really_inline): Remove unused flag.
1866 (java_handle_option): Don't set it here. Remove special handling
1867 of flag_inline_functions for Java.
1868 (java_init): Don't set flag_inline_trees here. Already done...
1869 (java_post_options): ...here. Don't clear flag_inline_functions.
1871 2004-11-24 Steven Bosscher <stevenb@suse.de>
1873 * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
1874 (java_gimplify_exit_block_expr): New function.
1875 (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
1877 * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
1878 (EXIT_BLOCK_EXPR): Likewise.
1879 * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
1880 (LABELED_BLOCK_BODY): Likewise.
1881 (EXIT_BLOCK_LABELED_BLOCK): Likewise.
1882 * jcf-write.c (generate_bytecode_insns): Don't handle the unused
1883 EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of
1885 * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
1886 (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
1887 EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the
1888 second operand of EXIT_BLOCK_EXPR.
1889 * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
1891 (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
1893 2004-11-23 Ben Elliston <bje@au.ibm.com>
1895 * xref.h (xref_flag_value): Remove.
1896 (xref_set_data, xref_get_data): Likewise.
1897 (xref_set_current_fp): Likewise.
1898 (XREF_NONE): Likewise.
1899 (XREF_GET_DATA): Likewise.
1900 * xref.c (xref_flag_value): Remove.
1901 (xref_set_data, xref_get_data): Likewise.
1902 (xref_set_current_fp): Likewise.
1904 2004-11-23 Ben Elliston <bje@au.ibm.com>
1906 * gjavah.c (output_directory): Make static.
1907 (temp_directory): Likewise.
1909 2004-11-15 Tom Tromey <tromey@redhat.com>
1911 * decl.c (instn_ptr_type_node): Removed.
1912 (lineNumbers_ptr_type_node): Removed.
1913 (jint_type): Removed.
1914 (jint_ptr_type): Removed.
1916 2004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
1919 * check-init.c (check_init): Ignore DECL_EXPR.
1920 * expr.c (always_initialize_class_p): Reenable.
1921 (build_class_init): Use a variable to store the decl. Also use
1922 boolean_false_node instead of integer_zero_node.
1923 * parse.y (attach_init_test_initialization_flags): Add a decl_expr
1926 2004-11-08 Tom Tromey <tromey@redhat.com>
1929 * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
1930 generating a JNI header.
1931 (print_field_info): Handle JNI headers.
1932 (jni_print_float): Likewise.
1933 (jni_print_double): Likewise.
1935 2004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
1937 * decl.c (end_java_method): Remove duplicated code.
1939 2004-11-06 Zack Weinberg <zack@codesourcery.com>
1940 Gerald Pfeifer <gerald@pfeifer.com>
1942 * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
1945 2004-11-02 Bryce McKinlay <mckinlay@redhat.com>
1948 * class.c: Reinstate 2004-08-18 patch.
1949 (make_local_function_alias): Don't create an alias for extern (native)
1952 2004-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1955 * class.c (make_local_function_alias): Revert 2004-08-18 change.
1956 (make_method_value): Likewise.
1958 2004-10-21 Andrew Haley <aph@redhat.com>
1961 * jcf-parse.c (set_source_filename): Add code to build new sfname.
1963 2004-10-20 Andrew Haley <aph@redhat.com>
1965 * decl.c (end_java_method): Don't expand if flag_syntax_only.
1966 Remove duplicated code block.
1968 2004-10-18 Steven Bosscher <stevenb@suse.de>
1970 * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
1971 New rules to work around old Bison warnings.
1973 2004-10-17 Steven Bosscher <stevenb@suse.de>
1975 * class.c (ident_subst): Always alloca buffer.
1976 * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
1977 opcode after including javaop.def.
1978 * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
1979 conditional expression that exits, to avoid warnings.
1980 * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
1981 a user of an extension.
1982 * win32-host.c: Move check down to have non-empty file when
1983 WIN32 is not defined.
1985 * Make-lang.in (java-warn): Add STRICT_WARN.
1986 (java/jcf-io.o-warn): Don't have Werror for this file.
1987 * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
1989 2004-10-16 Hans-Peter Nilsson <hp@bitrange.com>
1991 * expr.c (expr_add_location): Move declaration to before all
1993 * parse.y (java_expand_classes): Ditto.
1994 * lex.c (java_peek_unicode): Ditto.
1996 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
1998 * check-init.c: Use %<, %> and %q for quoting in diagnostics,
1999 if possible, else convert `foo' to 'foo'.
2000 * class.c: Likewise.
2003 * jcf-io.c: Likewise.
2004 * jcf-parse.c: Likewise.
2007 * parse.h: Likewise.
2009 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
2011 * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
2012 rename parameter 'msg' to 'msgid' in function declaration.
2013 (issue_warning_error_from_context): Likewise.
2014 (yyerror): Rename parameter 'msg' to 'msgid'.
2015 (all over): Use new quoting style for diagnostics.
2017 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
2019 * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
2020 jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
2023 2004-10-14 Matt Austern <austern@apple.com>
2025 * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
2028 2004-10-13 Tom Tromey <tromey@redhat.com>
2031 * lang.opt (--extdirs): Document.
2032 * jvspec.c (lang_specific_driver): Recognize -encoding and
2035 2004-10-06 Ulrich Weigand <uweigand@de.ibm.com>
2037 * parse.y (issue_warning_error_from_context): Use va_list *
2038 instead of va_list parameter.
2039 (parse_error_context): Update call.
2040 (parse_warning_context): Likewise.
2042 2004-10-05 Zack Weinberg <zack@codesourcery.com>
2044 * parse.y, parse-scan.y: Add list of diagnostic messages to
2045 insulate translation template from version of yacc/bison used
2046 to compile the grammar.
2048 2004-10-05 Ranjit Mathew <rmathew@hotmail.com>
2050 Prepare for %q, %< and %> in diagnostic message strings.
2051 * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
2052 Name second parameter 'msgid'.
2053 * parse.y: Additionally include pretty-print.h and diagnostic.h.
2054 (issue_warning_error_from_context): Use pretty-printer functions
2055 instead of vsprintf for constructing formatted messages. Rename
2056 parameter 'msg' to 'msgid'.
2057 (parse_error_context): Rename parameter 'msg' to 'msgid'.
2058 (parse_warning_context): Likewise.
2060 2004-10-05 Andrew Haley <aph@redhat.com>
2063 * jcf-parse.c (parse_zip_file_entries): If a class has a
2064 superclass and a TYPE_SIZE of zero, lay it out.
2066 2004-09-30 Andrew Haley <aph@redhat.com>
2069 * jcf-parse.c (compute_class_name): Rewrite.
2071 2004-10-01 Jan Hubicka <jh@suse.cz>
2073 * java.c (java_expand_body): Update call of tree_rest_of_compilation.
2075 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
2077 * lex.c: Fix a comment typo.
2079 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
2081 * java-tree.h: Fix a comment typo.
2083 2004-09-30 Per Bothner <per@bothner.com>
2085 Simplify lexer. Implement --enable-mapped-location support.
2086 * jcf-parse.c (parse_class_file): Use linemap_line_start.
2087 (parse_source_file_1): Pass filename as extra parameter, so we can call
2088 linemap_add and set input_location here, rather than in both callers.
2089 (read_class): Pass copied filename to parse_source_file_1.
2090 Don't initialize wfl_operator - only needed for source compilation.
2091 (read_class, jcf_parse): Call linemap_add with LC_LEAVE.
2092 * lex.h: Remove a bunch of debugging macros.
2093 * lex.h (struct_java_line, struct java_error): Remove types.
2094 (JAVA_COLUMN_DELTA): Remove - use java_lexer.next_colums instead.
2095 (struct java_lc_s): Remove prev_col field.
2096 (struct java_lexer): New fields next_unicode, next_columns, and
2097 avail_unicode. New position field, and maybe token_start field.
2098 Don't need hit_eof field - use next_unicode == -1 instead.
2099 (JAVA_INTEGERAL_RANGE_ERROR): Rename to JAVA_RANGE_ERROR.
2100 (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR): Update accordingly.
2101 * parse.h: Various changes for USE_MAPPED_LOCATION.
2102 (EXPR_WFL_EMIT_LINE_NOTE): XXX
2103 (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
2104 (struct parser_ctxt): New file_start_location field.
2105 Remove p_line, c_line fields since we no longer save lines.
2106 Remove elc, lineno, and current_jcf fields - no longer used.
2107 * parse.y: Updates for USE_MAPPED_LOCATION and new lexer.
2108 Don't use EXPR_WFL_ADD_COL since that isn't trivial with
2109 source_location and is probably not needed anymore anyway.
2110 Use new expr_add_Location function.
2111 (SET_EXPR_LOCATION_FROM_TOKEN): New convenience macro.
2112 (java_pop_parser_context): Minor cleanup.
2113 (java_parser_context_save_global, java_parser_context_restore_global,
2114 java_pop_parser_context): Save/restore input_location as a unit.
2115 (issue_warning_error_from_context): If USE_MAPPED_LOCATION take
2116 a source_location instead of a wfl context node.
2117 (check_class_interface_creation): input_filename is not addressable.
2118 (create_artificial_method): Calling java_parser_context_save_global
2119 and java_parser_context_restore_global is overkill. Instead,
2120 temporarily set input_location from class decl.
2121 (java_layout_seen_class_methods): Set input_location from method decl.
2122 (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
2123 (finish_loop_body): Likewise.
2124 * lex.c: Updates for USE_MAPPED_LOCATION. Use build_unknwon_wfl.
2125 (java_sprint_unicode): Take a character, not index in line.
2126 (java_sneak_uncode): Replaced by java_peek_unicode.
2127 (java_unget_unicode): No longer used.
2128 (java_allocate_new_line. java_store_unicode): Removed, since we
2129 no longer remember "lines".
2130 (java_new_lexer): Update for new data structures.
2131 (java_read_char): Move unget_value checking to java_read_unicode.
2132 (java_get_unicode, java_peek_unicode, java_next_unicode): New more
2133 efficient functions that are used directly when lexing.
2134 (java_read_unicode_collapsing_terminators): No longer needed.
2135 (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
2136 Re-organize to use java_peek_unicode to avoid java_unget_unicode.
2137 (java_parse_escape_sequence): Rewrite to be simpler / more efficient.
2138 (do_java_lex): Lots of movings around to avoid java_unget_unicode,
2139 combine switch branches, and test for common token kinds earlier.
2140 (java_lex_error): Rewrite.
2141 * jv-scan.c (expand_location): New function, copied from tree.c.
2142 (main): Set ctxp->filename instead of setting input_filename directly.
2144 2004-09-30 Per Bothner <per@bothner.com>
2146 More cleanup for --enable-mapped-location.
2147 * class.c (push_class): If USE_MAPPED_LOCATION don't set
2148 input_location here. Instead do it in give_name_to_class.
2149 (build_class_ref): Set DECL_ARTIFICIAL, for the sake of dwarf2out.
2150 * expr.c (expand_byte_code): Call linemap_line_start.
2151 * expr.c (build_expr_wfl): If USE_MAPPED_LOCATION, change final
2152 parameters to a source_location. Don't need EXPR_WFL_FILENAME_NODE.
2153 (expr_add_location): New function, if USE_MAPPED_LOCATION.
2154 * class.c (maybe_layout_super_class): Adjust build_expr_wfl call
2155 to USE_MAPPED_LOCATION case.
2157 * java-tree.h (JAVA_FILE_P, ZIP_FILE_P): Remove unused macros.
2158 * jcf-parse.c (java_parse_file): Don't set input_filename.
2159 Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
2160 Create a list of TRANSLATION_UNIT_DECL.
2161 (current_file_list): Is now a TRANSLATION_UNIT_DECL chain. The
2162 reason is so we can set a DECL_SOURCE_LOCATION for each file.
2163 (java_parse_file): Don't set unused ZIP_FILE_P, JAVA_FILE_P..
2164 Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
2165 (file_start_location): New static.
2166 (set_source_filename): Avoid extra access to input_filename macro.
2167 Concatenate new name with class's package prefix.
2168 (set_source_filename, give_name_to_class): Update.
2169 (give_name_to_class): Set class's "line 0" input_location here.
2170 (parse_class_file): Set input_location as a unit.
2172 * jcf-parse.c (load_class): Sanity test if missing inner class file.
2174 2004-09-29 Per Bothner <per@bothner.com>
2176 * java-tree.h: Redefine some macros and add some declaration
2177 to handle the USE_MAPPED_LOCATION case.
2178 * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2.
2179 * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1.
2180 * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
2181 USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
2183 * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
2184 * decl.c (finish_method, java_add_stmt): Likewise.
2185 * java-gimplify.c (java-gimplify.c): Likewise.
2186 * jcf-write.c (generate_bytecode_insns): Likewise.
2187 * lang.c (java_post_options): Likewise - call linemap_add.
2189 2004-09-29 Andrew Haley <aph@redhat.com>
2192 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
2193 result of TRUNC_MOD_EXPR.
2194 (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
2195 * decl.c (java_init_decl_processing): Mark
2196 soft_lookupinterfacemethod_node and soft_instanceof_node pure.
2198 2004-09-28 Tom Tromey <tromey@redhat.com>
2201 * class.c (add_miranda_methods): Load superinterface if not
2204 2004-09-28 Andrew Haley <aph@redhat.com>
2207 * jcf-parse.c (load_class): Don't try to read a class that we've
2210 2004-09-28 Andrew Haley <aph@redhat.com>
2212 * jcf-parse.c (load_class): Back out previous broken patch.
2214 2004-09-28 Andrew Haley <aph@redhat.com>
2217 * jcf-parse.c (load_class): Don't try to read a class that we've
2219 Check that we really did read the right class.
2221 2004-09-25 Tom Tromey <tromey@redhat.com>
2224 * parse.y (create_artificial_method): Use add_method_1.
2226 2004-09-25 Kazu Hirata <kazu@cs.umass.edu>
2228 * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
2230 * gcj.texi: Fix typos.
2232 2004-09-24 Tom Tromey <tromey@redhat.com>
2235 * parse.y (class_instance_creation_expression): Set `$$' to NULL
2236 in error parts of rule.
2237 (unary_expression): Don't call error_if_numeric_overflow when $1
2240 2004-09-24 Tom Tromey <tromey@redhat.com>
2243 * parse.y (resolve_qualified_expression_name): Set
2244 CAN_COMPLETE_NORMALLY on first call when chaining static calls.
2245 * expr.c (force_evaluation_order): Check for empty argument list
2246 after stripping COMPOUND_EXPR.
2248 2004-09-23 Andrew Haley <aph@redhat.com>
2251 * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
2254 2004-09-23 Tom Tromey <tromey@redhat.com>
2257 * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
2258 where operand is null.
2260 2004-09-23 Tom Tromey <tromey@redhat.com>
2263 * parse.y (not_accessible_p): Allow access to protected members
2264 even when class is not static.
2266 2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
2268 * Make-lang.in: Revert the gcc-none.o change.
2270 2004-09-22 Nathan Sidwell <nathan@codesourcery.com>
2272 * parse.y (patch_anonymous_class): VEC_space returns true if there
2275 2004-09-21 Matt Austern <austern@apple.com>
2278 * gjavah.c (free_method_name_list): Fix function definition so
2279 it's a proper C prototype.
2281 2004-09-21 Tom Tromey <tromey@redhat.com>
2284 * gjavah.c (free_method_name_list): New method.
2287 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
2288 Zack Weinberg <zack@codesourcery.com>
2290 * java-tree.def: Use tree_code_class enumeration constants
2291 instead of code letters.
2292 * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
2293 new tree-class enumeration constants.
2295 2004-09-13 Tom Tromey <tromey@redhat.com>
2298 * class.c (layout_class_method): Put synthetic methods into the
2301 2004-09-11 Andrew Pinski <apinski@apple.com>
2303 * Make-lang.in (java/ggc-none.c): Change dependency
2304 for ggc.h into $(GGC_H).
2306 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
2308 * Make-lang.in (java/win32-host.o): Add dependency on
2310 * win32-host.c: Add includes for coretypes.h, jcf.h
2312 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
2314 * Make-lang.in (GCJH_OBJS): Change dependency from
2315 ggc-none.o to java/ggc-none.o
2316 (JCFDUMP_OBJS): Likewise.
2317 (java/ggc-none.o): New target.
2319 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
2321 * boehm.c (get_boehm_type_descriptor): Adjust build_int_cst calls.
2322 * class.c (build_utf8_ref, build_static_field_ref,
2323 make_field_value, make_method_value, get_dispatch_table,
2324 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
2325 * constants.c (get_tag_node, build_ref_from_constant_pool,
2326 build_constants_constructor): Likewise.
2327 * decl.c (java_init_decl_processing): Likewise.
2328 * expr.c (build_java_array_length_access, build_newarray,
2329 expand_java_multianewarray, expand_java_pushc, expand_iinc,
2330 build_java_binop, build_field_ref, expand_java_add_case,
2331 expand_java_call, build_known_method_ref, build_invokevirtual,
2332 build_invokeinterface, build_jni_stub): Likewise.
2333 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
2334 * jcf-parse.c (get_constant): Likewise.
2335 * lex.c (do_java_lex): Likewise.
2336 * parse.y (patch_binop, patch_unaryop, patch_cast,
2337 build_newarray_node, patch_newarray): Likewise.
2338 * resource.c (compile_resource_data): Likewise.
2339 * typeck.c (build_prim_array_type): Likewise.
2341 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
2343 * decl.c (java_init_decl_processing): Adjust
2344 initialize_sizetypes call.
2346 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
2348 * jv-scan.c (fancy_abort): Add.
2350 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
2352 * expr.c (build_java_arrayaccess): Use convert to change
2355 2004-08-19 Bryce McKinlay <mckinlay@redhat.com>
2357 * class.c (make_local_function_alias): Allocate extra space for 'L'
2358 in name buffer. Reported by Thomas Neumann.
2360 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
2362 * parse.h (JAVA_RADIX10_FLAG): Rename to ...
2363 (JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning.
2364 * lex.c (do_java_lex): Adjust.
2365 (error_if_numeric_overflow): Likewise.
2367 2004-08-18 Andrew Pinski <apinski@apple.com>
2369 * class.c (make_local_function_alias): Only make a new decl if we
2370 support alias attribute on all decls.
2372 2004-08-18 Bryce McKinlay <mckinlay@redhat.com>
2374 * class.c (make_local_function_alias): New function. Create local
2375 alias for public method DECL.
2376 (make_method_value): Use make_local_function_alias.
2377 * parse.y (craft_constructor): Don't special-case anonymous classes.
2378 Always set ctor_name to init_identifier_node.
2379 (lookup_method_invoke): Call layout_class_method when creating
2380 anonymous class constructor.
2382 2004-08-18 Richard Henderson <rth@redhat.com>
2384 * java-gimplify.c (java_gimplify_expr): Move '2' handling into
2385 default case. Treat '<' similarly. Update for
2386 is_gimple_formal_tmp_var name change.
2388 2004-08-17 Andrew Haley <aph@redhat.com>
2390 * lang.c (lang_printable_name): Obey verbose flag.
2391 * parse.y (constructor_circularity_msg): Set VERBOSE arg for
2392 lang_printable_name().
2393 (verify_constructor_circularity, get_printable_method_name,
2394 check_abstract_method_definitions, java_check_regular_methods,
2395 java_check_abstract_methods, check_inner_class_access,
2396 fix_constructors, patch_method_invocation, patch_return):
2398 * expr.c (pop_type_0): Likewise.
2400 * java-tree.h (lang_printable_name_wls): Delete.
2402 2004-08-16 Tom Tromey <tromey@redhat.com>
2405 * parse.y (primary): Changed for initialized and uninitialized
2407 (array_access): Handle array_creation_initialized.
2408 (array_creation_expression): Split into
2409 array_creation_initialized and array_creation_uninitialized.
2411 2004-08-16 Andrew Haley <aph@redhat.com>
2413 * jcf-write.c (find_constant_index): Canonicalize NaNs when
2414 generating bytecode.
2416 2004-08-16 Elliot Lee <sopwith@redhat.com>
2419 * jcf-parse.c (java_parse_file): Handle filenames with embedded
2420 spaces, and quoted filelists.
2422 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
2424 * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
2425 * class.c (build_utf8_ref, build_static_field_ref,
2426 make_field_value, make_method_value, get_dispatch_table,
2427 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
2428 * constants.c (get_tag_node, build_ref_from_constant_pool,
2429 build_constants_constructor): Likewise.
2430 * decl.c (java_init_decl_processing): Likewise.
2431 * expr.c (build_java_array_length_access, build_newarray,
2432 expand_java_multianewarray, expand_java_pushc, expand_iinc,
2433 build_java_binop, build_field_ref, expand_java_add_case,
2434 expand_java_call, build_known_method_ref, build_invokevirtual,
2435 build_invokeinterface, build_jni_stub): Likewise.
2436 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
2437 * jcf-parse.c (get_constant): Likewise.
2438 * lex.c (do_java_lex): Likewise.
2439 * parse.y (patch_binop, patch_unaryop, patch_cast,
2440 build_null_of_type, patch_newarray): Likewise.
2441 * resource.c (compile_resource_data): Likewise.
2442 * typeck.c (build_prim_array_type): Likewise.
2444 2004-08-10 Bryce McKinlay <mckinlay@redhat.com>
2446 * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
2447 Don't create BLOCK here or call java_gimplify_block.
2449 2004-08-09 H.J. Lu <hongjiu.lu@intel.com>
2451 * java-tree.h (flag_deprecated): Removed.
2452 * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
2453 * parse.y (check_deprecation): Check warn_deprecated instead of
2456 2004-08-06 Kelley Cook <kcook@gcc.gnu.org>
2458 * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
2459 flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
2460 flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
2461 flag_check_references, flag_extraneous_semicolon, flag_deprecated,
2462 flag_force_classes_archive_check, flag_optimize_sci,
2463 flag_indirect_dispatch): Remove explicit declarations.
2464 * lang.opt: Add implicit declare/define/assign. Remove obsolete
2467 2004-08-05 Michael Chastain <mec.gnu@mindspring.com>
2470 * Make-lang.in (java.install-man): Install from either build
2471 tree or source tree, whichever has the file first.
2473 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
2475 * jcf-parse.c (get_constant): Adjust force_fit_type call.
2476 * lex.h (SET_LVAL_NODE_TYPE): Remove.
2477 * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
2478 (do_java_lex): Likewise. Adjust force_fit_type call.
2480 2004-08-04 Roger Sayle <roger@eyesopen.com>
2481 Andrew Haley <aph@redhat.com>
2483 * typeck.c (convert_ieee_real_to_integer): Call fold on the range
2484 checking trees as they're being built.
2485 (convert): Call convert_ieee_real_to_integer if we're
2486 converting a constant, even if we're writing a class file.
2488 2004-08-02 Bryce McKinlay <mckinlay@redhat.com>
2491 * parse.y (fold_constant_for_init): Call resolve_field_access with
2492 correct current_class context.
2494 2004-08-01 Roger Sayle <roger@eyesopen.com>
2496 * decl.c (update_aliases, initialize_local_variable): Replace calls
2497 to build with calls to buildN.
2498 * java-gimplify.c (java_gimplify_modify_expr): Likewise.
2499 * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
2500 * parse.h (BUILD_THROW): Likewise.
2501 * parse.y (switch_expression, synchronized_statement,
2502 catch_clause_parameter, array_creation_expression,
2503 conditional_expression, make_qualified_name,
2504 resolve_qualified_expression_name, patch_method_invocation,
2505 patch_invoke, build_method_invocation, build_new_invocation,
2506 build_assignment, patch_assignment, build_binop, patch_binop,
2507 build_string_concatenation, build_incdec, patch_unaryop,
2508 patch_cast, build_array_ref, build_newarray_node, patch_newarray,
2509 patch_return, build_if_else_statement, build_labeled_block,
2510 build_new_loop, build_loop_body, build_bc_statement,
2511 build_assertion, encapsulate_with_try_catch, build_try_statement,
2512 build_try_finally_statement, patch_synchronized_statement,
2513 emit_test_initialization): Likewise, replace build with buildN.
2515 2004-07-28 Eric Christopher <echristo@redhat.com>
2517 * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
2518 (java_unsafe_for_reeval): Ditto.
2520 2004-07-26 <hp@bitrange.com>
2522 * parse.y (build_super_invocation): Adjust declaration order to
2523 avoid declaration after statement.
2525 2004-07-25 Bernardo Innocenti <bernie@develer.com>
2527 * decl.c: Rename all identifiers named `class' to `cl'.
2529 2004-07-25 Richard Henderson <rth@redhat.com>
2531 * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
2533 2004-07-23 Mike Stump <mrs@apple.com>
2535 * boehm.c (set_bit): Improve type safety wrt unsignedness.
2536 * gjavah.c (throwable_p, decode_signature_piece,
2537 print_full_cxx_name, print_include, add_namelet, add_class_decl,
2538 process_file): Likewise.
2539 * jcf-dump.c (main): Likewise.
2540 * jcf-io.c (read_zip_member): Likewise.
2541 * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
2542 give_name_to_class, get_class_constant): Likewise.
2543 * jcf-write.c (find_constant_wide, push_long_const,
2544 generate_classfile): Likewise.
2545 * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
2546 * parse.y (read_import_dir): Likewise.
2547 * typeck.c (parse_signature_type): Likewise.
2548 * verify.c (verify_jvm_instructions): Likewise.
2549 * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
2551 2004-07-23 Thomas Fitzsimmons <fitzsim@redhat.com>
2553 * Make-lang.in: Replace rmic and rmiregistry references with
2554 grmic and grmiregistry.
2555 * gcj.texi: Likewise.
2557 2004-07-20 Andrew Haley <aph@redhat.com>
2560 * verify.c (verify_jvm_instructions): Comment change only.
2562 * typeck.c (build_java_array_type): Add size field to array name.
2564 * java-tree.h (LOCAL_SLOT_P): New.
2565 (update_aliases): Add PC argument.
2566 (pushdecl_function_level): New function.
2568 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
2569 MODIFY_EXPR, and SAVE_EXPR.
2570 (java_gimplify_modify_expr): New function.
2572 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
2573 (expand_iinc): Pass PC to update_aliases().
2574 (STORE_INTERNAL): Likewise.
2575 (process_jvm_instruction): Likewise.
2577 * decl.c (base_decl_map): New variable.
2578 (uniq): New variable.
2579 (update_aliases): Rewrite with more thorough checking.
2580 (debug_variable_p): New function.
2581 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
2582 (check_local_named_variable): Delete whole function.
2583 (initialize_local_variable): New function.
2584 (check_local_unnamed_variable): Add checks and comments.
2585 (find_local_variable): Rewrite.
2586 (java_replace_reference): New function.
2587 (function_binding_level): New variable.
2588 (pushdecl_function_level): New function.
2589 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
2590 (maybe_pushlevels): Call pushdecl() on each of the new decls.
2591 (start_java_method): Reset uniq. Create base_decl_map. Set
2592 function_binding_level.
2593 (end_java_method): Null unused fields to save memory.
2595 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
2597 * class.c (add_interface_do): Remove.
2598 (set_super_info, interface_of_p, maybe_add_interface,
2599 add_interface, make_class_data, layout_class,
2600 add_miranda_methods): Adjust BINFO accessors and addition.
2601 * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
2603 * jcf-write.c (generate_classfile): Likewise.
2604 * parse.y (patch_anonymous_class, check_inner_circular_reference,
2605 check_circular_reference, java_complete_class,
2606 check_abstract_method_definitions,
2607 java_check_abstract_method_definitions,
2608 check_interface_throws_clauses, java_check_abstract_methods,
2609 lookup_java_interface_method2,
2610 find_applicable_accessible_methods_list): Adjust BINFO accessors
2612 * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
2614 2004-07-18 Roger Sayle <roger@eyesopen.com>
2616 * builtins.c (max_builtin, min_builtin,
2617 java_build_function_call_expr): Replace calls to build with buildN.
2618 * class.c (build_class_ref, build_static_field_ref,
2619 get_dispatch_table, make_class_data, layout_class_method): Likewise.
2620 * constants.c (build_ref_from_constant_pool): Likewise.
2621 * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
2622 add_stmt_to_compound): Likewise.
2623 * except.c (build_exception_object_ref, expand_end_java_handler):
2625 * java-gimplify.c (java_gimplify_case_expr,
2626 java_gimplify_default_expr, java_gimplify_block,
2627 java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
2628 * jcf-write.c (generate_bytecode_insns): Likewise.
2629 * typeck.c (convert_ieee_real_to_integer): Likewise.
2631 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
2633 * java-tree.h (builtin_function): Declare.
2635 2004-07-16 Steven Bosscher <stevenb@suse.de>
2637 * parse.y (java_complete_expand_methods, java_expand_classes): Don't
2638 abuse restore_line_number_status.
2640 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
2643 * jcf-parse.c (java_emit_static_constructor): Specify default
2646 2004-07-13 Per Bothner <per@bothner.com>
2648 * java-tree.h (all_class_filename): Remove useless macro.
2649 (enum java_tree_index): Remove JTI_ALL_CLASS_FILENAME constant.
2650 (BUILD_FILENAME_IDENTIFIER_NODE): Remove useless macro.
2651 * parse.y (java_parser_context_restore_global): Replace
2652 BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
2653 * jcf-parse.c (read_class, java_parse_file): Likewise.
2655 2004-07-12 Bryce McKinlay <mckinlay@redhat.com>
2658 gjavah.c (print_field_info): Emit constant only if field is static.
2660 2004-07-11 Roger Sayle <roger@eyesopen.com>
2662 * expr.c (java_truthvalue_conversion, flush_quick_stack,
2663 java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
2664 build_java_ret, build_java_throw_out_of_bounds_exception,
2665 build_java_array_length_access, java_check_reference,
2666 build_java_arrayaccess, build_java_arraystore_check, build_newarray,
2667 build_anewarray, expand_java_multianewarray, expand_java_arraystore,
2668 expand_java_arrayload, build_java_monitor, expand_java_return,
2669 expand_load_internal, expand_java_NEW, build_get_class,
2670 build_instanceof, expand_java_CHECKCAST, expand_iinc,
2671 build_java_soft_divmod, build_java_binop, build_field_ref,
2672 expand_compare, expand_java_goto, expand_java_switch,
2673 expand_java_add_case, build_class_init, build_known_method_ref,
2674 invoke_build_dtable, build_invokevirtual, build_invokeinterface,
2675 expand_invoke, build_jni_stub, expand_java_field_op,
2676 java_expand_expr, expand_byte_code, STORE_INTERNAL,
2677 force_evaluation_order, emit_init_test_initialization): Convert
2678 calls to "build" into calls to the prefered "buildN" functions.
2680 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
2682 * java-tree.h (set_block): Remove.
2683 * lang.c (java_clear_binding_stack): New.
2684 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
2685 * decl.c (struct binding_level): Remove this_block.
2686 (clear_binding_level): Likewise.
2687 (poplevel): Don't handle this_block.
2688 (set_block): Remove.
2690 2004-07-10 Bryce McKinlay <mckinlay@redhat.com>
2692 * class.c (common_enclosing_context_p): Remove statement with no
2695 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
2698 * parse.y (create_anonymous_class): Remove 'location' argument. Use
2699 the WFL from TYPE_NAME to get line number for the decl. Fix comment.
2700 (craft_constructor): Inherit access flags for implicit constructor
2701 from the enclosing class.
2702 (create_class): Fix comment typo.
2703 (resolve_qualified_expression_name): Pass type of qualifier to
2704 not_accessible_p, not the type in which target field was found.
2705 (not_accessible_p): Handle inner classes. Expand protected
2706 qualifier-subtype check to enclosing instances, but don't apply this
2707 check to static members. Allow protected access to inner classes
2708 of a subtype. Allow private access within common enclosing context.
2709 (build_super_invocation): Get WFL line number info from current
2711 (build_incomplete_class_ref): Update for new create_anonymous_class
2713 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
2714 common_enclosing_instance_p.
2715 * class.c (common_enclosing_context_p): New. Determine if types
2716 share a common enclosing context, even across static contexts.
2717 (common_enclosing_instance_p): Renamed from
2718 common_enclosing_context_p. Determines if types share a common
2719 non-static enclosing instance.
2720 * java-tree.h (common_enclosing_instance_p): Declare.
2721 * jcf-write.c (get_method_access_flags): New. Surpress private flag
2722 for inner class constructors.
2723 (generate_classfile): Use get_method_access_flags.
2725 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
2727 * class.c (interface_of_p): Check for null TYPE_BINFO.
2729 2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
2731 * class.c (make_class): Do not create binfo here.
2732 (set_super_info): Create it here.
2733 * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
2735 2004-07-08 Richard Henderson <rth@redhat.com>
2737 * expr.c (case_identity, get_primitive_array_vtable,
2738 java_expand_expr, emit_init_test_initialization): Remove.
2739 * java-tree.h (java_expand_expr): Remove.
2740 * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
2742 2004-07-07 Per Bothner <per@bothner.com>
2744 * class.c (build_static_field_ref): Add a NOP_EXPR; otherwise we
2745 get internal error due to mismatched types.
2747 * gcj.texi (Invoking gij): Document new -verbose:class flag.
2749 * gcj.texi (Linking): New node. Document -lgij usage.
2751 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
2753 * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
2754 (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
2755 * java/class.c (set_super_info, class_depth, interface_of_p,
2756 maybe_add_interface, add_interface, make_class_data,
2757 layout_class, add_miranda_methods): Adjust BINFO macros.
2758 * expr.c (can_widen_reference_to, lookup_field): Likewise.
2759 * jcf-write.c (generate_classfile): Likewise.
2760 * parse.y (patch_anonymous_class,
2761 check_inner_circular_reference, check_circular_reference,
2762 java_complete_class, check_abstract_method_definitions,
2763 java_check_abstract_method_definitions,
2764 check_interface_throws_clauses, java_check_abstract_methods,
2765 lookup_java_interface_method2,
2766 find_applicable_accessible_methods_list): Likewise.
2767 * typeck.c (find_method_in_interface): Likewise.
2768 * verify.c (merge_types): Likewise.
2770 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
2772 * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
2773 * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
2775 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
2777 * class.c (make_class): Use make_tree_binfo.
2778 (set_super_info, add_interface_do): Likewise.
2779 * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
2781 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
2783 * verify.c: Correct array element access formatting thinko.
2785 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
2787 * verify.c: Insert a short blurb at the start referring to the JVMS.
2788 (merge_type_state): Remove redundant nested if statement.
2789 (verify_jvm_instructions): Ensure current_subr is initialised to
2791 Minor formatting fixes all over the place.
2793 2004-07-02 Richard Henderson <rth@redhat.com>
2795 * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
2797 2004-07-01 Richard Henderson <rth@redhat.com>
2799 * class.c (registerClass_libfunc): Remove.
2800 (init_class_processing): Don't set it.
2801 (emit_register_classes): Take list_p parameter. Fill it in
2802 with _Jv_RegisterClass calls.
2803 * decl.c (java_init_decl_processing): Don't call
2804 init_resource_processing.
2805 * jcf-parse.c (java_emit_static_constructor): New.
2806 (java_parse_file): Call it.
2807 * resource.c (registerResource_libfunc): Remove.
2808 (init_resource_processing): Remove.
2809 (write_resource_constructor): Take list_p parameter. Fill it in
2810 with _Jv_RegisterResource calls.
2811 * java-tree.h: Update prototypes.
2813 2004-06-29 Bryce McKinlay <mckinlay@redhat.com>
2816 * class.c (layout_class_method): Do not override package-private
2817 method if its in a different package.
2818 (split_qualified_name): Move here from parse.y. Rename from
2819 breakdown_qualified. Add comment.
2820 (in_same_package): Move here from parse.y. Add comment.
2821 * java-tree.h (break_down_qualified, in_same_package): Declare.
2822 (in_same_package): Likewise.
2823 * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
2826 2004-06-29 Andrew Haley <aph@redhat.com>
2828 * except.c (expand_start_java_handler): Push a new binding level.
2829 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
2830 register_exception_range() to register where we'll do it.
2831 (expand_end_java_handler): Remove old bogus code. Replace with
2832 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
2833 the top of the expression we're curently building.
2834 (maybe_end_try): Delete.
2835 * decl.c (binding_level.exception_range): New field.
2836 (clear_binding_level): Add field exception_range. Reformat.
2837 (poplevel): Call expand_end_java_handler().
2838 (poplevel): Call java_add_stmt only if functionbody is false.
2839 (maybe_poplevels): Don't call maybe_end_try() from here.
2840 (end_java_method): Clear no longer used trees in function decl.
2841 (register_exception_range): New function.
2842 * java-tree.h (register_exception_range, struct eh_range): Declare.
2844 2004-06-28 Bryce McKinlay <mckinlay@redhat.com>
2846 * jcf-write.c (get_classfile_modifiers): Formatting fixes.
2848 2004-06-27 Ranjit Mathew <rmathew@hotmail.com>
2851 * expr.c (class_has_finalize_method): Fix method name indentation.
2852 (expand_java_call): Remove K&R style parameter declaration.
2853 (expand_invoke): Fix statement indentation.
2854 (expand_java_field_op): Likewise.
2855 * parse-scan.y: Fix typo.
2856 (reset_report): Fix method name indentation.
2857 * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
2859 * verify.c (verify_jvm_instructions): Document parameters, insert
2861 * lang.c (lang_init_source): Fix method name indentation.
2862 * class.c (common_enclosing_context_p): Likewise.
2863 (emit_symbol_table): Fix parameter list indentation.
2864 * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
2865 parameter declaration.
2866 * constants.c: Fix copyright notice indentation.
2867 * typeck.c (find_method_in_superclasses): Fix parameter list
2869 (find_method_in_interfaces): Likewise.
2870 * zextract.c (makelong): Fix method name indentation.
2872 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2875 * parse.y (create_interface): Set correct access modifiers for
2877 * jcf-write.c (get_classfile_modifiers): New function.
2878 (generate_classfile): Use get_classfile_modifiers, not
2881 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2883 * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
2884 dependency to current parser context, not NULL_TREE, for top-level
2886 (jdep_resolve_class): Enable member access check for all inner
2889 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2891 * parse.y (qualify_and_find): Pass type decl, not identifier, to
2894 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2897 * expr.c (expand_java_field_op): Ensure that target class for static
2898 field access has been loaded.
2900 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2901 Ranjit Mathew <rmathew@hotmail.com>
2903 PR java/1207, java/16178
2904 * jcf-parse.c (load_class): Return immediately if passed a type decl
2905 where CLASS_FROM_SOURCE_P is set. Remove FIXME.
2906 * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
2907 before calling load_class.
2908 (qualify_and_find): Likewise.
2909 (find_in_imports_on_demand): Likewise.
2910 (find_applicable_accessible_methods_list): Likewise.
2912 2004-06-24 Bryce McKinlay <mckinlay@redhat.com>
2914 * parse.y (java_layout_seen_class_methods): Don't call load_class
2915 on class defined by source parser.
2917 2004-06-23 Bryce McKinlay <mckinlay@redhat.com>
2919 * parse.y (set_nested_class_simple_name_value): Removed.
2920 (java_complete_expand_class): Remove calls to
2921 set_nested_class_simple_name_value.
2923 2004-06-22 Andrew Haley <aph@redhat.com>
2924 Ranjit Mathew <rmathew@hotmail.com>
2926 Fixes PR java/16113.
2927 * decl.c (force_poplevels): Remove call to expand_end_bindings.
2929 2004-06-22 Ranjit Mathew <rmathew@hotmail.com>
2931 * parse.y (create_class): Correct diagnostic message about
2932 java.lang.Object extending anything else.
2934 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2936 * class.c (build_class_ref): Add new operand for COMPONENT_REF.
2937 (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
2938 * constants.c (build_ref_from_constant_pool): Likewise.
2939 * expr.c (build_java_array_length_access): Likewise.
2940 (build_get_class, build_field_ref, build_known_method_ref): Likewise.
2941 (invoke_build_dtable, build_invokevirtual): Likewise.
2942 (build_invokeinterface, java_expand_expr): Likewise.
2943 (emit_init_test_initialization): Likewise.
2944 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
2945 * parse.y (make_qualifed_name, build_array_ref): Likewise.
2947 2004-06-21 Andrew Haley <aph@redhat.com>
2949 * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
2952 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
2954 * jcf.h (struct JCF): Change java_source, right_zip and finished
2956 * lex.h (struct java_lexer): Change hit_eof, read_anything,
2957 byte_swap and use_fallback to unsigned int.
2958 * parse.h (struct _jdep): Change flag0 to unsigned int.
2960 2004-06-17 Ranjit Mathew <rmathew@hotmail.com>
2963 * parse.y (java_layout_seen_class_methods): Ensure class is loaded
2964 before trying to lay out its methods.
2965 * jcf-parse.c (read_class): Track parsed files using canonical paths
2966 obtained via lrealpath from libiberty.
2967 (java_parse_file): Likewise.
2968 (parse_source_file_1): Rename formal parameter to reflect its
2969 modified purpose. Minor formatting fix.
2971 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
2973 * class.c (emit_register_classes): Make the function uninlinable,
2974 do not set current_function_cannot_inline.
2975 * resource.c (write_resource_constructor): Do not reset
2976 flag_inline_functions around rest_of_compilation.
2978 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2981 * expr.c (java_truthvalue_conversion): Handle
2982 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2983 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2984 i.e. return the expression.
2986 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
2988 * gjavah.c: Include version.h
2990 2004-05-31 Bryce McKinlay <mckinlay@redhat.com>
2992 * jcf-write.c (generate_bytecode_conditional): Correct handling
2993 of unordered conditionals. Add comment.
2995 2004-05-29 Ranjit Mathew <rmathew@hotmail.com>
2996 Per Bothner <per@bothner.com>
2998 * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
2999 local variable was initialised upon declaration.
3000 * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
3001 variable was final and initialised upon declaration.
3002 * check-init.c (check_final_reassigned): Give error only if a blank
3003 final is not definitely unassigned or if an initialised final is
3005 (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
3006 assignment expressions. Remove case MODIFY_EXPR, label do_default.
3007 (check_init): Perform initialised-variable-removing-optimisation
3008 only on non-final local variables.
3010 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
3012 * jcf-write.c (generate_bytecode_conditional): Handle binops
3013 UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
3015 (generate_bytecode_insns): Likewise.
3017 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
3019 * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
3020 UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
3022 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
3024 * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
3025 (Mixing with C++): Document JvAllocBytes and RawDataManaged.
3027 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
3029 * decl.c (struct binding_level): Add GTY marker. Compile
3030 binding_depth unconditionally.
3031 (current_binding_level, free_binding_level, global_binding_level):
3033 (clear_binding_level): Unconditionally set binding_depth.
3034 (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
3036 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
3038 * lex.c (java_new_lexer): Set 'encoding'.
3039 (java_read_char): Improve error message for unrecognized characters.
3040 * lex.h (struct java_lexer): New field 'encoding'.
3042 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3044 * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
3046 2004-05-21 Mark Wielaard <mark@klomp.org>
3048 * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
3051 2004-05-19 Paolo Bonzini <bonzini@gnu.org>
3053 * typeck.c: Remove non-printable character 160.
3055 2004-05-17 Ranjit Mathew <rmathew@hotmail.com>
3057 * check-init.c: Correct minor typos.
3059 2004-05-13 Diego Novillo <dnovillo@redhat.com>
3061 * Make-lang.in, expr.c, java-gimplify.c: Rename
3062 tree-simple.[ch] to tree-gimple.[ch].
3064 2004-05-14 Ranjit Mathew <rmathew@hotmail.com>
3066 * java-gimplify.c (java_gimplify_expr): Correct minor typos.
3068 2004-05-13 Diego Novillo <dnovillo@redhat.com>
3070 Merge from tree-ssa-20020619-branch. See
3071 ChangeLog.tree-ssa for details.
3073 * Make-lang.in, builtins.c, check-init.c, class.c,
3074 constants.c, decl.c, except.c, expr.c, java-except.h,
3075 java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
3076 lang.c, lang.opt, parse.y, resource.c: Merged.
3077 * java-gimplify.c: New file.
3079 2004-05-10 Andrew Haley <aph@redhat.com>
3081 * parse.y (create_class): Set TYPE_VFIELD.
3082 * decl.c (java_init_decl_processing): Likewise.
3084 * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
3085 * class.c (make_method_value): Replace DECL_VINDEX with call to
3087 (get_dispatch_vector): Likewise.
3088 (layout_class_method): Likewise.
3089 Replace set of DECL_VINDEX with call to set_method_index().
3090 (set_method_index): New function.
3091 (get_method_index): New function.
3092 * java-tree.h (set_method_index): New function decl.
3093 (get_method_index): New function decl.
3095 2004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
3097 * parse.y (check_pkg_class_access): Add new argument
3098 and use it when cl is NULL to call lookup_cl on it.
3099 (parser_check_super_interface): Do not call lookup_cl.
3100 Pass this_decl to check_pkg_class_access and NULL
3101 instead of lookup_cl.
3102 (parser_check_super): Update for change in
3103 check_pkg_class_access.
3104 (do_resolve_class): Likewise.
3105 (process_imports): Likewise.
3106 (find_in_imports_on_demand): Likewise.
3107 (resolve_qualified_expression_name): Likewise.
3109 2004-05-06 Ranjit Mathew <rmathew@hotmail.com>
3111 Fixes PR java/9685, PR java/15073
3112 * parse.y (accessibility_string): New method.
3113 (not_accessible_field_error): Use accessibility_string()
3114 instead of java_accstring_lookup().
3115 (resolve_qualified_expression_name): Check with
3116 check_pkg_class_access() before allowing access using
3119 Use check_pkg_class_access() instead of not_accessible_p()
3120 for unqualified types.
3121 (not_accessible_p): Use DECL_CONTEXT (member) instead of
3122 REFERENCE for package-private access checking.
3123 (patch_method_invocation): Use accessibility_string() instead
3124 of java_accstring_lookup().
3126 2004-04-30 Ranjit Mathew <rmathew@hotmail.com>
3129 * gjavah.c (struct method_name): Add member is_native.
3130 (overloaded_jni_method_exists_p): Match candidate method only if
3132 (print_method_info): Initialise is_native flag from the method's
3135 2004-04-30 Roger Sayle <roger@eyesopen.com>
3137 * builtins.c (java_builtins): Add acos, asin, ceil and floor.
3138 (initialize_builtins): Likewise, define acos, asin, ceil and floor.
3140 2004-04-22 Roger Sayle <roger@eyesopen.com>
3142 * resource.c (write_resource_constructor): Guard call to possibly
3143 NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
3145 2004-04-19 Bryce McKinlay <mckinlay@redhat.com>
3147 * class.c (make_class_data): Add new field aux_info.
3148 * decl.c (java_init_decl_processing): Push type and decl for
3151 2004-04-15 Bryce McKinlay <mckinlay@redhat.com>
3153 * expr.c (expand_java_NEW): Don't use size argument for
3154 _Jv_AllocObject calls.
3155 * parse.y (patch_invoke): Likewise.
3157 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
3159 * expr.c (build_invokeinterface): Remove unused variables to
3162 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
3164 * class.c (get_interface_method_index): New function. Return dispatch
3165 index for interface method.
3166 (make_method_value): For interface methods, set index field to
3167 iface dispatch index, not DECL_VINDEX.
3168 * expr.c (build_invokeinterface): Use get_interface_method_index.
3170 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3172 * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
3174 2004-03-31 Andrew Haley <aph@redhat.com>
3177 * jcf-io.c (opendir_in_zip): Tidy up error handling.
3179 2004-03-30 Zack Weinberg <zack@codesourcery.com>
3181 * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
3182 form of GTY markers.
3184 2004-03-25 Marcus Meissner <meissner@suse.de>
3187 * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
3189 2004-03-23 Tom Tromey <tromey@redhat.com>
3192 * jcf-write.c (make_class_file_name): Don't report if mkdir
3195 2004-03-23 Tom Tromey <tromey@redhat.com>
3197 * gcj.texi (Extensions): Document GCJ_PROPERTIES.
3199 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
3201 * class.c, gjavah.c, lang.c: Fix comment typos.
3202 * gcj.texi: Fix typos.
3204 2004-03-19 Per Bothner <per@bothner.com>
3206 * gcj.texi (Code Generation): Document new flags and assert defaults.
3208 * class.c (assume_compiled_node_struct): Rename type to
3209 class_flag_node_struct, as it is now also used for enable_assertions.
3210 Rename assume_compiled_node typedef. Rename excludep field to value.
3211 (find_assume_compiled_node): Rename function to find_class_flag_node.
3212 Minor optimization - avoid needless strlen.
3213 (add_assume_compiled): Some tweaking and optimization.
3214 Rename and generalize to add_class_flag takem an extra parameter.
3215 (add_assume_compled): New just calls add_class_flag.
3216 (add_enable_assert, enable_assertions): New functions.
3217 (enable_assert_tree): New static.
3218 * java-tree.h (add_enable_assert, enable_assertions): New declarations.
3219 * lang.opt (fenable-assertions, fenable-assertions=,
3220 fdisable-assertions, fdisable-assertions=): New options.
3221 * lang.c (java_handle_option): Handle new options.
3222 * parse.y (build_incomplete_class_ref): Handle class$ in an inner
3223 class in an interface - create helper class nested in outer interface.
3224 (build_assertion): Short-circuit if enable_assertions is false.
3226 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3228 * java-tree.h: Changes throughout to add checking to macros
3229 and numerous whitespace changes.
3230 (VAR_OR_FIELD_CHECK): New macro.
3231 * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
3232 FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
3234 2004-03-16 Per Bothner <per@bothner.com>
3236 * jcf-jump.c (options): New --print-constants option.
3237 * gcj.texi (Invoking jcf-dump): Document --print-constants.
3239 * jcf-dump.c (flag_print_constant_pool): Default to off.
3240 (print_constant_terse_with_index): New helper function.
3241 (various places): Check flag_print_constant_pool where missing.
3242 (main): If verbose set flag_print_constant_pool.
3243 (HANDLE_INNERCLASSES_ATTRIBUTE): Null inner class name is anonymous.
3245 2004-03-15 Andrew Haley <aph@redhat.com>
3248 * parse.y (java_complete_lhs): Check that final variable has an
3251 2004-03-12 Andrew Haley <aph@redhat.com>
3254 * typeck.c (convert): Clear TREE_OVERFLOW after an integer
3257 2004-02-29 Roger Sayle <roger@eyesopen.com>
3259 * jcf-parse.c (java_parse_file): Handle the case that input_filename
3262 2004-02-27 Per Bothner <per@bothner.com>
3264 * parse.y (build_assertion): Re-do 02-25 change following Jeff Sturm
3265 suggestion: Use build_incomplete_class_ref.
3266 This fixes PR java/13508, java/11714.
3268 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
3270 * java/parse.h: Update copyright.
3272 2004-02-26 Andrew Haley <aph@redhat.com>
3275 * parse.y (check_interface_throws_clauses): Check for
3276 !METHOD_INVISIBLE (iface_method).
3277 * class.c (layout_class_methods): Check for CLASS_INTERFACE as
3278 well as CLASS_ABSTRACT.
3280 2004-02-25 Per Bothner <per@bothner.com>
3282 * parse.y (build_assertion): If we're in an inner class, create the
3283 class$ helper routine in the outer class.
3285 2004-02-19 Richard Henderson <rth@redhat.com>
3287 * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
3289 2004-02-16 Geoffrey Keating <geoffk@apple.com>
3291 * Make-lang.in (java.install-man): Add extra dependencies.
3293 2004-02-13 Geoffrey Keating <geoffk@apple.com>
3295 * Make-lang.in: Install man pages under the same names
3296 (possibly transformed) as the program they document.
3298 2004-02-10 Joseph S. Myers <jsm@polyomino.org.uk>
3300 * gjavah.c: Include "intl.h".
3301 (error): New function.
3302 (main): Call gcc_init_libintl.
3303 (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
3304 print_stub_or_jni, process_file, main): Use error rather than
3306 (print_method_info, usage, help, version, main): Mark strings for
3307 translation with _. Avoid splitting up sentences. Send
3308 information messages to stdout.
3309 * jcf-dump.c: Include "intl.h".
3310 (main): Call gcc_init_libintl.
3311 (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
3312 Mark error, usage and version messages for translation with _.
3313 Avoid splitting up sentences.
3314 * jv-scan.c: Include "intl.h".
3315 (fatal_error, warning): Change parameter s to msgid. Translate
3317 (main): Call gcc_init_libintl.
3318 (usage, help, version): Mark error, usage and version messages for
3319 translation with _. Avoid splitting up sentences.
3320 * jvgenmain.c: Include "intl.h".
3321 (main): Call gcc_init_libintl.
3322 (usage, main): Mark error messages for translation with _.
3323 * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
3324 JVGENMAIN_OBJS): Add intl.o.
3325 (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
3326 java/jvgenmain.o): Update dependencies.
3328 2004-02-08 Per Bothner <per@bothner.com>
3330 * parse.y (resolve_qualified_expression_name): In case of inaccessible
3331 class don't use not_accessible_field_error, which can get confused.
3333 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
3335 Make-lang.in (po-generated): Delete.
3337 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
3339 * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
3341 * decl.c: Include target.h.
3342 (start_java_method): Replace PROMOTE_PROTOTYPES with
3343 targetm.calls.promote_prototypes.
3344 * expr.c: Include target.h.
3345 (pop_arguments): Replace PROMOTE_PROTOTYPES with
3346 targetm.calls.promote_prototypes.
3347 * parse.y: Include target.h.
3348 (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
3349 with targetm.calls.promote_prototypes.
3351 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
3353 * typeck.c: Update copyright.
3355 2004-02-02 Tom Tromey <tromey@redhat.com>
3357 * decl.c (java_init_decl_processing): Remove duplicate
3360 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
3362 * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
3364 2004-01-28 Andrew Pinski <pinskia@physics.uc.edu>
3366 * expr.c (build_field_ref): Move variable
3369 2004-01-28 Andrew Haley <aph@redhat.com>
3371 * expr.c (build_field_ref): Widen field offset.
3373 2004-01-27 Andrew Haley <aph@redhat.com>
3376 * parse.y (check_interface_throws_clauses): Make sure class_decl
3379 2004-01-22 Jeff Sturm <jsturm@one-point.com>
3382 * parse.y (patch_assignment): Don't modify lhs_type for
3383 reference assignments.
3385 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
3387 * Make-lang.in: Replace $(docdir) with doc.
3388 (java.info, java.srcinfo, java.man, java.srcman): New rules.
3389 (java.install-man): Revamp rule.
3391 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
3393 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
3394 GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
3395 instead of deferred backquote.
3397 2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
3399 * typeck.c (find_method_in_interfaces): Move variable
3402 2004-01-16 Andrew Haley <aph@redhat.com>
3405 * typeck.c (shallow_find_method): New.
3406 (find_method_in_superclasses): New.
3407 (find_method_in_interfaces): New.
3408 (lookup_do): Rewrite.
3409 * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
3411 * jcf-parse.c (read_class): Save and restore output_class.
3412 * decl.c (java_expand_body): Set output_class from fndecl.
3414 2004-01-15 Michael Chastain <mec.gnu@mindspring.com>
3416 * class.c (gen_indirect_dispatch_tables): Fix string length
3419 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
3421 * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
3422 (java.srcextra): Copy above back to source directory if requested.
3423 (po-generated): Delete reference to $(parsedir).
3424 (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
3427 2004-01-14 Jan Hubicka <jh@suse.cz>
3429 * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
3432 2004-01-09 Mark Mitchell <mark@codesourcery.com>
3434 * java-tree.h (java_expand_expr): Change prototype.
3435 * expr.c (java_expand_expr): Add alt_rtl parameter.
3437 2004-01-09 Andrew Haley <aph@redhat.com>
3440 * parse.y (java_fix_constructors): Set output_class.
3441 (java_reorder_fields): Likewise.
3442 (java_layout_classes): Likewise.
3443 (java_expand_classes): Generate indirect dispatch tables.
3444 (java_expand_classes): Set output_class.
3445 (java_finish_classes): Likewise.
3446 * lang.c (java_init): Turn on always_initialize_class_p if we're
3447 using indirect dis[atch.
3448 (java_decl_ok_for_sibcall): Use output_class, not current_class.
3449 (java_get_callee_fndecl): Use class local atable.
3451 (always_initialize_class_p): Decl moved to java-tree.h.
3452 (HANDLE_CLASS_INFO): Set output_class.
3453 (read_class): Likewise.
3454 (parse_class_file): Call gen_indirect_dispatch_tables.
3455 (parse_zip_file_entries): Set output_class.
3456 (java_parse_file): Set output_class. Don't emit symbol tables.
3457 * java-tree.h (output_class): New.
3458 Remove global declarations for otable, atable, and ctable.
3459 (always_initialize_class_p): moved here from decl.c.
3461 (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
3462 TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
3463 TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
3464 (struct lang_type): Add otable_methods, otable_decl,
3465 otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
3466 ctable_decl, catch_classes, type_to_runtime_map.
3467 * expr.c (build_field_ref): Make otable, atable, and ctable class
3468 local rather than global.
3469 (build_known_method_ref): Likewise.
3470 (build_invokeinterface): Likewise.
3471 (java_expand_expr): Pass runtime type (rather than actual type) to
3473 * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
3474 this class. Look up each class in that map to delete duplicates.
3475 (expand_end_java_handler): Pass runtime type (rather than actual
3476 type) to expand_start_catch.
3477 * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
3479 (java_init_decl_processing): Rearrange things. Remove global
3480 declarations of otable, atable, and ctable.
3481 (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
3482 (java_expand_body): Set output_class.
3483 * constants.c (build_constant_data_ref): Use output_class, not
3485 (alloc_name_constant): Likewise.
3486 * class.c (gen_indirect_dispatch_tables): New.
3487 (build_class_ref): Generate hard reference to superclass, even if
3488 using indirect dispatch.
3489 (build_static_field_ref): Use class local atable.
3490 (make_class_data): Generate hard reference to superclass, even if
3491 using indirect dispatch.
3492 Generate symbolic references to interfaces when using indirect
3494 (make_class_data): Emit otable, atable, and ctable.
3495 Make otable, atable, and ctable class local rather than global.
3496 (emit_catch_table): Make otable, atable, and ctable class local
3499 2003-12-25 Andrew Pinski <pinskia@physics.uc.edu>
3501 * parse.y (catch_clause_parameter): Fix typo.
3504 * parse.y: (catch_clause_parameter): Return early if $3, aka
3505 formal_parameter, is null.
3507 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
3509 * class.c: Remove uses of "register" specifier in
3510 declarations of arguments and local variables.
3513 * gjavah.c: Likewise.
3514 * jcf-dump.c: Likewise.
3515 * jcf-io.c: Likewise.
3516 * jcf-parse.c: Likewise.
3517 * jcf-write.c: Likewise.
3518 * keyword.h: Likewise.
3519 * parse.y: Likewise.
3520 * typeck.c: Likewise.
3521 * verify.c: Likewise.
3523 2003-12-06 Kelley Cook <kcook@gcc.gnu.org>
3525 * Make-lang.in (GCJ_CROSS_NAME): Delete.
3526 (java.install_common, java.install-man): Adjust for above.
3527 (java.uninstall): Likewise.
3529 2003-12-03 Michael Koch <konqueror@gmx.de>
3531 * class.c (make_class_data):
3532 Push field value to 'hack_signers' instead of 'signers'.
3533 * decl.c (java_init_decl_processing):
3534 Push field 'hack_signers' instead of 'signers'.
3536 2003-12-03 Zack Weinberg <zack@codesourcery.com>
3538 * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
3541 2003-12-03 Ralph Loader <rcl@ihug.co.nz>
3544 * parse.y (qualify_ambiguous_name): Remove lots of broken
3545 field access processing - there's no need to do that here,
3546 because we have resolve_field_access. Remove
3547 RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
3548 * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
3551 2003-12-01 Jeff Sturm <jsturm@one-point.com>
3554 * parse.y (java_complete_lhs): Save location prior to patching
3557 2003-11-25 Mohan Embar <gnustuff@thisiscool.com>
3560 * resource.c (write_resource_constructor): Append
3561 "_resource" to constructor identifier name.
3563 2003-11-25 Jeff Sturm <jsturm@one-point.com>
3566 * constants.c (cpool_for_class): New function.
3567 (outgoing_cpool): Remove global variable.
3568 (alloc_name_constant): Use cpool_for_class.
3569 (build_constants_constructor): Likewise.
3570 * decl.c (java_expand_body): Set current_class.
3571 * java-tree.h (outgoing_cpool) Remove declaration.
3572 (init_outgoing_cpool): Likewise.
3573 * jcf-parse.c (init_outgoing_cpool): Remove function.
3574 (parse_class_file): Don't call init_outgoing_cpool.
3575 * parse.y (java_complete_expand_methods): Don't call
3576 init_outgoing_cpool. Don't save outgoing_cpool.
3577 (java_expand_classes): Don't restore outgoing_cpool.
3578 (java_finish_classes): Likewise.
3580 2003-11-24 Mohan Embar <gnustuff@thisiscool.com>
3582 * Make-lang.in: (java.install-common) Add
3583 symlink for $(target_noncanonical)-gcjh for
3586 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
3588 * Make-lang.in (java.extraclean): Delete.
3590 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
3592 * Make-lang.in (check-java): Add.
3594 2003-11-19 Jeff Sturm <jsturm@one-point.com>
3597 * except.c (prepare_eh_table_type): Allocate variable-sized
3598 buffer `buf' with alloca.
3600 2003-11-17 Jeff Sturm <jsturm@one-point.com>
3604 decl.c (java_init_decl_processing): Don't initialize
3605 class_not_found_type_node, no_class_def_found_type_node.
3607 java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
3608 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
3609 (class_not_found_type_node, no_class_def_found_type_node):
3612 parse.y (build_dot_class_method_invocation): Add this_class
3613 argument. Qualify method invocations to a different class.
3614 (create_new_parser_context): Initialize saved_data_ctx to 0.
3615 (java_parser_context_save_global): Initialize saved_data_ctx to 1.
3616 (build_dot_class_method): Don't load classes. Register
3618 (build_incomplete_class_ref): Special cases for interfaces
3619 and inner classes. Move build_dot_class_method call to here...
3620 (patch_incomplete_class_ref): ...from here. Pass current_class
3621 to build_dot_class_method_invocation.
3622 (build_assertion): Pass class_type to
3623 build_dot_class_method_invocation.
3624 (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
3626 2003-11-17 Jeff Sturm <jsturm@one-point.com>
3629 * java-tree.h (BLOCK_EMPTY_P): Define.
3630 * parse.y (java_complete_lhs): Check for empty blocks
3631 in TRY_FINALLY_EXPR case.
3633 2003-11-17 Andrew Haley <aph@redhat.com>
3635 * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
3636 (struct lang_decl_var:freed): New variable.
3637 * decl.c (poplevel): Mark local vars that have gone out of scope.
3638 (push_jvm_slot): Don't use the RTL of a var that has gone out of
3641 2003-11-16 Jason Merrill <jason@redhat.com>
3643 * Make-lang.in (java.tags): Create TAGS.sub files in each directory
3644 and TAGS files that include them for each front end.
3646 2003-11-15 Tom Tromey <tromey@redhat.com>
3648 * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
3650 2003-11-12 Jason Merrill <jason@redhat.com>
3652 PR optimization/12547
3653 * lang.c (java_tree_inlining_walk_subtrees): Just walk
3654 BLOCK_EXPR_BODY directly.
3656 2003-11-12 Andrew Haley <aph@redhat.com>
3659 * parse.y (fold_constant_for_init): Check that we really do have a
3663 * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
3664 init_test_decls being inlined.
3667 * parse.y (do_resolve_class): Check return value from
3668 breakdown_qualified().
3670 2003-11-11 Tom Tromey <tromey@redhat.com>
3673 * parse.y (merge_string_cste): Handle case where we have a
3674 pointer that happens to be zero, not null_pointer_node.
3676 2003-11-10 Tom Tromey <tromey@redhat.com>
3678 * jcf-parse.c (classify_zip_file): Correctly compare
3679 filename_length against length of manifest file's name.
3681 2003-11-08 Tom Tromey <tromey@redhat.com>
3684 * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
3686 2003-11-06 Andrew Haley <aph@redhat.com>
3688 * expr.c (java_stack_swap): Make sure destination stack slots are
3689 of the correct type.
3691 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
3693 * Make-lang.in (dvi): Move targets to $(docobjdir).
3694 (gcj.dvi): Simplify rule and adjust target.
3695 (gcj.info): Simplify rule.
3696 (gcj.pod): New intermediate rule.
3697 (gcjh.pod): Likewise.
3698 (jv-scan.pod): Likewise.
3699 (jcf-dump.pod): Likewise.
3700 (gij.pod): Likewise.
3701 (jv-convert.pod): Likewise.
3702 (rmic.pod): Likewise.
3703 (rmiregistry.pod): Likewise.
3706 (jv-scan.1): Delete.
3707 (jcf-dump.1): Delete.
3709 (jv-convert.1): Delete.
3711 (rmiregistry.1): Delete.
3713 2003-11-02 Jeff Sturm <jsturm@one-point.com>
3715 Fixes PR java/12866.
3716 * parse.y (resolve_qualified_expression_name): Move test
3717 for outer field access methods from here...
3718 (check_thrown_exceptions) ...to here.
3720 2003-11-01 Kelley Cook <kcook@gcc.gnu.org>
3722 * .cvsignore: Delete.
3724 2003-10-28 Frank Ch. Eigler <fche@redhat.com>
3726 * verify.c (verify_jvm_instructions): Don't warn about legal
3727 eh binding regions generated for example by jdk 1.4.1.
3729 2003-10-24 David S. Miller <davem@redhat.com>
3731 * jcf-parse.c (jcf_parse): Fix args to fatal_error().
3733 2003-10-22 Andrew Haley <aph@redhat.com>
3735 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
3736 (java_get_callee_fndecl): New.
3738 * jcf-parse.c (java_parse_file): Call emit_catch_table().
3740 * java-tree.h (ctable_decl): New.
3741 (catch_classes): New.
3742 (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
3744 * decl.c (java_init_decl_processing): Add catch_class_type.
3746 Add catch_classes field.
3748 * class.c (build_indirect_class_ref): Break out from
3750 (make_field_value): Check flag_indirect_dispatch.
3751 (make_class_data): Ditto.
3752 Tidy uses of PUSH_FIELD_VALUE.
3753 Add field catch_classes.
3754 (make_catch_class_record): New.
3756 * java-tree.h (PUSH_FIELD_VALUE): Tidy.
3758 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
3760 * jcf-write.c: Follow spelling conventions.
3761 * parse.y: Likewise.
3763 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
3765 * ChangeLog: Fix typos.
3766 * expr.c: Fix comment typos.
3767 * jcf-write.c: Likewise.
3770 * mangle.c: Likewise.
3771 * parse-scan.y: Likewise.
3772 * parse.y: Likewise.
3774 2003-10-22 Tom Tromey <tromey@redhat.com>
3776 * expr.c (expand_byte_code): Only warn about dead bytecode when
3777 extra_warnings is set.
3779 2003-10-22 Bryce McKinlay <bryce@mckinlay.net.nz>
3781 Fix for PR java/12586.
3782 * mangle.c (find_compression_record_match): Don't iterate through
3783 package namespace elements unless they all match compression_table
3786 2003-10-20 Kelley Cook <kcook@gcc.gnu.org>
3788 * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
3789 (generate-manpages): Likewise.
3790 (java.maintainer-clean): Likewise.
3791 (gcj.info): Likewise.
3794 (jv-scan.1): Likewise.
3795 (jcf-dump.1): Likewise.
3797 (jv-convert.1): Likewise.
3799 (rmiregistry.1): Likewise.
3800 (java.install-man): Likewise.
3801 (parse-scan.o): Move and define complete compile line.
3802 (parse.o): Likewise.
3803 (jcf-tree-inline.o): Move.
3805 2003-10-20 Mark Mitchell <mark@codesourcery.com>
3807 * Make-lang.in (info): Update dependencies.
3808 (java.install-info): Remove.
3809 ($(srcdir)/java/gcj.info): Replace with ...
3810 ($(docobjdir)/gcj.info): ... this.
3812 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
3814 * Make-lang.in: Replace uses of $(target_alias) with
3815 $(target_noncanonical).
3817 2003-10-09 Tom Tromey <tromey@redhat.com>
3819 * decl.c (java_init_decl_processing): Declare signers field.
3820 * class.c (make_class_data): Set signers field.
3822 2003-10-09 Jason Merrill <jason@redhat.com>
3824 * parse.y (patch_assignment): Use make_node to create a BLOCK.
3825 * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
3828 2003-10-06 Mark Mitchell <mark@codesourcery.com>
3830 * Make-lang.in (java.info): Replace with ...
3832 (java.dvi): Replace with ...
3834 (java.generated-manpages): Replace with ...
3836 2003-10-03 Kelley Cook <kelleycook@wideopenwest.com>
3838 * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
3840 2003-10-01 Andrew Haley <aph@redhat.com>
3842 * jcf-parse.c (java_parse_file): Write otable and atable.
3843 * java-tree.h (atable_methods): New.
3845 (atable_syms_decl): New.
3846 (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
3847 JTI_ATABLE_SYMS_DECL. Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
3848 (symbol_*type): Rename method_symbol* to symbol*type.
3849 (emit_offset_symbol_table): Delete.
3850 (emit_symbol_table): New.
3851 (get_symbol_table_index): New.
3853 * expr.c (build_field_ref): Handle flag_indirect_dispatch.
3854 (build_known_method_ref): Likewise.
3855 (get_symbol_table_index): Rename from get_offset_table_index.
3856 Parameterize to allow re-use by differing types of symbol table.
3857 (build_invokevirtual): Pass table to get_offset_table_index.
3858 * decl.c (java_init_decl_processing): Push types and decls for
3859 atable and atable_syyms.
3860 * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
3861 (make_class_data): Add new fields atable and atable_syms.
3862 (emit_symbol_table): Rename from emit_offset_symbol_table.
3863 Parameterize to allow re-use by different types of symbol table.
3864 (build_symbol_entry): Renamed from build_method_symbols_entry.
3866 2003-09-30 Roger Sayle <roger@eyesopen.com>
3868 * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
3869 semantics for SAVE_EXPR, by caching the result in a temporary.
3871 2003-09-28 Richard Henderson <rth@redhat.com>
3873 * check-init.c (check_init): Save and restore input_location
3874 instead of file and line separately.
3875 * decl.c (java_expand_body): Likewise.
3876 * jcf-write.c (generate_bytecode_insns): Likewise.
3877 * parse.y (safe_layout_class): Likewise.
3878 * jcf-parse.c (read_class, parse_class_file): Likewise.
3879 (java_parse_file): Use %H for warning locator.
3881 2003-09-28 Roger Sayle <roger@eyesopen.com>
3883 * expr.c (java_check_reference): Use the semantics of COND_EXPRs
3884 with void-type branches instead of using a COMPOUND_EXPR.
3886 2003-09-28 Jeff Sturm <jsturm@one-point.com>
3888 * decl.c (java_optimize_inline, dump_function): Remove.
3889 * java-tree.h (java_optimize_inline): Remove declaration.
3890 * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
3891 * parse.y (source_end_java_method, java_expand_classes):
3892 Likewise. Remove dead code.
3894 2003-09-27 Roger Sayle <roger@eyesopen.com>
3896 * lang.c (java_init_options): Set flag_evaluation_order.
3897 * expr.c (force_evaluation_order): Don't attempt to force
3898 evaluation order of binary operations using save_expr.
3899 * parse.y (java_complete_lhs): No longer need to call
3900 force_evaluation_order when constructing binary operators.
3902 2003-09-27 Alexandre Petit-Bianco <apbianco@redhat.com>
3903 Bryce McKinlay <bryce@mckinlay.net.nz>
3906 * parse.y (not_accessible_field_error): New function.
3907 (resolve_expression_name): Check field access permissions.
3908 (resolve_qualified_expression_name): Use
3909 not_accessible_field_error.
3910 (resolve_qualified_expression_name): Likewise.
3912 2003-09-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3914 * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
3916 2003-09-23 Roger Sayle <roger@eyesopen.com>
3918 * jcf-write.c (generate_bytecode_insns): Optimize binary operations
3919 with equal operands without side-effects.
3921 2003-09-22 Jeff Sturm <jsturm@one-point.com>
3923 * decl.c (java_init_decl_processing): Don't emit otable decls
3924 if flag_indirect_dispatch is not set.
3926 2003-09-21 Richard Henderson <rth@redhat.com>
3928 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
3931 2003-09-21 Richard Henderson <rth@redhat.com>
3933 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
3934 resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
3936 2003-09-20 Richard Henderson <rth@redhat.com>
3938 * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
3940 2003-09-18 Roger Sayle <roger@eyesopen.com>
3942 * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
3943 * check-init.c (check_init): Likewise.
3945 2003-09-18 Roger Sayle <roger@eyesopen.com>
3947 * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
3949 2003-09-16 Andrew Haley <aph@redhat.com>
3951 * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
3953 2003-09-17 Ranjit Mathew <rmathew@hotmail.com>
3956 * mangle.c (find_compression_record_match): Skip
3957 over a "6JArray" (the array template mangled string)
3959 (mangle_array_type): Correct minor typo.
3960 (atms): Move definition to the beginning.
3962 2003-09-16 Bryce McKinlay <bryce@mckinlay.net.nz>
3964 * class.c (add_miranda_methods): Ensure super-interfaces are laid
3965 out. Fix for PR java/12254.
3967 2003-09-11 Richard Henderson <rth@redhat.com>
3969 * parse.y (source_end_java_method): Update for new
3970 cgraph_finalize_function argument.
3972 2003-09-09 Richard Henderson <rth@redhat.com>
3974 * parse.y (source_end_java_method): Update call to
3975 cgraph_finalize_function.
3977 2003-09-03 Jeff Sturm <jsturm@one-point.com>
3979 * decl.c (java_expand_body): New function.
3980 * expr.c (build_class_init): Set DECL_IGNORED_P.
3981 * java-tree.h (start_complete_expand_method,
3982 java_expand_body): Declare.
3983 * jcf-parse.c (cgraph.h): Include.
3984 (java_parse_file): Handle flag_unit_at_a_time.
3985 * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
3986 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
3987 (java_estimate_num_insns): Use walk_tree_without_duplicates.
3988 (java_start_inlining): New function.
3989 * parse.h (java_finish_classes): Declare.
3990 * parse.y: Include cgraph.h.
3991 (block): Don't special-case empty block production.
3992 (craft_constructor): Set DECL_INLINE.
3993 (source_end_java_method): Handle flag_unit_at_a_time.
3994 Replace inline code with call to java_expand_body.
3995 (start_complete_expand_method): Remove static modifier.
3996 (java_expand_method_bodies): Patch function tree for
3997 class initialization and/or synchronization as needed.
3998 Don't begin RTL expansion yet.
3999 (java_expand_classes): Check flag_unit_at_a_time before
4000 calling finish_class.
4001 (java_finish_classes): New function.
4002 (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
4003 (patch_assignment): Set DECL_CONTEXT on temporary variable.
4004 (emit_test_initialization): Set DECL_IGNORED_P.
4006 2003-09-03 Roger Sayle <roger@eyesopen.com>
4008 * builtins.c (enum builtin_type): Delete unused enumeration.
4009 * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
4011 2003-08-28 Tom Tromey <tromey@redhat.com>
4013 * gcj.texi (Extensions): Document gcjlib URLs.
4015 2003-08-20 Tom Tromey <tromey@redhat.com>
4017 * gcj.texi (Extensions): Added xref.
4018 (libgcj Runtime Properties): Document
4019 gnu.gcj.runtime.VMClassLoader.library_control.
4021 2003-08-20 Andrew Haley <aph@redhat.com>
4023 * except.c (prepare_eh_table_type): Use new encoding for exception
4024 handlers when using -fno-assume-compiled.
4026 2003-08-13 Tom Tromey <tromey@redhat.com>
4028 * gcj.texi (Invoking gij): Document -X and -?.
4030 2003-08-13 Mohan Embar <gnustuff@thisiscool.com>