OSDN Git Service

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