OSDN Git Service

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