OSDN Git Service

3cf82e3efde3a5775c9ec3d962be2173ef81aed6
[pf3gnuchains/gcc-fork.git] / gcc / java / ChangeLog
1 2005-09-21  Ranjit Mathew  <rmathew@gcc.gnu.org>
2
3         PR java/21418
4         * class.c (inherits_from_p): Try to lay out super class
5         if it is not already laid out.
6         (maybe_layout_super_class): Handle the case where SUPER_CLASS
7         is a NULL_TREE.
8
9 2005-09-18  James A. Morrison  <phython@gcc.gnu.org>
10
11         * builtins.c (max_builtin, min_builtin, abs_builtin,
12         java_build_function_call_expr): Use fold_buildN.
13         * class.c (layout_class_method): Likewise.
14         * expr.c (java_truthvalue_conversion, build_java_jsr,
15         build_java_arrayaccess, expand_java_arrayload, expand_iinc,
16         build_java_binop, build_field_ref, expand_compare,
17         build_known_method_ref, build_invokevirtual,
18         process_jvm_instruction): Likewise.
19         * parse.y (patch_binop, patch_exit_expr): Likewise.
20         * typeck.c (convert_ieee_real_to_integer): Likewise.
21         (convert): Don't call fold after convert_ieee_real_to_integer.
22
23 2005-09-14  Bryce McKinlay  <mckinlay@redhat.com>
24
25         PR java/23891
26         * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
27         the newly created type. Set import lists here, not in create_class.
28         (jdep_resolve_class): Set current_class.
29         (do_resolve_class): Use current_class's TYPE_PACKAGE to determine 
30         the current package context, not ctxp->package.
31         (cicp_cache): Removed.
32         (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
33         * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
34         * java-tree.h (TYPE_PACKAGE): New macro.
35         (struct lang_type): New member 'package'.
36
37 2005-09-09  Andrew Haley  <aph@redhat.com>
38
39         PR libgcj/23182 
40         * expr.c (pop_type_0): If the expected type is object or ptr
41         (i.e. void*), return the type of the object we just popped from
42         the stack.
43
44 2005-09-06  Andrew Pinski  <pinskia@physics.uc.edu>
45
46         * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
47         BLOCK_EXPR_BODY before returning the new BIND_EXPR.
48
49 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
50
51         * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
52         jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
53         typos.  Follow spelling conventions.
54
55 2005-09-05  Ranjit Mathew  <rmathew@hotmail.com>
56
57         PR java/23431
58         * typeck.c (lookup_do): Look up interfaces for the original class,
59         not the base class.
60         * parse.y (java_check_regular_methods): Fix diagnostic message for
61         more restrictive overriding of a method from an interface.
62
63 2005-08-16  Tom Tromey  <tromey@redhat.com>
64
65         * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
66         class' initial state.
67
68 2005-08-16  Ranjit Mathew  <rmathew@hotmail.com>
69
70         PR java/22113
71         * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
72         `literal_token' for large numeric input tokens.
73
74 2005-08-16  Ranjit Mathew  <rmathew@hotmail.com>
75
76         PR java/19870
77         * parse.y (nested_field_access_p): Rename to nested_member_access_p
78         and expand to handle method accesses across nested classes.
79         (build_outer_method_access_method): Rename to
80         build_nested_method_access_method.  Minor adjustments to comments.
81         (resolve_expression_name): Use the newly-renamed
82         nested_member_access_p method.
83         (resolve_qualified_expression_name): Likewise.
84         (patch_method_invocation): Also consider static methods for access
85         method generation.  Minor adjustments to comments.
86         (maybe_use_access_method): Use the more general
87         nested_memeber_access_p to determine access across nested class
88         boundaries.  Allow THIS_ARG to be NULL (for static methods).
89
90 2005-08-15  Tom Tromey  <tromey@redhat.com>
91
92         PR java/23300.
93         * expr.c (build_field_ref): Don't generate otable reference when
94         DECL_FIELD_OFFSET is 0.
95         * class.c (maybe_layout_super_class): Pass outer class to
96         do_resolve_class.
97
98 2005-08-15  Tom Tromey  <tromey@redhat.com>
99
100         * java-tree.h (LABEL_IN_SUBR): Removed.
101         (LABEL_IN_SUBR): Likewise.
102         (LABEL_IS_SUBR_START): Likewise.
103         (LABEL_SUBR_START): Likewise.
104         (LABEL_SUBR_CONTEXT): Likewise.
105         (LABEL_CHANGED): Likewise.
106         (LABEL_RETURN_LABEL): Likewise.
107         (LABEL_RETURN_TYPE_STATE): Likewise.
108         (LABEL_RETURN_LABELS): Likewise.
109         (RETURN_MAP_ADJUSTED): Likewise.
110         (LABEL_PENDING_CHAIN): Likewise.
111
112 2005-08-15  Tom Tromey  <tromey@redhat.com>
113
114         * Make-lang.in (JAVA_OBJS): Removed verify.o
115         (java/verify.o): Removed.
116         * verify.c: Removed.
117         * lang.c (flag_new_verifier): Removed.
118         (java_post_options): Updated.
119         * java-tree.h (flag_new_verifier): Removed.
120         (verify_jvm_instructions): Removed.
121         * expr.c (pop_type_0): Assume flag_new_verifier is true.
122         (build_java_check_indexed_type): Likewise.
123         (expand_java_arraystore): Likewise.
124         (expand_java_arrayload): Likewise.
125         (pop_arguments): Likewise.
126         (expand_byte_code): Likewise.
127         (process_jvm_instruction): Likewise.
128
129 2005-08-10  Andrew Haley  <aph@redhat.com>
130
131         * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
132         type mismatches to make legal GIMPLE.
133
134 2005-08-10  Robin Green <greenrd@greenrd.org>
135
136         PR java/23230:
137         * parse.y (maybe_use_access_method): Generalize check from
138         java.lang.Object to any superclass of current_class
139
140 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
141
142         * class.c (build_class_ref): Wrap the primary class type in a
143         NOP_EXPR.
144         * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
145         primary class type from the NOP_EXPR in which it was placed.
146
147 2005-07-28  Diego Novillo  <dnovillo@redhat.com>
148
149         * expr.c (expand_load_internal): Fix missing parens in
150         predicate.
151
152 2005-07-28  Andrew Haley  <aph@redhat.com>
153
154         * expr.c (expand_load_internal): Convert to destination type.
155
156 2005-07-22  Manfred Hollstein  <mh@suse.com>
157
158         * verify-impl.c (check_class_constant): Fix uninitialised warnings.
159         (check_constant): Likewise.
160         (check_wide_constant): Likewise.
161
162 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
163
164         Make CONSTRUCTOR use VEC to store initializers.
165         * check-init.c (check_init): Update to cope with VEC in
166         CONSTRUCTOR_ELTS.
167         * class.c (make_field_value, make_method_value, get_dispatch_table,
168         make_class_data, emit_symbol_table, emit_catch_table,
169         emit_assertion_table): Use build_constructor_from_list instead of
170         build_constructor.
171         * constants.c (build_constants_constructor): Likewise.
172         * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
173         VEC in CONSTRUCTOR_ELTS.
174         * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
175         PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
176         of a TREE_LIST.
177         * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
178         CONSTRUCTOR_ELTS.
179         * parse.y (build_new_array_init): Use build_constructor_from_list
180         instead of build_constructor.
181         (patch_new_array_init): Update to cope with VEC in
182         CONSTRUCTOR_ELTS.
183         (array_constructor_check_entry): Likewise.
184
185 2005-07-12  Tom Tromey  <tromey@redhat.com>
186
187         * jvspec.c (lang_specific_driver): Put filelist_filename first on
188         command line.
189
190 2005-07-12  Tom Tromey  <tromey@redhat.com>
191
192         PR java/19674:
193         * parse-scan.y (interface_member_declaration): Added
194         empty_statement.
195
196 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
197         
198         * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
199         (LABEL_PENDING_CHAIN): Ditto.
200         (LABEL_PC): Ditto.
201         (DECL_BIT_INDEX): Ditto.        
202
203 2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>
204
205         PR java/18119
206         * parse.y (inner_class_accessible): New function. Logic moved from
207         check_inner_class_access.
208         (check_inner_class_access): Use inner_class_accessible.
209         (resolve_inner_class): Simplify arguments. Create circularity hash
210         here. Keep looking for classes if we found one that was inaccessible. 
211         Return the inaccessible class only if there is no other match.
212         (do_resolve_class): Update for new resolve_inner_class arguments.
213         Don't create circularity_hash here.
214
215 2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>
216
217         PR java/21045
218         * parse.y (add_exception_to_throws): New function.
219         (purge_unchecked_exceptions): Removed.
220         (get_constructor_super): Renamed from verify_constructor_super. Now
221         returns the super constructor after verification.
222         (java_complete_expand_method): Don't use purge_unchecked_exceptions
223         or save/restore the exception list.
224         (check_thrown_exceptions): Add uncaught exceptions in anonymous
225         class initializers and constructors to the throws clause of the method. 
226
227 2005-07-05  Bryce McKinlay  <mckinlay@redhat.com>
228
229         PR java/19674
230         * parse.y (interface_member_declaration): Allow empty statements in
231         interface declarations.
232
233 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
234
235         * Makefile.in (parse.o): Adjust dependencies.
236         * parse.y: Include tree-dump.h.
237
238 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
239
240         * class.c, decl.c, expr.c: Use '+' flag instead of %J.  Use 'q'
241         flag for quoting.
242
243 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
244
245         * parse.y (issue_warning_error_from_context): Call
246         pp_output_formatted_text to be able to get the buffer.
247
248 2005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>
249
250         * parse.y (issue_warning_error_from_context): Update for the
251         renaming of pp_format_text to pp_format.
252
253 2005-06-28  Paul Brook  <paul@codesourcery.com>
254
255         * decl.c (java_init_decl_processing): Call
256         default_init_unwind_resume_libfunc.
257
258 2005-06-27  Tom Tromey  <tromey@redhat.com>
259
260         PR java/21540, PR java/13788:
261         * parse.y (java_complete_lhs) <CASE_EXPR>: Use
262         fold_constant_for_init.
263         (patch_binop): Added 'folding' argument.  Updated all callers.
264         (patch_unaryop) <NOP_EXPR>: New case.
265         (fold_constant_for_init) <NOP_EXPR>: Likewise.
266         (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
267
268 2005-06-25  Jan Hubicka  <jh@suse.cz>
269
270         * builtins.c (define_builtin): Accept new flags parameter.
271         (initialize_builtins): Mark the builtins const and nothrow accordingly.
272
273 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
274
275         * all files: Update FSF address in copyright headers.
276
277 2005-06-24  Tom Tromey  <tromey@redhat.com>
278
279         * verify-impl.c (verify_instructions_0): Correctly handle
280         situation where PC falls off end.
281
282 2005-06-23  Bryce McKinlay  <mckinlay@redhat.com>
283
284         PR java/20697
285         * parse.y (find_most_specific_methods_list): Remove special case for
286         inner classes.
287
288 2005-06-15  Tom Tromey  <tromey@redhat.com>
289
290         PR libgcj/21906:
291         * class.c (make_method_value): Use soft_abstractmethod_node for
292         abstract method.
293         * java-tree.h (soft_abstractmethod_node): New define.
294         (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
295         * decl.c (java_init_decl_processing): Initialize
296         soft_abstractmethod_node.
297
298 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
299
300         * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
301
302 2005-06-13  Per Bothner  <per@bothner.com>
303
304         * expr.c (int highest_label_pc_this_method,
305         start_label_pc_this_method): New globals.
306         (lookup_label): Add start_label_pc_this_method to pc for label, and
307         update highest_label_pc_this_method.  This prevents conflicts between
308         labels from different methods.
309         * java-tree.h: Declare new globals.
310         * jcf-parse.c (parse_class_file): If needed bump
311         start_label_pc_this_method and reset highest_label_pc_this_method.
312
313 2005-06-13  Tom Tromey  <tromey@redhat.com>
314
315         PR java/21844:
316         * parse.y (nested_field_access_p): Handle case where outer field
317         is inherited by enclosing class.
318
319 2005-06-12  Per Bothner  <per@bothner.com>
320
321         * class.c (inherits_from_p): Do load_class if needed.
322
323 2005-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
324
325         * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
326         * java-tree.h (parse_error_context): Move...
327         * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
328         * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
329         * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
330
331 2005-06-08  Roger Sayle  <roger@eyesopen.com>
332
333         * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
334
335 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
336
337         * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
338         msgid for argument name.
339         * gjavah.c (error): Likewise.
340         * java-tree.h (parse_error_context): Likewise.
341         * parse.y (parse_error_context, parse_warning_context,
342         issue_warning_error_from_context): Likewise.
343
344 2005-06-01  Tom Tromey  <tromey@redhat.com>
345
346         PR java/21722:
347         * class.c (build_static_field_ref): Don't fold constant fields if
348         current class is from a .class file and we're using indirect
349         dispatch.
350
351 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
352
353         * java/verify-glue.c: Don't include errors.h and include toplev.h.
354         * java/Make-lang.in: Updates dependencies.
355
356 2005-05-26  Ranjit Mathew  <rmathew@hotmail.com>
357
358         PR java/19870.
359         * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
360         NESTED_FIELD_ACCESS_IDENTIFIER_P.
361         (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
362         (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
363         * jcf-write.c (generate_classfile): Use
364         NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
365         OUTER_FIELD_ACCESS_IDENTIFIER_P.
366         * parse.y (build_outer_field_access): Rename to
367         build_nested_field_access. Support static fields and outer-to-inner
368         class accesses.
369         (outer_field_access_p): Rename to nested_field_access_p. Support
370         static fields and generalise to outer-to-inner class and sibling
371         inner class accesses.
372         (outer_field_expanded_access_p): Rename to
373         nested_field_expanded_access_p and support static fields.
374         (outer_field_access_fix): Rename to nested_field_access_fix and
375         support static fields.
376         (build_outer_field_access_expr): Rename to
377         build_nested_field_access_expr and support static fields.
378         (build_outer_field_access_methods): Rename to
379         build_nested_field_access_methods and support static fields. For
380         static fields, generate accessors without class instance parameters.
381         (build_outer_field_access_method): Rename to
382         build_nested_field_access_method and support static fields.
383         (build_outer_method_access_method): Use
384         NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
385         OUTER_FIELD_ACCESS_IDENTIFIER_P.
386         (resolve_expression_name): Consider static field accesses across
387         nested classes.
388         (resolve_qualified_expression_name): Likewise.
389         (java_complete_lhs): Use nested_field_access_fix instead of
390         outer_field_access_fix.
391         (patch_unary_op): Rename outer_field_flag to nested_field_flag.
392         Use nested_field_expanded_access_p instead of
393         outer_field_expanded_access_p. Use nested_field_access_fix instead
394         of outer_field_access_fix.
395         (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
396         instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
397
398 2005-05-26  Bryce McKinlay  <mckinlay@redhat.com>
399
400         * decl.c (GCJ_BINARYCOMPAT_ADDITION, 
401         GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
402         (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
403         MINOR_BINARYCOMPAT_ABI_VERSION): New.
404         (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
405         (parse_version): Calculate version ID using new method. Use bit-flags
406         for flag_indirect_dispatch and flag_bootstrap_classes.
407
408 2005-05-25  Richard Henderson  <rth@redhat.com>
409
410         PR libgcj/21692
411         * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
412         * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
413         DECL_CONTEXT; avoid pushdecl_top_level.
414         (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
415         (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
416         (layout_class_method): Likewise.
417         * decl.c (java_mark_cni_decl_local): New.
418         (java_mark_class_local): Use it.
419         * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
420         (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
421         (struct lang_decl_func): Add local_cni;
422         (struct lang_decl_var): Add class_field, vtable.
423         (java_mangle_decl): Declare.
424         * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
425         * mangle.c: Remove dup obstack.h; include langhooks-def.h.
426         (mangle_obstack_1): New.
427         (java_mangle_decl): Remove obstack argument.  Call mangle_class_field,
428         mangle_vtable, and mangle_local_cni_method_decl.  Fall back to
429         lhd_set_decl_assembler_name for things that don't need mangling.
430         (mangle_class_field): Rename from java_mangle_class_field, make
431         static, don't call init_mangling or finish_mangling.
432         (mangle_vtable): Similarly.
433         (mangle_local_cni_method_decl): New.
434         (init_mangling): Remove obstack argument.  Use &mangle_obstack_1,
435         gcc_assert, and MANGLE_RAW_STRING.
436         (finish_mangling): Use gcc_assert, remove if 0 debugging code.
437
438 2005-05-25  DJ Delorie  <dj@redhat.com>
439
440         * class.c (set_constant_value): Move warning control from if() to
441         warning(OPT_*).
442
443 2005-05-24  Richard Henderson  <rth@redhat.com>
444
445         * builtins.c (define_builtin): Don't call make_decl_rtl.
446         * constants.c (build_constant_data_ref): Likewise.
447         * class.c (build_utf8_ref): Likewise.
448         (build_fieldref_cache_entry, build_static_field_ref): Likewise.
449         (get_dispatch_table, layout_class_method): Likewise.
450         (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
451         by hand.
452         (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
453         (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
454         to determine if we need a non-zero address.
455         * decl.c (builtin_function): Don't call make_decl_rtl.
456         (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
457         * expr.c (build_known_method_ref): Don't call make_decl_rtl.
458         * resource.c (compile_resource_data): Likewise.
459         * parse.y (resolve_field_access): Re-word comment to avoid
460         building DECL_RTL.
461
462 2005-05-24  Richard Henderson  <rth@redhat.com>
463
464         * class.c (registered_class): Take it out of class_roots; turn into
465         a vec of trees.
466         (register_class): Make static.  Don't duplicate decl node.  Use
467         VEC_safe_push.
468         (emit_register_classes): Use VEC_iterate.  Use output_constant
469         instead of assemble_integer.  Don't call mark_decl_referenced
470         directly.
471         * java-tree.h (register_class): Remove decl.
472
473 2005-05-19  Paolo Bonzini  <bonzini@gnu.org>
474
475         PR java/17845
476
477         * parse.y (register_package, package_list): Remove.
478         (package_declaration): Do not call register_package.
479         (do_resolve_class): Do not use package_list.
480
481 2005-05-15  Gerald Pfeifer  <gerald@pfeifer.com>
482
483         * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
484         unused variable.
485
486 2005-05-15  Tom Tromey  <tromey@redhat.com>
487
488         PR java/21519:
489         * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
490         NOTE_PUSH.
491
492 2005-05-12  Aaron Luchko <aluchko@redhat.com>
493
494         * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
495
496 2005-05-11  Tom Tromey  <tromey@redhat.com>
497
498         * gcj.texi (Code Generation): Document -fbootstrap-classes.
499         * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
500         (parse_version): Use it.
501         * lang.opt (-fbootstrap-classes): New option.
502
503 2005-05-10  Paolo Bonzini  <bonzini@gnu.org>
504
505         PR java/21436
506         * class.c (maybe_layout_super_class): Look for imports in this_class.
507         * parse.h (ctxp_for_generation_last): New.
508         (do_resolve_class): Add a parameter.
509         * parse.y (ctxp_for_generation_last): New.
510         (java_pop_parser_context): Add at end of list.
511         (find_in_imports, find_in_imports_on_demand): Look in ctxp
512         if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
513         the given type are NULL.
514         (do_resolve_class): Look into the imports of the new second parameter.
515         Adjust recursive calls.
516         (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
517         calls to do_resolve_class.
518         (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
519         (java_complete_class): Do not do that here.
520
521 2005-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
522
523         PR java/20309
524         * Make-lang.in (java): Add gjnih.
525         (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
526         (GJNIH_OBJS): New variable.
527         (gjnih$(exeext)): New target.
528         (JAVA_MANFILES): Add gjnih.1.
529         (java.uninstall): Add gjnih.1.
530         (java.mostlyclean): Add gjnih.
531         (java.maintainer-clean): Add gjnih.1.
532         (java/gjavah-jni.o): New target.
533         (.INTERMEDIATE): Add gjnih.pod.
534         (gjnih.pod): New target.
535         * config-lang.in (stagestuff): Add gjnih.
536         * gcj.texi (Top): Add gjnih node.
537         (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
538         -bootclasspath options.
539         (Invoking gjnih): New node.
540         * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
541         (TOOLNAME): New macro.
542         (error): Replace hard-coded gcjh with TOOLNAME.
543         (process_file): Likewise.
544         (usage): Likewise.
545         (version): Likewise.
546         (help): Likewise.  Add help output for -force, -old, -trace and -J
547         options.
548         (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
549         (options): Add force, old, trace and J fields.
550         (main): Handle -force, -old, -trace and -J options.
551
552 2005-05-03  Tom Tromey  <tromey@redhat.com>
553
554         PR java/21245:
555         * gjavah.c (main): Unlink output file on error.
556
557 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
558
559         * constants.c, jvgenmain.c, lang.opt, resource.c: Update
560         copyright.
561
562 2005-04-29  Tom Tromey  <tromey@redhat.com>
563
564         * expr.c (build_jni_stub): Updated for change to build_block.
565
566 2005-04-29  Andrew Pinski  <pinskia@gcc.gnu.org>
567
568         * expr.c (force_evaluation_order): Declare 'saved' earlier.
569
570 2005-04-28  Andrew Haley  <aph@redhat.com>
571
572         PR java/19285
573         * java-tree.h (soft_resolvepoolentry_node): New.
574         (alloc_constant_fieldref): Declare.
575         * expr.c (expand_java_field_op): Don't call class_init for
576         accesses to static fields with indirect dispatch.
577         * builtins.c (initialize_builtins): Add "__builtin_expect".
578         * decl.c (soft_resolvepoolentry_node): New variable.
579         (java_init_decl_processing): Create a decl for
580         "_Jv_ResolvePoolEntry".
581         * class.c (build_fieldref_cache_entry): New function.
582         (build_static_field_ref): Rewrite for indirect dispatch.
583         * constants.c (find_name_and_type_constant_tree): New function.
584         (alloc_constant_fieldref): Likewise.
585         (build_constants_constructor): Handle CONSTANT_Fieldref and
586         CONSTANT_NameAndType.
587
588         PR java/21115
589         * expr.c (force_evaluation_order): Convert outgoing args smaller
590         than integer.
591
592 2005-04-27  Bryce McKinlay  <mckinlay@redhat.com>
593
594         * gcj.texi (libgcj Runtime Properties): Remove obsolete
595         gnu.gcj.runtime.NameFinder.* system properties. Update documentation 
596         for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
597
598 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
599
600         * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
601         to `unlock_stream' with `unlock_std_streams'.
602
603 2005-04-25  Jakub Jelinek  <jakub@redhat.com>
604
605         * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
606         instead of just expr.h.
607
608 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
609
610         * gjavah.c (main): Unlock the stdio streams.
611         * jcf-dump.c (main): Likewise.
612         * jv-scan.c (main): Likewise.
613         * jvgenmain.c (main): Likewise.
614
615 2005-04-23  DJ Delorie  <dj@redhat.com>
616
617         * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
618         parse.y: Adjust warning() callers.
619
620 2005-04-21  Bryce McKinlay  <mckinlay@redhat.com>
621
622         * gcj.texi (Object fields): Change "Integer" to "Int" in example
623         contructor.
624
625 2005-04-20  Bryce McKinlay  <mckinlay@redhat.com>
626
627         * gcj.texi: Fix typos and bogus example.
628
629 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
630
631         * except.c: Fix a comment typo.
632
633 2005-04-19  Julian Brown  <julian@codesourcery.com>
634
635         * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
636         indirect dispatch with PIC.
637
638 2005-04-18  Andrew Haley  <aph@redhat.com>
639
640         * java-except.h (struct eh_range.handler): Remove unused field.
641         (handle_nested_ranges): Remove function declaration.
642         (sanity_check_exception_range): Add function declaration.       
643         * verify.c (verify_jvm_instructions): Remove call to
644         handle_nested_ranges.
645         * verify-glue.c (verify_jvm_instructions_new): Call
646         sanity_check_exception_range.
647         * except.c (link_handler, eh_range_freelist, link_handler,
648         handle_nested_ranges): Remove.
649         (add_handler): Rewrite.
650         (sanity_check_exception_range): New function.
651         (print_ranges): New function.
652
653 2005-04-13  Julian Brown  <julian@codesourcery.com>
654
655         * decl.c (finish_method): Give methods once-only linkage.
656
657 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
658
659         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
660
661 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
662
663         * java-tree.h: Don't use PARAMS().
664
665 2005-04-07  Per Bothner  <per@bothner.com>
666
667         * class.c (push_class): By default, suppress debug output.
668         (finish_class): Enable debug output for classes we're emitting.
669
670 2005-04-07  Andrew Haley  <aph@redhat.com>
671
672         * gcj.texi: Correct gcj-dbtool instructions.
673
674 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
675
676         * gcj.texi: Fix a typo.
677         * lang.c: Fix a comment typo.
678
679 2005-04-01  Thomas Fitzsimmons  <fitzsim@redhat.com>
680
681         * gcj.texi (Invoking gij): Add descriptions of new -X options.
682         Mention recognized-and-ignored compatibility options.
683         (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
684         JvFree.
685         (About CNI): Add Memory allocation section.
686
687 2005-04-01  Tom Tromey  <tromey@redhat.com>
688
689         * decl.c (java_init_decl_processing): Fix types of
690         _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
691         _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
692         _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
693
694 2005-03-31  Jan Hubicka  <jh@suse.cz>
695
696         * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
697         * class.c: Include cgraph.h
698         (make_local_functoin_alias): Mark aslias as needed.
699         * resource.c: Include cgraph.h
700         (compile_resource_data): Go via cgraph interface.
701
702 2005-03-30  Ian Lance Taylor  <ian@airs.com>
703
704         * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
705
706 2005-03-30  Tom Tromey  <tromey@redhat.com>
707
708         * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
709         inner_class_info_index==0 or outer_class_info_index==0.
710
711 2005-03-29  Tom Tromey  <tromey@redhat.com>
712
713         * gcj.texi (libgcj Runtime Properties): Document
714         gnu.gcj.runtime.endorsed.dirs.
715
716 2005-03-24  Anthony Green  <green@redhat.com>
717
718         * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
719         'gcj-dbtool -p'.
720
721 2005-03-23  Tom Tromey  <tromey@redhat.com>
722
723         * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
724         (parse_version): Use it.
725
726 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
727
728         * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
729
730 2005-03-18  Andrew Haley  <aph@redhat.com>
731
732         PR java/20522
733         * decl.c (update_aliases): Don't update variables that are about
734         to die.
735         (maybe_poplevels): Add comment.
736
737 2005-03-17  Bryce McKinlay  <mckinlay@redhat.com>
738
739         PR java/20502
740         * jcf-parse.c (duplicate_class_warning): New function.
741         (java_parse_file): Call duplicate_class_warning if 
742         CLASS_FROM_CURRENTLY_COMPILED_P is already set.
743         (parse_zip_file_entries): Likewise. Also set
744         CLASS_FROM_CURRENTLY_COMPILED_P.
745
746 2005-03-16  Andrew Haley  <aph@redhat.com>
747
748         * expr.c (expand_java_arrayload): Don't generate a
749         NullPointerException based on the type of the node.
750         (build_java_array_length_access): Likewise.
751
752 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
753
754         * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
755
756 2005-03-11  Tom Tromey  <tromey@redhat.com>
757
758         * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
759         (libgcj Runtime Properties): Document the default .db.
760
761 2005-03-10  Ranjit Mathew  <rmathew@hotmail.com>
762
763         PR java/20312
764         * parse.y (checks_throws_clauses): Check exceptions list even when
765         the base class does not come from a source file being compiled.
766         (java_complete_lhs): Remove unused variable 'wfl'.
767
768 2005-03-09  Ranjit Mathew  <rmathew@hotmail.com>
769
770         PR java/20338
771         * decl.c (finish_method): Emit _Jv_InitClass for private static
772         methods inside inner classes as well.
773
774 2005-03-08  Julian Brown  <julian@codesourcery.com>
775         * Revert patch from 2005-03-08 for causing bootstrap failure on
776         ppc-darwin.
777
778 2005-03-08  Julian Brown  <julian@codesourcery.com>
779
780         * decl.c (finish_method): Give methods once-only linkage.
781
782 2005-03-07  Ranjit Mathew  <rmathew@hotmail.com>
783
784         * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
785
786 2005-03-07  Bryce McKinlay  <mckinlay@redhat.com>
787
788         * verify-glue.c (vfy_is_assignable_from): Perform static check using
789         can_widen_reference_to if the C++ ABI is in use.
790         (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
791         * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
792         type_isresolved, init_state, set_pc, state_get_pc,
793         _Jv_BytecodeVerifier): Clean up unused and disabled functions.
794         (verify_fail): Report the current PC from the verifier context.
795         (free_state): Remove #if 0 block to enable this function.
796         (free_verifier_context): Call free_state on state_list iterator
797         values before freeing them.
798         * expr.c (pop_type_0): Pop correct type for error message when stack
799         contains a multi-word type.
800
801 2005-03-07  Ranjit Mathew  <rmathew@hotmail.com>
802
803         * expr.c (build_java_array_length_access): Remove !flag_new_verifier
804         for known NULL array length access.
805
806 2005-03-07  Tom Tromey  <tromey@redhat.com>
807
808         * gcj.texi (Invoking gcj-dbtool): Document '-f'.
809
810 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
811
812         * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
813         typeck.c: Update copyright.
814
815 2005-03-06  Ranjit Mathew  <rmathew@hotmail.com>
816
817         Remove xref code.
818         * xref.c, xref.h: Remove file.
819         * Make-lang.in (java/xref.o): Remove.
820         * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
821         * lang.c (flag_emit_xref): Remove definition.
822         * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
823         * typeck.c (convert): Remove use of do_not_fold.
824         * parse.y (do_not_fold): Remove definition.
825         (parser grammar): Remove xref code.
826         (maybe_create_class_interface_decl, create_class): Likewise.
827         (register_fields, method_header, finish_method_declaration): Likewise.
828         (declare_local_variables, source_end_java_method): Likewise.
829         (java_complete_expand_classes): Do not set do_not_fold.
830         (java_complete_expand_method): Remove xref code.
831         (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
832         (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
833         (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
834         (patch_synchronized_statement, patch_throw_statement): Likewise.
835         (maybe_build_class_init_for_field): Likewise.
836
837 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
838
839         * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
840         instead of IS_NON_TYPE_CODE_CLASS.
841
842 2005-03-04  Andrew Haley  <aph@redhat.com>
843
844         PR java/18362
845         * class.c (set_method_index): Don't set method_index if it is
846         NULL_TREE.
847         (layout_class_method): Don't complain about "non-static method foo
848         overrides static method" in the case of indirect dispatch.
849
850 2005-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
851
852         * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
853         warning.
854         * Make-lang.in: Don't elide warnings in jcf-io.c.
855
856 2005-03-01  Per Bothner  <per@bothner.com>
857
858         PR java/8608
859         * check-init.c (wfl): Remove static.
860         (final_assign_error, check_init): Replace calls to parse_error_context
861         by plain error.
862         (check_init): Save, set, and restore input_location for each exp.
863
864 2005-03-01  Per Bothner  <per@bothner.com>
865
866         * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
867         if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
868         * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
869
870 2005-03-01  Per Bothner  <per@bothner.com>
871
872         * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
873
874 2005-02-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
875
876         PR libgcj/16923
877         * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
878         JvVMOption.
879
880 2005-02-22  Tom Tromey  <tromey@redhat.com>
881
882         PR java/20056:
883         * verify-impl.c (EITHER): New define.
884         (types_compatible): Handle it.
885         (check_field_constant): Use it.
886
887 2005-02-18  Tom Tromey  <tromey@redhat.com>
888
889         PR java/20056:
890         * verify-impl.c (types_equal): Fixed test.
891
892         PR java/20056:
893         * verify-glue.c (vfy_class_has_field): New function.
894         * verify.h (vfy_class_has_field): Declare.
895         * verify-impl.c (check_field_constant): Added 'putfield'
896         argument.
897         (verify_instructions_0): Updated.
898         (types_equal): New function.
899
900 2005-02-14  Tom Tromey  <tromey@redhat.com>
901
902         PR java/19921:
903         * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
904         stack effect of multianewarray.
905
906 2005-02-14  Andrew Haley  <aph@redhat.com>
907
908         PR java/19907
909         * expr.c (expand_byte_code): Call promote_arguments().
910         (promote_arguments): New function.
911         * decl.c (check_local_unnamed_variable): Remove special case for
912         new verifier.
913         (find_local_variable): Promote all boolean types to int
914         when searching for local variable decls.
915
916 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
917
918         * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
919         parse-scan.y: Update copyright.
920
921 2005-02-11  Per Bothner  <per@bothner.com>
922
923         PR java/15543
924         * parse-scan.y (input_location): Remove variable.
925         (main_input_filename): New - replaces input_filename, which isn't
926         settable if USE_MAPPED_LOCATION.
927         * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
928         so we don't reference input_location or wfl_operator in that case.
929         * jv-scan.c (expand_location): Remove - no longer used.
930         (main): Set main_input_filename rather than input_filename.
931
932 2005-02-09  Richard Henderson  <rth@redhat.com>
933
934         * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
935         * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
936
937 2005-02-08  Marcin Dalecki  <martin@dalecki.de>
938
939         * expr.c (add_type_assertion): Use the proper enumeration type,
940         since this is what htab_find_slot() is expecting.
941
942 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
943
944         * gcj.texi: Update copyright dates.
945
946 2005-02-02  Tom Tromey  <tromey@redhat.com>
947
948         * gcj.texi (libgcj Runtime Properties): Default library_control
949         to 'cache'.
950
951 2005-02-02  Ranjit Mathew  <rmathew@hotmail.com>
952
953         PR java/15543
954         * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
955         (modifiers) when square brackets are present in a declaration for
956         a final paramter.
957         * jv-scan.c (main): Set input_filename and input_line.
958
959 2005-02-01  Tom Tromey  <tromey@redhat.com>
960
961         PR java/19742:
962         * gjavah.c (get_field_name): Don't override name for JNI header.
963
964 2005-02-01  Roger Sayle  <roger@eyesopen.com>
965
966         * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
967         of unsigned types using iushr and lushr JVM bytecodes.
968
969 2005-02-01  Ranjit Mathew  <rmathew@hotmail.com>
970
971         PR java/19738
972         * gjavah.c (jni_print_float): Do not emit floating-point
973         initialiser for a static final field.
974         (jni_print_double): Likewise.
975
976 2005-02-01  Mark Mitchell  <mark@codesourcery.com>
977
978         Revert:
979         2005-01-31  Mark Mitchell  <mark@codesourcery.com>
980         * gjavah.c (print_field_info): Mark static data members of
981         floating-point type with "__extension__".
982
983 2005-01-31  Mark Mitchell  <mark@codesourcery.com>
984
985         * gjavah.c (print_field_info): Mark static data members of
986         floating-point type with "__extension__".
987
988 2005-02-01  Ranjit Mathew  <rmathew@hotmail.com>
989
990         PR java/9157
991         * parse.y (build_string_concatenation): Remove redundant if.
992         (patch_conditional_expr): Attempt to patch_string() the condition
993         of a ?: as well, in addition to its other operands.
994
995 2005-01-25  Tom Tromey  <tromey@redhat.com>
996
997         * Make-lang.in (java/java-tree-inline.o): Removed.
998
999 2005-01-25  Ranjit Mathew  <rmathew@hotmail.com>
1000
1001         PR java/19070
1002         * parse.y (patch_binop): Allow comparisons against NULL only
1003         if the other operand is of a reference type.
1004
1005 2005-01-24  Tom Tromey  <tromey@redhat.com>
1006
1007         * java-tree.h (gcj_abi_version): Declare.
1008         * class.c (make_class_data): Push gcj_abi_version into "next"
1009         field.  Renamed field.
1010         * decl.c (gcj_abi_version): New global.
1011         (parse_version): New function.
1012         (java_init_decl_processing): Call it.  Renamed 'next' field.
1013         Include version.h.
1014         (GCJ_BINARYCOMPAT_ADDITION): New define.
1015
1016 2005-01-24  Roger Sayle  <roger@eyesopen.com>
1017
1018         PR java/19295
1019         * jcf-write.c (generate_bytecode_insns): Conversions between
1020         integer types of the same precision shouldn't generate widening
1021         or narrowing conversion bytecodes.
1022
1023 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
1024
1025         * java-except.h, java-tree.h: Remove unused prototypes.
1026
1027 2005-01-20  Andrew Pinski  <pinskia@gcc.gnu.org>
1028
1029         PR java/18091:
1030         * jcf-write.c (perform_relocations): Don't call memcpy if source
1031         and destination are the same.
1032
1033 2005-01-17  Tom Tromey  <tromey@redhat.com>
1034
1035         * verify-impl.c (get_short): Sign extend.
1036         (get_int): Likewise.
1037
1038 2005-01-12  Ranjit Mathew  <rmathew@hotmail.com>
1039
1040         * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
1041         with TYPE_SIZE.
1042
1043 2005-01-10  Ranjit Mathew  <rmathew@hotmail.com>
1044
1045         * verify.c: Revert to the version before the BC-ABI merge.
1046
1047 2005-01-10  Ranjit Mathew  <rmathew@hotmail.com>
1048
1049         PR java/19277
1050         * check-init.c (check_init): Take care of references that do not
1051         have an explicit final variable declaration (e.g. array length
1052         access) for pre/post in/de-crement operators.
1053
1054 2005-01-08  Mark Wielaard  <mark@klomp.org>
1055
1056         * parse.y (process_imports): Allocate (and free) original_name only
1057         when not already defined.
1058         * jcf-parse.c (read_class): Free results of find_class() and
1059         lrealpath().
1060         (java_parse_file): Keep pointer to head of file_list and free when
1061         done. Free result of lrealpath().
1062
1063 2005-01-05  Tom Tromey  <tromey@redhat.com>
1064
1065         * gcj.texi (Standard Properties): java.ext.dirs is now used.
1066
1067 2004-12-20  Andrew Haley  <aph@redhat.com>
1068
1069         * typeck.c: Use fold_convert for ints and booleans.
1070
1071 2004-12-17  Andrew Haley  <aph@redhat.com>
1072
1073         PR java/18931
1074         * typeck.c (convert): Use a CONVERT_EXPR when converting to
1075         BOOLEAN_TYPE or CHAR_TYPE.
1076         (convert_to_boolean, convert_to_char) : Remove.
1077         * convert.h (convert_to_boolean, convert_to_char) : Remove.
1078         * expr.c (expand_load_internal): Do type conversion if type is not
1079         as required.
1080
1081 2004-12-13  Danny Smith  <dannysmith@users.sourceforge.net>
1082
1083         PR target/18459
1084         * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
1085         Update comment.
1086
1087 2004-12-07  Andrew Haley  <aph@redhat.com>
1088
1089         PR java/18811:
1090         * jcf-parse.c (load_class): Remove sanity test for missing inner
1091         class file.
1092
1093 2004-12-06  Tom Tromey  <tromey@redhat.com>
1094
1095         * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
1096         (java.uninstall): Likewise.
1097         (java.maintainer-clean): Likewise.
1098         (.INTERMEDIATE): Likewise.
1099         (java.install-man): Likewise.
1100         (gcj-dbtool.pod): New target.
1101         * gcj.texi (Code Generation): Document -findirect-dispatch.
1102         (libgcj Runtime Properties): Document
1103         gnu.gcj.precompiled.db.path.
1104         (Top): Link to "Invoking gcj-dbtool".
1105
1106 2004-12-06  Tom Tromey  <tromey@redhat.com>
1107
1108         PR java/14853:
1109         * java-tree.h (extract_field_decl): Declare.
1110         * parse.y (extract_field_decl): Renamed from
1111         strip_out_static_field_access_decl.  No longer static.
1112         * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
1113
1114 2004-12-03  Tom Tromey  <tromey@redhat.com>
1115
1116         * lang.c (flag_new_verifier): Define.
1117         (java_post_options): Set flag_new_verifier if indirect dispatch
1118         is being used.
1119         * lang.opt (fnew-verifier): Removed.
1120
1121 2004-12-03  Tom Tromey  <tromey@redhat.com>
1122
1123         PR bootstrap/14614:
1124         * Make-lang.in (java.install-common): Only install transformed
1125         gcjh if gcj-cross exists.
1126
1127 2004-12-03  Andrew Haley  <aph@redhat.com>
1128
1129         PR java/18812
1130         * except.c (link_handler): Patch 'outer' field of siblings of the
1131         range we're demoting.
1132
1133 2004-12-03  Andrew Haley  <aph@redhat.com>
1134
1135         PR java/18697
1136         * class.c (layout_class_method): Don't fail to override a method
1137         simply because it has DECL_ARTIFICIAL set.
1138
1139 2004-12-02  Tom Tromey  <tromey@redhat.com>
1140
1141         PR java/16675:
1142         * parse.y (craft_constructor): Special case null_pointer_node.
1143
1144 2004-12-02  Tom Tromey  <tromey@redhat.com>
1145
1146         PR java/18741:
1147         * java-gimplify.c (java_gimplify_expr): Don't call
1148         SET_EXPR_LOCATION unless wrapped tree is an expression.
1149
1150 2004-11-27  Per Bothner  <per@bothner.com>
1151
1152         * jcf-parse.c (set_source_filename):  Improvement to Andrew's fix:
1153         Fix fencepost error in 'i', which got executed one too many times.
1154         Also, fold memcpy into explicit loop, as originally intended.
1155         Also, free temporary 'buf' which otherwise leaks.
1156
1157 2004-11-27  Per Bothner  <per@bothner.com>
1158
1159         * expr.c (build_expr_wfl): Only declare last_file and last_filenode
1160         local static variables if not USE_MAPPED_LOCATION.
1161
1162 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
1163
1164         * class.c, decl.c, expr.c: Fix comment typos.
1165
1166 2004-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
1167
1168         PR java/18305
1169         * decl.c (end_java_method): Call
1170         attach_init_test_initialization_flags on all the init_decls.
1171         * parse.y (attach_init_test_initialization_flags): Move to ...
1172         * expr.c (attach_init_test_initialization_flags): here and
1173         support BIND_EXPR also.
1174         * java-tree.h (attach_init_test_initialization_flags): Prototype.
1175         * jcf-parse.c (parse_class_file): Don't disable class init
1176         optimization.
1177
1178 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1179
1180         * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
1181         in diagnostics.
1182
1183 2004-11-24  Richard Henderson  <rth@redhat.com>
1184
1185         * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
1186         vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
1187
1188 2004-11-24  Tom Tromey  <tromey@redhat.com>
1189
1190         * verify.c (defer_merging): Don't use C++-style comment.
1191         * verify.h (java_opcode): Added java_opcode_end.
1192         * class.c (build_class_ref): Remove C++ comment and old FIXME.
1193
1194         * verify-impl.c (vfy_push_type): Removed bogus "return".
1195         (initialize_stack): Use vfy_alloc and vfy_free.
1196         (verify_instructions_0): Likewise.
1197
1198         * Merged gcj-abi-2-dev-branch to trunk.
1199
1200 2004-11-24  Andrew Haley  <aph@redhat.com>
1201
1202         * jcf-parse.c (parse_class_file): Set file_start_location.
1203
1204 2004-11-10  Tom Tromey  <tromey@redhat.com>
1205
1206         * class.c (make_field_value): Don't call build_static_field_ref.
1207         (build_static_field_ref): Don't emit direct references when using
1208         indirect dispatch.
1209
1210         * gcj.texi (Invoking gij): Document -verbose.  Put -verbose and
1211         -verbose:class into man page synopsis.
1212
1213 2004-11-09  Tom Tromey  <tromey@redhat.com>
1214
1215         * expr.c (build_java_arraystore_check): Still generate check if
1216         element type is itself an array.
1217
1218 2004-11-08  Tom Tromey  <tromey@redhat.com>
1219
1220         * java-tree.h (soft_check_assignment_node): Removed.
1221         (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
1222         * decl.c (java_init_decl_processing): Don't initialize
1223         soft_check_assignment_node.
1224
1225 2004-11-05  Tom Tromey  <tromey@redhat.com>
1226
1227         * class.c (layout_class_methods): Don't add Miranda methods when
1228         using indirect dispatch.
1229
1230 2004-11-05  Bryce McKinlay  <mckinlay@redhat.com>
1231
1232         * class.c (make_class_data): Call emit_assertion_table to set the
1233         'assertion_table' field.
1234         (build_signature_for_libgcj): Move here from expr.c.
1235         (add_assertion_table_entry): New function. Callback for assertion
1236         hashtable traversal.
1237         (emit_assertion_table): New. Take class argument, and generate
1238         assertion table DECL based on the TYPE_ASSERTIONS hashtable.
1239         * decl.c (init_decl_processing): Define assertion_entry_type record.
1240         Push 'assertion_table' class field instead of 'verify'.
1241         * expr.c (type_assertion_eq): Compare 'assertion_code' field.
1242         (type_assertion_hash): Include 'assertion_code' in hash.
1243         (add_type_assertion): Rewritten. Take class and assertion_code
1244         arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
1245         (can_widen_reference_to): Use new add_type_assertion() arguments.
1246         * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
1247         JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
1248         (verify_identifier_node): Removed.
1249         (assertion_entry_type, assertion_table_type): New.
1250         (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
1251         assertion code definitions.
1252         (struct type_assertion): Add assertion_code. Rename 'source_type' and
1253         'target_type' to 'op1' and 'op2'.
1254         (add_type_assertion): Declare.
1255         (lang_printable_name_wls): Remove unused definition.
1256         * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
1257         to emit runtime assertion.
1258         (vfy_note_stack_type): Clean up non-C90 declarations.
1259         (vfy_note_local_type): Likewise.
1260         * verify.h (vfy_is_assignable_from): Declare.
1261         * verify-impl.c (is_assignable_from_slow): Remove unused function.
1262         (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
1263         instead of is_assignable_from_slow().
1264         (types_compatible): Reinstate ref_compatible() call.
1265
1266 2004-11-04  Tom Tromey  <tromey@redhat.com>
1267
1268         * class.c (build_static_field_ref): Reverted previous patch.
1269
1270         * class.c (build_static_field_ref): Don't emit direct references
1271         when using indirect dispatch.
1272
1273 2004-11-03  Tom Tromey  <tromey@redhat.com>
1274
1275         * expr.c (expand_java_arrayload): Set lhs_type_node.
1276         (expand_java_arraystore): Set rhs_type_node.
1277
1278 2004-11-02  Tom Tromey  <tromey@redhat.com>
1279
1280         * jcf-parse.c (compute_class_name): Use filename length from zip
1281         directory, not strlen.
1282
1283         * expr.c (expand_invoke): Mark new interface methods as abstract.
1284
1285 2004-11-01  Tom Tromey  <tromey@redhat.com>
1286
1287         * verify-impl.c (push_jump): Removed check for uninitialized
1288         objects.
1289         (push_exception_jump): Likewise.
1290         (handle_ret_insn): Likewise.
1291         (handle_jsr_insn): Likewise.
1292         (state_check_no_uninitialized_objects): Removed.
1293
1294         * decl.c (check_local_unnamed_variable): Recognize
1295         promoted-to-int parameters when using the new verifier.
1296         * expr.c (expand_java_arraystore): Explicitly request array type
1297         when using new verifier.
1298         (expand_java_arrayload): Likewise.
1299         (invoke_build_dtable): Don't pass object_type_node as
1300         expression argument to build_java_indirect_ref.
1301         (build_java_check_indexed_type): Do nothing.
1302         (build_java_arraystore_check): Handle case where array doesn't
1303         have array type.
1304         (build_java_array_length_access): Likewise.
1305         (expand_invoke): Handle case where interface overrides a method
1306         from Object.
1307         (pop_type_0): Always succeed for reference types.
1308         (process_jvm_instruction): Don't pop a value in a dead
1309         exception handler.
1310         (pop_arguments): Convert arguments to correct types.
1311
1312 2004-10-29  Andrew Haley  <aph@redhat.com>
1313
1314         * jcf-parse.c (give_name_to_class): Remove line that was
1315         incorrectly merged.
1316
1317 2004-10-29  Andrew Haley  <aph@redhat.com>
1318
1319         * jcf-parse.c (set_source_filename): Add code to build new sfname.
1320
1321 2004-10-20  Andrew Haley  <aph@redhat.com>
1322
1323         * decl.c (end_java_method): Don't expand if flag_syntax_only.
1324
1325 2004-10-26  Tom Tromey  <tromey@redhat.com>
1326
1327         * verify.h (vfy_notify_verified): Removed.
1328         * verify-glue.c (vfy_notify_verified): Removed.
1329
1330 2004-10-26  Tom Tromey  <tromey@redhat.com>
1331
1332         * verify-impl.c (debug_print_state): Declare `i' before code.
1333         (merge_types): Modify `t' when it is null_type.
1334
1335 2004-10-26  Tom Tromey  <tromey@redhat.com>
1336
1337         * verify-impl.c (type_print): Renamed from print.  Now static and
1338         takes an argument.
1339         (debug_print_state): Use type_print.
1340
1341 2004-10-25  Tom Tromey  <tromey@redhat.com>
1342
1343         * expr.c (build_invokeinterface): Compute correct offset for
1344         index into interface methods.
1345
1346 2004-10-20  Tom Tromey  <tromey@redhat.com>
1347
1348         * java-tree.h (verify_jvm_instructions_new): Declare.
1349
1350         * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
1351         command line.
1352
1353         * verify-impl.c (verify_instructions): Correctly handle wide
1354         types on the stack.
1355         * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
1356         (vfy_get_component_type): Strip pointer types.
1357         (vfy_find_class): Use get_type_from_signature.  Strip pointer
1358         types.
1359         Include java-except.h.
1360
1361 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
1362
1363         * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
1364         vfy_push_type_t, set_variable, add_new_state, merge_into,
1365         handle_jsr_insn, branch_prepass, check_class_constant,
1366         check_wide_constant, get_one_type, compute_static_types,
1367         verify_instructions_0): Clean up C99 declarations after statements.
1368
1369 2004-10-20  Tom Tromey  <tromey@redhat.com>
1370
1371         * verify-impl.c (merge_refs): Compare reference against iterator,
1372         not ref2.
1373
1374         * verify-glue.c (vfy_tag): Mask off resolved flag.
1375
1376 2004-10-19  Tom Tromey  <tromey@redhat.com>
1377
1378         * verify-impl.c (verify_instructions): Call vfy_note_local_type.
1379         (init_state_with_stack): Initialize `this_type' in state.
1380         (verify_method): Use debug_print.
1381         * verify-glue.c (vfy_is_primitive): Removed debugging print.
1382         (vfy_note_stack_depth): Reverted last patch.
1383         (vfy_note_stack_type): Note pointer to Object, not Object.
1384         (vfy_note_local_type): Likewise.
1385
1386         * verify.h (vfy_note_instruction_seen): Declare.
1387         * verify-glue.c (verify_jvm_instructions_new): Set
1388         BCODE_EXCEPTION_TARGET on target instruction.
1389         (vfy_note_instruction_seen): New function.
1390         * verify-impl.c (FLAG_INSN_SEEN): New define.
1391         (verify_instructions_0): Set flag on instruction.  Save state for
1392         PC=0 later.
1393         (verify_instructions): Call vfy_note_instruction_seen.
1394
1395         * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
1396         (verify_jvm_instructions_new): Call method_init_exceptions,
1397         add_handler, and handle_nested_ranges.
1398         * verify-impl.c (verify_method): Return 1 on success.
1399         (verify_instructions_0): Save the state at PC=0.
1400
1401         * verify-impl.c (init_type_from_class): Set is_resolved and
1402         ref_next on new ref_intersection.
1403         (init_type_from_string): Likewise.
1404
1405 2004-10-15  Bryce McKinlay  <mckinlay@redhat.com>
1406
1407         * expr.c (expand_bytecode): Use verify_jvm_instructions_new
1408         if flag_new_verifier is set.
1409         * java-tree.h (flag_new_verifier): Declare.
1410         * lang.opt (fnew-verifier): New option.
1411         * verify-impl.c: Work around namespace pollution by undef'ing
1412         'current_class'.
1413         (struct verifier_context): Make 'bytecode' const.
1414         (verify_fail_pc): Pass -1 PC argument to vfy_fail.
1415         (types_compatible): For the BC-ABI, always consider reference types
1416         compatible.
1417         (check_class_constant): Use vfr->current_class.
1418         (check_constant): Likewise.
1419         (check_wide_constant): Likewise.
1420         (check_field_constant): Check for 'L' at start of type name.
1421         (get_one_type): Return pointer instead of type. Set type result in
1422         caller via passed type pointer.
1423         (compute_argument_types): Update to use new get_one_type arguments.
1424         (compute_return_type): Likewise.
1425         (make_verifier_context): New. Allocate and initialize 'vfr'.
1426         (free_verifier_context): New. Free 'vfr' and its contents.
1427         (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
1428         and free_verifier_context.
1429
1430 2004-10-15  Tom Tromey  <tromey@redhat.com>
1431
1432         * verify-glue.c (vfy_note_local_type): Mark argument as unused.
1433         * verify.h (vfy_fail): Fixed formatting.
1434
1435         * verify-impl.c (vfr): Fixed comment formatting.
1436         (collapse_type): New function.
1437         (verify_instructions): Notify compiler about type map.
1438         * verify.h (vfy_note_stack_depth): Updated.
1439         (vfy_note_stack_type): Likewise.
1440         (vfy_note_local_type): Likewise.
1441         (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
1442         Declare.
1443         * verify-glue.c (vfy_note_stack_depth): Correctly size type
1444         state.  Added `method' argument.
1445         (vfy_note_stack_type): Renamed from vfy_note_type.  Added `method'
1446         argument.
1447         (vfy_note_local_type): New function.
1448         (vfy_unsuitable_type): Likewise.
1449         (vfy_return_address_type): Likewise.
1450         (vfy_null_type): Likewise.
1451
1452         * verify.h (VFY_IN_GCC): Removed.
1453         (VFY_WANT_TYPEMAP): Removed.
1454         * verify-impl.c (verify_instructions_0): Removed useless "\".
1455         (struct state) <next>: Uncomment.
1456
1457 2004-10-13  Bryce McKinlay  <mckinlay@redhat.com>
1458
1459         * verify-impl.c: Formatting fixes. Reformat C++-style comments to
1460         C-style.
1461
1462 2004-10-06  Bryce McKinlay  <mckinlay@redhat.com>
1463
1464         * Make-lang.in (verify.o): Re-enabled this target.
1465         * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
1466         (vfy_get_interface): Likewise.
1467         (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
1468         * verify.h (verify_jvm_instructions_new): Declare.
1469         * verify-impl.c (free_state): Temporarily comment out unused
1470         function.
1471
1472 2004-10-06  Tom Tromey  <tromey@redhat.com>
1473
1474         * java-tree.h (JV_STATE_READ): New enum value.
1475
1476 2004-10-06  Bryce McKinlay  <mckinlay@redhat.com>
1477
1478         * verify.h: New file.
1479
1480 2004-10-05  Bryce McKinlay  <mckinlay@redhat.com>
1481
1482         * verify-impl.c, verify-glue.c, verify.h: New files.
1483         * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
1484
1485 2004-09-24  Andrew Haley  <aph@redhat.com>
1486
1487         * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
1488         for a slot if it's of pointer type.
1489
1490 2004-09-14  Tom Tromey  <tromey@redhat.com>
1491
1492         * class.c (make_class_data): Correctly initialize "state" field.
1493         Initialize "engine" field.
1494         * decl.c (java_init_decl_processing): Add "engine" field.
1495
1496 2004-09-10  Andrew Haley  <aph@redhat.com>
1497
1498         PR java/12760
1499         * expr.c (build_invokeinterface): Use fast method for interface
1500         dispatch.
1501         * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
1502         JTI_ITABLE_PTR_TYPE.
1503         (struct lang_type): Add  itable_methods, itable_decl, itable_syms_decl.
1504         (emit_symbol_table): Add new arg, element_size.
1505         * decl.c (java_init_decl_processing): Initialize Class.itable.
1506         * class.c (GEN_TABLE): New macro.
1507         (gen_indirect_dispatch_tables): Use it.  Add itable.
1508         (make_class_data): Add new arg for emit_symbol_table().
1509         Emit itable.
1510         (add_miranda_methods): Make sure search_class has been parsed.
1511         (emit_symbol_table): Add new arg, element_size.
1512
1513 2004-09-06  Andrew Haley  <aph@redhat.com>
1514
1515         * verify.c (merge_types): Return Object for all merges of
1516         interfaces.
1517         * expr.c (add_type_assertion): Don't generate assertions when
1518         source type is array of Object.
1519
1520 2004-09-03  Andrew Haley  <aph@redhat.com>
1521
1522         * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
1523
1524         * lang.c (java_post_options): Force flag_verify_invocations if
1525         we're not using indirect dispatch.
1526
1527         * expr.c (pop_type_0): Move test for interfaces before call to
1528         can_widen_reference_to().
1529         (build_signature_for_libgcj): Remove generation of canonical array
1530         type.
1531         (add_type_assertion): Canonicalize both arrays.
1532         Don't assert that type X can be assigned to Object.
1533         Don't assert that type X an be assigned to type X.
1534         Don't assert that Object can be assigned to type X.
1535         (can_widen_reference_to): Warn whenever we generate an assertion.
1536         (process_jvm_instruction): Use throwable_type_node for the type of
1537         an exception class.
1538
1539 2004-09-01  Andrew Haley  <aph@redhat.com>
1540
1541         * decl.c (java_init_decl_processing): Change
1542         verify_identifier_node to "__verify".
1543         * expr.c (add_type_assertion): Use verify_identifier_node for name.
1544         * java-tree.h (verify_identifier_node): Change to "__verify".
1545
1546         * expr.c (build_signature_for_libgcj): New function.
1547         (add_type_assertion): Use it to construct signatures for
1548         source_type and target_type.
1549
1550 2004-08-27  Andrew Haley  <aph@redhat.com>
1551
1552         * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
1553         (verify_identifier_node): New.
1554         (TYPE_VERIFY_METHOD): New.
1555         (struct type_assertion): New type.
1556         * expr.c (type_assertion_eq): New function.
1557         (type_assertion_hash): New function.
1558         (add_type_assertion): New function.
1559         (can_widen_reference_to): Call add_type_assertion().
1560         * decl.c (java_init_decl_processing): Add verify_identifier_node.
1561         * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
1562         (finish_class): Output TYPE_VERIFY_METHOD (type).
1563
1564         * decl.c (end_java_method): Nullify unused fields.
1565
1566 2004-08-17  Andrew Haley  <aph@redhat.com>
1567
1568         * verify.c (defer_merging): Quieten.
1569         * jcf-parse.c (load_class): Only try to open a class file if it's
1570         java.lang.Object or if it's part of the current compilation.
1571         Check that the class we just tried to load is the class we just
1572         loaded.  Quieten.
1573         (java_parse_file): Set flag_verify_invocations off if we're
1574         compiling from .class.
1575         (parse_zip_file_entries): Abort if we try to read a dummy class.
1576         * expr.c (can_widen_reference_to): Quieten.
1577         (build_invokevirtual): Abort if we try to invokevirtual an
1578         interface.
1579         (expand_invoke): Don't build a non-interface call to an interface.
1580         (build_instanceof): Don't do premature optimization if
1581         flag_verify_invocations is not set.
1582         * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
1583         from superclass.
1584         (build_static_field_ref): Add correct type conversion for
1585         field_address.
1586         (add_miranda_methods): Disable generation of Miranda methods for
1587         dummy classes.
1588         (layout_class_method): Don't complain about non-static method
1589         overrides static method with dummy classes.
1590
1591 2004-08-13  Tom Tromey  <tromey@redhat.com>
1592
1593         * class.c (build_static_field_ref): Re-enable atable lookups for
1594         static fields.
1595
1596         * parse.y (strip_out_static_field_access_decl): Indentation fix.
1597
1598 2004-08-11  Tom Tromey  <tromey@redhat.com>
1599
1600         * gcj.texi (libgcj Runtime Properties): Document new properties.
1601
1602 2004-08-06  Andrew Haley  <aph@redhat.com>
1603
1604         * jcf-parse.c (load_class): Check that we really have loaded the
1605         class we're looking for.
1606
1607 2004-07-19  Andrew Haley  <aph@redhat.com>
1608
1609         * verify.c (verify_jvm_instructions): Comment change only.
1610
1611         * typeck.c (build_java_array_type): Add size field to array name.
1612
1613         * java-tree.h (LOCAL_SLOT_P): New.
1614         (update_aliases): Add PC argument.
1615         (pushdecl_function_level): New function.
1616
1617         * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
1618         MODIFY_EXPR, and SAVE_EXPR.
1619         (java_gimplify_modify_expr): New function.
1620
1621         * expr.c (push_type_0): Call find_stack_slot() to create temporary.
1622         (expand_iinc): Pass PC to update_aliases().
1623         (STORE_INTERNAL): Likewise.
1624         (process_jvm_instruction): Likewise.
1625
1626         * decl.c (base_decl_map): New variable.
1627         (uniq): New variable.
1628         (update_aliases): Rewrite with more thorough checking.
1629         (debug_variable_p): New function.
1630         (push_jvm_slot): Don't initialize local variable.  Don't pushdecl.
1631         (check_local_named_variable): Delete whole function.
1632         (initialize_local_variable): New function.
1633         (check_local_unnamed_variable): Add checks and comments.
1634         (find_local_variable): Rewrite.
1635         (java_replace_reference): New function.
1636         (function_binding_level): New variable.
1637         (pushdecl_function_level): New function.
1638         (maybe_pushlevels): Set DECL_LOCAL_END_PC.
1639         (maybe_pushlevels): Call pushdecl() on each of the new decls.
1640         (start_java_method): Reset uniq.  Create base_decl_map.  Set
1641         function_binding_level.
1642         (end_java_method): Null unused fields to save memory.
1643
1644 2004-06-29  Andrew Haley  <aph@redhat.com>
1645
1646         * except.c (expand_start_java_handler): Push a new binding level.
1647         Don't build a TRY_CATCH_EXPR now, we'll do it later.  Call
1648         register_exception_range() to register where we'll do it.
1649         (expand_end_java_handler): Remove old bogus code.  Replace with
1650         new logic that simply builds TRY_CATCH_EXPRs and inserts them at
1651         the top of the expression we're curently building.
1652         (maybe_end_try): Delete.
1653         * decl.c (binding_level.exception_range): New field.
1654         (clear_binding_level): Add field exception_range.  Reformat.
1655         (poplevel): Call expand_end_java_handler().
1656         (poplevel): Call java_add_stmt only if functionbody is false.
1657         (maybe_poplevels): Don't call maybe_end_try() from here.
1658         (end_java_method): Clear no longer used trees in function decl.
1659         (register_exception_range): New function.
1660         * java-tree.h (register_exception_range, struct eh_range): Declare.
1661
1662 2004-06-22  Andrew Haley  <aph@redhat.com>
1663
1664         * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
1665         the otable.
1666         * check-init.c (get_variable_decl): Teach check-init about
1667         FIELD_DECLs addressed via the otable.
1668         * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
1669         CLASS_PARSED_P.
1670
1671 2004-05-28  Andrew Haley  <aph@redhat.com>
1672
1673         * jcf-parse.c (load_class): Don't try to read a class that we've
1674         already read.
1675
1676         * expr.c (build_invokeinterface): Use the old-fashioned way of
1677         doing indirect dispatch: look up interfaces by name.
1678         * java-tree.h (enum java_tree_index): Add
1679         JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
1680         * decl.c (java_init_decl_processing): Add
1681         soft_lookupinterfacemethodbyname_node.
1682
1683         * gjavah.c (print_method_info): Final methods have vtable entries,
1684         so gjavah needs to output them.
1685         * class.c (layout_class_method): Generate vtable entries for final
1686         methods.
1687         * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
1688         dispatch, even if a method is final.
1689
1690 2004-05-25  Andrew Haley  <aph@redhat.com>
1691
1692         * class.c (build_symbol_entry): Convert the names of constructors
1693         to init_identifier_node when generating an entry for the indirect
1694         dispatch table.
1695
1696         * expr.c (build_known_method_ref): Generate indirect calls for
1697         all methods marked DECL_EXTERNAL or TREE_PUBLIC.
1698
1699 2004-05-24  Andrew Haley  <aph@redhat.com>
1700
1701         * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
1702         atable element is of the right type.
1703
1704         * class.c (build_static_field_ref): Cast pointer to correct type
1705         for field.
1706
1707 2004-04-20  Bryce McKinlay  <mckinlay@redhat.com>
1708
1709         * Merged with HEAD as of 20040514. Diff against
1710         gcj-abi-2-merge-20040514.
1711
1712 2004-04-16  Andrew Haley  <aph@redhat.com>
1713
1714         * verify.c (check_pending_block): Disable subroutine checks.
1715         (defer_merging): New function.
1716         (merge_types): If types are dummy, use defer_merging to combine them.
1717         (verify_jvm_instructions): If invocation is invokeinterface and
1718         target is dummy, assume target really is an interface.
1719
1720         * parse.y (patch_invoke): Break out call to java_create_object.
1721
1722         * lang.c (flag_verify_invocations): New.
1723
1724         * jcf-parse.c (load_class): If we've already failed to load a
1725         class, don't try again.
1726         (load_class): If we can't find a .class file, don't fail, but emit
1727         a warning.
1728         (parse_class_file): Don't act on dummy methods.
1729
1730         * java-tree.h (flag_verify_invocations): New.
1731         (TYPE_DUMMY): New.
1732         (lang_type.dummy_class): New field.
1733         (java_create_object): New function.
1734         (METHOD_DUMMY): New.
1735
1736         * expr.c (build_field_ref): Widen field offset.
1737         (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
1738         that each of its elements is compatible with the one we're
1739         popping.
1740         (pop_type_0): Issue a warning to say that we need to generate a
1741         runtime check.
1742         (java_create_object): New function.
1743         (build_field_ref): Only generate hard refs if we're not using
1744         indirect dispatch.
1745         (expand_java_field_op): If we're using !verify_invocations and we
1746         see a missing field, generate a decl for it.
1747
1748         (expand_invoke): If a class doesn't have the method we seek and
1749         we're using !flag_verify_invocations, generate a decl for the
1750         method now.
1751
1752         (build_known_method_ref): Always use indirect dispatch via the
1753         atable for static methods.
1754
1755         (expand_java_NEW): Break out object creation into new function,
1756         java_create_object.
1757
1758         (can_widen_reference_to): Issue a warning to say that we need to
1759         generate a runtime check.
1760
1761         * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
1762         (make_method_value): Also use index for interfaces.
1763         (make_class_data): Skip dummy field for inherited data.
1764         Don't build method array for dummy methods.
1765         Set size_in_byte to -1 when using inirect dispatch
1766         Don't build a hard class ref if we don't have a hard ref to our
1767         superclass, or if we're using inirect dispatch.
1768         Null out dispatch tables.
1769
1770         (layout_class_method): Don't complain about non-static method
1771         overrides static method is method is artificial.
1772
1773         (build_static_field_ref): Disable atable references to static
1774         fields for the time being.
1775
1776         (layout_class_methods): Check for CLASS_INTERFACE as
1777         well as CLASS_ABSTRACT.
1778
1779 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1780
1781         * class.c (make_class_data): Don't check flag_inline_functions.
1782         * lang.c (flag_really_inline): Remove unused flag.
1783         (java_handle_option): Don't set it here.  Remove special handling
1784         of flag_inline_functions for Java.
1785         (java_init): Don't set flag_inline_trees here.  Already done...
1786         (java_post_options): ...here.  Don't clear flag_inline_functions.
1787
1788 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1789
1790         * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
1791         (java_gimplify_exit_block_expr): New function.
1792         (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
1793         LABELED_BLOCK_EXPR.
1794         * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
1795         (EXIT_BLOCK_EXPR): Likewise.
1796         * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
1797         (LABELED_BLOCK_BODY): Likewise.
1798         (EXIT_BLOCK_LABELED_BLOCK): Likewise.
1799         * jcf-write.c (generate_bytecode_insns): Don't handle the unused
1800         EXIT_BLOCK_RETURN operand.  Use EXIT_BLOCK_LABELED_BLOCK instead of
1801         TREE_OPERAND.
1802         * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
1803         (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
1804         EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND.  Don't handle the
1805         second operand of EXIT_BLOCK_EXPR.
1806         * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
1807         TREE_OPERAND.
1808         (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
1809
1810 2004-11-23  Ben Elliston  <bje@au.ibm.com>
1811
1812         * xref.h (xref_flag_value): Remove.
1813         (xref_set_data, xref_get_data): Likewise.
1814         (xref_set_current_fp): Likewise.
1815         (XREF_NONE): Likewise.
1816         (XREF_GET_DATA): Likewise.
1817         * xref.c (xref_flag_value): Remove.
1818         (xref_set_data, xref_get_data): Likewise.
1819         (xref_set_current_fp): Likewise.
1820
1821 2004-11-23  Ben Elliston  <bje@au.ibm.com>
1822
1823         * gjavah.c (output_directory): Make static.
1824         (temp_directory): Likewise.
1825
1826 2004-11-15  Tom Tromey  <tromey@redhat.com>
1827
1828         * decl.c (instn_ptr_type_node): Removed.
1829         (lineNumbers_ptr_type_node): Removed.
1830         (jint_type): Removed.
1831         (jint_ptr_type): Removed.
1832
1833 2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
1834
1835         PR java/15576
1836         * check-init.c (check_init): Ignore DECL_EXPR.
1837         * expr.c (always_initialize_class_p): Reenable.
1838         (build_class_init): Use a variable to store the decl.  Also use
1839         boolean_false_node instead of integer_zero_node.
1840         * parse.y (attach_init_test_initialization_flags): Add a decl_expr
1841         to the block.
1842
1843 2004-11-08  Tom Tromey  <tromey@redhat.com>
1844
1845         PR java/16843:
1846         * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
1847         generating a JNI header.
1848         (print_field_info): Handle JNI headers.
1849         (jni_print_float): Likewise.
1850         (jni_print_double): Likewise.
1851
1852 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
1853
1854         * decl.c (end_java_method): Remove duplicated code.
1855
1856 2004-11-06  Zack Weinberg  <zack@codesourcery.com>
1857             Gerald Pfeifer  <gerald@pfeifer.com>
1858
1859         * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
1860         as well.
1861
1862 2004-11-02  Bryce McKinlay  <mckinlay@redhat.com>
1863
1864         PR java/17265
1865         * class.c: Reinstate 2004-08-18 patch.
1866         (make_local_function_alias): Don't create an alias for extern (native)
1867         functions.
1868
1869 2004-10-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1870
1871         PR java/17265
1872         * class.c (make_local_function_alias): Revert 2004-08-18 change.
1873         (make_method_value): Likewise.
1874
1875 2004-10-21  Andrew Haley  <aph@redhat.com>
1876
1877         PR java/18091:
1878         * jcf-parse.c (set_source_filename): Add code to build new sfname.
1879
1880 2004-10-20  Andrew Haley  <aph@redhat.com>
1881
1882         * decl.c (end_java_method): Don't expand if flag_syntax_only.
1883         Remove duplicated code block.
1884
1885 2004-10-18  Steven Bosscher  <stevenb@suse.de>
1886
1887         * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
1888         New rules to work around old Bison warnings.
1889
1890 2004-10-17  Steven Bosscher  <stevenb@suse.de>
1891
1892         * class.c (ident_subst): Always alloca buffer.
1893         * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
1894         opcode after including javaop.def.
1895         * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
1896         conditional expression that exits, to avoid warnings.
1897         * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
1898         a user of an extension.
1899         * win32-host.c: Move check down to have non-empty file when
1900         WIN32 is not defined.
1901
1902         * Make-lang.in (java-warn): Add STRICT_WARN.
1903         (java/jcf-io.o-warn): Don't have Werror for this file.
1904         * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
1905
1906 2004-10-16  Hans-Peter Nilsson  <hp@bitrange.com>
1907
1908         * expr.c (expr_add_location): Move declaration to before all
1909         statements.
1910         * parse.y (java_expand_classes): Ditto.
1911         * lex.c (java_peek_unicode): Ditto.
1912
1913 2004-10-16  Ranjit Mathew  <rmathew@hotmail.com>
1914
1915         * check-init.c: Use %<, %> and %q for quoting in diagnostics,
1916         if possible, else convert `foo' to 'foo'.
1917         * class.c: Likewise.
1918         * decl.c: Likewise.
1919         * expr.c: Likewise.
1920         * jcf-io.c: Likewise.
1921         * jcf-parse.c: Likewise.
1922         * lang.c: Likewise.
1923         * lex.c: Likewise.
1924         * parse.h: Likewise.
1925
1926 2004-10-16  Ranjit Mathew  <rmathew@hotmail.com>
1927
1928         * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
1929         rename parameter 'msg' to 'msgid' in function declaration.
1930         (issue_warning_error_from_context): Likewise.
1931         (yyerror): Rename parameter 'msg' to 'msgid'.
1932         (all over): Use new quoting style for diagnostics.
1933
1934 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
1935
1936         * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
1937         jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
1938         Update copyright.
1939
1940 2004-10-14  Matt Austern  <austern@apple.com>
1941
1942         * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
1943         pointer_set_t* now.
1944
1945 2004-10-13  Tom Tromey  <tromey@redhat.com>
1946
1947         PR java/15578:
1948         * lang.opt (--extdirs): Document.
1949         * jvspec.c (lang_specific_driver): Recognize -encoding and
1950         -extdirs.
1951
1952 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
1953
1954         * parse.y (issue_warning_error_from_context): Use va_list *
1955         instead of va_list parameter.
1956         (parse_error_context): Update call.
1957         (parse_warning_context): Likewise.
1958
1959 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
1960
1961         * parse.y, parse-scan.y: Add list of diagnostic messages to
1962         insulate translation template from version of yacc/bison used
1963         to compile the grammar.
1964
1965 2004-10-05  Ranjit Mathew  <rmathew@hotmail.com>
1966
1967         Prepare for %q, %< and %> in diagnostic message strings.
1968         * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
1969         Name second parameter 'msgid'.
1970         * parse.y: Additionally include pretty-print.h and diagnostic.h.
1971         (issue_warning_error_from_context): Use pretty-printer functions
1972         instead of vsprintf for constructing formatted messages. Rename
1973         parameter 'msg' to 'msgid'.
1974         (parse_error_context): Rename parameter 'msg' to 'msgid'.
1975         (parse_warning_context): Likewise.
1976
1977 2004-10-05  Andrew Haley  <aph@redhat.com>
1978
1979         PR java/17779
1980         * jcf-parse.c (parse_zip_file_entries): If a class has a
1981         superclass and a TYPE_SIZE of zero, lay it out.
1982
1983 2004-09-30  Andrew Haley  <aph@redhat.com>
1984
1985         PR java/17733
1986         * jcf-parse.c (compute_class_name): Rewrite.
1987
1988 2004-10-01  Jan Hubicka  <jh@suse.cz>
1989
1990         * java.c (java_expand_body): Update call of tree_rest_of_compilation.
1991
1992 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
1993
1994         * lex.c: Fix a comment typo.
1995
1996 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
1997
1998         * java-tree.h: Fix a comment typo.
1999
2000 2004-09-30  Per Bothner  <per@bothner.com>
2001
2002         Simplify lexer.  Implement --enable-mapped-location support.
2003         * jcf-parse.c (parse_class_file):  Use linemap_line_start.
2004         (parse_source_file_1): Pass filename as extra parameter, so we can call
2005         linemap_add and set input_location here, rather than in both callers.
2006         (read_class): Pass copied filename to parse_source_file_1.
2007         Don't initialize wfl_operator - only needed for source compilation.
2008         (read_class, jcf_parse):  Call linemap_add with LC_LEAVE.
2009         * lex.h:  Remove a bunch of debugging macros.
2010         * lex.h (struct_java_line, struct java_error):  Remove types.
2011         (JAVA_COLUMN_DELTA):  Remove - use java_lexer.next_colums instead.
2012         (struct java_lc_s):  Remove prev_col field.
2013         (struct java_lexer):  New fields next_unicode, next_columns, and
2014         avail_unicode.  New position field, and maybe token_start field.
2015         Don't need hit_eof field - use next_unicode == -1 instead.
2016         (JAVA_INTEGERAL_RANGE_ERROR):  Rename to JAVA_RANGE_ERROR.
2017         (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR):  Update accordingly.
2018         * parse.h:  Various changes for USE_MAPPED_LOCATION.
2019         (EXPR_WFL_EMIT_LINE_NOTE): XXX
2020         (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
2021         (struct parser_ctxt):  New file_start_location field.
2022         Remove p_line, c_line fields since we no longer save lines.
2023         Remove elc, lineno, and current_jcf fields - no longer used.
2024         * parse.y:  Updates for USE_MAPPED_LOCATION and new lexer.
2025         Don't use EXPR_WFL_ADD_COL since that isn't trivial with
2026         source_location and is probably not needed anymore anyway.
2027         Use new expr_add_Location function.
2028         (SET_EXPR_LOCATION_FROM_TOKEN):  New convenience macro.
2029         (java_pop_parser_context):  Minor cleanup.
2030         (java_parser_context_save_global, java_parser_context_restore_global,
2031         java_pop_parser_context):  Save/restore input_location as a unit.
2032         (issue_warning_error_from_context):  If USE_MAPPED_LOCATION take
2033         a source_location instead of a wfl context node.
2034         (check_class_interface_creation):  input_filename is not addressable.
2035         (create_artificial_method):  Calling java_parser_context_save_global
2036         and java_parser_context_restore_global is overkill.  Instead,
2037         temporarily set input_location from class decl.
2038         (java_layout_seen_class_methods): Set input_location from method decl.
2039         (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
2040         (finish_loop_body):  Likewise.
2041         * lex.c: Updates for USE_MAPPED_LOCATION.  Use build_unknwon_wfl.
2042         (java_sprint_unicode):  Take a character, not index in line.
2043         (java_sneak_uncode):  Replaced by java_peek_unicode.
2044         (java_unget_unicode):  No longer used.
2045         (java_allocate_new_line. java_store_unicode):  Removed, since we
2046         no longer remember "lines".
2047         (java_new_lexer):  Update for new data structures.
2048         (java_read_char):  Move unget_value checking to java_read_unicode.
2049         (java_get_unicode, java_peek_unicode, java_next_unicode): New more
2050         efficient functions that are used directly when lexing.
2051         (java_read_unicode_collapsing_terminators):  No longer needed.
2052         (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
2053         Re-organize to use java_peek_unicode to avoid java_unget_unicode.
2054         (java_parse_escape_sequence):  Rewrite to be simpler / more efficient.
2055         (do_java_lex):  Lots of movings around to avoid java_unget_unicode,
2056         combine switch branches, and test for common token kinds earlier.
2057         (java_lex_error):  Rewrite.
2058         * jv-scan.c (expand_location): New function, copied from tree.c.
2059         (main): Set ctxp->filename instead of setting input_filename directly.
2060
2061 2004-09-30  Per Bothner  <per@bothner.com>
2062
2063         More cleanup for --enable-mapped-location.
2064         * class.c (push_class):  If USE_MAPPED_LOCATION don't set
2065         input_location here.  Instead do it in give_name_to_class.
2066         (build_class_ref):  Set DECL_ARTIFICIAL, for the sake of dwarf2out.
2067         * expr.c (expand_byte_code): Call linemap_line_start.
2068         * expr.c (build_expr_wfl):  If USE_MAPPED_LOCATION, change final
2069         parameters to a source_location.  Don't need EXPR_WFL_FILENAME_NODE.
2070         (expr_add_location):  New function, if USE_MAPPED_LOCATION.
2071         * class.c (maybe_layout_super_class):  Adjust build_expr_wfl call
2072         to USE_MAPPED_LOCATION case.
2073
2074         * java-tree.h (JAVA_FILE_P, ZIP_FILE_P):  Remove unused macros.
2075         * jcf-parse.c (java_parse_file): Don't set input_filename.
2076         Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
2077         Create a list of TRANSLATION_UNIT_DECL.
2078         (current_file_list):  Is now a TRANSLATION_UNIT_DECL chain.  The
2079         reason is so we can set a DECL_SOURCE_LOCATION for each file.
2080         (java_parse_file):  Don't set unused ZIP_FILE_P, JAVA_FILE_P..
2081         Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
2082         (file_start_location):  New static.
2083         (set_source_filename):  Avoid extra access to input_filename macro.
2084         Concatenate new name with class's package prefix.
2085         (set_source_filename, give_name_to_class): Update.
2086         (give_name_to_class):  Set class's "line 0" input_location here.
2087         (parse_class_file):  Set input_location as a unit.
2088
2089         * jcf-parse.c (load_class): Sanity test if missing inner class file.
2090
2091 2004-09-29  Per Bothner  <per@bothner.com>
2092
2093         * java-tree.h:  Redefine some macros and add some declaration
2094         to handle the USE_MAPPED_LOCATION case.
2095         * parse.h (EXPR_WFL_QUALIFICATION):  Use operand 1, not 2.
2096         * java-tree.h (EXPR_WFL_FILENAME_NODE):  Use operand 2, not 1.
2097         * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
2098         USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
2099
2100         * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
2101         * decl.c (finish_method, java_add_stmt): Likewise.
2102         * java-gimplify.c (java-gimplify.c):  Likewise.
2103         * jcf-write.c (generate_bytecode_insns):  Likewise.
2104         * lang.c (java_post_options): Likewise - call linemap_add.
2105
2106 2004-09-29  Andrew Haley  <aph@redhat.com>
2107
2108         PR java/17007
2109         * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
2110         result of TRUNC_MOD_EXPR.
2111         (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
2112         * decl.c (java_init_decl_processing): Mark
2113         soft_lookupinterfacemethod_node and soft_instanceof_node pure.
2114
2115 2004-09-28  Tom Tromey  <tromey@redhat.com>
2116
2117         PR java/15710:
2118         * class.c (add_miranda_methods): Load superinterface if not
2119         already loaded.
2120
2121 2004-09-28  Andrew Haley  <aph@redhat.com>
2122
2123         PR java/17586
2124         * jcf-parse.c (load_class): Don't try to read a class that we've
2125         already read.
2126
2127 2004-09-28  Andrew Haley  <aph@redhat.com>
2128
2129         * jcf-parse.c (load_class): Back out previous broken patch.
2130
2131 2004-09-28  Andrew Haley  <aph@redhat.com>
2132
2133         PR java/17586
2134         * jcf-parse.c (load_class): Don't try to read a class that we've
2135         already read.
2136         Check that we really did read the right class.
2137
2138 2004-09-25  Tom Tromey  <tromey@redhat.com>
2139
2140         PR java/17500:
2141         * parse.y (create_artificial_method): Use add_method_1.
2142
2143 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
2144
2145         * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
2146         comment typos.
2147         * gcj.texi: Fix typos.
2148
2149 2004-09-24  Tom Tromey  <tromey@redhat.com>
2150
2151         PR java/15656:
2152         * parse.y (class_instance_creation_expression): Set `$$' to NULL
2153         in error parts of rule.
2154         (unary_expression): Don't call error_if_numeric_overflow when $1
2155         is NULL.
2156
2157 2004-09-24  Tom Tromey  <tromey@redhat.com>
2158
2159         PR java/16789:
2160         * parse.y (resolve_qualified_expression_name): Set
2161         CAN_COMPLETE_NORMALLY on first call when chaining static calls.
2162         * expr.c (force_evaluation_order): Check for empty argument list
2163         after stripping COMPOUND_EXPR.
2164
2165 2004-09-23  Andrew Haley  <aph@redhat.com>
2166
2167         PR java/16927:
2168         * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
2169         COND_EXPRs.
2170
2171 2004-09-23  Tom Tromey  <tromey@redhat.com>
2172
2173         PR java/17329:
2174         * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
2175         where operand is null.
2176
2177 2004-09-23  Tom Tromey  <tromey@redhat.com>
2178
2179         PR java/17380:
2180         * parse.y (not_accessible_p): Allow access to protected members
2181         even when class is not static.
2182
2183 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2184
2185         * Make-lang.in: Revert the gcc-none.o change.
2186
2187 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
2188
2189         * parse.y (patch_anonymous_class): VEC_space returns true if there
2190         is space.
2191
2192 2004-09-21  Matt Austern  <austern@apple.com>
2193
2194         Fix bootstrap.
2195         * gjavah.c (free_method_name_list): Fix function definition so
2196         it's a proper C prototype.
2197
2198 2004-09-21  Tom Tromey  <tromey@redhat.com>
2199
2200         PR java/17575:
2201         * gjavah.c (free_method_name_list): New method.
2202         (main): Call it.
2203
2204 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
2205             Zack Weinberg  <zack@codesourcery.com>
2206
2207         * java-tree.def: Use tree_code_class enumeration constants
2208         instead of code letters.
2209         * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
2210         new tree-class enumeration constants.
2211
2212 2004-09-13  Tom Tromey  <tromey@redhat.com>
2213
2214         PR java/17216:
2215         * class.c (layout_class_method): Put synthetic methods into the
2216         vtable.
2217
2218 2004-09-11  Andrew Pinski  <apinski@apple.com>
2219
2220         * Make-lang.in (java/ggc-none.c): Change dependency
2221         for ggc.h into $(GGC_H).
2222
2223 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
2224
2225         * Make-lang.in (java/win32-host.o): Add dependency on
2226         coretypes.h.
2227         * win32-host.c: Add includes for coretypes.h, jcf.h
2228
2229 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
2230
2231         * Make-lang.in (GCJH_OBJS): Change dependency from
2232         ggc-none.o to java/ggc-none.o
2233         (JCFDUMP_OBJS): Likewise.
2234         (java/ggc-none.o): New target.
2235
2236 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
2237
2238         * boehm.c (get_boehm_type_descriptor):  Adjust build_int_cst calls.
2239         * class.c (build_utf8_ref, build_static_field_ref,
2240         make_field_value, make_method_value, get_dispatch_table,
2241         make_class_data, emit_symbol_table, emit_catch_table): Likewise.
2242         * constants.c (get_tag_node, build_ref_from_constant_pool,
2243         build_constants_constructor): Likewise.
2244         * decl.c (java_init_decl_processing): Likewise.
2245         * expr.c (build_java_array_length_access, build_newarray,
2246         expand_java_multianewarray, expand_java_pushc, expand_iinc,
2247         build_java_binop, build_field_ref, expand_java_add_case,
2248         expand_java_call, build_known_method_ref, build_invokevirtual,
2249         build_invokeinterface, build_jni_stub): Likewise.
2250         * java-gimplify.c (java_gimplify_new_array_init): Likewise.
2251         * jcf-parse.c (get_constant): Likewise.
2252         * lex.c (do_java_lex): Likewise.
2253         * parse.y (patch_binop, patch_unaryop, patch_cast,
2254         build_newarray_node, patch_newarray): Likewise.
2255         * resource.c (compile_resource_data): Likewise.
2256         * typeck.c (build_prim_array_type): Likewise.
2257
2258 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
2259
2260         * decl.c (java_init_decl_processing): Adjust
2261         initialize_sizetypes call.
2262
2263 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
2264
2265         * jv-scan.c (fancy_abort): Add.
2266
2267 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
2268
2269         * expr.c (build_java_arrayaccess): Use convert to change
2270         len's type.
2271
2272 2004-08-19  Bryce McKinlay  <mckinlay@redhat.com>
2273
2274         * class.c (make_local_function_alias): Allocate extra space for 'L'
2275         in name buffer. Reported by Thomas Neumann.
2276
2277 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
2278
2279         * parse.h (JAVA_RADIX10_FLAG): Rename to ...
2280         (JAVA_NOT_RADIX10_FLAG): ... here.  Invert meaning.
2281         * lex.c (do_java_lex): Adjust.
2282         (error_if_numeric_overflow): Likewise.
2283
2284 2004-08-18  Andrew Pinski  <apinski@apple.com>
2285
2286         * class.c (make_local_function_alias): Only make a new decl if we
2287         support alias attribute on all decls.
2288
2289 2004-08-18  Bryce McKinlay  <mckinlay@redhat.com>
2290
2291         * class.c (make_local_function_alias): New function. Create local
2292         alias for public method DECL.
2293         (make_method_value): Use make_local_function_alias.
2294         * parse.y (craft_constructor): Don't special-case anonymous classes.
2295         Always set ctor_name to init_identifier_node.
2296         (lookup_method_invoke): Call layout_class_method when creating
2297         anonymous class constructor.
2298
2299 2004-08-18  Richard Henderson  <rth@redhat.com>
2300
2301         * java-gimplify.c (java_gimplify_expr): Move '2' handling into
2302         default case.  Treat '<' similarly.  Update for
2303         is_gimple_formal_tmp_var name change.
2304
2305 2004-08-17  Andrew Haley  <aph@redhat.com>
2306
2307         * lang.c (lang_printable_name): Obey verbose flag.
2308         * parse.y (constructor_circularity_msg): Set VERBOSE arg for
2309         lang_printable_name().
2310         (verify_constructor_circularity, get_printable_method_name,
2311         check_abstract_method_definitions, java_check_regular_methods,
2312         java_check_abstract_methods, check_inner_class_access,
2313         fix_constructors, patch_method_invocation, patch_return):
2314         Likewise.
2315         * expr.c (pop_type_0): Likewise.
2316
2317         * java-tree.h (lang_printable_name_wls): Delete.
2318
2319 2004-08-16  Tom Tromey  <tromey@redhat.com>
2320
2321         PR java/8473:
2322         * parse.y (primary): Changed for initialized and uninitialized
2323         array creations.
2324         (array_access): Handle array_creation_initialized.
2325         (array_creation_expression): Split into
2326         array_creation_initialized and array_creation_uninitialized.
2327
2328 2004-08-16  Andrew Haley  <aph@redhat.com>
2329
2330         * jcf-write.c (find_constant_index): Canonicalize NaNs when
2331         generating bytecode.
2332
2333 2004-08-16  Elliot Lee <sopwith@redhat.com>
2334
2335         PR java/9677
2336         * jcf-parse.c (java_parse_file): Handle filenames with embedded
2337         spaces, and quoted filelists.
2338
2339 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
2340
2341         * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
2342         * class.c (build_utf8_ref, build_static_field_ref,
2343         make_field_value, make_method_value, get_dispatch_table,
2344         make_class_data, emit_symbol_table, emit_catch_table): Likewise.
2345         * constants.c (get_tag_node,  build_ref_from_constant_pool,
2346         build_constants_constructor): Likewise.
2347         * decl.c (java_init_decl_processing): Likewise.
2348         * expr.c (build_java_array_length_access, build_newarray,
2349         expand_java_multianewarray, expand_java_pushc, expand_iinc,
2350         build_java_binop, build_field_ref, expand_java_add_case,
2351         expand_java_call, build_known_method_ref, build_invokevirtual,
2352         build_invokeinterface, build_jni_stub): Likewise.
2353         * java-gimplify.c (java_gimplify_new_array_init): Likewise.
2354         * jcf-parse.c (get_constant): Likewise.
2355         * lex.c (do_java_lex): Likewise.
2356         * parse.y (patch_binop, patch_unaryop, patch_cast,
2357         build_null_of_type, patch_newarray): Likewise.
2358         * resource.c (compile_resource_data): Likewise.
2359         * typeck.c (build_prim_array_type): Likewise.
2360
2361 2004-08-10  Bryce McKinlay  <mckinlay@redhat.com>
2362
2363         * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
2364         Don't create BLOCK here or call java_gimplify_block.
2365
2366 2004-08-09  H.J. Lu  <hongjiu.lu@intel.com>
2367
2368         * java-tree.h (flag_deprecated): Removed.
2369         * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
2370         * parse.y (check_deprecation): Check warn_deprecated instead of
2371         flag_deprecated.
2372
2373 2004-08-06  Kelley Cook  <kcook@gcc.gnu.org>
2374
2375         * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
2376         flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
2377         flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
2378         flag_check_references, flag_extraneous_semicolon, flag_deprecated,
2379         flag_force_classes_archive_check, flag_optimize_sci,
2380         flag_indirect_dispatch): Remove explicit declarations.
2381         * lang.opt: Add implicit declare/define/assign.  Remove obsolete
2382         final comment.
2383
2384 2004-08-05  Michael Chastain  <mec.gnu@mindspring.com>
2385
2386         PR bootstrap/14893
2387         * Make-lang.in (java.install-man): Install from either build
2388         tree or source tree, whichever has the file first.
2389
2390 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
2391
2392         * jcf-parse.c (get_constant): Adjust force_fit_type call.
2393         * lex.h (SET_LVAL_NODE_TYPE): Remove.
2394         * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
2395         (do_java_lex): Likewise. Adjust force_fit_type call.
2396
2397 2004-08-04  Roger Sayle  <roger@eyesopen.com>
2398             Andrew Haley  <aph@redhat.com>
2399
2400         * typeck.c (convert_ieee_real_to_integer): Call fold on the range
2401         checking trees as they're being built.
2402         (convert): Call convert_ieee_real_to_integer if we're
2403         converting a constant, even if we're writing a class file.
2404
2405 2004-08-02  Bryce McKinlay  <mckinlay@redhat.com>
2406
2407         PR java/16701
2408         * parse.y (fold_constant_for_init): Call resolve_field_access with
2409         correct current_class context.
2410
2411 2004-08-01  Roger Sayle  <roger@eyesopen.com>
2412
2413         * decl.c (update_aliases, initialize_local_variable): Replace calls
2414         to build with calls to buildN.
2415         * java-gimplify.c (java_gimplify_modify_expr): Likewise.
2416         * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
2417         * parse.h (BUILD_THROW): Likewise.
2418         * parse.y (switch_expression, synchronized_statement,
2419         catch_clause_parameter, array_creation_expression,
2420         conditional_expression, make_qualified_name,
2421         resolve_qualified_expression_name, patch_method_invocation,
2422         patch_invoke, build_method_invocation, build_new_invocation,
2423         build_assignment, patch_assignment, build_binop, patch_binop,
2424         build_string_concatenation, build_incdec, patch_unaryop,
2425         patch_cast, build_array_ref, build_newarray_node, patch_newarray,
2426         patch_return, build_if_else_statement, build_labeled_block,
2427         build_new_loop, build_loop_body, build_bc_statement,
2428         build_assertion, encapsulate_with_try_catch, build_try_statement,
2429         build_try_finally_statement, patch_synchronized_statement,
2430         emit_test_initialization): Likewise, replace build with buildN.
2431
2432 2004-07-28  Eric Christopher  <echristo@redhat.com>
2433
2434         * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
2435         (java_unsafe_for_reeval): Ditto.
2436
2437 2004-07-26    <hp@bitrange.com>
2438
2439         * parse.y (build_super_invocation): Adjust declaration order to
2440         avoid declaration after statement.
2441
2442 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2443
2444         * decl.c: Rename all identifiers named `class' to `cl'.
2445
2446 2004-07-25  Richard Henderson  <rth@redhat.com>
2447
2448         * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
2449
2450 2004-07-23  Mike Stump  <mrs@apple.com>
2451
2452         * boehm.c (set_bit): Improve type safety wrt unsignedness.
2453         * gjavah.c (throwable_p, decode_signature_piece,
2454         print_full_cxx_name, print_include, add_namelet, add_class_decl,
2455         process_file): Likewise.
2456         * jcf-dump.c (main): Likewise.
2457         * jcf-io.c (read_zip_member): Likewise.
2458         * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
2459         give_name_to_class, get_class_constant): Likewise.
2460         * jcf-write.c (find_constant_wide, push_long_const,
2461         generate_classfile): Likewise.
2462         * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
2463         * parse.y (read_import_dir): Likewise.
2464         * typeck.c (parse_signature_type): Likewise.
2465         * verify.c (verify_jvm_instructions): Likewise.
2466         * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
2467
2468 2004-07-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
2469
2470         * Make-lang.in: Replace rmic and rmiregistry references with
2471         grmic and grmiregistry.
2472         * gcj.texi: Likewise.
2473
2474 2004-07-20  Andrew Haley  <aph@redhat.com>
2475
2476         PR java/16431.
2477         * verify.c (verify_jvm_instructions): Comment change only.
2478
2479         * typeck.c (build_java_array_type): Add size field to array name.
2480
2481         * java-tree.h (LOCAL_SLOT_P): New.
2482         (update_aliases): Add PC argument.
2483         (pushdecl_function_level): New function.
2484
2485         * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
2486         MODIFY_EXPR, and SAVE_EXPR.
2487         (java_gimplify_modify_expr): New function.
2488
2489         * expr.c (push_type_0): Call find_stack_slot() to create temporary.
2490         (expand_iinc): Pass PC to update_aliases().
2491         (STORE_INTERNAL): Likewise.
2492         (process_jvm_instruction): Likewise.
2493
2494         * decl.c (base_decl_map): New variable.
2495         (uniq): New variable.
2496         (update_aliases): Rewrite with more thorough checking.
2497         (debug_variable_p): New function.
2498         (push_jvm_slot): Don't initialize local variable.  Don't pushdecl.
2499         (check_local_named_variable): Delete whole function.
2500         (initialize_local_variable): New function.
2501         (check_local_unnamed_variable): Add checks and comments.
2502         (find_local_variable): Rewrite.
2503         (java_replace_reference): New function.
2504         (function_binding_level): New variable.
2505         (pushdecl_function_level): New function.
2506         (maybe_pushlevels): Set DECL_LOCAL_END_PC.
2507         (maybe_pushlevels): Call pushdecl() on each of the new decls.
2508         (start_java_method): Reset uniq.  Create base_decl_map.  Set
2509         function_binding_level.
2510         (end_java_method): Null unused fields to save memory.
2511
2512 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
2513
2514         * class.c (add_interface_do): Remove.
2515         (set_super_info, interface_of_p, maybe_add_interface,
2516         add_interface, make_class_data, layout_class,
2517         add_miranda_methods): Adjust BINFO accessors and addition.
2518         * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
2519         accessors.
2520         * jcf-write.c (generate_classfile): Likewise.
2521         * parse.y (patch_anonymous_class, check_inner_circular_reference,
2522         check_circular_reference, java_complete_class,
2523         check_abstract_method_definitions,
2524         java_check_abstract_method_definitions,
2525         check_interface_throws_clauses, java_check_abstract_methods,
2526         lookup_java_interface_method2,
2527         find_applicable_accessible_methods_list): Adjust BINFO accessors
2528         and addition.
2529         * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
2530
2531 2004-07-18  Roger Sayle  <roger@eyesopen.com>
2532
2533         * builtins.c (max_builtin, min_builtin,
2534         java_build_function_call_expr): Replace calls to build with buildN.
2535         * class.c (build_class_ref, build_static_field_ref,
2536         get_dispatch_table, make_class_data, layout_class_method): Likewise.
2537         * constants.c (build_ref_from_constant_pool): Likewise.
2538         * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
2539         add_stmt_to_compound): Likewise.
2540         * except.c (build_exception_object_ref, expand_end_java_handler):
2541         Likewise.
2542         * java-gimplify.c (java_gimplify_case_expr,
2543         java_gimplify_default_expr, java_gimplify_block,
2544         java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
2545         * jcf-write.c (generate_bytecode_insns): Likewise.
2546         * typeck.c (convert_ieee_real_to_integer): Likewise.
2547
2548 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
2549
2550         * java-tree.h (builtin_function): Declare.
2551
2552 2004-07-16  Steven Bosscher  <stevenb@suse.de>
2553
2554         * parse.y (java_complete_expand_methods, java_expand_classes): Don't
2555         abuse restore_line_number_status.
2556
2557 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
2558
2559         g++/15861
2560         * jcf-parse.c (java_emit_static_constructor): Specify default
2561         priority.
2562
2563 2004-07-13  Per Bothner  <per@bothner.com>
2564
2565         * java-tree.h (all_class_filename):  Remove useless macro.
2566         (enum java_tree_index):  Remove JTI_ALL_CLASS_FILENAME constant.
2567         (BUILD_FILENAME_IDENTIFIER_NODE):  Remove useless macro.
2568         * parse.y (java_parser_context_restore_global):  Replace
2569         BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
2570         * jcf-parse.c (read_class, java_parse_file):  Likewise.
2571
2572 2004-07-12  Bryce McKinlay  <mckinlay@redhat.com>
2573
2574         PR java/16474
2575         gjavah.c (print_field_info): Emit constant only if field is static.
2576
2577 2004-07-11  Roger Sayle  <roger@eyesopen.com>
2578
2579         * expr.c (java_truthvalue_conversion, flush_quick_stack,
2580         java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
2581         build_java_ret, build_java_throw_out_of_bounds_exception,
2582         build_java_array_length_access, java_check_reference,
2583         build_java_arrayaccess, build_java_arraystore_check, build_newarray,
2584         build_anewarray, expand_java_multianewarray, expand_java_arraystore,
2585         expand_java_arrayload, build_java_monitor, expand_java_return,
2586         expand_load_internal, expand_java_NEW, build_get_class,
2587         build_instanceof, expand_java_CHECKCAST, expand_iinc,
2588         build_java_soft_divmod, build_java_binop, build_field_ref,
2589         expand_compare, expand_java_goto, expand_java_switch,
2590         expand_java_add_case, build_class_init, build_known_method_ref,
2591         invoke_build_dtable, build_invokevirtual, build_invokeinterface,
2592         expand_invoke, build_jni_stub, expand_java_field_op,
2593         java_expand_expr, expand_byte_code, STORE_INTERNAL,
2594         force_evaluation_order, emit_init_test_initialization): Convert
2595         calls to "build" into calls to the prefered "buildN" functions.
2596
2597 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
2598
2599         * java-tree.h (set_block): Remove.
2600         * lang.c (java_clear_binding_stack): New.
2601         (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
2602         * decl.c (struct binding_level): Remove this_block.
2603         (clear_binding_level): Likewise.
2604         (poplevel): Don't handle this_block.
2605         (set_block): Remove.
2606
2607 2004-07-10  Bryce McKinlay  <mckinlay@redhat.com>
2608
2609         * class.c (common_enclosing_context_p): Remove statement with no
2610         side-effects.
2611
2612 2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>
2613
2614         PR java/8618
2615         * parse.y (create_anonymous_class): Remove 'location' argument. Use
2616         the WFL from TYPE_NAME to get line number for the decl. Fix comment.
2617         (craft_constructor): Inherit access flags for implicit constructor
2618         from the enclosing class.
2619         (create_class): Fix comment typo.
2620         (resolve_qualified_expression_name): Pass type of qualifier to
2621         not_accessible_p, not the type in which target field was found.
2622         (not_accessible_p): Handle inner classes. Expand protected
2623         qualifier-subtype check to enclosing instances, but don't apply this
2624         check to static members. Allow protected access to inner classes
2625         of a subtype. Allow private access within common enclosing context.
2626         (build_super_invocation): Get WFL line number info from current
2627         class decl.
2628         (build_incomplete_class_ref): Update for new create_anonymous_class
2629         signature.
2630         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
2631         common_enclosing_instance_p.
2632         * class.c (common_enclosing_context_p): New. Determine if types
2633         share a common enclosing context, even across static contexts.
2634         (common_enclosing_instance_p): Renamed from
2635         common_enclosing_context_p. Determines if types share a common
2636         non-static enclosing instance.
2637         * java-tree.h (common_enclosing_instance_p): Declare.
2638         * jcf-write.c (get_method_access_flags): New. Surpress private flag
2639         for inner class constructors.
2640         (generate_classfile): Use get_method_access_flags.
2641
2642 2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>
2643
2644         * class.c (interface_of_p): Check for null TYPE_BINFO.
2645
2646 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
2647
2648         * class.c (make_class): Do not create binfo here.
2649         (set_super_info): Create it here.
2650         * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
2651
2652 2004-07-08  Richard Henderson  <rth@redhat.com>
2653
2654         * expr.c (case_identity, get_primitive_array_vtable,
2655         java_expand_expr, emit_init_test_initialization): Remove.
2656         * java-tree.h (java_expand_expr): Remove.
2657         * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
2658
2659 2004-07-07  Per Bothner  <per@bothner.com>
2660
2661         * class.c (build_static_field_ref):  Add a NOP_EXPR; otherwise we
2662         get internal error due to mismatched types.
2663
2664         * gcj.texi (Invoking gij):  Document new -verbose:class flag.
2665
2666         * gcj.texi (Linking):   New node.  Document -lgij usage.
2667
2668 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
2669
2670         * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
2671         (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
2672         * java/class.c (set_super_info, class_depth, interface_of_p,
2673         maybe_add_interface, add_interface, make_class_data,
2674         layout_class, add_miranda_methods): Adjust BINFO macros.
2675         * expr.c (can_widen_reference_to, lookup_field): Likewise.
2676         * jcf-write.c (generate_classfile): Likewise.
2677         * parse.y (patch_anonymous_class,
2678         check_inner_circular_reference, check_circular_reference,
2679         java_complete_class, check_abstract_method_definitions,
2680         java_check_abstract_method_definitions,
2681         check_interface_throws_clauses, java_check_abstract_methods,
2682         lookup_java_interface_method2,
2683         find_applicable_accessible_methods_list): Likewise.
2684         * typeck.c (find_method_in_interface): Likewise.
2685         * verify.c (merge_types): Likewise.
2686
2687 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
2688
2689         * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
2690         * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
2691
2692 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
2693
2694         * class.c (make_class): Use make_tree_binfo.
2695         (set_super_info, add_interface_do): Likewise.
2696         * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
2697
2698 2004-07-04  Ranjit Mathew  <rmathew@hotmail.com>
2699
2700         * verify.c: Correct array element access formatting thinko.
2701
2702 2004-07-04  Ranjit Mathew  <rmathew@hotmail.com>
2703
2704         * verify.c: Insert a short blurb at the start referring to the JVMS.
2705         (merge_type_state): Remove redundant nested if statement.
2706         (verify_jvm_instructions): Ensure current_subr is initialised to
2707         NULL_TREE.
2708         Minor formatting fixes all over the place.
2709
2710 2004-07-02  Richard Henderson  <rth@redhat.com>
2711
2712         * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
2713
2714 2004-07-01  Richard Henderson  <rth@redhat.com>
2715
2716         * class.c (registerClass_libfunc): Remove.
2717         (init_class_processing): Don't set it.
2718         (emit_register_classes): Take list_p parameter.  Fill it in
2719         with _Jv_RegisterClass calls.
2720         * decl.c (java_init_decl_processing): Don't call
2721         init_resource_processing.
2722         * jcf-parse.c (java_emit_static_constructor): New.
2723         (java_parse_file): Call it.
2724         * resource.c (registerResource_libfunc): Remove.
2725         (init_resource_processing): Remove.
2726         (write_resource_constructor): Take list_p parameter.  Fill it in
2727         with _Jv_RegisterResource calls.
2728         * java-tree.h: Update prototypes.
2729
2730 2004-06-29  Bryce McKinlay  <mckinlay@redhat.com>
2731
2732         PR java/1262
2733         * class.c (layout_class_method): Do not override package-private
2734         method if its in a different package.
2735         (split_qualified_name): Move here from parse.y. Rename from
2736         breakdown_qualified. Add comment.
2737         (in_same_package): Move here from parse.y. Add comment.
2738         * java-tree.h (break_down_qualified, in_same_package): Declare.
2739         (in_same_package): Likewise.
2740         * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
2741         Callers updated.
2742
2743 2004-06-29  Andrew Haley  <aph@redhat.com>
2744
2745         * except.c (expand_start_java_handler): Push a new binding level.
2746         Don't build a TRY_CATCH_EXPR now, we'll do it later.  Call
2747         register_exception_range() to register where we'll do it.
2748         (expand_end_java_handler): Remove old bogus code.  Replace with
2749         new logic that simply builds TRY_CATCH_EXPRs and inserts them at
2750         the top of the expression we're curently building.
2751         (maybe_end_try): Delete.
2752         * decl.c (binding_level.exception_range): New field.
2753         (clear_binding_level): Add field exception_range.  Reformat.
2754         (poplevel): Call expand_end_java_handler().
2755         (poplevel): Call java_add_stmt only if functionbody is false.
2756         (maybe_poplevels): Don't call maybe_end_try() from here.
2757         (end_java_method): Clear no longer used trees in function decl.
2758         (register_exception_range): New function.
2759         * java-tree.h (register_exception_range, struct eh_range): Declare.
2760
2761 2004-06-28  Bryce McKinlay  <mckinlay@redhat.com>
2762
2763         * jcf-write.c (get_classfile_modifiers): Formatting fixes.
2764
2765 2004-06-27  Ranjit Mathew  <rmathew@hotmail.com>
2766
2767         Formatting fixes.
2768         * expr.c (class_has_finalize_method): Fix method name indentation.
2769         (expand_java_call): Remove K&R style parameter declaration.
2770         (expand_invoke): Fix statement indentation.
2771         (expand_java_field_op): Likewise.
2772         * parse-scan.y: Fix typo.
2773         (reset_report): Fix method name indentation.
2774         * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
2775         line. Fix typos.
2776         * verify.c (verify_jvm_instructions): Document parameters, insert
2777         page break.
2778         * lang.c (lang_init_source): Fix method name indentation.
2779         * class.c (common_enclosing_context_p): Likewise.
2780         (emit_symbol_table): Fix parameter list indentation.
2781         * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
2782         parameter declaration.
2783         * constants.c: Fix copyright notice indentation.
2784         * typeck.c (find_method_in_superclasses): Fix parameter list
2785         indentation.
2786         (find_method_in_interfaces): Likewise.
2787         * zextract.c (makelong): Fix method name indentation.
2788
2789 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
2790
2791         PR java/15715.
2792         * parse.y (create_interface): Set correct access modifiers for
2793         interfaces.
2794         * jcf-write.c (get_classfile_modifiers): New function.
2795         (generate_classfile): Use get_classfile_modifiers, not
2796         get_access_flags.
2797
2798 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
2799
2800         * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
2801         dependency to current parser context, not NULL_TREE, for top-level
2802         classes.
2803         (jdep_resolve_class): Enable member access check for all inner
2804         class dependencies.
2805
2806 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
2807
2808         * parse.y (qualify_and_find): Pass type decl, not identifier, to
2809         load_class.
2810
2811 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
2812
2813         PR java/15734
2814         * expr.c (expand_java_field_op): Ensure that target class for static
2815         field access has been loaded.
2816
2817 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
2818             Ranjit Mathew  <rmathew@hotmail.com>
2819
2820         PR java/1207, java/16178
2821         * jcf-parse.c (load_class): Return immediately if passed a type decl
2822         where CLASS_FROM_SOURCE_P is set. Remove FIXME.
2823         * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
2824         before calling load_class.
2825         (qualify_and_find): Likewise.
2826         (find_in_imports_on_demand): Likewise.
2827         (find_applicable_accessible_methods_list): Likewise.
2828
2829 2004-06-24  Bryce McKinlay  <mckinlay@redhat.com>
2830
2831         * parse.y (java_layout_seen_class_methods): Don't call load_class
2832         on class defined by source parser.
2833
2834 2004-06-23  Bryce McKinlay  <mckinlay@redhat.com>
2835
2836         * parse.y (set_nested_class_simple_name_value): Removed.
2837         (java_complete_expand_class): Remove calls to
2838         set_nested_class_simple_name_value.
2839
2840 2004-06-22  Andrew Haley  <aph@redhat.com>
2841             Ranjit Mathew  <rmathew@hotmail.com>
2842
2843         Fixes PR java/16113.
2844         * decl.c (force_poplevels): Remove call to expand_end_bindings.
2845
2846 2004-06-22  Ranjit Mathew  <rmathew@hotmail.com>
2847
2848         * parse.y (create_class): Correct diagnostic message about
2849         java.lang.Object extending anything else.
2850
2851 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2852
2853         * class.c (build_class_ref): Add new operand for COMPONENT_REF.
2854         (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
2855         * constants.c (build_ref_from_constant_pool): Likewise.
2856         * expr.c (build_java_array_length_access): Likewise.
2857         (build_get_class, build_field_ref, build_known_method_ref): Likewise.
2858         (invoke_build_dtable, build_invokevirtual): Likewise.
2859         (build_invokeinterface, java_expand_expr): Likewise.
2860         (emit_init_test_initialization): Likewise.
2861         * java-gimplify.c (java_gimplify_new_array_init): Likewise.
2862         * parse.y (make_qualifed_name, build_array_ref): Likewise.
2863
2864 2004-06-21  Andrew Haley  <aph@redhat.com>
2865
2866         * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
2867         block.
2868
2869 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2870
2871         * jcf.h (struct JCF): Change java_source, right_zip and finished
2872         to unsigned int.
2873         * lex.h (struct java_lexer): Change hit_eof, read_anything,
2874         byte_swap and use_fallback to unsigned int.
2875         * parse.h (struct _jdep): Change flag0 to unsigned int.
2876
2877 2004-06-17  Ranjit Mathew  <rmathew@hotmail.com>
2878
2879         Fixes PR java/13948
2880         * parse.y (java_layout_seen_class_methods): Ensure class is loaded
2881         before trying to lay out its methods.
2882         * jcf-parse.c (read_class): Track parsed files using canonical paths
2883         obtained via lrealpath from libiberty.
2884         (java_parse_file): Likewise.
2885         (parse_source_file_1): Rename formal parameter to reflect its
2886         modified purpose. Minor formatting fix.
2887
2888 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2889
2890         * class.c (emit_register_classes): Make the function uninlinable,
2891         do not set current_function_cannot_inline.
2892         * resource.c (write_resource_constructor): Do not reset
2893         flag_inline_functions around rest_of_compilation.
2894
2895 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2896
2897         PR java/15769
2898         * expr.c (java_truthvalue_conversion): Handle
2899         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2900         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2901         i.e. return the expression.
2902
2903 2004-06-03 Mark G. Adams  <mark.g.adams@sympatico.ca>
2904
2905         * gjavah.c: Include version.h
2906
2907 2004-05-31  Bryce McKinlay  <mckinlay@redhat.com>
2908
2909         * jcf-write.c (generate_bytecode_conditional): Correct handling
2910         of unordered conditionals. Add comment.
2911
2912 2004-05-29  Ranjit Mathew  <rmathew@hotmail.com>
2913             Per Bothner  <per@bothner.com>
2914
2915         * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
2916         local variable was initialised upon declaration.
2917         * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
2918         variable was final and initialised upon declaration.
2919         * check-init.c (check_final_reassigned): Give error only if a blank
2920         final is not definitely unassigned or if an initialised final is
2921         reassigned.
2922         (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
2923         assignment expressions. Remove case MODIFY_EXPR, label do_default.
2924         (check_init): Perform initialised-variable-removing-optimisation
2925         only on non-final local variables.
2926
2927 2004-05-28  Bryce McKinlay  <mckinlay@redhat.com>
2928
2929         * jcf-write.c (generate_bytecode_conditional): Handle binops
2930         UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
2931         and LTGT_EXPR.
2932         (generate_bytecode_insns): Likewise.
2933
2934 2004-05-28  Bryce McKinlay  <mckinlay@redhat.com>
2935
2936         * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
2937         UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
2938
2939 2004-05-28  Bryce McKinlay  <mckinlay@redhat.com>
2940
2941         * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
2942         (Mixing with C++): Document JvAllocBytes and RawDataManaged.
2943
2944 2004-05-26  Bryce McKinlay  <mckinlay@redhat.com>
2945
2946         * decl.c (struct binding_level): Add GTY marker. Compile
2947         binding_depth unconditionally.
2948         (current_binding_level, free_binding_level, global_binding_level):
2949         Likewise.
2950         (clear_binding_level): Unconditionally set binding_depth.
2951         (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
2952
2953 2004-05-26  Bryce McKinlay  <mckinlay@redhat.com>
2954
2955         * lex.c (java_new_lexer): Set 'encoding'.
2956         (java_read_char): Improve error message for unrecognized characters.
2957         * lex.h (struct java_lexer): New field 'encoding'.
2958
2959 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2960
2961         * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
2962
2963 2004-05-21  Mark Wielaard  <mark@klomp.org>
2964
2965         * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
2966         extern.
2967
2968 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2969
2970         * typeck.c: Remove non-printable character 160.
2971
2972 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
2973
2974         * check-init.c: Correct minor typos.
2975
2976 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2977
2978         * Make-lang.in, expr.c, java-gimplify.c: Rename
2979         tree-simple.[ch] to tree-gimple.[ch].
2980
2981 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
2982
2983         * java-gimplify.c (java_gimplify_expr): Correct minor typos.
2984
2985 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2986
2987         Merge from tree-ssa-20020619-branch.  See
2988         ChangeLog.tree-ssa for details.
2989
2990         * Make-lang.in, builtins.c, check-init.c, class.c,
2991         constants.c, decl.c, except.c, expr.c, java-except.h,
2992         java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
2993         lang.c, lang.opt, parse.y, resource.c: Merged.
2994         * java-gimplify.c: New file.
2995
2996 2004-05-10  Andrew Haley  <aph@redhat.com>
2997
2998         * parse.y (create_class): Set TYPE_VFIELD.
2999         * decl.c (java_init_decl_processing): Likewise.
3000
3001         * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
3002         * class.c (make_method_value): Replace DECL_VINDEX with call to
3003         get_method_index().
3004         (get_dispatch_vector): Likewise.
3005         (layout_class_method): Likewise.
3006         Replace set of DECL_VINDEX with call to set_method_index().
3007         (set_method_index): New function.
3008         (get_method_index): New function.
3009         * java-tree.h (set_method_index): New function decl.
3010         (get_method_index): New function decl.
3011
3012 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
3013
3014         * parse.y (check_pkg_class_access): Add new argument
3015         and use it when cl is NULL to call lookup_cl on it.
3016         (parser_check_super_interface): Do not call lookup_cl.
3017         Pass this_decl to check_pkg_class_access and NULL
3018         instead of lookup_cl.
3019         (parser_check_super): Update for change in
3020         check_pkg_class_access.
3021         (do_resolve_class): Likewise.
3022         (process_imports): Likewise.
3023         (find_in_imports_on_demand): Likewise.
3024         (resolve_qualified_expression_name): Likewise.
3025
3026 2004-05-06  Ranjit Mathew  <rmathew@hotmail.com>
3027
3028         Fixes PR java/9685, PR java/15073
3029         * parse.y (accessibility_string): New method.
3030         (not_accessible_field_error): Use accessibility_string()
3031         instead of java_accstring_lookup().
3032         (resolve_qualified_expression_name): Check with
3033         check_pkg_class_access() before allowing access using
3034         qualified names.
3035         Fix comment typo.
3036         Use check_pkg_class_access() instead of not_accessible_p()
3037         for unqualified types.
3038         (not_accessible_p): Use DECL_CONTEXT (member) instead of
3039         REFERENCE for package-private access checking.
3040         (patch_method_invocation): Use accessibility_string() instead
3041         of java_accstring_lookup().
3042
3043 2004-04-30  Ranjit Mathew  <rmathew@hotmail.com>
3044
3045         Fixes PR java/15133
3046         * gjavah.c (struct method_name): Add member is_native.
3047         (overloaded_jni_method_exists_p): Match candidate method only if
3048         it is native.
3049         (print_method_info): Initialise is_native flag from the method's
3050         access flags.
3051
3052 2004-04-30  Roger Sayle  <roger@eyesopen.com>
3053
3054         * builtins.c (java_builtins): Add acos, asin, ceil and floor.
3055         (initialize_builtins): Likewise, define acos, asin, ceil and floor.
3056
3057 2004-04-22  Roger Sayle  <roger@eyesopen.com>
3058
3059         * resource.c (write_resource_constructor): Guard call to possibly
3060         NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
3061
3062 2004-04-19  Bryce McKinlay  <mckinlay@redhat.com>
3063
3064         * class.c (make_class_data): Add new field aux_info.
3065         * decl.c (java_init_decl_processing): Push type and decl for
3066         `aux_info'.
3067
3068 2004-04-15  Bryce McKinlay  <mckinlay@redhat.com>
3069
3070         * expr.c (expand_java_NEW): Don't use size argument for
3071         _Jv_AllocObject calls.
3072         * parse.y (patch_invoke): Likewise.
3073
3074 2004-04-12  Bryce McKinlay  <mckinlay@redhat.com>
3075
3076         * expr.c (build_invokeinterface): Remove unused variables to
3077         fix warnings.
3078
3079 2004-04-12  Bryce McKinlay  <mckinlay@redhat.com>
3080
3081         * class.c (get_interface_method_index): New function. Return dispatch
3082         index for interface method.
3083         (make_method_value): For interface methods, set index field to
3084         iface dispatch index, not DECL_VINDEX.
3085         * expr.c (build_invokeinterface): Use get_interface_method_index.
3086
3087 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3088
3089         * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
3090
3091 2004-03-31  Andrew Haley  <aph@redhat.com>
3092
3093         PR java/14104
3094         * jcf-io.c (opendir_in_zip): Tidy up error handling.
3095
3096 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
3097
3098         * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
3099         form of GTY markers.
3100
3101 2004-03-25  Marcus Meissner  <meissner@suse.de>
3102
3103         PR java/14689:
3104         * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
3105
3106 2004-03-23  Tom Tromey  <tromey@redhat.com>
3107
3108         PR java/14315:
3109         * jcf-write.c (make_class_file_name): Don't report if mkdir
3110         failed with EEXIST.
3111
3112 2004-03-23  Tom Tromey  <tromey@redhat.com>
3113
3114         * gcj.texi (Extensions): Document GCJ_PROPERTIES.
3115
3116 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3117
3118         * class.c, gjavah.c, lang.c: Fix comment typos.
3119         * gcj.texi: Fix typos.
3120
3121 2004-03-19  Per Bothner  <per@bothner.com>
3122
3123         * gcj.texi (Code Generation):  Document new flags and assert defaults.
3124
3125         * class.c (assume_compiled_node_struct):  Rename type to
3126         class_flag_node_struct, as it is now also used for enable_assertions.
3127         Rename assume_compiled_node typedef.  Rename excludep field to value.
3128         (find_assume_compiled_node):  Rename function to find_class_flag_node.
3129         Minor optimization - avoid needless strlen.
3130         (add_assume_compiled):  Some tweaking and optimization.
3131         Rename and generalize to add_class_flag takem an extra parameter.
3132         (add_assume_compled):  New just calls add_class_flag.
3133         (add_enable_assert, enable_assertions):  New functions.
3134         (enable_assert_tree):  New static.
3135         * java-tree.h (add_enable_assert, enable_assertions): New declarations.
3136         * lang.opt (fenable-assertions, fenable-assertions=,
3137         fdisable-assertions, fdisable-assertions=):  New options.
3138         * lang.c (java_handle_option):  Handle new options.
3139         * parse.y (build_incomplete_class_ref):  Handle class$ in an inner
3140         class in an interface - create helper class nested in outer interface.
3141         (build_assertion):  Short-circuit if enable_assertions is false.
3142
3143 2004-03-18  Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3144
3145         * java-tree.h: Changes throughout to add checking to macros
3146         and numerous whitespace changes.
3147         (VAR_OR_FIELD_CHECK): New macro.
3148         * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
3149         FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
3150
3151 2004-03-16  Per Bothner  <per@bothner.com>
3152
3153         * jcf-jump.c (options):  New --print-constants option.
3154         * gcj.texi (Invoking jcf-dump):  Document --print-constants.
3155
3156         * jcf-dump.c (flag_print_constant_pool):  Default to off.
3157         (print_constant_terse_with_index):  New helper function.
3158         (various places):  Check flag_print_constant_pool where missing.
3159         (main):  If verbose set flag_print_constant_pool.
3160         (HANDLE_INNERCLASSES_ATTRIBUTE):  Null inner class name is anonymous.
3161
3162 2004-03-15  Andrew Haley  <aph@redhat.com>
3163
3164         PR java/14581
3165         * parse.y (java_complete_lhs): Check that final variable has an
3166         initializer.
3167
3168 2004-03-12  Andrew Haley  <aph@redhat.com>
3169
3170         PR java/14551
3171         * typeck.c (convert): Clear TREE_OVERFLOW after an integer
3172         conversion.
3173
3174 2004-02-29  Roger Sayle  <roger@eyesopen.com>
3175
3176         * jcf-parse.c (java_parse_file): Handle the case that input_filename
3177         is NULL.
3178
3179 2004-02-27  Per Bothner  <per@bothner.com>
3180
3181         * parse.y (build_assertion):  Re-do 02-25 change following Jeff Sturm
3182         suggestion:  Use build_incomplete_class_ref.
3183         This fixes PR java/13508, java/11714.
3184
3185 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
3186
3187         * java/parse.h: Update copyright.
3188
3189 2004-02-26  Andrew Haley  <aph@redhat.com>
3190
3191         PR java/14231:
3192         * parse.y (check_interface_throws_clauses): Check for
3193         !METHOD_INVISIBLE (iface_method).
3194         * class.c (layout_class_methods): Check for CLASS_INTERFACE as
3195         well as CLASS_ABSTRACT.
3196
3197 2004-02-25  Per Bothner  <per@bothner.com>
3198
3199         * parse.y (build_assertion):  If we're in an inner class, create the
3200         class$ helper routine in the outer class.
3201
3202 2004-02-19  Richard Henderson  <rth@redhat.com>
3203
3204         * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
3205
3206 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
3207
3208         * Make-lang.in (java.install-man): Add extra dependencies.
3209
3210 2004-02-13  Geoffrey Keating  <geoffk@apple.com>
3211
3212         * Make-lang.in: Install man pages under the same names
3213         (possibly transformed) as the program they document.
3214
3215 2004-02-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3216
3217         * gjavah.c: Include "intl.h".
3218         (error): New function.
3219         (main): Call gcc_init_libintl.
3220         (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
3221         print_stub_or_jni, process_file, main): Use error rather than
3222         fprintf.
3223         (print_method_info, usage, help, version, main): Mark strings for
3224         translation with _.  Avoid splitting up sentences.  Send
3225         information messages to stdout.
3226         * jcf-dump.c: Include "intl.h".
3227         (main): Call gcc_init_libintl.
3228         (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
3229         Mark error, usage and version messages for translation with _.
3230         Avoid splitting up sentences.
3231         * jv-scan.c: Include "intl.h".
3232         (fatal_error, warning): Change parameter s to msgid.  Translate
3233         messages.
3234         (main): Call gcc_init_libintl.
3235         (usage, help, version): Mark error, usage and version messages for
3236         translation with _.  Avoid splitting up sentences.
3237         * jvgenmain.c: Include "intl.h".
3238         (main): Call gcc_init_libintl.
3239         (usage, main): Mark error messages for translation with _.
3240         * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
3241         JVGENMAIN_OBJS): Add intl.o.
3242         (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
3243         java/jvgenmain.o): Update dependencies.
3244
3245 2004-02-08  Per Bothner  <per@bothner.com>
3246
3247         * parse.y (resolve_qualified_expression_name):  In case of inaccessible
3248         class don't use not_accessible_field_error, which can get confused.
3249
3250 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
3251
3252         Make-lang.in (po-generated):  Delete.
3253
3254 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
3255
3256         * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
3257         Depend on target.h.
3258         * decl.c: Include target.h.
3259         (start_java_method): Replace PROMOTE_PROTOTYPES with
3260         targetm.calls.promote_prototypes.
3261         * expr.c: Include target.h.
3262         (pop_arguments): Replace PROMOTE_PROTOTYPES with
3263         targetm.calls.promote_prototypes.
3264         * parse.y: Include target.h.
3265         (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
3266         with targetm.calls.promote_prototypes.
3267
3268 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
3269
3270         * typeck.c: Update copyright.
3271
3272 2004-02-02  Tom Tromey  <tromey@redhat.com>
3273
3274         * decl.c (java_init_decl_processing): Remove duplicate
3275         gnu/gcj/RawData.
3276
3277 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
3278
3279         * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
3280
3281 2004-01-28  Andrew Pinski  <pinskia@physics.uc.edu>
3282
3283         * expr.c (build_field_ref): Move variable
3284         definition up.
3285
3286 2004-01-28  Andrew Haley  <aph@redhat.com>
3287
3288         * expr.c (build_field_ref): Widen field offset.
3289
3290 2004-01-27  Andrew Haley  <aph@redhat.com>
3291
3292         java/13273
3293         * parse.y (check_interface_throws_clauses): Make sure class_decl
3294         has been loaded.
3295
3296 2004-01-22  Jeff Sturm  <jsturm@one-point.com>
3297
3298         PR java/13733
3299         * parse.y (patch_assignment): Don't modify lhs_type for
3300         reference assignments.
3301
3302 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
3303
3304         * Make-lang.in: Replace $(docdir) with doc.
3305         (java.info, java.srcinfo, java.man, java.srcman): New rules.
3306         (java.install-man): Revamp rule.
3307
3308 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
3309
3310         * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
3311         GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
3312         instead of deferred backquote.
3313
3314 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
3315
3316         * typeck.c (find_method_in_interfaces): Move variable
3317         definition up.
3318
3319 2004-01-16  Andrew Haley  <aph@redhat.com>
3320
3321         PR java/13273:
3322         * typeck.c (shallow_find_method): New.
3323         (find_method_in_superclasses): New.
3324         (find_method_in_interfaces): New.
3325         (lookup_do): Rewrite.
3326         * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
3327
3328         * jcf-parse.c (read_class): Save and restore output_class.
3329         * decl.c (java_expand_body): Set output_class from fndecl.
3330
3331 2004-01-15  Michael Chastain  <mec.gnu@mindspring.com>
3332
3333         * class.c (gen_indirect_dispatch_tables): Fix string length
3334         calculations.
3335
3336 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
3337
3338         * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
3339         (java.srcextra): Copy above back to source directory if requested.
3340         (po-generated): Delete reference to $(parsedir).
3341         (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
3342         Use implicit rule.
3343
3344 2004-01-14  Jan Hubicka  <jh@suse.cz>
3345
3346         * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
3347         estimation.
3348
3349 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
3350
3351         * java-tree.h (java_expand_expr): Change prototype.
3352         * expr.c (java_expand_expr): Add alt_rtl parameter.
3353
3354 2004-01-09  Andrew Haley  <aph@redhat.com>
3355
3356         PR java/12755:
3357         * parse.y (java_fix_constructors):  Set output_class.
3358         (java_reorder_fields): Likewise.
3359         (java_layout_classes): Likewise.
3360         (java_expand_classes): Generate indirect dispatch tables.
3361         (java_expand_classes): Set output_class.
3362         (java_finish_classes): Likewise.
3363         * lang.c (java_init): Turn on always_initialize_class_p if we're
3364         using indirect dis[atch.
3365         (java_decl_ok_for_sibcall): Use output_class, not current_class.
3366         (java_get_callee_fndecl): Use class local atable.
3367         * jcf-parse.c
3368         (always_initialize_class_p): Decl moved to java-tree.h.
3369         (HANDLE_CLASS_INFO): Set output_class.
3370         (read_class): Likewise.
3371         (parse_class_file): Call gen_indirect_dispatch_tables.
3372         (parse_zip_file_entries): Set output_class.
3373         (java_parse_file): Set output_class.  Don't emit symbol tables.
3374         * java-tree.h (output_class): New.
3375         Remove global declarations for otable, atable, and ctable.
3376         (always_initialize_class_p): moved here from decl.c.
3377         (DECL_OWNER): New.
3378         (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
3379         TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
3380         TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
3381         (struct lang_type): Add otable_methods, otable_decl,
3382         otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
3383         ctable_decl, catch_classes, type_to_runtime_map.
3384         * expr.c (build_field_ref): Make otable, atable, and ctable class
3385         local rather than global.
3386         (build_known_method_ref): Likewise.
3387         (build_invokeinterface): Likewise.
3388         (java_expand_expr): Pass runtime type (rather than actual type) to
3389         expand_start_catch.
3390         * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
3391         this class.  Look up each class in that map to delete duplicates.
3392         (expand_end_java_handler): Pass runtime type (rather than actual
3393         type) to expand_start_catch.
3394         * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
3395         (do_nothing): New.
3396         (java_init_decl_processing): Rearrange things.  Remove global
3397         declarations of otable, atable, and ctable.
3398         (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
3399         (java_expand_body): Set output_class.
3400         * constants.c (build_constant_data_ref): Use output_class, not
3401         current_class.
3402         (alloc_name_constant): Likewise.
3403         * class.c (gen_indirect_dispatch_tables): New.
3404         (build_class_ref): Generate hard reference to superclass, even if
3405         using indirect dispatch.
3406         (build_static_field_ref): Use class local atable.
3407         (make_class_data): Generate hard reference to superclass, even if
3408         using indirect dispatch.
3409         Generate symbolic references to interfaces when using indirect
3410         dispatch.
3411         (make_class_data): Emit otable, atable, and ctable.
3412         Make otable, atable, and ctable class local rather than global.
3413         (emit_catch_table): Make otable, atable, and ctable class local
3414         rather than global.
3415
3416 2003-12-25  Andrew Pinski  <pinskia@physics.uc.edu>
3417
3418         * parse.y (catch_clause_parameter): Fix typo.
3419
3420         PR java/13404
3421         * parse.y: (catch_clause_parameter): Return early if $3, aka
3422         formal_parameter, is null.
3423
3424 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
3425
3426         * class.c: Remove uses of "register" specifier in
3427         declarations of arguments and local variables.
3428         * decl.c: Likewise.
3429         * expr.c: Likewise.
3430         * gjavah.c: Likewise.
3431         * jcf-dump.c: Likewise.
3432         * jcf-io.c: Likewise.
3433         * jcf-parse.c: Likewise.
3434         * jcf-write.c: Likewise.
3435         * keyword.h: Likewise.
3436         * parse.y: Likewise.
3437         * typeck.c: Likewise.
3438         * verify.c: Likewise.
3439
3440 2003-12-06  Kelley Cook  <kcook@gcc.gnu.org>
3441
3442         * Make-lang.in (GCJ_CROSS_NAME): Delete.
3443         (java.install_common, java.install-man): Adjust for above.
3444         (java.uninstall): Likewise.
3445
3446 2003-12-03  Michael Koch  <konqueror@gmx.de>
3447
3448         * class.c (make_class_data):
3449         Push field value to 'hack_signers' instead of 'signers'.
3450         * decl.c (java_init_decl_processing):
3451         Push field 'hack_signers' instead of 'signers'.
3452
3453 2003-12-03  Zack Weinberg  <zack@codesourcery.com>
3454
3455         * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
3456         including iconv.h.
3457
3458 2003-12-03  Ralph Loader  <rcl@ihug.co.nz>
3459
3460         PR java/12374:
3461         * parse.y (qualify_ambiguous_name): Remove lots of broken
3462         field access processing - there's no need to do that here,
3463         because we have resolve_field_access.  Remove
3464         RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
3465         * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
3466         used.
3467
3468 2003-12-01  Jeff Sturm  <jsturm@one-point.com>
3469
3470         Fix PR java/13237
3471         * parse.y (java_complete_lhs): Save location prior to patching
3472         CALL_EXPR.
3473
3474 2003-11-25  Mohan Embar  <gnustuff@thisiscool.com>
3475
3476         PR java/12548
3477         * resource.c (write_resource_constructor): Append
3478         "_resource" to constructor identifier name.
3479
3480 2003-11-25  Jeff Sturm  <jsturm@one-point.com>
3481
3482         Fix PR java/13183.
3483         * constants.c (cpool_for_class): New function.
3484         (outgoing_cpool): Remove global variable.
3485         (alloc_name_constant): Use cpool_for_class.
3486         (build_constants_constructor): Likewise.
3487         * decl.c (java_expand_body): Set current_class.
3488         * java-tree.h (outgoing_cpool) Remove declaration.
3489         (init_outgoing_cpool): Likewise.
3490         * jcf-parse.c (init_outgoing_cpool): Remove function.
3491         (parse_class_file): Don't call init_outgoing_cpool.
3492         * parse.y (java_complete_expand_methods): Don't call
3493         init_outgoing_cpool.  Don't save outgoing_cpool.
3494         (java_expand_classes): Don't restore outgoing_cpool.
3495         (java_finish_classes): Likewise.
3496
3497 2003-11-24  Mohan Embar  <gnustuff@thisiscool.com>
3498
3499         * Make-lang.in: (java.install-common) Add
3500         symlink for $(target_noncanonical)-gcjh for
3501         native builds.
3502
3503 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3504
3505         * Make-lang.in (java.extraclean): Delete.
3506
3507 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3508
3509         * Make-lang.in (check-java): Add.
3510
3511 2003-11-19  Jeff Sturm  <jsturm@one-point.com>
3512
3513         Fix PR java/13024.
3514         * except.c (prepare_eh_table_type): Allocate variable-sized
3515         buffer `buf' with alloca.
3516
3517 2003-11-17  Jeff Sturm  <jsturm@one-point.com>
3518
3519         Fix PR java/12857.
3520
3521         decl.c (java_init_decl_processing): Don't initialize
3522         class_not_found_type_node, no_class_def_found_type_node.
3523
3524         java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
3525         JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
3526         (class_not_found_type_node, no_class_def_found_type_node):
3527         Don't define.
3528
3529         parse.y (build_dot_class_method_invocation): Add this_class
3530         argument.  Qualify method invocations to a different class.
3531         (create_new_parser_context): Initialize saved_data_ctx to 0.
3532         (java_parser_context_save_global): Initialize saved_data_ctx to 1.
3533         (build_dot_class_method): Don't load classes.  Register
3534         incomplete types.
3535         (build_incomplete_class_ref): Special cases for interfaces
3536         and inner classes.  Move build_dot_class_method call to here...
3537         (patch_incomplete_class_ref): ...from here.  Pass current_class
3538         to build_dot_class_method_invocation.
3539         (build_assertion): Pass class_type to
3540         build_dot_class_method_invocation.
3541         (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
3542
3543 2003-11-17  Jeff Sturm  <jsturm@one-point.com>
3544
3545         Fix PR java/12739.
3546         * java-tree.h (BLOCK_EMPTY_P): Define.
3547         * parse.y (java_complete_lhs): Check for empty blocks
3548         in TRY_FINALLY_EXPR case.
3549
3550 2003-11-17  Andrew Haley  <aph@redhat.com>
3551
3552         * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
3553         (struct lang_decl_var:freed): New variable.
3554         * decl.c (poplevel): Mark local vars that have gone out of scope.
3555         (push_jvm_slot): Don't use the RTL of a var that has gone out of
3556         scope.
3557
3558 2003-11-16  Jason Merrill  <jason@redhat.com>
3559
3560         * Make-lang.in (java.tags): Create TAGS.sub files in each directory
3561         and TAGS files that include them for each front end.
3562
3563 2003-11-15  Tom Tromey  <tromey@redhat.com>
3564
3565         * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
3566
3567 2003-11-12  Jason Merrill  <jason@redhat.com>
3568
3569         PR optimization/12547
3570         * lang.c (java_tree_inlining_walk_subtrees): Just walk
3571         BLOCK_EXPR_BODY directly.
3572
3573 2003-11-12  Andrew Haley  <aph@redhat.com>
3574
3575         PR java/11045
3576         * parse.y (fold_constant_for_init): Check that we really do have a
3577         constant.
3578
3579         PR java/11533
3580         * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
3581         init_test_decls being inlined.
3582
3583         PR java/12890:
3584         * parse.y (do_resolve_class): Check return value from
3585         breakdown_qualified().
3586
3587 2003-11-11  Tom Tromey  <tromey@redhat.com>
3588
3589         PR java/12915:
3590         * parse.y (merge_string_cste): Handle case where we have a
3591         pointer that happens to be zero, not null_pointer_node.
3592
3593 2003-11-10  Tom Tromey  <tromey@redhat.com>
3594
3595         * jcf-parse.c (classify_zip_file): Correctly compare
3596         filename_length against length of manifest file's name.
3597
3598 2003-11-08  Tom Tromey  <tromey@redhat.com>
3599
3600         PR java/12894:
3601         * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
3602
3603 2003-11-06  Andrew Haley  <aph@redhat.com>
3604
3605         * expr.c (java_stack_swap): Make sure destination stack slots are
3606         of the correct type.
3607
3608 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
3609
3610         * Make-lang.in (dvi): Move targets to $(docobjdir).
3611         (gcj.dvi): Simplify rule and adjust target.
3612         (gcj.info): Simplify rule.
3613         (gcj.pod): New intermediate rule.
3614         (gcjh.pod): Likewise.
3615         (jv-scan.pod): Likewise.
3616         (jcf-dump.pod): Likewise.
3617         (gij.pod): Likewise.
3618         (jv-convert.pod): Likewise.
3619         (rmic.pod): Likewise.
3620         (rmiregistry.pod): Likewise.
3621         (gcj.1): Delete.
3622         (gcjh.1): Delete.
3623         (jv-scan.1): Delete.
3624         (jcf-dump.1): Delete.
3625         (gij.1): Delete.
3626         (jv-convert.1): Delete.
3627         (rmic.1): Delete.
3628         (rmiregistry.1): Delete.
3629
3630 2003-11-02  Jeff Sturm  <jsturm@one-point.com>
3631
3632         Fixes PR java/12866.
3633         * parse.y (resolve_qualified_expression_name): Move test
3634         for outer field access methods from here...
3635         (check_thrown_exceptions) ...to here.
3636
3637 2003-11-01  Kelley Cook  <kcook@gcc.gnu.org>
3638
3639         * .cvsignore: Delete.
3640
3641 2003-10-28  Frank Ch. Eigler  <fche@redhat.com>
3642
3643         * verify.c (verify_jvm_instructions): Don't warn about legal
3644         eh binding regions generated for example by jdk 1.4.1.
3645
3646 2003-10-24  David S. Miller  <davem@redhat.com>
3647
3648         * jcf-parse.c (jcf_parse): Fix args to fatal_error().
3649
3650 2003-10-22  Andrew Haley  <aph@redhat.com>
3651
3652         * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
3653         (java_get_callee_fndecl): New.
3654
3655         * jcf-parse.c (java_parse_file): Call emit_catch_table().
3656
3657         * java-tree.h (ctable_decl): New.
3658         (catch_classes):  New.
3659         (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
3660
3661         * decl.c (java_init_decl_processing): Add catch_class_type.
3662         Add ctable_decl.
3663         Add catch_classes field.
3664
3665         * class.c (build_indirect_class_ref): Break out from
3666         build_class_ref.
3667         (make_field_value): Check flag_indirect_dispatch.
3668         (make_class_data): Ditto.
3669         Tidy uses of PUSH_FIELD_VALUE.
3670         Add field catch_classes.
3671         (make_catch_class_record): New.
3672
3673         * java-tree.h (PUSH_FIELD_VALUE): Tidy.
3674
3675 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3676
3677         * jcf-write.c: Follow spelling conventions.
3678         * parse.y: Likewise.
3679
3680 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3681
3682         * ChangeLog: Fix typos.
3683         * expr.c: Fix comment typos.
3684         * jcf-write.c: Likewise.
3685         * lang.c: Likewise.
3686         * lex.c: Likewise.
3687         * mangle.c: Likewise.
3688         * parse-scan.y: Likewise.
3689         * parse.y: Likewise.
3690
3691 2003-10-22  Tom Tromey  <tromey@redhat.com>
3692
3693         * expr.c (expand_byte_code): Only warn about dead bytecode when
3694         extra_warnings is set.
3695
3696 2003-10-22  Bryce McKinlay  <bryce@mckinlay.net.nz>
3697
3698         Fix for PR java/12586.
3699         * mangle.c (find_compression_record_match): Don't iterate through
3700         package namespace elements unless they all match compression_table
3701         entries.
3702
3703 2003-10-20  Kelley Cook  <kcook@gcc.gnu.org>
3704
3705         * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
3706         (generate-manpages): Likewise.
3707         (java.maintainer-clean): Likewise.
3708         (gcj.info): Likewise.
3709         (gcj.1): Likewise.
3710         (gcjh.1): Likewise.
3711         (jv-scan.1): Likewise.
3712         (jcf-dump.1): Likewise.
3713         (gij.1): Likewise.
3714         (jv-convert.1): Likewise.
3715         (rmic.1): Likewise.
3716         (rmiregistry.1): Likewise.
3717         (java.install-man): Likewise.
3718         (parse-scan.o): Move and define complete compile line.
3719         (parse.o): Likewise.
3720         (jcf-tree-inline.o): Move.
3721
3722 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
3723
3724         * Make-lang.in (info): Update dependencies.
3725         (java.install-info): Remove.
3726         ($(srcdir)/java/gcj.info): Replace with ...
3727         ($(docobjdir)/gcj.info): ... this.
3728
3729 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
3730
3731         * Make-lang.in: Replace uses of $(target_alias) with
3732         $(target_noncanonical).
3733
3734 2003-10-09  Tom Tromey  <tromey@redhat.com>
3735
3736         * decl.c (java_init_decl_processing): Declare signers field.
3737         * class.c (make_class_data): Set signers field.
3738
3739 2003-10-09  Jason Merrill  <jason@redhat.com>
3740
3741         * parse.y (patch_assignment): Use make_node to create a BLOCK.
3742         * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
3743         POINTER_TYPE.
3744
3745 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
3746
3747         * Make-lang.in (java.info): Replace with ...
3748         (info): ... this.
3749         (java.dvi): Replace with ...
3750         (dvi): ... this.
3751         (java.generated-manpages): Replace with ...
3752
3753 2003-10-03  Kelley Cook  <kelleycook@wideopenwest.com>
3754
3755         * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
3756
3757 2003-10-01  Andrew Haley  <aph@redhat.com>
3758
3759         * jcf-parse.c (java_parse_file): Write otable and atable.
3760         * java-tree.h (atable_methods): New.
3761         (atable_decl): New.
3762         (atable_syms_decl): New.
3763         (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
3764         JTI_ATABLE_SYMS_DECL.  Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
3765         (symbol_*type): Rename method_symbol* to symbol*type.
3766         (emit_offset_symbol_table): Delete.
3767         (emit_symbol_table): New.
3768         (get_symbol_table_index): New.
3769         (atable_type): New.
3770         * expr.c (build_field_ref): Handle flag_indirect_dispatch.
3771         (build_known_method_ref): Likewise.
3772         (get_symbol_table_index): Rename from get_offset_table_index.
3773         Parameterize to allow re-use by differing types of symbol table.
3774         (build_invokevirtual): Pass table to get_offset_table_index.
3775         * decl.c (java_init_decl_processing): Push types and decls for
3776         atable and atable_syyms.
3777         * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
3778         (make_class_data): Add new fields atable and atable_syms.
3779         (emit_symbol_table): Rename from emit_offset_symbol_table.
3780         Parameterize to allow re-use by different types of symbol table.
3781         (build_symbol_entry): Renamed from build_method_symbols_entry.
3782
3783 2003-09-30  Roger Sayle  <roger@eyesopen.com>
3784
3785         * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
3786         semantics for SAVE_EXPR, by caching the result in a temporary.
3787
3788 2003-09-28  Richard Henderson  <rth@redhat.com>
3789
3790         * check-init.c (check_init): Save and restore input_location
3791         instead of file and line separately.
3792         * decl.c (java_expand_body): Likewise.
3793         * jcf-write.c (generate_bytecode_insns): Likewise.
3794         * parse.y (safe_layout_class): Likewise.
3795         * jcf-parse.c (read_class, parse_class_file): Likewise.
3796         (java_parse_file): Use %H for warning locator.
3797
3798 2003-09-28  Roger Sayle  <roger@eyesopen.com>
3799
3800         * expr.c (java_check_reference): Use the semantics of COND_EXPRs
3801         with void-type branches instead of using a COMPOUND_EXPR.
3802
3803 2003-09-28  Jeff Sturm  <jsturm@one-point.com>
3804
3805         * decl.c (java_optimize_inline, dump_function): Remove.
3806         * java-tree.h (java_optimize_inline): Remove declaration.
3807         * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
3808         * parse.y (source_end_java_method, java_expand_classes):
3809         Likewise.  Remove dead code.
3810
3811 2003-09-27  Roger Sayle  <roger@eyesopen.com>
3812
3813         * lang.c (java_init_options): Set flag_evaluation_order.
3814         * expr.c (force_evaluation_order): Don't attempt to force
3815         evaluation order of binary operations using save_expr.
3816         * parse.y (java_complete_lhs): No longer need to call
3817         force_evaluation_order when constructing binary operators.
3818
3819 2003-09-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
3820             Bryce McKinlay  <bryce@mckinlay.net.nz>
3821
3822         PR java/1333:
3823         * parse.y (not_accessible_field_error): New function.
3824         (resolve_expression_name): Check field access permissions.
3825         (resolve_qualified_expression_name): Use
3826         not_accessible_field_error.
3827         (resolve_qualified_expression_name): Likewise.
3828
3829 2003-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3830
3831         * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
3832
3833 2003-09-23  Roger Sayle  <roger@eyesopen.com>
3834
3835         * jcf-write.c (generate_bytecode_insns): Optimize binary operations
3836         with equal operands without side-effects.
3837
3838 2003-09-22  Jeff Sturm  <jsturm@one-point.com>
3839
3840         * decl.c (java_init_decl_processing): Don't emit otable decls
3841         if flag_indirect_dispatch is not set.
3842
3843 2003-09-21  Richard Henderson  <rth@redhat.com>
3844
3845         * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
3846         resource.c: Revert.
3847
3848 2003-09-21  Richard Henderson  <rth@redhat.com>
3849
3850         * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
3851         resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
3852
3853 2003-09-20  Richard Henderson  <rth@redhat.com>
3854
3855         * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
3856
3857 2003-09-18  Roger Sayle  <roger@eyesopen.com>
3858
3859         * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
3860         * check-init.c (check_init): Likewise.
3861
3862 2003-09-18  Roger Sayle  <roger@eyesopen.com>
3863
3864         * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
3865
3866 2003-09-16  Andrew Haley  <aph@redhat.com>
3867
3868         * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
3869
3870 2003-09-17  Ranjit Mathew  <rmathew@hotmail.com>
3871
3872         Fixes PR java/9577
3873         * mangle.c (find_compression_record_match): Skip
3874         over a "6JArray" (the array template mangled string)
3875         IDENTIFIER_NODE.
3876         (mangle_array_type): Correct minor typo.
3877         (atms): Move definition to the beginning.
3878
3879 2003-09-16  Bryce McKinlay  <bryce@mckinlay.net.nz>
3880
3881         * class.c (add_miranda_methods): Ensure super-interfaces are laid
3882         out. Fix for PR java/12254.
3883
3884 2003-09-11  Richard Henderson  <rth@redhat.com>
3885
3886         * parse.y (source_end_java_method): Update for new
3887         cgraph_finalize_function argument.
3888
3889 2003-09-09  Richard Henderson  <rth@redhat.com>
3890
3891         * parse.y (source_end_java_method): Update call to
3892         cgraph_finalize_function.
3893
3894 2003-09-03  Jeff Sturm  <jsturm@one-point.com>
3895
3896         * decl.c (java_expand_body): New function.
3897         * expr.c (build_class_init): Set DECL_IGNORED_P.
3898         * java-tree.h (start_complete_expand_method,
3899         java_expand_body): Declare.
3900         * jcf-parse.c (cgraph.h): Include.
3901         (java_parse_file): Handle flag_unit_at_a_time.
3902         * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
3903         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
3904         (java_estimate_num_insns): Use walk_tree_without_duplicates.
3905         (java_start_inlining): New function.
3906         * parse.h (java_finish_classes): Declare.
3907         * parse.y: Include cgraph.h.
3908         (block): Don't special-case empty block production.
3909         (craft_constructor): Set DECL_INLINE.
3910         (source_end_java_method): Handle flag_unit_at_a_time.
3911         Replace inline code with call to java_expand_body.
3912         (start_complete_expand_method): Remove static modifier.
3913         (java_expand_method_bodies): Patch function tree for
3914         class initialization and/or synchronization as needed.
3915         Don't begin RTL expansion yet.
3916         (java_expand_classes): Check flag_unit_at_a_time before
3917         calling finish_class.
3918         (java_finish_classes): New function.
3919         (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
3920         (patch_assignment): Set DECL_CONTEXT on temporary variable.
3921         (emit_test_initialization): Set DECL_IGNORED_P.
3922
3923 2003-09-03  Roger Sayle  <roger@eyesopen.com>
3924
3925         * builtins.c (enum builtin_type): Delete unused enumeration.
3926         * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
3927
3928 2003-08-28  Tom Tromey  <tromey@redhat.com>
3929
3930         * gcj.texi (Extensions): Document gcjlib URLs.
3931
3932 2003-08-20  Tom Tromey  <tromey@redhat.com>
3933
3934         * gcj.texi (Extensions): Added xref.
3935         (libgcj Runtime Properties): Document
3936         gnu.gcj.runtime.VMClassLoader.library_control.
3937
3938 2003-08-20  Andrew Haley  <aph@redhat.com>
3939
3940         * except.c (prepare_eh_table_type): Use new encoding for exception
3941         handlers when using -fno-assume-compiled.
3942
3943 2003-08-13  Tom Tromey  <tromey@redhat.com>
3944
3945         * gcj.texi (Invoking gij): Document -X and -?.
3946
3947 2003-08-13  Mohan Embar  <gnustuff@thisiscool.com>
3948
3949         * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
3950         GCJH_OBJS, JCFDUMP_OBJS
3951         * win32-host.c: Removed the unnecessary and broken dependency
3952         on jcf.h
3953
3954 2003-08-11  Tom Tromey  <tromey@redhat.com>
3955
3956         * parse.y (java_check_regular_methods): Typo fixes.  Call
3957         check_interface_throws_clauses.  Use
3958         check_concrete_throws_clauses.
3959         (check_interface_throws_clauses): New function.
3960         (check_concrete_throws_clauses): New function.
3961         (hack_is_accessible_p): New function.
3962         (find_most_specific_methods_list): Added FIXME.
3963         * typeck.c (lookup_do): Use `flags' argument to decide what to
3964         do.  Reimplemented.
3965         (lookup_argument_method_generic): New function.
3966         (lookup_argument_method2): Removed.
3967         * jcf.h (ACC_INVISIBLE): New define.
3968         * jcf-write.c (generate_classfile): Skip invisible methods.
3969         * class.c (add_miranda_methods): New function.
3970         (layout_class_methods): Use it.
3971         (get_access_flags_from_decl): Use ACC_INVISIBLE.
3972         * java-tree.h (METHOD_INVISIBLE): New define.
3973         (lang_decl_func) [invisible]: New field.
3974         (lookup_argument_method_generic): Declare.
3975         (SEARCH_INTERFACE): New define.
3976         (SEARCH_SUPER): Likewise.
3977         (SEARCH_ONLY_INTERFACE): Likewise.
3978         (SEARCH_VISIBLE): Likewise.
3979         (lookup_argument_method2): Removed declaration.
3980
3981 2003-08-05  Tom Tromey  <tromey@redhat.com>
3982
3983         Fix for PR java/11600:
3984         * parse.y (java_complete_lhs): See whether we're calling a method
3985         on an array.
3986         (check_thrown_exceptions): Added `is_array_call' argument;
3987         fixed `clone' checking; updated all callers.
3988
3989 2003-08-05  Steven Bosscher  <steven@gcc.gnu.org>
3990
3991         * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
3992
3993 2003-08-03  Tom Tromey  <tromey@redhat.com>
3994
3995         * java-tree.h (METHOD_TRANSIENT): Removed.
3996         * decl.c (pushdecl): Removed some dead code.
3997         * class.c (get_access_flags_from_decl): Can't have transient
3998         method.
3999         (add_method_1): Can't have a transient method.
4000
4001 2003-07-28  Andreas Jaeger  <aj@suse.de>
4002
4003         * jvspec.c: Convert to ISO C90 prototypes.
4004
4005 2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>
4006
4007         * decl.c (force_poplevels): Fix warning call.
4008
4009 2003-07-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4010
4011         * expr.c (expand_java_field_op): Don't use xxx_with_decl
4012         (expand_java_field_op): Likewise.
4013         * class.c (layout_class_method): Likewise
4014         (emit_register_classes): Likewise.
4015         * decl.c (pushdecl): Likewise.
4016         (poplevel): Likewise.
4017         (force_poplevels): Likewise.
4018         (give_name_to_locals): Likewise.
4019         * check-init.c (check_for_initialization): Likewise.
4020
4021 2003-07-24  Jason Merrill  <jason@redhat.com>
4022
4023         * java-tree.h: Move boolean_type_node et al to the back end.
4024
4025 2003-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4026
4027         * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary