OSDN Git Service

* except.h (struct eh_region_d): Add use_cxa_end_cleanup.
[pf3gnuchains/gcc-fork.git] / gcc / java / ChangeLog
1 2009-09-28  Richard Henderson  <rth@redhat.com>
2
3         * builtins.c (initialize_builtins): Update call to
4         build_common_builtin_nodes.
5         * lang.c (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
6
7 2009-09-14  Richard Henderson  <rth@redhat.com>
8
9         * builtins.c (initialize_builtins): Update call to
10         build_common_builtin_nodes.
11         * decl.c (java_init_decl_processing): Don't call
12         default_init_unwind_resume_libfunc.
13         * except.c: Include tree-iterator.h.
14         (build_exception_object_var): New.
15         (build_exception_object_ref): Use it.
16         (expand_end_java_handler): Initialize it from __builtin_eh_pointer.
17         Attach all CATCH_EXPRs to a single TRY_CATCH_EXPR.
18         * java-tree.h (DECL_FUNCTION_EXC_OBJ): New.
19
20 2009-09-13  Richard Guenther  <rguenther@suse.de>
21         Rafael Avila de Espindola  <espindola@google.com>
22
23         * decl.c (do_nothing): Remove.
24         (java_init_decl_processing): Do not set lang_eh_runtime_type.
25         * Make-lang.in (lang.o): Add $(EXCEPT_H) dependency.
26         * lang.c (java_eh_personality): New.
27         (java_eh_personality_decl): Likewise.
28         (LANG_HOOKS_EH_PERSONALITY): Define.
29
30 2009-09-03  Diego Novillo  <dnovillo@google.com>
31
32         * lang.c (lang_hooks): Remove const qualifier.
33
34 2009-09-01  Jakub Jelinek  <jakub@redhat.com>
35
36         * boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT
37         type.
38
39 2009-09-01  Richard Guenther  <rguenther@suse.de>
40
41         * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
42         * java-tree.h (java_mark_addressable): Likewise.
43         * typeck.c (java_mark_addressable): Likewise.
44
45 2009-08-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
46
47         * Make-lang.in (java.install-pdf): Install gcj.pdf in
48         $(pdfdir)/gcc, alongside the other manuals.
49
50 2009-08-12  Andrew Haley  <aph@redhat.com>
51
52         * builtins.c (compareAndSwapInt_builtin): Use
53         flag_use_atomic_builtins.
54         (compareAndSwapLong_builtin): Likewise.
55         (compareAndSwapObject_builtin): Likewise.
56         * jvspec.c: Add flag_use_atomic_builtins.
57         * gcj.texi: Likewise.
58         * java-tree.h: Likewise.
59         * lang.opt: Likewise.
60
61 2009-08-11  Dodji Seketeli  <dodji@redhat.com>
62
63         PR debug/40990
64         * lang.c (put_decl_node): Outputs different level of information
65         depending on the verbosity level.
66
67 2009-07-31  Andrew Haley  <aph@redhat.com>
68
69         PR java/40867
70         * decl.c (java_replace_references): Set EXPR_LOCATION on all
71         generated expressions.
72         (binding_level.loc): new field.
73         (clear_binding_level): Initialize loc.
74         (set_input_location): New function.
75         (pushlevel): Set new binding_level.loc.
76         (poplevel): Set EXPR_LOCATION on the new BIND_EXPR_BODY.
77         (start_java_method): Set DECL_SOURCE_LOCATION of this new method.
78         (java_add_stmt): Set the EXPR_LOCATION on all subtrees of new_stmt.
79
80 2009-07-17  Richard Guenther  <rguenther@suse.de>
81
82         PR c/40401
83         * java-gimplify.c (java_genericize): Do not gimplify here.
84         But replace all local references.
85         (java_gimplify_expr): Do not replace local references here.
86         (java_gimplify_modify_expr): Likewise.
87         * jcf-parse.c (java_parse_file): Do not finalize the CU or
88         optimize the cgraph here.
89         * decl.c (java_replace_reference): Make static.
90         (java_replace_references): New function.
91         (end_java_method): Clear base_decl_map.
92         * java-tree.h (java_replace_references): Declare.
93         (java_replace_reference): Remove.
94
95 2009-07-14  Taras Glek  <tglek@mozilla.com>
96             Rafael Espindola  <espindola@google.com>
97
98         * Make-lang.in (java.install-plugin): New target for
99         installing plugin headers.
100
101 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
102
103         * class.c: Replace %J by an explicit location. Update all calls.
104         
105 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
106
107         * jcf-parse.c: Replace %H by an explicit location. Update all calls.
108
109 2009-06-29  Andrew Haley  <aph@redhat.com>
110
111         PR java/40590
112         * java-tree.h (cxx_keyword_p): New declaration.
113         * mangle_name.c (utf8_cmp): Move here from mangle.c.
114         (cxx_keywords): Likewise.
115         (cxx_keyword_p): Likewise.
116         (MANGLE_CXX_KEYWORDS): New macro.
117         (append_gpp_mangled_name): Use MANGLE_CXX_KEYWORDS.
118         (append_gpp_mangled_name): Likewise.
119         * mangle.c: Move code to mangle_name.c. 
120         (mangle_member_name): Don't call cxx_keyword_p.
121
122 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
123
124         * java-gimplify.c (java_gimplify_block): New argument to
125         build_empty_stmt.
126         * expr.c (force_evaluation_order): Same.
127         * typeck.c: Add location to build_decl or PUSH_FIELD calls.
128         * class.c: Same.
129         * decl.c: Same.
130         * jcf-parse.c: Same.
131         * constants.c: Same.
132         * resource.c: Same.
133         * except.c: Same.
134         * builtins.c: Same.
135         * expr.c: Same.
136         * java-tree.h (PUSH_FIELD): Add location field.
137         
138 2009-06-09  Ian Lance Taylor  <iant@google.com>
139
140         * verify.h: Remove extern "C".
141
142 2009-06-07  Ian Lance Taylor  <iant@google.com>
143
144         * jcf-parse.c (handle_constant): Change local variable 'kind' to
145         unsigned int.
146
147 2009-06-01  Ian Lance Taylor  <iant@google.com>
148
149         * jcf-io.c (find_class): Use CONST_CAST.
150
151 2009-05-27  Ian Lance Taylor  <iant@google.com>
152
153         * Make-lang.in ($(XGCJ)$(exeext)): Change $(COMPILER) to
154         $(LINKER).
155         (jc1$(exeext), jcf-dump$(exeext), jvgenmain$(exeext)): Likewise.
156
157 2009-05-26  Ian Lance Taylor  <iant@google.com>
158
159         * Make-lang.in (jvspec.o): Use $(COMPILER).
160         ($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise.
161         (jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise.
162
163 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
164
165         * Make-lang.in (GCJ): Renamed to...
166         (XGCJ): ... this.
167
168 2009-04-27  Ian Lance Taylor  <iant@google.com>
169
170         * builtins.c (java_builtins): Add casts to enum type.
171         * verify-impl.c (check_class_constant): Add cast to enum type.
172         (check_constant, check_wide_constant): Likewise.
173
174 2009-04-27  Richard Guenther  <rguenther@suse.de>
175
176         PR java/38374
177         * constants.c (build_constants_constructor): Retain the old
178         pointer type as valid TYPE_POINTER_TO after patching the
179         type of the constant pool decl.
180
181 2009-04-24  Ian Lance Taylor  <iant@google.com>
182
183         * jcf-parse.c (handle_constant): Add cast to enum type.
184
185 2009-04-21  Taras Glek <tglek@mozilla.com>
186
187         * builtins.c: Update GTY annotations to new syntax
188         * decl.c: Likewise
189         * java-tree.h: Likewise
190         * jcf.h: Likewise
191         * lang.c: Likewise
192
193 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
194
195         * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
196         license notices.
197
198 2009-04-18  Ian Lance Taylor  <iant@google.com>
199
200         * verify-impl.c (verify_instructions_0): Add cast to enum type.
201
202 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
203
204         * builtins.c (compareAndSwapLong_builtin,
205         compareAndSwapInt_builtin, compareAndSwapObject_builtin,
206         VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc.
207
208 2009-03-31  Richard Guenther  <rguenther@suse.de>
209
210         * java-gimplify.c (java_gimplify_expr): Do not manually gimplify
211         the first operand of binary and comaprison expressions.
212
213 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
214
215         PR rtl-optimization/323
216         * lang.c (java_post_options): Set flag_excess_precision_cmdline.
217         Give an error for -fexcess-precision=standard for processors where
218         the option is significant.
219
220 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
221
222         * lang.opt: Unify help text for -Wdeprecated.
223
224 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
225
226         * jcf-dump.c (version): Update copyright notice dates.
227
228 2009-01-16  Richard Guenther  <rguenther@suse.de>
229
230         PR tree-optimization/38835
231         PR middle-end/36227
232         * builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR.
233
234 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
235
236         PR bootstrap/38262
237         * Make-lang.in (jc1): Add BACKENDLIBS, remove GMPLIBS.
238
239 2008-11-04  Andrew Haley  <aph@redhat.com>
240
241         PR java/37068
242         * jcf-parse.c (java_emit_static_constructor): Don't call
243         cgraph_build_static_cdtor.  Rewrite.
244
245 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
246
247         * Make-lang.in (check-java-subtargets): New target.
248
249 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
250
251         PR target/35483
252         * Make-lang.in (class.o): Depend on $(TM_P_H).
253         (expr.o): Same.
254         * class.c: Include tm_p.h.
255         * expr.c: Include tm_p.h.
256
257 2008-10-14  Andrew Haley  <aph@redhat.com>
258
259         * constants.c (build_constant_data_ref): Make sure we only build
260         one copy of the decl for the constant pool.
261
262 2008-09-22  Andrew Haley  <aph@redhat.com>
263
264         * expr.c (rules): Add new rule for
265         gnu.java.lang.VMCPStringBuilder.toString.
266         (rewrite_rule.new_classname): New field.
267         (maybe_rewrite_invocation): Use new_classname field instead of
268         DECL_CONTEXT (*method_p).
269         Allow rewrite_arglist to be NULL.
270
271 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
272
273         * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
274         (java_get_callee_fndecl): Kill.
275
276 2008-09-17  Jan Hubicka  <jh@suse.cz>
277
278         PR c++/18071
279         * class.c (add_method_1): Do not initialize DECL_INLINE.
280         (make_local_function_alias): Likewise.
281         * expr.c (rewrite_arglist_getcaller): Set DECL_UNINLINABLE.
282         * lang.c (java_decl_ok_for_sibcall): Use DECL_UNINLINABLE.
283
284 2008-09-09  Richard Guenther  <rguenther@suse.de>
285
286         * decl.c (build_result_decl): Remove no longer applicable
287         promotion.
288
289 2008-09-05  David Daney  <ddaney@avtrex.com>
290
291         * gcj.texi (-freduced-reflection): Clarify option's restrictions.
292
293 2008-08-21  David Daney  <ddaney@avtrex.com>
294
295         * class.c (make_class_data): Don't add field_index when
296         flag_reduced_reflection set.
297
298 2008-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
299
300         * typeck.c (convert): Do not check for TARGET_FLOAT_FORMAT.
301
302 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
303
304         PR 28875
305         * lang.c (java_handle_option): Replace set_Wunused with
306         warn_unused.
307
308 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
309
310         * gcj.texi: Update copyright years.  Do not list GPL as
311         Invariant Section.
312
313 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
314
315         * class.c (build_utf8_ref): Set DECL_SIZE and DECL_SIZE_UNIT
316         from ctype's sizes.
317
318         * class.c (build_utf8_ref): Pad initializer string to utf8const_type's
319         alignment.
320
321 2008-07-29  Jan Hubicka  <jh@suse.cz>
322
323         * lang.c (java_post_options): Remove handling of flag_no_inline.
324
325 2008-07-28  Richard Guenther  <rguenther@suse.de>
326
327         Merge from gimple-tuples-branch.
328
329         2008-07-18  Richard Guenther  <rguenther@suse.de>
330
331         * expr.c: Include tree-iterator.h.
332         * Make-lang.in (expr.o): Add tree-iterator.h dependency.
333
334         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
335
336         * java-gimplify.c: Include gimple.h instead of tree-gimple.h.
337         * expr.c: Same.
338
339         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
340
341         * java-gimplify.c (java_gimplify_expr): Same.
342         (java_gimplify_modify_expr): Same.
343         * java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN.
344
345         2008-05-02  Diego Novillo  <dnovillo@google.com>
346
347         * expr.c (build_java_throw_out_of_bounds_exception): Fix
348         mixed declarations and code.
349
350         2008-05-02  Doug Kwan  <dougkwan@google.com>
351         
352         * expr.c (build_java_throw_out_of_bounds_exception ): Wrap call to
353         _Jv_ThrowBadArrayIndex with a COMPOUND_EXPR to return 0.
354
355         2008-02-19  Diego Novillo  <dnovillo@google.com>
356
357         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
358
359         * java-gimplify.c (java_gimplify_self_mod_expr): Change
360         gimple_seq arguments to gimple_seq *.  Update all users.
361
362         2007-11-26  Aldy Hernandez  <aldyh@redhat.com>
363
364         * java-gimplify.c (java_gimplify_expr): Make pre_p and post_p
365         sequences.
366         (java_gimplify_self_mod_expr): Same.                                    
367         * java-tree.h (java_gimplify_expr): Make pre_p and post_p               
368         sequences.
369
370 2008-07-24  Jan Hubicka  <jh@suse.cz>
371
372         * java/decl.c: Include cgraph.h
373         (end_java_method): Remove non-unit-at-a-time code.
374         (java_mark_decl_local): Likewise; sanity check that we don't touch
375         finalized nodes.
376
377 2008-07-15  Jan Hubicka  <jh@suse.cz>
378
379         * lang.c (java_init_options): Enable unit-at-a-time by default.
380
381 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
382
383         * Make-lang.in (jvspec.o): Fix dependencies.
384
385 2008-07-06  Tom Tromey  <tromey@redhat.com>
386
387         * Make-lang.in (java/parse.o-warn): Remove.
388         (java/jcf-io.o-warn): Remove.
389
390 2008-07-05  Tom Tromey  <tromey@redhat.com>
391
392         * jcf-io.c: Don't include fnmatch.h.  Don't use JCF_USE_SCANDIR.
393         (compare_path): Remove.
394         (java_or_class_file): Likewise.
395         (memoized_dirlist_entry): Likewise.
396         (memoized_dirlist_hash): Likewise.
397         (memoized_dirlist_lookup_eq): Likewise.
398         (memoized_dirlists): Likewise.
399         (caching_stat): Likewise.
400         (find_class): Use stat.
401         * jcf.h (JCF_USE_SCANDIR): Remove.
402
403 2008-06-30  Joshua Sumali  <jsumali@redhat.com>
404
405         * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and
406         doc/rebuild-gcj-db.1
407         (java.uninstall): Likewise.
408         (java.maintainer-clean): Likewise.
409         (aot-compile.pod): New rule.
410         (rebuild-gcj-db.pod): New rule.
411         (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1
412         * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db.
413
414 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
415
416         * Make-lang.in (java/jcf-io.o-warn): New.
417
418 2008-06-24  Tom Tromey  <tromey@redhat.com>
419
420         * jcf-path.c (jcf_path_init): Don't name variable 'try'.
421         * expr.c (add_type_assertion): Rename argument.
422         (build_java_arrayaccess): Don't name variable 'throw'.
423         (ARRAY_NEW_MULTI): Don't name variable 'class'.
424         * jcf-io.c (find_class): Don't name variable 'class'.
425         * mangle.c (compression_table_add): Don't name variable 'new'.
426         * constants.c (cpool_for_class): Rename argument.
427         (alloc_constant_fieldref): Likewise.
428         * jcf-parse.c (handle_innerclass_attribute): Don't name variable
429         'class'.
430         (read_class): Likewise.
431         (parse_zip_file_entries): Likewise.
432         (process_zip_dir): Likewise.
433         * decl.c (java_mark_class_local): Rename argument.
434         * class.c (GEN_TABLE): Use type_name, not typename.
435         (gen_indirect_dispatch_tables): Likewise.
436         (add_field): Rename argument.
437         (is_compiled_class): Likewise.
438         (safe_layout_class): Likewise.
439         (emit_assertion_table): Likewise.
440         * typeck.c (has_method): Rename argument.
441
442 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
443
444         * class.c (ident_subst, mangled_classname, unmangle_classname,
445         gen_indirect_dispatch_tables, add_method_1,
446         build_fieldref_cache_entry, make_local_function_alias,
447         layout_class, java_treetreehash_find, java_treetreehash_new,
448         split_qualified_name): Fix for -Wc++-compat.
449         * constants.c (set_constant_entry, cpool_for_class): Likewise.
450         * decl.c (make_binding_level, java_dup_lang_specific_decl,
451         start_java_method): Likewise.
452         * except.c (prepare_eh_table_type): Likewise.
453         * expr.c (type_assertion_hash, note_instructions): Likewise.
454         * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC,
455         MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
456         * jcf-io.c (jcf_filbuf_from_stdio, opendir_in_zip, find_class):
457         Likewise.
458         * jcf-parse.c (reverse, java_read_sourcefilenames,
459         annotation_grow, rewrite_reflection_indexes, java_parse_file,
460         process_zip_dir): Likewise.
461         * jcf-path.c (add_entry, add_path, jcf_path_init,
462         jcf_path_extdirs_arg): Likewise.
463         * jcf-reader.c (jcf_parse_constant_pool): Likewise.
464         * jvgenmain.c (do_mangle_classname): Likewise.
465         * lang.c (put_decl_string): Likewise.
466         * verify-impl.c (make_state_copy, make_state, add_new_state):
467         Likewise.
468
469 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
470
471         * gcj.texi: Expand TABs, remove whitespace from blank lines.
472
473 2008-06-14  Tom Tromey  <tromey@redhat.com>
474
475         PR java/36247:
476         * class.c (build_class_ref): Initialize this_classdollar when
477         needed.
478
479 2008-05-23  Andrew Haley  <aph@redhat.com>
480
481         * jcf-parse.c (give_name_to_class): Call find_sourcefile to find full
482         pathname of source file.
483
484 2008-05-12  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
485
486         * jcf-dump.c (print_constant): Use
487         HOST_LONG_LONG_FORMAT.
488
489 2008-05-07  Kenneth Zadeck <zadeck@naturalbridge.com>
490
491         * decl.c (java_init_decl_processing): Change DECL_IS_PURE to
492         DECL_PURE_P.
493
494 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
495
496         * class.c (build_utf8_ref): Don't set TREE_INVARIANT.
497         (build_classdollar_field): Don't set TREE_INVARIANT.
498         (get_dispatch_table): Don't set TREE_INVARIANT.
499         (make_class_data): Don't set TREE_INVARIANT.
500         (build_symbol_entry): Don't set TREE_INVARIANT.
501         (emit_symbol_table): Don't set TREE_INVARIANT.
502         * constants.c (build_constant_data_ref): Don't set TREE_INVARIANT.
503         (build_ref_from_constant_pool): Don't set TREE_INVARIANT.
504         * resource.c (compile_resource_data): Don't set TREE_INVARIANT.
505         * expr.c (cache_cpool_data_ref): Don't set TREE_INVARIANT.
506
507 2008-04-03  Tom Tromey  <tromey@redhat.com>
508
509         * Make-lang.in (java_OBJS): New variable.
510
511 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
512
513         * java-tree.h (insert_block): Kill.
514         * decl.c (insert_block): Kill.
515                 
516 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
517
518         * gcj.texi: Include gpl_v3.texi instead of gpl.texi
519         * Make-lang.in (TEXI_JAVA_FILES): Include gpl_v3.texi instead of
520         gpl.texi.
521
522 2008-03-27  Tom Tromey  <tromey@redhat.com>
523
524         * Make-lang.in: Revert automatic dependency patch.
525
526 2008-03-25  Tom Tromey  <tromey@redhat.com>
527
528         * Make-lang.in: Removed most explicit .o targets.
529         (java/jvspec.o): Reduce to variable setting.  Moved to java/.
530         ($(GCJ)$(exeext)): Update.
531         (JAVA_OBJS): New variable.
532         (JCFDUMP_OBJS): Reformat.
533         (java_OBJS): New variable.
534         (java/jvspec.o-warn): Update.
535         (java/parse.o-warn): Remove.
536         (JAVA_TREE_H): Remove.
537         (java/jcf-io.o): Reduce to variable setting.
538         (ALL_CPPFLAGS): Likewise.
539
540 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
541
542         * mangle.c (java_mangle_decl): Remove dead check.
543
544 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
545
546         * jcf-parse.c (java_parse_file): Assert binding levels are
547         left in order.
548         * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack):
549         Delete.
550
551 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
552
553         * jcf-dump.c (version): Update copyright notice dates.
554
555 2008-02-29  Tom Tromey  <tromey@redhat.com>
556
557         * expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on
558         method.
559         * java-tree.h (struct lang_decl_func): Remove obsolete comment.
560
561 2008-02-26  Tom Tromey  <tromey@redhat.com>
562
563         * lang.c (java_post_options): Remove conditional.
564         * expr.c (expand_byte_code): Remove old location code.
565         * jcf-parse.c (set_source_filename): Remove old location code.
566         (give_name_to_class): Likewise.
567         (jcf_parse): Likewise.
568         (duplicate_class_warning): Likewise.
569         (parse_class_file): Likewise.
570         (java_parse_file): Likewise.
571         * decl.c (finish_method): Remove old location code.
572         * class.c (push_class): Remove old location code.
573
574 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
575
576         PR other/35107
577         * Make-lang.in (jc1): Add $(GMPLIBS).
578
579 2008-01-23  David Daney  <ddaney@avtrex.com>
580
581         * class.c (hide)  Rename to...
582         (java_hide_decl) ... this throughout, and make public.
583         * resource.c (Jr_count): Remove.
584         (compile_resource_data): Call java_mangle_resource_name to generate
585         decl name.  Make resource decl public and hidden.
586         * mangle.c (java_mangle_resource_name): New function.
587         * java-tree.h (java_hide_decl, java_mangle_resource_name): Declare
588         functions.
589
590 2008-01-04  Andrew Haley  <aph@redhat.com>
591
592         PR java/17779
593         * jcf-parse.c (parse_zip_file_entries): Move decl to compile on
594         C90.
595
596 2008-01-03  Andrew Haley  <aph@redhat.com>
597
598         PR java/17779
599         * jcf-parse.c (parse_zip_file_entries): Unset TYPE_ALIAS_SET if
600         we're about to re-layout the type.
601
602 2007-12-20  Alexandre Oliva  <aoliva@redhat.com>
603
604         * lang.c (java_classify_record): Don't return
605         RECORD_IS_INTERFACE for now.
606
607 2007-12-18  Andrew Haley  <aph@redhat.com>
608
609         PR java/27643
610         * jcf-parse.c (java_parse_file): Remove call to
611         java_mark_class_local.
612         (parse_class_file): Reinstate call to java_mark_class_local here.
613         * decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
614         already set, call java_mangle_decl() and make_decl_rtl() to
615         rewrite its name as a hidden alias.
616
617 2007-12-15  Alexandre Oliva  <aoliva@redhat.com>
618
619         PR debug/7081
620         * lang.c (java_classify_record): New.
621         (LANG_HOOKS_CLASSIFY_RECORD): Override.
622
623 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
624
625         PR 34081/C++
626         * decl.c (finish_method): Pass 'false' for the new
627         allocate_struct_function parameter.
628
629 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
630
631         * expr.c (build_jni_stub): Use the computed jni func type for
632         variable meth.
633
634 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
635
636         * class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID.
637
638 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
639
640         * expr.c (type_assertion_hash): Hash type uids rather than
641         tree pointers.
642
643 2007-11-17  David Daney  <ddaney@avtrex.com>
644             Andrew Haley  <aph@redhat.com>
645
646         * constants.c (build_constants_constructor):  Use POINTER_SIZE
647         insead of BITS_PER_WORD in big-endian work around.
648
649 2007-11-07  Tom Tromey  <tromey@redhat.com>
650
651         PR java/34019:
652         * gcj.texi (Input Options): Add missing noun.
653
654 2007-11-02  Tom Tromey  <tromey@redhat.com>
655
656         PR java/33765:
657         * jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files.
658         * zipfile.h (ZIPEMPTYMAGIC): New define.
659
660 2007-11-01  Tom Tromey  <tromey@redhat.com>
661
662         * Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
663         (java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h.
664         (java/jcf-io.o): Depend on zipfile.h.
665
666 2007-10-17  Richard Guenther  <rguenther@suse.de>
667
668         * Make-lang.in (java/builtins.o): Add $(OPTABS_H) and $(EXPR_H)
669         dependencies.
670
671 2007-10-03  Andrew Haley  <aph@redhat.com>
672
673         PR java/33639
674         * class.c (mangled_classname): Detect and replace illegal
675         characters in assembly language symbols.
676         (gen_indirect_dispatch_tables): Call mangled_classname() on
677         the type.
678
679 2007-09-27  Jakub Jelinek  <jakub@redhat.com>
680
681         * lang.c (java_print_error_function): Add third argument.
682
683 2007-09-15  Tom Tromey  <tromey@redhat.com>
684
685         * java-tree.h (struct lang_decl_func) <function_decl_body>:
686         Remove.
687         <init_final>: Likewise.
688         * lang.c (java_dump_tree): Update.
689         * java-tree.h (DECL_FUNCTION_BODY): Remove.
690
691 2007-09-11  Jan Hubicka <jh@suse.cz>
692
693         * decl.c (java_expand_body): Kill.
694         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
695
696 2007-09-06  Tom Tromey  <tromey@redhat.com>
697
698         * jcf-parse.c (parse_class_file): Re-enter the current file.
699
700 2007-09-07  Roman Zippel  <zippel@linux-m68k.org>
701
702         * boehm.c (mark_reference_fields): Move misaligned pointer check
703         after JREFERENCE_TYPE_P test
704
705 2007-09-06  Roman Zippel  <zippel@linux-m68k.org>
706
707         * boehm.c (mark_reference_fields): Don't use bitmap as gc_descr
708         if pointer is misaligned.
709
710 2007-09-06  Tom Tromey  <tromey@redhat.com>
711
712         * lang.c (java_post_options): Update.
713         * jcf-parse.c (set_source_filename): Update.
714         (give_name_to_class): Update.
715         (jcf_parse): Update.
716         (duplicate_class_warning): Update.
717         (parse_class_file): Update.
718         (java_parse_file): Update.
719         * expr.c (expand_byte_code): Update.
720
721 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
722
723         * decl.c (finish_method): Use set_cfun.
724
725 2007-09-04  Andrew Haley  <aph@redhat.com>
726
727         * decl.c (java_init_decl_processing): Call "__cxa_end_cleanup"
728         when using the ARM EABI.
729
730 2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
731
732         * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB.
733
734 2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
735
736         * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
737         CONST_CAST.
738         * jcf.h (JCF_FINISH): Likewise.
739
740 2007-08-28  Tom Tromey  <tromey@redhat.com>
741
742         * Make-lang.in (java.tags): Don't tag '*.y' files.
743
744 2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
745
746         * lang.c (java_decl_ok_for_sibcall): Likewise.
747
748 2007-08-21  Paul Brook  <paul@codesourcery.com>
749             Nathan Sidwell  <nathan@codesourcery.com>
750             Mark Mitchell  <mark@codesourcery.com>
751             Joseph Myers  <joseph@codesourcery.com>
752
753         * jcf-dump.c (version): Use pkgversion_string.  Update copyright
754         date.
755
756 2007-08-20  Richard Guenther  <rguenther@suse.de>
757
758         * lang.c (java_tree_inlining_walk_subtrees): Remove.
759         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove.
760
761 2007-08-17  Tom Tromey  <tromey@redhat.com>
762
763         * typeck.c (find_method_in_interfaces): Update.
764         * jcf-parse.c (load_class): Update.
765         * java-gimplify.c (java_gimplify_component_ref): Removed.
766         (java_gimplify_modify_expr): Update.  Removed pre_p and post_p
767         arguments.
768         (java_gimplify_expr): Update.
769         * decl.c (java_init_decl_processing): Update.
770         * class.c (set_constant_value): Update.
771         (make_class_data): Update.
772         (finish_class): Update.
773         (build_static_field_ref): Update.
774         (is_compiled_class): Update.
775         (maybe_layout_super_class): Update.
776         (layout_class): Update.
777         (layout_class_method): Update.
778         * java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
779         (lang_decl_var) <am, final_iud, cif>: Removed fields.
780         (lang_decl_func) <init_calls_this>: Removed field.
781         (lang_type) <dot_class, verify_method>: Removed fields.
782         (FIELD_NESTED_ACCESS): Removed.
783         (FIELD_NESTED_ACCESS_P): Removed.
784         (DECL_FIELD_FINAL_IUD): Removed.
785         (DECL_LOCAL_FINAL_IUD): Removed
786         (LOCAL_FINAL_P): Removed.
787         (FINAL_VARIABLE_P): Removed.
788         (CLASS_FINAL_VARIABLE_P): Removed.
789         (DECL_BIT_INDEX): Removed.
790         (DECL_INIT_CALLS_THIS): Removed.
791         (FIELD_LOCAL_ALIAS): Removed.
792         (FIELD_LOCAL_ALIAS_USED): Removed.
793         (FIELD_THISN): Removed.
794         (DECL_FUNCTION_INIT_TEST_CLASS): Removed.
795         (LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
796         (LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
797         (TYPE_DOT_CLASS): Removed.
798         (TYPE_VERIFY_METHOD): Removed.
799         (ID_CLASSDOLLAR_P): Removed.
800         (enum java_tree_index) <JTI_CLASSDOLLAR_IDENTIFIER_NODE>:
801         Removed.
802         (classdollar_identifier_node): Removed.
803         (TYPE_UNKNOWN): Removed.
804         (CLASS_FROM_SOURCE_P): Removed.
805         * expr.c (build_jni_stub): Update.
806         (force_evaluation_order): Update.
807         (build_java_empty_stmt): Update.
808         (build_class_init): Update.
809         (java_stack_swap): Update.
810         (build_jni_stub): Update.
811
812 2007-08-17  Tom Tromey  <tromey@redhat.com>
813
814         * java-tree.h (LABEL_TYPE_STATE): Removed.
815         (load_type_state): Removed.
816         (LABEL_PC): Removed.
817         (LABEL_VERIFIED): Removed.
818         (type_states): Declare.
819         * expr.c (type_states): New global.
820         (load_type_state): Now static.  Use type_states.  Changed
821         argument.
822         (lookup_label): Don't set LABEL_PC.
823         (expand_byte_code): Don't use LABEL_VERIFIED.
824         (note_instructions): Initialize type_states.
825         * verify-glue.c (vfy_note_stack_depth): Rewrote.
826         (vfy_note_stack_type): Use type_states.
827         (vfy_note_local_type): Likewise.
828
829 2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
830
831         * jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
832         * jcf.h (JCF_FINISH): Likewise.
833
834 2007-07-31  Nick Clifton  <nickc@redhat.com>
835
836         * java-gimplify.c: Change copyright header to refer to version 3
837         of the GNU General Public License and to point readers at the
838         COPYING3 file and the FSF's license web page.
839         * typeck.c, lang-specs.h, mangle_name.c, jcf-dump.c, class.c,
840         decl.c, config-lang.in, jcf-parse.c, constants.c, Make-lang.in,
841         resource.c, except.c, builtins.c, jvspec.c, java-tree.def,
842         javaop.def, jcf-path.c, verify-glue.c, jcf-depend.c, lang.opt,
843         jcf-reader.c, mangle.c, zextract.c, jcf-io.c, jcf.h, zipfile.h,
844         verify.h, java-except.h, win32-host.c, expr.c, jvgenmain.c,
845         parse.h, lang.c, java-tree.h, javaop.h, boehm.c: Likewise.
846
847 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
848
849         * jcf-io.c (find_class): Fix -Wcast-qual warnings.
850
851 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
852
853         * lang.c (java_get_callee_fndecl): Constify.
854
855 2007-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
856
857         * mangle.c (set_type_package_list): Constify.
858         * verify-glue.c (vfy_make_string): Delete.
859         * verify.h (vfy_make_string): Likewise.
860
861 2007-07-26  Tom Tromey  <tromey@redhat.com>
862
863         * java-tree.h (push_labeled_block, pop_labeled_block): Remove.
864         (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
865         EXIT_BLOCK_LABELED_BLOCK): Likewise.
866         * lang.c (java_tree_inlining_walk_subtrees): Update.
867         (java_dump_tree): Likewise.
868         * java-tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRY_EXPR):
869         Remove.
870         * decl.c (push_labeled_block, pop_labeled_block): Remove.
871         * java-gimplify.c (java_gimplify_labeled_block_expr,
872         java_gimplify_exit_block_expr, java_gimplify_try_expr): Remove.
873         (java_gimplify_expr): Update.
874
875 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
876
877         * class.c (java_treetreehash_hash, java_treetreehash_compare):
878         Constify. 
879         * expr.c (type_assertion_eq): Likewise.
880         * jcf-io.c (compare_path): Likewise.
881         * jcf-parse.c (cmpstringp): Likewise.
882         * verify-impl.c (get_one_type, compute_argument_types,
883         compute_return_type): Likewise. 
884
885 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
886
887         PR target/32462
888         PR libgcj/32465
889         * class.c (hide): Wrap in HAVE_GAS_HIDDEN.
890
891 2007-07-12  Richard Guenther  <rguenther@suse.de>
892
893         * expr.c (expand_java_return): RETURN_EXPR has void type.
894         (build_jni_stub): Likewise.  Use a comparison against zero
895         for null-pointer test in COND_EXPR.
896         (build_field_ref): Build POINTER_PLUS_EXPR with correct
897         type.  Convert result instead.
898         (build_invokevirtual): Likewise.
899
900 2007-07-09  Geoffrey Keating  <geoffk@apple.com>
901
902         PR 32617
903         * lang.c (java_init): Remove setting of force_align_functions_log.
904         * class.c (add_method_1): Set DECL_ALIGN of non-static method
905         to cope with ptrmemfunc_vbit_in_pfn.
906
907 2007-07-03  David Daney  <ddaney@avtrex.com>
908
909         * java/Make-lang.in (doc/gcj.info): Add $(gcc_docdir) to 
910         include path.
911         (doc/gcj.dvi): Same.
912         (doc/gcj.pdf): Same.
913         (java/index.html): Same.
914
915 2007-06-15 Andrew Pinski  <andrew_pinski@playstation.sony.com>
916
917         * class.c (make_class_data): Build the index in sizetype.
918         Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
919         adding to a pointer type.
920         (build_symbol_entry): Likewise.
921         * expr.c (build_java_arrayaccess): Likewise.
922         (build_field_ref): Likewise.
923         (build_known_method_ref): Likewise.
924         (build_invokevirtual): Likewise.
925         * except.c (build_exception_object_ref): Do a
926         NEGATIVE and then a POINTER_PLUS_EXPR instead
927         of a MINUS_EXPR.
928
929 2007-06-11  Rafael Ávila de Espíndola  <espindola@google.com>
930
931         * typeck.c (java_signed_type): Remove.
932         * lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
933         * java-tree.h (java_signed_type): Remove.
934
935 2007-05-18  Geoffrey Keating  <geoffk@apple.com>
936
937         * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx.
938         (print_constant): Likewise.
939
940 2007-05-14  Rafael Ávila de Espíndola  <espindola@google.com>
941
942         * expr.c (build_java_binop): Use unsigned_type_for instead of
943         java_unsigned_type.
944         * java-tree.h (java_unsigned_type): Remove.
945         * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
946         * typeck.c (java_unsigned_type): Remove.
947
948 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
949
950         * java-tree.h (lang_tree_node): Use GENERIC_NEXT
951         instead of checking GIMPLE_STMT_P in chain_next.
952
953 2007-04-06  Colin Walters  <walters@redhat.com>
954
955         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701
956         * jcf-io.c (open_class): Copy 'filename'.
957
958 2007-04-03  Andrew Haley  <aph@redhat.com>
959
960         * jvgenmain.c (main): Change main to use class$, not class$$.
961         (do_mangle_classname): Likewise.
962         * class.c (hide): New function.
963         (add_field): Hide everything that shouldn't be visible outside a
964         DSO.
965         (build_static_class_ref): Likewise.
966         (build_classdollar_field): Likewise.
967         (make_class_data): Likewise.
968         (layout_class_method): Likewise.
969         * expr.c (special_method_p): New function.
970
971         * class.c (push_class): Don't bogusly guess the source filename.
972         * jcf-parse.c (give_name_to_class): Don't set input_location from
973         DECL_ARTIFICIAL decls.
974
975 2007-03-30  Rafael Ávila de Espíndola  <espindola@google.com>
976
977         * typeck.c (java_signed_or_unsigned_type): Removed.
978         (java_signed_type): use get_signed_or_unsigned_type instead of
979         java_signed_or_unsigned_type.
980         (java_unsigned_type): Ditto.
981         * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Removed.
982         * java-tree.h (java_signed_or_unsigned_type): Removed.
983
984 2007-03-26  Tom Tromey  <tromey@redhat.com>
985
986         * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1.
987         (java.maintainer-clean): Likewise.
988         (java.install-man): Likewise.
989         (.INTERMEDIATE): Removed grmiregistry.pod.
990         (grmiregistry.pod): Removed.
991         * gcj.texi (Invoking gcjh): Removed.
992         (Invoking gjnih): Likewise.
993         (Invoking grmiregistry): Likewise.
994         (direntry): Updated.
995         (Top): Likewise.
996         (which-gcj): Removed.
997
998 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
999
1000         * Make-lang.in: Add install-pdf target as copied from
1001         automake v1.10 rules.
1002
1003 2007-02-27  Brooks Moses  <brooks.moses@codesourcery.com>
1004
1005         * gcj.texi: Standardize title page.
1006
1007 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
1008
1009         * class.c: Fix a comment typo.
1010
1011 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
1012             Brooks Moses  <brooks.moses@codesourcery.com>
1013             Lee Millward  <lee.millward@codesourcery.com>
1014
1015         * java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
1016         of build3.
1017         (BUILD_MONITOR_EXIT): Likewise.
1018
1019         * java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
1020         (java_gimplify_modify_expr): Likewise.
1021
1022         * class.c (cache_this_class_ref): Use build_call_expr.
1023         (build_static_field_ref): Likewise.
1024         (emit_indirect_register_classes): Likewise.
1025         (emit_register_classes): Likewise.
1026
1027         * resource.c (write_resource_constructor): Use build_call_expr.
1028
1029         * builtins.c (builtin_creator_function): Change interpretation of
1030         the second parameter to be the whole CALL_EXPR instead of the arglist.
1031         (max_builtin): Tweak parameter list.  Use new CALL_EXPR accessors.
1032         (min_builtin): Likewise.
1033         (abs_builtin): Likewise.
1034         (java_build_function_call_expr): Likewise.
1035         (convert_real): Likewise.
1036         (UNMARSHAL3): Likewise.
1037         (UNMARSHAL4): Likewise.
1038         (UNMARSHAL5): Likewise.
1039         (build_arglist_for_builtin): Delete.  Fix callers to use
1040         build_call_expr instead.
1041         (putObject_builtin): Tweak parameter list.  Use new CALL_EXPR
1042         accessors.
1043         (compareAndSwapInt_builtin): Likewise.
1044         (compareAndSwapLong_builtin): Likewise.
1045         (compareAndSwapObject_builtin): Likewise.
1046         (putVolatile_builtin): Likewise.
1047         (getVolatile_builtin): Likewise.
1048         (VMSupportsCS8_builtin): Likewise.
1049         (check_for_builtin): Pass entire CALL_EXPR to builtin expander
1050         instead of arglist.
1051
1052         * expr.c (build_java_athrow): Use build_call_nary instead of build3.
1053         (build_java_throw_out_of_bounds_exception): Likewise.
1054         (java_check_reference): Likewise.
1055         (build_java_arraystore_check): Likewise.
1056         (build_newarray): Likewise.
1057         (build_anewarray): Likewise.
1058         (expand_java_multinewarray): Use build_call_list instead of build3.
1059         (build_java_monitor): Use build_call_nary instead of build3.
1060         (java_create_object): Likewise.
1061         (expand_java_NEW): Likewise.
1062         (build_instanceof): Likewise.
1063         (expand_java_CHECKCAST): Likewise.
1064         (build_java_soft_divmod): Likewise.
1065         (build_java_binop): Likewise.
1066         (build_field_ref): Likewise.
1067         (build_class_init): Likewise.
1068         (rewrite_arglist_getcaller): Use build_call_expr.
1069         (build_invokeinterface):  Use build_call_nary instead of build3.
1070         (expand_invoke): Use build_call_list instead of build3.
1071         (build_jni_stub): Use build_call_nary, build_call_list, or
1072         build_call_expr instead of build3.
1073         (expand_java_field_op): Use build_call_expr instead of build3.
1074         (force_evaluation_order): Use new CALL_EXPR accessors.
1075
1076         * lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
1077
1078 2007-02-15  David Daney  <ddaney@avtrex.com>
1079
1080         * Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
1081         (java.maintainer-clean):Add gc-analyze.1.
1082         (.INTERMEDIATE): Add gc-analyze.pod.
1083         (gc-analyze.pod): New rule.
1084         (java.install-man): Install gc-analyze.1
1085         * gcj.texi: Add new section for the gc-analyze program.
1086
1087 2007-02-07  Andrew Haley  <aph@redhat.com>
1088
1089         * class.c (uncache_this_class_ref): New.
1090         * expr.c (build_jni_stub): Initialize the class.
1091         (expand_byte_code): Call uncache_this_class_ref after generating
1092         code.
1093
1094 2007-02-06  Tom Tromey  <tromey@redhat.com>
1095
1096         PR java/30714:
1097         * jvspec.c (lang_specific_driver): Check for the '-' in '-I'.
1098
1099 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
1100
1101         * java-tree.h, javaop.def, jcf-parse.c: Fix comment typos.
1102
1103 2007-02-02  Andrew Haley  <aph@redhat.com>
1104
1105         * expr.c (expand_byte_code): Call cache_this_class_ref() and
1106         cache_cpool_data_ref().
1107         Set TYPE_CPOOL_DATA_REF.
1108         (cache_cpool_data_ref): New function.
1109         * constants.c (build_ref_from_constant_pool): Remove special-case
1110         code for flag_indirect_classes.
1111         (build_constant_data_ref): Move special-case code for
1112         flag_indirect_classes here from build_ref_from_constant_pool.
1113         * decl.c (finish_method): Move class initialization from here to
1114         cache_this_class_ref.
1115         * class.c (cache_this_class_ref): New function.
1116         (build_class_ref): Use this_classdollar for the ouput class.
1117
1118 2007-02-02  David Daney  <ddaney@avtrex.com>
1119
1120         * class.c (is_compiled_class): Move check to avoid reloading
1121         current class.
1122         (layout_class_method): Don't calculate DECL_EXTERNAL if it is
1123         already set.
1124
1125 2007-02-01  Andrew Haley  <aph@redhat.com>
1126
1127         PR java/30641
1128         * jcf-parse.c (jcf_parse): Clear the field_offsets bitmap.
1129
1130 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
1131
1132         * class.c, jcf-parse.c: Fix comment typos.
1133
1134 2007-01-30  Tom Tromey  <tromey@redhat.com>
1135
1136         * gcj.texi (Strings): Fix documentation for JvNewString.
1137
1138 2007-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1139
1140         * gcj.texi (Invoking gcjh, Invoking gjnih, Arrays): Fix some
1141         typos.
1142
1143 2007-01-30  Ben Elliston  <bje@au.ibm.com>
1144
1145         * jvspec.c (lang_specific_driver): Remove unused classpath_args.
1146
1147 2007-01-29  Tom Tromey  <tromey@redhat.com>
1148
1149         PR java/30607:
1150         * jvspec.c (lang_specific_driver): Handle separate -I argument.
1151         * lang.opt (-I): Add 'Separate'.
1152
1153 2007-01-29  Andrew Haley  <aph@redhat.com>
1154
1155         * class.c (add_method_1): Mark fndecl as external unless we are
1156         compiling it into this object file.
1157
1158 2007-01-24  Andrew Haley  <aph@redhat.com>
1159
1160         * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a
1161         type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC.
1162
1163 2007-01-22  Andrew Haley  <aph@redhat.com>
1164
1165         * builtins.c (VMSupportsCS8_builtin): New function.
1166
1167 2007-01-23  Andrew Pinski  <pinskia@gmail.com>
1168
1169         PR java/30454
1170         * jcf-io.c (opendir_in_zip): Close the file
1171         and free zipf before returning after an error.
1172
1173 2007-01-16  Tom Tromey  <tromey@redhat.com>
1174
1175         * java-tree.def: Added copyright header.
1176
1177 2007-01-15  Tom Tromey  <tromey@redhat.com>
1178
1179         * lang.c (dump_compound_expr) <EXPR_WITH_FILE_LOCATION>: Removed
1180         case.
1181         * java-gimplify.c (java_gimplify_expr) <EXPR_WITH_FILE_LOCATION>:
1182         Removed case.
1183         * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed.
1184         (EXPR_WFL_NODE): Likewise.
1185         (EXPR_WFL_LINECOL): Likewise.
1186         (EXPR_WFL_FILENAME): Likewise.
1187         (EXPR_WFL_LINENO): Likewise.
1188         (build_expr_wfl, expr_add_location): Don't declare.
1189         (build_unknown_wfl): Removed.
1190         (EXPR_WFL_FILENAME_NODE): Removed.
1191         (EXPR_WFL_COLNO): Removed.
1192         (EXPR_WFL_SET_LINECOL): Removed.
1193         (DECL_FUNCTION_WFL): Removed.
1194         (DECL_FIELD_FINAL_WFL): Removed.
1195         (struct lang_decl_func) <wfl>: Removed field.
1196         <called_constructor>: Likewise.
1197         <inner_access>: Likewise.
1198         (struct lang_decl_var) <wfl>: Removed field.
1199         (DECL_CONSTRUCTOR_CALLS): Removed.
1200         (DECL_FUNCTION_ACCESS_DECL): Likewise.
1201         (DECL_FUNCTION_INNER_ACCESS): Likewise.
1202         (DECL_SPECIFIC_COUNT): Likewise.
1203         * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed.
1204         * expr.c (build_expr_wfl): Removed.
1205         (expr_add_location): Likewise.
1206
1207 2007-01-12  Tom Tromey  <tromey@redhat.com>
1208
1209         * jcf-dump.c (main): Updated call to find_class.
1210         * lang.c (java_init): Removed dead code.
1211         * jcf-parse.c (read_class): Don't use java_source field.  Removed
1212         dead code.
1213         (parse_zip_file_entries): Don't use java_source field.
1214         (process_zip_dir): Likewise.
1215         (jcf_parse): Removed dead code.
1216         (java_parse_file): Likewise.
1217         (read_class): Updated call to find_class.
1218         * jcf-io.c (find_class): Don't use java_source field.  Removed
1219         'source_ok' argument, .java logic.
1220         * jcf.h (JCF) <java_source>: Removed field.
1221         (JCF_ZERO): Updated.    (find_class): Updated.
1222         * decl.c: Removed dead code.
1223         * class.c: Removed dead code.
1224
1225 2007-01-11  Tom Tromey  <tromey@redhat.com>
1226
1227         * typeck.c (convert): Don't use flag_emit_class_files.
1228         * lang.c (java_post_options): Don't use flag_emit_class_files.
1229         (java_handle_option): Don't use flag_extraneous_semicolon or
1230         flag_redundant.
1231         * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use
1232         flag_emit_class_files.
1233         (load_class): Likewise.
1234         * java-tree.h (flag_emit_class_files): Don't declare.
1235         (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files.
1236         (flag_extraneous_semicolon): Don't declare.
1237         (flag_not_overriding): Likewise.
1238         (flag_static_local_jdk1_1): Likewise.
1239         (flag_redundant): Likewise.
1240         * expr.c (build_newarray): Don't use flag_emit_class_files.
1241         * class.c (DEFAULT_ENABLE_ASSERT): Don't use
1242         flag_emit_class_files.
1243         (build_class_ref): Likewise.
1244         * builtins.c (check_for_builtin): Don't use
1245         flag_emit_class_files.
1246
1247 2007-01-10  Tom Tromey  <tromey@redhat.com>
1248
1249         * lang.c (java_can_use_bit_fields_p): Removed.
1250         (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
1251
1252 2007-01-09  Andrew Haley  <aph@redhat.com>
1253
1254         * expr.c (build_java_arrayaccess): Rewrite to generate array
1255         access in canonical form.
1256         (expand_java_arraystore): Use build_fold_addr_expr() on address of
1257         array access.
1258
1259 2007-01-03  Andrew Haley  <aph@redhat.com>
1260
1261         PR java/28754
1262         * expr.c (expand_java_field_op): If we're initializing a field's
1263         declaring interface we should not also initialize the class
1264         context in which it was referenced.
1265
1266 2007-01-02  Tom Tromey  <tromey@redhat.com>
1267
1268         * java-tree.h (compiling_from_source, current_encoding,
1269         JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE,
1270         JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE,
1271         JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE,
1272         JTI_WFL_OPERATOR): Removed
1273         (finit_identifier_node, instinit_identifier_node,
1274         length_identifier_node, super_identifier_node,
1275         continue_identifier_node, access0_identifier_node, wfl_operator):
1276         Removed.
1277         (cyclic_inheritance_report,
1278         DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND,
1279         DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR,
1280         DECL_FIXED_CONSTRUCTOR_P): Removed.
1281         (struct lang_decl_func) <smic, nap, synthetic_ctor, fixed_ctor>:
1282         Removed.
1283         (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST,
1284         TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed.
1285         (struct lang_type) <finit_stmt_list, clinit_stmt_list, ii_block,
1286         import_list, import_demand_list>: Removed.
1287         (java_layout_seen_class_methods, init_jcf_parse, init_src_parse,
1288         cxx_keyword_p): Removed.
1289         (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P,
1290         TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED,
1291         CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P,
1292         IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
1293         IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT,
1294         PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P,
1295         CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P,
1296         LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR,
1297         RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P,
1298         IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER,
1299         NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P,
1300         PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
1301         CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P,
1302         CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P,
1303         FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT,
1304         BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count,
1305         java_parse_abort_on_error, extract_field_decl): Removed.
1306         (finput): Declare.
1307         * lang.c: (compiling_from_source, current_encoding): Removed.
1308         (java_handle_option): Ignore -fencoding.
1309         * parse.h: Don't include lex.h.
1310         (java_error_count, int_fits_type_p, stabilize_reference, RULE,
1311         RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW,
1312         YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
1313         INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS,
1314         INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS,
1315         MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context,
1316         ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class,
1317         CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME,
1318         OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2,
1319         BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P,
1320         JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P,
1321         JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P,
1322         IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS,
1323         MANGLE_OUTER_LOCAL_VARIABLE_NAME,
1324         MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID,
1325         MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING,
1326         SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
1327         UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP,
1328         AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION,
1329         AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION,
1330         ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
1331         ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED,
1332         LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
1333         LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
1334         LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK,
1335         PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS,
1336         IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE,
1337         ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER,
1338         INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE,
1339         INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL,
1340         JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS,
1341         JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE,
1342         JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct
1343         jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN,
1344         JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET,
1345         STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE,
1346         BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL,
1347         EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE,
1348         GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0,
1349         COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND,
1350         BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR,
1351         PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED,
1352         CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT,
1353         CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P,
1354         GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE,
1355         GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
1356         GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC,
1357         PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST,
1358         CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST,
1359         CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT,
1360         CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT,
1361         SET_CPC_STATIC_INITIALIZER_STMT,
1362         SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG,
1363         java_complete_class, java_check_circular_reference,
1364         java_fix_constructors, java_layout_classes, java_reorder_fields,
1365         java_method_add_stmt, java_get_line_col, reset_report,
1366         java_init_lex, yyparse, java_parse, yyerror, java_expand_classes,
1367         java_finish_classes, ctxp, ctxp_for_generation,
1368         ctxp_for_generation_last): Removed.
1369         * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR.
1370         * mangle.c (utf8_cmp): New function.
1371         (cxx_keywords): New global.
1372         (cxx_keyword_p): New function.
1373         * jvspec.c (JAVA_START_CHAR): Removed obsolete comment.
1374         * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR,
1375         NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
1376         CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR,
1377         THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT,
1378         CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed.
1379         * Make-lang.in (java.srcextra): Do nothing.
1380         (parse.c, keyword.h, gt-java-parse.h): Removed targets.
1381         (JAVA_OBJS): Don't mention deleted files.
1382         (java.mostlyclean): Likewise.
1383         (java.clean): Likewise.
1384         (JAVA_LEX_C): Removed.
1385         (buffer.o, check-init.o, parse.o): Remove unused targets.
1386         (typeck.o): Updated.
1387         * jcf-parse.c (read_class): Comment out unused code.
1388         (java_layout_seen_class_methods): New function.
1389         (parse_source_file_1, parse_source_file_2, parse_source_file_3):
1390         Removed.
1391         (java_parse_file): Comment out unused code.  Don't use 'ctxp'.
1392         (init_jcf_parse): Removed.
1393         * config-lang.in (gtfiles): Remove deleted files.
1394         * decl.c (java_init_decl_processing): Don't initialize
1395         finit_identifier_node, instinit_identifier_node,
1396         length_identifier_node, super_identifier_node,
1397         continue_identifier_node, access0_identifier_node.  Don't call
1398         init_jcf_parse.
1399         * class.c (cyclic_inheritance_report): New global.
1400         (add_method_1): Don't use
1401         DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND.
1402         (maybe_layout_super_class): Comment out code.
1403         (safe_layout_class): New function.
1404         * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR,
1405         DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR,
1406         UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR,
1407         NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR,
1408         INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR.
1409         (java_gimplify_case_expr): Removed.
1410         (java_gimplify_default_expr): Likewise.
1411         (java_gimplify_new_array_init): Likewise.
1412         * parse.y: Removed.
1413         * keyword.gperf, keyword.h: Removed.
1414         * chartables.h: Removed.
1415         * check-init.c: Removed.
1416         * buffer.c, buffer.h: Removed.
1417         * convert.h: Removed.
1418         * gen-table.pl: Removed.
1419         * lex.c, lex.h: Removed.
1420
1421 2007-01-02  Andrew Haley  <aph@redhat.com>
1422
1423         * expr.c (expand_java_arraystore): Make sure we perform a bounds
1424         check at runtime before we perform a type check.
1425
1426 2006-12-19  Andrew Haley  <aph@redhat.com>
1427
1428         * decl.c: Bump minor BC ABI version.
1429
1430 2006-12-13  Gary Benson  <gbenson@redhat.com>
1431
1432         * jcf-depend.c (jcf_dependency_add_file): Mark filename unused.
1433
1434 2006-12-12  Tom Tromey  <tromey@redhat.com>
1435
1436         * lang-specs.h: Pass -M options to jc1.
1437         * jcf-depend.c (jcf_dependency_add_file): Don't emit
1438         dependencies.
1439
1440 2006-12-07  Mohan Embar  <gnustuff@thisiscool.com>
1441
1442         * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR.
1443
1444 2006-12-06  Mohan Embar  <gnustuff@thisiscool.com>
1445
1446         * lang-specs.h: Pass '%U'-based options as separate arguments.
1447
1448 2006-12-05  Tom Tromey  <tromey@redhat.com>
1449
1450         PR java/29495:
1451         * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and
1452         classes as well.
1453         * class.c (add_field): Handle ACC_SYNTHETIC.
1454         (add_method_1): Likewise.  Handle bridge and varargs.
1455         (get_access_flags_from_decl): Handle synthetic, bridge, varargs,
1456         annotation.
1457         (set_class_decl_access_flags): Handle synthetic and annotation.
1458         * java-tree.h (METHOD_BRIDGE): New macro.
1459         (METHOD_VARARGS): Likewise.
1460         (TYPE_SYNTHETIC): Likewise.
1461         (TYPE_ANNOTATION): Likewise.
1462         (lang_type): New fields 'synthetic' and 'annotation'.
1463         (lang_decl_func): New fields 'varargs' and 'bridge'.
1464
1465 2006-12-04  Andrew Haley  <aph@redhat.com>
1466
1467         * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if
1468         there's no map.
1469
1470 2006-11-29  Gary Benson  <gbenson@redhat.com>
1471
1472         * expr.c (rewrite_arglist_getcaller): Reorder.
1473
1474 2006-11-29  Andrew Haley  <aph@redhat.com>
1475
1476         * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE.
1477         * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE.
1478
1479 2006-11-23  Andrew Haley  <aph@redhat.com>
1480
1481         * expr.c (rewrite_arglist_getcaller): New.
1482         (rewrite_arglist_getclass): Fix indentation.
1483         (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and 
1484         gnu.classpath.VMStackWalker.getCallingClassLoader().
1485         * builtins.c (initialize_builtins): Remove duplicate def'n of
1486         __sync_synchronize.
1487         Add __builtin_return_address.
1488
1489 2006-11-22  Andrew Haley  <aph@redhat.com>
1490
1491         * jcf-reader.c (get_attribute): Mark attr_type unused.
1492
1493         * builtins.c (compareAndSwapObject_builtin): Fix declaration.
1494
1495 2007-01-08  Richard Guenther  <rguenther@suse.de>
1496
1497         * lex.c (do_java_lex): Use build_int_cst_wide_type.
1498         * jcf-parse.c (get_constant): Likewise.
1499
1500 2006-11-12  Jan Hubicka  <jh@suse.cz>
1501
1502         * resource.c (compile_resource_data): Update for new varpool names.
1503         * java/class.c (build_utf8_ref): Likewise.
1504
1505 2006-11-12  David Daney  <ddaney@avtrex.com>
1506
1507         PR java/29805
1508         * typeck.c (build_java_array_type): Increase buffer sizes.
1509
1510 2006-11-11  Richard Guenther  <rguenther@suse.de>
1511
1512         * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR,
1513         FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1514
1515 2006-11-06  Andrew Haley  <aph@redhat.com>
1516
1517         * java-tree.h (CONSTANT_LazyFlag): New.
1518         * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag.
1519         * jcf-parse.c (handle_innerclass_attribute): Write attribute to
1520         reflection_data.
1521         (handle_constant): Return 0 for dummy cpool entries.
1522         Handle constants of kind Class.
1523         Handle constants of kind NameAndType.
1524         (handle_enclosingmethod_attribute): New.
1525         (handle_signature_attribute): New.
1526         (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New.
1527         (HANDLE_SIGNATURE_ATTRIBUTE): New.
1528         (handle_constant): Use unmangle_classname()rather than calling
1529         identifier_subst() directly.
1530
1531 2006-11-02  Andrew Haley  <aph@redhat.com>
1532
1533         * java-tree.h (FIELD_ENUM): New.
1534         (lang_decl_var.field_enum): New.
1535         (lang_type.enum_class): New.
1536         (CLASS_ENUM): New.
1537         * class.c (set_class_decl_access_flags): Handle enum types.
1538         (add_field): Handle enum fields.
1539         (get_access_flags_from_decl): Likewise.
1540
1541         * class.c (make_class_data): Put reflection_data into rodata.
1542
1543 2006-11-01  Andrew Haley  <aph@redhat.com>
1544
1545         * jcf-parse.c (field_offsets, bit_obstack): New variables.
1546         (jcf_parse): Write end marker to annotation_data.
1547         (java_parse_file): Create field_offsets bitmap.  Destroy it.
1548         (annotation_grow, annotation_rewrite_byte) 
1549         (annotation_rewrite_short, annotation_rewrite_int) 
1550         (annotation_read_short, annotation_write_byte) 
1551         (annotation_write_short, annotation_write_int) 
1552         (handle_long_constant, handle_constant, handle_element_value) 
1553         (handle_annotation, handle_annotations) 
1554         (handle_annotation_attribute, rewrite_reflection_indexes) 
1555         (handle_member_annotations, handle_parameter_annotations) 
1556         (handle_default_annotation): New functions.
1557         (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE) 
1558         (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE) 
1559         (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE) 
1560         (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE) 
1561         (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions.
1562         * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New. 
1563         (TYPE_REFLECTION_DATA): New.
1564         (TYPE_REFLECTION_DATASIZE): New.
1565         * jcf.h (enum cpool_tag): Convert a bunch of #define constants to
1566         an enum.
1567         * jcf-reader.c (get_attribute): Pass field/method index and
1568         attribute type to get_attribute().
1569         * constants.c (find_class_or_string_constant): Make nonstatic.
1570         (cpool_for_class): Likewise.
1571         (build_constants_constructor): Separate string and scalar types.
1572         * class.c (make_class_data): Generate field_indexes permutation.
1573         Pass it to rewrite_reflection_indexes().
1574         (make_class_data): Generate constructor for reflection_data field.
1575
1576 2006-10-20  Tom Tromey  <tromey@redhat.com>
1577
1578         * gcj.texi (Top): Don't mention jv-scan.
1579         (Invoking gcj): Likewise.
1580         (Invoking gcjh): Likewise.
1581         (Invoking gjnih): Likewise.
1582         (Invoking gij): Likewise.
1583         (Invoking gcj-dbtool): Likewise.
1584         (Invoking jv-scan): Removed.
1585         * parse-scan.y: Removed.
1586         * jv-scan.c: Removed.
1587         * config-lang.in (stagestuff): Don't mention jv-scan.
1588         * Make-lang.in (java): Removed jv-scan.
1589         (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1590         (JVSCAN_OBJS): Removed.
1591         (jv-scan$(exeext)): Likewise.
1592         (JAVA_MANFILES): Removed jv-scan.1.
1593         (java.uninstall): Don't mention jv-scan.
1594         (java.mostlyclean): Likewise.
1595         (java.maintainer-clean): Likewise.
1596         (.INTERMEDIATE): Likewise.
1597         (java/jv-scan.o): Removed.
1598         (jv-scan.pod): Likewise.
1599         (java.srcextra): Don't mention parse-scan.c.
1600         (java.mostlyclean): Likewise.
1601         (java/parse-scan.c): Removed.
1602         (java/parse-scan.o-warn): Removed.
1603         (java/parse-scan.o): Removed.
1604
1605 2006-10-20  Tom Tromey  <tromey@redhat.com>
1606
1607         * lang.c (java_handle_option): Don't use
1608         jcf_write_base_directory.
1609         * jcf.h (jcf_write_base_directory): Removed.
1610         * parse.y (java_expand_classes): Don't call write_classfile.
1611         * config-lang.in (gtfiles): Removed jcf-write.c.
1612         * Make-lang.in (JAVA_OBJS): Removed jcf-write.o.
1613         (java/jcf-write.o): Removed.
1614         * jcf-parse.c (parse_class_file): Don't call write_classfile.
1615         * java-tree.h (write_classfile): Removed declaration.
1616         * jcf-write.c: Removed.
1617
1618 2006-10-20  Tom Tromey  <tromey@redhat.com>
1619
1620         * Make-lang.in (java): Removed gjnih, gcjh.
1621         (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1622         (GCJH_OBJS): Removed.
1623         (GJNIH_OBJS): Likewise.
1624         (gjnih$(exeext)): Likewise.
1625         (gcjh$(exeext)): Likewise.
1626         (JAVA_MANFILES): Removed gcjh.1, gjnih.1.
1627         (java.install-common): Don't special case gcjh.
1628         (java.uninstall): Don't mention gcjh, gjnih.
1629         (java.mostlyclean): Likewise.
1630         (java.maintainer-clean): Likewise.
1631         (.INTERMEDIATE): Likewise.
1632         (gcjh.pod): Removed.
1633         (gjnih.pod): Likewise.
1634         (GCJH_TARGET_INSTALL_NAME): Removed.
1635         (java/gjavah-jni.o): Removed.
1636         (java/gjavah.o): Likewise.
1637         * config-lang.in (stagestuff): Removed gjnih, gcjh.
1638         * gjavah.c: Removed.
1639
1640 2006-10-17  Tom Tromey  <tromey@redhat.com>
1641
1642         * jcf-dump.c (print_element_value): Expect a utf8 constant in the
1643         "string" case.
1644
1645 2006-10-17  Tom Tromey  <tromey@redhat.com>
1646
1647         * jvgenmain.c (main): Handle -findirect-dispatch.
1648         * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
1649         jvgenmain.
1650
1651 2006-10-06  Andrew Haley  <aph@redhat.com>
1652
1653         * builtins.c (compareAndSwapInt_builtin): Check that we really do
1654         have a compare_and_swap builtin.
1655         (compareAndSwapLong_builtin): Likewise.
1656         (compareAndSwapObject_builtin): Likewise.
1657
1658 2006-10-04  Andrew Haley  <aph@redhat.com>
1659
1660         * builtins.c (java_builtins): Add compareAndSwapInt,
1661         compareAndSwapLong, compareAndSwapObject, putOrderedInt,
1662         putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile,
1663         putObjectVolatile, getObjectVolatile, getIntVolatile,
1664         getLongVolatile, getLong.
1665         (UNMARSHAL3): New macro.
1666         (UNMARSHAL4): Likewise.
1667         (UNMARSHAL5): Likewise.
1668         (build_arglist_for_builtin): New function.
1669         (build_addr_sum, build_check_this): New functions.
1670         (putObject_builtin. compareAndSwapInt_builtin,
1671         compareAndSwapLong_builtin, compareAndSwapObject_builtin,
1672         putVolatile_builtin, getVolatile_builtin): New builtins.
1673
1674 2006-06-08  Andrew Haley  <aph@redhat.com>
1675  
1676         * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
1677         get_symbol_table_index().
1678         (maybe_rewrite_invocation): Set SPECIAL if we need to access a
1679         private method.
1680         (build_known_method_ref): New arg: special.  Pass it to
1681         get_symbol_table_index.
1682         (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
1683         the method list.
1684         (build_invokevirtual): New arg: special.  Pass it to
1685         get_symbol_table_index.
1686         (expand_invoke): New variable: special.
1687         Pass it to maybe_rewrite_invocation().
1688         Pass it to build_known_method_ref().
1689         * class.c (build_symbol_entry): Add new arg: special.  Use it to
1690         build the symbol table conbstructor.
1691         (emit_symbol_table): Extract SPECIAL from the method list and pass
1692         it to build_symbol_entry().
1693         * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
1694         special accordingly.
1695  
1696 2006-09-08  Andrew Haley  <aph@redhat.com>
1697
1698         * class.c (layout_class_method): Use build_java_signature, not
1699         build_java_argument_signature.  Use lookup_java_method, not
1700         lookup_argument_method.
1701
1702 2006-08-16  Jakub Jelinek  <jakub@redhat.com>
1703             Bryce McKinlay  <bryce@mckinlay.net.nz>
1704
1705         * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
1706
1707 2006-07-18  Tom Tromey  <tromey@redhat.com>
1708
1709         * lang.opt: Added missing -W options.
1710
1711 2006-07-12  Tom Tromey  <tromey@redhat.com>
1712
1713         PR java/28329:
1714         * lang-specs.h: Pass '%U'-based options as separate arguments.
1715         Use -faux-classpath.
1716         * lang.c (java_handle_option): Handle OPT_faux_classpath.
1717         * lang.opt (faux-classpath): New option.
1718
1719 2006-07-07  Tom Tromey  <tromey@redhat.com>
1720
1721         * class.c (make_class_data): Set value for reflection_data field.
1722         * decl.c (java_init_decl_processing): Add reflection_data field.
1723
1724 2006-07-07  Tom Tromey  <tromey@redhat.com>
1725
1726         * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals
1727         earlier.
1728         (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
1729
1730 2006-07-07  Andrew Haley  <aph@redhat.com>
1731
1732         * jcf-parse.c (set_source_filename): Don't check for
1733         CLASS_FROM_CURRENTLY_COMPILED_P.
1734         Remove // comments.
1735
1736 2006-07-07  Andrew Haley  <aph@redhat.com>
1737
1738         * java-tree.h (java_read_sourcefilenames): Declare.
1739         * lang.c (java_handle_option): Call java_read_sourcefilenames().
1740         * lang.opt (fsource-filename): New opt.
1741         * lang-specs.h: Add -fsource-filename.
1742         * jcf-parse.c (num_files, filenames): New variables.
1743         (reverse, cmpstringp, java_read_sourcefilenames,
1744         find_sourcefile): New.
1745         (set_source_filename): Call find_sourcefile to find the real name
1746         of a source file.
1747
1748 2006-06-27  Tom Tromey  <tromey@redhat.com>
1749
1750         * jcf-reader.c (get_attribute): Handle EnclosingMethod,
1751         Signature, LocalVariableTypeTable, annotation attributes.
1752         * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro.
1753         (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
1754         (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'.
1755         (HANDLE_METHOD): Likewise.
1756         (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro.
1757         (print_annotation): New function.
1758         (print_element_value): Likewise.
1759         (indent): Likewise.
1760         (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro.
1761         (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise.
1762         (print_parameter_annotations): New function.
1763         (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro.
1764         (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE):
1765         Likewise.
1766         (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise.
1767         (print_annotations): New function.
1768
1769 2006-06-23  Tom Tromey  <tromey@redhat.com>
1770
1771         * lang-specs.h: Default -fsource and -ftarget to 1.5.  If
1772         emitting class files, always use 1.5.
1773         * gcj.texi (Input Options): Document -fsource.
1774         (Code Generation): Document -ftarget.
1775
1776 2006-06-21  Tom Tromey  <tromey@redhat.com>
1777
1778         PR java/28089:
1779         * expr.c (expand_java_field_op): Initialize field's declaring
1780         class.
1781
1782 2006-06-20  Tom Tromey  <tromey@redhat.com>
1783
1784         * expr.c (push_value): Always flush quick stack.
1785
1786 2006-06-19  Tom Tromey  <tromey@redhat.com>
1787
1788         * expr.c (push_value): Also flush quick stack if value is a
1789         component_ref.
1790
1791 2006-06-19  Tom Tromey  <tromey@redhat.com>
1792
1793         * expr.c (push_value): Flush quick stack if value has side
1794         effects.
1795
1796 2006-06-13  Tom Tromey  <tromey@redhat.com>
1797
1798         * class.c (is_compiled_class): Explicitly check for current
1799         class.
1800
1801 2006-06-09  Tom Tromey  <tromey@redhat.com>
1802
1803         * gjavah.c (decompile_method): Don't decompile a static field
1804         accessor method.
1805
1806 2006-06-06  Tom Tromey  <tromey@redhat.com>
1807
1808         * lang-specs.h <jc1>: Add .jar file to command line if
1809         -fsaw-java-file.  Also, remove -ffilelist-file in this case.
1810
1811 2006-06-05  Tom Tromey  <tromey@redhat.com>
1812
1813         * jcf-dump.c (print_access_flags): Handle varargs, bridge,
1814         synthetic, enum, annotation.
1815         * jcf.h (ACC_BRIDGE): New macro.
1816         (ACC_VARARGS): Likewise.
1817         (ACC_SYNTHETIC): Likewise.
1818         (ACC_ENUM): Likewise.
1819         (ACC_ANNOTATION): Likewise.
1820
1821 2006-06-04  Tom Tromey  <tromey@redhat.com>
1822
1823         * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options.
1824         * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource,
1825         and -ftarget.
1826         (lang_specific_driver): Removed dead code.  Add -fsaw-java-file
1827         when needed.  Handle classpath-setting.
1828         * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o.
1829         * lang-specs.h: Rewrote.
1830
1831 2006-06-04  Tom Tromey  <tromey@redhat.com>
1832
1833         * jcf-io.c (find_class): Set source_ok to 0.
1834         * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning.
1835         (parse_class_file): Don't call java_mark_class_local.
1836         (java_parse_file): Skip .java files.  Call java_mark_class_local
1837         before lowering any code.
1838         (parse_zip_file_entries): Don't call duplicate_class_warning
1839         here.
1840         (process_zip_dir): ... call it here.
1841         * class.c (add_field): Don't mark field external if it is being
1842         compiled into this object.
1843         (make_class_data): Handle situation where class_dtable_decl is
1844         created before Class is compiled.
1845         (is_compiled_class): Don't assume files in zip are compiled into
1846         this object.
1847         (layout_class_method): Don't mark method external if it is being
1848         compiled into this object.
1849
1850 2006-06-04  Tom Tromey  <tromey@redhat.com>
1851
1852         * jcf-path.c (jcf_path_compute): New function.
1853         * jcf.h (jcf_path_compute): Declare.
1854
1855 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
1856
1857         * decl.c: Include langhooks.h.
1858         (builtin_function): Remove.
1859         (java_init_decl_processing): Replace calls to builtin_function
1860         with add_builtin_function.
1861         * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o.
1862         (java/decl.o): Depend on langhooks.h.
1863         * java-tree.h (builtin_function): Remove.
1864
1865 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
1866
1867         * Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
1868
1869 2006-09-12  Tom Tromey  <tromey@redhat.com>
1870
1871         * expr.c (push_value): Always flush quick stack.
1872
1873 2006-09-12  Tom Tromey  <tromey@redhat.com>
1874
1875         PR java/29013:
1876         * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note
1877         the push of the called method's return result.
1878
1879 2006-09-12  Tom Tromey  <tromey@redhat.com>
1880
1881         * jvspec.c (lang_specific_driver): Read spec file even if
1882         -fsyntax-only.
1883
1884 2006-09-12  Tom Tromey  <tromey@redhat.com>
1885
1886         PR java/28754:
1887         * expr.c (expand_java_field_op): Initialize field's declaring
1888         interface if necessary.
1889
1890 2006-09-12  Tom Tromey  <tromey@redhat.com>
1891
1892         PR java/28892:
1893         * expr.c (expand_java_field_op): No error for assignments not in
1894         class initializer or constructor.
1895
1896 2006-08-22  Andrew Haley  <aph@redhat.com>
1897
1898         * decl.c (java_add_stmt): Give the statement list a type.
1899
1900 2006-08-16  Jakub Jelinek  <jakub@redhat.com>
1901             Bryce McKinlay  <bryce@mckinlay.net.nz>
1902
1903         * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
1904
1905 2006-08-10  Simon Martin  <simartin@users.sourceforge.net>
1906
1907         PR java/8923
1908         * parse.y (build_incdec): Emit an error instead of an ICE if '++'
1909         or '--' is used with a constant operand.
1910         (java_complete_lhs): When processing a '++' or '--' expression,
1911         don't call java_complete_tree but java_complete_lhs, so that a
1912         static final variable operand is never replaced by its value. This
1913         avoids an ICE later on.
1914         (patch_unaryop): Fixed typo in comment.
1915
1916 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1917
1918         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1919
1920 2006-07-12  Bryce McKinlay  <mckinlay@redhat.com>
1921
1922         * builtins.c (check_for_builtin): If a builtin could result in a
1923         direct call being generated, don't use it if flag_indirect_dispatch
1924         is set.
1925
1926 2006-07-12  Bryce McKinlay  <mckinlay@redhat.com>
1927
1928         * gcj.texi (Invocation): Corrections for Invocation API example.
1929
1930 2006-07-04  Andrew Haley  <aph@redhat.com>
1931
1932         * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the
1933         entry.
1934
1935 2006-06-21  Andrew Haley  <aph@redhat.com>
1936
1937         * java-tree.h (update_aliases): Remove
1938         * expr.c (expand_iinc): Remove call to update_aliases().
1939         (STORE_INTERNAL): Likewise.
1940         * decl.c (update_aliases, initialize_local_variable) 
1941         (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls.
1942
1943 2006-06-19  Andrew Haley  <aph@redhat.com>
1944
1945         PR java/1305
1946         PR java/27908
1947         * expr.c (java_modify_addr_for_volatile): New function.
1948         (expand_java_field_op): Handle volatile fields.
1949         * java-gimplify.c (java_gimplify_component_ref): Call
1950         java_modify_addr_for_volatile to give the field_ref the correct
1951         volatile type.
1952         (java_gimplify_modify_expr): Likewise.
1953         * java-tree.h (java_modify_addr_for_volatile): New decl.
1954
1955 2006-06-17  Karl Berry  <karl@gnu.org>
1956
1957         * gcj.texi (@dircategory): Use "Software development" instead
1958         of "Programming", following the Free Software Directory.
1959
1960 2006-06-16  Andrew Haley  <aph@redhat.com>
1961
1962         * class.c (make_class_data): When using flag_indirect_classes,
1963         don't initialize the vtable of Class instances.
1964
1965 2006-06-09  Andrew Haley  <aph@redhat.com>
1966
1967         PR java/1305
1968         PR java/27908
1969         * builtins.c (initialize_builtins): Add __sync_synchronize().
1970         * class.c (add_field): Mark volatile fields.
1971         * java-gimplify.c (java_gimplify_expr): Call new functions to
1972         handle self-modifying exprs and COMPONENT_REFs.
1973         (java_gimplify_component_ref): New.
1974         (java_gimplify_modify_expr): Add handling for volatiles.
1975
1976 2006-06-08  Tom Tromey  <tromey@redhat.com>
1977
1978         * gcj.texi (libgcj Runtime Properties): Document
1979         gnu.gcj.user.realname.
1980
1981 2006-06-08  Andrew Haley  <aph@redhat.com>
1982
1983         * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
1984         get_symbol_table_index().
1985         (maybe_rewrite_invocation): Set SPECIAL if we need to access a
1986         private method.
1987         (build_known_method_ref): New arg: special.  Pass it to
1988         get_symbol_table_index.
1989         (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
1990         the method list.
1991         (build_invokevirtual): New arg: special.  Pass it to
1992         get_symbol_table_index.
1993         (expand_invoke): New variable: special.
1994         Pass it to maybe_rewrite_invocation().
1995         Pass it to build_known_method_ref().
1996         * class.c (build_symbol_entry): Add new arg: special.  Use it to
1997         build the symbol table conbstructor.
1998         (emit_symbol_table): Extract SPECIAL from the method list and pass
1999         it to build_symbol_entry().
2000         * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
2001         special accordingly.
2002
2003 2006-06-06  David Daney  <ddaney@avtrex.com>
2004
2005         * gcj.texi (libgcj Runtime Properties): Document
2006         gnu.gcj.runtime.NameFinder.show_raw and
2007         gnu.gcj.runtime.NameFinder.remove_unknown.
2008
2009 2006-06-06  Tom Tromey  <tromey@redhat.com>
2010
2011         * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2012         synthetic, enum, annotation.
2013         * jcf.h (ACC_BRIDGE): New macro.
2014         (ACC_VARARGS): Likewise.
2015         (ACC_SYNTHETIC): Likewise.
2016         (ACC_ENUM): Likewise.
2017         (ACC_ANNOTATION): Likewise.
2018
2019 2006-06-06  Mike Stump  <mrs@apple.com>
2020
2021         * Make-lang.in: Rename to htmldir to build_htmldir to avoid
2022         installing during build.
2023
2024 2006-05-31  Thomas Fitzsimmons  <fitzsim@redhat.com>
2025
2026         * gcj.texi (Extensions): Document the new gcj-dbtool-based
2027         classname-to-library resolution mechanism.
2028         Declare the old gnu.gcj.runtime.VMClassLoader.library_control
2029         mechanism deprecated.
2030         (libgcj Runtime Properties): Document
2031         gnu.gcj.runtime.VMClassLoader.library_control's new default.
2032
2033 2006-05-29  Jakub Jelinek  <jakub@redhat.com>
2034
2035         * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
2036         bit wide type.
2037         (jword): Define to uint64 on 64-bit arches.
2038         * jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
2039
2040 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
2041
2042         * class.c, except.c, expr.c, java-gimplify.c: Fix comment
2043         typos.
2044
2045 2006-05-26  Tom Tromey  <tromey@redhat.com>
2046
2047         * expr.c (java_push_constant_from_pool): Handle 'ldc class'.
2048         * verify-glue.c (vfy_class_type): New function.
2049         * verify-impl.c (check_constant): Allow 'ldc class'.
2050         * verify.h (vfy_class_type): Declare.
2051
2052 2006-05-25  Andrew Haley  <aph@redhat.com>
2053
2054         PR java/27756
2055         * decl.c (maybe_pushlevels): When variable ranges are non-nested
2056         update all lifetimes, not just the first one.
2057
2058 2006-05-24  Tom Tromey  <tromey@redhat.com>
2059
2060         * java-tree.h: Fixed flag documentation.
2061
2062 2006-05-24  Tom Tromey  <tromey@redhat.com>
2063
2064         PR libgcj/27729:
2065         * jcf.h (ACC_INVISIBLE): Changed value.
2066
2067 2006-05-24  Andrew Haley  <aph@redhat.com>
2068
2069         PR java/27754
2070         * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a
2071         COMPOUND_EXPR.
2072
2073 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2074
2075         * lang.opt (femit-class-file): Remove VarExists.
2076
2077 2006-05-16  Tom Tromey  <tromey@redhat.com>
2078
2079         * verify-impl.c (verify_instructions_0) <op_return>: Special case
2080         for Object.<init>.
2081
2082 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2083
2084         PR driver/26885
2085         * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
2086         $(GCC_OBJS).
2087
2088 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2089
2090         * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H).
2091         (java/expr.o): Replace target.h with $(TARGET_H).
2092         (java/parse.o): Likewise.
2093
2094 2006-05-10  Andrew Haley  <aph@redhat.com>
2095
2096         * class.c (emit_indirect_register_classes): Fix comment.
2097
2098 2006-05-04  Tom Tromey  <tromey@redhat.com>
2099
2100         * java-tree.h (uses_jv_markobj_p): Declare.
2101         * class.c (uses_jv_markobj_p): Removed.
2102         * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define.
2103         (get_boehm_type_descriptor): Use it.
2104         (uses_jv_markobj_p): Moved from class.c.  Return bool.
2105
2106 2006-05-04  Tom Tromey  <tromey@redhat.com>
2107
2108         * java-tree.def (THIS_EXPR): Now a tcc_expression.
2109
2110 2006-05-04  Andrew Haley  <aph@redhat.com>
2111
2112         * class.c (make_field_value): Always build_address_of fdecl if
2113         there is an initializer.
2114
2115 2006-05-03  Andrew Haley  <aph@redhat.com>
2116
2117         PR libgcj/27352
2118         * expr.c (maybe_rewrite_invocation): New function.
2119         (rewrite_arglist_getclass): Likewise.
2120         (rules): New.
2121         (expand_invoke): Call maybe_rewrite_invocation.
2122         * parse.y (patch_invoke): Likewise.
2123         * java-tree.h: (maybe_rewrite_invocation): New function.
2124
2125 2006-04-21  Andrew Haley  <aph@redhat.com>
2126
2127         * lang.c (java_init): Handle flag_indirect_classes.
2128         * jvgenmain.c: Use "class$$" instead of "class$".
2129         * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
2130         DECLs.
2131         (mangle_class_field): Special case "class$$" as well as "class$".
2132         * constants.c (build_ref_from_constant_pool): If
2133         flag_indirect_classes, generate a ref into the heap.
2134         * decl.c (constants_field_decl_node,
2135         constants_data_field_decl_node): New.
2136         * class.c (build_static_class_ref): New.
2137         (build_classdollar_field): Factor out from build_class_ref().
2138         (make_field_value): Handle static fields in heap.
2139         (make_class_data): Make sure we get a static ref to class.
2140         Make class initializer const if flag_indirect_classes.
2141         (register_class): Build a class_ref for initialization if
2142         flag_indirect_classes.
2143         (emit_indirect_register_classes): New.
2144
2145 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
2146
2147         * expr.c, gjavah.c: Fix comment typos.
2148
2149 2006-04-03  Andrew Haley  <aph@redhat.com>
2150
2151         PR java/26858
2152         * expr.c (build_field_ref): Don't check the field offset if
2153         flag_syntax_only.
2154
2155 2006-03-30  Andrew Haley  <aph@redhat.com>
2156
2157         PR java/26858
2158         * lang.c (java_attribute_table): New.
2159         (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
2160         * expr.c (build_field_ref): Add a null pointer check for all
2161         fields of offset > 4k.  Don't do so for accesses via the this
2162         pointer, which we know can never be null.
2163         * class.c (build_java_method_type): Mark arg 1 of all nonstatic
2164         methods nonnull.
2165
2166 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
2167
2168         * Make-lang.in: Rename docdir to gcc_docdir.
2169
2170 2006-03-30  Tom Tromey  <tromey@redhat.com>
2171
2172         PR java/26042:
2173         * parse.y (java_reorder_fields): Reset superclass field's size as
2174         well.
2175
2176 2006-03-28  Tom Tromey  <tromey@redhat.com>
2177
2178         PR java/26390:
2179         * parse.y (find_most_specific_methods_list): Added 'class'
2180         argument.
2181         (lookup_method_invoke): Updated.
2182
2183 2006-03-15  Tom Tromey  <tromey@redhat.com>
2184
2185         * jcf-write.c (generate_bytecode_insns): Use qualifying type for
2186         non-static method calls.
2187
2188 2006-03-15  David Daney  <ddaney@avtrex.com>
2189
2190         * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its
2191         declaration.
2192
2193 2006-03-15  David Daney  <ddaney@avtrex.com>
2194
2195         * lang.opt (-freduced-reflection): New option.
2196         * lang.c (java_post_options): Generate an error if
2197         -freduced-reflection used with -fjni or -findirect-dispatch.
2198         * java-tree.h (flag_reduced_reflection): Declare new variable.
2199         * boehm.c (get_boehm_type_descriptor): Indicate all pointers
2200         if bitmap overflows and flag_reduced_reflection set.
2201         * class.c (uses_jv_markobj_p): New function.
2202         (make_class_data): Moved generation of vtable to before
2203         reflection data, generate less reflection data if
2204         flag_reduced_reflection set.
2205         * gcj.texi: Document -freduced-reflection.
2206
2207 2006-03-15  Tom Tromey  <tromey@redhat.com>
2208
2209         PR java/26638:
2210         * class.c (get_interface_method_index): Don't put <clinit> into
2211         interface table.
2212
2213 2006-03-15  Tom Tromey  <tromey@redhat.com>
2214
2215         * parse.y (analyze_clinit_body): Ignore empty statements.
2216
2217 2006-03-08  David Daney  <ddaney@avtrex.com>
2218
2219         * gcj.texi: Document -static-libgcj option.
2220
2221 2006-02-20  Andrew Haley  <aph@redhat.com>
2222
2223         * jcf-parse.c (parse_class_file): Set input_location from
2224         current_class.
2225
2226 2006-02-15  Andrew Haley  <aph@redhat.com>
2227
2228         * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here.
2229         (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL,
2230         TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here.
2231
2232 2006-02-09  Andrew Haley  <aph@redhat.com>
2233
2234         PR java/26192
2235         * expr.c (expand_invoke): Allow methods in arrays to be resolved
2236         in their superclass.
2237
2238         * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for
2239         array types.
2240         
2241 2006-02-08  Tom Tromey  <tromey@redhat.com>
2242
2243         PR java/22578:
2244         * check-init.c (check_init): Handle VIEW_CONVERT_EXPR.
2245         * builtins.c (convert_real): New function.
2246         (java_builtins): Handle Float.intBitsToFloat,
2247         Float.floatToRawIntBits, Double.longBitsToDouble,
2248         Double.doubleToRawLongBits.
2249
2250 2006-02-07  Andrew Haley  <aph@redhat.com>
2251
2252         * expr.c (expand_invoke): (BC mode.)  If we find a method in a
2253         class other than the one in which we expected to find it, ignore
2254         the result.
2255
2256         PR java/25535
2257         * constants.c (build_constants_constructor): move initializer into
2258         first halfword on a 64-bit big-endian machine.
2259
2260 2006-02-04  Tom Tromey  <tromey@redhat.com>
2261
2262         PR java/25676:
2263         * builtins.c (max_builtin): Skip floating point 'max'.
2264         (min_builtin): Skip floating point 'min'.
2265         (check_for_builtin): Never return NULL_TREE.
2266
2267 2006-02-04  Tom Tromey  <tromey@redhat.com>
2268
2269         PR java/26097:
2270         * expr.c (push_type): Avoid side effect in gcc_assert.
2271
2272 2006-02-04  Roger Sayle  <roger@eyesopen.com>
2273
2274         * decl.c (java_init_decl_processing): Create char_type_node as a
2275         regular INTEGER_TYPE node.
2276         (push_promoted_type): Preserve TYPE_STRING_FLAG on types.
2277         * typeck.c (convert): No longer check for CHAR_TYPEs but instead
2278         test for char_type_node and promoted_char_type_node as special
2279         instances of INTEGER_TYPE tree codes.
2280         (promote_type,build_java_signature): Likewise.
2281         * jcf-write.c (adjust_typed_op): Likewise.
2282         * mangle.c (mangle_type): Likewise.
2283         * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
2284         * parse.h (JINTEGRAL_TYPE_P): Likewise.
2285
2286 2006-02-04  Andreas Tobler  <a.tobler@schweiz.ch>
2287
2288         * expr.c (java_stack_swap): Revert gcc_assert patch.
2289
2290 2006-02-03  Ben Elliston  <bje@au.ibm.com>
2291
2292         * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout.
2293         * typeck.c: Likewise.
2294         * verify-impl.c: Likewise.
2295         * class.c: Likewise.
2296         * decl.c: Likewise.
2297         * jcf-parse.c: Likewise.
2298         * constants.c: Likewise.
2299         * check-init.c: Likewise.
2300         * jcf-write.c: Likewise.
2301         * verify-glue.c: Likewise.
2302         * mangle.c: Likewise.
2303         * expr.c: Likewise.
2304         * lang.c: Likewise.
2305         * boehm.c: Likewise.
2306
2307 2006-02-01  Jan Hubicka  <jh@suse.cz>
2308
2309         * decl.c (end_java_method): Kill hack disabling unit-at-a-time.
2310         * lang.c (java_init_options): Set no_unit_at_a_time_default.
2311
2312 2006-01-30  Andrew Haley  <aph@redhat.com>
2313
2314         PR java/21428
2315         * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").
2316
2317 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
2318
2319         * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version):
2320         Update copyright notice dates.
2321
2322 2006-01-16  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2323
2324         * jvspec.c (lang_specific_spec_functions): Remove.
2325
2326 2006-01-06  Tom Tromey  <tromey@redhat.com>
2327
2328         * gcj.texi (Arrays): Added more documentation for
2329         JvNewObjectArray.
2330         (Primitive types): Correct information about primitive classes.
2331         (Reference types): New node.
2332         (Index): New node.
2333
2334 2005-12-16  Alexandre Oliva  <aoliva@redhat.com>
2335
2336         * jcf-parse.c (set_source_filename): Set the decl source location
2337         even when returning early.
2338
2339 2005-12-15  Tom Tromey  <tromey@redhat.com>
2340             Andrew Haley  <aph@redhat.com>
2341
2342         PR java/25429
2343         * parse.y (resolve_expression_name): Don't generate accessor
2344         methods for constant fields.
2345
2346 2005-12-13  Andrew Haley  <aph@redhat.com>
2347
2348         PR java/25366
2349         PR java/25368
2350         * class.c (maybe_layout_super_class): Update current_class before
2351         calling do_resolve_class.
2352
2353 2005-12-12  H.J. Lu  <hongjiu.lu@intel.com>
2354
2355         PR java/25330
2356         * jcf-write.c (write_classfile): Use PID in temporary class
2357         file. Save/restore errno when reporting error.
2358
2359 2005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>
2360
2361         PR java/9861
2362         * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J'
2363         to bare_function_type and including the return type
2364         * builtins.c (initialize_builtins) : Change builtin mangled name
2365         constants to conform to new mangling scheme
2366
2367 2005-12-08  Andrew Haley  <aph@redhat.com>
2368
2369         PR libgcj/25265
2370         * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
2371         (soft_abstractmethod_node): New.
2372         * expr.c (build_field_ref): Add in-line check for missing field.
2373         * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
2374
2375 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2376
2377         * Make-lang.in (java.all.build, java.install-normal): Remove.
2378
2379 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2380
2381         * Make-lang.in: Remove all dependencies on s-gtype, except for
2382         gt-java-parse.h.
2383
2384 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
2385
2386         * class.c (build_utf8_ref, emit_register_classes): Use
2387         switch_to_section and get_section.
2388
2389 2005-12-06  Tom Tromey  <tromey@redhat.com>
2390
2391         PR java/25283:
2392         * parse.y (patch_new_array_init): Revert previous patch.
2393         (lookup_method_invoke): Use size-less array type when creating an
2394         anonymous constructor.
2395
2396 2005-12-05  Tom Tromey  <tromey@redhat.com>
2397
2398         * parse.y (patch_new_array_init): Don't set length on array.
2399
2400 2005-12-02  Richard Guenther  <rguenther@suse.de>
2401
2402         * java-gimplify.c (java_gimplify_labeled_block_expr): Use
2403         buildN instead of build.
2404         * class.c (finish_class): Likewise.
2405         * expr.c (java_create_object): Likewise.
2406
2407 2005-11-28  Tom Tromey  <tromey@redhat.com>
2408
2409         PR java/18278:
2410         * expr.c (build_jni_stub): Unwrap the return value.
2411         * java-tree.h (soft_unwrapjni_node): New define.
2412         (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
2413         * decl.c (java_init_decl_processing): Initialize
2414         soft_unwrapjni_node.
2415
2416 2005-11-24  Bryce McKinlay  <mckinlay@redhat.com>
2417
2418         * gcj.texi (gij options): Add -Xss documentation.
2419
2420 2005-11-08  Wil Mahan  <wmahan@gmail.com>
2421
2422         PR java/23617
2423         * zextract.c (read_zip_archive): Fix out of memory error when
2424         reading jar files with zip-style comments.
2425
2426 2005-11-07   Terry Laurenzo   <tlaurenzo@gmail.com>
2427
2428         * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
2429         formats.
2430         * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
2431
2432 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
2433             Wil Mahan <wmahan@gmail.com>
2434
2435         PR java/23620
2436         * class.c (make_class): Create empty binfo here.
2437         (set_super_info): Only create binfo if we have superclasses.
2438
2439 2005-10-03  Ranjit Mathew  <rmathew@gcc.gnu.org>
2440
2441         PR java/24127
2442         * parse.y (method_header): Make the result of the rule a NULL_TREE
2443         when a parsing error occurs.
2444
2445 2005-09-29  Tom Tromey  <tromey@redhat.com>
2446
2447         PR java/24120:
2448         * jcf-io.c (memoized_dirlist_hash): New function.
2449         (caching_stat): Use it.
2450
2451 2005-09-21  Ranjit Mathew  <rmathew@gcc.gnu.org>
2452
2453         PR java/21418
2454         * class.c (inherits_from_p): Try to lay out super class
2455         if it is not already laid out.
2456         (maybe_layout_super_class): Handle the case where SUPER_CLASS
2457         is a NULL_TREE.
2458
2459 2005-09-18  James A. Morrison  <phython@gcc.gnu.org>
2460
2461         * builtins.c (max_builtin, min_builtin, abs_builtin,
2462         java_build_function_call_expr): Use fold_buildN.
2463         * class.c (layout_class_method): Likewise.
2464         * expr.c (java_truthvalue_conversion, build_java_jsr,
2465         build_java_arrayaccess, expand_java_arrayload, expand_iinc,
2466         build_java_binop, build_field_ref, expand_compare,
2467         build_known_method_ref, build_invokevirtual,
2468         process_jvm_instruction): Likewise.
2469         * parse.y (patch_binop, patch_exit_expr): Likewise.
2470         * typeck.c (convert_ieee_real_to_integer): Likewise.
2471         (convert): Don't call fold after convert_ieee_real_to_integer.
2472
2473 2005-09-14  Bryce McKinlay  <mckinlay@redhat.com>
2474
2475         PR java/23891
2476         * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
2477         the newly created type. Set import lists here, not in create_class.
2478         (jdep_resolve_class): Set current_class.
2479         (do_resolve_class): Use current_class's TYPE_PACKAGE to determine 
2480         the current package context, not ctxp->package.
2481         (cicp_cache): Removed.
2482         (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
2483         * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
2484         * java-tree.h (TYPE_PACKAGE): New macro.
2485         (struct lang_type): New member 'package'.
2486
2487 2005-09-09  Andrew Haley  <aph@redhat.com>
2488
2489         PR libgcj/23182 
2490         * expr.c (pop_type_0): If the expected type is object or ptr
2491         (i.e. void*), return the type of the object we just popped from
2492         the stack.
2493
2494 2005-09-06  Andrew Pinski  <pinskia@physics.uc.edu>
2495
2496         * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
2497         BLOCK_EXPR_BODY before returning the new BIND_EXPR.
2498
2499 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
2500
2501         * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
2502         jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
2503         typos.  Follow spelling conventions.
2504
2505 2005-09-05  Ranjit Mathew  <rmathew@hotmail.com>
2506
2507         PR java/23431
2508         * typeck.c (lookup_do): Look up interfaces for the original class,
2509         not the base class.
2510         * parse.y (java_check_regular_methods): Fix diagnostic message for
2511         more restrictive overriding of a method from an interface.
2512
2513 2005-08-16  Tom Tromey  <tromey@redhat.com>
2514
2515         * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
2516         class' initial state.
2517
2518 2005-08-16  Ranjit Mathew  <rmathew@hotmail.com>
2519
2520         PR java/22113
2521         * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
2522         `literal_token' for large numeric input tokens.
2523
2524 2005-08-16  Ranjit Mathew  <rmathew@hotmail.com>
2525
2526         PR java/19870
2527         * parse.y (nested_field_access_p): Rename to nested_member_access_p
2528         and expand to handle method accesses across nested classes.
2529         (build_outer_method_access_method): Rename to
2530         build_nested_method_access_method.  Minor adjustments to comments.
2531         (resolve_expression_name): Use the newly-renamed
2532         nested_member_access_p method.
2533         (resolve_qualified_expression_name): Likewise.
2534         (patch_method_invocation): Also consider static methods for access
2535         method generation.  Minor adjustments to comments.
2536         (maybe_use_access_method): Use the more general
2537         nested_memeber_access_p to determine access across nested class
2538         boundaries.  Allow THIS_ARG to be NULL (for static methods).
2539
2540 2005-08-15  Tom Tromey  <tromey@redhat.com>
2541
2542         PR java/23300.
2543         * expr.c (build_field_ref): Don't generate otable reference when
2544         DECL_FIELD_OFFSET is 0.
2545         * class.c (maybe_layout_super_class): Pass outer class to
2546         do_resolve_class.
2547
2548 2005-08-15  Tom Tromey  <tromey@redhat.com>
2549
2550         * java-tree.h (LABEL_IN_SUBR): Removed.
2551         (LABEL_IN_SUBR): Likewise.
2552         (LABEL_IS_SUBR_START): Likewise.
2553         (LABEL_SUBR_START): Likewise.
2554         (LABEL_SUBR_CONTEXT): Likewise.
2555         (LABEL_CHANGED): Likewise.
2556         (LABEL_RETURN_LABEL): Likewise.
2557         (LABEL_RETURN_TYPE_STATE): Likewise.
2558         (LABEL_RETURN_LABELS): Likewise.
2559         (RETURN_MAP_ADJUSTED): Likewise.
2560         (LABEL_PENDING_CHAIN): Likewise.
2561
2562 2005-08-15  Tom Tromey  <tromey@redhat.com>
2563
2564         * Make-lang.in (JAVA_OBJS): Removed verify.o
2565         (java/verify.o): Removed.
2566         * verify.c: Removed.
2567         * lang.c (flag_new_verifier): Removed.
2568         (java_post_options): Updated.
2569         * java-tree.h (flag_new_verifier): Removed.
2570         (verify_jvm_instructions): Removed.
2571         * expr.c (pop_type_0): Assume flag_new_verifier is true.
2572         (build_java_check_indexed_type): Likewise.
2573         (expand_java_arraystore): Likewise.
2574         (expand_java_arrayload): Likewise.
2575         (pop_arguments): Likewise.
2576         (expand_byte_code): Likewise.
2577         (process_jvm_instruction): Likewise.
2578
2579 2005-08-10  Andrew Haley  <aph@redhat.com>
2580
2581         * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
2582         type mismatches to make legal GIMPLE.
2583
2584 2005-08-10  Robin Green <greenrd@greenrd.org>
2585
2586         PR java/23230:
2587         * parse.y (maybe_use_access_method): Generalize check from
2588         java.lang.Object to any superclass of current_class
2589
2590 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
2591
2592         * class.c (build_class_ref): Wrap the primary class type in a
2593         NOP_EXPR.
2594         * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
2595         primary class type from the NOP_EXPR in which it was placed.
2596
2597 2005-07-28  Diego Novillo  <dnovillo@redhat.com>
2598
2599         * expr.c (expand_load_internal): Fix missing parens in
2600         predicate.
2601
2602 2005-07-28  Andrew Haley  <aph@redhat.com>
2603
2604         * expr.c (expand_load_internal): Convert to destination type.
2605
2606 2005-07-22  Manfred Hollstein  <mh@suse.com>
2607
2608         * verify-impl.c (check_class_constant): Fix uninitialised warnings.
2609         (check_constant): Likewise.
2610         (check_wide_constant): Likewise.
2611
2612 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
2613
2614         Make CONSTRUCTOR use VEC to store initializers.
2615         * check-init.c (check_init): Update to cope with VEC in
2616         CONSTRUCTOR_ELTS.
2617         * class.c (make_field_value, make_method_value, get_dispatch_table,
2618         make_class_data, emit_symbol_table, emit_catch_table,
2619         emit_assertion_table): Use build_constructor_from_list instead of
2620         build_constructor.
2621         * constants.c (build_constants_constructor): Likewise.
2622         * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
2623         VEC in CONSTRUCTOR_ELTS.
2624         * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
2625         PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
2626         of a TREE_LIST.
2627         * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
2628         CONSTRUCTOR_ELTS.
2629         * parse.y (build_new_array_init): Use build_constructor_from_list
2630         instead of build_constructor.
2631         (patch_new_array_init): Update to cope with VEC in
2632         CONSTRUCTOR_ELTS.
2633         (array_constructor_check_entry): Likewise.
2634
2635 2005-07-12  Tom Tromey  <tromey@redhat.com>
2636
2637         * jvspec.c (lang_specific_driver): Put filelist_filename first on
2638         command line.
2639
2640 2005-07-12  Tom Tromey  <tromey@redhat.com>
2641
2642         PR java/19674:
2643         * parse-scan.y (interface_member_declaration): Added
2644         empty_statement.
2645
2646 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
2647         
2648         * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
2649         (LABEL_PENDING_CHAIN): Ditto.
2650         (LABEL_PC): Ditto.
2651         (DECL_BIT_INDEX): Ditto.        
2652
2653 2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>
2654
2655         PR java/18119
2656         * parse.y (inner_class_accessible): New function. Logic moved from
2657         check_inner_class_access.
2658         (check_inner_class_access): Use inner_class_accessible.
2659         (resolve_inner_class): Simplify arguments. Create circularity hash
2660         here. Keep looking for classes if we found one that was inaccessible. 
2661         Return the inaccessible class only if there is no other match.
2662         (do_resolve_class): Update for new resolve_inner_class arguments.
2663         Don't create circularity_hash here.
2664
2665 2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>
2666
2667         PR java/21045
2668         * parse.y (add_exception_to_throws): New function.
2669         (purge_unchecked_exceptions): Removed.
2670         (get_constructor_super): Renamed from verify_constructor_super. Now
2671         returns the super constructor after verification.
2672         (java_complete_expand_method): Don't use purge_unchecked_exceptions
2673         or save/restore the exception list.
2674         (check_thrown_exceptions): Add uncaught exceptions in anonymous
2675         class initializers and constructors to the throws clause of the method. 
2676
2677 2005-07-05  Bryce McKinlay  <mckinlay@redhat.com>
2678
2679         PR java/19674
2680         * parse.y (interface_member_declaration): Allow empty statements in
2681         interface declarations.
2682
2683 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
2684
2685         * Makefile.in (parse.o): Adjust dependencies.
2686         * parse.y: Include tree-dump.h.
2687
2688 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
2689
2690         * class.c, decl.c, expr.c: Use '+' flag instead of %J.  Use 'q'
2691         flag for quoting.
2692
2693 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
2694
2695         * parse.y (issue_warning_error_from_context): Call
2696         pp_output_formatted_text to be able to get the buffer.
2697
2698 2005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>
2699
2700         * parse.y (issue_warning_error_from_context): Update for the
2701         renaming of pp_format_text to pp_format.
2702
2703 2005-06-28  Paul Brook  <paul@codesourcery.com>
2704
2705         * decl.c (java_init_decl_processing): Call
2706         default_init_unwind_resume_libfunc.
2707
2708 2005-06-27  Tom Tromey  <tromey@redhat.com>
2709
2710         PR java/21540, PR java/13788:
2711         * parse.y (java_complete_lhs) <CASE_EXPR>: Use
2712         fold_constant_for_init.
2713         (patch_binop): Added 'folding' argument.  Updated all callers.
2714         (patch_unaryop) <NOP_EXPR>: New case.
2715         (fold_constant_for_init) <NOP_EXPR>: Likewise.
2716         (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
2717
2718 2005-06-25  Jan Hubicka  <jh@suse.cz>
2719
2720         * builtins.c (define_builtin): Accept new flags parameter.
2721         (initialize_builtins): Mark the builtins const and nothrow accordingly.
2722
2723 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
2724
2725         * all files: Update FSF address in copyright headers.
2726
2727 2005-06-24  Tom Tromey  <tromey@redhat.com>
2728
2729         * verify-impl.c (verify_instructions_0): Correctly handle
2730         situation where PC falls off end.
2731
2732 2005-06-23  Bryce McKinlay  <mckinlay@redhat.com>
2733
2734         PR java/20697
2735         * parse.y (find_most_specific_methods_list): Remove special case for
2736         inner classes.
2737
2738 2005-06-15  Tom Tromey  <tromey@redhat.com>
2739
2740         PR libgcj/21906:
2741         * class.c (make_method_value): Use soft_abstractmethod_node for
2742         abstract method.
2743         * java-tree.h (soft_abstractmethod_node): New define.
2744         (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
2745         * decl.c (java_init_decl_processing): Initialize
2746         soft_abstractmethod_node.
2747
2748 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
2749
2750         * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
2751
2752 2005-06-13  Per Bothner  <per@bothner.com>
2753
2754         * expr.c (int highest_label_pc_this_method,
2755         start_label_pc_this_method): New globals.
2756         (lookup_label): Add start_label_pc_this_method to pc for label, and
2757         update highest_label_pc_this_method.  This prevents conflicts between
2758         labels from different methods.
2759         * java-tree.h: Declare new globals.
2760         * jcf-parse.c (parse_class_file): If needed bump
2761         start_label_pc_this_method and reset highest_label_pc_this_method.
2762
2763 2005-06-13  Tom Tromey  <tromey@redhat.com>
2764
2765         PR java/21844:
2766         * parse.y (nested_field_access_p): Handle case where outer field
2767         is inherited by enclosing class.
2768
2769 2005-06-12  Per Bothner  <per@bothner.com>
2770
2771         * class.c (inherits_from_p): Do load_class if needed.
2772
2773 2005-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2774
2775         * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
2776         * java-tree.h (parse_error_context): Move...
2777         * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
2778         * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
2779         * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
2780
2781 2005-06-08  Roger Sayle  <roger@eyesopen.com>
2782
2783         * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
2784
2785 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
2786
2787         * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
2788         msgid for argument name.
2789         * gjavah.c (error): Likewise.
2790         * java-tree.h (parse_error_context): Likewise.
2791         * parse.y (parse_error_context, parse_warning_context,
2792         issue_warning_error_from_context): Likewise.
2793
2794 2005-06-01  Tom Tromey  <tromey@redhat.com>
2795
2796         PR java/21722:
2797         * class.c (build_static_field_ref): Don't fold constant fields if
2798         current class is from a .class file and we're using indirect
2799         dispatch.
2800
2801 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2802
2803         * java/verify-glue.c: Don't include errors.h and include toplev.h.
2804         * java/Make-lang.in: Updates dependencies.
2805
2806 2005-05-26  Ranjit Mathew  <rmathew@hotmail.com>
2807
2808         PR java/19870.
2809         * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
2810         NESTED_FIELD_ACCESS_IDENTIFIER_P.
2811         (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
2812         (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
2813         * jcf-write.c (generate_classfile): Use
2814         NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
2815         OUTER_FIELD_ACCESS_IDENTIFIER_P.
2816         * parse.y (build_outer_field_access): Rename to
2817         build_nested_field_access. Support static fields and outer-to-inner
2818         class accesses.
2819         (outer_field_access_p): Rename to nested_field_access_p. Support
2820         static fields and generalise to outer-to-inner class and sibling
2821         inner class accesses.
2822         (outer_field_expanded_access_p): Rename to
2823         nested_field_expanded_access_p and support static fields.
2824         (outer_field_access_fix): Rename to nested_field_access_fix and
2825         support static fields.
2826         (build_outer_field_access_expr): Rename to
2827         build_nested_field_access_expr and support static fields.
2828         (build_outer_field_access_methods): Rename to
2829         build_nested_field_access_methods and support static fields. For
2830         static fields, generate accessors without class instance parameters.
2831         (build_outer_field_access_method): Rename to
2832         build_nested_field_access_method and support static fields.
2833         (build_outer_method_access_method): Use
2834         NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
2835         OUTER_FIELD_ACCESS_IDENTIFIER_P.
2836         (resolve_expression_name): Consider static field accesses across
2837         nested classes.
2838         (resolve_qualified_expression_name): Likewise.
2839         (java_complete_lhs): Use nested_field_access_fix instead of
2840         outer_field_access_fix.
2841         (patch_unary_op): Rename outer_field_flag to nested_field_flag.
2842         Use nested_field_expanded_access_p instead of
2843         outer_field_expanded_access_p. Use nested_field_access_fix instead
2844         of outer_field_access_fix.
2845         (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
2846         instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
2847
2848 2005-05-26  Bryce McKinlay  <mckinlay@redhat.com>
2849
2850         * decl.c (GCJ_BINARYCOMPAT_ADDITION, 
2851         GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
2852         (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
2853         MINOR_BINARYCOMPAT_ABI_VERSION): New.
2854         (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
2855         (parse_version): Calculate version ID using new method. Use bit-flags
2856         for flag_indirect_dispatch and flag_bootstrap_classes.
2857
2858 2005-05-25  Richard Henderson  <rth@redhat.com>
2859
2860         PR libgcj/21692
2861         * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
2862         * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
2863         DECL_CONTEXT; avoid pushdecl_top_level.
2864         (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
2865         (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
2866         (layout_class_method): Likewise.
2867         * decl.c (java_mark_cni_decl_local): New.
2868         (java_mark_class_local): Use it.
2869         * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
2870         (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
2871         (struct lang_decl_func): Add local_cni;
2872         (struct lang_decl_var): Add class_field, vtable.
2873         (java_mangle_decl): Declare.
2874         * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
2875         * mangle.c: Remove dup obstack.h; include langhooks-def.h.
2876         (mangle_obstack_1): New.
2877         (java_mangle_decl): Remove obstack argument.  Call mangle_class_field,
2878         mangle_vtable, and mangle_local_cni_method_decl.  Fall back to
2879         lhd_set_decl_assembler_name for things that don't need mangling.
2880         (mangle_class_field): Rename from java_mangle_class_field, make
2881         static, don't call init_mangling or finish_mangling.
2882         (mangle_vtable): Similarly.
2883         (mangle_local_cni_method_decl): New.
2884         (init_mangling): Remove obstack argument.  Use &mangle_obstack_1,
2885         gcc_assert, and MANGLE_RAW_STRING.
2886         (finish_mangling): Use gcc_assert, remove if 0 debugging code.
2887
2888 2005-05-25  DJ Delorie  <dj@redhat.com>
2889
2890         * class.c (set_constant_value): Move warning control from if() to
2891         warning(OPT_*).
2892
2893 2005-05-24  Richard Henderson  <rth@redhat.com>
2894
2895         * builtins.c (define_builtin): Don't call make_decl_rtl.
2896         * constants.c (build_constant_data_ref): Likewise.
2897         * class.c (build_utf8_ref): Likewise.
2898         (build_fieldref_cache_entry, build_static_field_ref): Likewise.
2899         (get_dispatch_table, layout_class_method): Likewise.
2900         (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
2901         by hand.
2902         (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
2903         (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
2904         to determine if we need a non-zero address.
2905         * decl.c (builtin_function): Don't call make_decl_rtl.
2906         (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
2907         * expr.c (build_known_method_ref): Don't call make_decl_rtl.
2908         * resource.c (compile_resource_data): Likewise.
2909         * parse.y (resolve_field_access): Re-word comment to avoid
2910         building DECL_RTL.
2911
2912 2005-05-24  Richard Henderson  <rth@redhat.com>
2913
2914         * class.c (registered_class): Take it out of class_roots; turn into
2915         a vec of trees.
2916         (register_class): Make static.  Don't duplicate decl node.  Use
2917         VEC_safe_push.
2918         (emit_register_classes): Use VEC_iterate.  Use output_constant
2919         instead of assemble_integer.  Don't call mark_decl_referenced
2920         directly.
2921         * java-tree.h (register_class): Remove decl.
2922
2923 2005-05-19  Paolo Bonzini  <bonzini@gnu.org>
2924
2925         PR java/17845
2926
2927         * parse.y (register_package, package_list): Remove.
2928         (package_declaration): Do not call register_package.
2929         (do_resolve_class): Do not use package_list.
2930
2931 2005-05-15  Gerald Pfeifer  <gerald@pfeifer.com>
2932
2933         * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
2934         unused variable.
2935
2936 2005-05-15  Tom Tromey  <tromey@redhat.com>
2937
2938         PR java/21519:
2939         * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
2940         NOTE_PUSH.
2941
2942 2005-05-12  Aaron Luchko <aluchko@redhat.com>
2943
2944         * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
2945
2946 2005-05-11  Tom Tromey  <tromey@redhat.com>
2947
2948         * gcj.texi (Code Generation): Document -fbootstrap-classes.
2949         * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
2950         (parse_version): Use it.
2951         * lang.opt (-fbootstrap-classes): New option.
2952
2953 2005-05-10  Paolo Bonzini  <bonzini@gnu.org>
2954
2955         PR java/21436
2956         * class.c (maybe_layout_super_class): Look for imports in this_class.
2957         * parse.h (ctxp_for_generation_last): New.
2958         (do_resolve_class): Add a parameter.
2959         * parse.y (ctxp_for_generation_last): New.
2960         (java_pop_parser_context): Add at end of list.
2961         (find_in_imports, find_in_imports_on_demand): Look in ctxp
2962         if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
2963         the given type are NULL.
2964         (do_resolve_class): Look into the imports of the new second parameter.
2965         Adjust recursive calls.
2966         (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
2967         calls to do_resolve_class.
2968         (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
2969         (java_complete_class): Do not do that here.
2970
2971 2005-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
2972
2973         PR java/20309
2974         * Make-lang.in (java): Add gjnih.
2975         (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
2976         (GJNIH_OBJS): New variable.
2977         (gjnih$(exeext)): New target.
2978         (JAVA_MANFILES): Add gjnih.1.
2979         (java.uninstall): Add gjnih.1.
2980         (java.mostlyclean): Add gjnih.
2981         (java.maintainer-clean): Add gjnih.1.
2982         (java/gjavah-jni.o): New target.
2983         (.INTERMEDIATE): Add gjnih.pod.
2984         (gjnih.pod): New target.
2985         * config-lang.in (stagestuff): Add gjnih.
2986         * gcj.texi (Top): Add gjnih node.
2987         (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
2988         -bootclasspath options.
2989         (Invoking gjnih): New node.
2990         * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
2991         (TOOLNAME): New macro.
2992         (error): Replace hard-coded gcjh with TOOLNAME.
2993         (process_file): Likewise.
2994         (usage): Likewise.
2995         (version): Likewise.
2996         (help): Likewise.  Add help output for -force, -old, -trace and -J
2997         options.
2998         (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
2999         (options): Add force, old, trace and J fields.
3000         (main): Handle -force, -old, -trace and -J options.
3001
3002 2005-05-03  Tom Tromey  <tromey@redhat.com>
3003
3004         PR java/21245:
3005         * gjavah.c (main): Unlink output file on error.
3006
3007 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3008
3009         * constants.c, jvgenmain.c, lang.opt, resource.c: Update
3010         copyright.
3011
3012 2005-04-29  Tom Tromey  <tromey@redhat.com>
3013
3014         * expr.c (build_jni_stub): Updated for change to build_block.
3015
3016 2005-04-29  Andrew Pinski  <pinskia@gcc.gnu.org>
3017
3018         * expr.c (force_evaluation_order): Declare 'saved' earlier.
3019
3020 2005-04-28  Andrew Haley  <aph@redhat.com>
3021
3022         PR java/19285
3023         * java-tree.h (soft_resolvepoolentry_node): New.
3024         (alloc_constant_fieldref): Declare.
3025         * expr.c (expand_java_field_op): Don't call class_init for
3026         accesses to static fields with indirect dispatch.
3027         * builtins.c (initialize_builtins): Add "__builtin_expect".
3028         * decl.c (soft_resolvepoolentry_node): New variable.
3029         (java_init_decl_processing): Create a decl for
3030         "_Jv_ResolvePoolEntry".
3031         * class.c (build_fieldref_cache_entry): New function.
3032         (build_static_field_ref): Rewrite for indirect dispatch.
3033         * constants.c (find_name_and_type_constant_tree): New function.
3034         (alloc_constant_fieldref): Likewise.
3035         (build_constants_constructor): Handle CONSTANT_Fieldref and
3036         CONSTANT_NameAndType.
3037
3038         PR java/21115
3039         * expr.c (force_evaluation_order): Convert outgoing args smaller
3040         than integer.
3041
3042 2005-04-27  Bryce McKinlay  <mckinlay@redhat.com>
3043
3044         * gcj.texi (libgcj Runtime Properties): Remove obsolete
3045         gnu.gcj.runtime.NameFinder.* system properties. Update documentation 
3046         for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
3047
3048 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3049
3050         * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
3051         to `unlock_stream' with `unlock_std_streams'.
3052
3053 2005-04-25  Jakub Jelinek  <jakub@redhat.com>
3054
3055         * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
3056         instead of just expr.h.
3057
3058 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3059
3060         * gjavah.c (main): Unlock the stdio streams.
3061         * jcf-dump.c (main): Likewise.
3062         * jv-scan.c (main): Likewise.
3063         * jvgenmain.c (main): Likewise.
3064
3065 2005-04-23  DJ Delorie  <dj@redhat.com>
3066
3067         * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
3068         parse.y: Adjust warning() callers.
3069
3070 2005-04-21  Bryce McKinlay  <mckinlay@redhat.com>
3071
3072         * gcj.texi (Object fields): Change "Integer" to "Int" in example
3073         contructor.
3074
3075 2005-04-20  Bryce McKinlay  <mckinlay@redhat.com>
3076
3077         * gcj.texi: Fix typos and bogus example.
3078
3079 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
3080
3081         * except.c: Fix a comment typo.
3082
3083 2005-04-19  Julian Brown  <julian@codesourcery.com>
3084
3085         * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
3086         indirect dispatch with PIC.
3087
3088 2005-04-18  Andrew Haley  <aph@redhat.com>
3089
3090         * java-except.h (struct eh_range.handler): Remove unused field.
3091         (handle_nested_ranges): Remove function declaration.
3092         (sanity_check_exception_range): Add function declaration.       
3093         * verify.c (verify_jvm_instructions): Remove call to
3094         handle_nested_ranges.
3095         * verify-glue.c (verify_jvm_instructions_new): Call
3096         sanity_check_exception_range.
3097         * except.c (link_handler, eh_range_freelist, link_handler,
3098         handle_nested_ranges): Remove.
3099         (add_handler): Rewrite.
3100         (sanity_check_exception_range): New function.
3101         (print_ranges): New function.
3102
3103 2005-04-13  Julian Brown  <julian@codesourcery.com>
3104
3105         * decl.c (finish_method): Give methods once-only linkage.
3106
3107 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
3108
3109         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
3110
3111 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3112
3113         * java-tree.h: Don't use PARAMS().
3114
3115 2005-04-07  Per Bothner  <per@bothner.com>
3116
3117         * class.c (push_class): By default, suppress debug output.
3118         (finish_class): Enable debug output for classes we're emitting.
3119
3120 2005-04-07  Andrew Haley  <aph@redhat.com>
3121
3122         * gcj.texi: Correct gcj-dbtool instructions.
3123
3124 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
3125
3126         * gcj.texi: Fix a typo.
3127         * lang.c: Fix a comment typo.
3128
3129 2005-04-01  Thomas Fitzsimmons  <fitzsim@redhat.com>
3130
3131         * gcj.texi (Invoking gij): Add descriptions of new -X options.
3132         Mention recognized-and-ignored compatibility options.
3133         (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
3134         JvFree.
3135         (About CNI): Add Memory allocation section.
3136
3137 2005-04-01  Tom Tromey  <tromey@redhat.com>
3138
3139         * decl.c (java_init_decl_processing): Fix types of
3140         _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
3141         _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
3142         _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
3143
3144 2005-03-31  Jan Hubicka  <jh@suse.cz>
3145
3146         * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
3147         * class.c: Include cgraph.h
3148         (make_local_functoin_alias): Mark aslias as needed.
3149         * resource.c: Include cgraph.h
3150         (compile_resource_data): Go via cgraph interface.
3151
3152 2005-03-30  Ian Lance Taylor  <ian@airs.com>
3153
3154         * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
3155
3156 2005-03-30  Tom Tromey  <tromey@redhat.com>
3157
3158         * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
3159         inner_class_info_index==0 or outer_class_info_index==0.
3160
3161 2005-03-29  Tom Tromey  <tromey@redhat.com>
3162
3163         * gcj.texi (libgcj Runtime Properties): Document
3164         gnu.gcj.runtime.endorsed.dirs.
3165
3166 2005-03-24  Anthony Green  <green@redhat.com>
3167
3168         * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
3169         'gcj-dbtool -p'.
3170
3171 2005-03-23  Tom Tromey  <tromey@redhat.com>
3172
3173         * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
3174         (parse_version): Use it.
3175
3176 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3177
3178         * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
3179
3180 2005-03-18  Andrew Haley  <aph@redhat.com>
3181
3182         PR java/20522
3183         * decl.c (update_aliases): Don't update variables that are about
3184         to die.
3185         (maybe_poplevels): Add comment.
3186
3187 2005-03-17  Bryce McKinlay  <mckinlay@redhat.com>
3188
3189         PR java/20502
3190         * jcf-parse.c (duplicate_class_warning): New function.
3191         (java_parse_file): Call duplicate_class_warning if 
3192         CLASS_FROM_CURRENTLY_COMPILED_P is already set.
3193         (parse_zip_file_entries): Likewise. Also set
3194         CLASS_FROM_CURRENTLY_COMPILED_P.
3195
3196 2005-03-16  Andrew Haley  <aph@redhat.com>
3197
3198         * expr.c (expand_java_arrayload): Don't generate a
3199         NullPointerException based on the type of the node.
3200         (build_java_array_length_access): Likewise.
3201
3202 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
3203
3204         * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
3205
3206 2005-03-11  Tom Tromey  <tromey@redhat.com>
3207
3208         * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
3209         (libgcj Runtime Properties): Document the default .db.
3210
3211 2005-03-10  Ranjit Mathew  <rmathew@hotmail.com>
3212
3213         PR java/20312
3214         * parse.y (checks_throws_clauses): Check exceptions list even when
3215         the base class does not come from a source file being compiled.
3216         (java_complete_lhs): Remove unused variable 'wfl'.
3217
3218 2005-03-09  Ranjit Mathew  <rmathew@hotmail.com>
3219
3220         PR java/20338
3221         * decl.c (finish_method): Emit _Jv_InitClass for private static
3222         methods inside inner classes as well.
3223
3224 2005-03-08  Julian Brown  <julian@codesourcery.com>
3225         * Revert patch from 2005-03-08 for causing bootstrap failure on
3226         ppc-darwin.
3227
3228 2005-03-08  Julian Brown  <julian@codesourcery.com>
3229
3230         * decl.c (finish_method): Give methods once-only linkage.
3231
3232 2005-03-07  Ranjit Mathew  <rmathew@hotmail.com>
3233
3234         * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
3235
3236 2005-03-07  Bryce McKinlay  <mckinlay@redhat.com>
3237
3238         * verify-glue.c (vfy_is_assignable_from): Perform static check using
3239         can_widen_reference_to if the C++ ABI is in use.
3240         (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
3241         * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
3242         type_isresolved, init_state, set_pc, state_get_pc,
3243         _Jv_BytecodeVerifier): Clean up unused and disabled functions.
3244         (verify_fail): Report the current PC from the verifier context.
3245         (free_state): Remove #if 0 block to enable this function.
3246         (free_verifier_context): Call free_state on state_list iterator
3247         values before freeing them.
3248         * expr.c (pop_type_0): Pop correct type for error message when stack
3249         contains a multi-word type.
3250
3251 2005-03-07  Ranjit Mathew  <rmathew@hotmail.com>
3252
3253         * expr.c (build_java_array_length_access): Remove !flag_new_verifier
3254         for known NULL array length access.
3255
3256 2005-03-07  Tom Tromey  <tromey@redhat.com>
3257
3258         * gcj.texi (Invoking gcj-dbtool): Document '-f'.
3259
3260 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3261
3262         * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
3263         typeck.c: Update copyright.
3264
3265 2005-03-06  Ranjit Mathew  <rmathew@hotmail.com>
3266
3267         Remove xref code.
3268         * xref.c, xref.h: Remove file.
3269         * Make-lang.in (java/xref.o): Remove.
3270         * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
3271         * lang.c (flag_emit_xref): Remove definition.
3272         * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
3273         * typeck.c (convert): Remove use of do_not_fold.
3274         * parse.y (do_not_fold): Remove definition.
3275         (parser grammar): Remove xref code.
3276         (maybe_create_class_interface_decl, create_class): Likewise.
3277         (register_fields, method_header, finish_method_declaration): Likewise.
3278         (declare_local_variables, source_end_java_method): Likewise.
3279         (java_complete_expand_classes): Do not set do_not_fold.
3280         (java_complete_expand_method): Remove xref code.
3281         (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
3282         (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
3283         (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
3284         (patch_synchronized_statement, patch_throw_statement): Likewise.
3285         (maybe_build_class_init_for_field): Likewise.
3286
3287 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3288
3289         * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
3290         instead of IS_NON_TYPE_CODE_CLASS.
3291
3292 2005-03-04  Andrew Haley  <aph@redhat.com>
3293
3294         PR java/18362
3295         * class.c (set_method_index): Don't set method_index if it is
3296         NULL_TREE.
3297         (layout_class_method): Don't complain about "non-static method foo
3298         overrides static method" in the case of indirect dispatch.
3299
3300 2005-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3301
3302         * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
3303         warning.
3304         * Make-lang.in: Don't elide warnings in jcf-io.c.
3305
3306 2005-03-01  Per Bothner  <per@bothner.com>
3307
3308         PR java/8608
3309         * check-init.c (wfl): Remove static.
3310         (final_assign_error, check_init): Replace calls to parse_error_context
3311         by plain error.
3312         (check_init): Save, set, and restore input_location for each exp.
3313
3314 2005-03-01  Per Bothner  <per@bothner.com>
3315
3316         * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
3317         if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
3318         * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
3319
3320 2005-03-01  Per Bothner  <per@bothner.com>
3321
3322         * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
3323
3324 2005-02-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
3325
3326         PR libgcj/16923
3327         * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
3328         JvVMOption.
3329
3330 2005-02-22  Tom Tromey  <tromey@redhat.com>
3331
3332         PR java/20056:
3333         * verify-impl.c (EITHER): New define.
3334         (types_compatible): Handle it.
3335         (check_field_constant): Use it.
3336
3337 2005-02-18  Tom Tromey  <tromey@redhat.com>
3338
3339         PR java/20056:
3340         * verify-impl.c (types_equal): Fixed test.
3341
3342         PR java/20056:
3343         * verify-glue.c (vfy_class_has_field): New function.
3344         * verify.h (vfy_class_has_field): Declare.
3345         * verify-impl.c (check_field_constant): Added 'putfield'
3346         argument.
3347         (verify_instructions_0): Updated.
3348         (types_equal): New function.
3349
3350 2005-02-14  Tom Tromey  <tromey@redhat.com>
3351
3352         PR java/19921:
3353         * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
3354         stack effect of multianewarray.
3355
3356 2005-02-14  Andrew Haley  <aph@redhat.com>
3357
3358         PR java/19907
3359         * expr.c (expand_byte_code): Call promote_arguments().
3360         (promote_arguments): New function.
3361         * decl.c (check_local_unnamed_variable): Remove special case for
3362         new verifier.
3363         (find_local_variable): Promote all boolean types to int
3364         when searching for local variable decls.
3365
3366 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
3367
3368         * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
3369         parse-scan.y: Update copyright.
3370
3371 2005-02-11  Per Bothner  <per@bothner.com>
3372
3373         PR java/15543
3374         * parse-scan.y (input_location): Remove variable.
3375         (main_input_filename): New - replaces input_filename, which isn't
3376         settable if USE_MAPPED_LOCATION.
3377         * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
3378         so we don't reference input_location or wfl_operator in that case.
3379         * jv-scan.c (expand_location): Remove - no longer used.
3380         (main): Set main_input_filename rather than input_filename.
3381
3382 2005-02-09  Richard Henderson  <rth@redhat.com>
3383
3384         * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
3385         * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
3386
3387 2005-02-08  Marcin Dalecki  <martin@dalecki.de>
3388
3389         * expr.c (add_type_assertion): Use the proper enumeration type,
3390         since this is what htab_find_slot() is expecting.
3391
3392 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
3393
3394         * gcj.texi: Update copyright dates.
3395
3396 2005-02-02  Tom Tromey  <tromey@redhat.com>
3397
3398         * gcj.texi (libgcj Runtime Properties): Default library_control
3399         to 'cache'.
3400
3401 2005-02-02  Ranjit Mathew  <rmathew@hotmail.com>
3402
3403         PR java/15543
3404         * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
3405         (modifiers) when square brackets are present in a declaration for
3406         a final paramter.
3407         * jv-scan.c (main): Set input_filename and input_line.
3408
3409 2005-02-01  Tom Tromey  <tromey@redhat.com>
3410
3411         PR java/19742:
3412         * gjavah.c (get_field_name): Don't override name for JNI header.
3413
3414 2005-02-01  Roger Sayle  <roger@eyesopen.com>
3415
3416         * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
3417         of unsigned types using iushr and lushr JVM bytecodes.
3418
3419 2005-02-01  Ranjit Mathew  <rmathew@hotmail.com>
3420
3421         PR java/19738
3422         * gjavah.c (jni_print_float): Do not emit floating-point
3423         initialiser for a static final field.
3424         (jni_print_double): Likewise.
3425
3426 2005-02-01  Mark Mitchell  <mark@codesourcery.com>
3427
3428         Revert:
3429         2005-01-31  Mark Mitchell  <mark@codesourcery.com>
3430         * gjavah.c (print_field_info): Mark static data members of
3431         floating-point type with "__extension__".
3432
3433 2005-01-31  Mark Mitchell  <mark@codesourcery.com>
3434
3435         * gjavah.c (print_field_info): Mark static data members of
3436         floating-point type with "__extension__".
3437
3438 2005-02-01  Ranjit Mathew  <rmathew@hotmail.com>
3439
3440         PR java/9157
3441         * parse.y (build_string_concatenation): Remove redundant if.
3442         (patch_conditional_expr): Attempt to patch_string() the condition
3443         of a ?: as well, in addition to its other operands.
3444
3445 2005-01-25  Tom Tromey  <tromey@redhat.com>
3446
3447         * Make-lang.in (java/java-tree-inline.o): Removed.
3448
3449 2005-01-25  Ranjit Mathew  <rmathew@hotmail.com>
3450
3451         PR java/19070
3452         * parse.y (patch_binop): Allow comparisons against NULL only
3453         if the other operand is of a reference type.
3454
3455 2005-01-24  Tom Tromey  <tromey@redhat.com>
3456
3457         * java-tree.h (gcj_abi_version): Declare.
3458         * class.c (make_class_data): Push gcj_abi_version into "next"
3459         field.  Renamed field.
3460         * decl.c (gcj_abi_version): New global.
3461         (parse_version): New function.
3462         (java_init_decl_processing): Call it.  Renamed 'next' field.
3463         Include version.h.
3464         (GCJ_BINARYCOMPAT_ADDITION): New define.
3465
3466 2005-01-24  Roger Sayle  <roger@eyesopen.com>
3467
3468         PR java/19295
3469         * jcf-write.c (generate_bytecode_insns): Conversions between
3470         integer types of the same precision shouldn't generate widening
3471         or narrowing conversion bytecodes.
3472
3473 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
3474
3475         * java-except.h, java-tree.h: Remove unused prototypes.
3476
3477 2005-01-20  Andrew Pinski  <pinskia@gcc.gnu.org>
3478
3479         PR java/18091:
3480         * jcf-write.c (perform_relocations): Don't call memcpy if source
3481         and destination are the same.
3482
3483 2005-01-17  Tom Tromey  <tromey@redhat.com>
3484
3485         * verify-impl.c (get_short): Sign extend.
3486         (get_int): Likewise.
3487
3488 2005-01-12  Ranjit Mathew  <rmathew@hotmail.com>
3489
3490         * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
3491         with TYPE_SIZE.
3492
3493 2005-01-10  Ranjit Mathew  <rmathew@hotmail.com>
3494
3495         * verify.c: Revert to the version before the BC-ABI merge.
3496
3497 2005-01-10  Ranjit Mathew  <rmathew@hotmail.com>
3498
3499         PR java/19277
3500         * check-init.c (check_init): Take care of references that do not
3501         have an explicit final variable declaration (e.g. array length
3502         access) for pre/post in/de-crement operators.
3503
3504 2005-01-08  Mark Wielaard  <mark@klomp.org>
3505
3506         * parse.y (process_imports): Allocate (and free) original_name only
3507         when not already defined.
3508         * jcf-parse.c (read_class): Free results of find_class() and
3509         lrealpath().
3510         (java_parse_file): Keep pointer to head of file_list and free when
3511         done. Free result of lrealpath().
3512
3513 2005-01-05  Tom Tromey  <tromey@redhat.com>
3514
3515         * gcj.texi (Standard Properties): java.ext.dirs is now used.
3516
3517 2004-12-20  Andrew Haley  <aph@redhat.com>
3518
3519         * typeck.c: Use fold_convert for ints and booleans.
3520
3521 2004-12-17  Andrew Haley  <aph@redhat.com>
3522
3523         PR java/18931
3524         * typeck.c (convert): Use a CONVERT_EXPR when converting to
3525         BOOLEAN_TYPE or CHAR_TYPE.
3526         (convert_to_boolean, convert_to_char) : Remove.
3527         * convert.h (convert_to_boolean, convert_to_char) : Remove.
3528         * expr.c (expand_load_internal): Do type conversion if type is not
3529         as required.
3530
3531 2004-12-13  Danny Smith  <dannysmith@users.sourceforge.net>
3532
3533         PR target/18459
3534         * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
3535         Update comment.
3536
3537 2004-12-07  Andrew Haley  <aph@redhat.com>
3538
3539         PR java/18811:
3540         * jcf-parse.c (load_class): Remove sanity test for missing inner
3541         class file.
3542
3543 2004-12-06  Tom Tromey  <tromey@redhat.com>
3544
3545         * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
3546         (java.uninstall): Likewise.
3547         (java.maintainer-clean): Likewise.
3548         (.INTERMEDIATE): Likewise.
3549         (java.install-man): Likewise.
3550         (gcj-dbtool.pod): New target.
3551         * gcj.texi (Code Generation): Document -findirect-dispatch.
3552         (libgcj Runtime Properties): Document
3553         gnu.gcj.precompiled.db.path.
3554         (Top): Link to "Invoking gcj-dbtool".
3555
3556 2004-12-06  Tom Tromey  <tromey@redhat.com>
3557
3558         PR java/14853:
3559         * java-tree.h (extract_field_decl): Declare.
3560         * parse.y (extract_field_decl): Renamed from
3561         strip_out_static_field_access_decl.  No longer static.
3562         * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
3563
3564 2004-12-03  Tom Tromey  <tromey@redhat.com>
3565
3566         * lang.c (flag_new_verifier): Define.
3567         (java_post_options): Set flag_new_verifier if indirect dispatch
3568         is being used.
3569         * lang.opt (fnew-verifier): Removed.
3570
3571 2004-12-03  Tom Tromey  <tromey@redhat.com>
3572
3573         PR bootstrap/14614:
3574         * Make-lang.in (java.install-common): Only install transformed
3575         gcjh if gcj-cross exists.
3576
3577 2004-12-03  Andrew Haley  <aph@redhat.com>
3578
3579         PR java/18812
3580         * except.c (link_handler): Patch 'outer' field of siblings of the
3581         range we're demoting.
3582
3583 2004-12-03  Andrew Haley  <aph@redhat.com>
3584
3585         PR java/18697
3586         * class.c (layout_class_method): Don't fail to override a method
3587         simply because it has DECL_ARTIFICIAL set.
3588
3589 2004-12-02  Tom Tromey  <tromey@redhat.com>
3590
3591         PR java/16675:
3592         * parse.y (craft_constructor): Special case null_pointer_node.
3593
3594 2004-12-02  Tom Tromey  <tromey@redhat.com>
3595
3596         PR java/18741:
3597         * java-gimplify.c (java_gimplify_expr): Don't call
3598         SET_EXPR_LOCATION unless wrapped tree is an expression.
3599
3600 2004-11-27  Per Bothner  <per@bothner.com>
3601
3602         * jcf-parse.c (set_source_filename):  Improvement to Andrew's fix:
3603         Fix fencepost error in 'i', which got executed one too many times.
3604         Also, fold memcpy into explicit loop, as originally intended.
3605         Also, free temporary 'buf' which otherwise leaks.
3606
3607 2004-11-27  Per Bothner  <per@bothner.com>
3608
3609         * expr.c (build_expr_wfl): Only declare last_file and last_filenode
3610         local static variables if not USE_MAPPED_LOCATION.
3611
3612 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
3613
3614         * class.c, decl.c, expr.c: Fix comment typos.
3615
3616 2004-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
3617
3618         PR java/18305
3619         * decl.c (end_java_method): Call
3620         attach_init_test_initialization_flags on all the init_decls.
3621         * parse.y (attach_init_test_initialization_flags): Move to ...
3622         * expr.c (attach_init_test_initialization_flags): here and
3623         support BIND_EXPR also.
3624         * java-tree.h (attach_init_test_initialization_flags): Prototype.
3625         * jcf-parse.c (parse_class_file): Don't disable class init
3626         optimization.
3627
3628 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
3629
3630         * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
3631         in diagnostics.
3632
3633 2004-11-24  Richard Henderson  <rth@redhat.com>
3634
3635         * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
3636         vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
3637
3638 2004-11-24  Tom Tromey  <tromey@redhat.com>
3639
3640         * verify.c (defer_merging): Don't use C++-style comment.
3641         * verify.h (java_opcode): Added java_opcode_end.
3642         * class.c (build_class_ref): Remove C++ comment and old FIXME.
3643
3644         * verify-impl.c (vfy_push_type): Removed bogus "return".
3645         (initialize_stack): Use vfy_alloc and vfy_free.
3646         (verify_instructions_0): Likewise.
3647
3648         * Merged gcj-abi-2-dev-branch to trunk.
3649
3650 2004-11-24  Andrew Haley  <aph@redhat.com>
3651
3652         * jcf-parse.c (parse_class_file): Set file_start_location.
3653
3654 2004-11-10  Tom Tromey  <tromey@redhat.com>
3655
3656         * class.c (make_field_value): Don't call build_static_field_ref.
3657         (build_static_field_ref): Don't emit direct references when using
3658         indirect dispatch.
3659
3660         * gcj.texi (Invoking gij): Document -verbose.  Put -verbose and
3661         -verbose:class into man page synopsis.
3662
3663 2004-11-09  Tom Tromey  <tromey@redhat.com>
3664
3665         * expr.c (build_java_arraystore_check): Still generate check if
3666         element type is itself an array.
3667
3668 2004-11-08  Tom Tromey  <tromey@redhat.com>
3669
3670         * java-tree.h (soft_check_assignment_node): Removed.
3671         (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
3672         * decl.c (java_init_decl_processing): Don't initialize
3673         soft_check_assignment_node.
3674
3675 2004-11-05  Tom Tromey  <tromey@redhat.com>
3676
3677         * class.c (layout_class_methods): Don't add Miranda methods when
3678         using indirect dispatch.
3679
3680 2004-11-05  Bryce McKinlay  <mckinlay@redhat.com>
3681
3682         * class.c (make_class_data): Call emit_assertion_table to set the
3683         'assertion_table' field.
3684         (build_signature_for_libgcj): Move here from expr.c.
3685         (add_assertion_table_entry): New function. Callback for assertion
3686         hashtable traversal.
3687         (emit_assertion_table): New. Take class argument, and generate
3688         assertion table DECL based on the TYPE_ASSERTIONS hashtable.
3689         * decl.c (init_decl_processing): Define assertion_entry_type record.
3690         Push 'assertion_table' class field instead of 'verify'.
3691         * expr.c (type_assertion_eq): Compare 'assertion_code' field.
3692         (type_assertion_hash): Include 'assertion_code' in hash.
3693         (add_type_assertion): Rewritten. Take class and assertion_code
3694         arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
3695         (can_widen_reference_to): Use new add_type_assertion() arguments.
3696         * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
3697         JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
3698         (verify_identifier_node): Removed.
3699         (assertion_entry_type, assertion_table_type): New.
3700         (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
3701         assertion code definitions.
3702         (struct type_assertion): Add assertion_code. Rename 'source_type' and
3703         'target_type' to 'op1' and 'op2'.
3704         (add_type_assertion): Declare.
3705         (lang_printable_name_wls): Remove unused definition.
3706         * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
3707         to emit runtime assertion.
3708         (vfy_note_stack_type): Clean up non-C90 declarations.
3709         (vfy_note_local_type): Likewise.
3710         * verify.h (vfy_is_assignable_from): Declare.
3711         * verify-impl.c (is_assignable_from_slow): Remove unused function.
3712         (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
3713         instead of is_assignable_from_slow().
3714         (types_compatible): Reinstate ref_compatible() call.
3715
3716 2004-11-04  Tom Tromey  <tromey@redhat.com>
3717
3718         * class.c (build_static_field_ref): Reverted previous patch.
3719
3720         * class.c (build_static_field_ref): Don't emit direct references
3721         when using indirect dispatch.
3722
3723 2004-11-03  Tom Tromey  <tromey@redhat.com>
3724
3725         * expr.c (expand_java_arrayload): Set lhs_type_node.
3726         (expand_java_arraystore): Set rhs_type_node.
3727
3728 2004-11-02  Tom Tromey  <tromey@redhat.com>
3729
3730         * jcf-parse.c (compute_class_name): Use filename length from zip
3731         directory, not strlen.
3732
3733         * expr.c (expand_invoke): Mark new interface methods as abstract.
3734
3735 2004-11-01  Tom Tromey  <tromey@redhat.com>
3736
3737         * verify-impl.c (push_jump): Removed check for uninitialized
3738         objects.
3739         (push_exception_jump): Likewise.
3740         (handle_ret_insn): Likewise.
3741         (handle_jsr_insn): Likewise.
3742         (state_check_no_uninitialized_objects): Removed.
3743
3744         * decl.c (check_local_unnamed_variable): Recognize
3745         promoted-to-int parameters when using the new verifier.
3746         * expr.c (expand_java_arraystore): Explicitly request array type
3747         when using new verifier.
3748         (expand_java_arrayload): Likewise.
3749         (invoke_build_dtable): Don't pass object_type_node as
3750         expression argument to build_java_indirect_ref.
3751         (build_java_check_indexed_type): Do nothing.
3752         (build_java_arraystore_check): Handle case where array doesn't
3753         have array type.
3754         (build_java_array_length_access): Likewise.
3755         (expand_invoke): Handle case where interface overrides a method
3756         from Object.
3757         (pop_type_0): Always succeed for reference types.
3758         (process_jvm_instruction): Don't pop a value in a dead
3759         exception handler.
3760         (pop_arguments): Convert arguments to correct types.
3761
3762 2004-10-29  Andrew Haley  <aph@redhat.com>
3763
3764         * jcf-parse.c (give_name_to_class): Remove line that was
3765         incorrectly merged.
3766
3767 2004-10-29  Andrew Haley  <aph@redhat.com>
3768
3769         * jcf-parse.c (set_source_filename): Add code to build new sfname.
3770
3771 2004-10-20  Andrew Haley  <aph@redhat.com>
3772
3773         * decl.c (end_java_method): Don't expand if flag_syntax_only.
3774
3775 2004-10-26  Tom Tromey  <tromey@redhat.com>
3776
3777         * verify.h (vfy_notify_verified): Removed.
3778         * verify-glue.c (vfy_notify_verified): Removed.
3779
3780 2004-10-26  Tom Tromey  <tromey@redhat.com>
3781
3782         * verify-impl.c (debug_print_state): Declare `i' before code.
3783         (merge_types): Modify `t' when it is null_type.
3784
3785 2004-10-26  Tom Tromey  <tromey@redhat.com>
3786
3787         * verify-impl.c (type_print): Renamed from print.  Now static and
3788         takes an argument.
3789         (debug_print_state): Use type_print.
3790
3791 2004-10-25  Tom Tromey  <tromey@redhat.com>
3792
3793         * expr.c (build_invokeinterface): Compute correct offset for
3794         index into interface methods.
3795
3796 2004-10-20  Tom Tromey  <tromey@redhat.com>
3797
3798         * java-tree.h (verify_jvm_instructions_new): Declare.
3799
3800         * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
3801         command line.
3802
3803         * verify-impl.c (verify_instructions): Correctly handle wide
3804         types on the stack.
3805         * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
3806         (vfy_get_component_type): Strip pointer types.
3807         (vfy_find_class): Use get_type_from_signature.  Strip pointer
3808         types.
3809         Include java-except.h.
3810
3811 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
3812
3813         * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
3814         vfy_push_type_t, set_variable, add_new_state, merge_into,
3815         handle_jsr_insn, branch_prepass, check_class_constant,
3816         check_wide_constant, get_one_type, compute_static_types,
3817         verify_instructions_0): Clean up C99 declarations after statements.
3818
3819 2004-10-20  Tom Tromey  <tromey@redhat.com>
3820
3821         * verify-impl.c (merge_refs): Compare reference against iterator,
3822         not ref2.
3823
3824         * verify-glue.c (vfy_tag): Mask off resolved flag.
3825
3826 2004-10-19  Tom Tromey  <tromey@redhat.com>
3827
3828         * verify-impl.c (verify_instructions): Call vfy_note_local_type.
3829         (init_state_with_stack): Initialize `this_type' in state.
3830         (verify_method): Use debug_print.
3831         * verify-glue.c (vfy_is_primitive): Removed debugging print.
3832         (vfy_note_stack_depth): Reverted last patch.
3833         (vfy_note_stack_type): Note pointer to Object, not Object.
3834         (vfy_note_local_type): Likewise.
3835
3836         * verify.h (vfy_note_instruction_seen): Declare.
3837         * verify-glue.c (verify_jvm_instructions_new): Set
3838         BCODE_EXCEPTION_TARGET on target instruction.
3839         (vfy_note_instruction_seen): New function.
3840         * verify-impl.c (FLAG_INSN_SEEN): New define.
3841         (verify_instructions_0): Set flag on instruction.  Save state for
3842         PC=0 later.
3843         (verify_instructions): Call vfy_note_instruction_seen.
3844
3845         * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
3846         (verify_jvm_instructions_new): Call method_init_exceptions,
3847         add_handler, and handle_nested_ranges.
3848         * verify-impl.c (verify_method): Return 1 on success.
3849         (verify_instructions_0): Save the state at PC=0.
3850
3851         * verify-impl.c (init_type_from_class): Set is_resolved and
3852         ref_next on new ref_intersection.
3853         (init_type_from_string): Likewise.
3854
3855 2004-10-15  Bryce McKinlay  <mckinlay@redhat.com>
3856
3857         * expr.c (expand_bytecode): Use verify_jvm_instructions_new
3858         if flag_new_verifier is set.
3859         * java-tree.h (flag_new_verifier): Declare.
3860         * lang.opt (fnew-verifier): New option.
3861         * verify-impl.c: Work around namespace pollution by undef'ing
3862         'current_class'.
3863         (struct verifier_context): Make 'bytecode' const.
3864         (verify_fail_pc): Pass -1 PC argument to vfy_fail.
3865         (types_compatible): For the BC-ABI, always consider reference types
3866         compatible.
3867         (check_class_constant): Use vfr->current_class.
3868         (check_constant): Likewise.
3869         (check_wide_constant): Likewise.
3870         (check_field_constant): Check for 'L' at start of type name.
3871         (get_one_type): Return pointer instead of type. Set type result in
3872         caller via passed type pointer.
3873         (compute_argument_types): Update to use new get_one_type arguments.
3874         (compute_return_type): Likewise.
3875         (make_verifier_context): New. Allocate and initialize 'vfr'.
3876         (free_verifier_context): New. Free 'vfr' and its contents.
3877         (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
3878         and free_verifier_context.
3879
3880 2004-10-15  Tom Tromey  <tromey@redhat.com>
3881
3882         * verify-glue.c (vfy_note_local_type): Mark argument as unused.
3883         * verify.h (vfy_fail): Fixed formatting.
3884
3885         * verify-impl.c (vfr): Fixed comment formatting.
3886         (collapse_type): New function.
3887         (verify_instructions): Notify compiler about type map.
3888         * verify.h (vfy_note_stack_depth): Updated.
3889         (vfy_note_stack_type): Likewise.
3890         (vfy_note_local_type): Likewise.
3891         (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
3892         Declare.
3893         * verify-glue.c (vfy_note_stack_depth): Correctly size type
3894         state.  Added `method' argument.
3895         (vfy_note_stack_type): Renamed from vfy_note_type.  Added `method'
3896         argument.
3897         (vfy_note_local_type): New function.
3898         (vfy_unsuitable_type): Likewise.
3899         (vfy_return_address_type): Likewise.
3900         (vfy_null_type): Likewise.
3901
3902         * verify.h (VFY_IN_GCC): Removed.
3903         (VFY_WANT_TYPEMAP): Removed.
3904         * verify-impl.c (verify_instructions_0): Removed useless "\".
3905         (struct state) <next>: Uncomment.
3906
3907 2004-10-13  Bryce McKinlay  <mckinlay@redhat.com>
3908
3909         * verify-impl.c: Formatting fixes. Reformat C++-style comments to
3910         C-style.
3911
3912 2004-10-06  Bryce McKinlay  <mckinlay@redhat.com>
3913
3914         * Make-lang.in (verify.o): Re-enabled this target.
3915         * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
3916         (vfy_get_interface): Likewise.
3917         (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
3918         * verify.h (verify_jvm_instructions_new): Declare.
3919         * verify-impl.c (free_state): Temporarily comment out unused
3920         function.
3921
3922 2004-10-06  Tom Tromey  <tromey@redhat.com>
3923
3924         * java-tree.h (JV_STATE_READ): New enum value.
3925
3926 2004-10-06  Bryce McKinlay  <mckinlay@redhat.com>
3927
3928         * verify.h: New file.
3929
3930 2004-10-05  Bryce McKinlay  <mckinlay@redhat.com>
3931
3932         * verify-impl.c, verify-glue.c, verify.h: New files.
3933         * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
3934
3935 2004-09-24  Andrew Haley  <aph@redhat.com>
3936
3937         * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
3938         for a slot if it's of pointer type.
3939
3940 2004-09-14  Tom Tromey  <tromey@redhat.com>
3941
3942         * class.c (make_class_data): Correctly initialize "state" field.
3943         Initialize "engine" field.
3944         * decl.c (java_init_decl_processing): Add "engine" field.
3945
3946 2004-09-10  Andrew Haley  <aph@redhat.com>
3947
3948         PR java/12760
3949         * expr.c (build_invokeinterface): Use fast method for interface
3950         dispatch.
3951         * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
3952         JTI_ITABLE_PTR_TYPE.
3953         (struct lang_type): Add  itable_methods, itable_decl, itable_syms_decl.
3954         (emit_symbol_table): Add new arg, element_size.
3955         * decl.c (java_init_decl_processing): Initialize Class.itable.
3956         * class.c (GEN_TABLE): New macro.
3957         (gen_indirect_dispatch_tables): Use it.  Add itable.
3958         (make_class_data): Add new arg for emit_symbol_table().
3959         Emit itable.
3960         (add_miranda_methods): Make sure search_class has been parsed.
3961         (emit_symbol_table): Add new arg, element_size.
3962
3963 2004-09-06  Andrew Haley  <aph@redhat.com>
3964
3965         * verify.c (merge_types): Return Object for all merges of
3966         interfaces.
3967         * expr.c (add_type_assertion): Don't generate assertions when
3968         source type is array of Object.
3969
3970 2004-09-03  Andrew Haley  <aph@redhat.com>
3971
3972         * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
3973
3974         * lang.c (java_post_options): Force flag_verify_invocations if
3975         we're not using indirect dispatch.
3976
3977         * expr.c (pop_type_0): Move test for interfaces before call to
3978         can_widen_reference_to().
3979         (build_signature_for_libgcj): Remove generation of canonical array
3980         type.
3981         (add_type_assertion): Canonicalize both arrays.
3982         Don't assert that type X can be assigned to Object.
3983         Don't assert that type X an be assigned to type X.
3984         Don't assert that Object can be assigned to type X.
3985         (can_widen_reference_to): Warn whenever we generate an assertion.
3986         (process_jvm_instruction): Use throwable_type_node for the type of
3987         an exception class.
3988
3989 2004-09-01  Andrew Haley  <aph@redhat.com>
3990
3991         * decl.c (java_init_decl_processing): Change
3992         verify_identifier_node to "__verify".
3993         * expr.c (add_type_assertion): Use verify_identifier_node for name.
3994         * java-tree.h (verify_identifier_node): Change to "__verify".
3995
3996         * expr.c (build_signature_for_libgcj): New function.
3997         (add_type_assertion): Use it to construct signatures for
3998         source_type and target_type.
3999
4000 2004-08-27  Andrew Haley  <aph@redhat.com>
4001
4002         * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
4003         (verify_identifier_node): New.
4004         (TYPE_VERIFY_METHOD): New.
4005         (struct type_assertion): New type.
4006         * expr.c (type_assertion_eq): New function.
4007         (type_assertion_hash): New function.
4008         (add_type_assertion): New function.
4009         (can_widen_reference_to): Call add_type_assertion().
4010         * decl.c (java_init_decl_processing): Add verify_identifier_node.
4011         * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
4012         (finish_class): Output TYPE_VERIFY_METHOD (type).
4013
4014         * decl.c (end_java_method): Nullify unused fields.
4015
4016 2004-08-17  Andrew Haley  <aph@redhat.com>
4017
4018         * verify.c (defer_merging): Quieten.
4019         * jcf-parse.c (load_class): Only try to open a class file if it's
4020         java.lang.Object or if it's part of the current compilation.
4021         Check that the class we just tried to load is the class we just
4022         loaded.  Quieten.
4023         (java_parse_file): Set flag_verify_invocations off if we're
4024         compiling from .class.
4025         (parse_zip_file_entries): Abort if we try to read a dummy class.
4026         * expr.c (can_widen_reference_to): Quieten.
4027         (build_invokevirtual): Abort if we try to invokevirtual an
4028         interface.
4029         (expand_invoke): Don't build a non-interface call to an interface.
4030         (build_instanceof): Don't do premature optimization if
4031         flag_verify_invocations is not set.
4032         * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
4033         from superclass.
4034         (build_static_field_ref): Add correct type conversion for
4035         field_address.
4036         (add_miranda_methods): Disable generation of Miranda methods for
4037         dummy classes.
4038         (layout_class_method): Don't complain about non-static method
4039         overrides static method with dummy classes.
4040
4041 2004-08-13  Tom Tromey  <tromey@redhat.com>
4042
4043         * class.c (build_static_field_ref): Re-enable atable lookups for
4044         static fields.
4045
4046         * parse.y (strip_out_static_field_access_decl): Indentation fix.
4047
4048 2004-08-11  Tom Tromey  <tromey@redhat.com>
4049
4050         * gcj.texi (libgcj Runtime Properties): Document new properties.
4051
4052 2004-08-06  Andrew Haley  <aph@redhat.com>
4053
4054         * jcf-parse.c (load_class): Check that we really have loaded the
4055         class we're looking for.
4056
4057 2004-07-19  Andrew Haley  <aph@redhat.com>
4058
4059         * verify.c (verify_jvm_instructions): Comment change only.
4060
4061         * typeck.c (build_java_array_type): Add size field to array name.
4062
4063         * java-tree.h (LOCAL_SLOT_P): New.
4064         (update_aliases): Add PC argument.
4065         (pushdecl_function_level): New function.
4066
4067         * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
4068         MODIFY_EXPR, and SAVE_EXPR.
4069         (java_gimplify_modify_expr): New function.
4070
4071         * expr.c (push_type_0): Call find_stack_slot() to create temporary.
4072         (expand_iinc): Pass PC to update_aliases().
4073         (STORE_INTERNAL): Likewise.
4074         (process_jvm_instruction): Likewise.
4075
4076         * decl.c (base_decl_map): New variable.
4077         (uniq): New variable.
4078         (update_aliases): Rewrite with more thorough checking.
4079         (debug_variable_p): New function.
4080         (push_jvm_slot): Don't initialize local variable.  Don't pushdecl.
4081         (check_local_named_variable): Delete whole function.
4082         (initialize_local_variable): New function.
4083         (check_local_unnamed_variable): Add checks and comments.
4084         (find_local_variable): Rewrite.
4085         (java_replace_reference): New function.
4086         (function_binding_level): New variable.
4087         (pushdecl_function_level): New function.
4088         (maybe_pushlevels): Set DECL_LOCAL_END_PC.
4089         (maybe_pushlevels): Call pushdecl() on each of the new decls.
4090         (start_java_method): Reset uniq.  Create base_decl_map.  Set
4091         function_binding_level.
4092         (end_java_method): Null unused fields to save memory.
4093
4094 2004-06-29  Andrew Haley  <aph@redhat.com>
4095
4096         * except.c (expand_start_java_handler): Push a new binding level.
4097         Don't build a TRY_CATCH_EXPR now, we'll do it later.  Call
4098         register_exception_range() to register where we'll do it.
4099         (expand_end_java_handler): Remove old bogus code.  Replace with
4100         new logic that simply builds TRY_CATCH_EXPRs and inserts them at
4101         the top of the expression we're curently building.
4102         (maybe_end_try): Delete.
4103         * decl.c (binding_level.exception_range): New field.
4104         (clear_binding_level): Add field exception_range.  Reformat.
4105         (poplevel): Call expand_end_java_handler().
4106         (poplevel): Call java_add_stmt only if functionbody is false.
4107         (maybe_poplevels): Don't call maybe_end_try() from here.
4108         (end_java_method): Clear no longer used trees in function decl.
4109         (register_exception_range): New function.
4110         * java-tree.h (register_exception_range, struct eh_range): Declare.
4111
4112 2004-06-22  Andrew Haley  <aph@redhat.com>
4113
4114         * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
4115         the otable.
4116         * check-init.c (get_variable_decl): Teach check-init about
4117         FIELD_DECLs addressed via the otable.
4118         * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
4119         CLASS_PARSED_P.
4120
4121 2004-05-28  Andrew Haley  <aph@redhat.com>
4122
4123         * jcf-parse.c (load_class): Don't try to read a class that we've
4124         already read.
4125
4126         * expr.c (build_invokeinterface): Use the old-fashioned way of
4127         doing indirect dispatch: look up interfaces by name.
4128         * java-tree.h (enum java_tree_index): Add
4129         JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
4130         * decl.c (java_init_decl_processing): Add
4131         soft_lookupinterfacemethodbyname_node.
4132
4133         * gjavah.c (print_method_info): Final methods have vtable entries,
4134         so gjavah needs to output them.
4135         * class.c (layout_class_method): Generate vtable entries for final
4136         methods.
4137         * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
4138         dispatch, even if a method is final.
4139
4140 2004-05-25  Andrew Haley  <aph@redhat.com>
4141
4142         * class.c (build_symbol_entry): Convert the names of constructors
4143         to init_identifier_node when generating an entry for the indirect
4144         dispatch table.
4145
4146         * expr.c (build_known_method_ref): Generate indirect calls for
4147         all methods marked DECL_EXTERNAL or TREE_PUBLIC.
4148
4149 2004-05-24  Andrew Haley  <aph@redhat.com>
4150
4151         * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
4152         atable element is of the right type.
4153
4154         * class.c (build_static_field_ref): Cast pointer to correct type
4155         for field.
4156
4157 2004-04-20  Bryce McKinlay  <mckinlay@redhat.com>
4158
4159         * Merged with HEAD as of 20040514. Diff against
4160         gcj-abi-2-merge-20040514.
4161
4162 2004-04-16  Andrew Haley  <aph@redhat.com>
4163
4164         * verify.c (check_pending_block): Disable subroutine checks.
4165         (defer_merging): New function.
4166         (merge_types): If types are dummy, use defer_merging to combine them.
4167         (verify_jvm_instructions): If invocation is invokeinterface and
4168         target is dummy, assume target really is an interface.
4169
4170         * parse.y (patch_invoke): Break out call to java_create_object.
4171
4172         * lang.c (flag_verify_invocations): New.
4173
4174         * jcf-parse.c (load_class): If we've already failed to load a
4175         class, don't try again.
4176         (load_class): If we can't find a .class file, don't fail, but emit
4177         a warning.
4178         (parse_class_file): Don't act on dummy methods.
4179
4180         * java-tree.h (flag_verify_invocations): New.
4181         (TYPE_DUMMY): New.
4182         (lang_type.dummy_class): New field.
4183         (java_create_object): New function.
4184         (METHOD_DUMMY): New.
4185
4186         * expr.c (build_field_ref): Widen field offset.
4187         (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
4188         that each of its elements is compatible with the one we're
4189         popping.
4190         (pop_type_0): Issue a warning to say that we need to generate a
4191         runtime check.
4192         (java_create_object): New function.
4193         (build_field_ref): Only generate hard refs if we're not using
4194         indirect dispatch.
4195         (expand_java_field_op): If we're using !verify_invocations and we
4196         see a missing field, generate a decl for it.
4197
4198         (expand_invoke): If a class doesn't have the method we seek and
4199         we're using !flag_verify_invocations, generate a decl for the
4200         method now.
4201
4202         (build_known_method_ref): Always use indirect dispatch via the
4203         atable for static methods.
4204
4205         (expand_java_NEW): Break out object creation into new function,
4206         java_create_object.
4207
4208         (can_widen_reference_to): Issue a warning to say that we need to
4209         generate a runtime check.
4210
4211         * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
4212         (make_method_value): Also use index for interfaces.
4213         (make_class_data): Skip dummy field for inherited data.
4214         Don't build method array for dummy methods.
4215         Set size_in_byte to -1 when using inirect dispatch
4216         Don't build a hard class ref if we don't have a hard ref to our
4217         superclass, or if we're using inirect dispatch.
4218         Null out dispatch tables.
4219
4220         (layout_class_method): Don't complain about non-static method
4221         overrides static method is method is artificial.
4222
4223         (build_static_field_ref): Disable atable references to static
4224         fields for the time being.
4225
4226         (layout_class_methods): Check for CLASS_INTERFACE as
4227         well as CLASS_ABSTRACT.
4228
4229 2004-11-24  Steven Bosscher  <stevenb@suse.de>
4230
4231         * class.c (make_class_data): Don't check flag_inline_functions.
4232         * lang.c (flag_really_inline): Remove unused flag.
4233         (java_handle_option): Don't set it here.  Remove special handling
4234         of flag_inline_functions for Java.
4235         (java_init): Don't set flag_inline_trees here.  Already done...
4236         (java_post_options): ...here.  Don't clear flag_inline_functions.
4237
4238 2004-11-24  Steven Bosscher  <stevenb@suse.de>
4239
4240         * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
4241         (java_gimplify_exit_block_expr): New function.
4242         (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
4243         LABELED_BLOCK_EXPR.
4244         * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
4245         (EXIT_BLOCK_EXPR): Likewise.
4246         * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
4247         (LABELED_BLOCK_BODY): Likewise.
4248         (EXIT_BLOCK_LABELED_BLOCK): Likewise.
4249         * jcf-write.c (generate_bytecode_insns): Don't handle the unused
4250         EXIT_BLOCK_RETURN operand.  Use EXIT_BLOCK_LABELED_BLOCK instead of
4251         TREE_OPERAND.
4252         * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
4253         (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
4254         EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND.  Don't handle the
4255         second operand of EXIT_BLOCK_EXPR.
4256         * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
4257         TREE_OPERAND.
4258         (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
4259
4260 2004-11-23  Ben Elliston  <bje@au.ibm.com>
4261
4262         * xref.h (xref_flag_value): Remove.
4263         (xref_set_data, xref_get_data): Likewise.
4264         (xref_set_current_fp): Likewise.
4265         (XREF_NONE): Likewise.
4266         (XREF_GET_DATA): Likewise.
4267         * xref.c (xref_flag_value): Remove.
4268         (xref_set_data, xref_get_data): Likewise.
4269         (xref_set_current_fp): Likewise.
4270
4271 2004-11-23  Ben Elliston  <bje@au.ibm.com>
4272
4273         * gjavah.c (output_directory): Make static.
4274         (temp_directory): Likewise.
4275
4276 2004-11-15  Tom Tromey  <tromey@redhat.com>
4277
4278         * decl.c (instn_ptr_type_node): Removed.
4279         (lineNumbers_ptr_type_node): Removed.
4280         (jint_type): Removed.
4281         (jint_ptr_type): Removed.
4282
4283 2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
4284
4285         PR java/15576
4286         * check-init.c (check_init): Ignore DECL_EXPR.
4287         * expr.c (always_initialize_class_p): Reenable.
4288         (build_class_init): Use a variable to store the decl.  Also use
4289         boolean_false_node instead of integer_zero_node.
4290         * parse.y (attach_init_test_initialization_flags): Add a decl_expr
4291         to the block.
4292
4293 2004-11-08  Tom Tromey  <tromey@redhat.com>
4294
4295         PR java/16843:
4296         * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
4297         generating a JNI header.
4298         (print_field_info): Handle JNI headers.
4299         (jni_print_float): Likewise.
4300         (jni_print_double): Likewise.
4301
4302 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
4303
4304         * decl.c (end_java_method): Remove duplicated code.
4305
4306 2004-11-06  Zack Weinberg  <zack@codesourcery.com>
4307             Gerald Pfeifer  <gerald@pfeifer.com>
4308
4309         * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
4310         as well.
4311
4312 2004-11-02  Bryce McKinlay  <mckinlay@redhat.com>
4313
4314         PR java/17265
4315         * class.c: Reinstate 2004-08-18 patch.
4316         (make_local_function_alias): Don't create an alias for extern (native)
4317         functions.
4318
4319 2004-10-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4320
4321         PR java/17265
4322         * class.c (make_local_function_alias): Revert 2004-08-18 change.
4323         (make_method_value): Likewise.
4324
4325 2004-10-21  Andrew Haley  <aph@redhat.com>
4326
4327         PR java/18091:
4328         * jcf-parse.c (set_source_filename): Add code to build new sfname.
4329
4330 2004-10-20  Andrew Haley  <aph@redhat.com>
4331
4332         * decl.c (end_java_method): Don't expand if flag_syntax_only.
4333         Remove duplicated code block.
4334
4335 2004-10-18  Steven Bosscher  <stevenb@suse.de>
4336
4337         * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
4338         New rules to work around old Bison warnings.
4339
4340 2004-10-17  Steven Bosscher  <stevenb@suse.de>
4341
4342         * class.c (ident_subst): Always alloca buffer.
4343         * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
4344         opcode after including javaop.def.
4345         * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
4346         conditional expression that exits, to avoid warnings.
4347         * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
4348         a user of an extension.
4349         * win32-host.c: Move check down to have non-empty file when
4350         WIN32 is not defined.
4351
4352         * Make-lang.in (java-warn): Add STRICT_WARN.
4353         (java/jcf-io.o-warn): Don't have Werror for this file.
4354         * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
4355
4356 2004-10-16  Hans-Peter Nilsson  <hp@bitrange.com>
4357
4358         * expr.c (expr_add_location): Move declaration to before all
4359         statements.
4360         * parse.y (java_expand_classes): Ditto.
4361         * lex.c (java_peek_unicode): Ditto.
4362
4363 2004-10-16  Ranjit Mathew  <rmathew@hotmail.com>
4364
4365         * check-init.c: Use %<, %> and %q for quoting in diagnostics,
4366         if possible, else convert `foo' to 'foo'.
4367         * class.c: Likewise.
4368         * decl.c: Likewise.
4369         * expr.c: Likewise.
4370         * jcf-io.c: Likewise.
4371         * jcf-parse.c: Likewise.
4372         * lang.c: Likewise.
4373         * lex.c: Likewise.
4374         * parse.h: Likewise.
4375
4376 2004-10-16  Ranjit Mathew  <rmathew@hotmail.com>
4377
4378         * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
4379         rename parameter 'msg' to 'msgid' in function declaration.
4380         (issue_warning_error_from_context): Likewise.
4381         (yyerror): Rename parameter 'msg' to 'msgid'.
4382         (all over): Use new quoting style for diagnostics.
4383
4384 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
4385
4386         * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
4387         jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
4388         Update copyright.
4389
4390 2004-10-14  Matt Austern  <austern@apple.com>
4391
4392         * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
4393         pointer_set_t* now.
4394
4395 2004-10-13  Tom Tromey  <tromey@redhat.com>
4396
4397         PR java/15578:
4398         * lang.opt (--extdirs): Document.
4399         * jvspec.c (lang_specific_driver): Recognize -encoding and
4400         -extdirs.
4401
4402 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
4403
4404         * parse.y (issue_warning_error_from_context): Use va_list *
4405         instead of va_list parameter.
4406         (parse_error_context): Update call.
4407         (parse_warning_context): Likewise.
4408
4409 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
4410
4411         * parse.y, parse-scan.y: Add list of diagnostic messages to
4412         insulate translation template from version of yacc/bison used
4413         to compile the grammar.
4414
4415 2004-10-05  Ranjit Mathew  <rmathew@hotmail.com>
4416
4417         Prepare for %q, %< and %> in diagnostic message strings.
4418         * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
4419         Name second parameter 'msgid'.
4420         * parse.y: Additionally include pretty-print.h and diagnostic.h.
4421         (issue_warning_error_from_context): Use pretty-printer functions
4422         instead of vsprintf for constructing formatted messages. Rename
4423         parameter 'msg' to 'msgid'.
4424         (parse_error_context): Rename parameter 'msg' to 'msgid'.
4425         (parse_warning_context): Likewise.
4426
4427 2004-10-05  Andrew Haley  <aph@redhat.com>
4428
4429         PR java/17779
4430         * jcf-parse.c (parse_zip_file_entries): If a class has a
4431         superclass and a TYPE_SIZE of zero, lay it out.
4432
4433 2004-09-30  Andrew Haley  <aph@redhat.com>
4434
4435         PR java/17733
4436         * jcf-parse.c (compute_class_name): Rewrite.
4437
4438 2004-10-01  Jan Hubicka  <jh@suse.cz>
4439
4440         * java.c (java_expand_body): Update call of tree_rest_of_compilation.
4441
4442 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
4443
4444         * lex.c: Fix a comment typo.
4445
4446 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
4447
4448         * java-tree.h: Fix a comment typo.
4449
4450 2004-09-30  Per Bothner  <per@bothner.com>
4451
4452         Simplify lexer.  Implement --enable-mapped-location support.
4453         * jcf-parse.c (parse_class_file):  Use linemap_line_start.
4454         (parse_source_file_1): Pass filename as extra parameter, so we can call
4455         linemap_add and set input_location here, rather than in both callers.
4456         (read_class): Pass copied filename to parse_source_file_1.
4457         Don't initialize wfl_operator - only needed for source compilation.
4458         (read_class, jcf_parse):  Call linemap_add with LC_LEAVE.
4459         * lex.h:  Remove a bunch of debugging macros.
4460         * lex.h (struct_java_line, struct java_error):  Remove types.
4461         (JAVA_COLUMN_DELTA):  Remove - use java_lexer.next_colums instead.
4462         (struct java_lc_s):  Remove prev_col field.
4463         (struct java_lexer):  New fields next_unicode, next_columns, and
4464         avail_unicode.  New position field, and maybe token_start field.
4465         Don't need hit_eof field - use next_unicode == -1 instead.
4466         (JAVA_INTEGERAL_RANGE_ERROR):  Rename to JAVA_RANGE_ERROR.
4467         (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR):  Update accordingly.
4468         * parse.h:  Various changes for USE_MAPPED_LOCATION.
4469         (EXPR_WFL_EMIT_LINE_NOTE): XXX
4470         (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
4471         (struct parser_ctxt):  New file_start_location field.
4472         Remove p_line, c_line fields since we no longer save lines.
4473         Remove elc, lineno, and current_jcf fields - no longer used.
4474         * parse.y:  Updates for USE_MAPPED_LOCATION and new lexer.
4475         Don't use EXPR_WFL_ADD_COL since that isn't trivial with
4476         source_location and is probably not needed anymore anyway.
4477         Use new expr_add_Location function.
4478         (SET_EXPR_LOCATION_FROM_TOKEN):  New convenience macro.
4479         (java_pop_parser_context):  Minor cleanup.
4480         (java_parser_context_save_global, java_parser_context_restore_global,
4481         java_pop_parser_context):  Save/restore input_location as a unit.
4482         (issue_warning_error_from_context):  If USE_MAPPED_LOCATION take
4483         a source_location instead of a wfl context node.
4484         (check_class_interface_creation):  input_filename is not addressable.
4485         (create_artificial_method):  Calling java_parser_context_save_global
4486         and java_parser_context_restore_global is overkill.  Instead,
4487         temporarily set input_location from class decl.
4488         (java_layout_seen_class_methods): Set input_location from method decl.
4489         (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
4490         (finish_loop_body):  Likewise.
4491         * lex.c: Updates for USE_MAPPED_LOCATION.  Use build_unknwon_wfl.
4492         (java_sprint_unicode):  Take a character, not index in line.
4493         (java_sneak_uncode):  Replaced by java_peek_unicode.
4494         (java_unget_unicode):  No longer used.
4495         (java_allocate_new_line. java_store_unicode):  Removed, since we
4496         no longer remember "lines".
4497         (java_new_lexer):  Update for new data structures.
4498         (java_read_char):  Move unget_value checking to java_read_unicode.
4499         (java_get_unicode, java_peek_unicode, java_next_unicode): New more
4500         efficient functions that are used directly when lexing.
4501         (java_read_unicode_collapsing_terminators):  No longer needed.
4502         (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
4503         Re-organize to use java_peek_unicode to avoid java_unget_unicode.
4504         (java_parse_escape_sequence):  Rewrite to be simpler / more efficient.
4505         (do_java_lex):  Lots of movings around to avoid java_unget_unicode,
4506         combine switch branches, and test for common token kinds earlier.
4507         (java_lex_error):  Rewrite.
4508         * jv-scan.c (expand_location): New function, copied from tree.c.
4509         (main): Set ctxp->filename instead of setting input_filename directly.
4510
4511 2004-09-30  Per Bothner  <per@bothner.com>
4512
4513         More cleanup for --enable-mapped-location.
4514         * class.c (push_class):  If USE_MAPPED_LOCATION don't set
4515         input_location here.  Instead do it in give_name_to_class.
4516         (build_class_ref):  Set DECL_ARTIFICIAL, for the sake of dwarf2out.
4517         * expr.c (expand_byte_code): Call linemap_line_start.
4518         * expr.c (build_expr_wfl):  If USE_MAPPED_LOCATION, change final
4519         parameters to a source_location.  Don't need EXPR_WFL_FILENAME_NODE.
4520         (expr_add_location):  New function, if USE_MAPPED_LOCATION.
4521         * class.c (maybe_layout_super_class):  Adjust build_expr_wfl call
4522         to USE_MAPPED_LOCATION case.
4523
4524         * java-tree.h (JAVA_FILE_P, ZIP_FILE_P):  Remove unused macros.
4525         * jcf-parse.c (java_parse_file): Don't set input_filename.
4526         Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
4527         Create a list of TRANSLATION_UNIT_DECL.
4528         (current_file_list):  Is now a TRANSLATION_UNIT_DECL chain.  The
4529         reason is so we can set a DECL_SOURCE_LOCATION for each file.
4530         (java_parse_file):  Don't set unused ZIP_FILE_P, JAVA_FILE_P..
4531         Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
4532         (file_start_location):  New static.
4533         (set_source_filename):  Avoid extra access to input_filename macro.
4534         Concatenate new name with class's package prefix.
4535         (set_source_filename, give_name_to_class): Update.
4536         (give_name_to_class):  Set class's "line 0" input_location here.
4537         (parse_class_file):  Set input_location as a unit.
4538
4539         * jcf-parse.c (load_class): Sanity test if missing inner class file.
4540
4541 2004-09-29  Per Bothner  <per@bothner.com>
4542
4543         * java-tree.h:  Redefine some macros and add some declaration
4544         to handle the USE_MAPPED_LOCATION case.
4545         * parse.h (EXPR_WFL_QUALIFICATION):  Use operand 1, not 2.
4546         * java-tree.h (EXPR_WFL_FILENAME_NODE):  Use operand 2, not 1.
4547         * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
4548         USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
4549
4550         * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
4551         * decl.c (finish_method, java_add_stmt): Likewise.
4552         * java-gimplify.c (java-gimplify.c):  Likewise.
4553         * jcf-write.c (generate_bytecode_insns):  Likewise.
4554         * lang.c (java_post_options): Likewise - call linemap_add.
4555
4556 2004-09-29  Andrew Haley  <aph@redhat.com>
4557
4558         PR java/17007
4559         * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
4560         result of TRUNC_MOD_EXPR.
4561         (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
4562         * decl.c (java_init_decl_processing): Mark
4563         soft_lookupinterfacemethod_node and soft_instanceof_node pure.
4564
4565 2004-09-28  Tom Tromey  <tromey@redhat.com>
4566
4567         PR java/15710:
4568         * class.c (add_miranda_methods): Load superinterface if not
4569         already loaded.
4570
4571 2004-09-28  Andrew Haley  <aph@redhat.com>
4572
4573         PR java/17586
4574         * jcf-parse.c (load_class): Don't try to read a class that we've
4575         already read.
4576
4577 2004-09-28  Andrew Haley  <aph@redhat.com>
4578
4579         * jcf-parse.c (load_class): Back out previous broken patch.
4580
4581 2004-09-28  Andrew Haley  <aph@redhat.com>
4582
4583         PR java/17586
4584         * jcf-parse.c (load_class): Don't try to read a class that we've
4585         already read.
4586         Check that we really did read the right class.
4587
4588 2004-09-25  Tom Tromey  <tromey@redhat.com>
4589
4590         PR java/17500:
4591         * parse.y (create_artificial_method): Use add_method_1.
4592
4593 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
4594
4595         * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
4596         comment typos.
4597         * gcj.texi: Fix typos.
4598
4599 2004-09-24  Tom Tromey  <tromey@redhat.com>
4600
4601         PR java/15656:
4602         * parse.y (class_instance_creation_expression): Set `$$' to NULL
4603         in error parts of rule.
4604         (unary_expression): Don't call error_if_numeric_overflow when $1
4605         is NULL.
4606
4607 2004-09-24  Tom Tromey  <tromey@redhat.com>
4608
4609         PR java/16789:
4610         * parse.y (resolve_qualified_expression_name): Set
4611         CAN_COMPLETE_NORMALLY on first call when chaining static calls.
4612         * expr.c (force_evaluation_order): Check for empty argument list
4613         after stripping COMPOUND_EXPR.
4614
4615 2004-09-23  Andrew Haley  <aph@redhat.com>
4616
4617         PR java/16927:
4618         * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
4619         COND_EXPRs.
4620
4621 2004-09-23  Tom Tromey  <tromey@redhat.com>
4622
4623         PR java/17329:
4624         * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
4625         where operand is null.
4626
4627 2004-09-23  Tom Tromey  <tromey@redhat.com>
4628
4629         PR java/17380:
4630         * parse.y (not_accessible_p): Allow access to protected members
4631         even when class is not static.
4632
4633 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
4634
4635         * Make-lang.in: Revert the gcc-none.o change.
4636
4637 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
4638
4639         * parse.y (patch_anonymous_class): VEC_space returns true if there
4640         is space.
4641
4642 2004-09-21  Matt Austern  <austern@apple.com>
4643
4644         Fix bootstrap.
4645         * gjavah.c (free_method_name_list): Fix function definition so
4646         it's a proper C prototype.
4647
4648 2004-09-21  Tom Tromey  <tromey@redhat.com>
4649
4650         PR java/17575:
4651         * gjavah.c (free_method_name_list): New method.
4652         (main): Call it.
4653
4654 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
4655             Zack Weinberg  <zack@codesourcery.com>
4656
4657         * java-tree.def: Use tree_code_class enumeration constants
4658         instead of code letters.
4659         * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
4660         new tree-class enumeration constants.
4661
4662 2004-09-13  Tom Tromey  <tromey@redhat.com>
4663
4664         PR java/17216:
4665         * class.c (layout_class_method): Put synthetic methods into the
4666         vtable.
4667
4668 2004-09-11  Andrew Pinski  <apinski@apple.com>
4669
4670         * Make-lang.in (java/ggc-none.c): Change dependency
4671         for ggc.h into $(GGC_H).
4672
4673 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
4674
4675         * Make-lang.in (java/win32-host.o): Add dependency on
4676         coretypes.h.
4677         * win32-host.c: Add includes for coretypes.h, jcf.h
4678
4679 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
4680
4681         * Make-lang.in (GCJH_OBJS): Change dependency from
4682         ggc-none.o to java/ggc-none.o
4683         (JCFDUMP_OBJS): Likewise.
4684         (java/ggc-none.o): New target.
4685
4686 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
4687
4688         * boehm.c (get_boehm_type_descriptor):  Adjust build_int_cst calls.
4689         * class.c (build_utf8_ref, build_static_field_ref,
4690         make_field_value, make_method_value, get_dispatch_table,
4691         make_class_data, emit_symbol_table, emit_catch_table): Likewise.
4692         * constants.c (get_tag_node, build_ref_from_constant_pool,
4693         build_constants_constructor): Likewise.
4694         * decl.c (java_init_decl_processing): Likewise.
4695         * expr.c (build_java_array_length_access, build_newarray,
4696         expand_java_multianewarray, expand_java_pushc, expand_iinc,
4697         build_java_binop, build_field_ref, expand_java_add_case,
4698         expand_java_call, build_known_method_ref, build_invokevirtual,
4699         build_invokeinterface, build_jni_stub): Likewise.
4700         * java-gimplify.c (java_gimplify_new_array_init): Likewise.
4701         * jcf-parse.c (get_constant): Likewise.
4702         * lex.c (do_java_lex): Likewise.
4703         * parse.y (patch_binop, patch_unaryop, patch_cast,
4704         build_newarray_node, patch_newarray): Likewise.
4705         * resource.c (compile_resource_data): Likewise.
4706         * typeck.c (build_prim_array_type): Likewise.
4707
4708 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
4709
4710         * decl.c (java_init_decl_processing): Adjust
4711         initialize_sizetypes call.
4712
4713 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
4714
4715         * jv-scan.c (fancy_abort): Add.
4716
4717 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
4718
4719         * expr.c (build_java_arrayaccess): Use convert to change
4720         len's type.
4721
4722 2004-08-19  Bryce McKinlay  <mckinlay@redhat.com>
4723
4724         * class.c (make_local_function_alias): Allocate extra space for 'L'
4725         in name buffer. Reported by Thomas Neumann.
4726
4727 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
4728
4729         * parse.h (JAVA_RADIX10_FLAG): Rename to ...
4730         (JAVA_NOT_RADIX10_FLAG): ... here.  Invert meaning.
4731         * lex.c (do_java_lex): Adjust.
4732         (error_if_numeric_overflow): Likewise.
4733
4734 2004-08-18  Andrew Pinski  <apinski@apple.com>
4735
4736         * class.c (make_local_function_alias): Only make a new decl if we
4737         support alias attribute on all decls.
4738
4739 2004-08-18  Bryce McKinlay  <mckinlay@redhat.com>
4740
4741         * class.c (make_local_function_alias): New function. Create local
4742         alias for public method DECL.
4743         (make_method_value): Use make_local_function_alias.
4744         * parse.y (craft_constructor): Don't special-case anonymous classes.
4745         Always set ctor_name to init_identifier_node.
4746         (lookup_method_invoke): Call layout_class_method when creating
4747         anonymous class constructor.
4748
4749 2004-08-18  Richard Henderson  <rth@redhat.com>
4750
4751         * java-gimplify.c (java_gimplify_expr): Move '2' handling into
4752         default case.  Treat '<' similarly.  Update for
4753         is_gimple_formal_tmp_var name change.
4754
4755 2004-08-17  Andrew Haley  <aph@redhat.com>
4756
4757         * lang.c (lang_printable_name): Obey verbose flag.
4758         * parse.y (constructor_circularity_msg): Set VERBOSE arg for
4759         lang_printable_name().
4760         (verify_constructor_circularity, get_printable_method_name,
4761         check_abstract_method_definitions, java_check_regular_methods,
4762         java_check_abstract_methods, check_inner_class_access,
4763         fix_constructors, patch_method_invocation, patch_return):
4764         Likewise.
4765         * expr.c (pop_type_0): Likewise.
4766
4767         * java-tree.h (lang_printable_name_wls): Delete.
4768
4769 2004-08-16  Tom Tromey  <tromey@redhat.com>
4770
4771         PR java/8473:
4772         * parse.y (primary): Changed for initialized and uninitialized
4773         array creations.
4774         (array_access): Handle array_creation_initialized.
4775         (array_creation_expression): Split into
4776         array_creation_initialized and array_creation_uninitialized.
4777
4778 2004-08-16  Andrew Haley  <aph@redhat.com>
4779
4780         * jcf-write.c (find_constant_index): Canonicalize NaNs when
4781         generating bytecode.
4782
4783 2004-08-16  Elliot Lee <sopwith@redhat.com>
4784
4785         PR java/9677
4786         * jcf-parse.c (java_parse_file): Handle filenames with embedded
4787         spaces, and quoted filelists.
4788
4789 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
4790
4791         * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
4792         * class.c (build_utf8_ref, build_static_field_ref,
4793         make_field_value, make_method_value, get_dispatch_table,
4794         make_class_data, emit_symbol_table, emit_catch_table): Likewise.
4795         * constants.c (get_tag_node,  build_ref_from_constant_pool,
4796         build_constants_constructor): Likewise.
4797         * decl.c (java_init_decl_processing): Likewise.
4798         * expr.c (build_java_array_length_access, build_newarray,
4799         expand_java_multianewarray, expand_java_pushc, expand_iinc,
4800         build_java_binop, build_field_ref, expand_java_add_case,
4801         expand_java_call, build_known_method_ref, build_invokevirtual,
4802         build_invokeinterface, build_jni_stub): Likewise.
4803         * java-gimplify.c (java_gimplify_new_array_init): Likewise.
4804         * jcf-parse.c (get_constant): Likewise.
4805         * lex.c (do_java_lex): Likewise.
4806         * parse.y (patch_binop, patch_unaryop, patch_cast,
4807         build_null_of_type, patch_newarray): Likewise.
4808         * resource.c (compile_resource_data): Likewise.
4809         * typeck.c (build_prim_array_type): Likewise.
4810
4811 2004-08-10  Bryce McKinlay  <mckinlay@redhat.com>
4812
4813         * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
4814         Don't create BLOCK here or call java_gimplify_block.
4815
4816 2004-08-09  H.J. Lu  <hongjiu.lu@intel.com>
4817
4818         * java-tree.h (flag_deprecated): Removed.
4819         * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
4820         * parse.y (check_deprecation): Check warn_deprecated instead of
4821         flag_deprecated.
4822
4823 2004-08-06  Kelley Cook  <kcook@gcc.gnu.org>
4824
4825         * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
4826         flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
4827         flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
4828         flag_check_references, flag_extraneous_semicolon, flag_deprecated,
4829         flag_force_classes_archive_check, flag_optimize_sci,
4830         flag_indirect_dispatch): Remove explicit declarations.
4831         * lang.opt: Add implicit declare/define/assign.  Remove obsolete
4832         final comment.
4833
4834 2004-08-05  Michael Chastain  <mec.gnu@mindspring.com>
4835
4836         PR bootstrap/14893
4837         * Make-lang.in (java.install-man): Install from either build
4838         tree or source tree, whichever has the file first.
4839
4840 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
4841
4842         * jcf-parse.c (get_constant): Adjust force_fit_type call.
4843         * lex.h (SET_LVAL_NODE_TYPE): Remove.
4844         * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
4845         (do_java_lex): Likewise. Adjust force_fit_type call.
4846
4847 2004-08-04  Roger Sayle  <roger@eyesopen.com>
4848             Andrew Haley  <aph@redhat.com>
4849
4850         * typeck.c (convert_ieee_real_to_integer): Call fold on the range
4851         checking trees as they're being built.
4852         (convert): Call convert_ieee_real_to_integer if we're
4853         converting a constant, even if we're writing a class file.
4854
4855 2004-08-02  Bryce McKinlay  <mckinlay@redhat.com>
4856
4857         PR java/16701
4858         * parse.y (fold_constant_for_init): Call resolve_field_access with
4859         correct current_class context.
4860
4861 2004-08-01  Roger Sayle  <roger@eyesopen.com>
4862
4863         * decl.c (update_aliases, initialize_local_variable): Replace calls
4864         to build with calls to buildN.
4865         * java-gimplify.c (java_gimplify_modify_expr): Likewise.
4866         * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
4867         * parse.h (BUILD_THROW): Likewise.
4868         * parse.y (switch_expression, synchronized_statement,
4869         catch_clause_parameter, array_creation_expression,
4870         conditional_expression, make_qualified_name,
4871         resolve_qualified_expression_name, patch_method_invocation,
4872         patch_invoke, build_method_invocation, build_new_invocation,
4873         build_assignment, patch_assignment, build_binop, patch_binop,
4874         build_string_concatenation, build_incdec, patch_unaryop,
4875         patch_cast, build_array_ref, build_newarray_node, patch_newarray,
4876         patch_return, build_if_else_statement, build_labeled_block,
4877         build_new_loop, build_loop_body, build_bc_statement,
4878         build_assertion, encapsulate_with_try_catch, build_try_statement,
4879         build_try_finally_statement, patch_synchronized_statement,
4880         emit_test_initialization): Likewise, replace build with buildN.
4881
4882 2004-07-28  Eric Christopher  <echristo@redhat.com>
4883
4884         * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
4885         (java_unsafe_for_reeval): Ditto.
4886
4887 2004-07-26    <hp@bitrange.com>
4888
4889         * parse.y (build_super_invocation): Adjust declaration order to
4890         avoid declaration after statement.
4891
4892 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
4893
4894         * decl.c: Rename all identifiers named `class' to `cl'.
4895
4896 2004-07-25  Richard Henderson  <rth@redhat.com>
4897
4898         * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
4899
4900 2004-07-23  Mike Stump  <mrs@apple.com>
4901
4902         * boehm.c (set_bit): Improve type safety wrt unsignedness.
4903         * gjavah.c (throwable_p, decode_signature_piece,
4904         print_full_cxx_name, print_include, add_namelet, add_class_decl,
4905         process_file): Likewise.
4906         * jcf-dump.c (main): Likewise.
4907         * jcf-io.c (read_zip_member): Likewise.
4908         * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
4909         give_name_to_class, get_class_constant): Likewise.
4910         * jcf-write.c (find_constant_wide, push_long_const,
4911         generate_classfile): Likewise.
4912         * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
4913         * parse.y (read_import_dir): Likewise.
4914         * typeck.c (parse_signature_type): Likewise.
4915         * verify.c (verify_jvm_instructions): Likewise.
4916         * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
4917
4918 2004-07-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
4919
4920         * Make-lang.in: Replace rmic and rmiregistry references with
4921         grmic and grmiregistry.
4922         * gcj.texi: Likewise.
4923
4924 2004-07-20  Andrew Haley  <aph@redhat.com>
4925
4926         PR java/16431.
4927         * verify.c (verify_jvm_instructions): Comment change only.
4928
4929         * typeck.c (build_java_array_type): Add size field to array name.
4930
4931         * java-tree.h (LOCAL_SLOT_P): New.
4932         (update_aliases): Add PC argument.
4933         (pushdecl_function_level): New function.
4934
4935         * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
4936         MODIFY_EXPR, and SAVE_EXPR.
4937         (java_gimplify_modify_expr): New function.
4938
4939         * expr.c (push_type_0): Call find_stack_slot() to create temporary.
4940         (expand_iinc): Pass PC to update_aliases().
4941         (STORE_INTERNAL): Likewise.
4942         (process_jvm_instruction): Likewise.
4943
4944         * decl.c (base_decl_map): New variable.
4945         (uniq): New variable.
4946         (update_aliases): Rewrite with more thorough checking.
4947         (debug_variable_p): New function.
4948         (push_jvm_slot): Don't initialize local variable.  Don't pushdecl.
4949         (check_local_named_variable): Delete whole function.
4950         (initialize_local_variable): New function.
4951         (check_local_unnamed_variable): Add checks and comments.
4952         (find_local_variable): Rewrite.
4953         (java_replace_reference): New function.
4954         (function_binding_level): New variable.
4955         (pushdecl_function_level): New function.
4956         (maybe_pushlevels): Set DECL_LOCAL_END_PC.
4957         (maybe_pushlevels): Call pushdecl() on each of the new decls.
4958         (start_java_method): Reset uniq.  Create base_decl_map.  Set
4959         function_binding_level.
4960         (end_java_method): Null unused fields to save memory.
4961
4962 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
4963
4964         * class.c (add_interface_do): Remove.
4965         (set_super_info, interface_of_p, maybe_add_interface,
4966         add_interface, make_class_data, layout_class,
4967         add_miranda_methods): Adjust BINFO accessors and addition.
4968         * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
4969         accessors.
4970         * jcf-write.c (generate_classfile): Likewise.
4971         * parse.y (patch_anonymous_class, check_inner_circular_reference,
4972         check_circular_reference, java_complete_class,
4973         check_abstract_method_definitions,
4974         java_check_abstract_method_definitions,
4975         check_interface_throws_clauses, java_check_abstract_methods,
4976         lookup_java_interface_method2,
4977         find_applicable_accessible_methods_list): Adjust BINFO accessors
4978         and addition.
4979         * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
4980
4981 2004-07-18  Roger Sayle  <roger@eyesopen.com>
4982
4983         * builtins.c (max_builtin, min_builtin,
4984         java_build_function_call_expr): Replace calls to build with buildN.
4985         * class.c (build_class_ref, build_static_field_ref,
4986         get_dispatch_table, make_class_data, layout_class_method): Likewise.
4987         * constants.c (build_ref_from_constant_pool): Likewise.
4988         * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
4989         add_stmt_to_compound): Likewise.
4990         * except.c (build_exception_object_ref, expand_end_java_handler):
4991         Likewise.
4992         * java-gimplify.c (java_gimplify_case_expr,
4993         java_gimplify_default_expr, java_gimplify_block,
4994         java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
4995         * jcf-write.c (generate_bytecode_insns): Likewise.
4996         * typeck.c (convert_ieee_real_to_integer): Likewise.
4997
4998 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
4999
5000         * java-tree.h (builtin_function): Declare.
5001
5002 2004-07-16  Steven Bosscher  <stevenb@suse.de>
5003
5004         * parse.y (java_complete_expand_methods, java_expand_classes): Don't
5005         abuse restore_line_number_status.
5006
5007 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
5008
5009         g++/15861
5010         * jcf-parse.c (java_emit_static_constructor): Specify default
5011         priority.
5012
5013 2004-07-13  Per Bothner  <per@bothner.com>
5014
5015         * java-tree.h (all_class_filename):  Remove useless macro.
5016         (enum java_tree_index):  Remove JTI_ALL_CLASS_FILENAME constant.
5017         (BUILD_FILENAME_IDENTIFIER_NODE):  Remove useless macro.
5018         * parse.y (java_parser_context_restore_global):  Replace
5019         BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
5020         * jcf-parse.c (read_class, java_parse_file):  Likewise.
5021
5022 2004-07-12  Bryce McKinlay  <mckinlay@redhat.com>
5023
5024         PR java/16474
5025         gjavah.c (print_field_info): Emit constant only if field is static.
5026
5027 2004-07-11  Roger Sayle  <roger@eyesopen.com>
5028
5029         * expr.c (java_truthvalue_conversion, flush_quick_stack,
5030         java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
5031         build_java_ret, build_java_throw_out_of_bounds_exception,
5032         build_java_array_length_access, java_check_reference,
5033         build_java_arrayaccess, build_java_arraystore_check, build_newarray,
5034         build_anewarray, expand_java_multianewarray, expand_java_arraystore,
5035         expand_java_arrayload, build_java_monitor, expand_java_return,
5036         expand_load_internal, expand_java_NEW, build_get_class,
5037         build_instanceof, expand_java_CHECKCAST, expand_iinc,
5038         build_java_soft_divmod, build_java_binop, build_field_ref,
5039         expand_compare, expand_java_goto, expand_java_switch,
5040         expand_java_add_case, build_class_init, build_known_method_ref,
5041         invoke_build_dtable, build_invokevirtual, build_invokeinterface,
5042         expand_invoke, build_jni_stub, expand_java_field_op,
5043         java_expand_expr, expand_byte_code, STORE_INTERNAL,
5044         force_evaluation_order, emit_init_test_initialization): Convert
5045         calls to "build" into calls to the prefered "buildN" functions.
5046
5047 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
5048
5049         * java-tree.h (set_block): Remove.
5050         * lang.c (java_clear_binding_stack): New.
5051         (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
5052         * decl.c (struct binding_level): Remove this_block.
5053         (clear_binding_level): Likewise.
5054         (poplevel): Don't handle this_block.
5055         (set_block): Remove.
5056
5057 2004-07-10  Bryce McKinlay  <mckinlay@redhat.com>
5058
5059         * class.c (common_enclosing_context_p): Remove statement with no
5060         side-effects.
5061
5062 2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>
5063
5064         PR java/8618
5065         * parse.y (create_anonymous_class): Remove 'location' argument. Use
5066         the WFL from TYPE_NAME to get line number for the decl. Fix comment.
5067         (craft_constructor): Inherit access flags for implicit constructor
5068         from the enclosing class.
5069         (create_class): Fix comment typo.
5070         (resolve_qualified_expression_name): Pass type of qualifier to
5071         not_accessible_p, not the type in which target field was found.
5072         (not_accessible_p): Handle inner classes. Expand protected
5073         qualifier-subtype check to enclosing instances, but don't apply this
5074         check to static members. Allow protected access to inner classes
5075         of a subtype. Allow private access within common enclosing context.
5076         (build_super_invocation): Get WFL line number info from current
5077         class decl.
5078         (build_incomplete_class_ref): Update for new create_anonymous_class
5079         signature.
5080         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
5081         common_enclosing_instance_p.
5082         * class.c (common_enclosing_context_p): New. Determine if types
5083         share a common enclosing context, even across static contexts.
5084         (common_enclosing_instance_p): Renamed from
5085         common_enclosing_context_p. Determines if types share a common
5086         non-static enclosing instance.
5087         * java-tree.h (common_enclosing_instance_p): Declare.
5088         * jcf-write.c (get_method_access_flags): New. Surpress private flag
5089         for inner class constructors.
5090         (generate_classfile): Use get_method_access_flags.
5091
5092 2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>
5093
5094         * class.c (interface_of_p): Check for null TYPE_BINFO.
5095
5096 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
5097
5098         * class.c (make_class): Do not create binfo here.
5099         (set_super_info): Create it here.
5100         * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
5101
5102 2004-07-08  Richard Henderson  <rth@redhat.com>
5103
5104         * expr.c (case_identity, get_primitive_array_vtable,
5105         java_expand_expr, emit_init_test_initialization): Remove.
5106         * java-tree.h (java_expand_expr): Remove.
5107         * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
5108
5109 2004-07-07  Per Bothner  <per@bothner.com>
5110
5111         * class.c (build_static_field_ref):  Add a NOP_EXPR; otherwise we
5112         get internal error due to mismatched types.
5113
5114         * gcj.texi (Invoking gij):  Document new -verbose:class flag.
5115
5116         * gcj.texi (Linking):   New node.  Document -lgij usage.
5117
5118 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
5119
5120         * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
5121         (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
5122         * java/class.c (set_super_info, class_depth, interface_of_p,
5123         maybe_add_interface, add_interface, make_class_data,
5124         layout_class, add_miranda_methods): Adjust BINFO macros.
5125         * expr.c (can_widen_reference_to, lookup_field): Likewise.
5126         * jcf-write.c (generate_classfile): Likewise.
5127         * parse.y (patch_anonymous_class,
5128         check_inner_circular_reference, check_circular_reference,
5129         java_complete_class, check_abstract_method_definitions,
5130         java_check_abstract_method_definitions,
5131         check_interface_throws_clauses, java_check_abstract_methods,
5132         lookup_java_interface_method2,
5133         find_applicable_accessible_methods_list): Likewise.
5134         * typeck.c (find_method_in_interface): Likewise.
5135         * verify.c (merge_types): Likewise.
5136
5137 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
5138
5139         * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
5140         * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
5141
5142 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
5143
5144         * class.c (make_class): Use make_tree_binfo.
5145         (set_super_info, add_interface_do): Likewise.
5146         * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
5147
5148 2004-07-04  Ranjit Mathew  <rmathew@hotmail.com>
5149
5150         * verify.c: Correct array element access formatting thinko.
5151
5152 2004-07-04  Ranjit Mathew  <rmathew@hotmail.com>
5153
5154         * verify.c: Insert a short blurb at the start referring to the JVMS.
5155         (merge_type_state): Remove redundant nested if statement.
5156         (verify_jvm_instructions): Ensure current_subr is initialised to
5157         NULL_TREE.
5158         Minor formatting fixes all over the place.
5159
5160 2004-07-02  Richard Henderson  <rth@redhat.com>
5161
5162         * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
5163
5164 2004-07-01  Richard Henderson  <rth@redhat.com>
5165
5166         * class.c (registerClass_libfunc): Remove.
5167         (init_class_processing): Don't set it.
5168         (emit_register_classes): Take list_p parameter.  Fill it in
5169         with _Jv_RegisterClass calls.
5170         * decl.c (java_init_decl_processing): Don't call
5171         init_resource_processing.
5172         * jcf-parse.c (java_emit_static_constructor): New.
5173         (java_parse_file): Call it.
5174         * resource.c (registerResource_libfunc): Remove.
5175         (init_resource_processing): Remove.
5176         (write_resource_constructor): Take list_p parameter.  Fill it in
5177         with _Jv_RegisterResource calls.
5178         * java-tree.h: Update prototypes.
5179
5180 2004-06-29  Bryce McKinlay  <mckinlay@redhat.com>
5181
5182         PR java/1262
5183         * class.c (layout_class_method): Do not override package-private
5184         method if its in a different package.
5185         (split_qualified_name): Move here from parse.y. Rename from
5186         breakdown_qualified. Add comment.
5187         (in_same_package): Move here from parse.y. Add comment.
5188         * java-tree.h (break_down_qualified, in_same_package): Declare.
5189         (in_same_package): Likewise.
5190         * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
5191         Callers updated.
5192
5193 2004-06-29  Andrew Haley  <aph@redhat.com>
5194
5195         * except.c (expand_start_java_handler): Push a new binding level.
5196         Don't build a TRY_CATCH_EXPR now, we'll do it later.  Call
5197         register_exception_range() to register where we'll do it.
5198         (expand_end_java_handler): Remove old bogus code.  Replace with
5199         new logic that simply builds TRY_CATCH_EXPRs and inserts them at
5200         the top of the expression we're curently building.
5201         (maybe_end_try): Delete.
5202         * decl.c (binding_level.exception_range): New field.
5203         (clear_binding_level): Add field exception_range.  Reformat.
5204         (poplevel): Call expand_end_java_handler().
5205         (poplevel): Call java_add_stmt only if functionbody is false.
5206         (maybe_poplevels): Don't call maybe_end_try() from here.
5207         (end_java_method): Clear no longer used trees in function decl.
5208         (register_exception_range): New function.
5209         * java-tree.h (register_exception_range, struct eh_range): Declare.
5210
5211 2004-06-28  Bryce McKinlay  <mckinlay@redhat.com>
5212
5213         * jcf-write.c (get_classfile_modifiers): Formatting fixes.
5214
5215 2004-06-27  Ranjit Mathew  <rmathew@hotmail.com>
5216
5217         Formatting fixes.
5218         * expr.c (class_has_finalize_method): Fix method name indentation.
5219         (expand_java_call): Remove K&R style parameter declaration.
5220         (expand_invoke): Fix statement indentation.
5221         (expand_java_field_op): Likewise.
5222         * parse-scan.y: Fix typo.
5223         (reset_report): Fix method name indentation.
5224         * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
5225         line. Fix typos.
5226         * verify.c (verify_jvm_instructions): Document parameters, insert
5227         page break.
5228         * lang.c (lang_init_source): Fix method name indentation.
5229         * class.c (common_enclosing_context_p): Likewise.
5230         (emit_symbol_table): Fix parameter list indentation.
5231         * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
5232         parameter declaration.
5233         * constants.c: Fix copyright notice indentation.
5234         * typeck.c (find_method_in_superclasses): Fix parameter list
5235         indentation.
5236         (find_method_in_interfaces): Likewise.
5237         * zextract.c (makelong): Fix method name indentation.
5238
5239 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
5240
5241         PR java/15715.
5242         * parse.y (create_interface): Set correct access modifiers for
5243         interfaces.
5244         * jcf-write.c (get_classfile_modifiers): New function.
5245         (generate_classfile): Use get_classfile_modifiers, not
5246         get_access_flags.
5247
5248 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
5249
5250         * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
5251         dependency to current parser context, not NULL_TREE, for top-level
5252         classes.
5253         (jdep_resolve_class): Enable member access check for all inner
5254         class dependencies.
5255
5256 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
5257
5258         * parse.y (qualify_and_find): Pass type decl, not identifier, to
5259         load_class.
5260
5261 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
5262
5263         PR java/15734
5264         * expr.c (expand_java_field_op): Ensure that target class for static
5265         field access has been loaded.
5266
5267 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
5268             Ranjit Mathew  <rmathew@hotmail.com>
5269
5270         PR java/1207, java/16178
5271         * jcf-parse.c (load_class): Return immediately if passed a type decl
5272         where CLASS_FROM_SOURCE_P is set. Remove FIXME.
5273         * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
5274         before calling load_class.
5275         (qualify_and_find): Likewise.
5276         (find_in_imports_on_demand): Likewise.
5277         (find_applicable_accessible_methods_list): Likewise.
5278
5279 2004-06-24  Bryce McKinlay  <mckinlay@redhat.com>
5280
5281         * parse.y (java_layout_seen_class_methods): Don't call load_class
5282         on class defined by source parser.
5283
5284 2004-06-23  Bryce McKinlay  <mckinlay@redhat.com>
5285
5286         * parse.y (set_nested_class_simple_name_value): Removed.
5287         (java_complete_expand_class): Remove calls to
5288         set_nested_class_simple_name_value.
5289
5290 2004-06-22  Andrew Haley  <aph@redhat.com>
5291             Ranjit Mathew  <rmathew@hotmail.com>
5292
5293         Fixes PR java/16113.
5294         * decl.c (force_poplevels): Remove call to expand_end_bindings.
5295
5296 2004-06-22  Ranjit Mathew  <rmathew@hotmail.com>
5297
5298         * parse.y (create_class): Correct diagnostic message about
5299         java.lang.Object extending anything else.
5300
5301 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5302
5303         * class.c (build_class_ref): Add new operand for COMPONENT_REF.
5304         (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
5305         * constants.c (build_ref_from_constant_pool): Likewise.
5306         * expr.c (build_java_array_length_access): Likewise.
5307         (build_get_class, build_field_ref, build_known_method_ref): Likewise.
5308         (invoke_build_dtable, build_invokevirtual): Likewise.
5309         (build_invokeinterface, java_expand_expr): Likewise.
5310         (emit_init_test_initialization): Likewise.
5311         * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5312         * parse.y (make_qualifed_name, build_array_ref): Likewise.
5313
5314 2004-06-21  Andrew Haley  <aph@redhat.com>
5315
5316         * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
5317         block.
5318
5319 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
5320
5321         * jcf.h (struct JCF): Change java_source, right_zip and finished
5322         to unsigned int.
5323         * lex.h (struct java_lexer): Change hit_eof, read_anything,
5324         byte_swap and use_fallback to unsigned int.
5325         * parse.h (struct _jdep): Change flag0 to unsigned int.
5326
5327 2004-06-17  Ranjit Mathew  <rmathew@hotmail.com>
5328
5329         Fixes PR java/13948
5330         * parse.y (java_layout_seen_class_methods): Ensure class is loaded
5331         before trying to lay out its methods.
5332         * jcf-parse.c (read_class): Track parsed files using canonical paths
5333         obtained via lrealpath from libiberty.
5334         (java_parse_file): Likewise.
5335         (parse_source_file_1): Rename formal parameter to reflect its
5336         modified purpose. Minor formatting fix.
5337
5338 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
5339
5340         * class.c (emit_register_classes): Make the function uninlinable,
5341         do not set current_function_cannot_inline.
5342         * resource.c (write_resource_constructor): Do not reset
5343         flag_inline_functions around rest_of_compilation.
5344
5345 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
5346
5347         PR java/15769
5348         * expr.c (java_truthvalue_conversion): Handle
5349         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
5350         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
5351         i.e. return the expression.
5352
5353 2004-06-03 Mark G. Adams  <mark.g.adams@sympatico.ca>
5354
5355         * gjavah.c: Include version.h
5356
5357 2004-05-31  Bryce McKinlay  <mckinlay@redhat.com>
5358
5359         * jcf-write.c (generate_bytecode_conditional): Correct handling
5360         of unordered conditionals. Add comment.
5361
5362 2004-05-29  Ranjit Mathew  <rmathew@hotmail.com>
5363             Per Bothner  <per@bothner.com>
5364
5365         * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
5366         local variable was initialised upon declaration.
5367         * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
5368         variable was final and initialised upon declaration.
5369         * check-init.c (check_final_reassigned): Give error only if a blank
5370         final is not definitely unassigned or if an initialised final is
5371         reassigned.
5372         (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
5373         assignment expressions. Remove case MODIFY_EXPR, label do_default.
5374         (check_init): Perform initialised-variable-removing-optimisation
5375         only on non-final local variables.
5376
5377 2004-05-28  Bryce McKinlay  <mckinlay@redhat.com>
5378
5379         * jcf-write.c (generate_bytecode_conditional): Handle binops
5380         UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
5381         and LTGT_EXPR.
5382         (generate_bytecode_insns): Likewise.
5383
5384 2004-05-28  Bryce McKinlay  <mckinlay@redhat.com>
5385
5386         * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
5387         UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
5388
5389 2004-05-28  Bryce McKinlay  <mckinlay@redhat.com>
5390
5391         * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
5392         (Mixing with C++): Document JvAllocBytes and RawDataManaged.
5393
5394 2004-05-26  Bryce McKinlay  <mckinlay@redhat.com>
5395
5396         * decl.c (struct binding_level): Add GTY marker. Compile
5397         binding_depth unconditionally.
5398         (current_binding_level, free_binding_level, global_binding_level):
5399         Likewise.
5400         (clear_binding_level): Unconditionally set binding_depth.
5401         (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
5402
5403 2004-05-26  Bryce McKinlay  <mckinlay@redhat.com>
5404
5405         * lex.c (java_new_lexer): Set 'encoding'.
5406         (java_read_char): Improve error message for unrecognized characters.
5407         * lex.h (struct java_lexer): New field 'encoding'.
5408
5409 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
5410
5411         * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
5412
5413 2004-05-21  Mark Wielaard  <mark@klomp.org>
5414
5415         * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
5416         extern.
5417
5418 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
5419
5420         * typeck.c: Remove non-printable character 160.
5421
5422 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
5423
5424         * check-init.c: Correct minor typos.
5425
5426 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5427
5428         * Make-lang.in, expr.c, java-gimplify.c: Rename
5429         tree-simple.[ch] to tree-gimple.[ch].
5430
5431 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
5432
5433         * java-gimplify.c (java_gimplify_expr): Correct minor typos.
5434
5435 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5436
5437         Merge from tree-ssa-20020619-branch.  See
5438         ChangeLog.tree-ssa for details.
5439
5440         * Make-lang.in, builtins.c, check-init.c, class.c,
5441         constants.c, decl.c, except.c, expr.c, java-except.h,
5442         java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
5443         lang.c, lang.opt, parse.y, resource.c: Merged.
5444         * java-gimplify.c: New file.
5445
5446 2004-05-10  Andrew Haley  <aph@redhat.com>
5447
5448         * parse.y (create_class): Set TYPE_VFIELD.
5449         * decl.c (java_init_decl_processing): Likewise.
5450
5451         * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
5452         * class.c (make_method_value): Replace DECL_VINDEX with call to
5453         get_method_index().
5454         (get_dispatch_vector): Likewise.
5455         (layout_class_method): Likewise.
5456         Replace set of DECL_VINDEX with call to set_method_index().
5457         (set_method_index): New function.
5458         (get_method_index): New function.
5459         * java-tree.h (set_method_index): New function decl.
5460         (get_method_index): New function decl.
5461
5462 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
5463
5464         * parse.y (check_pkg_class_access): Add new argument
5465         and use it when cl is NULL to call lookup_cl on it.
5466         (parser_check_super_interface): Do not call lookup_cl.
5467         Pass this_decl to check_pkg_class_access and NULL
5468         instead of lookup_cl.
5469         (parser_check_super): Update for change in
5470         check_pkg_class_access.
5471         (do_resolve_class): Likewise.
5472         (process_imports): Likewise.
5473         (find_in_imports_on_demand): Likewise.
5474         (resolve_qualified_expression_name): Likewise.
5475
5476 2004-05-06  Ranjit Mathew  <rmathew@hotmail.com>
5477
5478         Fixes PR java/9685, PR java/15073
5479         * parse.y (accessibility_string): New method.
5480         (not_accessible_field_error): Use accessibility_string()
5481         instead of java_accstring_lookup().
5482         (resolve_qualified_expression_name): Check with
5483         check_pkg_class_access() before allowing access using
5484         qualified names.
5485         Fix comment typo.
5486         Use check_pkg_class_access() instead of not_accessible_p()
5487         for unqualified types.
5488         (not_accessible_p): Use DECL_CONTEXT (member) instead of
5489         REFERENCE for package-private access checking.
5490         (patch_method_invocation): Use accessibility_string() instead
5491         of java_accstring_lookup().
5492
5493 2004-04-30  Ranjit Mathew  <rmathew@hotmail.com>
5494
5495         Fixes PR java/15133
5496         * gjavah.c (struct method_name): Add member is_native.
5497         (overloaded_jni_method_exists_p): Match candidate method only if
5498         it is native.
5499         (print_method_info): Initialise is_native flag from the method's
5500         access flags.
5501
5502 2004-04-30  Roger Sayle  <roger@eyesopen.com>
5503
5504         * builtins.c (java_builtins): Add acos, asin, ceil and floor.
5505         (initialize_builtins): Likewise, define acos, asin, ceil and floor.
5506
5507 2004-04-22  Roger Sayle  <roger@eyesopen.com>
5508
5509         * resource.c (write_resource_constructor): Guard call to possibly
5510         NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
5511
5512 2004-04-19  Bryce McKinlay  <mckinlay@redhat.com>
5513
5514         * class.c (make_class_data): Add new field aux_info.
5515         * decl.c (java_init_decl_processing): Push type and decl for
5516         `aux_info'.
5517
5518 2004-04-15  Bryce McKinlay  <mckinlay@redhat.com>
5519
5520         * expr.c (expand_java_NEW): Don't use size argument for
5521         _Jv_AllocObject calls.
5522         * parse.y (patch_invoke): Likewise.
5523
5524 2004-04-12  Bryce McKinlay  <mckinlay@redhat.com>
5525
5526         * expr.c (build_invokeinterface): Remove unused variables to
5527         fix warnings.
5528
5529 2004-04-12  Bryce McKinlay  <mckinlay@redhat.com>
5530
5531         * class.c (get_interface_method_index): New function. Return dispatch
5532         index for interface method.
5533         (make_method_value): For interface methods, set index field to
5534         iface dispatch index, not DECL_VINDEX.
5535         * expr.c (build_invokeinterface): Use get_interface_method_index.
5536
5537 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5538
5539         * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
5540
5541 2004-03-31  Andrew Haley  <aph@redhat.com>
5542
5543         PR java/14104
5544         * jcf-io.c (opendir_in_zip): Tidy up error handling.
5545
5546 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
5547
5548         * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
5549         form of GTY markers.
5550
5551 2004-03-25  Marcus Meissner  <meissner@suse.de>
5552
5553         PR java/14689:
5554         * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
5555
5556 2004-03-23  Tom Tromey  <tromey@redhat.com>
5557
5558         PR java/14315:
5559         * jcf-write.c (make_class_file_name): Don't report if mkdir
5560         failed with EEXIST.
5561
5562 2004-03-23  Tom Tromey  <tromey@redhat.com>
5563
5564         * gcj.texi (Extensions): Document GCJ_PROPERTIES.
5565
5566 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5567
5568         * class.c, gjavah.c, lang.c: Fix comment typos.
5569         * gcj.texi: Fix typos.
5570
5571 2004-03-19  Per Bothner  <per@bothner.com>
5572
5573         * gcj.texi (Code Generation):  Document new flags and assert defaults.
5574
5575         * class.c (assume_compiled_node_struct):  Rename type to
5576         class_flag_node_struct, as it is now also used for enable_assertions.
5577         Rename assume_compiled_node typedef.  Rename excludep field to value.
5578         (find_assume_compiled_node):  Rename function to find_class_flag_node.
5579         Minor optimization - avoid needless strlen.
5580         (add_assume_compiled):  Some tweaking and optimization.
5581         Rename and generalize to add_class_flag takem an extra parameter.
5582         (add_assume_compled):  New just calls add_class_flag.
5583         (add_enable_assert, enable_assertions):  New functions.
5584         (enable_assert_tree):  New static.
5585         * java-tree.h (add_enable_assert, enable_assertions): New declarations.
5586         * lang.opt (fenable-assertions, fenable-assertions=,
5587         fdisable-assertions, fdisable-assertions=):  New options.
5588         * lang.c (java_handle_option):  Handle new options.
5589         * parse.y (build_incomplete_class_ref):  Handle class$ in an inner
5590         class in an interface - create helper class nested in outer interface.
5591         (build_assertion):  Short-circuit if enable_assertions is false.
5592
5593 2004-03-18  Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5594
5595         * java-tree.h: Changes throughout to add checking to macros
5596         and numerous whitespace changes.
5597         (VAR_OR_FIELD_CHECK): New macro.
5598         * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
5599         FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
5600
5601 2004-03-16  Per Bothner  <per@bothner.com>
5602
5603         * jcf-jump.c (options):  New --print-constants option.
5604         * gcj.texi (Invoking jcf-dump):  Document --print-constants.
5605
5606         * jcf-dump.c (flag_print_constant_pool):  Default to off.
5607         (print_constant_terse_with_index):  New helper function.
5608         (various places):  Check flag_print_constant_pool where missing.
5609         (main):  If verbose set flag_print_constant_pool.
5610         (HANDLE_INNERCLASSES_ATTRIBUTE):  Null inner class name is anonymous.
5611
5612 2004-03-15  Andrew Haley  <aph@redhat.com>
5613
5614         PR java/14581
5615         * parse.y (java_complete_lhs): Check that final variable has an
5616         initializer.
5617
5618 2004-03-12  Andrew Haley  <aph@redhat.com>
5619
5620         PR java/14551
5621         * typeck.c (convert): Clear TREE_OVERFLOW after an integer
5622         conversion.
5623
5624 2004-02-29  Roger Sayle  <roger@eyesopen.com>
5625
5626         * jcf-parse.c (java_parse_file): Handle the case that input_filename
5627         is NULL.
5628
5629 2004-02-27  Per Bothner  <per@bothner.com>
5630
5631         * parse.y (build_assertion):  Re-do 02-25 change following Jeff Sturm
5632         suggestion:  Use build_incomplete_class_ref.
5633         This fixes PR java/13508, java/11714.
5634
5635 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5636
5637         * java/parse.h: Update copyright.
5638
5639 2004-02-26  Andrew Haley  <aph@redhat.com>
5640
5641         PR java/14231:
5642         * parse.y (check_interface_throws_clauses): Check for
5643         !METHOD_INVISIBLE (iface_method).
5644         * class.c (layout_class_methods): Check for CLASS_INTERFACE as
5645         well as CLASS_ABSTRACT.
5646
5647 2004-02-25  Per Bothner  <per@bothner.com>
5648
5649         * parse.y (build_assertion):  If we're in an inner class, create the
5650         class$ helper routine in the outer class.
5651
5652 2004-02-19  Richard Henderson  <rth@redhat.com>
5653
5654         * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
5655
5656 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
5657
5658         * Make-lang.in (java.install-man): Add extra dependencies.
5659
5660 2004-02-13  Geoffrey Keating  <geoffk@apple.com>
5661
5662         * Make-lang.in: Install man pages under the same names
5663         (possibly transformed) as the program they document.
5664
5665 2004-02-10  Joseph S. Myers  <jsm@polyomino.org.uk>
5666
5667         * gjavah.c: Include "intl.h".
5668         (error): New function.
5669         (main): Call gcc_init_libintl.
5670         (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
5671         print_stub_or_jni, process_file, main): Use error rather than
5672         fprintf.
5673         (print_method_info, usage, help, version, main): Mark strings for
5674         translation with _.  Avoid splitting up sentences.  Send
5675         information messages to stdout.
5676         * jcf-dump.c: Include "intl.h".
5677         (main): Call gcc_init_libintl.
5678         (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
5679         Mark error, usage and version messages for translation with _.
5680         Avoid splitting up sentences.
5681         * jv-scan.c: Include "intl.h".
5682         (fatal_error, warning): Change parameter s to msgid.  Translate
5683         messages.
5684         (main): Call gcc_init_libintl.
5685         (usage, help, version): Mark error, usage and version messages for
5686         translation with _.  Avoid splitting up sentences.
5687         * jvgenmain.c: Include "intl.h".
5688         (main): Call gcc_init_libintl.
5689         (usage, main): Mark error messages for translation with _.
5690         * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
5691         JVGENMAIN_OBJS): Add intl.o.
5692         (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
5693         java/jvgenmain.o): Update dependencies.
5694
5695 2004-02-08  Per Bothner  <per@bothner.com>
5696
5697         * parse.y (resolve_qualified_expression_name):  In case of inaccessible
5698         class don't use not_accessible_field_error, which can get confused.
5699
5700 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
5701
5702         Make-lang.in (po-generated):  Delete.
5703
5704 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
5705
5706         * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
5707         Depend on target.h.
5708         * decl.c: Include target.h.
5709         (start_java_method): Replace PROMOTE_PROTOTYPES with
5710         targetm.calls.promote_prototypes.
5711         * expr.c: Include target.h.
5712         (pop_arguments): Replace PROMOTE_PROTOTYPES with
5713         targetm.calls.promote_prototypes.
5714         * parse.y: Include target.h.
5715         (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
5716         with targetm.calls.promote_prototypes.
5717
5718 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
5719
5720         * typeck.c: Update copyright.
5721
5722 2004-02-02  Tom Tromey  <tromey@redhat.com>
5723
5724         * decl.c (java_init_decl_processing): Remove duplicate
5725         gnu/gcj/RawData.
5726
5727 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
5728
5729         * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
5730
5731 2004-01-28  Andrew Pinski  <pinskia@physics.uc.edu>
5732
5733         * expr.c (build_field_ref): Move variable
5734         definition up.
5735
5736 2004-01-28  Andrew Haley  <aph@redhat.com>
5737
5738         * expr.c (build_field_ref): Widen field offset.
5739
5740 2004-01-27  Andrew Haley  <aph@redhat.com>
5741
5742         java/13273
5743         * parse.y (check_interface_throws_clauses): Make sure class_decl
5744         has been loaded.
5745
5746 2004-01-22  Jeff Sturm  <jsturm@one-point.com>
5747
5748         PR java/13733
5749         * parse.y (patch_assignment): Don't modify lhs_type for
5750         reference assignments.
5751
5752 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
5753
5754         * Make-lang.in: Replace $(docdir) with doc.
5755         (java.info, java.srcinfo, java.man, java.srcman): New rules.
5756         (java.install-man): Revamp rule.
5757
5758 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
5759
5760         * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
5761         GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
5762         instead of deferred backquote.
5763
5764 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
5765
5766         * typeck.c (find_method_in_interfaces): Move variable
5767         definition up.
5768
5769 2004-01-16  Andrew Haley  <aph@redhat.com>
5770
5771         PR java/13273:
5772         * typeck.c (shallow_find_method): New.
5773         (find_method_in_superclasses): New.
5774         (find_method_in_interfaces): New.
5775         (lookup_do): Rewrite.
5776         * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
5777
5778         * jcf-parse.c (read_class): Save and restore output_class.
5779         * decl.c (java_expand_body): Set output_class from fndecl.
5780
5781 2004-01-15  Michael Chastain  <mec.gnu@mindspring.com>
5782
5783         * class.c (gen_indirect_dispatch_tables): Fix string length
5784         calculations.
5785
5786 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
5787
5788         * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
5789         (java.srcextra): Copy above back to source directory if requested.
5790         (po-generated): Delete reference to $(parsedir).
5791         (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
5792         Use implicit rule.
5793
5794 2004-01-14  Jan Hubicka  <jh@suse.cz>
5795
5796         * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
5797         estimation.
5798
5799 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
5800
5801         * java-tree.h (java_expand_expr): Change prototype.
5802         * expr.c (java_expand_expr): Add alt_rtl parameter.
5803
5804 2004-01-09  Andrew Haley  <aph@redhat.com>
5805
5806         PR java/12755:
5807         * parse.y (java_fix_constructors):  Set output_class.
5808         (java_reorder_fields): Likewise.
5809         (java_layout_classes): Likewise.
5810         (java_expand_classes): Generate indirect dispatch tables.
5811         (java_expand_classes): Set output_class.
5812         (java_finish_classes): Likewise.
5813         * lang.c (java_init): Turn on always_initialize_class_p if we're
5814         using indirect dis[atch.
5815         (java_decl_ok_for_sibcall): Use output_class, not current_class.
5816         (java_get_callee_fndecl): Use class local atable.
5817         * jcf-parse.c
5818         (always_initialize_class_p): Decl moved to java-tree.h.
5819         (HANDLE_CLASS_INFO): Set output_class.
5820         (read_class): Likewise.
5821         (parse_class_file): Call gen_indirect_dispatch_tables.
5822         (parse_zip_file_entries): Set output_class.
5823         (java_parse_file): Set output_class.  Don't emit symbol tables.
5824         * java-tree.h (output_class): New.
5825         Remove global declarations for otable, atable, and ctable.
5826         (always_initialize_class_p): moved here from decl.c.
5827         (DECL_OWNER): New.
5828         (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
5829         TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
5830         TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
5831         (struct lang_type): Add otable_methods, otable_decl,
5832         otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
5833         ctable_decl, catch_classes, type_to_runtime_map.
5834         * expr.c (build_field_ref): Make otable, atable, and ctable class
5835         local rather than global.
5836         (build_known_method_ref): Likewise.
5837         (build_invokeinterface): Likewise.
5838         (java_expand_expr): Pass runtime type (rather than actual type) to
5839         expand_start_catch.
5840         * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
5841         this class.  Look up each class in that map to delete duplicates.
5842         (expand_end_java_handler): Pass runtime type (rather than actual
5843         type) to expand_start_catch.
5844         * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
5845         (do_nothing): New.
5846         (java_init_decl_processing): Rearrange things.  Remove global
5847         declarations of otable, atable, and ctable.
5848         (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
5849         (java_expand_body): Set output_class.
5850         * constants.c (build_constant_data_ref): Use output_class, not
5851         current_class.
5852         (alloc_name_constant): Likewise.
5853         * class.c (gen_indirect_dispatch_tables): New.
5854         (build_class_ref): Generate hard reference to superclass, even if
5855         using indirect dispatch.
5856         (build_static_field_ref): Use class local atable.
5857         (make_class_data): Generate hard reference to superclass, even if
5858         using indirect dispatch.
5859         Generate symbolic references to interfaces when using indirect
5860         dispatch.
5861         (make_class_data): Emit otable, atable, and ctable.
5862         Make otable, atable, and ctable class local rather than global.
5863         (emit_catch_table): Make otable, atable, and ctable class local
5864         rather than global.
5865
5866 2003-12-25  Andrew Pinski  <pinskia@physics.uc.edu>
5867
5868         * parse.y (catch_clause_parameter): Fix typo.
5869
5870         PR java/13404
5871         * parse.y: (catch_clause_parameter): Return early if $3, aka
5872         formal_parameter, is null.
5873
5874 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
5875
5876         * class.c: Remove uses of "register" specifier in
5877         declarations of arguments and local variables.
5878         * decl.c: Likewise.
5879         * expr.c: Likewise.
5880         * gjavah.c: Likewise.
5881         * jcf-dump.c: Likewise.
5882         * jcf-io.c: Likewise.
5883         * jcf-parse.c: Likewise.
5884         * jcf-write.c: Likewise.
5885         * keyword.h: Likewise.
5886         * parse.y: Likewise.
5887         * typeck.c: Likewise.
5888         * verify.c: Likewise.
5889
5890 2003-12-06  Kelley Cook  <kcook@gcc.gnu.org>
5891
5892         * Make-lang.in (GCJ_CROSS_NAME): Delete.
5893         (java.install_common, java.install-man): Adjust for above.
5894         (java.uninstall): Likewise.
5895
5896 2003-12-03  Michael Koch  <konqueror@gmx.de>
5897
5898         * class.c (make_class_data):
5899         Push field value to 'hack_signers' instead of 'signers'.
5900         * decl.c (java_init_decl_processing):
5901         Push field 'hack_signers' instead of 'signers'.
5902
5903 2003-12-03  Zack Weinberg  <zack@codesourcery.com>
5904
5905         * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
5906         including iconv.h.
5907
5908 2003-12-03  Ralph Loader  <rcl@ihug.co.nz>
5909
5910         PR java/12374:
5911         * parse.y (qualify_ambiguous_name): Remove lots of broken
5912         field access processing - there's no need to do that here,
5913         because we have resolve_field_access.  Remove
5914         RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
5915         * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
5916         used.
5917
5918 2003-12-01  Jeff Sturm  <jsturm@one-point.com>
5919
5920         Fix PR java/13237
5921         * parse.y (java_complete_lhs): Save location prior to patching
5922         CALL_EXPR.
5923
5924 2003-11-25  Mohan Embar  <gnustuff@thisiscool.com>
5925
5926         PR java/12548
5927         * resource.c (write_resource_constructor): Append
5928         "_resource" to constructor identifier name.
5929
5930 2003-11-25  Jeff Sturm  <jsturm@one-point.com>
5931
5932         Fix PR java/13183.
5933         * constants.c (cpool_for_class): New function.
5934         (outgoing_cpool): Remove global variable.
5935         (alloc_name_constant): Use cpool_for_class.
5936         (build_constants_constructor): Likewise.
5937         * decl.c (java_expand_body): Set current_class.
5938         * java-tree.h (outgoing_cpool) Remove declaration.
5939         (init_outgoing_cpool): Likewise.
5940         * jcf-parse.c (init_outgoing_cpool): Remove function.
5941         (parse_class_file): Don't call init_outgoing_cpool.
5942         * parse.y (java_complete_expand_methods): Don't call
5943         init_outgoing_cpool.  Don't save outgoing_cpool.
5944         (java_expand_classes): Don't restore outgoing_cpool.
5945         (java_finish_classes): Likewise.
5946
5947 2003-11-24  Mohan Embar  <gnustuff@thisiscool.com>
5948
5949         * Make-lang.in: (java.install-common) Add
5950         symlink for $(target_noncanonical)-gcjh for
5951         native builds.
5952
5953 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
5954
5955         * Make-lang.in (java.extraclean): Delete.
5956
5957 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
5958
5959         * Make-lang.in (check-java): Add.
5960
5961 2003-11-19  Jeff Sturm  <jsturm@one-point.com>
5962
5963         Fix PR java/13024.
5964         * except.c (prepare_eh_table_type): Allocate variable-sized
5965         buffer `buf' with alloca.
5966
5967 2003-11-17  Jeff Sturm  <jsturm@one-point.com>
5968
5969         Fix PR java/12857.
5970
5971         decl.c (java_init_decl_processing): Don't initialize
5972         class_not_found_type_node, no_class_def_found_type_node.
5973
5974         java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
5975         JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
5976         (class_not_found_type_node, no_class_def_found_type_node):
5977         Don't define.
5978
5979         parse.y (build_dot_class_method_invocation): Add this_class
5980         argument.  Qualify method invocations to a different class.
5981         (create_new_parser_context): Initialize saved_data_ctx to 0.
5982         (java_parser_context_save_global): Initialize saved_data_ctx to 1.
5983         (build_dot_class_method): Don't load classes.  Register
5984         incomplete types.
5985         (build_incomplete_class_ref): Special cases for interfaces
5986         and inner classes.  Move build_dot_class_method call to here...
5987         (patch_incomplete_class_ref): ...from here.  Pass current_class
5988         to build_dot_class_method_invocation.
5989         (build_assertion): Pass class_type to
5990         build_dot_class_method_invocation.
5991         (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
5992
5993 2003-11-17  Jeff Sturm  <jsturm@one-point.com>
5994
5995         Fix PR java/12739.
5996         * java-tree.h (BLOCK_EMPTY_P): Define.
5997         * parse.y (java_complete_lhs): Check for empty blocks
5998         in TRY_FINALLY_EXPR case.
5999
6000 2003-11-17  Andrew Haley  <aph@redhat.com>
6001
6002         * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
6003         (struct lang_decl_var:freed): New variable.
6004         * decl.c (poplevel): Mark local vars that have gone out of scope.
6005         (push_jvm_slot): Don't use the RTL of a var that has gone out of
6006         scope.
6007
6008 2003-11-16  Jason Merrill  <jason@redhat.com>
6009
6010         * Make-lang.in (java.tags): Create TAGS.sub files in each directory
6011         and TAGS files that include them for each front end.
6012
6013 2003-11-15  Tom Tromey  <tromey@redhat.com>
6014
6015         * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
6016
6017 2003-11-12  Jason Merrill  <jason@redhat.com>
6018
6019         PR optimization/12547
6020         * lang.c (java_tree_inlining_walk_subtrees): Just walk
6021         BLOCK_EXPR_BODY directly.
6022
6023 2003-11-12  Andrew Haley  <aph@redhat.com>
6024
6025         PR java/11045
6026         * parse.y (fold_constant_for_init): Check that we really do have a
6027         constant.
6028
6029         PR java/11533
6030         * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
6031         init_test_decls being inlined.
6032
6033         PR java/12890:
6034         * parse.y (do_resolve_class): Check return value from
6035         breakdown_qualified().
6036
6037 2003-11-11  Tom Tromey  <tromey@redhat.com>
6038
6039         PR java/12915:
6040         * parse.y (merge_string_cste): Handle case where we have a
6041         pointer that happens to be zero, not null_pointer_node.
6042
6043 2003-11-10  Tom Tromey  <tromey@redhat.com>
6044
6045         * jcf-parse.c (classify_zip_file): Correctly compare
6046         filename_length against length of manifest file's name.
6047
6048 2003-11-08  Tom Tromey  <tromey@redhat.com>
6049
6050         PR java/12894:
6051         * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
6052
6053 2003-11-06  Andrew Haley  <aph@redhat.com>
6054
6055         * expr.c (java_stack_swap): Make sure destination stack slots are
6056         of the correct type.
6057
6058 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
6059
6060         * Make-lang.in (dvi): Move targets to $(docobjdir).
6061         (gcj.dvi): Simplify rule and adjust target.
6062         (gcj.info): Simplify rule.
6063         (gcj.pod): New intermediate rule.
6064         (gcjh.pod): Likewise.
6065         (jv-scan.pod): Likewise.
6066         (jcf-dump.pod): Likewise.
6067         (gij.pod): Likewise.
6068         (jv-convert.pod): Likewise.
6069         (rmic.pod): Likewise.
6070         (rmiregistry.pod): Likewise.
6071         (gcj.1): Delete.
6072         (gcjh.1): Delete.
6073         (jv-scan.1): Delete.
6074         (jcf-dump.1): Delete.
6075         (gij.1): Delete.
6076         (jv-convert.1): Delete.
6077         (rmic.1): Delete.
6078         (rmiregistry.1): Delete.
6079
6080 2003-11-02  Jeff Sturm  <jsturm@one-point.com>
6081
6082         Fixes PR java/12866.
6083         * parse.y (resolve_qualified_expression_name): Move test
6084         for outer field access methods from here...
6085         (check_thrown_exceptions) ...to here.
6086
6087 2003-11-01  Kelley Cook  <kcook@gcc.gnu.org>
6088
6089         * .cvsignore: Delete.
6090
6091 2003-10-28  Frank Ch. Eigler  <fche@redhat.com>
6092
6093         * verify.c (verify_jvm_instructions): Don't warn about legal
6094         eh binding regions generated for example by jdk 1.4.1.
6095
6096 2003-10-24  David S. Miller  <davem@redhat.com>
6097
6098         * jcf-parse.c (jcf_parse): Fix args to fatal_error().
6099
6100 2003-10-22  Andrew Haley  <aph@redhat.com>
6101
6102         * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
6103         (java_get_callee_fndecl): New.
6104
6105         * jcf-parse.c (java_parse_file): Call emit_catch_table().
6106
6107         * java-tree.h (ctable_decl): New.
6108         (catch_classes):  New.
6109         (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
6110
6111         * decl.c (java_init_decl_processing): Add catch_class_type.
6112         Add ctable_decl.
6113         Add catch_classes field.
6114
6115         * class.c (build_indirect_class_ref): Break out from
6116         build_class_ref.
6117         (make_field_value): Check flag_indirect_dispatch.
6118         (make_class_data): Ditto.
6119         Tidy uses of PUSH_FIELD_VALUE.
6120         Add field catch_classes.
6121         (make_catch_class_record): New.
6122
6123         * java-tree.h (PUSH_FIELD_VALUE): Tidy.
6124
6125 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6126
6127         * jcf-write.c: Follow spelling conventions.
6128         * parse.y: Likewise.
6129
6130 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6131
6132         * ChangeLog: Fix typos.
6133         * expr.c: Fix comment typos.
6134         * jcf-write.c: Likewise.
6135         * lang.c: Likewise.
6136         * lex.c: Likewise.
6137         * mangle.c: Likewise.
6138         * parse-scan.y: Likewise.
6139         * parse.y: Likewise.
6140
6141 2003-10-22  Tom Tromey  <tromey@redhat.com>
6142
6143         * expr.c (expand_byte_code): Only warn about dead bytecode when
6144         extra_warnings is set.
6145
6146 2003-10-22  Bryce McKinlay  <bryce@mckinlay.net.nz>
6147
6148         Fix for PR java/12586.
6149         * mangle.c (find_compression_record_match): Don't iterate through
6150         package namespace elements unless they all match compression_table
6151         entries.
6152
6153 2003-10-20  Kelley Cook  <kcook@gcc.gnu.org>
6154
6155         * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
6156         (generate-manpages): Likewise.
6157         (java.maintainer-clean): Likewise.
6158         (gcj.info): Likewise.
6159         (gcj.1): Likewise.
6160         (gcjh.1): Likewise.
6161         (jv-scan.1): Likewise.
6162         (jcf-dump.1): Likewise.
6163         (gij.1): Likewise.
6164         (jv-convert.1): Likewise.
6165         (rmic.1): Likewise.
6166         (rmiregistry.1): Likewise.
6167         (java.install-man): Likewise.
6168         (parse-scan.o): Move and define complete compile line.
6169         (parse.o): Likewise.
6170         (jcf-tree-inline.o): Move.
6171
6172 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
6173
6174         * Make-lang.in (info): Update dependencies.
6175         (java.install-info): Remove.
6176         ($(srcdir)/java/gcj.info): Replace with ...
6177         ($(docobjdir)/gcj.info): ... this.
6178
6179 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6180
6181         * Make-lang.in: Replace uses of $(target_alias) with
6182         $(target_noncanonical).
6183
6184 2003-10-09  Tom Tromey  <tromey@redhat.com>
6185
6186         * decl.c (java_init_decl_processing): Declare signers field.
6187         * class.c (make_class_data): Set signers field.
6188
6189 2003-10-09  Jason Merrill  <jason@redhat.com>
6190
6191         * parse.y (patch_assignment): Use make_node to create a BLOCK.
6192         * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
6193         POINTER_TYPE.
6194
6195 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
6196
6197         * Make-lang.in (java.info): Replace with ...
6198         (info): ... this.
6199         (java.dvi): Replace with ...
6200         (dvi): ... this.
6201         (java.generated-manpages): Replace with ...
6202
6203 2003-10-03  Kelley Cook  <kelleycook@wideopenwest.com>
6204
6205         * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
6206
6207 2003-10-01  Andrew Haley  <aph@redhat.com>
6208
6209         * jcf-parse.c (java_parse_file): Write otable and atable.
6210         * java-tree.h (atable_methods): New.
6211         (atable_decl): New.
6212         (atable_syms_decl): New.
6213         (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
6214         JTI_ATABLE_SYMS_DECL.  Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
6215         (symbol_*type): Rename method_symbol* to symbol*type.
6216         (emit_offset_symbol_table): Delete.
6217         (emit_symbol_table): New.
6218         (get_symbol_table_index): New.
6219         (atable_type): New.
6220         * expr.c (build_field_ref): Handle flag_indirect_dispatch.
6221         (build_known_method_ref): Likewise.
6222         (get_symbol_table_index): Rename from get_offset_table_index.
6223         Parameterize to allow re-use by differing types of symbol table.
6224         (build_invokevirtual): Pass table to get_offset_table_index.
6225         * decl.c (java_init_decl_processing): Push types and decls for
6226         atable and atable_syyms.
6227         * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
6228         (make_class_data): Add new fields atable and atable_syms.
6229         (emit_symbol_table): Rename from emit_offset_symbol_table.
6230         Parameterize to allow re-use by different types of symbol table.
6231         (build_symbol_entry): Renamed from build_method_symbols_entry.
6232
6233 2003-09-30  Roger Sayle  <roger@eyesopen.com>
6234
6235         * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
6236         semantics for SAVE_EXPR, by caching the result in a temporary.
6237
6238 2003-09-28  Richard Henderson  <rth@redhat.com>
6239
6240         * check-init.c (check_init): Save and restore input_location
6241         instead of file and line separately.
6242         * decl.c (java_expand_body): Likewise.
6243         * jcf-write.c (generate_bytecode_insns): Likewise.
6244         * parse.y (safe_layout_class): Likewise.
6245         * jcf-parse.c (read_class, parse_class_file): Likewise.
6246         (java_parse_file): Use %H for warning locator.
6247
6248 2003-09-28  Roger Sayle  <roger@eyesopen.com>
6249
6250         * expr.c (java_check_reference): Use the semantics of COND_EXPRs
6251         with void-type branches instead of using a COMPOUND_EXPR.
6252
6253 2003-09-28  Jeff Sturm  <jsturm@one-point.com>
6254
6255         * decl.c (java_optimize_inline, dump_function): Remove.
6256         * java-tree.h (java_optimize_inline): Remove declaration.
6257         * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
6258         * parse.y (source_end_java_method, java_expand_classes):
6259         Likewise.  Remove dead code.
6260
6261 2003-09-27  Roger Sayle  <roger@eyesopen.com>
6262
6263         * lang.c (java_init_options): Set flag_evaluation_order.
6264         * expr.c (force_evaluation_order): Don't attempt to force
6265         evaluation order of binary operations using save_expr.
6266         * parse.y (java_complete_lhs): No longer need to call
6267         force_evaluation_order when constructing binary operators.
6268
6269 2003-09-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
6270             Bryce McKinlay  <bryce@mckinlay.net.nz>
6271
6272         PR java/1333:
6273         * parse.y (not_accessible_field_error): New function.
6274         (resolve_expression_name): Check field access permissions.
6275         (resolve_qualified_expression_name): Use
6276         not_accessible_field_error.
6277         (resolve_qualified_expression_name): Likewise.
6278
6279 2003-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6280
6281         * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
6282
6283 2003-09-23  Roger Sayle  <roger@eyesopen.com>
6284
6285         * jcf-write.c (generate_bytecode_insns): Optimize binary operations
6286         with equal operands without side-effects.
6287
6288 2003-09-22  Jeff Sturm  <jsturm@one-point.com>
6289
6290         * decl.c (java_init_decl_processing): Don't emit otable decls
6291         if flag_indirect_dispatch is not set.
6292
6293 2003-09-21  Richard Henderson  <rth@redhat.com>
6294
6295         * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6296         resource.c: Revert.
6297
6298 2003-09-21  Richard Henderson  <rth@redhat.com>
6299
6300         * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6301         resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
6302
6303 2003-09-20  Richard Henderson  <rth@redhat.com>
6304
6305         * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
6306
6307 2003-09-18  Roger Sayle  <roger@eyesopen.com>
6308
6309         * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
6310         * check-init.c (check_init): Likewise.
6311
6312 2003-09-18  Roger Sayle  <roger@eyesopen.com>
6313
6314         * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
6315
6316 2003-09-16  Andrew Haley  <aph@redhat.com>
6317
6318         * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
6319
6320 2003-09-17  Ranjit Mathew  <rmathew@hotmail.com>
6321
6322         Fixes PR java/9577
6323         * mangle.c (find_compression_record_match): Skip
6324         over a "6JArray" (the array template mangled string)
6325         IDENTIFIER_NODE.
6326         (mangle_array_type): Correct minor typo.
6327         (atms): Move definition to the beginning.
6328
6329 2003-09-16  Bryce McKinlay  <bryce@mckinlay.net.nz>
6330
6331         * class.c (add_miranda_methods): Ensure super-interfaces are laid
6332         out. Fix for PR java/12254.
6333
6334 2003-09-11  Richard Henderson  <rth@redhat.com>
6335
6336         * parse.y (source_end_java_method): Update for new
6337         cgraph_finalize_function argument.
6338
6339 2003-09-09  Richard Henderson  <rth@redhat.com>
6340
6341         * parse.y (source_end_java_method): Update call to
6342         cgraph_finalize_function.
6343
6344 2003-09-03  Jeff Sturm  <jsturm@one-point.com>
6345
6346         * decl.c (java_expand_body): New function.
6347         * expr.c (build_class_init): Set DECL_IGNORED_P.
6348         * java-tree.h (start_complete_expand_method,
6349         java_expand_body): Declare.
6350         * jcf-parse.c (cgraph.h): Include.
6351         (java_parse_file): Handle flag_unit_at_a_time.
6352         * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
6353         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
6354         (java_estimate_num_insns): Use walk_tree_without_duplicates.
6355         (java_start_inlining): New function.
6356         * parse.h (java_finish_classes): Declare.
6357         * parse.y: Include cgraph.h.
6358         (block): Don't special-case empty block production.
6359         (craft_constructor): Set DECL_INLINE.
6360         (source_end_java_method): Handle flag_unit_at_a_time.
6361         Replace inline code with call to java_expand_body.
6362         (start_complete_expand_method): Remove static modifier.
6363         (java_expand_method_bodies): Patch function tree for
6364         class initialization and/or synchronization as needed.
6365         Don't begin RTL expansion yet.
6366         (java_expand_classes): Check flag_unit_at_a_time before
6367         calling finish_class.
6368         (java_finish_classes): New function.
6369         (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
6370         (patch_assignment): Set DECL_CONTEXT on temporary variable.
6371         (emit_test_initialization): Set DECL_IGNORED_P.
6372
6373 2003-09-03  Roger Sayle  <roger@eyesopen.com>
6374
6375         * builtins.c (enum builtin_type): Delete unused enumeration.
6376         * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
6377
6378 2003-08-28  Tom Tromey  <tromey@redhat.com>
6379
6380         * gcj.texi (Extensions): Document gcjlib URLs.
6381
6382 2003-08-20  Tom Tromey  <tromey@redhat.com>
6383
6384         * gcj.texi (Extensions): Added xref.
6385         (libgcj Runtime Properties): Document
6386         gnu.gcj.runtime.VMClassLoader.library_control.
6387
6388 2003-08-20  Andrew Haley  <aph@redhat.com>
6389
6390         * except.c (prepare_eh_table_type): Use new encoding for exception
6391         handlers when using -fno-assume-compiled.
6392
6393 2003-08-13  Tom Tromey  <tromey@redhat.com>
6394
6395         * gcj.texi (Invoking gij): Document -X and -?.
6396
6397 2003-08-13  Mohan Embar  <gnustuff@thisiscool.com>
6398
6399         * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
6400         GCJH_OBJS, JCFDUMP_OBJS
6401         * win32-host.c: Removed the unnecessary and broken dependency
6402         on jcf.h
6403
6404 2003-08-11  Tom Tromey  <tromey@redhat.com>
6405
6406         * parse.y (java_check_regular_methods): Typo fixes.  Call
6407         check_interface_throws_clauses.  Use
6408         check_concrete_throws_clauses.
6409         (check_interface_throws_clauses): New function.
6410         (check_concrete_throws_clauses): New function.
6411         (hack_is_accessible_p): New function.
6412         (find_most_specific_methods_list): Added FIXME.
6413         * typeck.c (lookup_do): Use `flags' argument to decide what to
6414         do.  Reimplemented.
6415         (lookup_argument_method_generic): New function.
6416         (lookup_argument_method2): Removed.
6417         * jcf.h (ACC_INVISIBLE): New define.
6418         * jcf-write.c (generate_classfile): Skip invisible methods.
6419         * class.c (add_miranda_methods): New function.
6420         (layout_class_methods): Use it.
6421         (get_access_flags_from_decl): Use ACC_INVISIBLE.
6422         * java-tree.h (METHOD_INVISIBLE): New define.
6423         (lang_decl_func) [invisible]: New field.
6424         (lookup_argument_method_generic): Declare.
6425         (SEARCH_INTERFACE): New define.
6426         (SEARCH_SUPER): Likewise.
6427         (SEARCH_ONLY_INTERFACE): Likewise.
6428         (SEARCH_VISIBLE): Likewise.
6429         (lookup_argument_method2): Removed declaration.
6430
6431 2003-08-05  Tom Tromey  <tromey@redhat.com>
6432
6433         Fix for PR java/11600:
6434         * parse.y (java_complete_lhs): See whether we're calling a method
6435         on an array.
6436         (check_thrown_exceptions): Added `is_array_call' argument;
6437         fixed `clone' checking; updated all callers.
6438
6439 2003-08-05  Steven Bosscher  <steven@gcc.gnu.org>
6440
6441         * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
6442
6443 2003-08-03  Tom Tromey  <tromey@redhat.com>
6444
6445         * java-tree.h (METHOD_TRANSIENT): Removed.
6446         * decl.c (pushdecl): Removed some dead code.
6447         * class.c (get_access_flags_from_decl): Can't have transient
6448         method.
6449         (add_method_1): Can't have a transient method.
6450
6451 2003-07-28  Andreas Jaeger  <aj@suse.de>
6452
6453         * jvspec.c: Convert to ISO C90 prototypes.
6454
6455 2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>
6456
6457         * decl.c (force_poplevels): Fix warning call.
6458
6459 2003-07-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6460
6461         * expr.c (expand_java_field_op): Don't use xxx_with_decl
6462         (expand_java_field_op): Likewise.
6463         * class.c (layout_class_method): Likewise
6464         (emit_register_classes): Likewise.
6465         * decl.c (pushdecl): Likewise.
6466         (poplevel): Likewise.
6467         (force_poplevels): Likewise.
6468         (give_name_to_locals): Likewise.
6469         * check-init.c (check_for_initialization): Likewise.
6470
6471 2003-07-24  Jason Merrill  <jason@redhat.com>
6472
6473         * java-tree.h: Move boolean_type_node et al to the back end.
6474
6475 2003-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6476
6477         * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
6478         casts.
6479
6480 2003-07-19  Neil Booth  <neil@daikokuya.co.uk>
6481
6482         * lang.opt: Don't show -MD_ and -MDD_.
6483
6484 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
6485
6486         * lang-options.h: Remove.
6487         * lang.opt: Add help text.
6488
6489 2003-07-15  Kazu Hirata  <kazu@cs.umass.edu>
6490
6491         * expr.c: Remove the last argument to expand_assignment().
6492
6493 2003-07-09  Jan Hubicka  <jh@suse.cz>
6494
6495         * java-tree.h (DECL_NUM_STMTS): Rename to...
6496         (DECL_ESTIMATED_INSNS): ... this.
6497         * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
6498         New static functions.
6499         (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
6500         * parser.y (add_stmt_to_compound): Do not account statements.
6501
6502 2003-07-08  Mark Wielaard  <mark@klomp.org>
6503
6504         * gcj.texi: CNI now expands to Compiled Native Interface.
6505
6506 2003-07-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6507
6508         * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
6509
6510 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
6511
6512         * expr.c (expand_byte_code): Adjist emit_line_note call.
6513
6514 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
6515
6516         * lang.c (java_handle_option): Don't handle filenames.
6517
6518 2003-07-02  Zack Weinberg  <zack@codesourcery.com>
6519
6520         * jcf-path.c: Don't default-define PATH_SEPARATOR nor
6521         DIR_SEPARATOR.
6522         Use FILENAME_CMP.
6523         * jcf-write.c: Don't default-define DIR_SEPARATOR.
6524         * jcf.h: Delete COMPARE_FILENAMES definition.
6525
6526 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
6527
6528         * lang.c (java_init_options): Update prototype.
6529
6530 2003-07-01  Nathan Sidwell  <nathan@codesourcery.com>
6531
6532         * decl.c (poplevel): Adjust define_label call.
6533
6534 2003-06-27  Zack Weinberg  <zack@codesourcery.com>
6535
6536         * gjavah.c (flag_jni): Make non-static.
6537         * parse-scan.y (ctxp): Make non-static.
6538
6539         * class.c (build_method_symbols_entry)
6540         * expr.c (get_offset_table_index)
6541         * jcf-parse.c (jcf_parse):
6542         Mark the definition static, matching the forward declaration.
6543
6544 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
6545
6546         * lang.c (java_handle_option): Don't check for missing arguments.
6547
6548 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
6549
6550         * class.c (push_class): Use a location_t to save place.
6551         (emit_register_classes): Set input_location. Adjust
6552         expand_function_end call.
6553         * resource.c (write_resource_constructor): Likewise.
6554         * decl.c (end_java_method): Adjust expand_function_end call.
6555         * parse.y (source_end_java_method): Likewise.
6556
6557 2003-06-17  Robert Abeles  <rabeles@archaelogic.com>
6558
6559         * lang.c (java_handle_option): Likewise.
6560
6561 2003-06-16  Neil Booth  <neil@daikokuya.co.uk>
6562
6563         * lang.c (java_handle_option): Special-casing of optional
6564         joined arguments no longer needed.
6565         * lang.opt: Update switches that take optional argument.
6566
6567 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
6568
6569         * lang.opt: Declare Java.
6570         * lang.c (java_init_options): Update.
6571
6572 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
6573
6574         * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
6575
6576 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
6577
6578         * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
6579         * lang.c (java_handle_option): -MD and -MMD have an underscore.
6580         * lang.opt: -MD and -MMD have an underscore.
6581
6582 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
6583
6584         * class.c (emit_register_classes): Adjust init_function_start
6585         call.
6586         * decl.c (complete_start_java_method): Likewise.
6587         * resource.c (write_resource_constructor): Likewise.
6588
6589 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
6590
6591         * Make-lang.in: Update to use options.c and options.h.
6592         * lang.c: Include options.h not j-options.h.
6593         (java_handle_option): Abort on unrecognized option.
6594         (java_init_options): Request Java switches.
6595
6596 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
6597
6598         * Make-lang.in: Handle mostlyclean.
6599
6600 2003-06-11  Tom Tromey  <tromey@redhat.com>
6601
6602         * lang.c (java_handle_option): Update dependency_tracking for
6603         OPT_MF case.
6604
6605         * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
6606         empty argument.
6607
6608 2003-06-10  Andrew Haley  <aph@redhat.com>
6609
6610         * resource.c (write_resource_constructor): Use expand_expr to
6611         generate the address of the label attached to a resource.
6612         * Make-lang.in (java/resource.o): Add expr.h
6613
6614 2003-06-10  Andrew Haley  <aph@redhat.com>
6615
6616         * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
6617         (java_decl_ok_for_sibcall): New.
6618
6619 2003-06-09  Neil Booth  <neil@daikokuya.co.uk>
6620
6621         * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
6622         (java/j-options.c, java/j-options.h): New.
6623         * java-tree.h (resource_name, compile_resource_file,
6624         compile_resource_data): Constify.
6625         * jcf-write.c (jcf_write_base_directory): Similarly.
6626         * jcf.h (jcf_write_base_directory): Similarly.
6627         * lang.c: Include j-options.h.
6628         (cl_options_count, cl_options, string_option, java_decode_option,
6629         lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
6630         process_option_with_no): Remove.
6631         (resource_name): Constify.
6632         (LANG_HOOKS_HANDLE_OPTION): Override.
6633         (java_handle_option): New.
6634         (java_init): Don't call jcf_path_init.
6635         (java_init_options): Call jcf_path_init.
6636         * lang.opt: New.
6637         * resource.c (compile_resource_data, compile_resource_file): Constify.
6638
6639 2003-06-09  Nathan Sidwell  <nathan@codesourcery.com>
6640
6641         * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
6642         (struct lang_decl_func): Add last_line field.
6643         * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
6644         DECL_SOURCE_LINE_LAST): Remove.
6645         * parse.y (missing_return_error, finish_method_declaration,
6646         lookup_cl, start_artificial_method_body, source_end_java_method,
6647         start_complete_expand_method): Adjust.
6648
6649 2003-06-08  Tom Tromey  <tromey@redhat.com>
6650
6651         * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
6652         fno-assume-compiled.
6653
6654 2003-06-08  Roger Sayle  <roger@eyesopen.com>
6655
6656         * builtins.c (define_builtin_type, builtin_types): Delete.
6657         (define_builtin): Rewritten to take just the built-in code,
6658         the function's name, type and fallback library function name.
6659         All built-ins used by Java are implicit and BUILT_IN_NORMAL.
6660         (initialize_builtins): Overhaul to define the GCC builtins
6661         used by gcj manually, providing the Java run-time's
6662         implementations as the fallback library function.
6663
6664 2003-06-08  Anthony Green  <green@redhat.com>
6665
6666         * parse.y (patch_cast): Fix conversions from floating-point to
6667         integral types.
6668
6669 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
6670
6671         * Make-lang.in: Update.
6672         * lang.c: Include opts.h. Define cl_options_count and cl_options.
6673
6674 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
6675
6676         * lang.c (java_init_options): Update.
6677
6678 2003-06-05  Jan Hubicka  <jh@suse.cz>
6679
6680         * Make-lang.in:  Add support for stageprofile and stagefeedback
6681
6682 2003-05-31  Roger Sayle  <roger@eyesopen.com>
6683
6684         * lang.c (java_init_options): Prescribe wrap-around two's
6685         complement arithmetic overflow by setting flag_wrapv.
6686
6687 2003-05-29  Roger Sayle  <roger@eyesopen.com>
6688
6689         * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
6690         (builtin_record): Add an additional builtin_code field to
6691         record which GCC built-in corresponds to the Java function.
6692         (java_builtins):  Add new entries for atan, atan2, exp, log,
6693         pow and tan.
6694         (max_builtin, min_builtin, abs_builtin): Perform constant
6695         folding on the resulting tree.
6696         (java_build_function_call_expr): Likewise, perform constant
6697         folding on the resulting tree.
6698         (initialize_builtins): The NULL creators are now allowed in
6699         the java_builtins table, which is now terminated by an entry
6700         with builtin_code == END_BUILTINS.
6701         (check_for_builtin): Likewise.  If the matching creator is
6702         NULL, construct the call using java_build_function_call_expr
6703         directly with the decl for the corresponding builtin_code.
6704
6705 2003-05-23  Nathanael Nerode  <neroden@gcc.gnu.org>
6706
6707         * win32-host.c: Normalize copyright boilerplate.
6708
6709 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6710
6711         * parse.y (print_int_node): Use string concatentation on
6712         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
6713         function calls into one.
6714
6715 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
6716
6717         * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
6718         fatal_io_error with calls to fatal_error; add ": %m" to the end of
6719         all the affected error messages.
6720
6721 2003-05-13  Richard Henderson  <rth@redhat.com>
6722
6723         * class.c (layout_class_method): Set DECL_EXTERNAL.
6724         * decl.c (java_mark_decl_local, java_mark_class_local): New.
6725         * java-tree.h (java_mark_class_local): Declare.
6726         * jcf-parse.c (parse_class_file): Use it.
6727         * parse.y (java_expand_classes): Likewise.
6728
6729 2003-05-04  Nathan Sidwell  <nathan@codesourcery.com>
6730
6731         * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
6732         * lex.h: #include input.h.
6733         * jv-scan.c (input_filename): Remove.
6734
6735 2003-05-02  Tom Tromey  <tromey@redhat.com>
6736
6737         PR java/10491:
6738         * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
6739         (handle_inner_classes): New function.
6740
6741 2003-05-01  Tom Tromey  <tromey@redhat.com>
6742
6743         PR java/10459:
6744         * parse.y (finish_for_loop): Do nothing if update expression is a
6745         EXPR_WFL_NODE wrapping nothing.
6746         (java_complete_lhs) <COMPOUND_EXPR>: Likewise.
6747
6748 2003-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6749
6750         * lex.h (input_lineno): Remove declaration.
6751         * parse-scan.y: #include input.h.
6752         (input_filename): Remove declaration.
6753         (input_location): Add definition.
6754         (input_line): Remove definition.
6755
6756 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
6757
6758         * lex.h (lineno): Rename to ...
6759         (input_line): ... here
6760         * parse-scan.y (lineno): Rename to ...
6761         (input_line): ... here.
6762         (reset_report): Rename lineno to input_line.
6763         * check-init.c (check_init): Likewise.
6764         * class.c (push_class): Likewise.
6765         * decl.c (complete_start_java_method, end_java_method): Likewise.
6766         * expr.c (expand_byte_code): Likewise.
6767         * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
6768         * jcf-write.c (generate_bytecode_insns): Likewise.
6769         * lex.c (java_init_lex, java_allocate_new_line,
6770         do_java_lex): Likewise.
6771         * parse.h (YYNOT_TWICE): Likewise.
6772         * parse.y (empty_statement, expression_statement,
6773         java_pop_parser_context, java_parser_context_save_global,
6774         yyerror, register_fields, method_header, safe_layout_class,
6775         find_in_imports_on_demand, create_artificial_method,
6776         source_end_java_method, start_complete_expand_method,
6777         build_thisn_assign, java_complete_lhs,
6778         maybe_absorb_scoping_block): Likewise.
6779
6780 2003-04-20  Mohan Embar  <gnustuff@thisiscool.com>
6781
6782         * jcf-io.c (find_class): use DIR_SEPARATOR instead of
6783         '/' when computing java source filename
6784
6785 2003-04-13  Tom Tromey  <tromey@redhat.com>
6786
6787         * gjavah.c (print_c_decl): Indentation fix.
6788
6789 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
6790
6791         * class.c (make_field_value, make_method_value, get_dispatch_table)
6792         (make_class_data, emit_offset_symbol_table)
6793         * constants.c (build_constants_constructor)
6794         * java-tree.h (START_RECORD_CONSTRUCTOR)
6795         * parse.y (maybe_build_array_element_wfl):
6796         Use build_constructor.
6797
6798 2003-04-10  Eric Blake  <ebb9@email.byu.edu>
6799
6800         PR java/10253:
6801         * parse.y (string_convert_int_cst): Always use at least one digit
6802         in string conversion. Remove ASCII dependence.
6803         (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
6804
6805 2003-03-16  Mohan Embar  <gnustuff@thisiscool.com>
6806
6807         * Make-lang.in: added win32-host.c
6808         * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
6809         resolves to open() on non-Win32 platforms and
6810         Win32-specific jcf_open_exact_case() on Win32
6811         * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
6812         when trying .java and .class files
6813         * win32-host.c: added to repository. Defines
6814         Win32-specific jcf_open_exact_case()
6815
6816 2003-04-10  Andrew Haley  <aph@redhat.com>
6817
6818         * jcf-write.c (struct jcf_partial): num_jsrs: new field.
6819         (maybe_free_localvar): Renamed from localvar_free.
6820         Add new arg, really.
6821         (generate_bytecode_insns): Set new variable, jsrs.
6822         Only free local vars if no jsr insns have been emittted.
6823         Call maybe_free_localvar, not localvar_free.
6824
6825 2003-03-30  Joseph S. Myers  <jsm@polyomino.org.uk>
6826
6827         * gcj.texi: Remove @ at start of file.
6828
6829 2003-03-25  Tom Tromey  <tromey@redhat.com>
6830
6831         * parse.y (create_interface): Call CHECK_DEPRECATED.
6832
6833 2003-03-23  Zack Weinberg  <zack@codesourcery.com>
6834
6835         * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
6836
6837 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
6838
6839         * javaop.h (jfloat, jdouble): Make them structures mirroring
6840         the bit fields of IEEE float and double respectively.
6841         (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
6842         JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
6843         (union Word, union DWord): Delete.
6844         (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
6845
6846         * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
6847         D_NAN_MASK): Delete.
6848         (jni_print_float, jni_print_double): New.  Generate
6849         hexadecimal floating constants.
6850         (print_field_info): Use jni_print_float/double.
6851
6852         * jcf-dump.c: Include math.h.  Use ldexp/frexp to assemble
6853         finite floating point numbers for output; special case
6854         non-finite floats.
6855
6856 2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
6857
6858         * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
6859         Replace 0 and 1 with true and false in return statements.
6860
6861 2003-03-19  Tom Tromey  <tromey@redhat.com>
6862
6863         * lex.c (do_java_lex): Renamed from java_lex.
6864         (java_lex): New function.
6865         Include timevar.h.
6866
6867 2003-03-13  Tom Tromey  <tromey@redhat.com>
6868
6869         * parse.y (resolve_inner_class): Error if qualifier is a primitive
6870         type.
6871
6872 2003-03-04  Andrew Haley  <aph@redhat.com>
6873
6874         * gjavah.c (is_first_data_member): New global variable.
6875         (print_c_decl): If it's the first data member, align it as the
6876         superclass.
6877         (process_file): Set is_first_data_member.
6878
6879 2003-03-11  Tom Tromey  <tromey@redhat.com>
6880
6881         * parse.y (resolve_field_access): Initialize class if field is
6882         found in another static field.
6883         * expr.c (build_class_init): Don't optimize out initialization of
6884         implemented interface.
6885
6886 2003-03-11  Andrew Haley  <aph@redhat.com>
6887
6888         * jcf-io.c (caching_stat): Initialize origsep to remove compiler
6889         warning.
6890
6891 2003-03-10  Ranjit Mathew  <rmathew@hotmail.com>
6892
6893         * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
6894         and DIR_SEPARATOR_2 for a target.
6895         Correct minor typos.
6896
6897         * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
6898         and DIR_SEPARATOR_2 for a target into account.
6899
6900 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6901
6902         * lang.c (java_init): Update prototype, move code to java_post_options.
6903         (java_post_options): Similarly.
6904
6905 2003-03-05  Ranjit Mathew  <rmathew@hotmail.com>
6906
6907         * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
6908         compare file name components depending on the case-sensitivity
6909         or otherwise of the host file system.
6910
6911         * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
6912         "strcmp" to compare file name components.
6913         Use IS_DIR_SEPARATOR instead of comparing directly against
6914         DIR_SEPARATOR.
6915         (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
6916         comparing directly against DIR_SEPARATOR.
6917
6918 2003-03-04  Tom Tromey  <tromey@redhat.com>
6919
6920         * Make-lang.in (java.tags): New target.
6921
6922 2003-03-01  Roger Sayle  <roger@eyesopen.com>
6923
6924         * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
6925         (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
6926
6927 2003-03-01  Tom Tromey  <tromey@redhat.com>
6928
6929         * parse.y (jdep_resolve_class): Only check deprecation if we found
6930         a decl.
6931
6932 2003-02-28  Tom Tromey  <tromey@redhat.com>
6933
6934         PR java/9695:
6935         * class.c (maybe_layout_super_class): Always pass a WFL to
6936         do_resolve_class.
6937         * parse.y (do_resolve_class): Updated comment to explain
6938         parameters.
6939
6940 2003-02-26  Tom Tromey  <tromey@redhat.com>
6941
6942         * jcf-write.c (generate_classfile): Check whether class is
6943         deprecated before writing attribute count.
6944
6945 2003-02-25  Roger Sayle  <roger@eyesopen.com>
6946
6947         * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
6948         built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
6949
6950 2003-02-23  Tom Tromey  <tromey@redhat.com>
6951
6952         * lang-options.h: Added -Wdeprecated.
6953         * gcj.texi (Warnings): Document -Wdeprecated.
6954         * java-tree.h (flag_deprecated): Declare.
6955         * lang.c (lang_W_options): Added deprecated.
6956         (flag_deprecated): New global.
6957         * chartables.h: Rebuilt.
6958         * gen-table.pl (process_one): Look at whitespace.
6959         (print_tables): Define LETTER_SPACE, LETTER_MASK.
6960         * parse.h (CLEAR_DEPRECATED): New macro.
6961         (CHECK_DEPRECATED_NO_RESET): New macro.
6962         * jcf-parse.c (handle_deprecated): New function.
6963         (HANDLE_DEPRECATED_ATTRIBUTE): New define.
6964         * jcf-reader.c (get_attribute): Handle Deprecated attribute.
6965         * parse.y (resolve_type_during_patch): Check deprecation.
6966         (jdep_resolve_class): Likewise.
6967         (process_imports): Likewise.
6968         (resolve_expression_name): Likewise.
6969         (check_deprecation): Strip arrays from decl.  Check
6970         flag_deprecated.
6971         (patch_method_invocation): Also check the particular constructor
6972         for deprecation.
6973         (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
6974         * jcf-write.c (append_deprecated_attribute): New function.
6975         (generate_classfile): Generate deprecated attribute when
6976         appropriate.
6977         * lex.c (java_parse_doc_section): Return type now void.  Rewrote.
6978         (java_lex) [case '*']: Simplify logic.
6979         (java_start_char_p): Use LETTER_MASK.
6980         (java_part_char_p): Likewise.
6981         (java_space_char_p): New function.
6982
6983 2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
6984
6985         Change base class access representation.
6986         * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
6987         (add_interface_do): Likewise.
6988
6989 2003-02-12  Ranjit Mathew  <rmathew@hotmail.com>
6990
6991         * decl.c (java_init_decl_processing): Change
6992         soft_lookupjnimethod_node to reflect the change in
6993         signature of _Jv_LookupJNIMethod in libjava/jni.cc
6994         * expr.c (build_jni_stub): Calculate and pass the size
6995         on the stack of the arguments to a JNI function. Use
6996         new target macro MODIFY_JNI_METHOD_CALL to allow a
6997         target to modify the call to a JNI method.
6998
6999 2003-02-08  Roger Sayle  <roger@eyesopen.com>
7000
7001         * jcf-io.c (java_or_class_file): Use libiberty's lbasename
7002         instead of basename to avoid compiler warnings on Tru64.
7003
7004 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
7005
7006         * gcj.texi: Update to GFDL 1.2.
7007
7008 2003-01-31  Andrew Haley  <aph@redhat.com>
7009
7010         * parse.y (java_expand_classes): Scan the whole class list looking
7011         for access methods that haven't yet been expanded.
7012
7013 2003-01-31 Adrian Bunk <bunk@fs.tum.de>
7014
7015         Fix for java/4269:
7016
7017         * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
7018         to fix bootstrap on sparc-unknown-netbsdelf1.5.
7019         * jcf-parse.c: Likewise.
7020
7021 2003-01-31  Mark Wielaard  <mark@klomp.org>
7022
7023         * gjavah.c (throwable_p): Allocate 1 more byte for string.
7024
7025 2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>
7026
7027         * class.c (make_class): Use BINFO_ELTS.
7028         (set_super_info): Likewse.
7029         (add_interface_do): Likewise.
7030
7031 2003-01-30  Tom Tromey  <tromey@redhat.com>
7032
7033         * jcf-parse.c (read_class): Update identifier's class value if it
7034         changed during parsing.
7035
7036 2003-01-30  Loren James Rittle  <ljrittle@acm.org>
7037
7038         * Make-lang.in (po-generated): Find the targets in $(parsedir).
7039         Propagate change to all other rules as required.
7040         (java/parse-scan.o): Add explicit dependency on
7041         $(parsedir)/java/parse-scan.c .
7042
7043 2003-01-29  Tom Tromey  <tromey@redhat.com>
7044
7045         * parse.y (patch_assignment): Only transform the rhs of an
7046         assignment when compiling to native.
7047
7048 2003-01-28  Tom Tromey  <tromey@redhat.com>
7049
7050         * jcf-write.c (generate_bytecode_conditional): Typo fixes.
7051
7052 2003-01-28  Tom Tromey  <tromey@redhat.com>
7053
7054         * lex.c (java_lex): Don't include UEOF as part of token.
7055         (java_read_unicode): Error if \u sequence prematurely terminated.
7056
7057 2003-01-27  Tom Tromey  <tromey@redhat.com>
7058
7059         * parse.y (java_check_regular_methods): Check for construct after
7060         checking types in throws clause.
7061
7062 2003-01-24  Tom Tromey  <tromey@redhat.com>
7063
7064         * class.c (build_static_field_ref): Only a String or numeric field
7065         can fold to a constant.
7066
7067 2003-01-23  Tom Tromey  <tromey@redhat.com>
7068
7069         * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
7070         file name in resource buffer.
7071
7072 2003-01-23  Tom Tromey  <tromey@redhat.com>
7073
7074         * expr.c (build_known_method_ref): Use method's context to find
7075         method table index.
7076
7077 2003-01-23  Tom Tromey  <tromey@redhat.com>
7078
7079         * constants.c (set_constant_entry): Allocated cleared memory.
7080
7081 2003-01-22  Tom Tromey  <tromey@redhat.com>
7082
7083         * java-tree.h: Don't use PARAMS.
7084         * resource.c: Add prototypes for all functions.
7085         (write_resource_constructor): Use `const char *' to avoid
7086         warning.
7087
7088 2003-01-22 Nathanael Nerode  <neroden@gcc.gnu.org>
7089
7090         * jcf-parse.c (process_zip_dir): Remove unused variable.
7091
7092 2003-01-22  Tom Tromey  <tromey@redhat.com>
7093
7094         * expr.c (build_invokeinterface): Abort if method's context is not
7095         an interface.
7096
7097 2003-01-22  Tom Tromey  <tromey@redhat.com>
7098
7099         * gcj.texi (Input and output files): Mention non-class entries.
7100         * decl.c (java_init_decl_processing): Call
7101         init_resource_processing.
7102         * java-tree.h (compile_resource_data, write_resource_constructor,
7103         compile_resource_file, init_resource_processing): Declare.
7104         * config-lang.in (gtfiles): Added resource.c.
7105         * Make-lang.in (gt-java-resource.h): New target.
7106         (JAVA_OBJS): Added resource.o.
7107         (java/resource.o): New target.
7108         * resource.c: New file.
7109         * class.c (compile_resource_file): Moved to resource.c.
7110         (registerResource_libfunc): Likewise.
7111         (utf8_decl_list): Mark with GTY; now static.
7112         * jcf-parse.c (classify_zip_file): New function.
7113         (parse_zip_file_entries): Use it; compile .properties files.
7114         (process_zip_dir): Use classify_zip_file and compute_class_name.
7115         Don't write class name into zip directory.
7116         (java_parse_file): Call write_resource_constructor.
7117         (compute_class_name): New function.
7118         * jcf-io.c (read_zip_member): Reindented.
7119
7120 2003-01-21  Tom Tromey  <tromey@redhat.com>
7121
7122         * class.c (supers_all_compiled): New function.
7123         (make_class_data): Use it.
7124
7125 2003-01-21  Tom Tromey  <tromey@redhat.com>
7126
7127         * parse.y (method_header): Native method can't be strictfp.
7128         No method can be transient or volatile.
7129
7130 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7131
7132         Make-lang.in (jvspec.o-warn): Add -Wno-error.
7133
7134 2003-01-18  Kazu Hirata  <kazu@cs.umass.edu>
7135
7136         * check-init.c: Fix comment typos.
7137         * class.c: Likewise.
7138         * constants.c: Likewise.
7139         * decl.c: Likewise.
7140         * except.c: Likewise.
7141         * expr.c: Likewise.
7142         * java-except.h: Likewise.
7143         * java-tree.h: Likewise.
7144         * javaop.h: Likewise.
7145         * jcf-dump.c: Likewise.
7146         * jcf-io.c: Likewise.
7147         * jcf-parse.c: Likewise.
7148         * jcf-write.c: Likewise.
7149         * lang.c: Likewise.
7150         * mangle.c: Likewise.
7151         * typeck.c: Likewise.
7152         * verify.c: Likewise.
7153
7154 2003-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7155
7156         * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
7157         * jcf-write.c: Include "tm_p.h".
7158
7159 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7160
7161         * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
7162
7163 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7164
7165         * builtins.c (java_build_function_call_expr): Renamed from
7166         build_function_call_expr.  All callers changed.
7167
7168         * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
7169         * jcf-parse.c: Include tm_p.h.
7170
7171         * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
7172         warning.
7173
7174 2003-01-14  Tom Tromey  <tromey@redhat.com>
7175
7176         * class.c (make_class_data): Check that super is compiled before
7177         building class reference to it.
7178
7179 2003-01-14  Andrew Haley  <aph@redhat.com>
7180
7181         * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7182         varargs function -- correct.
7183
7184 2003-01-14  Andrew Haley  <aph@redhat.com>
7185
7186         * decl.c (java_init_decl_processing): Temporarily back out previous patch.
7187
7188 2003-01-14  Andrew Haley  <aph@redhat.com>
7189
7190         * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7191         varargs function -- correct.
7192
7193         * parse.y (patch_assignment): Copy the rhs of an assignment into a
7194         temporary if the RHS is a reference.
7195
7196 2003-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7197
7198         * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
7199         * keyword.h: Regenerated.
7200
7201         * All Files: Convert to ISO C style function definitions.
7202
7203 2003-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
7204
7205         * parse.y (check_pkg_class_access): ANSIfy definition.
7206
7207 2003-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7208
7209         * decl.c, parse-scan.y, parse.y: Don't cast return value of
7210         xmalloc et al.
7211
7212         * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
7213
7214 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
7215
7216         Merge from pch-branch:
7217
7218         2002-12-02  Geoffrey Keating  <geoffk@apple.com>
7219
7220         * Make-lang.in (java/gjavah.o): Update dependencies.
7221         * gjavah.c: Include ggc.h.
7222
7223         2002-08-16  Geoffrey Keating  <geoffk@redhat.com>
7224
7225         * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
7226         (JCFDUMP_OBJS): Add ggc-none.o.
7227         (java/jcf-dump.o): Depend on GGC_H.
7228         * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
7229         CPool substructures.
7230         * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
7231         * jcf-dump.c: Include ggc.h.
7232
7233         2002-08-08  Geoffrey Keating  <geoffk@redhat.com>
7234
7235         * jcf.h (union cpool_entry): New.
7236         (struct CPool): Use gengtype to mark.  Change field 'data' to be
7237         an array of unions.
7238         (struct JCF): Use gengtype to mark.
7239         (CPOOL_UINT): Update for new cpool_entry type.
7240         (CPOOL_USHORT1): Likewise.
7241         (CPOOL_USHORT2): Likewise.
7242         (CPOOL_FINISH): Use GC to free cpool subfields.
7243         * parse.h (struct parser_ctxt): Mark field current_jcf.
7244         * lex.c (java_init_lex): Use GC to allocate struct JCF.
7245         * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
7246         (main_jcf): Use gengtype to mark.
7247         (ggc_mark_jcf): Delete.
7248         (get_constant): Update for new cpool_entry type.
7249         (give_name_to_class): Likewise.
7250         (get_class_constant): Likewise.
7251         (init_outgoing_cpool): Use GGC to allocate struct CPool.
7252         (java_parse_file): Use GGC to allocate struct JCF.
7253         (init_jcf_parse): Don't call ggc_add_root.
7254         * jcf-reader.c (jcf_parse_constant_pool): Update for new
7255         cpool_entry type.
7256         * java-tree.h (current_jcf): Use gengtype to mark.
7257         (CPOOL_UTF): Update for new cpool_entry type.
7258         (outgoing_cpool): Use gengtype to mark.
7259         (struct lang_type): GC struct JCF and struct CPool.
7260         * config-lang.in (gtfiles): Add jcf.h.
7261         * constants.c (find_tree_constant): New.
7262         (set_constant_entry): Allocate cpool subfields using GGC.  Update
7263         for new cpool_entry type.
7264         (find_constant1): Update for new cpool_entry type.
7265         (find_constant2): Likewise.
7266         (find_utf8_constant): Use find_tree_constant.
7267         (find_class_or_string_constant): Remove unnecessary cast to jword.
7268         Update for new cpool_entry type.
7269         (count_constant_pool_bytes): Update for new cpool_entry type.
7270         (write_constant_pool): Likewise.
7271         (alloc_name_constant): Use find_tree_constant.
7272         (build_constants_constructor): Update for new cpool_entry type.
7273
7274         2002-08-08  Geoffrey Keating  <geoffk@redhat.com>
7275
7276         * parse.y (mark_parser_ctxt): Delete.
7277         (goal): Don't use ggc_add_root.
7278         (create_new_parser_context): Use GC to allocate struct parser_ctxt.
7279         (java_pop_parser_context): Let GC free parser_ctxt.
7280         (java_parser_context_resume): Likewise.
7281         * parse.h (struct parser_ctxt): Use gengtype to mark.
7282         (ctxp): Likewise.
7283         (ctxp_for_generation): Likewise.
7284         * lex.h (struct java_lc_s): Mark for gengtype.
7285         (java_lexer): Rearrange for gengtype.
7286         * config-lang.in (gtfiles): Add lex.h, parse.h.
7287
7288 2003-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7289
7290         * All Files: Remove PARAMS macro.
7291
7292         * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
7293         jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
7294         `__STDC__' macros.
7295
7296         * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
7297         VA_CLOSE.
7298
7299 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
7300
7301         * Make-lang.in (java.install-common, java.uninstall,
7302         java.install-info, java.install-man): Prepend $(DESTDIR)
7303         to destination paths in all (un)installation commands.
7304         (java.install-common): Rewrite $(LN) command to support
7305         DESTDIR with "ln" as well as with "ln -s".
7306
7307 2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>
7308
7309         * java-tree.h: Protect against multiple inclusion.
7310
7311 2003-01-07  Tom Tromey  <tromey@redhat.com>
7312
7313         * class.c (add_assume_compiled): Don't adjust parent if we're
7314         already at the root of tree.
7315
7316 2003-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7317
7318         * lang.c (dump_compound_expr): Prototype.
7319
7320 2003-01-03  Tom Tromey  <tromey@redhat.com>
7321
7322         Fix for PR java/8712:
7323         * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
7324         when simply checking against `null'.
7325
7326 2003-01-03  Tom Tromey  <tromey@redhat.com>
7327
7328         * gcj.texi (Standard Properties): Document http.proxyHost and
7329         http.proxyPort.
7330
7331         * gcj.texi (GNU Classpath Properties): Document new properties.
7332
7333 2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
7334
7335         * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
7336         java/lang-options.h, java/mangle.c, java/mangle_name.c,
7337         java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
7338
7339 2003-01-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
7340
7341         * Make-lang.in, boehm.c, buffer.c,
7342           buffer.h, builtins.c, class.c,
7343           config-lang.in, constants.c,
7344           convert.h, decl.c, except.c,
7345           expr.c, java-except.h,
7346           java-tree.h, javaop.def,
7347           jcf-parse.c, jcf-write.c,
7348           jv-scan.c, jvgenmain.c,
7349           jvspec.c, keyword.gperf,
7350           keyword.h, lang-options.h,
7351           lang-specs.h, lang.c, lex.c,
7352           lex.h, mangle.c, mangle_name.c,
7353           parse-scan.y, parse.h, parse.y,
7354           typeck.c, verify.c, xref.c,
7355           xref.h: Replace "GNU CC" with
7356           "GCC" in the copyright header.
7357
7358         * check-init.c, gjavah.c, javaop.h,
7359           jcf-depend.c, jcf-dump.c, jcf-io.c,
7360           jcf-path.c, jcf-reader.c, jcf.h,
7361           zextract.c, zipfile.h: These files are
7362           "part of GCC". Also say "GCC" not "GNU CC".
7363
7364 2002-12-30  DJ Delorie  <dj@redhat.com>
7365
7366         * Make-lang.in: Protect against texi2pod/pod2man failing.
7367
7368 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7369
7370         * gcj.texi: Use @copying.
7371
7372 2002-12-27  Mark Mitchell  <mark@codesourcery.com>
7373
7374         * gjavah.c (print_name_for_stub_or_jni): Adjust call to
7375         print_cxx_classname.
7376         (print_cxx_classname): Add add_scope parameter.
7377         (print_class_decls): Do not emit a semicolon after the extern
7378         "Java" block.
7379         (process_file): Adjust calls to print_cxx_classname.
7380
7381 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
7382
7383         * gcj.texi: Include Cover Texts in man page.
7384
7385 2002-12-23  Jeff Sturm  <jsturm@one-point.com>
7386
7387         * class.c (build_static_field_ref): Check FIELD_FINAL.
7388
7389         * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
7390         instead of current_constant_pool_data_ref.
7391         * java-tree.h (current_constant_pool_data_ref): Undefine.
7392         (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
7393         * jcf-parse.c (init_outgoing_cpool): Don't initialize
7394         current_constant_pool_data_ref.
7395
7396         * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
7397         not build_internal_class_name.
7398
7399         * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
7400         Use it when class ref isn't certain to be compiled.
7401
7402 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
7403
7404         * gcj.texi: Include gcc-common.texi.
7405         * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
7406         $(srcdir)/doc/include/gcc-common.texi.
7407
7408 2002-12-22  Anthony Green  <green@redhat.com>
7409
7410         * gcj.texi (Limitations): Add note about org.xml.sax and
7411         org.w3c.dom.
7412
7413 2002-12-20  Tom Tromey  <tromey@redhat.com>
7414
7415         * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
7416         where minimum case value is Integer.MIN_VALUE.
7417         Fixes PR java/8955.
7418
7419 2002-12-18  Andrew Haley  <aph@redhat.com>
7420
7421         * parse.y (patch_invoke): Force evaluation order when `check' is
7422         set.  For PR libgcj/8945.
7423
7424 2002-12-16  Mark Mitchell  <mark@codesourcery.com>
7425
7426         * gcj.texi: Change version number to 3.4.
7427
7428 2002-12-05  Ranjit Mathew <rmathew@hotmail.com>
7429         Andrew Haley <aph@redhat.com>
7430
7431         * parse.y (source_end_java_method): Remove custom encoding of line
7432         numbers for a function decl before passing it to the back end.
7433
7434 2002-12-03  Andrew Haley  <aph@redhat.com>
7435
7436         * class.c (make_class_data): New field, "chain".
7437         * decl.c (java_init_decl_processing): Likewise.
7438
7439 2002-12-02  Tom Tromey  <tromey@redhat.com>
7440
7441         For PR java/8740:
7442         * parse.y (do_resolve_class): Handle qualified name via
7443         recursion.
7444
7445 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
7446
7447         * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
7448         constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
7449         jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
7450         jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
7451         parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
7452         Include coretypes.h and tm.h.
7453         * Make-lang.in: Update dependencies.
7454
7455 2002-11-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7456
7457         * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
7458
7459 2002-11-25  Diego Novillo  <dnovillo@redhat.com>
7460
7461         * jcf-reader.c: Don't expand JCF_readu4 inside the
7462         expansion of JCF_SKIP.
7463
7464 2002-11-25  Diego Novillo  <dnovillo@redhat.com>
7465
7466         * jcf-reader.c: Don't expand JCF_readu4 inside the
7467         expansion of JCF_SKIP.
7468
7469 2002-11-22  Tom Tromey  <tromey@redhat.com>
7470
7471         * parse.y (patch_binop): Cast right hand side of shift expression
7472         to `int'.  Fixes PR java/8676.
7473
7474 2002-11-22  Ranjit Mathew <rmathew@hotmail.com>
7475             Andrew Haley <aph@redhat.com>
7476
7477         * gcc/java/jcf-write.c (write_classfile): Remove target
7478         class file, if it exists, before renaming the temporary
7479         class file to it.
7480
7481 2002-11-19  Jason Thorpe  <thorpej@wasabisystems.com>
7482
7483         * jvspec.c (lang_specific_spec_functions): New.
7484
7485 2002-11-18  Tom Tromey  <tromey@redhat.com>
7486
7487         Fix for PR java/7912:
7488         * expr.c (can_widen_reference_to): Allow cast of array to
7489         Cloneable or Serializable.
7490         * java-tree.h (java_lang_cloneable_identifier_node): Declare.
7491         (java_io_serializable_identifier_node): Likewise.
7492         * parse.y (java_lang_cloneable, java_io_serializable): Removed.
7493         (valid_ref_assignconv_cast_p): Use new identifier nodes.
7494         * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
7495         java_io_serializable.
7496         * decl.c (java_init_decl_processing): Initialize
7497         java_lang_cloneable_identifier_node and
7498         java_io_serializable_identifier_node.
7499         (java_lang_cloneable_identifier_node): New global.
7500         (java_io_serializable_identifier_node): Likewise.
7501
7502 2002-11-14  Jens-Michael Hoffmann  <jensmh@gmx.de>
7503
7504         * buffer.c: Remove unnecessary casts.
7505         * check-init.c: Likewise.
7506         * class.c: Likewise.
7507         * constants.c: Likewise.
7508         * decl.c: Likewise.
7509         * except.c: Likewise.
7510         * gjavah.c: Likewise.
7511         * jcf-io.c: Likewise.
7512         * jcf-parse.c: Likewise.
7513         * jcf-path.c: Likewise.
7514         * jvspec.c: Likewise.
7515         * lang.c: Likewise.
7516         * lex.c: Likewise.
7517         * verify.c: Likewise.
7518
7519 2002-11-06  Tom Tromey  <tromey@redhat.com>
7520
7521         * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
7522         a JNI header.
7523
7524 2002-11-05  Tom Tromey  <tromey@redhat.com>
7525
7526         Fix for PR java/6388.
7527         * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
7528         * java-tree.h (enum java_tree_index): New values
7529         JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
7530         (decimal_int_max, decimal_long_max): New defines.
7531         * lex.c (yylex): Rewrote range checking.  Sign extend literals.
7532         (error_if_numeric_overflow): Rewrote range checking.
7533         * decl.c (java_init_decl_processing): Initialize decimal_int_max,
7534         decimal_long_max.
7535
7536 2002-11-02  Tom Tromey  <tromey@redhat.com>
7537
7538         * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
7539
7540         * class.c (make_method_value): Put class name, not signature, into
7541         `throws' field.  For PR java/8415.
7542
7543 2002-10-24  Tom Tromey  <tromey@redhat.com>
7544
7545         * gcj.texi (Invoking gij): Document --showversion.
7546         (Standard Properties): java.library.path now set.
7547
7548 2002-10-23  Tom Tromey  <tromey@redhat.com>
7549
7550         * gjavah.c (decode_signature_piece): In JNI mode, print
7551         `jobjectArray' when array depth is nonzero.
7552         Fixes PR java/8296.
7553
7554 2002-10-15  Andrew Haley  <aph@redhat.com>
7555
7556         * parse.y (patch_invoke): Call force_evaluation_order on a static
7557         arg list.
7558         (resolve_qualified_expression_name): Call force_evaluation_order
7559         on a arg list that is part of a Qualified Expression Name.
7560
7561         * lang.c (dump_compound_expr): New.
7562         (java_dump_tree): New.
7563
7564 2002-10-20  Ranjit Mathew <rmathew@hotmail.com>
7565
7566         * gcj.texi: Added item describing the GCJ runtime property
7567         "gnu.gcj.progname".
7568
7569 2002-10-15  Richard Henderson  <rth@redhat.com>
7570
7571         * jcf-parse.c (get_constant): Fix type warning.
7572
7573 2002-10-15  Andrew Haley  <aph@redhat.com>
7574
7575         * java-tree.h (java_inlining_merge_static_initializers): Declare.
7576         (java_inlining_map_static_initializers): Declare.
7577
7578 2002-10-14  Andrew Haley  <aph@redhat.com>
7579
7580         * tree-inline.c (remap_block): All local class initialization
7581         flags go in the outermost scope.
7582         (expand_call_inline): Call java_inlining_map_static_initializers.
7583         (expand_call_inline): Call java_inlining_merge_static_initializers.
7584         * java/lang.c (merge_init_test_initialization): New.
7585         (java_inlining_merge_static_initializers): New.
7586         (inline_init_test_initialization): New.
7587         (java_inlining_map_static_initializers): New.
7588
7589 2002-10-11  Mark Wielaard  <mark@klomp.org>
7590
7591         * gcj.texi (Compatibility): Add Limitations and Extensions section.
7592
7593 2002-10-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7594
7595         * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
7596
7597 2002-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7598
7599         * parse.y (merge_string_cste): Add parentheses around & within |.
7600
7601 2002-10-08  Tom Tromey  <tromey@redhat.com>
7602
7603         * parse.y (variable_declarator_id): Simplify error path for
7604         array declarator error.  For PR java/8003.
7605
7606 2002-10-08  Zack Weinberg  <zack@codesourcery.com>
7607
7608         * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
7609         bug_report_url.
7610
7611 2002-10-08  Andrew Haley  <aph@redhat.com>
7612
7613         * parse.y (attach_init_test_initialization_flags): Check for
7614         error_mark_node.
7615
7616 2002-10-07  Anthony Green  <green@redhat.com>
7617
7618         * parse.y (merge_string_cste): Fix bug in string concatenation.
7619
7620 2002-10-03  Michael Koch  <konqueror@gmx.de>
7621
7622         * gcj.texi (Standard properties):
7623         Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
7624
7625 2002-10-02  Roger Sayle  <roger@eyesopen.com>
7626
7627         PR optimization/6627
7628         * lang.c (java_init): If storing the vbit in function
7629         pointers, ensure that force_align_functions_log is atleast
7630         one to aid compatability with g++ vtables.
7631
7632 2002-10-01  Nathan Sidwell  <nathan@codesourcery.com>
7633
7634         * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
7635         foul of type-based aliasing.
7636
7637 2002-09-30  Anthony Green  <green@redhat.com>
7638
7639         * gcj.texi (Invoking jv-scan): Fix texinfo.
7640
7641 2002-09-28  Anthony Green  <green@redhat.com>
7642
7643         * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
7644         (Code Generation): Add -fno-assert documentation.
7645         * jv-scan.c (flag_assert): New global.
7646         (options): Add assert option.
7647         (help): Add --no-assert documentation.
7648         * parse-scan.y (flag_assert): New global.
7649         * lang.c (lang_f_options): Add -fassert/-fno-assert support.
7650         (flag_assert): New global.
7651         * java-tree.h (flag_assert): New global.
7652         * lex.c (java_lex): Obey flag_assert.
7653         * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
7654         calling cc1.
7655
7656 2002-09-26  Andrew Haley  <aph@redhat.com>
7657
7658         * expr.c (build_java_array_length_access): Check for null pointer.
7659         * expr.c (expand_java_arrayload): Likewise.
7660
7661 2002-09-21  Richard Henderson  <rth@redhat.com>
7662
7663         * jcf-parse.c (get_constant): Decode from IEEE no matter
7664         what the target format.
7665
7666 2002-09-20  Kazu Hirata  <kazu@cs.umass.edu>
7667
7668         * ChangeLog: Follow spelling conventions.
7669         * class.c: Likewise.
7670         * decl.c: Likewise.
7671         * expr.c: Likewise.
7672         * gjavah.c: Likewise.
7673         * java-tree.h: Likewise.
7674         * jcf-dump.c: Likewise.
7675         * jcf-parse.c: Likewise.
7676         * jvspec.c: Likewise.
7677         * lang.c: Likewise.
7678         * mangle.c: Likewise.
7679         * parse.y: Likewise.
7680
7681 2002-09-17  Tom Tromey  <tromey@redhat.com>
7682
7683         * lex.c (java_read_unicode_collapsing_terminators): Handle case
7684         where \r appears at EOF.  Fixes PR java/7950.
7685
7686 2002-09-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7687
7688         * jvspec.c (lang_specific_driver): Remove unused variable.
7689
7690 2002-09-16  Geoffrey Keating  <geoffk@apple.com>
7691
7692         * java-tree.h (union lang_tree_node): Add chain_next option.
7693
7694 2002-09-16  Richard Henderson  <rth@redhat.com>
7695
7696         * jcf-parse.c (get_constant): Runtime check for IEEE format;
7697         use new real.h interface.
7698         * jcf-write.c (find_constant_index): Use new real.h interface.
7699         * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
7700
7701 2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>
7702
7703         * lang.c: Follow spelling conventions.
7704
7705 2002-09-11  Per Bothner  <per@bothner.com>
7706
7707         * parse.y (fold_constant_for_init):  If a VAR_DECL, convert numerical
7708         constant to the type of the field.
7709         (java_complete_tree):  Remove now-redundant code.
7710
7711         * parse.y (fold_constant_for_init):  'null' is not a constant expr.
7712
7713 2002-09-03  Jesse Rosenstock  <jmr@ugcs.caltech.edu>
7714
7715         For PR java/5794:
7716         * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
7717         return label if a ret instruction for the jsr has been reached.
7718
7719 2002-09-09  Ranjit Mathew  <rmathew@hotmail.com>
7720
7721         * parse.y (DIR_SEPARATOR): Don't define.
7722         (check_class_interface_creation): Use IS_DIR_SEPARATOR.
7723
7724 2002-08-28  Andrew Haley  <aph@redhat.com>
7725
7726         * verify.c (verify_jvm_instructions): Allow exception handler
7727         inside code that is being protected, but generate a warning.
7728         * except.c (link_handler): Initialize `expanded' in new eh_range.
7729         (binding_depth, is_class_level, current_pc): Declare extern.
7730
7731 2002-09-01  Mark Wielaard <mark@klomp.org>
7732
7733         * gcj.texi: Add chapter about system properties.
7734         Fixed some typos.
7735
7736 2002-08-26  Tom Tromey  <tromey@redhat.com>
7737
7738         * parse.y (try_builtin_assignconv): Allow narrowing primitive
7739         conversion if RHS_TYPE is byte, short, or char.
7740
7741 2002-08-22  Tom Tromey  <tromey@redhat.com>
7742
7743         * gcj.texi (Invoking gij): Document -cp and -classpath.
7744
7745 2002-08-21  Tom Tromey  <tromey@redhat.com>
7746
7747         * Make-lang.in (java/jcf-path.o): Use $(datadir), not
7748         $(prefix)/share.  For PR libgcj/7633.
7749
7750         For PR java/6005 and PR java/7611:
7751         * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
7752         (java_can_use_bit_fields_p): New function.
7753
7754 2002-08-16  Tom Tromey  <tromey@redhat.com>
7755
7756         * gcj.texi (Class Initialization): Mention class initialization of
7757         arrays.
7758
7759 2002-07-30  Andrew Haley  <aph@cambridge.redhat.com>
7760
7761         * Make-lang.in (java-tree-inline.o): New.
7762         (JAVA_OBJS): Add java-tree-inline.o.
7763         * parse.y (source_end_java_method): Call java_optimize_inline.
7764         (java_expand_method_bodies): Save method's tree in
7765         DECL_SAVED_TREE.
7766         (add_stmt_to_compound): Keep track of the number of statments.
7767         * lang.c (java_init): Enable flag_inline_trees.
7768         (java_post_options): If flag_inline_functions is on, enable
7769         flag_inline_trees instread.
7770         (decl_constant_value): New.
7771         (java_tree_inlining_walk_subtrees): New.
7772         * java-tree.h (DECL_NUM_STMTS): New macro.
7773         (java_optimize_inline): Declare.
7774         * expr.c (java_expand_expr): Allow a BLOCK to return a value.
7775         Handle a LABEL_EXPR.
7776         * decl.c (build_result_decl): If we already have a DECL_RESULT
7777         don't make another.
7778         (dump_function): New.
7779         (java_optimize_inline): New.
7780         (dump_function): New.
7781
7782 2002-08-13  Jesse Rosenstock  <jmr@fulcrummicro.com>
7783
7784         For PR java/7483:
7785         * parse.y (build_assertion): Invert return from
7786         desiredAssertionStatus.
7787
7788 2002-08-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
7789
7790         * jcf-write.c (get_access_flags): Return correct access flags for
7791         private and protected inner classes.
7792
7793 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
7794
7795         * java/Make-lang.in (java.mostlyclean): Remove coverage files.
7796
7797 2002-08-05  Geoffrey Keating  <geoffk@redhat.com>
7798
7799         * mangle_name.c: Don't include obstack.h twice.
7800         * xref.c: Don't include obstack.h.
7801
7802 2002-08-04  Geoffrey Keating  <geoffk@redhat.com>
7803
7804         * class.c: (permanent_obstack): Delete declaration.
7805         * constants.c: (permanent_obstack): Delete declaration.
7806         * except.c: (permanent_obstack): Delete declaration.
7807         * expr.c: (permanent_obstack): Delete declaration.
7808         * jcf-parse.c: (permanent_obstack): Delete declaration.
7809         (saveable_obstack): Delete declaration.
7810         * parse.h: (permanent_obstack): Delete declaration.
7811         * typeck.c: (permanent_obstack): Delete declaration.
7812
7813 2002-08-04  Joseph S. Myers  <jsm@polyomino.org.uk>
7814
7815         * gcj.texi (version-gcc): Increase to 3.3.
7816
7817 2002-07-22  Tom Tromey  <tromey@redhat.com>
7818
7819         * lex.c (java_lex): Check for `e' or `E' after 0.
7820
7821 2002-07-21  Richard Henderson  <rth@redhat.com>
7822
7823         * lang.c (java_unsafe_for_reeval): New.
7824         (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
7825
7826 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
7827
7828         * jcf-path.c (GET_ENV_PATH_LIST): Remove.
7829         (jcf_path_init): Use GET_ENVIRONMENT.
7830
7831 2002-07-10  Roger Sayle  <roger@eyesopen.com>
7832             Zack Weinberg <zack@codesourcery.com>
7833
7834         * builtins.c (initialize_builtins): Remove defines that
7835         handled C/C++ specific junk hereby removed from builtins.def.
7836
7837 2002-07-07  Neil Booth  <neil@daikokuya.co.uk>
7838
7839         * lang.c (java_post_options): Update prototype.
7840
7841 2002-07-05  Roger Sayle  <roger@eyesopen.com>
7842
7843         * builtins.c (initialize_builtins): Ignore the additional
7844         parameter to DEF_BUILTIN.  Handle more C/C++ specific junk in
7845         the builtins.def file.
7846
7847 2002-07-01  Tom Tromey  <tromey@redhat.com>
7848
7849         For PR libgcj/7073:
7850         * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
7851         specially.
7852
7853 2002-07-01  Roger Sayle  <roger@eyesopen.com>
7854
7855         * java/decl.c (builtin_function): Accept additional parameter.
7856         (java_init_decl_processing): Pass an additional NULL_TREE
7857         argument to builtin_function.
7858
7859 2002-06-29  T.J. Mather  <tjmather@maxmind.com>
7860
7861         * gcj.texi: Fixed gcj invocation example so that it compiles.
7862
7863 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7864
7865         * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
7866         * parse.y (mark_parser_ctxt): Likewise.
7867         (check_modifiers, declare_local_variables): Avoid incorrect
7868         hardcoded constant 10.
7869
7870         * lex.c (java_read_char): Avoid "comparison is always true"
7871         warning.
7872
7873 2002-06-25  Andreas Schwab  <schwab@suse.de>
7874
7875         * expr.c (JSR): Avoid undefined operation on PC.
7876
7877 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7878
7879         * decl.c (clear_binding_level): Const-ify.
7880
7881 2002-06-13  Akim Demaille  <akim@epita.fr>
7882
7883         * parse.y (class_declaration, interface_declaration): Make sure
7884         all their rules have an action, in order to avoid meaningless `$$
7885         = $1' and their type clashes.
7886
7887 2002-06-11  Tom Tromey  <tromey@redhat.com>
7888
7889         * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
7890         * parse-scan.y (statement_without_trailing_substatement): Added
7891         assert_statement.
7892         (assert_statement): New rule.
7893         * java-tree.h (struct lang_type) [assertions]: New field.
7894         (TYPE_USES_ASSERTIONS): New macro.
7895         (CLASS_USES_ASSERTIONS): Likewise.
7896         (FIELD_SYNTHETIC): New define.
7897         * lex.c (java_lval;): Added ASSERT_TK.
7898         * parse.y (ASSERT_TK): Added.
7899         (statement_without_trailing_substatement): Added assert_statement.
7900         (assert_statement): New rule.
7901         (build_assertion): New function.
7902         (maybe_generate_pre_expand_clinit): Create and initialize
7903         $assertionsDisabled.
7904         (lookup_package_type): Removed decl.
7905         * keyword.h: Rebuilt.
7906         * keyword.gperf (assert): New token.
7907
7908 2002-06-10  Akim Demaille  <akim@epita.fr>
7909
7910         * parse.y (interface_type_list, class_member_declaration)
7911         (unary_expression_not_plus_minus): Remove duplicate %type.
7912         Whitespace changes.
7913
7914 2002-06-09  Tom Tromey  <tromey@redhat.com>
7915
7916         * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
7917
7918         * parse.y (method_header): Give error message in all cases.
7919         Fixes PR java/6865.
7920
7921 2002-06-10  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
7922
7923         Don't use RTL inlining. Fix for PR java/6820.
7924         * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
7925         (flag_really_inline): New.
7926         (java_decode_option): Set flag_really_inline if -finline-functions
7927         is seen.
7928         (java_post_options): New function. Turn off inlining unless
7929         flag_really_inline is set.
7930
7931 2002-06-10  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
7932
7933         * gjavah.c (throwable_p): Accept argument as either a classname or
7934         signature fragment. Create null-terminated classname string for super
7935         when calling itself recursively.
7936         (decode_signature_piece): Skip first character from class name
7937         signature when calling throwable_p.
7938
7939 2002-06-08  H.J. Lu  (hjl@gnu.org)
7940
7941         * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
7942
7943 2002-06-04  Tom Tromey  <tromey@redhat.com>
7944
7945         * jcf-write.c (perform_relocations): Optmize a goto to a goto.
7946
7947 2002-06-04  Michael Koch  <konqueror@gmx.de>
7948
7949         * gcj.texi (Input Options): Fixed typo.
7950
7951 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
7952
7953         * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
7954         typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
7955         all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
7956         and all now-pointless local variables.  Rename other local
7957         variables to reflect their not being handles.
7958
7959         * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
7960         #if JCF_USE_STDIO blocks.
7961
7962         * parse.y: Add missing semicolon at end of rule.
7963
7964 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
7965
7966         * check-init.c (attach_initialized_static_class): Delete, unused.
7967         * parse.y: Use htab_t instead of struct hashtable, update
7968         all uses.
7969         * java-tree.h: Include hashtab.h instead of hash.h.
7970         (struct lang_decl_func): Use htab_t, set up for gengtype.
7971         (struct init_test_hash_entry): Delete.
7972         (struct treetreehash_entry): New.
7973         (java_treetreehash_find): New
7974         (java_treetreehash_new): New prototype.
7975         (java_treetreehash_create): New prototype.
7976         (java_mark_tree): Delete prototype.
7977         (java_hash_hash_tree_node): Delete prototype.
7978         (java_hash_compare_tree_node): Delete prototype.
7979         (attach_initialized_static_class): Delete prototype.
7980         * expr.c (build_class_init): Update to use java_treetreehash
7981         functions.
7982         (java_expand_expr): Update to use htab_t.
7983         (emit_init_test_initialization): Likewise.
7984         * decl.c (java_mark_tree): Delete.
7985         * class.c (init_test_hash_newfunc): Delete.
7986         (java_hash_hash_tree_node): Delete.
7987         (java_hash_compare_tree_node): Delete.
7988         (add_method_1): Update to use java_treetreehash functions.
7989         (JAVA_TREEHASHHASH_H): New macro.
7990         (java_treetreehash_hash): New function.
7991         (java_treetreehash_compare): New function.
7992         (java_treetreehash_find): New function.
7993         (java_treetreehash_new): New function.
7994         (java_treetreehash_create): New function.
7995         * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
7996
7997         * Make-lang.in (java/parse.o): Depend on debug.h.
7998         * java-tree.h (struct lang_identifier): Use gengtype.
7999         (union lang_tree_node): New.
8000         (struct lang_decl_func): Use gengtype.
8001         (struct lang_decl_var): Likewise.
8002         (struct lang_decl): Likewise.
8003         * parse.y: Include debug.h.
8004         * lang.c (LANG_HOOKS_MARK_TREE): Delete.
8005
8006         * lang.c (struct language_function): New dummy structure.
8007
8008         * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
8009         descriminator for DECL_LANG_SPECIFIC.
8010         (struct lang_decl_func): Rename from struct lang_decl.
8011         (enum lang_decl_desc): New.
8012         (struct lang_decl): Make it a union.  Update all the accessor macros.
8013         (struct lang_type): Use gengtype.
8014         * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
8015         * decl.c (java_dup_lang_specific_decl): All lang_decl structures
8016         are now the same size.
8017         (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
8018         use discriminator to mark DECL_LANG_SPECIFIC.
8019
8020         * Make-lang.in (gt-java-builtins.h): New rule.
8021         (java/builtins.o): Add dependency on gt-<filename>.h.
8022         * builtins.c: Use gengtype for roots.
8023         (union string_or_tree): Use gengtype.
8024         (struct builtin_record): Use gengtype.
8025         * config-lang.in (gtfiles): Add builtins.c.
8026
8027         * Make-lang.in (gt-java-class.h, gt-java-constants.h,
8028         gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
8029         gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
8030         gt-java-parse.h, gtype-java.h): Add rules to generate.
8031         (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
8032         (class.o): Add dependency on gt-*.h.
8033         (constants.o): Likewise.
8034         (decl.o): Likewise.
8035         (expr.o): Likewise.
8036         (jcf-parse.o): Likewise.
8037         (jcf-write.o): Likewise.
8038         (lang.o): Likewise.
8039         * config-lang.in (gtfiles): New.
8040         * class.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8041         * constants.c: Replace uses of ggc_add_* with GTY markers.
8042         Include gt-*.h.
8043         * decl.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8044         * expr.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8045         * java-tree.h: Replace uses of ggc_add_* with GTY markers.
8046         * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
8047         Include gt-*.h.
8048         * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
8049         Include gt-*.h.
8050         * lang.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8051         * mangle.c: Replace uses of ggc_add_* with GTY markers.  Include
8052         gt-*.h.
8053         * parse.y: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8054         Include gtype-java.h.
8055
8056 2002-06-02  Tom Tromey  <tromey@redhat.com>
8057
8058         Fix for PR java/5913:
8059         * parse.y (patch_binop): Call patch_string on op1.
8060
8061 2002-06-02  Tom Tromey  <tromey@redhat.com>
8062
8063         Fix for PR java/1343, PR java/6336:
8064         * parse.y (make_nested_class_name): Remove extraneous `else'; fix
8065         formatting.  Changed return type.
8066         (anonymous_class_counter): Moved to top of file.
8067         (maybe_make_nested_class_name): Append number to class name for
8068         function-local classes.
8069
8070 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
8071
8072         * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
8073         * Make-lang.in: Update dependency lists.
8074
8075 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
8076
8077         * gjavah.c (throwable_p): Do not free the name of the class after
8078         passing it to find_class.
8079         * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
8080         * jcf-io.c (dirent.h): Include it.
8081         (fnmatch.h): Likewise.
8082         (compare_path): New function.
8083         (java_or_class_file): Likewise.
8084         (memoized_dirlist_entry): New type.
8085         (memoized_dirlist_lookup_eq): New function.
8086         (memoized_dirlists): New variable.
8087         (caching_stat): New function.
8088         (memoized_class_lookup_eq): New function.
8089         (memoized_class_lookups): Likewise.
8090         (find_class): Use memoized_class_lookups and caching_stat.
8091         * jcf.h (JCF_USE_SCANDIR): Define.
8092         * parse.y (java_expand_classes): Write the class files in reverse
8093         order.
8094
8095 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8096
8097         * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
8098
8099 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
8100
8101         * jcf-write.c (write_classfile): Unlink the temporary file if it
8102         cannot be renamed.  Use concat to build up the name of the
8103         temporary file.
8104
8105 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
8106
8107         * jcf-write.c (write_classfile): Write the file to a
8108         temporary file and then rename it.
8109
8110 2002-05-07  Tom Tromey  <tromey@redhat.com>
8111
8112         * gjavah.c (throwable_p): Use xstrdup, not strdup.
8113
8114         Fix for PR java/1200:
8115         * gjavah.c (throwable_p): New function.
8116         (decode_signature_piece): Use it.  A `WeakReference' isn't the
8117         same as a `jweak'.
8118         Include hashtab.h.
8119         (gcjh_streq): New function.
8120
8121 2002-05-07  Andreas Jaeger  <aj@suse.de>
8122
8123         * parse.y (finish_for_loop): Fix if statement.
8124
8125 2002-05-06  Tom Tromey  <tromey@redhat.com>
8126
8127         Fix for PR java/5941:
8128         * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
8129         loop update expression.
8130         (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
8131         * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
8132
8133 2002-05-04  Mark Wielaard  <mark@klomp.org>
8134
8135         For PR java/6519:
8136         * parse.y (build_string_concatenation): Return just op1 only when op2
8137         is null and op1 is a STRING_CST, otherwise always construct a
8138         StringBuffer.
8139
8140 2002-04-27  Tom Tromey  <tromey@redhat.com>
8141
8142         For PR java/6382:
8143         * parse.y (string_convert_int_cst): New function.
8144         (merge_string_cste): Use it.
8145
8146 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
8147
8148         * java-tree.h (java_parse_file): Update.
8149         (java_set_yydebug): Remove.
8150         * jcf-parse.c (yydebug): Remove.
8151         (java_set_yydebug): Die.
8152         (java_parse_file): Update.
8153         * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
8154
8155 2002-04-24  Tom Tromey  <tromey@redhat.com>
8156
8157         For PR java/6425:
8158         * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
8159         EXPR_WFL_QUALIFICATION of qual_wfl.
8160
8161 2002-04-23  Per Bothner  <per@bothner.com>
8162
8163         * expr.c (PRE_JSR):  Call NOTE_LABEL for return address.
8164         * java-tree.h (BCODE_RETURN_TARGET):  Removed - never set.
8165         (BCODE_TARGET):  Remove BCODE_RETURN_TARGET.
8166
8167 2002-04-23  Tom Tromey  <tromey@redhat.com>
8168
8169         For PR java/6314:
8170         * jvspec.c (lang_specific_driver): Use --resource, not -R.  Also
8171         recognize `-fcompile-resource='.
8172         * gcj.texi (Invoking gcj): Use --resource, not -R.  Expanded text
8173         a bit.
8174
8175 2002-04-22  Alexandre Petit-Bianco  <apbianco@redhat.com>
8176
8177         * jcf-parse.c: (yyparse): Don't prepend "./" to relative
8178         paths. Fixes PR java/2791.
8179
8180 2002-04-19  Andrew Haley  <aph@redhat.com>
8181
8182         * jcf-write.c (push_long_const): lo, hi: New variables.
8183         Use rshift_double to extract the high part of a 64-bit long.
8184         Use WORD_TO_INT to extract the low part.
8185
8186         * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
8187         HOST_WIDE_INT for num.  Use JPOOL_UINT to get it.
8188         CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
8189
8190 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
8191
8192         * typeck.c (incomplete_type_error): Remove.
8193
8194 2002-04-18  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8195
8196         * class.c (make_class_data): Set DECL_ALIGN on static class data,
8197         for hash synchronization.
8198         * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
8199         * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
8200         class_type_node.
8201
8202 2002-04-16  Mark Wielaard  <mark@klomp.org>
8203
8204         * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
8205         negative zero.
8206
8207 2002-04-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8208
8209         Fix for PR java/6294:
8210         * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
8211         interfaces.
8212
8213 2002-04-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8214
8215         Fix for PR java/6085:
8216         * parse.y (patch_method_invocation): Always use build_access_to_thisn
8217         to get enclosing "this" argument for inner-class constructor
8218         invocation. Pass correct arguments to build_access_to_thisn.
8219
8220 2002-04-10  Andreas Jaeger  <aj@suse.de>
8221
8222         * gcj.texi (Input Options): Fix extdirs patch.
8223
8224 2002-04-10  Anthony Green  <green@redhat.com>
8225
8226         * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
8227
8228 2002-04-09  Anthony Green  <green@redhat.com>
8229
8230         * gcj.texi (Input Options): Add --extdirs documentation.
8231         * jcf-dump.c (OPT_extdirs): New macro.
8232         (options): Add extdirs option.
8233         (help): Describe --extdirs.
8234         (main): Handle OPT_extdirs.
8235         * gjavah.c (OPT_extdirs): New macro.
8236         (options): Add extdirs option.
8237         (help): Describe --extdirs.
8238         (main): Handle OPT_extdirs.
8239         * jcf-path.c (jcf_path_init): Add extdirs support.
8240         (jcf_path_extdirs_arg): New function.
8241         (extensions): New variable to hold extensions path entries.
8242         * jvspec.c: Remove -fextdirs= when compiling main().
8243         * lang.c (java_decode_option): Handle -fextdirs=.
8244         * jcf.h (jcf_path_extdirs_arg): Declare new function.
8245         * Make-lang.in: Compile jcf-path with version info for use in
8246         identifying the appropriate libgcj.jar.
8247
8248 2002-04-08  Tom Tromey  <tromey@redhat.com>
8249
8250         For PR libgcj/5303:
8251         * .cvsignore: Added rmic.1 and rmiregistry.1.
8252         * gcj.texi (Top): Link to new nodes.
8253         (Invoking rmic): New node.
8254         (Invoking rmiregistry): Likewise.
8255         * Make-lang.in (java.generated-manpages): Added rmic.1 and
8256         rmiregistry.1.
8257         (java.maintainer-clean): Likewise.
8258         ($(srcdir)/java/rmic.1): New target.
8259         ($(srcdir)/java/rmiregistry.1): Likewise.
8260         (java.install-man): Handle rmic.1 and rmiregistry.1.
8261
8262 2002-04-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8263
8264         * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
8265         Add note about handling uncaught exceptions. Add an exception handler
8266         to example.
8267
8268 2002-04-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8269
8270         * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
8271         after using it to patch CALL_EXPR.
8272
8273 2002-04-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8274
8275         * gcj.texi (Invocation): Document CNI invocation API.
8276
8277 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
8278
8279         * expr.c (truthvalue_conversion): Rename.  Update.
8280         (expand_compare): Update.
8281         * java-tree.h (java_truthvalue_conversion): New.
8282         * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
8283
8284 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
8285
8286         * java-tree.h (java_mark_addressable): New.
8287         * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
8288         * typeck.c (mark_addressable): Rename, update.
8289
8290 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
8291
8292         * expr.c (build_java_binop): Update.
8293         * java-tree.h (java_signed_type, java_unsigned_type,
8294         java_signed_or_unsigned_type): Update.
8295         * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
8296         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
8297         * parse.y (patch_binop): Update.
8298         * typeck.c (signed_or_unsigned_type, unsigned_type,
8299         signed_type): Update.
8300
8301 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
8302
8303         * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
8304         (java_dummy_print): Remove.
8305         (lang_print_error): Rename.  Exit early if inhibiting output.
8306         (inhibit_error_printing_function): New.
8307         (java_init): Don't set hook.
8308         (lang_init_source): Use new boolean.
8309
8310 2002-03-29  Martin Kahlert  <martin.kahlert@infineon.com>
8311
8312         * parse.y (do_resolve_class): Fix infinite recursion.
8313
8314 2002-03-29  Tom Tromey  <tromey@redhat.com>
8315
8316         * parse.y (check_inner_circular_reference): Ignore incomplete
8317         types.
8318
8319 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8320
8321         * Make-lang.in (builtins.o): Update.
8322         * boehm.c (get_boehm_type_descriptor): Update.
8323         * builtins.c: Include langhooks.h.
8324         * decl.c (java_init_decl_processing): Update.
8325         * java-tree.h (java_type_for_mode, java_type_for_size): New.
8326         * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
8327         Redefine.
8328         * typeck.c (type_for_mode, type_for_size): Update.
8329
8330 2002-03-29  Martin Kahlert  <martin.kahlert@infineon.com>
8331
8332         * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
8333
8334 2002-03-28  Tom Tromey  <tromey@redhat.com>
8335
8336         * except.c (expand_end_java_handler): If the handler type is NULL,
8337         use java.lang.Throwable.  Fixes PR java/5986.
8338
8339 2002-03-28  Alexandre Petit-Bianco  <apbianco@redhat.com>
8340
8341         Fix for PR java/4715:
8342         * jcf-parse.c (parse_source_file_3): New function.
8343         (read_class): Call it.
8344         (java_parse_file): Likewise.
8345
8346 2002-03-28  Jan Hubicka  <jh@suse.cz>
8347
8348         * java/lang.c (java_init_options): Set flag_trapping_math to 0.
8349
8350 2002-03-28  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8351
8352         * parse.y (resolve_package): Initialize "decl".
8353         (lookup_package_type): Remove unused function.
8354
8355 2002-03-28  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8356
8357         Fix for PR java/5993:
8358         * parse.y (resolve_package): Return the decl if resolution was
8359         successful. Don't special case "java.lang" and "java.lang.reflect"
8360         packages. Set type_name to the merged identifier.
8361         (resolved_qualified_expression_name): Print error using "name" if
8362         resolve_package returns NULL_TREE.
8363
8364 2002-03-27  Tom Tromey  <tromey@redhat.com>
8365
8366         * expr.c (expand_invoke): Don't generate null pointer check if
8367         we're calling <init>.
8368
8369 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
8370
8371         * expr.c (java_lang_expand_expr): Rename java_expand_expr,
8372         fix prototype.
8373         * java-tree.h (java_lang_expand_expr): Similarly.
8374         * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
8375         (java_init): Don't set hook.
8376
8377 2002-03-27  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8378
8379         Fix for PR java/5850:
8380         * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
8381         context if field was not found in the current scope.
8382         * expr.c (lookup_field): Don't look in enclosing contexts.
8383
8384 2002-03-26  Tom Tromey  <tromey@redhat.com>
8385
8386         Fix for PR java/5942:
8387         * parse.y (init_src_parse): Added sanity check.
8388         * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
8389         elements, not 11.
8390
8391 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
8392
8393         * decl.c (lang_mark_tree): Rename java_mark_tree.
8394         * java-tree.h (java_mark_tree): New.
8395         * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
8396
8397 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
8398
8399         * lex.c: Change java_perform_atof to take normal parameters
8400         instead of a pointer to a parameter block.  Call it directly
8401         from java_lex.
8402
8403 2002-03-22  Mark Wielaard  <mark@klomp.org>
8404
8405         Fix for PR java/5368:
8406         * parse.y (resolve_qualified_expression_name): Use decl not field_decl
8407         when printing error message.
8408
8409 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
8410
8411         * decl.c (maybe_build_cleanup): Remove.
8412
8413 2002-03-22  Tom Tromey  <tromey@redhat.com>
8414
8415         Andrew Haley  <aph@cambridge.redhat.com>
8416
8417         * expr.c (build_field_ref): Don't build a check if the field is a
8418         member of `this'.
8419
8420 2002-03-21  Eric Blake  <ebb9@email.byu.edu>
8421
8422         Fix for PR java/6026:
8423         * lex.c (java_lex): Fix parsing of consecutive floats.
8424
8425 2002-03-21  Tom Tromey  <tromey@redhat.com>
8426
8427         * parse.y (build_access_to_thisn): Stop when FROM is not an inner
8428         class.
8429
8430 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8431
8432         * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
8433         insert_block, getdecls, kept_level_p, global_bindings_p): New.
8434
8435 2002-03-20  Nic Ferrier  <nferrier@tapsellferrier.co.uk>
8436
8437         * gcj.texi: @code{gcj} becomes @command{gcj}.
8438         @code{gcc} becomes @command{gcc}.
8439         GcjRaw changed to gnu.gcc.RawData.
8440
8441 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
8442
8443         * decl.c (start_java_method): Use new hook.
8444         * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
8445         (java_init): Remove old hook.
8446
8447 2002-03-18  Alexandre Petit-Bianco  <apbianco@redhat.com>
8448
8449         * builtins.c (define_builtin): Do nothing if `type' is null.
8450         Fixes PR java/5876.
8451
8452 2002-03-18  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8453
8454         * parse.y (parser_check_super_interface): Fix error message
8455         grammar/order.
8456
8457 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8458
8459         * jcf-parse.c (get_constant): Delete unused variables.
8460
8461 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
8462
8463         * java-tree.h (java_parse_file): New.
8464         * jcf-parse.c (yyparse): Rename java_parse_file.
8465         * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
8466
8467 2002-03-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8468
8469         * parse.y (craft_constructor): Return the constructor decl.
8470         (java_expand_classes): Update comments.
8471         (lookup_method_invoke): Call fix_constructors immediately for
8472         anonymous class. Fixes PR java/5935.
8473
8474 2002-03-15  Anthony Green  <green@redhat.com>
8475
8476         * jcf-parse.c (yyparse): Don't emit class registration
8477         constructor when compiling resource files.
8478
8479 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8480
8481         * lang.c (java_tree_code_type, java_tree_code_length,
8482         tree_code_name): Delete.
8483         (tree_code_type, tree_code_length, tree_code_name): Define.
8484         (java_init): Don't try to copy into the various tree_code
8485         arrays.
8486
8487 2002-03-12  Tom Tromey  <tromey@redhat.com>
8488
8489         * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
8490         UTF-8, not UCS-2.  Fixes PR java/5923.
8491
8492         * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
8493         a call_expr wrapped in a convert.  Fixes PR java/5848.
8494
8495 2002-03-12  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8496
8497         * jcf-write.c (write_classfile): Improve error strings.
8498
8499 2002-03-11  Eric Blake  <ebb9@email.byu.edu>
8500
8501         * lex.c: Adjust comments to GNU standards.
8502
8503 2002-03-11  Eric Blake  <ebb9@email.byu.edu>
8504
8505         Fix for PR java/5902:
8506         * lex.c (java_lex): Fix parsing of literals.
8507
8508 2002-03-11  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8509
8510         * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
8511         to prevent it getting evaluated twice in the store checking case.
8512         * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
8513         examining OBJECT.
8514
8515 2002-03-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8516
8517         * decl.c (java_init_decl_processing): Make sure class_type_node
8518         alignment is not less than 64 bits if hash synchronization is enabled.
8519
8520 2002-03-08  Per Bothner  <per@bothner.com>
8521
8522         * parse.y (java_complete_lhs):  Check if patch_assignment
8523         returned an error-mark.
8524
8525         * parse.y (try_builtin_assignconv):  Don't special-case zero.
8526
8527 2002-03-08  Per Bothner  <per@bothner.com>
8528
8529         Fix for PR java/5812.
8530         * expr.c (build_java_jsr):  Take pc arguments, and do lookup_label
8531         here instead of in JSR macro.  Likewise with load_type_state call.
8532         Do the latter on if the return_pc has been verified (the jsr returns).
8533         (JSR):  Now just call build_java_jsr.
8534
8535 2002-03-07  Jeff Sturm  <jsturm@one-point.com>
8536
8537         * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
8538         (java.install-common): Link native driver to
8539         JAVA_TARGET_INSTALL_NAME.
8540
8541 2002-03-05  David Billinghurst <David.Billinghurst@riotinto.com>
8542
8543         * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
8544         * builtins.c(sin_builtin): Likewise
8545         * builtins.c(sqrt_builtin): Likewise
8546
8547 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
8548
8549         * java/expr.c, java/jcf-parse.c, java/lex.c:
8550         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
8551         REAL_ARITHMETIC blocks unconditional.  Delete some further
8552         #ifdef blocks predicated on REAL_ARITHMETIC.
8553
8554 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8555
8556         * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
8557         explicit sizeof/sizeof.
8558         * decl.c (java_init_decl_processing): Likewise.
8559         * jcf-parse.c (init_jcf_parse): Likewise.
8560         * parse.y (init_src_parse): Likewise.
8561
8562 2002-03-02  Per Bothner  <per@bothner.com>
8563
8564         Make --CLASSPATH by a synonym for --classpath and -classpath.
8565         Implement --bootclasspath.
8566         * jcf-path.c (classpath_u):  Rename static variable to classpath_user.
8567         (classpath_l):  Remove.
8568         (jcf_path_CLASSPATH_arg):  Remove.
8569         (jcf_path_bootclasspath_arg):  New function.
8570         (jcf_path_seal):  Simplify accordingly.
8571
8572         * jcf.h (jcf_path_bootclasspath_arg):  New declarations.
8573         (jcf_path_CLASSPATH):  Remove declaration.
8574         * jvspec.c (jvgenmain_spec):  Also accept -fbootclasspath*.
8575         (lang_specific_driver):  Translate -bootclasspath.
8576         * lang-options.h:  Add --bootclasspath.  Update --CLASSPATH.
8577         * lang.c (decode_lang_options):  Do jcf_path_init first.
8578         Handle -fCLASSPATH same as -fclasspath.  Also process -fbootclasspath.
8579         * gjavah.c:  Also handle --bootclasspath.
8580         Handle --CLASSPATH as a synonum for --classpath.
8581         * jcf-dump.c: Likewise.
8582
8583         "." is not part of system path, but is the default for --classpath.
8584         * jcf-path.c (jcf_path_init):  Don't add "." to sys_dirs.
8585         (jcf_path_seal):  Add "." if no CLASSPATH specified.
8586
8587         * gcj.texi:  Document changes.
8588
8589 2002-03-01  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8590
8591         * expr.c (build_java_arraystore_check): Fix formatting.
8592
8593 2002-02-28  Alexandre Petit-Bianco  <apbianco@redhat.com>
8594
8595         Fix for PR java/5758, java/5632:
8596         * jcf-parse.c (load_class): Renamed local variable, consider `.' an
8597         inner-class separator too.
8598         * parse.y (do_resolve_class): New local `decl_result.'
8599         Progressively build a name for what can have been loaded.
8600
8601 2002-02-28  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8602
8603         * expr.c (java_array_data_offset): Removed function.
8604         (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
8605         (build_java_array_length_access): Obtain "length" value using a
8606         COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
8607         (build_java_arrayaccess): Correct comment. Access "data" using a
8608         COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
8609         (build_java_arraystore_check): New function.
8610         (expand_java_arraystore): Use build_java_arraystore_check.
8611         * parse.y (patch_assignment): Simplify code to insert a store check
8612         when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
8613         * check-init.c (check_init): Update to reflect that an array length
8614         access is now a COMPONENT_REF.
8615         * gcj.texi (Code Generation): Improve documentation of
8616         -fno-bounds-check. Add documentation for -fno-store-check.
8617         * java-tree.h (flag_store_check): Declare.
8618         (build_java_arraystore_check): Declare.
8619         * lang.c (flag_store_check): Initialize to 1.
8620         (lang_f_options): Add store-check option.
8621         * jvspec.c: Don't pass store-check option to jvgenmain.
8622         * lang-options.h: Add help string for -fno-store-check.
8623
8624 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
8625
8626         * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
8627         * java-tree.h (java_dup_lang_specific_decl): New.
8628         * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
8629
8630 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
8631
8632         * builtins.c, decl.c: Delete traditional-mode-related code
8633         copied from the C front end but not used, or used only to
8634         permit the compiler to link.
8635
8636 2002-02-22  Tom Tromey  <tromey@redhat.com>
8637
8638         Fix for PR java/2369:
8639         * jvspec.c (verify_class_name): New function.
8640         (lang_specific_driver): Call it.
8641         (JAVA_START_CHAR_P): New macro.
8642         (JAVA_PART_CHAR_P): Likewise.
8643
8644 2002-02-22  Per Bothner  <per@bothner.com>
8645
8646         * class.c:  Change vtable to be more compatible with g++ v3 abi.
8647         (get_dispatch_table):  Prepend offset-to-top (always 0) and
8648         type_info pointer (currently unimplemented hence NULL) to vtable.
8649         Specifically, prepend offset-to-top and typeinfo ptr (currently null).
8650         (make_class_data):  Variable dtable_start_offset is sizeof 2 pointers.
8651         Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
8652         (build_dtable_decl):  Add declarations for new fields.
8653
8654 2002-02-20  Per Bothner  <per@bothner.com>
8655
8656         * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
8657         to finit$ (otherwise generate_bytecode_insns drops it). However, we
8658         don't need to set it on the COMPOUND_EXPR - the caller does that.
8659
8660 2002-02-20  Nic Ferrier  <nferrier@tapsellferrier.co.uk>
8661
8662         * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
8663         `--CLASSPATH' becomes `--classpath.'
8664         * gjavah.c: Likewise.
8665         * jcf-dump.c: Likewise.
8666         * lang-options.h: Likewise.
8667         * lang.c: Likewise.
8668         * jcf-path.c: Updated comment.
8669         (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
8670         (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
8671         * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
8672         (jcf_path_CLASSPATH_arg): Ditto.
8673         (classpath_u): Updated leading comment.
8674
8675 2002-02-20  Per Bothner  <per@bothner.com>
8676
8677         * builtins.c (check_for_builtin):  New function.
8678         (build_call_or_builtin):  Remove.
8679         * java-tree.h:  Update accordingly.
8680         * expr.c (expand_invoke):  Use build + check_for_builtin instead
8681         of build_call_or_builtin.
8682         * parse.y (patch_invoke):  Likewise.  This avoids needlessly creating
8683         a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
8684         flag (which had caused jcf-write to incorrectly emit invokevirtual).
8685
8686 2002-02-17  Tom Tromey  <tromey@redhat.com>
8687
8688         * java-tree.h (TYPE_STRICTFP): New macro.
8689         (struct lang_type) [strictfp]: New field.
8690         (CLASS_STRICTFP): New macro.
8691         (METHOD_STRICTFP): New macro.
8692         (struct lang_decl) [strictfp]: New field.
8693         * parse.y (method_header): Disallow strictfp constructor or
8694         abstract method.
8695         (STRICT_TK): Move before MODIFIER_TK.
8696         * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
8697         (METHOD_MODIFIERS): Likewise.
8698         (INTERFACE_MODIFIERS): Likewise.
8699         * jcf-write.c (get_access_flags): Likewise.
8700         * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
8701         (add_method_1): Likewise.
8702         (get_access_flags_from_decl): Likewise.
8703         * jcf-dump.c (print_access_flags): Print in standard order.  Also,
8704         recognize strictfp flag.
8705         * jcf.h (ACC_STRICT): New define.
8706
8707 2002-02-12  David Billinghurst <Davod.Billinghurst@riotinto.com>
8708
8709         * class.c(build_utf8_ref): Move declaration of decl_size
8710
8711 2002-02-07  Tom Tromey  <tromey@redhat.com>
8712
8713         * gcj.texi (Input Options): --CLASSPATH does not suppress system
8714         path.
8715
8716 2002-02-04  Anthony Green  <green@redhat.com>
8717
8718         * class.c (build_utf8_ref): Put UTF-8 constants into merged
8719         sections if available.
8720
8721 2002-02-04  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8722
8723         * parse.y (java_expand_classes): Fix typo in static field loop.
8724
8725 2002-02-02  Richard Henderson  <rth@redhat.com>
8726
8727         * class.c (add_field): Mark static fields external.
8728         (build_class_ref): Remove redundant set.
8729         * parse.y (java_expand_classes): Mark static fields of classes
8730         to be compiled as local.
8731         * jcf-parse.c (parse_class_file): Likewise.
8732
8733 2002-02-02  Nic Ferrier  <nferrier@tapsellferrier.co.uk>
8734
8735         * gcj.texi (About CNI): New node.
8736
8737 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8738
8739         PR java/5080
8740         * jcf-parse.c : Check for HAVE_LOCALE_H before using
8741         setlocale() with LC_CTYPE as a parameter.
8742         * jv-scan.c: Same.
8743
8744 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
8745
8746         * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
8747         Follow GNU Coding Standards for --version.
8748
8749 2002-01-28  Tom Tromey  <tromey@redhat.com>
8750
8751         * expr.c (build_jni_stub): Ensure storage for `meth' is
8752         generated.
8753         * parse.y (java_complete_expand_methods): Set
8754         current_function_decl before building JNI stub.
8755
8756 2002-01-26 Andreas Tobler <a.tobler@schweiz.ch>
8757
8758         * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
8759         BUILT_IN_SQRTF.
8760
8761 2002-01-22  Tom Tromey  <tromey@redhat.com>
8762
8763         * decl.c (java_init_decl_processing): Use add_predefined_file.
8764         Predefine RawData.java.
8765         (predef_filenames): Removed.
8766         (java_init_decl_processing): Don't register predef_filenames.
8767         * jcf-parse.c (add_predefined_file): New function.
8768         (predefined_filename_p): Rewrote.
8769         (predefined_filename_p): No longer static.
8770         * decl.c (java_init_decl_processing): Call initialize_builtins.
8771         * Make-lang.in (JAVA_OBJS): Added builtins.o.
8772         (java/builtins.o): New target.
8773         * builtins.c: New file.
8774         * parse.y (patch_invoke): Use build_call_or_builtin.
8775         * java-tree.h (build_call_or_builtin): Declare.
8776         (initialize_builtins): Declare.
8777         (java_set_exception_lang_code): Removed unused declaration.
8778         (PREDEF_FILENAMES_SIZE): Removed.
8779         (java_tree_index): Added JTI_PREDEF_FILENAMES.
8780         (predef_filenames): New define.
8781         (add_predefined_file): Declare.
8782         (predefined_filename_p): Declare.
8783         * expr.c (expand_invoke): Use build_call_or_builtin.
8784
8785 2002-01-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8786
8787         * parse.y (patch_switch_statement): Fix format specifier.
8788
8789 2002-01-16  Tom Tromey  <tromey@redhat.com>
8790
8791         More for PR java/5365:
8792         * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
8793         default.
8794         (process_file): Generate include for
8795         java.lang.UnsupportedOperationExceptions.
8796
8797 2002-01-15  Andreas Jaeger  <aj@suse.de>
8798
8799         * .cvsignore: Add man pages.
8800
8801 2002-01-15  Tom Tromey  <tromey@redhat.com>
8802
8803         Fix for PR java/5365:
8804         * gjavah.c (process_file): Turn class name into a file name.
8805
8806 2002-01-14  Matthias Klose  <doko@debian.org>
8807
8808         * gcj.texi: Fix whitespace and formatting errors in the
8809         synopsis of the man pages. Update copyright.
8810
8811 2002-01-14  Tom Tromey  <tromey@redhat.com>
8812
8813         For PR libgcj/5303:
8814         * Make-lang.in (java.install-man): Handle jv-convert man page.
8815         (java.generated-manpages): Added jv-convert.1.
8816         (java.uninstall): Remove jv-convert.1.
8817         (java.maintainer-clean): Likewise.
8818         ($(srcdir)/java/jv-convert.1): New target.
8819         * gcj.texi (Top): Link to jv-convert node.
8820         (Individual utilities): Likewise.
8821         (Invoking jv-convert): New node.
8822
8823 2001-01-10  Jeff Sturm  <jsturm@one-point.com>
8824             Martin Kahlert  <martin.kahlert@infineon.com>
8825
8826         * jcf-parse.c (get_constant): Don't swap lo/hi for big
8827         endian targets when HOST_BITS_PER_WIDE_INT >= 64.
8828
8829 2002-01-03  Graham Stott  <grahams@redhat.com>
8830
8831         * class.c (compile_resource_file): Update copyright date.
8832         Constify filename parameter.
8833         (java-tree.h): Update copyright date.
8834         (compile_resource_file): Constify filename parameter.
8835
8836 2002-01-03  Graham Stott  <grahams@redhat.com>
8837
8838         * gcc/jcf-parse.c: Update copyright date.
8839         (yyparse): Constify resource_filename.
8840
8841 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8842
8843         * parse.y (src_parse_roots): Don't needlessly zero init.
8844
8845 2001-12-31  Tom Tromey  <tromey@redhat.com>
8846
8847         * parse.y (dump_java_tree): New function.
8848         (source_end_java_method): Call it.
8849         (end_class_declaration): Likewise.
8850         * lang.c (java_decode_option): Call dump_switch_p.
8851
8852 2001-12-28  Tom Tromey  <tromey@redhat.com>
8853
8854         * gen-table.pl: Don't process characters after \uffff.  Added
8855         comment pointing to input file.
8856
8857 2001-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8858
8859         * gen-table.pl: Const-ify output.  Document the location of a
8860         suitable unicode input file.
8861
8862         * chartables.h: Regenerate.
8863
8864 2001-12-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8865
8866         * chartables.h: Const-ify.
8867         * gjavah.c (options): Likewise.
8868         * jcf-dump.c (options): Likewise.
8869         * jv-scan.c (options): Likewise.
8870         * lex.c (java_start_char_p, java_part_char_p): Likewise.
8871         * parse.y (binop_lookup): Likewise.
8872
8873 2001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8874
8875         * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
8876         the static arrays that are output.
8877         * jvspec.c (jvgenmain_spec): Make static.
8878         * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
8879         * keyword.h: Regenerate.
8880         * lang.c (string_option, process_option_with_no, lang_f_options,
8881         lang_W_options): Const-ify.
8882         * lex.c (java_lex): Likewise.
8883
8884 2001-12-21  Richard Henderson  <rth@redhat.com>
8885
8886         * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
8887         (get_boehm_type_descriptor): ... here.  Arrange for the
8888         TREE_TYPE to get set properly.
8889
8890 2001-12-21  Richard Henderson  <rth@redhat.com>
8891
8892         * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
8893         only if the target requires collect2.
8894
8895         * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
8896
8897 2001-12-20  Tom Tromey  <tromey@redhat.com>
8898
8899         For PR java/4509:
8900         * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
8901         CAN_COMPLETE_NORMALLY for the node.
8902         * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
8903         generate code for second branch if first branch can't complete
8904         normally.
8905         (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
8906         the loop head if the loop body can't complete normally.
8907
8908 2001-12-20  Tom Tromey  <tromey@redhat.com>
8909
8910         For PR java/4766:
8911         * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
8912         case where `finally' clause can't complete normally.
8913
8914 2001-12-20  Tom Tromey  <tromey@redhat.com>
8915
8916         Fixes PR java/5057:
8917         * parse.y (analyze_clinit_body): Added this_class parameter.
8918         Check for more cases where we must keep <clinit>.
8919         (maybe_yank_clinit): Cleaned up flow control.
8920
8921 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8922
8923         * decl.c (java_init_decl_processing): Don't initialize
8924         finit_leg_identifier_node.
8925         * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
8926         (finit_leg_identifier_node): Remove.
8927         (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
8928
8929 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8930
8931         * mangle.c (mangle_member_name): Don't special-case for
8932         NO_DOLLAR_IN_LABEL.
8933         * mangle_name.c (unicode_mangling_length): Likewise.
8934         (append_unicode_mangled_name): Likewise.
8935         * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
8936         code.
8937
8938 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8939
8940         * expr.c (build_java_array_length_access): Don't force null pointer
8941         check unless flag_check_references is set.
8942
8943 2001-12-20  Tom Tromey  <tromey@redhat.com>
8944
8945         Fix for PR java/3417:
8946         * parse.y (patch_assignment): Added special processing for
8947         `return'.
8948         (patch_return): Don't convert booleans to integers, and don't
8949         special-case `null'.
8950
8951 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
8952
8953         * config-lang.in (diff_excludes): Remove.
8954
8955 2001-12-17  Joseph S. Myers  <jsm28@cam.ac.uk>
8956
8957         * gcj.texi: Update link to GCC manual.
8958
8959 2001-12-17  Tom Tromey  <tromey@redhat.com>
8960
8961         * parse.y (link_nested_class_to_enclosing): Removed useless
8962         statement.
8963
8964 2001-12-16  Tom Tromey  <tromey@redhat.com>
8965
8966         * mangle.c (mangle_method_decl): Never emit `C2' constructor.
8967         Fixes PR java/5088.
8968
8969 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
8970
8971         * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
8972         jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
8973         spelling errors.
8974
8975 2001-12-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8976
8977         * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
8978
8979 2001-12-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8980
8981         * decl.c (java_init_decl_processing): Build otable_type correctly.
8982         otable_decl is an otable_type.
8983
8984 2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8985
8986         * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
8987         otable_type, otable_ptr_type, method_symbol_type,
8988         method_symbols_array_type, method_symbols_array_ptr_type): New
8989         field/global tree definitions.
8990         (flag_indirect_dispatch): New flag.
8991         * decl.c (java_init_decl_processing): Initialize new otable and
8992         otable_syms type nodes and decls. Add new field "index" to
8993         method_type_node.
8994         * class.c (build_method_symbols_entry): New function.
8995         (make_method_value): Set "index" to to method's vtable index for
8996         virtual methods when indirect-dispatch is not used.
8997         (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
8998         and set vtable_method_count to -1. Set otable and otable_syms field
8999         if indirect-dispatch is used and there was something to put in them.
9000         (build_method_symbols_entry): New function.
9001         (emit_offset_symbol_table): New function.
9002         * expr.c (get_offset_table_index): New function.
9003         (build_invokevirtual): Build array reference to otable at the index
9004         returned by get_offset_table_index, and use the result as the vtable
9005         offset.
9006         (build_invokeinterface): Similar.
9007         * jcf-parse.c (yyparse): If indirect-dispatch, call
9008         emit_offset_symbol_table at the end of compilation, after all classes
9009         have been generated.
9010         * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
9011         * lang.c (flag_indirect_dispatch): Define.
9012         (lang_f_options): Add indirect-dispatch flag.
9013
9014 2001-12-14  Matthias Klose  <doko@debian.org>
9015
9016         * gcj.texi: Markup for man page generation. Document missing
9017         options printed by <tool> --help.
9018         Terminate description of gij's -ms option with a dot.
9019         * Make-lang.in ($(srcdir)/java/*.1): New targets.
9020         (java.generated-manpages java.install-man, java.uninstall,
9021         java-maintainer-clean) Updated.
9022
9023 2001-12-14  Hans Boehm  <Hans_Boehm@hp.com>
9024
9025         * class.c (get_dispatch_table): Fix java vtable layout
9026         for TARGET_VTABLE_USES_DESCRIPTORS.
9027         * decl.c (java_init_decl_processing): Initialize
9028         alloc_no_finalizer_node, finalize_identifier_node.
9029         * expr.c (class_has_finalize_method): New function.
9030         (expand_java_NEW): Generate calls for finalizer-free allocation.
9031         (build_invokevirtual): Fix java vtable layout for
9032         TARGET_VTABLE_USES_DESCRIPTORS.
9033         * java-tree.h (enum java_tree_index): New entries:
9034         JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
9035         (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
9036         (class_has_finalize_method): declare.
9037         (HAS_FINALIZER_P): New macro.
9038         * parse.y (patch_invoke): Generate calls for finalizer-free
9039         allocation.
9040
9041 2001-12-12  Matthias Klose  <doko@debian.org>
9042
9043         * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
9044         whitespace at end of line.
9045
9046 2001-12-11  Tom Tromey  <tromey@redhat.com>
9047
9048         * lex.c (java_init_lex): Define wfl_to_string as
9049         gnu.gcj.runtime.StringBuffer unless generating bytecode.
9050
9051 2001-12-11  Jeff Sturm  <jsturm@one-point.com>
9052
9053         * class.c (make_method_value): Use null_pointer_node to
9054         represent empty exception table.
9055
9056 2001-12-10  Tom Tromey  <tromey@redhat.com>
9057
9058         * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
9059
9060 2001-12-10  Douglas B. Rupp  <rupp@gnat.com>
9061
9062         * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
9063
9064 2001-12-09  Per Bothner  <per@bothner.com>
9065
9066         * check-init.c (current_switch_has_default):  New static field.
9067         (check_init):  Case DEFAULT_EXPR: Set current_switch_has_default.
9068         Case SWITCH_EXPR:  Save/restore current_switch_has_default.  If no
9069         DEFAULT_EXPR seen, simulate a default alternative that copies state.
9070
9071 2001-12-09  Tom Tromey  <tromey@redhat.com>
9072
9073         * check-init.c (check_init): Don't allow pre- or post- increment
9074         or decrement of final variable.
9075         (final_assign_error): Minor error message rewording.
9076
9077 2001-12-08  Tom Tromey  <tromey@redhat.com>
9078
9079         * java-tree.h: Fixed typo.
9080
9081         * gjavah.c (decompile_method): Don't decompile to `return this'
9082         for static methods.
9083
9084         * gjavah.c (cxx_keywords): Re-sorted.
9085         * lex.c (cxx_keywords): Re-sorted.
9086
9087         * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
9088         else.
9089
9090         * gjavah.c (print_namelet): Clear subnamelets.
9091         (HANDLE_METHOD): Set `method_printed' earlier.
9092
9093 2001-12-07  Tom Tromey  <tromey@redhat.com>
9094
9095         * lang.c (lang_f_options): Added
9096         optimize-static-class-initialization.
9097         (java_decode_option): Removed special case.
9098
9099 2001-12-07  Per Bothner  <per@bothner.com>
9100
9101         * check-init.c (check_init):  Fix typo freeing memory twice.
9102
9103 2001-12-05  Per Bothner  <per@bothner.com>
9104
9105         Restore support for static class initialization optimization.
9106         * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
9107         * check-init.c (check_int):  At end of BLOCK handle initialization
9108         blocks, which used to be done in java_complete_expand_method but did
9109         not handle the case where check_for_initialization might allocate
9110         more than a word of bits.
9111         * decl.c (lang_make_tree):  The smic field is now a tree.
9112         * expr.c (build_class_init):  Set DECL_FUNCTION_INIT_TEST_CLASS field.
9113         * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE):  New macro.
9114
9115         * parse.y (emit_test_initialization):  Combine hash_lookup calls.
9116
9117         * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
9118         Change from a hash table to a list.
9119         (struct_lang_decl):  Change field 'smic' to match.
9120         * class.c (add_method_1):  Initialize
9121         DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
9122         * parse.y (adjust_init_test_initialization):  Removed - inlined into -
9123         (java_expand_method_bodies): -here, since 'smic' is now a list.
9124         (patch_invoke):  Add to 'smic' list, instead of hash_lookup.
9125
9126         * check-init.c (WORD_SIZE):  Use BITS_PER_UNIT.
9127
9128         * class.c (java_hash_compare_tree_node):  Fix casts.
9129
9130 2001-12-04  Per Bothner  <per@bothner.com>
9131
9132         * check-init.c:   Handle definite unassignment to finals in addition
9133         to definite assignment.
9134         (loop_current_locals):  New field.
9135         (num_current_locals, int start_current_locals, num_current_words):
9136         Make static.
9137         (SET_P, CLEAR_P, SET_BIT):  Add needed but missing parentheses.
9138         (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
9139         CLEAR_ASSIGNED, CLEAR_UNASSIGNED):  New macros.
9140         (get_variable_decl, check_final_reassigned):  New functions.
9141         (check_init, check_bool_init):  Modify as needed for checking finals.
9142         (check_for_initialization):  Take extra parameter and return void.
9143         Do extra start-up logic to check final fields for assignment.
9144         * parse.y (check_static_final_variable_assignment_flag,
9145         reset_static_final_variable_assignment_flag, check_final_assignment,
9146         check_final_variable_local_assignment_flag,
9147         reset_final_variable_indirect_assignment_flag,
9148         reset_final_variable_global_assignment_flag):  Remove functions.
9149         (java_complete_expand_methods, outer_field_access_fix,
9150         patch_assignment): Remove no-longer used logic.
9151         * java-tree.h (DECL_FIELD_FINAL_IUD):  Change usage and comments.
9152         * parse.y (register_fields, java_complete_tree):  Update accordingly.
9153
9154         * check-init.c (ALLOC_WORDS/FREE_WORDS):  Use xmalloc/free, not alloca.
9155         (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER):  New.
9156         (check_cond_init, check_bool2_init):  Use DECLARE_BUFFERS.
9157
9158         * java-tree.h (STATIC_CLASS_INIT_OPT_P):  Temporarily turn off.
9159
9160         * java-tree.h (DECL FINAL):  New bit-field.
9161         (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL):  Define as DECL_FINAL.
9162         (LOCAL_FINAL_P):  Use DECL_FINAL rather than old LOCAL_FINAL.
9163         (DECL_INIT_CALLS_THIS):  New macro.
9164         (struct lang_decl):  New bit-field init_calls_this.
9165         (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
9166         DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
9167         (DECL_BIT_INDEX):  Change to use pointer_alias_set since we now
9168         use it for both local variables and final fields.
9169         (struct lang_decl_var):  Remove bit-fields final_liic, final_ierr,
9170         and local_final.
9171         (struct lang_type):  Remove hfv bit-field.
9172         (check_for_initialization):  Change to return void.
9173
9174         * java-tree.h (IS_ARRAY_LENGTH_ACCESS):  New macros.
9175         * expr.c (build_java_array_length_access):  Set IS_ARRAY_LENGTH_ACCESS.
9176         * check-init.c (final_assign_error):  New helper function.
9177         (check_final_reassigned, check_init):  Use it.
9178         (check_init):  Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
9179
9180         * java-tree.h (struct lang_decl, struct lang_decl_var):  Change all
9181         bit-fields to unsigned.
9182
9183 2001-12-03  Per Bothner  <per@bothner.com>
9184
9185         * parse.y (patch_binop):  Minor constant folding.
9186
9187         * parse.y (build_current_thisn):  Shorter 'buffer'.
9188
9189 2001-12-03  Per Bothner  <per@bothner.com>
9190
9191         * decl.c (complete_start_java_method):  Now generate TRY_FINALLY_EXPR
9192         instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
9193         * jcf-write.c (generate_bytecode_insns):  Remove support for
9194         CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
9195         * check-init.c (check_init):  Likewise.
9196
9197 2001-12-03  Per Bothner  <per@bothner.com>
9198
9199         * verify.c (subroutine_nesting):  New function.
9200         (verify_jvm_instructions):  Use it to fix logic for checking that
9201         we're done with the current subroutine.
9202
9203         * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
9204         OPCODE_instanceof use POP_TYPE macro for better diagnostics.
9205
9206 2001-12-03  Per Bothner  <per@bothner.com>
9207
9208         * jcf.h:  Fix obvious typo in comment.
9209         * typeck.c (build_null_signature):  Add comment.
9210
9211 2001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
9212
9213         * expr.c: Remove leading capital from diagnostic messages, as
9214         per GNU coding standards.
9215         * jcf-io.c: Similarly.
9216         * jcf-parse.c: Similarly.
9217         * jv-scan.c: Similarly.
9218         * jvspec.c: Similarly.
9219         * mangle.c: Similarly.
9220
9221 2001-12-02  Tang Ching-Hui  <nicholas@cs.nthu.edu.tw>
9222             Alexandre Petit-Bianco  <apbianco@redhat.com>
9223
9224         * expr.c (build_java_arrayaccess): Call save_expr on array for
9225         correct evaluation order, modified comment, fixed indentation.
9226         * parse.y: (patch_assignment): Correctly extract the array base
9227         from the tree generate by build_java_arrayaccess, added comments.
9228         (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
9229         Fixes PR java/3096, PR java/3803, PR java/3965.
9230
9231 2001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
9232
9233         * expr.c (expand_byte_code): Remove trailing periods from messages.
9234         * jcf-parse.c (load_class, jcf_parse): Similarly.
9235         * jcf-write.c (generate_classfile): Similarly.
9236         * lex.c (java_lex): Similarly.
9237
9238 2001-11-30  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9239
9240         * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
9241
9242 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
9243
9244         * Make-lang.in (java.generated-manpages): New dummy target.
9245
9246 2001-11-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9247
9248         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9249         ASM_FINAL_SPEC.
9250         (lang_specific_pre_link): Use set_input to set input_filename.
9251         Append `main' here.
9252         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9253         (main): Fix definition.
9254         Strip `main' from classname.
9255         Fixes PR java/227.
9256
9257 2001-11-18  Roger Sayle <roger@eyesopen.com>
9258
9259         * parse.h (java_expand_switch): Remove old prototype.
9260
9261 2001-11-18  Tom Tromey  <tromey@redhat.com>
9262
9263         Fix for PR java/1401:
9264         * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
9265         arg0 is null.
9266         (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
9267         correctly.
9268
9269 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
9270
9271         * lang.c (finish_parse): Rename to java_finish.
9272         (LANG_HOOKS_FINISH, java_finish): New.
9273
9274 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
9275
9276         * decl.c (init_decl_processing): Rename java_init_decl_processing.
9277         * java-tree.h: New prototype.
9278         * lang.c (java_init): Update prototype.  Combine with old init_parse.
9279
9280 2001-11-13  Tom Tromey  <tromey@redhat.com>
9281
9282         * gjavah.c (method_signature): New global.
9283         (HANDLE_METHOD): Set it.
9284         (decompile_return_statement): New function.
9285         (decompile_method): Use it.
9286         (print_method_info): Removed `synth' argument.
9287
9288 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9289
9290         * java-tree.h (java_set_yydebug): New.
9291         * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
9292         * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
9293         (print_lang_decl, print_lang_type, print_lang_identifier,
9294         print_lang_statistics, lang_print_xnode): Remove.
9295
9296 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9297
9298         * jcf-parse.c (init_lex): Remove.
9299         * lang.c (language_string, lang_identify): Remove.
9300         (struct lang_hooks): Constify.
9301         (LANG_HOOKS_NAME): Override.
9302         (init_parse): Update.
9303
9304 2001-11-08  Andreas Franck  <afranck@gmx.de>
9305
9306         * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
9307         program_transform_name the way suggested by autoconf.
9308         (java.install-common): Also transform auxiliary program names with
9309         program_transform_name.
9310
9311 2001-11-08  Tom Tromey  <tromey@cygnus.com>
9312
9313         * parse.y (trap_overflow_corner_case): New rule.
9314         (unary_expression): Use it.
9315         * lex.c (java_init_lex): Don't set minus_seen.
9316         (yylex): Don't use minus_seen.  Communicate overflow to parser for
9317         it to handle.
9318         (error_if_numeric_overflow): New function.
9319         * parse.h (minus_seen): Removed field.
9320         (JAVA_RADIX10_FLAG): New define.
9321
9322 2001-11-07  Tom Tromey  <tromey@redhat.com>
9323
9324         Patch for PR java/1414:
9325         * parse.y (case_label_list): New global.
9326         (goal): Register case_label_list with GC.
9327         (java_complete_lhs): Save new case on case_label_list.
9328         (patch_switch_statement): Check for duplicate case labels.
9329
9330 2001-11-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
9331
9332         * parse.y (patch_assignment): Removed unused third argument.
9333         (java_complete_lhs): Removed unused third argument to patch_assignment.
9334
9335 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9336
9337         * lang.c: Include langhooks-def.h.
9338         * Make-lang.in: Update.
9339
9340 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
9341
9342         * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
9343
9344 2001-10-29  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9345
9346         * mangle.c (find_compression_record_match): Don't match compression
9347         records for package name elements unless they occur at the start of
9348         the name. Fix for PR java/4717.
9349
9350 2001-10-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9351
9352         * expr.c (expand_java_field_op): Don't special-case references to
9353         java.lang.PRIMTYPE.TYPE.
9354         (build_primtype_type_ref): Removed.
9355         * java-tree.h (build_primtype_type_ref): Remove prototype.
9356         * parse.y (maybe_build_primttype_type_ref): Removed.
9357         (complete_function_arguments): Don't special-case references to
9358         java.lang.PRIMTYPE.TYPE.
9359         (patch_assignment): Likewise.
9360         (array_constructor_check_entry): Likewise.
9361
9362 2001-10-24  Alexandre Petit-Bianco  <apbianco@redhat.com>
9363
9364         * mangle.c (static tree compression_table): Fixed leading comment.
9365         * parse.h (struct parser_ctxt): Fixed field comment.
9366         * parse.y (check_pkg_class_access): New prototype, fixed leading
9367         comment, new parameter used to emit error only if passed as true.
9368         (parse_check_super): Pass extra argument to check_pkg_class_access.
9369         (do_resolve_class): Likewise.
9370         (process_imports): Likewise.
9371         (read_import_dir): Fixed indentation.
9372         (find_in_imports_on_demand): New local class_type_name. Local
9373         node_to_use deleted. while loop changed into for loop. Report
9374         multiple definition only for accessible classes. Improved error
9375         message.
9376         (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
9377         assigned to parameter list, fixed indentation. while loop changed
9378         into for loop, restore TREE_CHAIN on local `tem' before the next
9379         iteration.
9380
9381 2001-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9382
9383         * lang.c (lang_get_alias_set): Deleted.
9384
9385 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9386
9387         * gjavah.c (jni_print_char): Fix thinko in last change.
9388
9389         * gjavah.c (jni_print_char, decode_signature_piece): Use
9390         safe-ctype macros and/or fold extra calls into fewer ones.
9391         * lex.c (java_read_unicode, java_lex): Likewise.
9392         * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
9393         JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
9394         * mangle_name.c (append_unicode_mangled_name,
9395         unicode_mangling_length): Likewise.
9396
9397 2001-10-17  Richard Henderson  <rth@redhat.com>
9398
9399         * Make-lang.in (java/lang.o): Depend on langhooks.h.
9400
9401 2001-10-15  Alexandre Petit-Bianco  <apbianco@redhat.com>
9402
9403         * lang.c (langhooks.h): Included.
9404         (LANG_HOOKS_INIT): Redefined.
9405         (LANG_HOOKS_INIT_OPTIONS): Likewise.
9406         (LANG_HOOKS_DECODE_OPTION): Likewise.
9407         (struct lang_hooks lang_hooks): New initialization.
9408
9409 2001-10-11  Per Bothner  <per@bothner.com>
9410
9411         * parse.y (patch_synchronized_statement):  Use a TRY_FINALLY_EXPR
9412         rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
9413         The former is simpler, and jcf-write.c handles it better.
9414         (java_complete_lhs):  No longer need to handle CLEANUP_POINT_EXPR
9415         or WITH_CLEANUP_EXPR.
9416         * jcf-write.c:  Revert Alex's change from 2000-10-18.  It is no
9417         longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
9418
9419         * parse.y (patch_if_else_statement):  If the condition is constant,
9420         optimize away the test.
9421
9422 2001-10-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
9423
9424         * parse.y (patch_cast): Call patch_string on the first operand of
9425         the incoming node, update it if necessary. Fixes PR java/4510.
9426
9427 2001-10-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9428
9429         * parse.y (find_as_inner_class): Don't disregard the enclosing scope
9430         when name qualifier matches a package name.
9431
9432 2001-10-08  Tom Tromey  <tromey@redhat.com>
9433
9434         Fix for PR java/4489:
9435         * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
9436         force a new label when computing `body_block'.
9437
9438 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9439
9440         * jcf-io.c (format_uint): Const-ify.
9441         * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
9442         * lex.c (java_get_line_col): Likewise.
9443         * parse.y (build_incdec): Likewise.
9444
9445 2001-10-05  Alexandre Petit-Bianco  <apbianco@redhat.com>
9446
9447         * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
9448         a NULL enclosing context if appropriate. Fixes PR java/4466.
9449
9450 2001-10-03  Alexandre Petit-Bianco  <apbianco@redhat.com>
9451
9452         * parse.y (patch_assignment): Use lvalue's original TYPE when
9453         building the final COMPOUND_EXPR.
9454         (try_reference_assignconv): Fixed leading comment.
9455
9456 2001-09-26  Alexandre Petit-Bianco  <apbianco@redhat.com>
9457
9458         * parse.y (check_final_variable_indirect_assignment): For
9459         COMPOUND_EXPR, return only if finals were found initialized
9460         properly, if not, keep on checking.
9461         (check_final_variable_global_assignment_flag): New local
9462         error_found, set when appropriate and used to decide whether to
9463         report uninitialized finals. Fixed typo in comment.
9464
9465 2001-09-22  Alexandre Petit-Bianco  <apbianco@redhat.com>
9466
9467         * decl.c (init_decl_processing): Fixed typo in predef_filenames
9468         last three initializations. Fixes PR java/4360.
9469
9470 2001-09-21  Richard Henderson  <rth@redhat.com>
9471
9472         * class.c (get_dispatch_table): Handle function descriptors.
9473         (build_dtable_decl): Likewise.
9474         * expr.c (build_invokevirtual): Likewise.
9475
9476 2001-09-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
9477
9478         * parse.y (patch_method_invocation): Build class initialization
9479         when static finals are used to qualify method invocation.
9480         Fixes PR java/4366.
9481
9482 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
9483
9484         * parse.h: (WFL_STRIP_BRACKET): Re-written using
9485         build_type_name_from_array_name.
9486         (STRING_STRIP_BRACKETS): New macro.
9487         * parse.y (build_type_name_from_array_name): New function.
9488         (array_creation_expression:): Accumulate []s instead of [s.
9489         (cast_expression:): Accumulate []s instead of [s after cast type
9490         name.
9491         (build_array_from_name): Local string deleted, use
9492         build_type_name_from_array_name.
9493         (build_unresolved_array_type): Accumulate []s instead of [s after
9494         type name.
9495         (register_fields): Fixed comment.
9496         (resolve_class): Local name, base deleted, new locals tname and
9497         array_dims. Use build_type_name_from_array_name. Use array_dims to
9498         build array type.
9499         (purify_type_name): Use STRING_STRIP_BRACKETS.
9500
9501 2001-09-18  Andreas Jaeger  <aj@suse.de>
9502
9503         * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
9504         * jv-scan.c: Likewise.
9505
9506 2001-09-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
9507
9508         * parse.y (patch_method_invocation): Inner class creation context
9509         check not enforced within constructors. Fixes PR java/1873.
9510
9511 2001-09-16  Tom Tromey  <tromey@redhat.com>
9512
9513         * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
9514         NOTE_PUSH for single-case push.  Fixes PR java/4189.
9515
9516 2001-09-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
9517
9518         * java-tree.h (TYPE_IMPORT_LIST): New macro.
9519         (TYPE_IMPORT_DEMAND_LIST): Likewise.
9520         (struct lang_type): New fields import_list and import_demand_list.
9521         * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
9522         TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
9523         (do_resolve_class): New local saved_enclosing_type, initialized,
9524         passed as parameter to find_in_imports and find_in_imports_on_demand.
9525         (find_in_imports): Added paramater enclosing_type, use its
9526         TYPE_IMPORT_LIST when applicable.
9527         (find_in_imports_on_demand): Added parameter enclosing_type, use
9528         its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
9529         declaration and initialization.
9530         (fold_constant_for_init): Switch/restore current_class to the
9531         appropriate context.
9532
9533 2001-09-13  Mark Mitchell  <mark@codesourcery.com>
9534
9535         * verify.c (verify_jvm_instructions): Fix typo.
9536
9537 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9538
9539         * expr.c (expand_invoke): Const-ification.
9540         * parse.y (patch_method_invocation): Likewise.
9541
9542 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9543
9544         * gjavah.c (cxx_keywords): Const-ification.
9545         * keyword.gperf (java_keyword): Likewise.
9546         * lang.c (java_tree_code_name): Likewise.
9547         * lex.c (cxx_keywords): Likewise.
9548         * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
9549
9550 2001-09-11  Richard Henderson  <rth@redhat.com>
9551
9552         * parse.h (ctxp_for_generation): Mark extern.
9553
9554 2001-09-10  Richard Henderson  <rth@redhat.com>
9555
9556         * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
9557
9558 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
9559
9560         * typeck.c (java_array_type_length, build_prim_array_type):
9561         Represent empty arrays by NULL index.
9562
9563 2001-09-06  Alexandre Petit-Bianco  <apbianco@redhat.com>
9564
9565         * java-tree.h (compile_resource_file): Grouped with other prototypes.
9566         * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
9567
9568 2001-09-06  Anthony Green  <green@redhat.com>
9569
9570         * class.c (O_BINARY): Define if necessary.
9571         (registerResource_libfunc): Declare.
9572         (init_class_processing): Initilize registerResource_libfunc.
9573         (compile_resource_file): New function.
9574         * java-tree.h (resource_name): Declare.
9575         (compile_resource_file): Declare.
9576         * jcf-parse.c (yyparse): Handle compiling java resource files.
9577         * lang.c (java_decode_option): Handle -fcompile-resource option.
9578         * jvspec.c (lang_specific_driver): Handle -R flag for compiling
9579         resource files.
9580         * gcj.texi (Code Generation): Add documentation for -R flag.
9581
9582 2001-09-05 Alexandre Petit-Bianco  <apbianco@redhat.com>
9583
9584         * jcf-write.c (generate_classfile): Issue an error in case of
9585         field/initial value mismatch.
9586         * parse.y (analyze_clinit_body): Keep <clinit> if an array is
9587         being initialized and we're generating bytecode.
9588         (java_complete_lhs): In MODIFY_EXPR section: added comments,
9589         set DECL_INITIAL properly when appropriate.
9590         Fixes PR java/4230
9591         Fixes PR java/4204
9592
9593 2001-09-01  Per Bothner  <per@bothner.com>
9594
9595         * parse.y (maybe_yank_clinit):  A field without an initializer is not
9596         relevant.  All initializers except static final and constant require
9597         <clinit>, regardless of flag_emit_class_files.
9598
9599 2001-08-31  Per Bothner  <per@bothner.com>
9600
9601         * class.c (set_constant_value):  When not emitting class files, then a
9602         String ConstantValue is a utf8const_ptr_type.
9603
9604 2001-08-30  Per Bothner  <per@bothner.com>
9605
9606         * jcf-write.c (generate_classfile):  Check that field is primitive
9607         or string before emitting ConstantValue attribute.
9608
9609 2001-08-30  Per Bothner  <per@bothner.com>
9610
9611         * parse.y (resolve_qualified_expression_name):  If creating a
9612         COMPOUND_EXPR, set it's type correctly.
9613
9614 2001-08-30  Per Bothner  <per@bothner.com>
9615
9616         * jcf-io.c (open_class):  Set filename field.
9617
9618         * jcf-parse,c (parse_class_file):  Set current_function_decl
9619         for better error message when Code attribute is missing.
9620
9621         * lang.c (put_decl_node, lang_print_error):  Re-arrange for
9622         better diagnostics, especially for constructors.
9623
9624 2001-08-30  Per Bothner  <per@bothner.com>
9625
9626         * jcf-write.c (generate_classfile):  Don't write ConstantValue
9627         attribute if field is not final, for compatibility with jdk.
9628
9629         * jcf-write.c (generate_classfile):  Convert ConstantValue values
9630         to correct type.  Work-around for front-end bug.
9631         * class.c (set_constant_value):  Error if constant has wrong type.
9632
9633 2001-08-30  Per Bothner  <per@bothner.com>
9634
9635         * jcf-dump.c (print_constant):  Fix fencepost error so "Float" and
9636         "Double" are printed at verbosity 1.
9637
9638         * jcf-dump.c (main):  Disable flag_print_attributes if --javap.
9639
9640         * jcf-dump.c (SPECIAL_IINC):  Remove unneeded casts to long.
9641
9642 2001-08-30  Alexandre Petit-Bianco  <apbianco@redhat.com>
9643
9644         * parse.y (patch_assignment): Don't verify final re-assignment here.
9645         (java_complete_lhs): Verify assignments to finals calling
9646         patch_assignment. Verify re-assignments to finals before calling
9647         patch_assignment.
9648
9649 2001-08-29  Alexandre Petit-Bianco  <apbianco@redhat.com>
9650
9651         * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
9652         Fixes PR java/1413
9653
9654 2001-08-28  Alexandre Petit-Bianco  <apbianco@redhat.com>
9655
9656         * lex.c (java_lex): new local found_hex_digits. Set and then used
9657         in test to reject invalid hexadecimal numbers.
9658         * parse.y (java_complete_tree): Prevent unwanted cast with
9659         initialized floating point finals.
9660         (patch_binop): Emit a warning when detecting a division by zero,
9661         mark result not constant, don't simplify non integer division.
9662
9663 2001-08-28  Per Bothner  <per@bothner.com>
9664
9665         * jcf-write.c  (generate_bytecode_insns):  For increments and
9666         decrements just recurse to push constant.  Improvement on Mark's patch.
9667
9668 2001-08-28  Mark Mitchell  <mark@codesourcery.com>
9669
9670         * jcf-write.c (generate_bytecode_insns): Generate an integer to
9671         real conversion for increments and decrements of reals.
9672
9673 2001-08-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
9674
9675         * parse.y (resolve_qualified_expression_name): Handle unresolved
9676         qualified expressions, prevent numerical qualifiers, fixed typo.
9677         Fixes PR java/4141
9678
9679 2001-08-24  Alexandre Petit-Bianco  <apbianco@redhat.com>
9680
9681         * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
9682         don't report anything but deprecated class when marked so. Handle
9683         VAR_DECL.
9684         (patch_method_invocation): Check deprecation on methods and types.
9685         (patch_binop): code becomes an enum tree_code, added default: to
9686         switch to handle that. Detect division by zero, try to fold and
9687         return before using a subroutine.
9688
9689 2001-08-23  Alexandre Petit-Bianco  <apbianco@redhat.com>
9690
9691         * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
9692         file smaller than 4 bytes.
9693         * parse.y (check_inner_circular_reference): New function.
9694         (check_circular_reference): Likewise.
9695         (array_initializer:): Accept {,}.
9696         (java_check_circular_reference): Rewritten using
9697         check_circular_reference and check_inner_circular_reference.
9698         (java_complete_expand_method): Unconditionally save and restore
9699         the unpurged exception list.
9700         (build_dot_class_method_invocation): Unmangle signature parameter.
9701
9702 2001-08-21  Tom Tromey  <tromey@redhat.com>
9703
9704         * decl.c (init_decl_processing): Add `throws' field to method
9705         descriptor.
9706         * class.c (make_method_value): Compute `throws' field for method.
9707
9708 2001-08-22  Alexandre Petit-Bianco  <apbianco@redhat.com>
9709
9710         * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
9711         circularity is detected.
9712         (ctors_unchecked_throws_clause_p): Fixed leading comment.
9713
9714 2001-08-17  Richard Henderson  <rth@redhat.com>
9715
9716         * class.c (emit_register_classes): Add align parameter to
9717         call to assemble_integer.
9718
9719 2001-08-16  Alexandre Petit-Bianco  <apbianco@redhat.com>
9720
9721         * jcf-parse.c (load_class): New locals saved and class_loaded. If
9722         loading a class_or_name fails, try considering an innerclass name
9723         and load the enclosing context.
9724         * parse.y (resolve_inner_class): New function.
9725         (find_as_inner_class): Added leading comment.
9726         (register_incomplete_type): Keep the current context as enclosing
9727         context for JDEP_FIELD dependencies.
9728         (do_resolve_class): Locals new_class_decl and super initialized to
9729         NULL. Call resolve_inner_class, explore the enclosing context
9730         superclass if necessary.
9731         Fixes PR java/4007
9732
9733 2001-08-16  Tom Tromey  <tromey@redhat.com>
9734
9735         * jcf-dump.c (main): Updated for change to jcf_path_seal.
9736         * gjavah.c (main): Updated for change to jcf_path_seal.
9737         * lang.c (version_flag): New global.
9738         (java_decode_option): Recognize `-version'.
9739         (java_init): Update for change to jcf_path_seal.
9740         * jcf.h (jcf_path_seal): Added `print' argument.
9741         * jcf-path.c (jcf_path_seal): Added `print' argument.
9742
9743 2001-08-13  Zack Weinberg  <zackw@panix.com>
9744
9745         * Make-lang.in (java/decl.o): Update dependencies.
9746         * decl.c: Include libfuncs.h, don't include toplev.h.
9747
9748 2001-08-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
9749
9750         * decl.c (init_decl_processing): exception_type_node,
9751         class_not_found_type_node, and no_class_def_found_type_node
9752         initialized. predef_filenames augmented accordingly.
9753         instinit_identifier_node initialized.
9754         * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
9755         * java-tree.h (enum java_tree_index): New entries
9756         JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
9757         JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
9758         (exception_type_node): New macro.
9759         (class_not_found_type_node): Likewise.
9760         (no_class_def_found_type_node): Likewise.
9761         (instinit_identifier_node): Likewise.
9762         (PREDEF_FILENAMES_SIZE): Adjusted.
9763         (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
9764         (struct lang_type): Fixed typo in bitfield name.
9765         (DECL_INSTINIT_P): New macro.
9766         (ID_INSTINIT_P): Likewise.
9767         * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
9768         attribute.
9769         * parse.y (encapsulate_with_try_catch): New function.
9770         (generate_instinit): Likewise.
9771         (build_instinit_invocation): Likewise.
9772         (ctors_unchecked_throws_clause_p): Likewise.
9773         (add_instance_initializer): Deleted.
9774         (build_instance_initializer): Likewise.
9775         (in_instance_initializer): Likewise.
9776         (check_method_redefinition): instinit$ not to be verified.
9777         (java_complete_expand_methods): Generate instinit$, simplified code.
9778         (build_dot_class_method): Eliminated unnecessary locals. Use
9779         encapsulate_with_try_catch, removed unnecessary code.
9780         (fix_constructors): New local iii. Use build_instinit_invocation.
9781         (patch_method_invocation): Added comment.
9782         (maybe_use_access_method): Don't consider instinit$.
9783         (find_applicable_accessible_methods_list): Shorten the search for
9784         instinit$ too.
9785         (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
9786         (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
9787         (patch_throw_statement): Likewise. Fixed typo.
9788
9789 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
9790
9791         Revert:
9792         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9793         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9794         ASM_FINAL_SPEC.
9795         (lang_specific_pre_link): Use set_input to set input_filename.
9796         Append `main' here.
9797         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9798         (main): Fix definition.
9799         Strip `main' from classname.
9800         Fixes PR java/227.
9801
9802 2001-08-11  Zack Weinberg  <zackw@panix.com>
9803
9804         * lex.h: Don't include setjmp.h.  Don't define
9805         SET_FLOAT_HANDLER or prototype set_float_handler.
9806
9807 2001-08-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
9808
9809         * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
9810         `poplevel' in the right order.
9811
9812 2001-08-09  Richard Henderson  <rth@redhat.com>
9813
9814         * Make-lang.in (class.o): Depend on TARGET_H.
9815         * class.c (emit_register_classes): Use target hooks instead of
9816         assemble_constructor and assemble_destructor.
9817
9818 2001-08-08  Alexandre Petit-Bianco  <apbianco@redhat.com>
9819
9820         * check-init.c (flags.h): Include
9821         (check_init): Don't report uninitialized static class
9822         initialization flags, don't free bit index when doing static class
9823         initialization optimization.
9824         (check_for_initialization): Return type changed to `unsigned int.'
9825         (attach_initialized_static_class): New function.
9826         * class.c (add_method_1): Create the initialized static class
9827         table if necessary.
9828         (finish_class): Always emit deferred inline methods.
9829         * decl.c (emit_init_test_initialization): Moved to expr.c
9830         (complete_start_java_method): Don't traverse
9831         DECL_FUNCTION_INIT_TEST_TABLE.
9832         (lang_mark_tree): Mark hash tables in function decls.
9833         * expr.c (emit_init_test_initialization): Moved from decl.c.
9834         (build_class_init): Create LAG_DECL_SPECIFIC for the static class
9835         initialization flag, set DECL_CONTEXT and
9836         LOCAL_CLASS_INITIALIZATION_FLAG.
9837         (java_lang_expand_expr): Emit initialization code for static class
9838         initialized flags when entering block, if necessary.
9839         * gcj.texi (-fno-optimize-static-class-initialization): Documented.
9840         * java-tree.h (flag_optimize_sci): New global variable declaration.
9841         (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
9842         (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
9843         (LOCAL_FINAL_P): Fixed typo in comment.
9844         (FINAL_VARIABLE_P): Likewise.
9845         (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
9846         (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
9847         (struct lang_decl): New fields `ict', `smic' and `cif.'
9848         (check_for_initialization): New returned value for global.
9849         (attach_initialized_static_class): New global function.
9850         (STATIC_CLASS_INIT_OPT_P): New macro.
9851         * lang-options.h (-fno-optimize-static-class-initialization): New flag.
9852         * lang.c (java_decode_option): Handle
9853         `-fno-optimize-static-class-initialization'
9854         * parse.y (start_complete_expand_method): New function.
9855         (java_expand_method_bodies): Likewise.
9856         (attach_init_test_initialization_flags): Likewise.
9857         (adjust_init_test_initialization): Likewise.
9858         (emit_test_initialization): Likewise.
9859         (java_complete_expand_methods): Nullify abstract and native method
9860         bodies.
9861         (java_complete_expand_method): New locals `fbody', `block_body'
9862         and `exception_copy.' Reorganized: directly return on empty method
9863         bodies, call `start_complete_expand_method', remember definitely
9864         initialized static class in function, don't expand method bodies.
9865         (java_expand_classes): Call `java_expand_method_bodies' before
9866         `finish_class' when compiling to native.
9867         (resolve_expression_name): Use `orig' after building outer class
9868         field access.
9869         (patch_invoke): Remember static method invocations.
9870
9871 2001-08-06  Richard Henderson  <rth@redhat.com>
9872
9873         * class.c (emit_register_classes): Pass a symbol_ref and priority
9874         to assemble_constructor.
9875
9876 2001-08-02  Alexandre Petit-Bianco  <apbianco@redhat.com>
9877
9878         * java-tree.h (all_class_filename): New macro.
9879         (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
9880         (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
9881         newly created IDENTIFIER_NODE to `all_class_filename.'
9882
9883 2001-08-01  Jeff Sturm  <jsturm@one-point.com>
9884
9885         * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
9886         Use ggc_add_tree_root to register roots.
9887
9888 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
9889
9890         * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
9891         second operand calling check_init.
9892         * decl.c (complete_start_java_method): Swaped second and third
9893         arguments while creating WITH_CLEANUP_EXPR node.
9894         * jcf-write.c (generate_bytecode_insns): Use second operand
9895         instead of third when handling WITH_CLEANUP_EXPR.
9896         * parse.y (java_complete_lhs): Expand second operand of
9897         WITH_CLEANUP_EXPR nodes.
9898         (patch_synchronized_statement): Swaped second and third arguments
9899         while creating WITH_CLEANUP_EXPR node.
9900
9901 2001-07-18  Alexandre Petit-Bianco  <apbianco@redhat.com>
9902
9903         * parse.y (create_interface): Avoid cyclic inheritance report when
9904         syntax error encountered during class definition.
9905         Fixes PR java/2956
9906
9907 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9908
9909         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9910         ASM_FINAL_SPEC.
9911         (lang_specific_pre_link): Use set_input to set input_filename.
9912         Append `main' here.
9913         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9914         (main): Fix definition.
9915         Strip `main' from classname.
9916         Fixes PR java/227.
9917
9918 2001-07-18  Tom Tromey  <tromey@redhat.com>
9919
9920         For PR java/2812:
9921         * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
9922         * lex.c (java_new_lexer): Use ICONV_CONST.
9923         (java_read_char): Likewise.
9924         * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
9925         (jv-scan$(exeext)): Likewise.
9926
9927 2001-07-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
9928
9929         * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
9930         * parse.y (check_class_interface_creation): Allow `private' if the
9931         enclosing is not an interface.
9932         (create_interface): Interface tagged public if the enclosing
9933         context is an interface.
9934         (create_class): Class tagged public if the enclosing context
9935         is an interface.
9936         Fixes PR java/2959
9937
9938 2001-07-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
9939
9940         * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
9941         Fixes PR java/2665
9942
9943 2001-07-14  Tim Josling  <tej@melbpc.org.au>
9944
9945         * check-init.c (check_init): Remove references to EXPON_EXPR.
9946
9947 2001-07-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
9948
9949         * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
9950         TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
9951         Fixes PR java/3602
9952
9953 2001-07-13  Tom Tromey  <tromey@redhat.com>
9954
9955         * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
9956         invocation.
9957
9958 2001-07-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
9959
9960         * parse.y (patch_method_invocation): Don't override primary if one
9961         is already provided, but let this$<n> be built. Fixed comment.
9962
9963 2001-07-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
9964
9965         * parse.y (empty_statement:): Report empty statement error only
9966         when found at class declaration level.
9967         Fixes PR java/3635
9968
9969 2001-07-12  Tom Tromey  <tromey@redhat.com>
9970
9971         * expr.c (expand_load_internal): New function.
9972         (LOAD_INTERNAL): Use it.
9973
9974 2001-07-11  Alexandre Petit-Bianco  <apbianco@redhat.com>
9975
9976         * parse.y (verify_constructor_super): Compare anonymous class ctor
9977         args with `valid_method_invocation_conversion_p.'
9978         Fixes PR java/3285
9979
9980 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
9981
9982         * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
9983         `-fsyntax-only.' Fixes PR java/3248
9984
9985 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
9986
9987         * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
9988
9989 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
9990
9991         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
9992         current function is static. Fixes PR java/1970
9993
9994 2001-07-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
9995
9996         * parse.y (patch_method_invocation): Add enclosing context to ctor
9997         calls if necessary. Fixes PR java/2953
9998
9999 2001-07-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
10000
10001         * parse.y (resolve_package): Abort if qualified expression member
10002         isn't right.
10003         (qualify_ambiguous_name): Don't qualify as type if `this' in use.
10004         Fixes PR java/1391
10005
10006 2001-07-07  Zack Weinberg  <zackw@stanford.edu>
10007
10008         * verify.c: Don't use // comments.
10009
10010 2001-07-05  Tom Tromey  <tromey@redhat.com>
10011
10012         * lang.c (flag_assume_compiled): Removed.
10013         * java-tree.h (flag_assume_compiled): Removed.
10014         * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
10015         -fhash-synchronization, -fuse-divide-subroutine,
10016         -fcheck-references, -femit-class-file, -femit-class-files,
10017         -fassume-compiled.  Updated --encoding information.  Changed
10018         -foutput-class-dir to `-d'.
10019
10020 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
10021
10022         * jcf-parse.c (parse_class_file): Add lineno parameter to
10023         debug_start_source_file call.
10024
10025 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
10026
10027         * gcj.texi: Use gpl.texi.
10028         * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
10029         dependencies and use doc/include in search path.
10030
10031 2001-07-03  Jeff Sturm  <jsturm@one-point.com>
10032
10033         * parse.y (fix_constructors): Test if a CALL_EXPR invokes
10034         `this'.  If so, don't build instance initializers.
10035
10036 2001-07-03  Alexandre Petit-Bianco  <apbianco@redhat.com>
10037
10038         * parse.y (resolve_expression_name): Improved error message for
10039         inner class cases. Fixes PR java/1958
10040
10041 2001-06-28  Gabriel Dos Reis  <gdr@codesourcery.com>
10042
10043         * lang.c: #include diagnostic.h
10044         (lang_print_error): Add a `diagnostic_context *' parameter.
10045         (java_dummy_print): Likewise.
10046         * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
10047
10048 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
10049
10050         * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
10051         * jcf.h (typedef struct JCF): New bitfield `finished.'
10052         (JCF_FINISH): Set `finished.'
10053         (JCF_ZERO): Reset `finished.'
10054         Fixes PR java/2633
10055
10056 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
10057
10058         * parse.y (class_body_declaration:): Don't install empty instance
10059         initializers.
10060         Fixes PR java/1314
10061
10062 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
10063
10064         * class.c (set_super_info): Call `set_class_decl_access_flags.'
10065         (set_class_decl_access_flags): New function.
10066         * java-tree.h (set_class_decl_access_flags): New prototype.
10067         * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
10068         (parse_class_file): New local `decl_max_locals.' Take wide types
10069         into account to compute DECL_MAX_LOCALS.
10070         * parse.y (type_import_on_demand_declaration:): Ignore duplicate
10071         imports on demand.
10072
10073 2001-06-22  Jan van Male  <jan.vanmale@fenk.wau.nl>
10074
10075         * zipfile.h: Use GCC_JCF_H instead of JCF_H.
10076
10077 2001-06-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
10078
10079         * class.c (java_hash_tree_node): Fixed indentation in leading comment.
10080         * parse.y (do_resolve_class): Moved comments out to leading comment
10081         section. Removed local `start', New local `_ht' and
10082         `circularity_hash.'  Record `enclosing' in hash table and search
10083         it to detect circularity.  Use `enclosing' as an argument to
10084         `lookup_cl.' Free the hash table when done.
10085
10086 2001-06-19  Tom Tromey  <tromey@redhat.com>
10087
10088         * lex.c (java_read_char): Disallow invalid and overlong
10089         sequences.  Fixes PR java/2319.
10090
10091 2001-06-05  Jeff Sturm  <jsturm@one-point.com>
10092
10093         * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
10094
10095 2001-06-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
10096
10097         * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
10098         arguments accordingly.
10099
10100 2001-06-02  Joseph S. Myers  <jsm28@cam.ac.uk>
10101
10102         * gcj.texi: Move contents to just after title page.
10103
10104 2001-06-01  Alexandre Petit-Bianco  <apbianco@redhat.com>
10105
10106         * parse.y (type_literals:): Use `build_incomplete_class_ref' with
10107         builtin type.
10108         (patch_incomplete_class_ref): Build the class ref, build the class
10109         init if necessary, complete the tree.
10110         Fixes PR java/2605
10111
10112 2001-05-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
10113
10114         * parse.y (lookup_field_wrapper): Test `name' code.
10115         (resolve_qualified_expression_name): Test `qual_wfl' code.
10116         (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
10117         handle `qual_wfl' by code.
10118         (maybe_build_primttype_type_ref): Test `wfl' code.
10119
10120 2001-05-23  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
10121
10122         * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
10123         fdl.texi.
10124         (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls.  Create
10125         the dvi file in the java directory.
10126
10127 2001-05-25  Sam TH  <sam@uchicago.edu>
10128
10129         * gen-table.pl javaop.h jcf.h lex.h,
10130         parse.h: Fix header include guards.
10131
10132 2001-05-23  Joseph S. Myers  <jsm28@cam.ac.uk>
10133
10134         * jv-scan.c (version): Update copyright year.
10135
10136 2001-05-21  Per Bothner  <per@bothner.com>
10137
10138         * jcf-parse.c (read_class):  If class is from .class or .zip file
10139         and it's already been read, don't push/pop parser context.
10140
10141 2001-05-18  Per Bothner  <per@bothner.com>
10142
10143         * jvspec.c (lang_specific_pre_link):  Re-arrange the linker
10144         command line so the jvgenmain-generated main program comes first.
10145
10146 2001-05-15  Tom Tromey  <tromey@redhat.com>
10147
10148         * class.c (build_utf8_ref): Don't generate identifier based on
10149         utf8const contents.
10150
10151 2001-05-12  Richard Henderson  <rth@redhat.com>
10152
10153         * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
10154         * expr.c (java_lang_expand_expr): Expand it.
10155         (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
10156         calling build_exception_object_ref.
10157         * parse.y (catch_clause_parameter): Likewise.
10158         (build_dot_class_method): Likewise.
10159         (try_reference_assignconv): Likewise.
10160         * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
10161         * jcf-write.c (generate_bytecode_insns): Likewise.
10162
10163 2001-05-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
10164
10165         * parse.y (build_unresolved_array_type): Set
10166         EXPR_WFL_QUALIFICATION on the newly created wfl.
10167         Fixes PR java/2538. Fixes PR java/2535.
10168
10169 2001-05-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
10170
10171         * parse.y (fix_constructors): Removed unnecessary assignment to
10172         local. Moved assignment to `this$<n>', fixed comments and
10173         indentation.
10174         (build_wfl_wrap): Fixed indentation.
10175         Fixes PR java/2598, java/2579 and java/2658.
10176
10177 2001-05-03  Mo DeJong  <mdejong@redhat.com>
10178
10179         * lex.c (java_new_lexer): Call iconv_close on temp handle used to
10180         check for byte swap.
10181
10182 2000-05-02  Jeff Sturm  <jsturm@one-point.com>
10183
10184         * expr.c (build_class_init): Move MODIFY_EXPR
10185         outside of COND_EXPR.  Remove variable `call'.
10186
10187 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10188
10189         * decl.c: NULL_PTR -> NULL.
10190         * jcf-write.c: Likewise.
10191
10192 2001-05-01  Tom Tromey  <tromey@redhat.com>
10193
10194         * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
10195         (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
10196         * gcj.texi: Updated copyright text.  Include fdl.texi.
10197         (Top): Link to new node.
10198
10199 2001-05-01  Per Bothner  <per@bothner.com>
10200
10201         * parse.h (REGISTER_IMPORT):  Use tree_cons instead of chainon.
10202
10203 2001-05-01  Per Bothner  <per@bothner.com>
10204
10205         * parse.y (java_pop_parser_context):  The TREE_VALUE of a link in the
10206         import_list contains the name, not the TREE_PURPOSE.
10207
10208 2001-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10209
10210         * jcf-io.c (read_zip_member): Cast to long in comparison with
10211         signed value.
10212
10213         * jvspec.c (lang_specific_driver): Initialize variables.
10214
10215         * mangle.c (find_compression_record_match): Likewise.
10216
10217         * typeck.c (build_null_signature): Provide static prototype.  Mark
10218         parameter with ATTRIBUTE_UNUSED.
10219
10220         * verify.c (verify_jvm_instructions): Initialize variable.
10221
10222 2001-04-27  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
10223
10224         * parse.y (do_resolve_class): Check for cyclic inheritance during
10225         inner class resolution.
10226
10227 2001-04-27  Per Bothner  <per@bothner.com>
10228
10229         * parse.y (java_expand_classes):  Don't change ctxp_for_generation
10230         while iterating, since that could cause gc to lose stuff.
10231
10232 2001-04-26  Per Bothner  <per@bothner.com>
10233
10234         Fix method search wrt scope of inner classes to match JLS2.
10235         * typeck.c (build_null_signature):  New static function.
10236         (has_method):  New function.  Uses build_null_signature and lookup_do.
10237         * java-tree.h (has_method):  New declaration.
10238         * parse.y (find_applicable_accessible_methods_list):  Do not search
10239         context of inner classes here.
10240         (patch_method_invocation):  Search scope, ie. current and outer clases,
10241         for method matching simple name, to find class.
10242
10243 2001-04-26  Per Bothner  <per@bothner.com>
10244
10245         * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
10246         Fix thinko:  If a single case, use if_icmpeq, not ifeq.
10247
10248         * constants.c (find_methodref_with_class_index):  New function.
10249         (find_methodref_index):  Use find_methodref_with_class_index.
10250         * java-tree.h (find_methodref_with_class_index):  New declaration.
10251         * jcf-write.c (generate_bytecode_insns case CALL_EXPR):  Don't change
10252         DECL_CONTEXT, instead use new find_methodref_with_class_index function.
10253         If context changed from interface to class, don't use invokeinterface.
10254
10255 2001-04-25  Per Bothner  <per@bothner.com>
10256
10257         * verify.c (verify_jvm_instructions):  For field instructions,
10258         check that field index is valid.  For invoke instructions, check that
10259         method index is valid.
10260
10261 2001-04-25  Alexandre Oliva  <aoliva@redhat.com>
10262
10263         * config-lang.in (target_libs): Copy from $libgcj_saved.
10264
10265 2001-04-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
10266
10267         * decl.c (init_decl_processing): Add new class "protectionDomain"
10268         field.
10269         * class.c (make_class_data): Set initial value for "protectionDomain".
10270
10271 2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10272
10273         * jvspec.c (lang_specific_driver): Fix memory allocation
10274         deficit, by using concat in lieu of xmalloc/sprintf.
10275
10276 2001-04-20  Per Bothner  <per@bothner.com>
10277
10278         Fixes to compile multiple .class files at once.
10279         * decl.c (init_decl_processing):  Don't set CLASS_LOADED_P.
10280         * java-tree.h (CLASS_PARSED_P):  New macro.
10281         (CLASS_LOADED_P):  Re-define to use TYPE_SIZE and CLASS_PARSED_P.
10282         * jcf-parse.c (jcf_parse_source):  Inline into read_class.
10283         (read_class):  Avoid some code duplication.
10284         Don't call JCF_FINISH for a .class file - might be needed later.
10285         (jcf_parse):  Don't call layout_class here.  Check/set CLASS_PARSED_P
10286         rather than CLASS_LOADED_P, since latter implies class laid out.
10287         (yyparse):  Do layout_class and JCF_FINISh here instead, in pass 2.
10288         * parse.y:  Don't need to set CLASS_LOADED_P for array types.
10289
10290 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10291
10292         * Make-lang.in (java/boehm.o): Depend on toplev.h.
10293
10294         * boehm.c: Include toplev.h.
10295
10296 2001-04-06  Tom Tromey  <tromey@redhat.com>
10297             Alexandre Petit-Bianco  <apbianco@redhat.com>
10298
10299         Fix for PR gcj/1404 and PR gcj/2332:
10300         * parse.y (build_array_from_name): If we use the type_wfl then
10301         accumulate dimensions from the original type as well.
10302         (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
10303
10304 2001-04-06  Tom Tromey  <tromey@redhat.com>
10305
10306         * parse.y (analyze_clinit_body): Return true if the second operand
10307         of a METHOD_EXPR is nonzero.
10308
10309 2001-04-06  Tom Tromey  <tromey@redhat.com>
10310
10311         * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
10312         directory.
10313         ($(srcdir)/java/parse.c): Likewise.
10314
10315 2001-04-05  Alexandre Petit-Bianco  <apbianco@redhat.com>
10316
10317         * gcj.texi: Use `which-gcj' instead of `which-g77.'
10318         (version-gcc): Initialized.
10319         (which-gcj): Likewise.
10320
10321 2001-04-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
10322
10323         * java-tree.h (struct lang_decl): New macro
10324         `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
10325         * parse.y (build_instance_initializer): New function.
10326         (add_instance_initializer): Use it.
10327         (java_fix_constructors): Set `current_class' before fix pass.
10328         (fix_constructors): Just return if already fixed. Move `super()'
10329         invocation ahead. Use `build_instance_initializer.'
10330         Fixes PR java/1315.
10331
10332 2001-04-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
10333
10334         * parse.y (resolve_qualified_expression_name): Pass field's
10335         DECL_CONTEXT to `not_accessible_p.'
10336         (not_accessible_p): Changed parameters order in `inherits_from_p'
10337         invocation.
10338
10339 2001-03-27  Andrew Haley  <aph@cambridge.redhat.com>
10340
10341         * lang-options.h: Add flag_check_references.
10342
10343 2001-04-04  Per Bothner  <per@bothner.com>
10344
10345         * java-tree.h (CONSTANT_VALUE_P):  New macro.
10346         * jcf-write.c (generate_classfile):  Use CONSTANT_VALUE_P.
10347         * parse.y (maybe_build_class_init_for_field):  New static function.
10348         (resolve_expression_name, resolve_field_access):  Use
10349         maybe_build_class_init_for_field instead of build_class_init
10350         This does not do the init if the field is compile-time-constant.
10351         (resolve_field_access):  Simplify.
10352
10353         * parse.y (fold_constant_for_init):  Merge test into switch.
10354
10355 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
10356
10357         * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
10358         on gansidecl.h.
10359         * buffer.c, jvgenmain.c: Don't include gansidecl.h.
10360
10361 2001-04-02  Zack Weinberg  <zackw@stanford.edu>
10362
10363         * expr.c (pop_type_0): Save the result of the first
10364         lang_printable_name call in a scratch buffer, so it
10365         won't be clobbered by the second call.
10366
10367 2001-03-30  Alexandre Petit-Bianco  <apbianco@redhat.com>
10368
10369         * parse-scan.y (array_type:): Rewritten.
10370         (type_declaration:): `empty_statement' replaces `SC_TK.'
10371         (class_member_declaration:): `empty statement' added.
10372         (method_body:): Simplified.
10373         (static_initializer:): Likewise.
10374         (primary_no_new_array:): Use `type_literals.'
10375         (type_literals:): New rule.
10376         (dims:): Set and update `bracket_count.'
10377         Fixes PR java/1074. Fixes PR java/2412.
10378
10379 2001-03-28  Hans Boehm  <boehm@acm.org>
10380
10381         * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
10382         (get_boehm_type_descriptor): Set type on returned value to be a
10383         pointer length integer.
10384
10385 2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10386
10387         * expr.c (pop_type_0): Call `concat' rather than building the
10388         string manually.
10389         (pop_type): Add format specifier in call to `error'.
10390
10391         * parse.y (patch_method_invocation): Avoid casting away
10392         const-ness.
10393
10394 2001-03-28  Jeffrey Oldham  <oldham@codesourcery.com>
10395
10396         * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
10397
10398 2001-03-28  Richard Henderson  <rth@redhat.com>
10399
10400         IA-64 ABI Exception Handling:
10401         * Make-lang.in (except.o): Don't depend on eh-common.h.
10402         * check-init.c (check_init): Handle EXC_PTR_EXPR.
10403         * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
10404         [soft_exceptioninfo_call_node]: Remove.
10405         [eh_personality_libfunc, lang_eh_runtime_type]: New.
10406         (end_java_method): No emit_handlers.
10407         * except.c (java_set_exception_lang_code): Remove.
10408         (method_init_exceptions): Don't call it.
10409         (prepare_eh_table_type): No CATCH_ALL_TYPE.
10410         (build_exception_object_ref): New.
10411         (expand_end_java_handler): Update for except.h name changes.
10412         (emit_handlers, expand_resume_after_catch): Remove.
10413         * expr.c (java_lang_expand_expr): Update for except.h name changes.
10414         (process_jvm_instruction): Use build_exception_object_ref.
10415         * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
10416         (soft_exceptioninfo_call_node): Remove.
10417         (build_exception_object_ref): Declare.
10418         * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
10419         soft_exceptioninfo_call_node.  Move processing ...
10420         [EXC_PTR_EXPR]: ... here.
10421         * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
10422         * parse.y (catch_clause_parameter): Use build_exception_object_ref.
10423         (source_end_java_method): No java_set_exception_lang_code or
10424         emit_handlers.
10425         (build_dot_class_method): Use build_exception_object_ref.
10426         (try_reference_assignconv): Check EXC_PTR_EXPR not
10427         soft_exceptioninfo_call_node.
10428
10429 2001-03-28  Richard Henderson  <rth@redhat.com>
10430
10431         * java-tree.h (throw_node): Define as a single member of
10432         java_global_trees instead of a separate array.
10433         (JTI_THROW_NODE): New.
10434         * decl.c (throw_node): Don't declare.
10435         (init_decl_processing): Init a scalar throw_node.
10436         Don't register it for gc.
10437         * check-init.c (check_init): Reference scalar throw_node.
10438         * expr.c (build_java_athrow): Likewise.
10439         * jcf-write.c (generate_bytecode_insns): Likewise.
10440         * parse.h (BUILD_THROW): Likewise.
10441
10442 2001-03-28  Richard Henderson  <rth@redhat.com>
10443
10444         * decl.c (end_java_method): Do not save and restore
10445         flag_non_call_exceptions.
10446         * parse.y (source_end_java_method): Likewise.
10447         * lang.c (flag_exceptions): Don't declare.
10448         (java_init_options): Set flag_non_call_exceptions.  Set
10449         flag_exceptions here ...
10450         (java_init): ... not here.
10451
10452 2001-03-27  Richard Henderson  <rth@redhat.com>
10453
10454         * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
10455         exceptions_via_longjmp.
10456
10457         * lang.c (flag_new_exceptions): Don't declare it.
10458         (java_init_options): Or set it.
10459
10460 2001-03-27  Richard Henderson  <rth@redhat.com>
10461
10462         * decl.c (end_java_method): Rename asynchronous_exceptions to
10463         flag_non_call_exceptions.
10464         * parse.y (source_end_java_method): Likewise.
10465
10466 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10467
10468         * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
10469
10470 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
10471
10472         * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
10473
10474 2001-03-26  Alexandre Petit-Bianco  <apbianco@redhat.com>
10475
10476         * parse.y (find_as_inner_class): Follow current package
10477         indications not to mistakingly load an unrelated class.
10478
10479 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10480
10481         * constants.c (PUTN): Use memcpy, not bcopy.
10482
10483         * lex.c (java_read_char): Use memmove, not bcopy.
10484
10485         * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
10486
10487 2001-03-23  Per Bothner  <per@bothner.com>
10488
10489         * verify.c (verify_jvm_instructions):  Replace 3 pop_type by POP_TYPE
10490         macro for better error pin-pointing.
10491         * java-tree.h:  Fix typo in comment.
10492
10493         * jcf-write.c (generate_bytecode_insns):  Changes to TRY_FINALLY_EXPR.
10494         Don't include jsr/goto in exception range.
10495         Check if start and end of exception range are the same (also TRY_EXPR).
10496         Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
10497         However, do emit the following goto even if try_block is empty.
10498         Defer freeing exception_decl until after the finalizer, to make
10499         sure the local isn't reused in the finalizer.  Fixes PR java/1208.
10500
10501         * parse.y (java_complete_lhs):  If the try-clause is empty, just
10502         return the finally-clause and vice versa.
10503
10504 2001-03-23  Alexandre Petit-Bianco  <apbianco@redhat.com>
10505
10506         * gcj.texi (Input Options): documented the check for attribute
10507         `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
10508         * java-tree.h (flag_force_classes_archive_check): Declared extern.
10509         * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
10510         (jcf_parse): Check for the right classes archive if necessary.
10511         * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
10512         (jcf_parse_fields): Fixed indentation.
10513         * jcf-write.c (append_gcj_attribute): New function.
10514         (generate_classfile): Compute the attribute count, invoke
10515         `append_gcj_attribute'.
10516         * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
10517         turned into bit-fields. New bit-field `right_zip.'
10518         (JCF_ZERO): Set `right_zip' to zero.
10519         * lang-options.h (-fforce-classes-archive-check): Added flag.
10520         * lang.c (flag_force_classes_archive_check): New flag.
10521         (lang_f_options): New entry `force-classes-archive-check.'
10522         Fixes PR java/1213.
10523
10524 2001-02-07  Andrew Haley  <aph@redhat.com>
10525
10526         * gcj.texi (Configure-time Options): Add -fcheck-references.
10527         * expr.c (build_java_indirect_ref): New function.
10528         (java_check_reference): New function.
10529         (build_java_array_length_access): Use build_java_indirect_ref to
10530         check for null references.
10531         (build_java_arrayaccess): Likewise.
10532         (build_get_class): Likewise.
10533         (build_field_ref): Likewise.
10534         (invoke_build_dtable): Likewise.
10535         (build_invokeinterface): Likewise.
10536         * lang.c (lang_f_options): Add flag_check_references.
10537         * jvspec.c (jvgenmain_spec): Add flag_check_references.
10538         * java-tree.h (flag_check_references): New variable.
10539         * lang.c (flag_check_references): Likewise.
10540         * parse.y (patch_invoke): Use java_check_reference.
10541         (patch_assignment): Allow for extra nesting in
10542         _Jv_CheckArrayStore.
10543
10544 2001-03-23  Bryce McKinlay  <bryce@albatross.co.nz>
10545
10546         * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
10547         * lex.c (cxx_keywords): Likewise.
10548
10549 2001-03-21  Alexandre Petit-Bianco  <apbianco@redhat.com>
10550
10551         * parse.y (qualify_ambiguous_name): Broaden `length'
10552         recognition. Help MODIFY_EXPR be resolved as expression names.
10553         Fixes PR java/2066. Fixes PR java/2400.
10554
10555 2001-03-21  Bryce McKinlay  <bryce@albatross.co.nz>
10556
10557         * gjavah.c (process_file): Mark interface definitions with
10558         "__attribute__ ((java_interface))".
10559
10560 2001-03-21  Alexandre Petit-Bianco  <apbianco@redhat.com>
10561
10562         * class.c (layout_class): Fixed push_super_field's second
10563         argument. Fixes PR java/2333.
10564         (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
10565         too early to lay innerclasses out.
10566
10567 2001-03-20  Tom Tromey  <tromey@redhat.com>
10568             Alexandre Petit-Bianco <apbianco@redhat.com>
10569
10570         * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
10571         inside an array reference. Insertion of the array store check
10572         rewritten. Fixes PR java/2299.
10573
10574 2001-03-20  Tom Tromey  <tromey@redhat.com>
10575
10576         * lex.c (java_read_unicode): Only accept leading `u's.
10577
10578 2001-03-20  Tom Tromey  <tromey@redhat.com>
10579
10580         * jcf-parse.c (read_class): Initialize `class'.
10581
10582 2001-03-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
10583
10584         * jcf_parse.c (jcf_parse): Eliminate unused variable.
10585
10586 2001-03-19  Mark Mitchell  <mark@codesourcery.com>
10587
10588         * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
10589         (layout_class): Likewise.
10590         (layout_class_method): Likewise.
10591         (emit_register_classes): Likewise.
10592         * decl.c (builtin_function): Likewise.
10593         (give_name_to_locals): Likewise.
10594
10595 2001-03-19  Per Bothner  <per@bothner.com>
10596
10597         * jcf-parse.c (load_inner_classes):  Check CLASS_LOADED_P
10598         before trying to load an inner class.
10599
10600         Fixes to process to command-line .class files in two passes.
10601         * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P):  New flags.
10602         (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P):  Rename to ..
10603         (CLASS_FROM_CURRENTLY_COMPILED_P):  ... because it is more general now.
10604         * class.c (is_compiled_class):  Fix for renamed flag.
10605         * parse.y (maybe_create_class_interface_decl):  Likewise.
10606         * jcf-parse.c (yyparse):  Also set if compiling .class files.
10607         * jcf-parse.c (read_class);  Read current_class.
10608         (jcf_parse):  Make static.
10609         (load_inner_classes):  New function, with code moved from jcf_parse,
10610         because we need to inner classes after the command-line files are read.
10611         (yyparse):  Set finput to NULL when it doesn't need to be closed.
10612         Reduce use of main_jcf (basically only for archive) and
10613         use finput instead of main_jcf->read_state.
10614         Inline jcf_figure_file_type into yyparse.
10615         Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
10616         Defer load_inner_classes and parse_class_file to a second pass,
10617         after we've correctly mapped command-line .clas fiels to classes.
10618         (jcf_figure_file_type):  Removed.
10619         * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE):  Removed flags.
10620         (JCF_ZERO):  Also clear zipd field.
10621         * zipfile.h:  Conditionalize on JCF_H insread of JCF_ZIP.
10622
10623 2001-03-18  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
10624
10625         * jcf-parse.c (yyparse): Change ch from char * to char.
10626
10627 2001-03-19  Per Bothner  <per@bothner.com>
10628
10629         * jvspec.c (lang_specific_driver):  Check for .zip and .jar files.
10630         Add constructed filelist-file at end, following -xjava.  Thus any .o
10631         and library files are not affected by the -xjava.  Also wrap
10632         explicit @FILE with -xjava and -xnone.
10633
10634 2001-03-19  Andrew Haley  <aph@cambridge.redhat.com>
10635
10636         * class.c (build_static_field_ref): Call make_decl_rtl() after
10637         setting the DECL_EXTERNAL flag.
10638
10639 2001-03-17  Per Bothner  <per@bothner.com>
10640
10641         * decl.c (clear_binding_level):  Fix initializer (broke 03-15).
10642
10643         * jcf-write.c (generate_bytecode_insns):  Handle emitting iinc
10644         when result is is needed (target is STACK_TARGET).
10645
10646         * parse.h (JDEP_SOLV):  Removed.
10647         * parse.y (register_incomplete_type):  Use JDEP_TO_RESOLVE instead.
10648
10649         * parse.y (incomplete_class_list): Removed.
10650         (obtain_incomplete_type): Don't use or set incomplete_class_list.
10651         It doesn't work if resolve_class changes the name of an array type
10652         that is on the list and then someone else looks for the modified name.
10653         Also, seems liable to break when compiling multiple source files at
10654         once.  So the simplest is to just remove incomplete_class_list -
10655         it is only a minor space win and it is not even clear it saves time.
10656
10657         * parse.y (resolve_class):  Remove unneeded promote_type.
10658
10659 2001-03-15  Per Bothner  <per@bothner.com>
10660
10661         * java-tree.h (BLOCK_IS_IMPLICIT):  New flag.
10662         * parse.h (BLOCK_EXPR_ORIGIN):  Removed macro.
10663         * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
10664         Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
10665
10666         * jcf-parse.c (yyparse):  Set/reset input_filename for source file.
10667         * parse.y (java_expand_classes):  Likewise.
10668
10669         * parse.y (expand_start_java_method):  Was only called once and had a
10670         misleading name, so inline in caller java_complete_expand_method.
10671         (enter_a_block):  Likewise inline in enter_block and remove.
10672
10673         Remove junk from when gcc/java was created (by copying from C/C++).
10674         * decl.c (keep_next_level_flag, keep_next_if_subblocks):  Remove.
10675         (struct binding_level):  Remove fields keep, keep_if_subblocks,
10676         more_cleanups_ok, have_cleanups (which have never been used).
10677         (pushlevel, poplevel):  Remove related useless code.
10678
10679         * class.c (make_class_data):  The class_dtable_decl (i.e. the
10680         vtable for Class) should be external, except when compiling Class.
10681
10682         * jvspec.c (lang_specific_driver):  Fix -C handling.
10683         Check -save-temps to see if temp @FILE should be deleted.
10684         Follow-up to/fix for February 16 patch.
10685
10686         * verify.c (verify_jvm_instructions):  Better error msgs for dup.
10687         (type_stack_dup):  Remove no-longer neded error check.
10688
10689 2001-03-15  Bryce McKinlay  <bryce@albatross.co.nz>
10690
10691         * mangle.c (mangle_record_type): Rename 'from_pointer' argument
10692         to 'for_pointer'. If this type is for a pointer (argument) mangling,
10693         don't surround the element with 'N..E' if the type name is
10694         unqualified.
10695
10696 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
10697
10698         * class.c (build_static_field_ref): Use COPY_DECL_RTL,
10699         DECL_RTL_SET_P, etc.
10700         (make_method_value): Likewise.
10701         (get_dispatch_table): Likewise.
10702
10703         * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
10704
10705 2001-03-07  Tom Tromey  <tromey@redhat.com>
10706
10707         * config-lang.in (lang_requires): Define.
10708
10709 2001-03-07  Brad Lucier  <lucier@math.purdue.edu>
10710
10711         * typeck.c (convert): Check flag_unsafe_math_optimizations,
10712         not flag_fast_math.
10713
10714 2001-03-05  Per Bothner  <per@bothner.com>
10715
10716         Fix a problem where rest_of_decl_compilation applied to
10717         class_dtable_decl causes problems because it was done too early,
10718         before output file was opened.
10719         * decl.c (init_decl_processing):  Remove init of class_dtable_decl.
10720         * class.c (class_dtable_decl):  Add macro - element of class_roots.
10721         (make_class_data):  Define class_dtable_decl.
10722         * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl):  Removed.
10723
10724 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
10725
10726         * java/class.c, java/decl.c, java/java-tree.h: Replace all
10727         uses of 'boolean' with 'bool'.
10728
10729 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
10730
10731         * lang-specs.h: Add zero initializer for cpp_spec field to all
10732         array elements.
10733
10734 2001-02-16  Per Bothner  <per@bothner.com>
10735
10736         Handle compiling multiple input files at once, and @FILE syntax.
10737         * gcj.texi:  Updated documentation to match.
10738         * java-tree.h (flag_filelist_file, init_src_parse):  New declarations.
10739         * jcf-parse.c (parse_source_file):  Split into ...
10740         (parse_source_file_1):  New function - and:
10741         (parse_source_file_2):  New function.
10742         (yyparse):  On -ffilelist-file, open and scan named file.
10743         On first pass over files, only do parse_source_file_1.
10744         A new second pass calls parse_source_file_2 for each file to compile.
10745         (init_jcf_parse):  Call init_src_parse.
10746         * jvspec.c (INDIRECT_FILE_ARG):  New flag.
10747         (lang_specific_driver):  Support @FILELIST-FILE syntax, as well
10748         as multiple input file combined in one compilation.
10749         * lang-options.h:  Add -ffilelist-file
10750         * lang.c (flag_filelist_file):  New flag variable.
10751         (lang_f_options):  Handle -ffilelist-file.
10752         * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
10753         * parse.h (struct parse_ctxt):  Remove fields incomplete_class and
10754         gclass_list - use global fields of src_parse_roots instead.
10755         * parse.y (src_parse_roots):  New array.
10756         (incomplete_class_list, gclass_list):  New macros.
10757         (push_parser_context, java_pop_parser_context,
10758         java_parser_context_resume):  Don't fiddle with deleted fields.
10759         (various):  Use incomplete_class gclass_list and global macros
10760         instead of parse_ctxt fields - the lists are global.
10761         (init_src_parse):  New function.
10762
10763 2001-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10764
10765         * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
10766
10767 2001-02-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
10768
10769         * parse.y (check_inner_class_access): Moved declaration of local
10770         `enclosing_decl_type' to the right location.
10771
10772 2001-02-19  Bryce McKinlay  <bryce@albatross.co.nz>
10773
10774         * parse.y (parser_check_super_interface): Don't call
10775         check_pkg_class_access for an inner interface.
10776         (parser_check_super): Don't call check_pkg_class_access for inner
10777         class.
10778         (do_resolve_class): Simplify enclosing type loop. Don't call
10779         check_pkg_class_access if CL and DECL are not set.
10780         (find_in_imports_on_demand): Set DECL if class_type needed to be
10781         loaded. Don't call check_pkg_class_access for an inner class.
10782         (check_inner_class_access): Rewritten to implement member access
10783         rules as per spec 6.6.1.
10784         (check_pkg_class_access): Handle the empty package correctly.
10785         (in_same_package): New function. Determine if two classes are in the
10786         same package.
10787
10788 2001-02-18  Bryce McKinlay  <bryce@albatross.co.nz>
10789
10790         * typeck.c (build_java_array_type): Don't try to poke a public `clone'
10791         method into array types.
10792         * parse.y (patch_method_invocation): Bypass access check on clone call
10793         to array instance.
10794
10795 2001-02-15  Alexandre Petit-Bianco  <apbianco@redhat.com>
10796
10797         * expr.c (build_instanceof): Check for arrays when trying fold to
10798         false.
10799
10800 2001-02-15  Jim Meyering  <meyering@lucent.com>
10801
10802         * Make-lang.in (java.install-common): Depend on `installdirs'.
10803         (java.install-info): Likewise.
10804
10805 2001-02-15  Bryce McKinlay  <bryce@albatross.co.nz>
10806
10807         * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
10808
10809 2001-02-14  Tom Tromey  <tromey@redhat.com>
10810             Alexandre Petit-Bianco  <apbianco@cygnus.com>
10811
10812         Fix for PR java/1261.
10813         * typeck.c (build_java_array_type): Add public `clone' method to
10814         arrays.
10815         * parse.y (resolve_qualified_expression_name): Use current_class
10816         when checking for inaccessibility.
10817         (patch_method_invocation): Fixed error message when accessibility
10818         denied.  Added `from_super' argument.
10819
10820 2001-02-14  Alexandre Petit-Bianco  <apbianco@redhat.com>
10821
10822         * parse.y (resolve_class): Don't build a fake decl. Use the one
10823         already built.
10824         * typeck.c (build_java_array_type): Build and assign decl to array
10825         type.
10826
10827 2001-02-14  Alexandre Petit-Bianco  <apbianco@redhat.com>
10828
10829         * parse.y (not_accessible_p): Changed leading comment. Added extra
10830         `where' argument. Use it to enforce protected access rules.
10831         (resolve_qualified_expression_name): Added extra argument to
10832         not_accessible_p.
10833         (patch_method_invocation): Use argument `primary' to provide
10834         not_accessible_p with an extra argument.
10835         (lookup_method_invoke): Added extra argument to not_accessible_p.
10836         (search_applicable_method_list): Likewise.
10837
10838 2001-02-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
10839
10840         * parse.y (resolve_qualified_expression_name): Try to resolve as
10841         an inner class access only if `decl' is a TYPE_DECL.
10842
10843 2001-02-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
10844
10845         * decl.c (classdollar_identifier_node): Initialize.
10846         * java-tree.h (enum java_tree_index): New entry
10847         `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
10848         (classdollar_identifier_node): New macro.
10849         (ID_CLASSDOLLAR_P): Likewise.
10850         * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
10851         (build_dot_class_method_invocation): Likewise.
10852         (find_applicable_accessible_methods_list): `class$' can't be
10853         inherited.
10854
10855 2001-02-09  Raja R Harinath  <harinath@cs.umn.edu>
10856
10857         * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
10858
10859 2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
10860
10861         * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
10862         * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
10863         gone.
10864
10865 2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
10866
10867         * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
10868         outside of the `__U' sequence too.
10869         (unicode_mangling_length): Count `_' or `U' outside of the `__U'
10870         sequence too.
10871
10872 2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
10873
10874         * jvgenmain.c (error): Reversed 2001-02-01 deletion.
10875
10876 2001-02-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
10877
10878         * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
10879         (JVGENMAIN_OBJS): Likewise.
10880         * java-tree.h (append_gpp_mangled_name): New prototype.
10881         * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
10882         Removed cast calling `gcc_add_root.'
10883         * jvgenmain.c (mangle_obstack): New global, initialized.
10884         (main): Use it.
10885         (do_mangle_class): Constify local `ptr.'
10886         Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
10887         append_gpp_mangle_name and update `count' if necessary.
10888         Use `mangle_obstack.'
10889         * mangle.c (append_unicode_mangled_name): Removed.
10890         (append_gpp_mangled_name): Likewise.
10891         (unicode_mangling_length): Likewise.
10892         (mangle_member_name): Return type set to `void.'
10893         (mangle_field_decl): Don't append `U' in escaped names.
10894         (mangle_method_decl): Likewise.
10895         (mangle_member_name): Just use `append_gpp_mangled_name.'
10896         * mangle_name.c: New file.
10897
10898 2001-02-07  Per Bothner  <per@bothner.com>
10899
10900         * check-init.c (check_init):  Fix TRY_FINALLY_EXPR logic.
10901
10902         * check-init.c (check_init):  Don't call done_alternative after
10903         processing loop code, as a LOOP_EXPR never terminates normally.
10904
10905 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10906
10907         * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
10908
10909 2001-02-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
10910
10911         * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
10912         DECLs.
10913
10914 2001-02-06  Tom Tromey  <tromey@redhat.com>
10915
10916         * lex.c (java_new_lexer): Longer error message.
10917
10918 2001-02-05  Jeff Sturm  <jeff.sturm@commerceone.com>
10919             Alexandre Petit-Bianco  <apbianco@cygnus.com>
10920
10921         * typeck.c (build_prim_array_type): Added leading comment.
10922         (build_java_array_type): Moved locals out of
10923         block. Always create the `data' field, fixed alignment to match
10924         C++.
10925
10926 2001-02-04  Tom Tromey  <tromey@redhat.com>
10927
10928         * expr.c (java_lang_expand_expr): Don't bother recomputing
10929         `length'.  Use rest_of_decl_compilation, not make_decl_rtl.
10930         Fixes PR java/1866.
10931
10932 2001-02-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
10933
10934         * parse.y (process_imports): Save the original name of the import
10935         for better error report.
10936
10937 2001-02-04  Bryce McKinlay  <bryce@albatross.co.nz>
10938
10939         * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
10940         of macros used when compiling jvspec.c.
10941         * jvspec.c (lang_specific_driver): Link with the shared
10942         libgcc by default.
10943
10944 2001-02-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10945
10946         * check-init.c (check_init): Call internal_error instead of fatal.
10947         * expr.c (java_lang_expand_expr): Likewise.
10948         * jcf-parse.c (get_constant): Likewise.
10949         * mangle.c (java_mangle_decl): Likewise.
10950         * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
10951         (operator_string): Likewise.
10952         * check-init.c (check_init): Call abort instead of fatal.
10953         * class.c (build_class_ref): Likewise.
10954         * constants.c (write_constant_pool): Likewise.
10955         * decl.c (start_java_method): Likewise.
10956         * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
10957         (java_stack_dup, encode_newarray_type): Likewise.
10958         (build_java_array_length_access): Likewise.
10959         (build_java_check_indexed_type, expand_java_pushc): Likewise.
10960         (build_java_soft_divmod, build_invokeinterface): Likewise.
10961         * java-tree.h (INNER_CLASS_P): Likewise.
10962         * jcf-parse.c (parse_signature, get_name_constant): Likewise.
10963         (give_name_to_class, get_class_constant): Likewise.
10964         * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
10965         (find_constant_index, generate_bytecode_conditional): Likewise.
10966         (generate_bytecode_insns, perform_relocations): Likewise.
10967         * lex.c (java_unget_unicode, java_lex): Likewise.
10968         * mangle.c (mangle_type, mangle_record_type): Likewise.
10969         (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
10970         (finish_mangling): Likewise.
10971         * parse.h (MARK_FINAL_PARMS): Likewise.
10972         * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
10973         (obtain_incomplete_type, java_complete_class): Likewise.
10974         (java_check_regular_methods, java_complete_expand_method): Likewise.
10975         (cut_identifier_in_qualified, check_deprecation): Likewise.
10976         (patch_invoke, find_applicable_accessible_methods_list): Likewise.
10977         (java_complete_lhs, lookup_name_in_blocks): Likewise.
10978         (check_final_variable_indirect_assignment, build_unaryop): Likewise.
10979         * typeck.c (set_local_type, parse_signature_type): Likewise.
10980         (parse_signature_string, build_java_signature): Likewise;
10981         (set_java_signature): Likewise.
10982         * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
10983         * class.c (add_method): Call fatal_error instead of fatal.
10984         (build_static_field_ref): Likewise.
10985         * expr.c (build_known_method_ref, expand_invoke): Likewise.
10986         * jcf-parse.c (get_constant, jcf_parse): Likewise.
10987         * lex.c (java_new_new_lexer): Likewise.
10988         * jv-scan.c (main): Likewise.
10989         (fatal_error): Renamed from fatal.
10990         * jcf-parse.c (yyparse): Call fatal_io_error instead of
10991         pfatal_with_name.
10992         * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
10993         (yyparse): Likewise.
10994         * jcf-write.c (make_class_file_name, write_classfile): Likewise.
10995         * lex.c (java_get_line_col): Likewise.
10996         * jcf-parse.c (load_class): Make errors non-fatal.
10997         * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
10998
10999 2001-02-01  Bryce McKinlay  <bryce@albatross.co.nz>
11000
11001         * jvgenmain.c (class_mangling_suffix): Remove unused string.
11002         (error): Remove unused function.
11003         (main): Don't use "__attribute__ alias" on generated class symbol.
11004
11005 2001-01-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11006
11007         * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
11008         argument.
11009         * parse.y (finish_method_declaration): Code accounting for WFLed
11010         method DECL_NAMEs deleted.
11011         (check_abstract_method_definitions): Likewise.
11012         (resolve_type_during_patch): Layout resolved type.
11013         * typeck.c (lookup_do): Removed unused local.
11014
11015 2001-01-30  Bryce McKinlay  <bryce@albatross.co.nz>
11016
11017         * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
11018         * decl.c (init_decl_processing): Use integer_minus_one_node, not
11019         integer_negative_one_node.
11020         * expr.c (build_java_binop): Likewise.
11021
11022 2001-01-24  Jeff Sturm  <jeff.sturm@commerceone.com>
11023
11024         * zextract.c (read_zip_archive): Read file_offset before writing
11025         zipd and consequently clobbering the header contents.
11026
11027 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11028
11029         * Make-lang.in: Remove all dependencies on defaults.h.
11030         * decl.c: Don't include defaults.h.
11031         * expr.c: Likewise.
11032         * parse.y: Likewise.
11033
11034 2001-01-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11035
11036         * ChangeLog (2001-01-21): Fixed typo.
11037         * class.c (layout_class_method): Code accounting for WFLed
11038         method DECL_NAMEs deleted.
11039         * constant.c (find_methodref_index): Likewise.
11040         * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
11041         * java-tree.h (DECL_FUNCTION_WFL): New macro.
11042         (struct lang_decl): New field `wfl'.
11043         (java_get_real_method_name): Prototype deleted.
11044         * mangle.c (mangle_method_decl): Code accounting for WFLed
11045         method DECL_NAMEs deleted.
11046         * parse.h (GET_METHOD_NAME): Macro deleted.
11047         * parse.y (reset_method_name): Deleted.
11048         (method_header): Set DECL_FUNCTION_WFL.
11049         (check_abstract_method_header): Code accounting for WFLed method
11050         DECL_NAMEs deleted.
11051         (java_get_real_method_name): Deleted.
11052         (check_method_redefinition): Code accounting for WFLed method
11053         DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
11054         (java_check_regular_methods): Likewise.
11055         (java_check_abstract_methods): Likewise.
11056         (java_expand_classes): Don't call `reset_method_name.'
11057         (search_applicable_method_list): Use DECL_NAMEs instead of
11058         GET_METHOD_NAME.
11059         * typeck.c (lookup_do): Code accounting for WFLed method
11060         DECL_NAMEs deleted.
11061
11062 2001-01-25  Richard Earnshaw  <rearnsha@arm.com>
11063
11064         * lex.c (java_read_char): Check for EOF from getc first.
11065
11066 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11067
11068         * class.c (layout_class): Don't lay the superclass out if it's
11069         already being laid out.
11070         * jcf-parse.c (handle_innerclass_attribute): New function.
11071         (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
11072         handle_innerclasses_attribute.
11073         (jcf_parse): Don't load an innerclasses if it's already being
11074         laid out.
11075         * jcf-write.c (append_innerclass_attribute_entry): Static
11076         `anonymous_name' and its initialization deleted. `ocii' and `ini'
11077         to be zero for anonymous classes.
11078
11079 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11080
11081         * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
11082         necessary.
11083         * jcf-parse.c (set_source_filename): Use
11084         MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
11085
11086 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11087
11088         * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
11089         gets a unique asm name.
11090
11091 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11092
11093         * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
11094         (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
11095         if necessary.
11096         (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
11097         * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
11098         * parse.y (lookup_package_type_and_set_next): Deleted.
11099         (resolve_package): Removed unnecessary code.
11100         (find_applicable_accessible_methods_list): `finit$' can't be
11101         inherited.
11102         * verify.c (pop_argument_types): Added missing prototype.
11103
11104 2001-01-23  Bryce McKinlay  <bryce@albatross.co.nz>
11105
11106         * config-lang.in: Disable java by default.
11107
11108 2001-01-23  Tom Tromey  <tromey@redhat.com>
11109
11110         * gcj.texi (Copying): New node.
11111         Added copyright information.
11112
11113 2001-01-21  Per Bothner  <per@bothner.com>
11114
11115         Various fixes to allow compiling a compressed .jar/.zip archive.
11116         * zipfile.h (struct ZipFileCache):  Replace by struct ZipFile.
11117         (struct ZipFile):  Add fields name and next (from  ZipFileCache).
11118         (struct ZipDirectory):  New field zipf points to owning ZipFile.
11119         * jcf.h (struct ZipDirectory):  Add forward declaration.
11120         (struct JCF):   Declare zipd field to have type struct ZipDirectory.
11121         Remove seen_in_zip and zip_offset fields.
11122         (JCF_SEEN_IN_ZIP):  New macro.
11123         * zextract.c (read_zip_archive):  Set ZipDirectory's zipf field.
11124         * jcf-io.c:  Change all ZipFileCache to ZipFile.
11125         (read_zip_member):  New function.
11126         (open_in_zip):  Call read_zip_member.
11127         * jcf-parse.c (find_in_current_zip):  Remove function.
11128         (read_class):  Merge in find_in_current_zip functionality.
11129         Call read_zip_member if needed.
11130         (parse_zip_file_entries):  Use read_zip_member.
11131         (process_zip_dir):  Update for removed and added JCF fields.
11132         (jcf_figure_file_type):  Re-use, don't copy initial ZipFile struct.
11133
11134 2001-01-21  Per Bothner  <per@bothner.com>
11135
11136         Minor optimization of static ggc roots.
11137         * jcf-parse.c (parse_roots):  New static field.
11138         (current_field, current_method, current_file_list):  Replace by macros
11139         naming fields of parse_roots.
11140         (init_jcf_parse):  Combine 3 ggc_add_tree_root calls to 1.
11141         * class.c (class_roots):  New static field.
11142         (registered_class, fields_ident, info_ident, class_list):
11143         New macros naming fields of parse_roots.
11144         (build_static_field_ref):  Don't register roots here.
11145         (layout_class):  Static field list replaced by macro class_list.
11146         (init_class_processing):  Call ggc_add_tree_root for 4 roots.
11147         Initialize fields_ident and info_ident here.
11148
11149 2001-01-21  Per Bothner  <per@bothner.com>
11150
11151         * jcf-parse.c (ggc_mark_jcf):  New function.
11152         (init_jcf_parse):  Register current_jcf as ggc root.
11153
11154 2001-01-21  Per Bothner  <per@bothner.com>
11155
11156         * lang.c (put_decl_node):  Print method's name.
11157
11158 2001-01-21  Per Bothner  <per@bothner.com>
11159
11160         * verify.c (VERIFICATION_ERROR_WITH_INDEX):  New macro.
11161         (verify_jvm_instructions):  Use it, for better error messages on loads.
11162
11163 2001-01-21  Per Bothner  <per@bothner.com>
11164
11165         * verify.c (merge_type_state):  Still may have to merge even if
11166         LABEL_VERIFIED (label).
11167
11168 2001-01-21  Per Bothner  <per@bothner.com>
11169
11170         * parse.y (method_header):  Don't set the DECL_NAME of a FUNCTION_DECL
11171         to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
11172
11173 2001-01-19  Per Bothner  <per@bothner.com>
11174
11175         * expr.c (pop_type_0):  Only return object_ptr_type_node on mismatch
11176         if expeting an interface type.  Refines Tom's change of 2000-09-12.
11177
11178 2001-01-18  Per Bothner  <per@bothner.com>
11179
11180         * gcj.texi (Input Options): Mention .java files.
11181
11182 2001-01-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11183
11184         * lang-options.h (-Wunsupported-jdk11): Removed.
11185         * lang.c (flag_not_overriding): Deleted.
11186         (flag_static_local_jdk1_1): Likewise.
11187         (lang_W_options): Removed "unsupported-jdk11" entry.
11188         * parse.y (java_check_methods): Removed dead code.
11189
11190 2001-01-17  Tom Tromey  <tromey@redhat.com>
11191
11192         Changes suggested by Per Bothner:
11193         * gcj.texi (Input Options): Don't mention input files.
11194         (Code Generation): Updated --main information.
11195         (Invoking jcf-dump): Mention that --javap is incomplete.
11196         From Alexandre Petit-Bianco:
11197         (Warnings): Don't mention -Wunsupported-jdk11.
11198         My stuff:
11199         (Compatibility): Mention JDK 1.2-ness of libraries.
11200         (Resources): Mention resources used when writing gcj.
11201
11202 2001-01-17  Tom Tromey  <tromey@redhat.com>
11203
11204         * gcj.texi: New file.
11205         * Make-lang.in ($(srcdir)/java/gcj.info): New target.
11206         (java.info): Depend on gcj.info.
11207         (java/gcj.dvi): New target.
11208         (java.dvi): Depend on gcj.dvi.
11209         (java.install-info): Wrote.
11210
11211 2001-01-16  Jeff Sturm  <jeff.sturm@appnet.com>
11212
11213         * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
11214         having called make_decl_rtl.
11215
11216 2001-01-14  Per Bothner  <per@bothner.com>
11217
11218         Various patches to emit better messages on verification errors.
11219         * expr.c (push_type_0):  Return error indication on stack overflow,
11220         instead of callinfg fatal.
11221         (push_type):  Now just call push_type_0 (nd fatal on overflow).
11222         (pop_type_0):  Return detailed error message (in a char** argument).
11223         (pop_type):  If pop_type_0 fails, print error message.
11224         (pop_argument_types):  Moved to verify.c.
11225         * verify.c (pop_argument_types):  Moved from expr.c.
11226         Return a (possible) error message, rather than void.
11227         (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING):  New macros.
11228         (verify_jvm_instruction):  Use new macros, improving error messages.
11229         For case OPCODE_astore use object_ptr_type_node.
11230         * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED):  New macros.
11231         (pop_type_0, push_type_0, pop_argument_types):  Update accordingly.
11232
11233         * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
11234         constant, return body without wrapper.  (Improves constant folding.)
11235         * lex.c (build_wfl_node):  Clear TREE_TYPE from returned node.
11236
11237 2001-01-13  Per Bothner  <per@bothner.com>
11238
11239         * expr.c (expand_java_field_op):  Assigning to a final field outside
11240         an initializer does not violate JVM spec, so should be warning, not
11241         error.  (Sun's verifier does not complain - though MicroSoft's does.)
11242
11243 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
11244
11245         * gjavah.c (version), jcf-dump.c (version): Update copyright year
11246         to 2001.
11247
11248 2001-01-11  Bryce McKinlay  <bryce@albatross.co.nz>
11249
11250         * parse.y (resolve_expression_name): Permit instance variables from
11251         enclosing context in super constructor call.
11252         (resolve_qualified_expression_name): Permit enclosing class's qualified
11253         "this" in super constructor call.
11254
11255 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
11256
11257         * class.c (build_utf8_ref): Remove last argument in call to
11258         make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
11259         (build_class_ref): Likewise.
11260         (build_static_field_ref): Likewise.
11261         (get_dispatch_table): Likewise.
11262         (layout_class_method): Likewise.
11263         (emit_register_classes): Likewise.
11264         * constants.c (build_constant_data_ref): Likewise.
11265         * decl.c (builtin_function): Likewise.
11266         (create_primitive_vtable): Likewise.
11267         * expr.c (build_known_method_def): Likewise.
11268         (build_jni_stub): Likewise.
11269         (java_lang_expand_expr): Likewise.
11270
11271 2001-01-10  Tom Tromey  <tromey@redhat.com>
11272
11273         * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
11274
11275 2001-01-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11276
11277         * java-tree.h (lang_printable_name_wls): New prototype.
11278         * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
11279         rather than `current_class' to print type name. Don't prepend type
11280         names when printing constructor names.
11281         (lang_printable_name_wls): New function.
11282         * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
11283         `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
11284         * parse.y (patch_method_invocation): Message tuned for constructors.
11285         (not_accessible_p): Grant `private' access from within
11286         enclosing contexts.
11287
11288 2001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11289
11290         All files with updated copyright when applicable.
11291         * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
11292         * class.c (mangle_class_field): Function removed.
11293         (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
11294         (utf8_cmp, cxx_keyword_p): Moved to lex.c.
11295         (build_class_ref): Call `java_mangle_class_field' instead of
11296         `mangle_class_field.'
11297         (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
11298         (layout_class): Call `java_mangle_decl' instead of
11299         `mangle_static_field.'
11300         (cxx_keywords): Initialized static array moved to `lex.c.'
11301         (layout_class_method): Changed leading comment. Simplified to
11302         call `java_mangle_decl.' Local `ptr' moved in for loop body.
11303         * decl.c (lang_mark_tree): Mark field `package_list.'
11304         * java-tree.h (TYPE_PACKAGE_LIST): New macro.
11305         (struct lang_type): New field `package_list.'
11306         (unicode_mangling_length): Prototype removed.
11307         (append_gpp_mangled_name, append_gpp_mangled_classtype,
11308         emit_unicode_mangled_name): Likewise.
11309         (cxx_keyword_p): New prototype.
11310         (java_mangle_decl, java_mangle_class_field,
11311         java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
11312         * jcf-parse.c (jcf_parse_source): Constify `file' argument to
11313         `build_expr_wfl.'
11314         * jvgenmain.c (main_method_prefix): Global variable removed.
11315         (main_method_suffix): Likewise.
11316         (do_mangle_classname): New function.
11317         (main): Call it. Format changed to accommodate new mangling scheme.
11318         * lex.c: (utf8_cmp): Conditionally prototyped.
11319         (cxx_keywords): Moved from class.c, conditionally defined.
11320         (utf8_cmp, cxx_keyword_p): Likewise.
11321         * mangle.c (obstack.h, ggc.h): Included.
11322         (mangle_field_decl): New function.
11323         (mangle_method_decl, mangle_type, mangle_pointer_type,
11324         mangle_array_type, mangle_record_type,
11325         find_compression_pointer_match, find_compression_array_match,
11326         find_compression_record_match,
11327         find_compression_array_template_match, set_type_package_list,
11328         entry_match_pointer_p, emit_compression_string, init_mangling,
11329         finish_mangling, compression_table_add, mangle_member_name): Likewise.
11330         (mangle_obstack): New global.
11331         (MANGLE_RAW_STRING): New macro.
11332         (unicode_mangling_length): Turned static.
11333         (append_unicode_mangled_name): Renamed from
11334         `emit_unicode_mangled_name.'  Turned static. `mangle_obstack'
11335         replaces `obstack', removed from the parameter list.
11336         (append_gpp_mangled_name): Turned static. `mangle_obstack'
11337         replaces parameter `obstack', removed from the parameter list. Call
11338         `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
11339         (append_gpp_mangled_classtype): Removed.
11340         (compression_table, compression_next): New static variables.
11341         * parse.y (temporary_obstack): Extern declaration removed.
11342
11343 2001-01-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11344
11345         * parse.y (patch_binop): Compute missing type in error situations.
11346
11347 2001-01-05  Bryce McKinlay  <bryce@albatross.co.nz>
11348
11349         * class.c (make_class_data): Push initial value for "arrayclass".
11350         * decl.c (init_decl_processing): Add new class field "arrayclass".
11351
11352 2001-01-05  Bryce McKinlay  <bryce@albatross.co.nz>
11353
11354         From patha@softlab.ericsson.se:
11355         * parse.y (switch_label): Use build, not build1, to construct
11356         DEFAULT_EXPR.
11357
11358 2001-01-04  Neil Booth  <neil@daikokuya.demon.co.uk>
11359
11360         * lang.c (lang_decode_option): Change -MA to -MP.
11361         * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
11362         Update to new prototype; do quote targets.
11363         (jcf_dependency_write): Update.
11364
11365 2000-12-22  Bryce McKinlay  <bryce@albatross.co.nz>
11366
11367         Shorten primitive array allocation path:
11368         * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
11369         to create new primitive arrays.
11370         * expr.c (build_newarray): If generating native code, call
11371         soft_newarray_node with a reference to the primitive TYPE identifier
11372         instead of type_value.
11373
11374 2000-12-17  Bryce McKinlay  <bryce@albatross.co.nz>
11375
11376         Fix for PRs gcj/312 and gcj/253:
11377         * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
11378         dest if they arn't already.
11379         * class.c (layout_class): Call maybe_layout_super_class on
11380         superinterfaces also, but only if compiling from bytecode.
11381
11382         Fix for PR gcj/373:
11383         * parse.y (create_class): Set ACC_STATIC if class is declared in an
11384         interface.
11385
11386 2000-12-15  Tom Tromey  <tromey@redhat.com>
11387
11388         * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
11389         set.
11390
11391 2000-12-14  Andrew Haley  <aph@redhat.com>
11392
11393         * boehm.c (mark_reference_fields): Change test to correctly detect
11394         bitmap overflow.
11395
11396 2000-12-15  Andreas Jaeger  <aj@suse.de>
11397
11398         * config-lang.in (lang_dirs): Added.
11399
11400 2000-12-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11401
11402         * parse.y (end_artificial_method_body): Fixed undefined behavior.
11403         Credits go to rth for finding it.
11404
11405 2000-12-13  Mike Stump  <mrs@wrs.com>
11406
11407         * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
11408
11409 2000-11-07  Tom Tromey  <tromey@cygnus.com>
11410
11411         * Make-lang.in (JAVA_LEX_C): Added chartables.h.
11412         * lex.c (java_ignorable_control_p): Removed.
11413         (java_letter_or_digit_p): Removed.
11414         (java_start_char_p): New function.
11415         (java_read_char): Return `int', not `unicode_t'.  Changed
11416         callers.
11417         (java_read_unicode): Likewise.
11418         (java_read_unicode_collapsing_terminators): Likewise.
11419         (java_get_unicode): Likewise.
11420         (java_new_lexer): Initialize hit_eof.
11421         (java_parse_end_comment): Take `int' argument.
11422         (java_parse_doc_section): Likewise.
11423         (java_parse_escape_sequence): Don't allow backlash-newline.
11424         Return `int'.
11425         * lex.h (JAVA_DIGIT_P): Removed.
11426         (_JAVA_LETTER_OR_DIGIT_P): Removed.
11427         (_JAVA_IDENTIFIER_IGNORABLE): Removed.
11428         (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
11429         (JAVA_PART_CHAR_P): New macro.
11430         (UEOF): Now -1.
11431         (JAVA_CHAR_ERROR): Now -2.
11432         (java_lexer): New field `hit_eof'.
11433         * chartables.h: New file.
11434         * gen-table.pl: new file.
11435
11436 2000-11-20  Tom Tromey  <tromey@cygnus.com>
11437             Alexandre Petit-Bianco  <apbianco@cygnus.com>
11438
11439         * parse.y (java_complete_lhs): Only allow compound assignment of
11440         reference type if type is String.
11441
11442 2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11443
11444         * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
11445         jcf-path.c: Likewise.
11446
11447 2000-12-09  Anthony Green  <green@redhat.com>
11448
11449         * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
11450         filestart and filename_length as int values.
11451
11452 2000-12-07  Mo DeJong  <mdejong@redhat.com>
11453
11454         * jcf-io.c (find_class): Correct the logic that tests to see if a
11455         .java file is newer than its .class file. The compiler was
11456         incorrectly printing a warning when file mod times were equal.
11457
11458 2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
11459
11460         * jvgenmain.c: Use ISPRINT not isascii.
11461
11462 2000-12-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11463
11464         * parse.y (end_artificial_method_body): Fixed typo.
11465
11466 2000-12-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11467
11468         * parse.y (patch_method_invocation): Pick the correct enclosing
11469         context when creating inner class instances.
11470         Fixes gcj/332.
11471
11472 2000-11-26  Joseph S. Myers  <jsm28@cam.ac.uk>
11473
11474         * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
11475         Update copyright year to 2000.
11476
11477 2000-11-23  Anthony Green  <green@redhat.com>
11478
11479         * jcf-parse.c (init_jcf_parse): Register current_file_list root.
11480         Move current_file_list out of yyparse and make it static.
11481
11482         * expr.c: Declare quick_stack and tree_list_free_list as static
11483         (init_expr_processing): Register quick_stack and
11484         tree_list_free_list roots.
11485
11486 2000-11-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11487
11488         * parse.y (build_outer_field_access): New local `decl_ctx', use
11489         it. Check for field's context and current class immediate outer
11490         context inheritance.
11491         (outer_field_access_p): Consider fields inherited from the last
11492         enclosing context.
11493         (build_access_to_thisn): Stop at the last enclosing context if
11494         necessary.
11495         Fixes gcj/367.
11496
11497 2000-11-23  J"orn Rennecke <amylaar@redhat.com>
11498
11499         * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
11500
11501 2000-11-22  Bryce McKinlay  <bryce@albatross.co.nz>
11502
11503         * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
11504         scratch buffer.
11505
11506 2000-11-20  Tom Tromey  <tromey@cygnus.com>
11507
11508         * jv-scan.c (help): Document --complexity.
11509         (options): Added --complexity.
11510         (flag_complexity): New global.
11511         (main): Call `report'.
11512         * parse-scan.y (complexity): New global.
11513         (if_then_statement, if_then_else_statement,
11514         if_then_else_statement_nsi, switch_block_statement_group,
11515         while_expression, do_statement, for_begin, continue_statement,
11516         throw_statement, catch_clause, finally, method_invocation,
11517         conditional_and_expression, conditional_or_expression,
11518         conditional_expression): Update complexity.
11519         (reset_report): Reset complexity.
11520         (report): New function.
11521
11522 2000-11-20  Tom Tromey  <tromey@cygnus.com>
11523
11524         * lex.c (yylex): Added STRICT_TK case.
11525         * parse.y (STRICT_TK): Added.
11526         * parse-scan.y (STRICT_TK): Added.
11527         * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
11528         `;'.  Use 4, not 3, with -k option.  Correctly rename resulting
11529         file.
11530         * keyword.h: Rebuilt.
11531         * keyword.gperf (strictfp): Added.
11532
11533 2000-11-20  Tom Tromey  <tromey@cygnus.com>
11534
11535         * lex.c (yylex): Recognize floating point constants with leading
11536         0.
11537
11538 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11539
11540         * java-tree.h (cyclic_inheritance_report): Constify.
11541         * parse.y (cyclic_inheritance_report): Likewise.
11542
11543 2000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
11544
11545         * parse.y (goal): Remove call to ggc_add_string_root.
11546
11547 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
11548
11549         * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
11550         Create string in scratch buffer, then pass to build_string.
11551
11552 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
11553
11554         * parse.y (issue_warning_error_from_context): Add
11555         ATTRIBUTE_PRINTF.
11556
11557 2000-11-11  Anthony Green  <green@redhat.com>
11558
11559         * jcf-parse.c (process_zip_dir): Add finput parameter.
11560         (jcf_figure_file_type): Call process_zip_dir with appropriate
11561         argument.
11562
11563 2000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11564
11565         * decl.c (copy_lang_decl): Use memcpy, not bcopy.
11566         * jcf-parse.c (jcf_figure_file_type): Likewise.
11567
11568 2000-11-09  Joseph S. Myers  <jsm28@cam.ac.uk>
11569
11570         * parse.y (create_new_parser_context): Use memset () instead of
11571         bzero ().
11572
11573 2000-11-08  Tom Tromey  <tromey@cygnus.com>
11574
11575         * gjavah.c (process_file): Only include gcj/cni.h when generating
11576         CNI stubs.
11577
11578 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
11579
11580         * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
11581         (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
11582         instead of bzero ().
11583
11584 2000-11-05  Tom Tromey  <tromey@cygnus.com>
11585
11586         * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
11587         * lex.c (IS_ZERO): New define.
11588         (java_perform_atof): Error on floating point underflow.
11589
11590 2000-11-04  Tom Tromey  <tromey@cygnus.com>
11591
11592         * lex.c (java_parse_escape_sequence): Only read two octal
11593         characters if the first one is greater than 3.  Don't allow
11594         "octal" numbers to include the digits 8 or 9.
11595
11596 2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
11597
11598         * Make-lang.in (java.distdir): Remove.
11599
11600 2000-11-03  Tom Tromey  <tromey@cygnus.com>
11601
11602         * Make-lang.in (java.dvi): New target.
11603         Partial fix for PR other/567.
11604
11605         * lang-options.h: Mention -Wout-of-date.
11606         * jcf-dump.c (flag_newer): New global.
11607         * gjavah.c (flag_newer): New global.
11608         * jcf-io.c (find_class): Only warn when flag_newer set.
11609         * lang.c (flag_newer): New global.
11610         (struct string_option): New declaration.
11611         (lang_W_options): New global.
11612         (process_option_with_no): New function.
11613         (lang_decode_option): Use it.
11614
11615         * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
11616         * gjavah.c (cxx_keyword_subst): Handle any number of trailing
11617         `$'.
11618
11619         * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
11620         (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
11621         * lex.c (java_read_unicode): Removed `term_context' argument.
11622         Recognize any number of `u' in `\u'.
11623         (java_read_unicode_collapsing_terminators): New function.
11624         (java_get_unicode): Use it.
11625         (java_lineterminator): Removed.
11626         (yylex): Produce error if character literal is newline or single
11627         quote.  Return if eof found in middle of `//' comment.  EOF in
11628         `//' comment is only an error if pedantic.
11629         (java_ignorable_control_p): New function.
11630         (java_parse_end_comment): Return if eof found in middle of
11631         comment.
11632         Include flags.h.
11633         * jv-scan.c (pedantic): New global.
11634
11635 2000-10-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11636
11637         * parse.y (outer_field_access_p): Inherited fields aren't
11638         consider outer fields.
11639         (maybe_build_thisn_access_method): Use
11640         PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
11641         (resolve_expression_name): Trigger an error if a static field
11642         is being accessed as an outer field.
11643
11644 2000-10-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11645
11646         * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
11647         Fixes gcj/365.
11648
11649 2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
11650
11651         * Make-lang.in: Move all build rules here from Makefile.in,
11652         adapt to new context.  Wrap all rules that change the current
11653         directory in parentheses.  Expunge all references to $(P).
11654         When one command depends on another and they're run all at
11655         once, use && to separate them, not ;.  Add OUTPUT_OPTION to
11656         all object-file generation rules.  Delete obsolete variables.
11657
11658         * Makefile.in: Delete.
11659         * config-lang.in: Delete outputs= line.
11660
11661 2000-10-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11662
11663         * parse.y (patch_method_invocation): NULLify this_arg when already
11664         inserted.
11665         (maybe_use_access_method): Handle call to methods unrelated to the
11666         current class. Fixed comment.
11667         Fixes gcj/361.
11668
11669 2000-10-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11670
11671         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
11672         scope.
11673
11674 2000-10-24  Tom Tromey  <tromey@cygnus.com>
11675
11676         * lex.c (java_new_lexer): Initialize new fields.  Work around
11677         broken iconv() implementations.
11678         (java_read_char): Swap bytes if required.  Use fallback decoder if
11679         required.
11680         (byteswap_init, need_byteswap): New globals.
11681         (java_destroy_lexer): Only close iconv handle if it is in use.
11682         * lex.h (java_lexer): New fields read_anything, byte_swap,
11683         use_fallback.
11684         Made out_buffer unsigned.
11685
11686 2000-10-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11687
11688         * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
11689         where an enclosing context can be set on the jdep.
11690         (do_resolve_class): Fixed identation.
11691
11692 2000-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11693
11694         * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
11695
11696         * jcf-reader.c (peek_attribute, skip_attribute): Only define
11697         when requested.
11698
11699         * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
11700
11701         * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
11702
11703 2000-10-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11704
11705         * jcf-write.c (OP1): Update `last_bc'.
11706         (struct jcf_block): Fixed indentation and typo in comments.  New
11707         field `last_bc'.
11708         (generate_bytecode_insns): Insert `nop' if `jsr' immediately
11709         follows `monitorenter'.
11710         * parse.y (patch_synchronized_statement): New local `tmp'. Call
11711         `patch_string'.
11712         Fixes gcj/232.
11713
11714 2000-10-16  Tom Tromey  <tromey@cygnus.com>
11715
11716         * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
11717         * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
11718         * lang-options.h: Added -MA, -MT, -MF..
11719         * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
11720         (DEPEND_TARGET_SET): New macro.
11721         (DEPEND_FILE_ALREADY_SET): Likewise.
11722         (init_parse): Handle new flags.
11723         * jcf.h (jcf_dependency_print_dummies): Declare.
11724         * Make-lang.in (s-java): Added mkdeps.o.
11725         * Makefile.in (BACKEND): Added mkdeps.o.
11726         (../gcjh$(exeext)): Added mkdeps.o.
11727         (../jcf-dump$(exeext)): Added mkdeps.o.
11728         * jcf-depend.c: Include mkdeps.h.
11729         (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
11730         add_entry): Removed.
11731         (jcf_dependency_reset): Rewrote.
11732         (dependencies): New global.
11733         (jcf_dependency_set_target): Rewrote.
11734         (jcf_dependency_add_target): Likewise.
11735         (jcf_dependency_add_file): Likewise.
11736         (munge): Removed.
11737         (print_ents): Removed.
11738         (jcf_dependency_write): Rewrote.
11739         (print_dummies): New global.
11740         (jcf_dependency_print_dummies): New function
11741         (jcf_dependency_write): Call deps_dummy_targets if required.
11742
11743 2000-10-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11744
11745         * gjavah.c (add_class_decl): Removed unused variables `tname',
11746         `tlen' and `name_index'.
11747         * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
11748         * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
11749         in `wfl_operator' with value.
11750         (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
11751         (jcf_figure_file_type): Fixed identation.
11752         * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
11753         * parse.y (analyze_clinit_body): New function.
11754         (static_initializer:): Reset `current_static_block'.
11755         (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
11756         `wfl_operator' with new value.
11757         (lookup_cl): Use EXPR_WFL_FILENAME.
11758         (maybe_yank_clinit): Handle bogus <clinit> bodies, call
11759         analyze_clinit_body.
11760         (build_outer_field_access): Access to this$<n> built from
11761         current_class, not its outer context.
11762         (build_access_to_thisn): Fixed leading comment. Tidied things up.
11763         (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
11764         (patch_method_invocation): Use `is_static_flag' when already
11765         initialized.
11766         (patch_newarray): Removed assignment in ternary operator.
11767
11768 2000-10-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11769
11770         * except.c (free_eh_ranges): Don't free `whole_range'.
11771
11772 2000-10-15  Anthony Green  <green@redhat.com>
11773
11774         * decl.c (init_decl_processing): Call init_class_processing before
11775         anything else.
11776
11777 2000-10-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11778
11779         * check-init.c (check_init): Fixed leading comment. Use
11780         LOCAL_FINAL_P.
11781         * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
11782         (give_name_to_locals): Likewise.
11783         (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
11784         fields in lang_decl_var.
11785         * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
11786         DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
11787         (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
11788         (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
11789         DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
11790         (LOCAL_FINAL): Rewritten.
11791         (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
11792         MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
11793         (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
11794         `init_final' fields.
11795         (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
11796         `final_uid', `final_liic', `final_ierr' and `local_final' fields.
11797         (TYPE_HAS_FINAL_VARIABLE): New macro.
11798         (struct lang_type): Added `afv' field.
11799         * parse.y (check_static_final_variable_assignment_flag): New function.
11800         (reset_static_final_variable_assignment_flag): Likewise.
11801         (check_final_variable_local_assignment_flag): Likewise.
11802         (reset_final_variable_local_assignment_flag): Likewise.
11803         (check_final_variable_indirect_assignment): Likewise.
11804         (check_final_variable_global_assignment_flag): Likewise.
11805         (add_inner_class_fields): Use LOCAL_FINAL_P.
11806         (register_fields): Handle local finals and final variables.
11807         (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
11808         (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
11809         (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
11810         on local finals.
11811         (java_complete_expand_methods): Loop to set
11812         TYPE_HAS_FINAL_VARIABLE. Call
11813         `reset_final_variable_local_assignment_flag' and
11814         `check_final_variable_local_assignment_flag' accordingly before
11815         and after constructor expansion. Call
11816         `reset_static_final_variable_assignment_flag'
11817         before expanding <clinit> and after call
11818         `check_static_final_variable_assignment_flag' if the
11819         current_class isn't an interface. After all methods have been
11820         expanded, call `check_final_variable_global_assignment_flag' and
11821         `check_static_final_variable_assignment_flag' if the current class
11822         is an interface.
11823         (maybe_yank_clinit): Fixed typo in comment.
11824         (build_outer_field_access_methods): Removed old sanity check. Use
11825         FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
11826         Don't create access methods for finals.
11827         (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
11828         (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
11829         existing DECL_INIT has been processed.
11830         (java_complete_lhs): Likewise.
11831         (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
11832         Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
11833         logic.
11834         (patch_assignment): Use LOCAL_FINAL_P.
11835         (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
11836         DECL_INITIAL is nullified.
11837         Fixes gcj/163.
11838
11839 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11840
11841         * Make-lang.in (parse.c, parse-scan.c): Create atomically.
11842
11843         * Makefile.in (parse.c, parse-scan.c): Likewise.
11844
11845 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
11846
11847         * class.c (temporary_obstack): Remove.
11848         (make_class): Don't mess with obstascks.
11849         (push_class): Likewise.
11850         (set_super_info): Likewise.
11851         (add_method_1): Likewise.
11852         (add_method): Likewise.
11853         (add_field): Likewise.
11854         (build_utf8_ref): Likewise.
11855         (build_class_ref): Likewise.
11856         (build_static_field_ref): Likewise.
11857         (finish_class): Likewise.
11858         (push_super_field): Likewise.
11859         (layout_class): Likewise.
11860         (layout_class_methods): Likewise.
11861         (init_class_processing): Likewise.
11862         * constants.c (get_tag_node): Likewise.
11863         (build_constant_data_ref): Likewise.
11864         * decl.c (ggc_p): Remove.
11865         (copy_lang_decl): Use ggc_alloc.
11866         (complete_start_java_method): Don't mess with obstacks.
11867         (start_java_method): Likewise.
11868         (end_java_method): Likewise.
11869         * except.c (link_handler): Use xmalloc.
11870         (free_eh_ranges): New function.
11871         (method_init_exceptions): Use it.
11872         (add_handler): Use xmalloc.
11873         (expand_start_java_handler): Don't mess with obstacks.
11874         (prepare_eh_table_type): Likewise.
11875         (expand_end_java_handler): Likewise.
11876         * expr.c (push_value): Likewise.
11877         (create_label_decl): Likewise.
11878         (build_jni_stub): Likewise.
11879         (java_lang_expand_expr): Likewise.
11880         (note_instructions): Use xrealloc.
11881         (java_push_constant_from_pool): Don't mess with obstacks.
11882         (process_jvm_instruction): Likewise.
11883         * java-tree.h (cyclic_inheritance_report): Remove duplicate
11884         declaration.
11885         * jcf-parse.c (get_constant): Don't mess with obstacks.
11886         (read_class): Likewise.
11887         (jcf_parse): Likewise.
11888         * lex.c (expression_obstack): Remove.
11889         (java_lex): Don't use obstack_free.
11890         * parse.h (exit_java_complete_class): Don't mess with obstacks.
11891         (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
11892         (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
11893         (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
11894         * parse.y (gaol): Add more GC roots.
11895         (add_inner_class_fields): Adjust calls to MANGLE_* macros.
11896         (lookup_field_wrapper): Likewise.
11897         (obtain_incomplete_type): Don't mess with obstacks.
11898         (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
11899         macros.
11900         (craft_constructor): Don't mess with obstacks.
11901         (safe_layout_class): Likewise.
11902         (java_complete_class): Likewise.
11903         (source_end_java_method): Likewise.
11904         (build_outer_field_access_methods): Likewise.
11905         (build_outer_method_access_method): Likewise.
11906         (maybe_build_thisn_access_method): Likewise.
11907         (build_dot_class_method_invocation): Likewise.
11908         (java_complete_tree): Likewise.
11909         (java_complete_lhs): Likewise.
11910         (do_merge_string_cste): Likewise.
11911         (patch_string_cst): Likewise.
11912         (array_constructor_check_entry): Likewise.
11913         * typeck.c (build_java_array_type): Likewise.
11914         (parse_signature_string): Likewise.
11915         (build_java_signature): Likewise.
11916
11917 2000-10-12  Tom Tromey  <tromey@cygnus.com>
11918
11919         Fix for PR gcj/356:
11920         * gjavah.c (add_class_decl): Don't special-case inner classes.
11921         (add_namelet): Likewise.
11922
11923 2000-10-11  Rodney Brown  <RodneyBrown@mynd.com>
11924
11925         * java-tree.h: Constify current_encoding.
11926         * lang.c: Constify current_encoding.
11927
11928 2000-10-10  Jeff Sturm  <jeff.sturm@appnet.com>
11929
11930         * jvgenmain.c (class_mangling_suffix): Omit `.'.
11931         (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
11932
11933 2000-10-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11934
11935         * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
11936         patch. Fixes gcj/340.
11937
11938 2000-10-10  Tom Tromey  <tromey@cygnus.com>
11939
11940         * lex.c (java_new_lexer): Initialize out_first and out_last
11941         fields.
11942         * lex.h (java_lexer): Added out_buffer, out_first, out_last.
11943
11944 2000-10-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11945
11946         * parse.y (pop_current_osb): New function.
11947         (array_type:): Use `dims:', changed actions
11948         accordingly. Suggested by Anthony Green.
11949         (array_creation_expression:): Used pop_current_osb.
11950         (cast_expression:): Likewise.
11951         (search_applicable_method_list): Fixed indentation.
11952
11953 2000-10-08  Anthony Green  <green@redhat.com>
11954
11955         * parse.y (array_type_literal): Remove production.
11956         (type_literals): Refer to array_type, not array_type_literal.
11957
11958 2000-10-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11959
11960         Patch contributed by Corey Minyard.
11961         * decl.c (check_local_named_variable): New function.
11962         (tree check_local_unnamed_variable): Likewise.
11963         (find_local_variable): Splitted. Call check_local_{un}named_variable.
11964
11965 2000-10-07  Anthony Green  <green@redhat.com>
11966
11967         * class.c (layout_class): Handle case where superclass can't be
11968         layed out yet.
11969
11970 2000-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
11971
11972         * Makefile.in (keyword.h): Refer to GNU FTP site for updated
11973         gperf.
11974
11975 2000-10-05  Tom Tromey  <tromey@cygnus.com>
11976
11977         * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
11978         * jvgenmain.c (class_mangling_prefix): Removed.
11979         (class_mangling_suffix): New global.
11980         (main): Use it.
11981         * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
11982         `$'.
11983         (print_method_info): Handle overrides for static and final
11984         methods.
11985         (process_file): Generate declaration for class object field.
11986         * class.c (cxx_keywords): New array.
11987         (utf8_cmp): New function.
11988         (cxx_keyword_p): New function.
11989         (layout_class_method): Mangle C++ keywords by appending `$'.
11990         (mangle_field): New function.
11991         (mangle_class_field): Use mangle_field.  Mangle class name as
11992         `class$'.
11993         (mangle_static_field): Use mangle_field.
11994
11995 2000-10-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11996
11997         * decl.c (find_local_variable): Removed uncessary type check and
11998         fixed range check typo. From Corey Minyard.
11999
12000 2000-09-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12001
12002         * decl.c (give_name_to_locals): New local `code_offset'. Call
12003         `maybe_adjust_start_pc'.
12004         * expr.c (note_instructions): New function.
12005         (expand_byte_code): Don't collect insn starts here.
12006         (peek_opcode_at_pc): New function.
12007         (maybe_adjust_start_pc): Likewise.
12008         * java-tree.h (maybe_adjust_start_pc): Declare.
12009         (note_instructions): Likewise.
12010         * jcf-parse.c (parse_class_file): Call `note_instructions'.
12011
12012 2000-09-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12013
12014         * parse.y (field_access:): Fixed indentation.
12015         (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
12016
12017 2000-09-07  Tom Tromey  <tromey@cygnus.com>
12018
12019         Fix for PR gcj/307:
12020         * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
12021         JPRIMITIVE_TYPE_P, for arithmetic operators.
12022         (patch_method_invocation): Indentation fix.
12023         (try_builtin_assignconv): Handle boolean specially.  Fixed typo.
12024         (valid_builtin_assignconv_identity_widening_p): Handle boolean.
12025         (do_unary_numeric_promotion): Cleaned up code.
12026         (valid_cast_to_p): Handle boolean correctly.
12027
12028 2000-09-27  Tom Tromey  <tromey@cygnus.com>
12029
12030         * lex.c (java_read_unicode): Reset bs_count when finished with
12031         `\u' sequence.
12032
12033 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
12034
12035         Convert to GC.
12036         * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
12037         * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
12038         (typeck.o): Depend on ggc.h.
12039         * class.c (add_method_1): Use GC functions for allocation.
12040         (init_class_processing): Register roots.
12041         * decl.c (ggc_p): Set to 1.
12042         (pending_local_decls): Make it static.
12043         (push_jvm_slot): Use GC functions for allocation.
12044         (init_decl_processing): Register roots.
12045         (give_name_to_locals): Use GC functions for allocation.
12046         (lang_mark_tree): New function.
12047         * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
12048         functions for allocation.
12049         * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
12050         * lex.c (java_lex): Use build_string, rather than replicating it
12051         inline.
12052         * parse.y (goal): Add more roots.
12053         (mark_parser_ctxt): New function.
12054         * typeck.c: Include ggc.h.
12055
12056 2000-09-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12057
12058         * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
12059         contains something else than MODIFY_EXPR.
12060
12061 2000-09-23  Mark Mitchell  <mark@codesourcery.com>
12062
12063         * Make-lang.in (JAVA_SRCS): Include java-tree.h.
12064         * Makefile.in (parse.o): Depend on ggc.h.
12065         (class.o): Likewise.
12066         (constants.o): Likewise.
12067         (decl.o): Likewise.
12068         (expr.o): Likewise.
12069         (jcf-parse.o): Likewise.
12070         (jcf-write.o): Likewise.
12071         (mangle.o): Likewise.
12072         * class.c: Include ggc.h.
12073         (build_static_field_ref): Register GC roots.
12074         (layout_class): Likewise.
12075         (init_class_processing): Likewise.
12076         * constants.c: Include ggc.h.
12077         (current_constant_pool_data_ref): Remove.
12078         (tag_nodes): Move it to ...
12079         (get_tag_node): ... here.  Register GC roots.
12080         * decl.c: Include ggc.h.  Remove many global tree definitions.
12081         (throw_node): Define.
12082         (java_global_trees): Likewise.
12083         (predef_filenames): Make the size a constant.
12084         (init_decl_processing): Adjust accordingly.
12085         (init_decl_processing): Call init_jcf_parse.  Register GC roots.
12086         * expr.c: Include ggc.h.
12087         (init_expr_processing): Register GC roots.
12088         (build_invokeinterface): Likewise.
12089         * java-tree.h: Replace extern tree declarations with macros.
12090         (java_global_trees): New variable.
12091         (java_tree_index): New enumeration.
12092         (init_jcf_parse): Declare.
12093         * jcf-parse.c: Include ggc.h.
12094         (current_class): Remove declaration.
12095         (main_class): Likewise.
12096         (all_class_list): Likewise.
12097         (predefined_filename_p): Adjust for constant size of
12098         predef_filenames.
12099         (init_jcf_parse): New function.
12100         * jcf-write.c: Include ggc.h.
12101         (generate_classfile): Register GC roots.
12102         (append_synthetic_attribute): Likewise.
12103         (append_innerclass_attribute_entry): Likewise.
12104         * lang.c: Include ggc.h.
12105         (lang_print_error): Register GC roots.
12106         * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
12107         with macros.
12108         * parse.y: Include ggc.h.
12109         (wfl_operator): Remove.
12110         (goal): Register GC roots.
12111         (java_pop_parser_context): Adjust for new field names.
12112         (java_parser_context_save_global): Likewse.
12113         (java_parser_context_restore_global): Likewise.
12114         (java_parser_context_suspend): Likewise.
12115         (java_parser_context_resume): Likewise.
12116         (verify_constructor_circularity): Register GC roots.
12117         (lookup_cl): Likewise.
12118         (java_reorder_fields): Likewise.
12119         (build_current_this): Likewise.
12120         (class_in_current_package): Likewise.
12121         (argument_types_convertible): Likewise.
12122         (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
12123
12124 2000-09-14  Tom Tromey  <tromey@cygnus.com>
12125
12126         * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
12127
12128 2000-09-13  Tom Tromey  <tromey@cygnus.com>
12129
12130         * jcf-parse.c: Include <locale.h>.
12131         * jv-scan.c: Include <locale.h>.
12132
12133 2000-09-12  Tom Tromey  <tromey@cygnus.com>
12134
12135         * expr.c (pop_type_0): Return `Object' if trying to merge two
12136         interface types.
12137         * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
12138         interface types; `Object' is always a valid supertype.
12139
12140 2000-09-12  Tom Tromey  <tromey@cygnus.com>
12141
12142         Fix for PR gcj/33:
12143         * jv-scan.c (help): Document --encoding.
12144         (options): Added `encoding' entry.
12145         (OPT_ENCODING): New define.
12146         (main): Handle --encoding.
12147         Include <langinfo.h> if nl_langinfo exists.
12148         * lang-options.h: Document --classpath, --CLASSPATH, --main, and
12149         --encoding.
12150         * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
12151         (parse_source_file): Correctly call java_init_lex.  Added `finput'
12152         argument.  Use nl_langinfo to determine default encoding.
12153         * java-tree.h (current_encoding): Declare.
12154         * parse.y (java_parser_context_restore_global): Don't restore
12155         `finput'.
12156         (java_parser_context_save_global): Don't set `finput' field.
12157         (java_pop_parser_context): Don't restore `finput'.  Free old lexer
12158         if required.
12159         * lang.c (current_encoding): New global.
12160         (lang_decode_option): Recognize `-fencoding='.
12161         (finish_parse): Don't close finput.
12162         * parse.h (struct parser_ctxt): Removed `finput' and
12163         `unget_utf8_value' fields.  Added `lexer' field.
12164         (java_init_lex): Fixed declaration.
12165         * lex.c (java_new_lexer): New function.
12166         (java_destroy_lexer): Likewise.
12167         (java_read_char): Added `lex' argument.  Handle iconv case.
12168         (java_read_unicode): Added `lex' argument.  Count backslashes in
12169         lexer structure.
12170         (java_init_lex): Added `finput' and `encoding' arguments.  Set
12171         `lexer' field in ctxp.
12172         (BAD_UTF8_VALUE): Removed.
12173         (java_lex): Handle seeing UEOF in the middle of a string literal.
12174         * lex.h: Include <iconv.h> if HAVE_ICONV defined.
12175         (java_lexer): New structure.
12176         (UNGETC): Removed.
12177         (GETC): Removed.
12178         (DEFAULT_ENCODING): New define.
12179         (java_destroy_lexer): Declare.
12180
12181 2000-09-12  Tom Tromey  <tromey@cygnus.com>
12182
12183         Fix for PR gcj/343:
12184         * lex.c (java_init_lex): Initialize java_io_serializable.
12185         * parse.y (java_io_serializable): New global.
12186         (valid_ref_assignconv_cast_p): An array can be cast to
12187         serializable.
12188
12189 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
12190
12191         * decl.c, expr.c: Include defaults.h if not already included.
12192         Don't define the *_TYPE_SIZE macros.
12193
12194 2000-09-09  Geoffrey Keating  <geoffk@cygnus.com>
12195
12196         * typeck.c (build_java_array_type): Correct first parameter
12197         in ADJUST_FIELD_ALIGN invocation.
12198
12199 2000-09-06  Tom Tromey  <tromey@cygnus.com>
12200
12201         * lang-specs.h: Also recognize `-femit-class-files'.
12202
12203 2000-09-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12204
12205         * verify.c (merge_types): Load the types to merge if necessary.
12206
12207 2000-09-02  Anthony Green  <green@redhat.com>
12208
12209         * jcf-io.c: Include zlib.h.
12210         (open_in_zip): Read compressed class file archives.
12211         * zipfile.h (ZipDirectory): Add uncompressed_size and
12212         compression_method fields.
12213         * zextract.c (read_zip_archive): Collect file compression info.
12214
12215 2000-08-15  Bryce McKinlay  <bryce@albatross.co.nz>
12216
12217         * parse.y (do_resolve_class): Also explore superclasses of
12218         intermediate enclosing contexts when searching for inner classes.
12219
12220 2000-08-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12221
12222         * parse.y (variable_declarator_id:): Better error message.
12223         (expression_statement:): Use YYNOT_TWICE.
12224         (cast_expression:): Likewise.
12225         (assignment:): Likewise.
12226
12227 2000-08-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12228
12229         * parse.y (do_merge_string_cste): New locals. Create new
12230         STRING_CSTs each time, use memcpy. Fixes gcj/311.
12231
12232 2000-08-07  Hans Boehm  <boehm@acm.org>
12233
12234         * boehm.c (mark_reference_fields): Set marking bits for all words in
12235         a multiple-word record.
12236         (get_boehm_type_descriptor): Use the procedure marking descriptor for
12237         java.lang.Class.
12238
12239 2000-08-31  Mike Stump  <mrs@wrs.com>
12240
12241         * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
12242         jcf-dump$(exeext)): Make parallel safe.
12243
12244 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
12245
12246         * jcf-parse.c (set_source_filename): Constify a char *.
12247         * jcf-write.c (append_innerclasses_attribute,
12248         make_class_file_name): Constify a char *.  Don't recycle a
12249         variable for an unrelated purpose.
12250         * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
12251         (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
12252
12253 2000-08-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12254
12255         * expr.c (can_widen_reference_to): Fixed indentation.
12256         * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
12257         * parse.y: `finit$' replaces `$finit$' in comments.
12258         (try_builtin_assignconv): Fixed leading comment.
12259
12260 2000-08-25  Greg McGary  <greg@mcgary.org>
12261
12262         * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
12263
12264 2000-08-24  Greg McGary  <greg@mcgary.org>
12265
12266         * lang.c (lang_decode_option): Use ARRAY_SIZE.
12267         * parse.y (BINOP_LOOKUP): Likewise.
12268
12269 2000-08-22  Andrew Haley  <aph@cygnus.com>
12270
12271         * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
12272         sign extending. Fixes gcj/321.
12273         * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
12274         combining to make a jlong. Fixes gcj/321.
12275
12276 2000-08-21  Nix  <nix@esperi.demon.co.uk>
12277
12278         * lang-specs.h: Do not process -o or run the assembler if
12279         -fsyntax-only.
12280
12281 2000-08-16  Andrew Haley  <aph@cygnus.com>
12282
12283         * typeck.c (build_java_array_type): Rewrite code to do array
12284         alignment.  Take into account back-end macros when aligning array
12285         data.  Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
12286         user to set alignment. Fixes gcj/252 and 160.
12287
12288 2000-08-09  Tom Tromey  <tromey@cygnus.com>
12289
12290         * parse.y (check_abstract_method_definitions): Now return `int'.
12291         Check implemented interfaces.  Fixes PR gcj/305.
12292
12293         * parse.y (patch_switch_statement): Disallow `long' in switch
12294         expressions.  Fixes PR gcj/310.
12295
12296 2000-08-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12297
12298         * decl.c (finit_leg_identifier_node): New global.
12299         (init_decl_processing): Use `finit$' to initialize
12300         finit_identifier_node. Use `$finit$' to initialize
12301         finit_leg_identifier_node.
12302         * expr.c (expand_java_field_op): Use ID_FINIT_P.
12303         * java-tree.h (finit_identifier_node): Changed attached comment.
12304         (finit_leg_identifier_node): New declaration.
12305         (ID_FINIT_P): Take finit_identifier_node and
12306         finit_leg_identifier_node into account. This is a backward
12307         compatibility hack.
12308
12309 2000-08-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12310
12311         * jcf-write.c (generate_bytecode_conditional): Re-installed lost
12312         Jan 6 2000 patch.
12313         (generate_bytecode_insns): Check `nargs' before emitting it.
12314         * verify.c (merge_type_state): Fixed typo.
12315         * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
12316         generate_bytecode_{conditional,insns}.
12317
12318 2000-08-13  Anthony Green  <green@redhat.com>
12319
12320         * check-init.c (check_init): Add case for BIT_FIELD_REF (required
12321         for -pg builds).
12322
12323 2000-08-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12324
12325         * class.c (maybe_layout_super_class): Fixed indentation.
12326         * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
12327         (java_check_methods): New function declaration.
12328         * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
12329         instead of `str_ptr'.
12330         * jcf-write.c (generate_bytecode_insns): Emit number the of args
12331         of a `invokeinterface' at the right time.
12332         * parse.h (WFL_STRIP_BRACKET): New macro.
12333         (SET_TYPE_FOR_RESOLUTION): Use it.
12334         * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
12335         (check_class_interface_creation): Don't check for cross package
12336         innerclass name clashes.
12337         (method_header): Behave properly if MDECL is `error_mark_node'.
12338         (method_declarator): Return `error_mark_node' if bogus current
12339         class.
12340         (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
12341         (resolve_and_layout): New local `decl_type', set and used. Call
12342         java_check_methods.
12343         (java_check_methods): New method.
12344         (java_layout_classes): Use it.
12345         (resolve_qualified_expression_name): No EH check necessary in
12346         access$<n>.
12347         (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
12348         `case' statement.
12349         (patch_assignment): Set DECL_INITIAL on integral final local.
12350
12351 2000-08-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12352
12353         * java-tree.h (flag_extraneous_semicolon): New extern.
12354         * lang-options.h: (-Wextraneous-semicolon): New option.
12355         * lang.c (flag_redundant): Fixed typo in leading comment.
12356         (flag_extraneous_semicolon): New global.
12357         (lang_decode_option): Set `flag_extraneous_semicolon' when
12358         -Wall. Decode `-Wextraneous-semicolon'.
12359         * parse.y (type_declaration:): Removed `SC_TK' hack, added
12360         `empty_statement' rule.
12361         (class_body_declaration): Likewise.
12362         (method_body:): Accept `;' as a method body.
12363         (static_initializer:): Removed `SC_TK' hack.
12364         (constructor_block_end:): Likewise.
12365         (empty_statement:): Report deprecated empty declaration. Fixes
12366         gcj/295
12367
12368 2000-08-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12369
12370         * parse.y (build_dot_class_method_invocation): Changed parameter
12371         name to `type'. Build signature from `type' and convert it to a
12372         STRING_CST if it's an array.
12373         (patch_incomplete_class_ref): `build_dot_class_method_invocation'
12374         to use `ref_type' directly.
12375
12376 2000-08-06  Ovidiu Predescu  <ovidiu@cup.hp.com>
12377
12378         * lang-options.h: Added a comma after the last element to avoid
12379         syntax errors when other languages define additional options.
12380
12381 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
12382
12383         * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
12384         * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
12385         (jc1): Link with $(BACKEND).
12386         (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
12387
12388 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
12389
12390         * jvspec.c: Adjust type of second argument to
12391         lang_specific_driver, and update code as necessary.
12392
12393         * class.c (build_dtable_decl): Initialize dummy.
12394
12395 2000-08-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12396
12397         * parse.y (maybe_yank_clinit): When generating bytecode: non empty
12398         method bodies not to rule out discarding `<clinit>'; don't use
12399         <clinit> to initialize static fields with constant initializers.
12400
12401 2000-08-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12402
12403         * gjavah.c (print_method_info): Added `synth' parameter. Skip
12404         synthetic methods.
12405         (method_synthetic): New global.
12406         (HANDLE_METHOD): Recognize synthetic method and tell
12407         `print_method_info' about it.
12408         (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
12409         processing a synthetic method.
12410         * jcf-reader.c (skip_attribute): New function.
12411         ( skip_attribute): Likewise.
12412
12413 2000-08-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12414
12415         * parse.y (build_outer_field_access): Fixed comments.
12416         (fix_constructors): Emit the initialization of this$<n> before
12417         calling $finit$.
12418         (resolve_qualified_expression_name): Build an access to `decl' if
12419         necessary.
12420
12421 2000-07-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12422
12423         * parse-scan.y (curent_class): Non longer const.
12424         (inner_qualifier, inner_qualifier_length): Deleted.
12425         (current_class_length): New global.
12426         (bracket_count): Fixed typo in leading comment.
12427         (anonymous_count): New global.
12428         (class_instance_creation_expression:): Handle anonymous classes.
12429         (anonymous_class_creation:): New rule.
12430         (push_class_context): Rewritten.
12431         (pop_class_context): Likewise.
12432         (INNER_QUALIFIER): Macro deleted.
12433         (report_class_declaration): call `push_class_context' when
12434         entering the function. `fprintf' format modified not to use
12435         INNER_QUALIFIER.
12436         (report_class_declaration): Assign `package_name' and
12437         `current_class' to NULL separately.
12438
12439 2000-07-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12440
12441         * expr.c (build_invokeinterface): Call layout_class_methods on
12442         target interface.
12443
12444 2000-07-27  Tom Tromey  <tromey@cygnus.com>
12445             Anthony Green  <green@cygnus.com>
12446             Alexandre Petit-Bianco  <apbianco@cygnus.com>
12447
12448         * class.c (make_class_data): Create vtable for abstract classes.
12449         (get_dispatch_table): Changed to cope with abstract classes.
12450
12451 2000-07-27  Tom Tromey  <tromey@cygnus.com>
12452
12453         * parse.y (patch_method_invocation): Don't reverse the argument
12454         list when dealing with anonymous class constructors. Fixed typo in
12455         comment.
12456
12457 2000-07-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12458
12459         * parse.y (build_alias_initializer_parameter_list): Reverse
12460         crafted list when building aliases for anonymous class
12461         constructors.
12462
12463 2000-07-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12464
12465         * parse.y (jdep_resolve_class): Don't bother checking potential
12466         innerclass access if `decl' is NULL.
12467         (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
12468         WFL.
12469
12470 2000-07-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12471
12472         * parse.c: Remove (again.)
12473
12474 2000-07-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12475
12476         * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
12477         * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
12478         outside the `if' statement, alias to innerclass removed, `decl'
12479         used to mark the class complete.
12480
12481 2000-07-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12482
12483         * parse.y (simple_name:): Fixed typo in error message.
12484
12485 2000-07-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12486
12487         * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
12488         or its first operand can be error marks.
12489
12490 2000-07-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12491
12492         * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
12493         * parse.y (method_header): Likewise.
12494
12495 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12496
12497         * parse.y (process_imports): Consider that one might be trying to
12498         import an innerclass. Fixes gcj/254
12499
12500 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12501
12502         * parse.y (find_as_inner_class): Handle the case where the
12503         enclosing context of an innerclass has been loaded as bytecode.
12504
12505 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12506
12507         * parse.y (simple_name:): Reject `$' in type names.
12508         (resolve_type_during_patch): Use `type' as a second
12509         argument to resolve_no_layout. Fixes gcj/257.
12510
12511 2000-07-18  Bryce McKinlay  <bryce@albatross.co.nz>
12512
12513         * parse.y (find_most_specific_methods_list): Select the only
12514         non-abstract method even if max has been set.
12515         Fixes gcj/285, gcj/298.
12516
12517 2000-07-18  Jeff Sturm  <jeff.sturm@appnet.com>
12518
12519         * lang-specs.h: Added %(jc1) to java compiler options.
12520
12521 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
12522
12523         * .cvsignore: New file.
12524
12525 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12526
12527         * parse.y (not_accessible_p): Access granted to innerclasses
12528         (indirectly) extending the reference type. Fixes gcj/249.
12529
12530 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12531
12532         * parse.y (patch_method_invocation): Fixed comment.
12533         (maybe_use_access_method): Build this$<n>s to the context of the
12534         target method, or a type that extends it. Fixes gcj/242.
12535
12536 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
12537
12538         * parse.c: Remove.
12539
12540 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12541
12542         * parse.y (fold_constant_for_init): Avoid bullish conversion.
12543
12544 2000-07-13  Tom Tromey  <tromey@cygnus.com>
12545
12546         * lang-specs.h: Added %{I*}.
12547
12548 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
12549
12550         * lang-specs.h: Use the new named specs.  Remove unnecessary braces.
12551
12552 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
12553
12554         * parse-scan.c: Remove.
12555
12556 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12557
12558         * class.c (set_super_info): Handled protected inner classes.
12559         (common_enclosing_context_p): Bail early if arguments aren't both
12560         inner classes.
12561         (get_access_flags_from_decl): Handle private and protected inner
12562         classes.
12563         * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
12564         (CLASS_PROTECTED): Likewise.
12565         (struct lang_type): New bitfield `poic'.
12566         * parse.y (jdep_resolve_class): Call check_inner_class_access on
12567         inner classes only.
12568         (check_inner_class_access): Renamed arguments, added
12569         comments. Handles protected inner classes (fixes gcj/225)
12570         (not_accessible_p): Fixed comments. Avoid handling inner classes.
12571
12572 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12573
12574         * parse.y (resolve_qualified_expression_name): Verify qualified
12575         access to `this'. Fixes gcj/239.
12576
12577 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12578
12579         * jcf-write.c (generate_classfile): Don't install ConstantValue
12580         for null pointers.
12581
12582 2000-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12583
12584         * parse.y (resolve_qualified_expression_name): Handle inner class
12585         access. Fixes gcj/256.
12586
12587 2000-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12588
12589         * jcf-write.c (generate_classfile): Properly install the
12590         ConstantValue attribute and the initial value constant pool index
12591         on string constants.
12592         * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
12593         class files.
12594
12595 2000-07-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12596
12597         * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
12598         construct.
12599         * parse.y (find_as_inner_class): Fixed typo.
12600         (do_resolve_class): Explore enclosing contexts when searching for
12601         innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
12602         (check_inner_class_access): Check `decl' which can be null in case
12603         of previous errors.
12604
12605 2000-07-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12606
12607         * java-tree.h (java_debug_context): Declared `extern'.
12608         (safe_layout_class): Likewise.
12609         * parse.y (resolve_field_access): Field must be `static' in order
12610         to be replaced by its initial value. Added comments.
12611         (find_applicable_accessible_methods_list): Fixed typo.
12612         (find_most_specific_methods_list): Methods found in innerclasses
12613         take over methods founds in the enclosing contexts.
12614         (java_complete_tree): Loosen restrictions on the type of DECLs
12615         that can be replaced by their initialization values.
12616         (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
12617
12618 2000-07-05  Tom Tromey  <tromey@cygnus.com>
12619
12620         * Make-lang.in (PARSE_DIR): New macro.
12621         (PARSE_RELDIR): Likewise.
12622         (PARSE_C): Likewise.
12623         (PARSE_SCAN_C): Likewise.
12624         ($(PARSE_C)): New target.
12625         ($(PARSE_SCAN_C)): Likewise.
12626         (SET_BISON): New macro.
12627         (BISONFLAGS): Likewise.
12628         (JAVABISONFLAGS): Likewise.
12629
12630 2000-07-02  Bryce McKinlay  <bryce@albatross.co.nz>
12631
12632         * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
12633         argument on the first pass for CNI as well as JNI.
12634         (print_method_info): Set up method name on the first pass only.
12635
12636 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12637
12638         * parse.y (parser_qualified_classname): Removed parameter
12639         `is_static'.
12640         (create_interface): Removed first passed parameter to
12641         parser_qualified_classname.
12642         (create_class): Likewise. Don't install alias on static
12643         innerclasses. Fixes gcj/275.
12644
12645 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12646
12647         * parse.y (maybe_generate_pre_expand_clinit): Don't build a
12648         debugable statement with empty_stmt_node. Fixes gcj/272
12649
12650 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12651
12652         * expr.c (build_instanceof): Layout type after it's loaded. Fixes
12653         gcj/271.
12654
12655 2000-06-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12656
12657         * jcf-write.c (push_long_const): Appropriately cast short negative
12658         constant to jword.
12659
12660 2000-06-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12661
12662         * parse.y (verify_constructor_super): Use loop variable
12663         `m_arg_type' initialized with `mdecl_arg_type'.
12664
12665 2000-06-29  Tom Tromey  <tromey@cygnus.com>
12666
12667         * parse.y (resolve_field_access): Handle case where `type_found'
12668         is NULL.
12669
12670 2000-06-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12671
12672         * expr.c (lookup_field): The same field can be found through two
12673         different interface. Don't declare it ambiguous in that case.
12674
12675 2000-06-27  Tom Tromey  <tromey@cygnus.com>
12676
12677         * lex.c (java_lineterminator): Don't recognize \r after \n.  If \r
12678         follows \r, then unget it at a lower level.
12679
12680 2000-06-26  Tom Tromey  <tromey@cygnus.com>
12681
12682         * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
12683         java_complete_tree.
12684
12685 2000-06-25  Tom Tromey  <tromey@cygnus.com>
12686
12687         * parse.y (for_statement): Wrap expression in a WFL if it is a
12688         constant.  For PR gcj/268.
12689
12690 2000-06-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12691
12692         * parse.y (do_resolve_class): Minor optimiztion in the package
12693         list search. Removed unnecessary test and return statement.
12694         (valid_ref_assignconv_cast_p): Order of arguments to
12695         enclosing_context_p fixed.
12696
12697 2000-06-24  Tom Tromey  <tromey@cygnus.com>
12698
12699         * expr.c (lookup_field): Print error and return error_mark_node if
12700         field reference is ambiguous.
12701
12702         * parse.y (check_abstract_method_definitions): Also check if
12703         `other_method' is abstract.
12704
12705 2000-06-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12706
12707         * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
12708         classes.
12709         * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
12710         (struct lang_type): New field `pic'.
12711         (CLASS_PRIVATE): New macro.
12712         * parse.y (check_inner_class_access): New function.
12713         (jdep_resolve_class): Call it.
12714
12715 2000-06-23  Tom Tromey  <tromey@cygnus.com>
12716
12717         * parse.y (patch_incomplete_class_ref): Initialize the returned
12718         class.  For PR gcj/260.
12719
12720 2000-06-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12721
12722         * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
12723
12724 2000-06-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12725
12726         * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
12727         Java specific checks.
12728         * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
12729         screened by DECL_P.
12730         * java-tree.def (CASE_EXPR): Marked 'e'.
12731         (DEFAULT_EXPR): Likewise.
12732         * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
12733         screened by DECL_P.
12734         * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
12735         Java specific checks.
12736         (generate_bytecode_insns): Test try_block for BLOCK before using
12737         BLOCK_EXPR_BODY.
12738         * parse.y (build_wfl_wrap): Added `location' argument. Set
12739         EXPR_WFL_LINECOL accordingly.
12740         (dim_expr:): Wrap constants with WFLs.
12741         (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
12742         (resolve_package): Check for `stmt' not being a BLOCK before
12743         building a debuggable statement with it.
12744         (make_qualified_primary): Added extra parameter to build_wfl_wrap
12745         invocation.
12746         (resolve_field_access): Make sure `decl' is a DECL before treating
12747         it as such.
12748         (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
12749         IDENTIFIER_NODE before treating it as such.
12750         (patch_new_array_init): Make sure `elt' is a TREE_LIST before
12751         treating it as such.
12752         (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
12753         to be applied only on non array types.
12754
12755 2000-06-16  Per Bothner  <per@bothner.com>
12756
12757         * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN):  Don't
12758         define in terms of DECL_RESULT, as that fails when --enable-checking.
12759
12760 2000-06-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12761
12762         * jcf-write.c (CHECK_PUT): Add static prototype.  Make pointer
12763         types the same in comparison.
12764         (CHECK_OP): Add static prototype.
12765
12766 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
12767
12768         * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
12769         * parse.y (java_complete_class): Set DECL_USER_ALIGN.
12770         * parse.c: Rebuilt.
12771
12772 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12773
12774         * decl.c (create_primitive_vtable): Prototype.
12775
12776         * jcf-write.c (generate_bytecode_insns): Initialize variable
12777         `saved_context'.
12778
12779         * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
12780
12781 2000-06-09  Bryce McKinlay  <bryce@albatross.co.nz>
12782
12783         * parse.y (find_applicable_accessible_methods_list): Use a hashtable
12784         to track searched classes, and do not search the same class more than
12785         once. Call find_applicable_accessible_methods_list on immediate
12786         superclass, instead of search_applicable_method_list on all ancestors.
12787         Fix for PR gcj/238.
12788
12789 2000-06-09  Bryce McKinlay  <bryce@albatross.co.nz>
12790
12791         * parse.y (register_fields): Permit static fields in inner classes
12792         if they are final. Fix for PR gcj/255.
12793
12794 2000-06-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12795
12796         * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
12797         * parse.y (find_in_imports): Returned type changed to void,
12798         leading comment fixed.
12799         (register_package): New function.
12800         (qualify_and_find): Likewise.
12801         (package_declaration:): Use `register_package'.
12802         (single_type_import_declaration:): Removed local variable
12803         `node'. Added missing `;' for consistency.
12804         (type_import_on_demand_declaration:): Use `chainon' to link new
12805         entries.
12806         (lookup_field_wrapper): Lookup local variables defined in outer
12807         contexts first.
12808         (java_complete_class): Don't reverse the list of imported on demand.
12809         (do_resolve_class): Reorganized. Removed local variable
12810         `original_name'. Call `qualify_and_find' with the current package
12811         name, invoke `find_in_imports_on_demand' right after. Call
12812         `qualify_and_find' with the packages we've seen so far. Fixed
12813         operations numbering in comments.
12814         (java_expand_class): Don't reverse `package_list'.
12815         (find_most_specific_methods_list): New local variables `abstract'
12816         and `candidates'. Use them to pick the right method.
12817
12818 2000-06-06  Tom Tromey  <tromey@ferrule.cygnus.com>
12819
12820         * parse.y (check_modifiers_consistency): Don't subtract out
12821         `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
12822
12823 2000-06-04  Philipp Thomas  <pthomas@suse.de>
12824
12825         * Makefile.in (INTLLIBS): New.
12826         (LIBS): Add above.
12827         (DEPLIBS): Ditto.
12828
12829 2000-06-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12830
12831         * class.c (get_dispatch_table): Build the vtable dummy entry list
12832         element with a null purpose. Fixed leading comment.
12833         (build_dtable_decl): Build an accurate dtable type when appropriate
12834         and use it.
12835
12836 2000-06-02  Richard Henderson  <rth@cygnus.com>
12837
12838         * lang.c (lang_get_alias_set): New.
12839
12840 2000-05-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12841
12842         * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
12843         before using it as the accessed field.
12844
12845 2000-05-31  Tom Tromey  <tromey@cygnus.com>
12846
12847         * java-tree.h (boolean_array_vtable, byte_array_vtable,
12848         char_array_vtable, short_array_vtable, int_array_vtable,
12849         long_array_vtable, float_array_vtable, double_array_vtable):
12850         Declare.
12851         * expr.c (get_primitive_array_vtable): New function.
12852         (create_primitive_vtable): New function.
12853         (java_lang_expand_expr): Enable code to statically generate
12854         arrays.
12855         * decl.c (init_decl_processing): Create primitive vtables.
12856         (boolean_array_vtable, byte_array_vtable, char_array_vtable,
12857         short_array_vtable, int_array_vtable, long_array_vtable,
12858         float_array_vtable, double_array_vtable): Define.
12859
12860 2000-05-26  Zack Weinberg  <zack@wolery.cumb.org>
12861
12862         * java/parse.y (find_applicable_accessible_methods_list):
12863         Don't add an uninitialized value to the list.
12864
12865 2000-05-25  Tom Tromey  <tromey@cygnus.com>
12866
12867         * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
12868         when trying to see if field's class should be initialized.  Always
12869         initialize field's declaring class, not qualified class.
12870         For PR gcj/162.
12871
12872         * parse.y (array_constructor_check_entry): Pass `wfl_value', not
12873         `wfl_operator', to maybe_build_primttype_type_ref.
12874         Fixes PR gcj/235.
12875
12876 2000-05-23  Bryce McKinlay  <bryce@albatross.co.nz>
12877
12878         * parse.y (patch_method_invocation): Don't try to lookup methods
12879         in primitive types.
12880
12881 2000-05-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12882
12883         * parse.y (resolve_field_access): Call the appropriate <clinit>
12884         before accessing the length of a static array. Craft a decl for
12885         the field while its time. Fixes PR gcj/129.
12886
12887 2000-05-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12888
12889         * parse.y (resolve_package): Correctly set `*next' (was off by
12890         one.)
12891         (resolve_qualified_expression_name): Fixed comment.
12892
12893 2000-04-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12894
12895         * jcf-parse.c (jcf_parse_source): Reset current_class and
12896         current_function_decl to NULL before parsing a new file.
12897
12898 2000-04-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12899
12900         * parse.y (block_end:): If the collected block doesn't feature a
12901         statement, insert an empty statement.
12902
12903 2000-04-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12904
12905         * parse.y (maybe_yank_clinit): New function.
12906         (maybe_generate_pre_expand_clinit): Always link <clinit> at the
12907         end of the list of methods belonging to a class.
12908         (java_complete_expand_method): Check whether <clinit> is really
12909         necessary and expand it accordingly.
12910
12911 2000-04-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12912
12913         * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
12914         processed by the method's switch statement.
12915
12916 2000-05-19  Tom Tromey  <tromey@cygnus.com>
12917
12918         * java-tree.h: Added init state enum.
12919         * decl.c (emit_init_test_initialization): Initialize class
12920         initialization check variable by looking at class' state.
12921
12922 2000-05-19  Tom Tromey  <tromey@cygnus.com>
12923
12924         * java-tree.h (build_instanceof): Declare.
12925         (build_get_class): Declare.
12926         * parse.y (patch_binop): Use build_instanceof.
12927         * expr.c (build_instanceof): New function.  If class is final,
12928         don't make a function call.
12929         (expand_java_INSTANCEOF): Use it.
12930         (build_get_class): New function.
12931
12932 2000-05-18  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12933
12934         * jcf-write.c (generate_classfile): Scan the source_file for
12935         slashes with the right pointer variable.
12936
12937 2000-05-17  Andrew Cagney  <cagney@b1.cygnus.com>
12938
12939         * lang.c (lang_decode_option): Update -Wunused flags by calling
12940         set_Wunused.
12941         * decl.c (poplevel): Replace warn_unused with warn_unused_label.
12942
12943 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
12944
12945         * check_init.c (check_init): Constify local char *.
12946         * class.c (push_class): Constify local char *.
12947         * java_tree.h: Update prototypes.
12948         * jcf-io.c (open_class): Constify filename parameter and
12949         return value.
12950         (find_class): Remove redundant string copy.  Cast return from
12951         open_class.
12952         * jcf-parse.c (read_class, parse_class_file, yyparse):
12953         Constify local char *.
12954         * jcf-write.c (generate_bytecode_insns, generate_classfile):
12955         Constify local char *.
12956         * jcf.h (JCF): Constify filename and classname.
12957         (JCF_FINISH): Cast args to FREE to char * when appropriate.
12958         * lang.c (init_parse): Constify parameter and return value.
12959         * lex.c (java_get_line_col): Constify filename parameter.
12960         * parse.h: Constify parser_ctxt.filename.  Update prototypes.
12961         * parse.y (java_parser_context_suspend,
12962         issue_warning_error_from_context, safe_layout_class): Constify
12963         local char *.
12964         * parse.c: Regenerate.
12965
12966 2000-05-08  Tom Tromey  <tromey@cygnus.com>
12967
12968         * expr.c (build_jni_stub): Cache the result of
12969         _Jv_LookupJNIMethod.
12970
12971 2000-05-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12972
12973         * decl.c (predef_filenames_size): Now 7.
12974         (predef_filenames): New seventh entry.
12975
12976 2000-05-04  Tom Tromey  <tromey@cygnus.com>
12977
12978         * boehm.c (mark_reference_fields): Don't mark RawData fields.
12979         Keep track of when we've seen a reference field after a
12980         non-reference field.
12981         (get_boehm_type_descriptor): Handle case where we see
12982         non-reference fields but no trailing reference field.
12983         * decl.c (rawdata_ptr_type_node): Define.
12984         (init_decl_processing): Initialize rawdata_ptr_type_node.
12985         * java-tree.h (rawdata_ptr_type_node): Declare.
12986
12987 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12988
12989         * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
12990         specifiers in calls to fprintf.
12991
12992 2000-05-03  Andrew Haley  <aph@cygnus.com>
12993
12994         * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
12995
12996         * javaop.h (WORD_TO_INT): New function.
12997         (IMMEDIATE_s4): Use WORD_TO_INT.
12998         * jcf.h (JPOOL_INT): Ditto.
12999
13000         * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
13001         separator.
13002
13003 2000-04-19  Tom Tromey  <tromey@cygnus.com>
13004
13005         * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
13006         on native function.
13007         * jcf-parse.c (parse_class_file): Call build_jni_stub for native
13008         JNI methods.
13009         * expr.c (build_jni_stub): New function.
13010         * lang-specs.h: -fjni and -femit-class-file are incompatible.
13011         * parse.c: Rebuilt.
13012         * parse.y (java_complete_expand_methods): Expand a native method
13013         and call build_jni_stub if -fjni given.
13014         * lang-options.h: Document -fjni.
13015         * lang.c (flag_jni): New global.
13016         (lang_f_options): Added `jni' entry.
13017         * java-tree.h (soft_lookupjnimethod_node,
13018         soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
13019         Declare.
13020         (flag_jni): Declare.
13021         (build_jni_stub): Declare.
13022         (struct lang_decl): Added `native' flag.
13023         (METHOD_NATIVE): Redefined to use `native' field of lang specific
13024         structure.
13025         * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
13026         soft_jnipopsystemframe_node): New globals.
13027         (init_decl_processing): Set them.  _Jv_InitClass only takes one
13028         argument.
13029
13030         * java-tree.def: Put into `C' mode.
13031
13032 2000-04-27  Tom Tromey  <tromey@cygnus.com>
13033
13034         Fix for PR gcj/2:
13035         * expr.c (expand_invoke): Generate check to see if object pointer
13036         is null in nonvirtual invocation case.
13037         * java-tree.h (soft_nullpointer_node): Declare.
13038         * decl.c (soft_nullpointer_node): New global.
13039         (init_decl_processing): Initialize soft_nullpointer_node.
13040         * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13041         or `private' methods.
13042         (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13043
13044 2000-04-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13045
13046         * decl.c (complete_start_java_method): Don't call _Jv_InitClass
13047         from <clinit>
13048
13049 2000-04-26  Tom Tromey  <tromey@cygnus.com>
13050
13051         * zextract.c (find_zip_file_start): New function.
13052         (read_zip_archive): Use it.
13053
13054 2000-04-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13055
13056         * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
13057
13058 2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13059
13060         * class.c (common_enclosing_context_p): New function.
13061         * java-tree.h (common_enclosing_context_p): Added prototype.
13062         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
13063         classes sharing an outer context with the current instance.
13064         * parse.y (build_access_to_thisn): Fixed leading comment.
13065         (verify_constructor_super): New local `supper_inner'. Skip
13066         enclosing context argument in the case of inner class constructors.
13067         (patch_method_invocation): Insert proper context as second
13068         parameter to pure inner class constructor super invocations.
13069
13070 2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13071
13072         * parse.y (end_class_declaration): Reset the interface number
13073         counter.
13074
13075 2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13076
13077         * parse.y (source_start_java_method): Deleted unnecessary code.
13078         (patch_method_invocation): Fixed comment.
13079
13080 2000-04-24  Robert Lipe <robertlipe@usa.net>
13081
13082         * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
13083
13084 2000-04-23  Tom Tromey  <tromey@cygnus.com>
13085
13086         * boehm.c (mark_reference_fields): Use int_byte_position.
13087
13088 2000-04-22  Tom Tromey  <tromey@cygnus.com>
13089
13090         * boehm.c (mark_reference_fields): Only call byte_position on
13091         non-static fields.
13092
13093 2000-04-22  Tom Tromey  <tromey@cygnus.com>
13094
13095         * boehm.c (mark_reference_fields): Added `last_view_index'
13096         argument.  Use DECL_FIELD_OFFSET to determine field's offset.
13097
13098 2000-04-20  Mo DeJong  <mdejong@cygnus.com>
13099
13100         * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
13101         * parse.y (check_class_interface_creation): Fixed comments. Select
13102         permitted modifiers for (inner) interfaces. Changed error message
13103         to report rejected modifiers used with local classes.
13104
13105 2000-04-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13106
13107         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
13108         of directly inherited type considered in scope.
13109         * parse.y (do_resolve_class): Search inherited classes for inner
13110         classes.
13111
13112 2000-04-20  Tom Tromey  <tromey@cygnus.com>
13113
13114         * parse.y (not_accessible_p): Use member's class, not current
13115         class, when doing inheritance check for protected reference.
13116         Fixes PR gcj/124.
13117
13118 2000-04-20  Jason Schroeder  <shrode@subnature.com>
13119
13120         * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
13121
13122 2000-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13123
13124         * parse.y (lookup_field_wrapper): Search for final local aliases.
13125         (resolve_expression_name): Let lookup_field_wrapper search for
13126         final local aliases. Force the value of `name' if one is found.
13127         (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
13128         an expression name. Fixed comments.
13129
13130 2000-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13131
13132         * parse.y (yyerror): `msg' can be null, don't use it in that case.
13133
13134 2000-04-19  Tom Tromey  <tromey@cygnus.com>
13135
13136         * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
13137
13138 2000-04-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13139
13140         * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
13141
13142 2000-04-18  Tom Tromey  <tromey@cygnus.com>
13143
13144         PR gcj/211:
13145         * gjavah.c (utf8_cmp): Changed return value.
13146         (cxx_keyword_subst): Handle all C++ keywords.  Allocate new return
13147         result.
13148         (cxx_keywords): New global.
13149         (get_field_name): Handle new result of cxx_keyword_subst.
13150         (print_method_info): Likewise.
13151
13152 2000-04-17  Bryce McKinlay  <bryce@albatross.co.nz>
13153
13154         * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
13155         with a newline, for CNI.
13156         (print_stub_or_jni): Print a space or newline before method name for
13157         CNI as well as JNI.
13158         (print_cxx_classname): Don't write leading "::" in CNI stub method.
13159         (process_file): Include gcj/cni.h if generating CNI stubs.
13160
13161 2000-04-16  Tom Tromey  <tromey@cygnus.com>
13162
13163         * gjavah.c (decompile_method): Use print_field_name.
13164         Fixes PR gcj/205.
13165
13166 2000-04-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13167
13168         * parse.y (java_expand_classes): Reverse the package list once.
13169         (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
13170         reduction.
13171         (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
13172         the `==' and `!=' operators.
13173
13174 2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13175
13176         * jcf-write.c (generate_bytecode_insns): At invocation time,
13177         always relate an interface method to the type of its selector.
13178
13179 2000-04-05  Tom Tromey  <tromey@cygnus.com>
13180
13181         Fix for PR gcj/2:
13182         * expr.c (expand_invoke): Generate check to see if object pointer
13183         is null in nonvirtual invocation case.
13184         * java-tree.h (soft_nullpointer_node): Declare.
13185         * decl.c (soft_nullpointer_node): New global.
13186         (init_decl_processing): Initialize soft_nullpointer_node.
13187         * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13188         or `private' methods.
13189         (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13190
13191 2000-04-05  Tom Tromey  <tromey@cygnus.com>
13192
13193         Fix for PR gcj/140:
13194         * parse.y (check_final_assignment): Recognize assignments to the
13195         `length' field of an array when generating class files.
13196
13197 2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13198
13199         * class.c (decl_hash): Prototype removed.
13200         (decl_compare): Likewise.
13201
13202 2000-04-05  Tom Tromey  <tromey@cygnus.com>
13203
13204         * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
13205         * parse.y (check_modifiers_consistency): Check for final/volatile
13206         clash.  Fixes PR gcj/164.
13207
13208 2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13209
13210         * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
13211         made global.
13212         (java_hash_compare_tree_node): Renamed from `decl_compare, made
13213         global.
13214         (add_method_1): Use `java_hash_hash_tree_node' and
13215         `java_hash_compare_tree_node'.
13216         * java-tree.h: (java_hash_hash_tree_node): Prototyped.
13217         (java_hash_compare_tree_node): Likewise.
13218         * parse.y (find_applicable_accessible_methods_list): Create,
13219         delete and use a hash table to remember already searched interfaces.
13220
13221 2000-04-03  Matt Welsh  <mdw@cs.berkeley.edu>
13222
13223         * jcf-depend.c (add_entry): Fixed bug where list was always replaced
13224         with latest entry.
13225
13226 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13227
13228         * boehm.c (mark_reference_fields, set_bit): Prototype.
13229         (set_bit): Un-ANSI-fy definition.
13230
13231         * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
13232         Prototype.
13233
13234         * decl.c (emit_init_test_initialization): Likewise.
13235
13236         * gjavah.c (jni_print_char): Likewise.
13237
13238         * parse.y (create_new_parser_context): Likewise.
13239
13240 2000-03-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13241
13242         * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
13243         patch missing hunk. Fixed indentation.
13244
13245 2000-03-30  Tom Tromey  <tromey@cygnus.com>
13246
13247         * gjavah.c (D_NAN_MASK): Only define as word-reversed when
13248         HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
13249
13250 2000-03-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13251
13252         * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13253         when negative *before* using it as an array index.
13254         * ChangeLog: Fixed typo.
13255
13256 2000-03-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13257
13258         * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13259         to 0 when it reaches -1.
13260
13261 2000-03-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13262
13263         * jcf-parse.c (get_constant): Properly cast `num' during the
13264         invocation of `add_double'.
13265         * jcf-write.c (push_long_const): Properly cast `lo' before
13266         comparing it to short bounds.
13267         * parse-scan.y (interface_declaration:): Rule re-arrange so that
13268         `interface_body:' is reduced after the current interface is
13269         pushed.
13270
13271 2000-03-26  Tom Tromey  <tromey@cygnus.com>
13272
13273         * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
13274         Java-specific `-f' option.
13275
13276 2000-03-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13277
13278         * decl.c (init_decl_processing): Only call initialize_sizetypes once.
13279         Adjust order of making types.
13280         Make bitsize_*_node values.
13281
13282 2000-03-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13283
13284         * class.c (make_field_value): Use byte_position.
13285         * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
13286         (java_array_data_offset): Likewise.
13287         * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
13288         bzero call.
13289
13290 2000-03-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13291
13292         * parse.y (check_abstract_method_definitions): New local
13293         `end_type_reached'. Make sure we also consider `end_type'.
13294         (java_check_abstract_method_definitions): Make sure we eventually
13295         consider `java.lang.Object'.
13296         (maybe_use_access_method): Don't use access method if not in the
13297         context of a pure inner class or if the method's context is right.
13298         (find_applicable_accessible_methods_list): New static flag
13299         `object_done'. Don't search abstract classes as interfaces. Fixed
13300         indentation. Fixed the `java.lang.Object' only search. Search
13301         class interface(s) first, then fully search enclosing contexts.
13302         (find_most_specific_methods_list): Pick the closest candidate when
13303         they're all abstract.
13304
13305 2000-03-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13306
13307         * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13308         properly initialize `finished_label'. Don't emit gotos for empty
13309         try statements.
13310
13311 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13312
13313         * except.c (emit_handlers): Clear catch_clauses_last.
13314
13315 2000-03-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13316
13317         * parse.y (check_method_types_complete): New function.
13318         (create_class): Reset anonymous class counter only when seeing an
13319         non inner classe.
13320         (java_complete_class): JDEP_METHOD: Don't recompute signature
13321         if incomplete.
13322
13323 2000-03-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13324
13325         * class.c (build_static_ref): Fixed indentation in comment.
13326         * java-tree.def (TRY_EXPR): Fixed typo in name.
13327         (CLASS_LITERAL): Likewise.
13328         * java-tree.h: (TYPE_DOT_CLASS): New macro.
13329         (struct lang_type): New field `dot_class'.
13330         * jcf-write.c (generate_bytecode_insns): Fixed error message.
13331         (generate_classfile): Method `class$' is synthetic.
13332         * parse.y (build_do_class_method): New function.
13333         (build_dot_class_method_invocation): Likewise.
13334         (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
13335         (resolve_qualified_expression_name): Handle CLASS_LITERAL.
13336         (qualify_ambiguous_name): Likewise.
13337         (patch_incomplete_class_ref): Invoke synthetic method if necessary.
13338         (build_try_statement): Fixed leading comment.
13339
13340 2000-03-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13341
13342         * class.c (make_field_value): Properly handle sizes.
13343         (get_dispatch_vector): Use tree_low_cst and host_integerp.
13344         (layout_class_method): Count using trees.
13345         * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
13346         * expr.c (java_array_data_offset): Use int_bit_position.
13347         (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
13348         (build_invokevirtual): Use tree_low_cst and do computations with trees.
13349
13350 2000-03-16  Tom Tromey  <tromey@cygnus.com>
13351
13352         * lang.c (flag_hash_synchronization): New global.
13353         (lang_f_options): Added `hash-synchronization'.
13354         * lang-options.h: Mention -fhash-synchronization.
13355         * java-tree.h (flag_hash_synchronization): Declare.
13356         * expr.c (java_lang_expand_expr): Only push `sync_info' value when
13357         hash table synchronization is disabled.
13358         * decl.c (init_decl_processing): Only push `sync_info' value when
13359         hash table synchronization is disabled.
13360         * class.c (make_class_data): Only push `sync_info' field when hash
13361         table synchronization is disabled.  Removed dead code.
13362
13363 2000-03-16  Tom Tromey  <tromey@cygnus.com>
13364
13365         * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
13366
13367 2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13368
13369         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
13370         classes.
13371         * parse.y (patch_method_invocation): Handle anonymous classes
13372         creation in static context.
13373
13374 2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13375
13376         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
13377         * parse.y (resolve_qualified_expression_name): Use it.
13378         (patch_method_invocation): Likewise.
13379
13380 2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13381
13382         * parse.y (register_incomplete_type): JDEP_ENCLOSING set
13383         depending on the type of dependency which dictates what the
13384         current class is.
13385         (unresolved_type_p): Resolved types limited to the current class.
13386
13387 2000-03-15  Tom Tromey  <tromey@cygnus.com>
13388
13389         * decl.c (init_decl_processing): Set type of `sync_info' to be
13390         pointer to Object.
13391
13392         * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
13393         Correctly compute bit number for current slot.  Zero `high' and
13394         `low' in DS_LENGTH case.  Don't skip inherited fields.  Use
13395         mark_reference_fields.
13396         (mark_reference_fields): New function.
13397
13398 2000-03-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13399
13400         * parse.y (register_incomplete_type): Fixed initialization of
13401         JDEP_ENCLOSING.
13402
13403 2000-02-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13404
13405         * parse-scan.y (inner_qualifier, inner_qualifier_length): New
13406         static globals.
13407         (push_class_context, pop_class_context): New function.
13408         (class_body:): Call pop_class_context.
13409         (interface_body:): Likewise.
13410         (INNER_QUALIFIER): New macro.
13411         (report_class_declaration): Changed output format and use
13412         INNER_QUALIFIER. Call push_class_context.
13413
13414 2000-02-14  Andrew Haley  <aph@cygnus.com>
13415
13416         * check-init.c (check_init): Add new cases for unary and binary
13417         tree nodes.
13418
13419 2000-03-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13420
13421         * parse.y (resolve_package): Set `next' once a type name has been
13422         progressively discovered.
13423         (resolve_qualified_expression_name): Propagate resolution only if
13424         there are remaining qualifiers. Take into account `q' might have
13425         been cleared after re-qualification.
13426         * parse.y (patch_method_invocation): New local `resolved'.
13427         Section dealing with qualified expression rewritten to use
13428         resolve_field_access.
13429
13430 2000-03-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13431
13432         * parse.h (PUSH_CPC): Fixed indentation.
13433         (DEBUG_CPC): New macro.
13434         (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
13435         SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
13436         * parse.y (class_body_declaration:): Use
13437         SET_CPC_INSTANCE_INITIALIZER_STMT.
13438         (method_declaration:): Check for null current_function_decl.
13439         (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
13440         (java_parser_context_pop_initialized_field): Better handling of
13441         empty lists.
13442         (maybe_make_nested_class_name): Mark nested class name as
13443         qualified when necessary.
13444         (end_class_declaration): Don't call java_parse_context_resume when
13445         one or more error occurred.
13446         (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
13447         (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
13448         SET_CPC_INITIALIZER_STMT.
13449         (method_header): Check for inner classes declaring static methods.
13450         (resolve_qualified_expression_name): Handle situation where `this'
13451         is implied.
13452
13453 2000-03-13  Hans Boehm <boehm@acm.org>
13454
13455         * typeck.c (build_prim_array_type): Correctly set the high word too.
13456
13457 2000-03-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13458
13459         * parse.y (java_complete_expand_methods): Leave <clinit> out of
13460         ordinary methods.
13461         (maybe_generate_pre_expand_clinit): Put <clinit> at the end of the
13462         list of methods for interfaces.
13463
13464 2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13465
13466         * parse.y (qualify_ambiguous_name): Properly handle expressions
13467         using `null'.
13468
13469 2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13470
13471         * parse.y (check_final_assignment): Extended to process
13472         COMPOUND_EXPR.
13473         (patch_assignment): Have check_final_assignment called only once.
13474
13475 2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13476
13477         * java-tree.h (IS_INIT_CHECKED): New flag.
13478         * check-init.c (check_init): Test and set IS_INIT_CHECKED.
13479         * parse.y (patch_string): Call force_evaluation_order on the
13480         completed string concatenation tree.
13481         * expr.c (force_evaluation_order): Call force_evaluation_order on
13482         function's arguments too.
13483
13484 2000-03-06  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13485
13486         * decl.c (emit_init_test_initialization): Mark KEY as unused.
13487         * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13488         (build_anewarray): Likewise.
13489         * parse.y (patch_newarray): Likewise.
13490         * parse.c: Regenerated.
13491
13492 2000-03-06  Bryce McKinlay  <bryce@albatross.co.nz>
13493
13494         * decl.c (init_decl_processing): Added new class fields `depth',
13495         `ancestors', and `idt' to class_type_node. Use
13496         _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
13497         * class.c (make_class_data): Push initial values for new fields.
13498         * java-tree.h: Updated prototype for `build_invokeinterface'.
13499         * expr.c (build_invokeinterface): Changed parameters to accept
13500         `method' tree. Calculate index of `method' in its declaring
13501         interface. Build call to _Jv_LookupInterfaceMethodIdx.
13502         (expand_invoke): Call `build_invokeinterface' with new parameters.
13503         * parse.y (patch_invoke): Call `build_invokeinterface' with new
13504         parameters.
13505
13506 2000-03-06  Bryce McKinlay <bryce@albatross.co.nz>
13507
13508         * typeck.c (lookup_do): Search superinterfaces first
13509         when looking up an interface method. From Godmar Back
13510         <gback@cs.utah.edu>
13511
13512 2000-03-06  Tom Tromey  <tromey@cygnus.com>
13513
13514         * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
13515
13516 2000-03-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13517
13518         * java-tree.h (lookup_argument_method2): Declared.
13519         (safe_layout_class): Prototype moved from parse.h.
13520         * parse.h (safe_layout_class): Prototype moved to java-tree.h.
13521         * parse.y (java_check_regular_methods): Local `super_class' gone.
13522         Call lookup_argument_method2 instead of lookup_argument_method.
13523         Perform modifier match for methods found declared in implemented
13524         interfaces. Fixed indentation problem. Overriding/hiding error
13525         report to take place only for methods found in classes.
13526         * typeck.c (lookup_argument_method): Changed leading
13527         comment. Re-written by calling lookup_do.
13528         (lookup_argument_method2): New function.
13529         (lookup_java_method): Re-written by calling lookup_do.
13530         (lookup_do): New function.
13531
13532 2000-03-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13533
13534         * check-init.c (check_init): Removed dead code. Handle (blank)
13535         final variables.
13536         * parse.y (declare_local_variables): New local `final_p', set it
13537         and use it to initialize LOCAL_FINAL.
13538         (check_final_assignment): Only check FIELD_DECLs.
13539
13540 2000-02-17  Tom Tromey  <tromey@cygnus.com>
13541
13542         * Makefile.in (JAVA_OBJS): Added boehm.o.
13543         (boehm.o): New target.
13544         * Make-lang.in (JAVA_SRCS): Added boehm.c.
13545         * java-tree.h (flag_use_boehm_gc): Declare.
13546         (get_boehm_type_descriptor): Declare.
13547         * lang.c (lang_f_options): Added `use-boehm-gc'.
13548         (flag_use_boehm_gc): New global.
13549         * lang-options.h: Added -fuse-boehm-gc.
13550         * boehm.c: New file.
13551         * class.c (get_dispatch_table): If class uses a Boehm type
13552         descriptor, put it in the vtable.
13553         (make_class_data): Removed dead code.
13554
13555 2000-03-03  Per Bothner  <per@bothner.com>
13556
13557         * decl.c (init_decl_processing):  Initialize sizetype properly.
13558
13559 2000-03-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13560
13561         * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
13562         (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
13563         * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13564         * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
13565         (jcf_parse): New local `current'. Load innerclasses seen in outer
13566         context being processed.
13567         * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13568         * jcf-write.c (append_innerclasses_attribute): New function.
13569         (append_innerclasses_attribute_entry): Likewise.
13570         (get_access_flags): Handle static classes. Set anonymous and local
13571         classes to be private.
13572         (generate_classfile): Attribute count adjusted. Call
13573         append_innerclasses_attribute.
13574         * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
13575         PURE_INNER_CLASS_TYPE_P.
13576         * parse.y (parser_qualified_classname): New parameter `is_static',
13577         produce non qualified name accordingly.
13578         (block_statement:): Set LOCAL_CLASS_P when declaring local class.
13579         (create_interface): Added argument to parser_qualified_classname.
13580         (create_class): Added argument to parser_qualified_classname. Setup
13581         alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
13582         (add_inner_class_fields): Fixed indentation.
13583         (method_declarator): Use PURE_INNER_CLASS_DECP_P.
13584         (method_declarator): Fixed typo in comment.
13585         (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
13586         (build_current_thisn): Likewise.
13587         (patch_method_invocation): Likewise.
13588
13589 2000-03-01  Martin von Löwis  <loewis@informatik.hu-berlin.de>
13590
13591         * decl.c (current_function_decl): Move to toplev.c.
13592
13593 2000-02-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13594
13595         * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
13596         (DECL_BIT_INDEX): Use underlying representation.
13597         * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
13598
13599 2000-02-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13600
13601         * expr.c (build_java_ret): Pass proper type to size_binop.
13602
13603 2000-02-25  Anthony Green  <green@cygnus.com>
13604
13605         * expr.c (build_class_init): Mark the decl to be ignored by
13606         check_init.
13607         * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
13608         * check-init.c: Move DECL_BIT_INDEX to java-tree.h
13609         * class.c (init_test_hash_newfunc): New function.
13610         (decl_hash): New function.
13611         (decl_compare): New function.
13612         * decl.c (emit_init_test_initialization): New function.
13613         (complete_start_java_method): Traverse the init test hashtable,
13614         calling emit_init_test_initialization.
13615         (always_initialize_class_p): Define.
13616         * expr.c (build_class_init): Use initialization tests when
13617         emitting class initialization code.
13618         (always_initialize_class_p): Declare.
13619         * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
13620         1.
13621         * java-tree.h: Include hash.h.
13622         (DECL_FUNCTION_INIT_TEST_TABLE): Define.
13623         (struct lang_decl): Add init_test_table field.
13624         (init_test_hash_entry): Define.
13625
13626 2000-02-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13627
13628         * gjavah.c (main): Avoid using `argi' to report unimplemented
13629         options.
13630
13631 2000-02-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13632
13633         * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13634         initialize locals to avoid warnings. Local `exception_type' moved
13635         into if statement.
13636
13637 2000-02-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13638
13639         * parse.y (resolve_expression_name): Use `orig' as a second
13640         argument to resolve_field_access.
13641         (resolve_field_access): Removed unnecessary code when dealing with
13642         static fields.
13643
13644 2000-02-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13645
13646         * class.c (push_super_field): Don't push the field twice.
13647         * jcf-parse.c (parse_source_file): Call java_reorder_fields.
13648         * parse.h (java_reorder_fields): Prototyped.
13649         * parse.y (java_reorder_fields): New function.
13650         (java_layout_class): Simplified not to worry about re-ordering.
13651
13652 2000-02-23  Tom Tromey  <tromey@cygnus.com>
13653
13654         * gjavah.c (print_name): In JNI case, correctly quote string.
13655         (print_method_info): Don't handle overrides in JNI mode.
13656
13657 2000-02-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13658
13659         * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
13660         value type set to `boolean_type_node'.
13661
13662 2000-01-18  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
13663
13664         * jcf-dump.c (main): Test for correct condition after
13665         output file creation.
13666
13667 2000-02-19  Anthony Green  <green@cygnus.com>
13668
13669         * jcf-depend.c (add_entry): Fix test for first list entry.
13670
13671 2000-02-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13672
13673         * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
13674         * constants.c (build_constants_constructor): Likewise.
13675
13676 2000-02-19  Anthony Green  <green@cygnus.com>
13677
13678         * jcf-depend.c (add_entry): Add entries to the end of the list.
13679
13680 1999-11-03  Pekka Nikander  <pekka.nikander@hut.fi>
13681
13682         * decl.c (INT_TYPE_SIZE): Define if necessary.
13683         (expand_java_return): Handle the case of a native integer smaller
13684         than a JVM integer.
13685
13686 2000-02-18  Martin von Löwis  <loewis@informatik.hu-berlin.de>
13687
13688         * gjavah.c (help): Use GCCBUGURL.
13689         * jv-scan.c (help): Likewise.
13690         * jcf-dump.c (help): Likewise.
13691
13692 2000-02-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13693
13694         * jcf-write.c (generate_bytecode_insns): Don't generate empty
13695         `finally' clauses.
13696
13697 2000-02-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13698
13699         * jcf-parse.c (load_class): Call `fatal' if no file containing
13700         the target class are found.
13701
13702 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
13703
13704         * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
13705         lex.c, lex.h, and PARSE_H to...
13706         (parse.o, parse-scan.o): ...here, respectively.
13707
13708         * lex.c: Split out code that may trigger SIGFPE from yylex()
13709         to its own function.
13710         * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
13711
13712 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13713
13714         * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
13715
13716 2000-02-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13717
13718         * parse.y (outer_field_access_p): Stop in time when outer contexts
13719         are exhausted.
13720         (resolve_qualified_expression_name): Properly qualify *everything*
13721         after a package.type to be resoled as expression names.
13722         (find_applicable_accessible_methods_list): Save/restore `class' to
13723         isolate it from a possible outer context search.
13724
13725 2000-02-15  Tom Tromey  <tromey@cygnus.com>
13726
13727         * gjavah.c (jni_print_char): New function.
13728         (print_full_cxx_name): Use it.
13729         (decode_signature_piece): Likewise.
13730         (print_cxx_classname): Likewise.
13731
13732 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13733
13734         * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
13735         version.o.
13736         (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
13737
13738         * gjavah.c: Include version.h.
13739
13740         * jcf-dump.c: Likewise.
13741
13742         * jv-scan.c: Likewise.
13743
13744 2000-02-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13745
13746         * parse.y (outer_field_access_fix): First parameter now a tree
13747         node. Check for assignment to final. First argument to
13748         build_outer_field_access_fix modified to accommodate prototype.
13749         (build_outer_field_access): Don't check for assignment to final
13750         here.
13751         (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
13752         possibly returned by outer_field_access_fix. Changed
13753         outer_field_access_fix's first argument.
13754         (check_final_assignment): $finit$'s context is OK.
13755         (patch_unaryop): Use node instead of its line/column value when
13756         calling outer_field_access_fix.
13757
13758 2000-02-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13759
13760         * parse.y (interface_declaration:): No longer tagged
13761         <node>. Re-installed default action.
13762         (class_member_declaration:): Handle inner interfaces.
13763         (interface_member_declaration): Handle inner interfaces and
13764         classes.
13765         (create_interface): Push error if one seen. Suspend parsing
13766         context when processing an inner interface.
13767         (register_fields): Inner class static field limitations not to
13768         apply to inner interfaces.
13769
13770 2000-02-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13771
13772         * jcf-parse.c (load_class): Update `java_error_count' when a
13773         class' file can't be found.
13774         (parse.y): Avoid (byte)code generation when errors seen.
13775
13776 2000-02-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13777
13778         * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
13779         decodes a valid node.
13780         (patch_binop): Handle TRUNC_DIV_EXPR.
13781
13782 2000-02-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13783
13784         * parse.y (resolve_package): New local `acc'. Try to progressively
13785         build and guess a package and type name.
13786
13787 2000-02-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13788
13789         * parse.y (find_applicable_accessible_methods_list): Load and
13790         layout the search class if necessary.
13791         (java_complete_tree): Keep to original type of the folded initial
13792         value.
13793
13794 2000-02-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13795
13796         * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
13797         Generate error message if circularity is detected. New static
13798         local `list'.
13799         * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro.  *
13800         * jcf-write.c (generate_bytecode_insns): Very simply handle
13801         SAVE_EXPR.
13802         * parse.y (java_check_circular_reference): Use
13803         `cyclic_inheritance_report' during report, if necessary.
13804         (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
13805         walking NEW_ARRAY_INIT twice.
13806
13807 2000-02-09  Tom Tromey  <tromey@cygnus.com>
13808
13809         * parse.y (check_class_interface_creation): Allow inner classes to
13810         be `private' or `protected', check modifiers' consistency. Prevent
13811         block local classes from bearing any modifiers.
13812
13813 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13814
13815         * except.c (check_start_handlers): Re-add prototype lost in last
13816         patch.
13817         (maybe_start_try): Remove excess argument to `check_start_handlers'.
13818
13819 2000-02-09  Andrew Haley  <aph@cygnus.com>
13820
13821         * decl.c (clear_binding_level): Remove excess initializer.
13822         (maybe_poplevels): Remove unused variable.
13823         (force_poplevels): Ditto.
13824         (struct binding_level): Add comment.
13825
13826 2000-02-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13827
13828         * jcf-write.c (generate_classfile): Don't consider
13829         pre-initialization with reference value (use <clinit> instead.)
13830         * parse.y (java_fix_constructors): No generated constructor for
13831         interfaces.
13832         (build_outer_field_access): Removed debug message.
13833         (outer_field_expanded_access_p): Adapted to bytecode generation.
13834         (build_outer_field_access_method): Use fix_method_argument_names.
13835         (build_outer_method_access_method): Fixed indentation. Added
13836         comment. Handle access method generation for static and also void
13837         methods.
13838         (build_access_to_thisn): Inserted debug message.
13839         (maybe_build_thisn_access_method): Use fix_method_argument_names.
13840         (resolve_qualified_expression_name): Fixed comment.
13841         (not_accessible_p): Adapted to bytecode generation. Added comment.
13842         (patch_method_invocation): Added comment.
13843         (maybe_use_access_method): Fixed leading comment. Handle static
13844         methods.
13845         (java_complete_lhs): Don't shortcut handling of initialized upon
13846         declaration String type static fields when generating bytecode.
13847         (patch_unaryop): Handle outer field access when generating
13848         bytecode.
13849
13850 2000-02-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13851
13852         * java-tree.h (FIELD_THISN): New macro.
13853         * jcf-write.c (append_synthetic_attribute): New function.
13854         (generate_classfile): Set "Synthetic" attribute on this$<n>,
13855         val$<name> fields, access$<n> and $finit$ methods. Fixed indentation.
13856         * parse.y (add_inner_class_fields): Set FIELD_THISN for created
13857         this$<n> fields.
13858         (build_outer_field_access): Turned on access functions usage and
13859         generation when compiling to bytecode.
13860         (maybe_use_access_method): Likewise.
13861
13862 2000-01-25  Andrew Haley  <aph@cygnus.com>
13863
13864         * java-except.h (struct eh_range): Add `expanded' field.
13865         (maybe_start_try): Add end_pc arg.
13866         (maybe_end_try): Ditto.
13867         * java-tree.h (force_poplevels): new function.
13868         * expr.c (expand_byte_code): Don't call maybe_start_try or
13869         maybe_end_try.
13870         * except.c (add_handler): Reset expanded.
13871         (expand_start_java_handler): Set expanded.
13872         (check_start_handlers): Don't expand a start handler that's
13873         already been expanded.
13874         (maybe_start_try): Add end_pc arg.  Only expand a handler which
13875         ends after end_pc.
13876         (expand_end_java_handler): call force_poplevels.
13877         (force_poplevels): new function.
13878         * decl.c (binding_level): Add start_pc of binding level.
13879         (maybe_pushlevels): Call maybe_start_try when pushing binding
13880         levels.
13881         (maybe_poplevels): Call maybe_end_try when popping binding levels.
13882         (LARGEST_PC): Define.
13883         (clear_binding_level): Use LARGEST_PC.
13884
13885         * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
13886         * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
13887         (binding_depth, is_class_level, current_pc): new variables.
13888         (struct binding_level): ditto.
13889         (indent): new function.
13890         (push_jvm_slot): add debugging info.
13891         (maybe_pushlevels): ditto.
13892         (maybe_poplevels): ditto.
13893         (pushlevel): ditto.
13894         (poplevel): ditto.
13895         (start_java_method): ditto.
13896         (give_name_to_locals): comment only.
13897         * except.c (binding_depth, is_class_level, current_pc):
13898         new variables.
13899         (expand_start_java_handler): add debugging info.
13900         (expand_end_java_handler): ditto.
13901
13902 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13903
13904         * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
13905         (print_name_for_stub_or_jni, process_file): Constify a char*.
13906
13907 2000-02-03  Tom Tromey  <tromey@cygnus.com>
13908
13909         * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
13910
13911 2000-01-31  Scott Bambrough  <scottb@netwinder.org>
13912
13913         * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
13914         assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
13915         defined to be 1.
13916
13917 2000-02-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13918
13919         * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
13920         * java-tree.h (TYPE_II_STMT_LIST): New macro.
13921         (struct lang_type): New field `ii_block'.
13922         * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
13923         CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
13924         * parse.h (struct parser_ctxt): New field `instance_initializers'.
13925         (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
13926         CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
13927         CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
13928         macros.
13929         * parse.y (add_instance_initializer): New function.
13930         (in_instance_initializer): New static global.
13931         (class_body_declaration:): Link instance initializer block.
13932         (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
13933         (array_creation_expression:): Remove unused local.
13934         (java_parser_context_push_initialized_field): Fixed leading
13935         comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
13936         CPC_INSTANCE_INITIALIZER_LIST.
13937         (java_parser_context_pop_initialized_field): Likewise.
13938         (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
13939         (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
13940         CPC_INITIALIZER_STMT.
13941         (fix_constructors): New local `class_type'. Use it. Call
13942         add_instance_initializer.
13943         (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
13944         (patch_return): Forbid return in instance initializers.
13945         (patch_throw_statement): Enforce exception handling in the context
13946         of instance initializers.
13947
13948 2000-02-03  Tom Tromey  <tromey@cygnus.com>
13949
13950         * Make-lang.in (java.mostlyclean): Remove executables in
13951         `mostlyclean'.
13952
13953 2000-01-31  Scott Bambrough  <scottb@netwinder.org>
13954
13955         * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
13956         HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
13957         (java_float_finite): Convert to use union Word from javaop.h.
13958         (java_double_finite): Convert to use union DWord from javaop.h.
13959
13960 2000-02-02  Tom Tromey  <tromey@cygnus.com>
13961
13962         * gjavah.c (options): Added `jni' entry.
13963         (help): Document -jni.
13964         (flag_jni): New global.
13965         (process_file): Handle JNI output.  Don't print text from
13966         -prepend, -add, etc, when generating stubs.  Only remove `.class'
13967         suffix if it actually exists.
13968         (main): Create a `.c' file when run with `--jni --stubs'.  Create
13969         correct output file name with `--jni'.
13970         (print_include): Mangle header name differently in JNI case.
13971         (HANDLE_METHOD): In JNI mode, call print_method_info to generate
13972         method list.
13973         (print_method_info): Handle JNI case.  Put signature info into
13974         method name.  Handle case when STREAM is NULL.
13975         (print_name_for_stub_or_jni): New function.
13976         (print_stub_or_jni): Renamed from `print_stub'.  Handle JNI.
13977         (print_cxx_classname): Handle JNI.
13978         (print_full_cxx_name): Likewise.
13979         (decode_signature_piece): Likewise.
13980         (overloaded_jni_method_exists_p): New function.
13981         (struct method_name): Added `signature' and `sig_length' fields.
13982         (HANDLE_END_FIELD): Do nothing in JNI mode.
13983
13984 2000-02-02  Tom Tromey  <tromey@cygnus.com>
13985
13986         * jv-scan.c: Include version.c, <getopt.h>.
13987         (LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
13988         (options): New array.
13989         (usage): New function.
13990         (version): New function.
13991         (main): Use getopt_long to parse command line.
13992         * jcf-dump.c: Include version.c, <getopt.h>.
13993         (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
13994         OPT_JAVAP): New macros.
13995         (options): New array.
13996         (usage): Return `void'.  Changed message.
13997         (help): New function.
13998         (version): New function.
13999         (main): Use getopt_long_only to parse command line.
14000         * gjavah.c: Include <getopt.h>.
14001         (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
14002         OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
14003         OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
14004         (options): New array.
14005         (java_no_argument): Removed.
14006         (help): Updated with missing options.
14007         (main): Use getopt_long_only to parse command line.
14008         (usage): Changed message.
14009
14010 2000-02-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14011
14012         * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
14013         * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
14014         ANONYMOUS_ARRAY_INITIALIZER): New access macros.
14015         * parse.y (array_creation_expression:): Handle anonymous arrays.
14016         (build_array_from_name): Don't set `ret_name' if null.
14017         (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
14018         (qualify_ambiguous_name): Likewise.
14019         (java_complete_expand_class): Likewise.
14020
14021 2000-02-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14022
14023         * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
14024         * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
14025         (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
14026         (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
14027         (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
14028         AIPL_FUNCTION_COMPLETED_INVOCATION.
14029         (AIPL_FUNCTION_CTOR_INVOCATION): Replaces
14030         AIPL_FUNCTION_INVOCATION_READY.
14031         (AIPL_FUNCTION_DECLARATION): New enum entry.
14032         * parse.y (reorder_static_initialized): New function.
14033         (java_parser_context_pop_initialized_field): Use it.
14034         (add_inner_class_fields): Use
14035         MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
14036         augmented. Install marker after last alias initializer, if any.
14037         (generate_finit): Fixed typo. Don't try to retain only the used
14038         fields.
14039         (method_header): Compute and set DECL_FUNCTION_NAP.
14040         (method_declarator): Fixed comment. Insert alias initializer in
14041         parameter list.
14042         (build_alias_initializer_parameter_list): Fixed leading
14043         comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
14044         replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
14045         (java_complete_expand_class): Code to retain only used aliases
14046         removed.
14047         (java_complete_expand_methods): New local `first_decl'. Generate
14048         $finit$ first, then expand the constructors, regular methods and
14049         <clinit>.
14050         (java_complete_expand_method): Don't report error on missing
14051         return statement if previously detected bogus.
14052         (fix_constructors): Don't patch constructor parameters list.
14053         (patch_method_invocation): Use new AIPL enum values. Reverse
14054         alias initializer list for anonymous classes.
14055
14056 2000-01-30  Anthony Green  <green@redhat.com>
14057
14058         * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
14059         determine how many stack slots to pop.
14060
14061 2000-01-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14062
14063         * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
14064         error handling/recovery.
14065         * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
14066
14067 2000-01-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14068
14069         * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
14070         FIELD_LOCAL_ALIAS_USED): New macros.
14071         (DECL_FUNCTION_NAP): New macro.
14072         (struct lang_decl): New field `nap'.
14073         (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
14074         (struct lang_type): New fields `finit_stmt_list' and
14075         `clinit_stmt_list'.
14076         (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
14077         * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
14078         (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
14079         UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
14080         (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
14081         AIPL_FUNCTION_INVOCATION_READY): New enum fields.
14082         (BUILD_THROW): Macro line separator re-indented.
14083         * parse.y (end_class_declaration): New function.
14084         (maybe_generate_pre_expand_clinit): New name for
14085         java_pre_expand_clinit. Create <clinit> off TYPE_CLINIT_STMT_LIST,
14086         pre-expand static fields.
14087         (maybe_generate_clinit): Function deleted.
14088         (check_for_static_method_reference): Prototype's parameter list
14089         indented.
14090         (generate_finit): New name for maybe_generate_finit. Changed
14091         leading comment. Function rewritten to use
14092         TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
14093         (build_alias_initializer_parameter_list): New function.
14094         (java_parser_context_pop_initialized_field): Likewise.
14095         (add_inner_class_fields): Likewise.
14096         (type_declaration:): Call end_class_declaration.
14097         (class_member_declaration:): Likewise.
14098         (formal_parameter_list:): Fixed typos.
14099         (formal_parameter:): Use ARG_FINAL_P to mark created tree list
14100         element. Improved error handling.
14101         (block_statement:): Call end_class_declaration.
14102         (anonymous_class_creation:): Likewise.
14103         (create_anonymous_class): Fixed comments.
14104         (create_class): Call add_inner_class_fields.
14105         (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
14106         (method_header): Use MARK_FINAL_PARMS.
14107         (finish_method_declaration): Use UNMARK_FINAL_PARMS.
14108         (method_declarator): Propagate final argument flag.
14109         (craft_constructor): New local `artificial'. Call
14110         build_alias_initializer_parameter_list. Use
14111         CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
14112         (source_start_java_method): Mark parm decls with LOCAL_FINAL if
14113         necessary.
14114         (complete_expand_class): Get rid of unused outer context local
14115         alias fields.
14116         (java_complete_expand_methods): Fixed leading
14117         comment. Generate/pre-expand <clinit> first. Changed method
14118         expansion order to regular, $finit$, constructors, <clinit>.
14119         (java_complete_expand_method): Set current_function_decl.
14120         (fix_constructors): Fix constructor parameter list to account for
14121         outer context local alias initializers.
14122         (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14123         (resolve_expression_name): Lookup outer context local aliases. New
14124         local `access', use it.
14125         (patch_method_invocation): Patch inner class ctor invocation with
14126         outer context local aliases initialization values. $finit$
14127         invocation patching now includes things generated with
14128         build_alias_initializer_parameter_list.
14129         (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14130         (build_super_invocation): Likewise.
14131         (patch_assignment): Changed comment.
14132
14133 2000-01-27  Andrew Haley  <aph@cygnus.com>
14134
14135         * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
14136         (emit_if): Ditto.
14137         (emit_jsr): Ditto.
14138
14139 2000-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14140
14141         * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
14142         concatenation.
14143         (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.
14144
14145         * parse.y (register_fields): Don't pass a format specifier to
14146         OBSOLETE_MODIFIER_WARNING.
14147         (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
14148         instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
14149         specifier.
14150         (check_modifiers): Change function into a macro.
14151         (check_class_interface_creation): Pass a literal format string.
14152
14153 2000-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14154
14155         * buffer.h: PROTO -> PARAMS.
14156         * check-init.c: Likewise.
14157         * class.c: Likewise.
14158         * constants.c: Likewise.
14159         * convert.h: Likewise.
14160         * decl.c: Likewise.
14161         * except.c: Likewise.
14162         * expr.c: Likewise.
14163         * gjavah.c: Likewise.
14164         * java-except.h: Likewise.
14165         * java-tree.h: Likewise.
14166         * jcf-depend.c: Likewise.
14167         * jcf-dump.c: Likewise.
14168         * jcf-parse.c: Likewise.
14169         * jcf-path.c: Likewise.
14170         * jcf-reader.c: Likewise.
14171         * jcf-write.c: Likewise.
14172         * jcf.h: Likewise.
14173         * jv-scan.c: Likewise.
14174         * jvgenmain.c: Likewise.
14175         * jvspec.c: Likewise.
14176         * lang.c: Likewise.
14177         * lex.c: Likewise.
14178         * lex.h: Likewise.
14179         * parse-scan.y: Likewise.
14180         * parse.h: Likewise.
14181         * parse.y: Likewise.
14182         * typeck.c: Likewise.
14183         * verify.c: Likewise.
14184         * xref.c: Likewise.
14185         * xref.h: Likewise.
14186         * zextract.c: Likewise.
14187         * zipfile.h: Likewise.
14188
14189 2000-01-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14190
14191         * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14192         (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
14193         * constants.c (build_constant_data_ref): Check for cached
14194         current_constant_pool_data_ref. Cache current_constant_pool_data_ref
14195         in TYPE_CPOOL_DATE_REF.
14196         * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
14197         MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
14198         (struct lang_type): New fields `cpool' and `cpool_data_ref'.
14199         (LOCAL_FINAL): New macro.
14200         * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
14201         constant pool -- don't try to reuse.
14202         (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
14203         TYPE_LANG_SPECIFIC.
14204         (find_in_current_zip): Use TYPE_JCF.
14205         * parse.h (java_check_final): Prototype removed.
14206         * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
14207         (maybe_create_class_interface_decl,
14208         check_class_interface_creation): Likewise.
14209         (java_expand_finals): Function removed.
14210         (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
14211         (block_statement:): Fixed comment.
14212         (anonymous_class_creation:): Likewise.
14213         (check_class_interface_creation): Reversed Jan 12, 2000 extra
14214         argument patch.
14215         (check_class_interface_creation): Loosened error report on (inner)
14216         public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
14217         (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
14218         (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
14219         argument patch.
14220         (create_interface): Likewise.
14221         (anonymous_class_counter): New static global.
14222         (create_anonymous_class): Reversed Jan 12, 2000 extra argument
14223         patch. Fixed comments.
14224         (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
14225         anonymous_class_counter when declaring a toplevel class.
14226         (craft_constructor): Fixed constructor name when handling
14227         anonymous classes. Anonymous class constructors to feature hidden
14228         this$<n> parameter.
14229         (java_fix_constructors): Added comment.
14230         (java_check_final): Function removed.
14231         (java_complete_expand_methods): Fixed comment. Don't generate
14232         class data, save its outgoing constant pool instead.
14233         (verify_constructor_super): Skip anonymous class constructor
14234         hidden this$<n> parameter.
14235         (java_expand_classes): New local `saved_ctxp'. Removed call to
14236         java_expand_finals and java_check_final. Expand anonymous class
14237         constructors. Generate class data.
14238         (build_super_invocation): Skip anonymous class hidden this$<n>
14239         parameter.
14240         * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
14241         MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14242         (set_java_signature): Likewise.
14243
14244 2000-01-18  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
14245
14246         * gjavah.c: Delete ACC_VISIBILITY define.
14247         * jcf.h: Add ACC_VISIBILITY define.
14248         * parse.y: final: rule tagged <value>.
14249         (java_check_regular_methods): Use ACC_VISIBILITY define for
14250         default package access check.
14251         (local_variable_declaration_statement): Use final: rule.
14252
14253 2000-01-17  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
14254
14255         * parse.y (format_parameter:): Use final: rule instead of modifiers:.
14256         (final:): New rule.
14257
14258 2000-01-17  Tom Tromey  <tromey@cygnus.com>
14259
14260         * gjavah.c (print_field_info): Allow non-static final fields.
14261
14262 2000-01-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14263
14264         * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
14265         * parse.y (patch_anonymous_class): New function.
14266         (create_anonymous_class): Register incomplete type when the
14267         class/interface to extends/implement isn't known yet.
14268         (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
14269         (verify_constructor_super): Tuned error message.
14270
14271 2000-01-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14272
14273         * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
14274         (ANONYMOUS_CLASS_P): New macro.
14275         (TYPE_SIGNATURE, TYPE_JCF): New macros.
14276         (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
14277         * parse.y (create_class): Added leading argument.
14278         (maybe_create_class_interface_decl,
14279         check_class_interface_creation): Likewise.
14280         (craft_constructor): New function.
14281         (verify_constructor_super): Added argument in prototype.
14282         (class_declaration:): Inserted leading argument.
14283         (for_begin:): Use FOR_LOOP_P.
14284         (anonymous_class_creation): Create WFL of the anonymous class to
14285         instantiate. Call build_new_invocation. Added comments.
14286         (check_class_interface_creation): Handle parameter `anonymous' in
14287         verbose mode class creation announce.
14288         (link_nested_class_to_enclosing): Exclude anonymous classes.
14289         (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
14290         anonymous class, even though they appear to have an enclosing
14291         context.
14292         (create_interface): Pass extra argument to
14293         check_class_interface_creation.
14294         (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
14295         (create_class): Call check_class_interface_creation and
14296         maybe_create_class_interface_decl with extra new argument. Don't
14297         add private this$<n> to anonymous classes.
14298         (method_declarator): Insert hidden this$<n> to anonymous class
14299         constructors.
14300         (java_fix_constructors): Deleted code creating default
14301         constructor. Call craft_constructor instead.
14302         (java_check_regular_methods): Set `saw_constructor' to 1 for
14303         anonymous classes.
14304         (fix_constructors): Pass extra argument to verify_constructor_super.
14305         (verify_constructor_super): New local `sdecl', use it. Search for
14306         matching constructor (possibly featuring arguments) in super
14307         class.
14308         (lookup_method_invoke): Craft constructor according to arguments
14309         list when dealing with anonymous class constructors.
14310         (build_super_invocation): Pass arguments to anonymous class super
14311         constructors.
14312         (search_loop): Use FOR_LOOP_P.
14313         (labeled_block_contains_loop_p): Likewise.
14314
14315 2000-01-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14316
14317         * class.c (set_super_info): Set CLASS_STATIC when appropriate.
14318         (enclosing_context_p): New function.
14319         (get_access_flags_from_decl): Handle CLASS_STATIC.
14320         (maybe_layout_super_class): Extra first argument passed to
14321         do_resolve_class.
14322         (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
14323         ID_INIT_P.
14324         * decl.c (access0_identifier_node): New global.
14325         (init_decl_processing): access0_identifier_node initialized.
14326         (pushdecl): Set DECL_CONTEXT only on non type decls.
14327         * expr.c (lookup_field): Lookup inner class fields in enclosing
14328         contexts.
14329         (expand_invoke): Use ID_INIT_P.
14330         (expand_java_field_op): Use DECL_CLINIT_P.
14331         * java-tree.def (CLASS_LITERAL): New tree code.
14332         * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
14333         DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
14334         (struct lang_decl): New field `inner_access'.
14335         (enclosing_context_p): Prototyped.
14336         (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
14337         ID_CLINIT_P): New macros.
14338         (CLASS_STATIC): New macro.
14339         (CLASS_ACCESS0_GENERATED_P): New macro.
14340         (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
14341         TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
14342         INNER_CLASS_P): New macros.
14343         (DECL_INNER_CLASS_LIST): New macro.
14344         * jcf-parse.c (yyparse): Avoid the use of ANSI string
14345         concatenation.
14346         * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14347         the shift value to int. Fixed typo in comment.
14348         * lex.c (inst_id, wpv_id): Initialize.
14349         * mangle.c (unicode_mangling_length): Take `$' into account.
14350         * parse.h (DRECOVER, RECOVER): Terminate properly.
14351         (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
14352         (typedef struct _jdep): New field `enclosing'.
14353         (JDEP_ENCLOSING): New macro.
14354         (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
14355         (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
14356         (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
14357         GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
14358         GET_ENCLOSING_CPC_CONTEXT): New macros.
14359         (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.
14360         (do_resolve_class): Added extra argument in prototype.
14361         * parse.y (resolve_class): Added extra argument in prototype.
14362         (maybe_create_class_interface_decl): Likewise.
14363         (maybe_use_access_method, build_wfl_wrap): New functions.
14364         (java_complete_expand_classes, java_complete_expand_class):
14365         Likewise.
14366         (java_parser_context_push_initialized_field,
14367         java_parser_context_suspend, java_parser_context_resume):
14368         Likewise.
14369         (maybe_make_nested_class_name, make_nested_class_name,
14370         set_nested_class_simple_name_value,
14371         link_nested_class_to_enclosing, find_as_inner_class,
14372         find_as_inner_class_do, check_inner_class_redefinition,
14373         build_thisn_assign, build_current_thisn, build_access_to_thisn,
14374         maybe_build_thisn_access_method, build_outer_field_access,
14375         build_outer_field_access_methods, build_outer_field_access_expr,
14376         build_outer_method_access_method, build_new_access_id,
14377         build_outer_field_access_method, outer_field_access_p,
14378         outer_field_expanded_access_p, outer_field_access_fix,
14379         build_incomplete_class_ref, patch_incomplete_class_ref,
14380         create_anonymous_class): Likewise.
14381         (inst_id, wpv_id): New static global variables.
14382         (synchronized:): New rule, tagged <node>.
14383         (type_declaration:): No longer tagged <node>. Call POP_CPC in sub
14384         rules.
14385         (anonymous_class_creation:): New rule, tagged <node>.
14386         (NEW_TK): Tagged <node>.
14387         (type_literals, array_type_literal): New rules, tagged <node>.
14388         (class_declaration:): Removed action when reducing by class_body:
14389         (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
14390         using GET_CPC in sub-rules.
14391         (class_member_declaration): Handle inner classes.
14392         (method_declaration): When reducing method_header:, reset
14393         current_function_decl when appropriate.
14394         (method_declarator:): Set the number of formal parameter to 0 for
14395         method declared without arguments.
14396         (constructor_declarator:): Likewise.
14397         (static_initializer:): List of elements kept in a list.
14398         (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
14399         use of the keyword `static' for type declarations.
14400         (block_statement:): Handle inner class declarations.
14401         (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
14402         type qualified `this'.
14403         (class_instance_creation_expression): Use anonymous_class_creation:
14404         to handle inner class instances creation. Handle qualified `new'.
14405         (something_dot_new): Added appropriate actions.
14406         (create_new_parser_context): New function.
14407         (java_push_parser_context, java_parser_context_save_global,
14408         java_parser_context_suspend): Use create_new_parser_context.
14409         (check_modifiers): Changed leading comment.
14410         (check_class_interface_creation): Handle interclasses.
14411         (add_superinterfaces): Fixed comment.
14412         (create_interface): Build qualified name from the raw_name instead
14413         of its matching WFL. Push the initialized fields list. raw_name added
14414         as an extra argument to maybe_create_class_interface_decl.
14415         (create_class): Build qualified name from the raw_name instead of
14416         its matching WFL. Removed assignment to current_parsed_class_un.
14417         Call PUSH_ERROR before returning an error. Suspend the current
14418         parser context when processing an inner class. Push the
14419         initialized fields list. raw_name added as an extra argument to
14420         maybe_create_class_interface_decl. Add the private this$<n>
14421         field.
14422         (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
14423         (register_fields): Get the class type from GET_CPC and handle
14424         previous errors.  Added code to handle the creation of static
14425         fields in inner classes. Initialized fields initialization
14426         statements kept in a list of lists.
14427         (maybe_generate_finit): Initialized fields initialization
14428         statements kept in a list of lists. Use GET_CPC.
14429         (maybe_generate_clinit): Likewise.
14430         (method_header): Use GET_CPC and GET_CPC_UN.
14431         (parser_qualified_classname): Handle inner classes.
14432         (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
14433         (java_fix_constructors): Hide pointer to enclosing context
14434         instance in constructor list when dealing with inner classes.
14435         (jdep_resolve_class): Call resolve_class with extra first argument
14436         JDEP_ENCLOSING.
14437         (resolve_class): Add enclosing context as a first extra argument
14438         to do_resolve_class.
14439         (do_resolve_class): Call find_as_inner_class. Handle WFLs
14440         properly.
14441         (resolve_no_layout): Extra argument added to resolve_class
14442         invocation.
14443         (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
14444         (java_get_real_method_name): Use GET_CPC_UN.
14445         (check_abstract_method_definitions): Use DECL_CLINIT_P.
14446         (java_check_abstract_methods): Handle static method declared in
14447         inner classes by an error.
14448         (java_check_regular_methods): Use DECL_CLINIT_P.
14449         (source_start_java_method): Also set DECL_MAX_LOCALS.
14450         (create_artificial_method): Call java_parser_context_save_global
14451         and java_parser_context_restore_global instead of saving/restoring
14452         the context by hand.
14453         (expand_start_java_method): Improved verbose mode message.
14454         (java_complete_expand_methods): Fixed leading comment. Use
14455         DECL_CLINIT_P.
14456         (fix_constructors): Added assignment to this$<n> if necessary.
14457         (java_expand_classes): Call java_complete_expand_classes instead
14458         of java_complete_expand_methods.
14459         (make_qualified_primary): Simplified.
14460         (merge_qualified_name): Optimized for missing left or right parts.
14461         (resolve_expression_name): Handle access to outer class fields from
14462         interclasses.
14463         (resolve_qualified_expression_name): New macro
14464         RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
14465         classes. Report error on non appropriate qualification of
14466         `new'. Handle qualified `this'.
14467         (not_accessible_p): Allow access to outer class private fields from
14468         inner classes.
14469         (patch_method_invocation): Handle method invocations through
14470         access methods and inner class constructor invocations.
14471         (find_applicable_accessible_methods_list): Search enclosing
14472         contexts of an inner class.
14473         (search_applicable_methods_list): Fixed typo.
14474         (argument_types_convertible): Handle inner class constructors'
14475         hidden outer context reference argument.
14476         (qualify_ambiguous_name): Handle qualified `this'.
14477         (java_complete_lhs): Handle use of field accessed through
14478         artificial access methods in various cases of assignments. Handle
14479         CLASS_LITERAL node.
14480         (check_final_assignment): Use DECL_CLINIT_P.
14481         (valid_ref_assignconv_cast_p): Handle the destination being an
14482         enclosing context of the source.
14483         (patch_unaryop): Handle use of field accessed through artificial
14484         access methods.
14485         (patch_return): Use DECL_CLINIT_P.
14486         (patch_throw_statement): Use DECL_CLINIT_P.
14487         (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
14488         * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
14489         ID_INIT_P.
14490
14491 2000-01-16  Anthony Green  <green@cygnus.com>
14492
14493         * parse.y (build_string_concatenation): Only use
14494         StringBuffer(String) shortcut if String arg is constant.
14495
14496 2000-01-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14497
14498         * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14499         the shift value to int. Fixed typo in comment.
14500
14501 2000-01-11  Mumit Khan  <khan@xraylith.wisc.edu>
14502
14503         * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
14504         * jcf-write.c: Likewise.
14505         * parse.y: Likewise.
14506         * parse.c: Regenerate.
14507
14508 2000-01-09  Anthony Green  <green@cygnus.com>
14509
14510         * jcf-write.c (generate_bytecode_insns): Emit invokeinterface
14511         bytecodes in the correct order.
14512
14513 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14514
14515         * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
14516
14517 2000-01-06  Anthony Green  <green@cygnus.com>
14518
14519         * expr.c (java_lang_expand_expr): Switch to permanent obstack
14520         before building constant array decl.
14521
14522 2000-01-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14523
14524         * jcf-write.c (generate_bytecode_conditional): Fixed indentation in
14525         method invocation and typo in conditional expression.
14526         (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
14527         the appropriate NOTE_POP.
14528         * parse.y (patch_binop): Shift value mask to feature the right
14529         type.
14530
14531 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14532
14533         * class.c (assume_compiled, assume_compiled_node): Add static
14534         prototype.
14535         (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
14536
14537         * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
14538
14539         * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
14540
14541         * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
14542         to `__modifier' to avoid stringifying it.
14543
14544         * parse.y (verify_constructor_circularity): Don't call a variadic
14545         function with a non-literal format string.
14546         (java_check_abstract_methods): Move unreachable code inside
14547         `continue' statement.
14548         (lookup_method_invoke): Call xstrdup, not strdup.
14549
14550         * expr.c (expand_java_field_op): Avoid the use of ANSI string
14551         concatenation.
14552
14553         * jcf-parse.c (yyparse): Likewise.
14554
14555         * jv-scan.c (main): Likewise.
14556
14557 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14558
14559         * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
14560         ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
14561         ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
14562         concatenation.
14563
14564         * parse.y (synchronized, variable_redefinition_error,
14565         check_class_interface_creation, create_interface, create_class,
14566         method_header, finish_method_declaration,
14567         check_modifiers_consistency, method_declarator,
14568         complete_class_report_errors, check_abstract_method_definitions,
14569         java_check_regular_methods, check_throws_clauses,
14570         java_check_abstract_methods, read_import_dir,
14571         check_pkg_class_access, declare_local_variables, fix_constructors,
14572         cut_identifier_in_qualified, resolve_expression_name,
14573         resolve_qualified_expression_name, patch_method_invocation,
14574         java_complete_lhs, patch_assignment, try_builtin_assignconv,
14575         patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
14576         patch_exit_expr, patch_exit_expr, patch_switch_statement,
14577         patch_try_statement, patch_synchronized_statement,
14578         patch_throw_statement, check_thrown_exceptions,
14579         patch_conditional_expr): Likewise.
14580
14581 1999-12-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14582
14583         * Makefile.in (LIBDEPS): Added gcc's errors.o
14584         (../jcf-dump$(exeext):): Link with gcc's errors.o
14585         (../gcjh$(exeext):): Likewise.
14586         * expr.c (expand_java_NEW): Layout the entire target type instead of
14587         laying out its methods only.
14588         (lookup_field): Layout the class after having loaded it.
14589         * java-tree.h (java_debug_context): Declared.
14590         * jcf-io.c (toplev.h): Included.
14591         (find_class): Removed assignment to jcf's outofsynch
14592         field. Force source file to be read if newer than its matching
14593         class file. Tweaked debug messages.
14594         * jcf-parse.c (jcf_out_of_synch): Deleted.
14595         (read_class): Call to jcf_out_of_synch removed.
14596         * jcf.h (typedef struct JCF): Field `outofsynch' deleted.
14597         (jcf_out_of_synch): Prototype deleted.
14598         * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
14599         `deprecated' and `class_err': integer turned into bit-fields.
14600         New bit-fields `saved_data_ctx' and `saved_data'. Fixed comments.
14601         * parse.y (package_list): New global.
14602         (package_declaration:): Record newly parsed package name.
14603         (extra_ctxp_pushed_p): Static global deleted.
14604         (java_parser_context_save_global): Create buffer context for the
14605         purpose of saving globals, if necessary.
14606         (java_parser_context_restore_global): Pop context pushed for the
14607         purpose of saving globals, if necessary.
14608         (java_debug_context_do): New prototype and function.
14609         (java_debug_context): Likewise.
14610         (do_resolve_class): Use already parsed package names to qualify
14611         and lookup class candidate.
14612         (java_pre_expand_clinit): Removed unnecessary local variable.
14613
14614 1999-12-17  Tom Tromey  <tromey@cygnus.com>
14615
14616         * gjavah.c (decode_signature_piece): Print "::" in JArray<>.  This
14617         fixes PR gcj/119.
14618         (process_file): Use `\n\' at end of each line in string.
14619
14620 1999-12-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14621
14622         * expr.c (expand_invoke): Layout the loaded class before
14623         attempting to use it.
14624         (expand_java_field_op): Allow final field assignments to take
14625         place in $finit$.
14626         * typeck.c (convert): Return error_mark_node if expr is null.
14627
14628 1999-12-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14629
14630         * class.c (class_depth): Return -1 if the class doesn't load
14631         properly.
14632         * expr.c (can_widen_reference_to): Check for errors during depth
14633         computation and return 0 accordingly.
14634         * jcf-parse.c (parse_source_file): Call java_fix_constructors to
14635         create default constructors and add an other error check.
14636         * parse.h (java_fix_constructors): Prototyped.
14637         * parse.y (java_pre_expand_clinit): Likewise.
14638         (build_super_invocation): Re-prototyped to feature one argument.
14639         (java_check_circular_reference): Directly use `current'.
14640         (java_fix_constructors): New function.
14641         (java_check_regular_methods): Don't create default constructors
14642         here, but abort if none were found.
14643         (java_complete_expand_methods): Pre-process <clinit> calling
14644         java_pre_expand_clinit.
14645         (java_pre_expand_clinit): New function.
14646         (fix_constructors): build_super_invocation invoked with the
14647         current method declaration as an argument.
14648         (build_super_invocation): Use the context of the processed method
14649         decl argument instead of current_class.
14650         * typeck.c (lookup_java_method): Take WFLs in method names into
14651         account.
14652
14653 1999-12-14  Per Bothner  <per@bothner.com>
14654
14655         * class.c (make_class_data): flag_keep_inline_functions to keep
14656         private methods in the method array.
14657
14658 1999-12-15  Anthony Green  <green@cygnus.com>
14659
14660         * check-init.c (check_init): Take into account both types of
14661         `throw's when checking for uninitialized variables.
14662
14663 1999-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14664
14665         * parse.y (java_complete_lhs): Force conversion of array
14666         dimensions to int_type_node, that's what runtime's ABI expects.
14667
14668 1999-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14669
14670         * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
14671         operand of a WFL, until the Java front-end gets fixed with regard
14672         to Mark Mitchell's gcc/tree.h patch (1999-12-04.)
14673
14674 1999-12-10  Andrew Haley  <aph@cygnus.com>
14675
14676         * parse.h (BUILD_THROW): Add support for sjlj-exceptions.
14677         decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
14678         expr.c (build_java_athrow): Add support for sjlj-exceptions.
14679         java-tree.h: Ditto.
14680         jcf-write.c: Ditto.
14681
14682 1999-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14683
14684         * expr.c (java_lang_expand_expr): Switch to permanent obstack
14685         before calling expand_eh_region_start and expand_start_all_catch.
14686         * except.c (expand_start_java_handler): Switch to permanent
14687         obstack before calling expand_eh_region_start.
14688         (expand_end_java_handler): Switch to permanent obstack before
14689         calling expand_start_all_catch.
14690
14691 1999-12-5  Anthony Green  <green@cygnus.com>
14692
14693         * decl.c (init_decl_processing): Mark throw_node as a noreturn
14694         function with side effects.
14695         (init_decl_processing): Mark all memory allocating DECLs with
14696         DECL_IS_MALLOC.
14697
14698 1999-12-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14699
14700         * except.c (expand_end_java_handler): Call
14701         expand_resume_after_catch and end_catch_handler.
14702
14703 1999-11-30  Anthony Green  <green@cygnus.com>
14704
14705         * verify.c (verify_jvm_instructions): Create new return label
14706         chain if non existent (don't rely on the verified state of the jsr
14707         target.)
14708
14709 1999-11-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14710
14711         * jcf-write.c (generate_bytecode_insns): Fixed indentation for
14712         COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
14713
14714         * parse.y (patch_assignment): Removed bogus final class test on
14715         lhs when checking on whether to emit an ArrayStoreException runtime
14716         check.
14717         * expr.c (expand_java_arraystore): Likewise.
14718
14719 1999-11-28 Anthony Green <green@cygnus.com>
14720
14721         * decl.c (find_local_variable): Reuse single slot decls when
14722           appropriate.
14723
14724 1999-11-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14725
14726         * jcf-parse.c (saw_java_source): Global variable removed.
14727         (read_class): Don't use `saw_java_source'. Added extra braces.
14728         (yyparse): Code setting `saw_java_source' removed.
14729
14730 1999-11-24  Mark Mitchell  <mark@codesourcery.com>
14731
14732         * except.c (emit_handlers): Zero catch_clauses after emitting them.
14733
14734 1999-11-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14735
14736         * verify.c (merge_type_state): Non verified subroutines being
14737         considered more than once to trigger passive type merge.
14738
14739 1999-11-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14740
14741         * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
14742         in case of error. Error message tuned.
14743
14744 1999-11-21  Anthony Green  <green@cygnus.com>
14745
14746         * constants.c (find_methodref_index): Unwrap method names before
14747         inserting them in the constant pool.
14748
14749         * jcf-parse.c (jcf_parse): Display `interface' when appropriate.
14750
14751         * class.c (assume_compiled_node): New typedef.
14752         (assume_compiled_tree): New static data.
14753         (find_assume_compiled_node): New function.
14754         (add_assume_compiled): New function.
14755         (assume_compiled): New function.
14756         * class.c (make_class_data): Use assume_compiled.
14757         (is_compiled_class): Use assume_compiled.
14758
14759         * java-tree.h (add_assume_compiled): Declare.
14760
14761         * lang.c (lang_decode_option): Parse new options.
14762
14763 1999-11-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14764
14765         * class.c (layout_class): Always convert TYPE_SIZE_UNIT to
14766         int_type_node: that's what `_Jv_AllocObject' expects.
14767
14768 1999-11-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14769
14770         * parse.y (lookup_method_invoke): Use lang_printable_name to
14771         reliably build the type name during error report. Fixes PR gcj/97.
14772
14773 1999-11-09  Tom Tromey  <tromey@cygnus.com>
14774
14775         * jcf-path.c: Include <sys/stat.h>.
14776         (jcf_path_init): Search for libjava.zip.  Fixes PR gcj/84.
14777         (DIR_UP): New macro.
14778
14779 1999-11-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14780
14781         * parse.y (source_end_java_method): Resume permanent allocation,
14782         reversing Apr 27 1998 patch.
14783         (patch_string_cst): Pop obstacks after having pushed the permanent
14784         ones.
14785
14786 1999-11-05  Tom Tromey  <tromey@cygnus.com>
14787
14788         * class.c (finish_class): Emit inlined methods if any native
14789         methods exist in the class.  Fixes PR gcj/85.
14790
14791 1999-11-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14792
14793         * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
14794         (qualify_ambiguous_name): Likewise.
14795
14796 1999-11-03  Godmar Back <gback@cs.utah.edu>
14797
14798         * typeck.c: (lookup_java_method):  search all inherited
14799         interfaces when looking up interface method.
14800
14801 1999-11-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14802
14803         * parse.y (method_header:): Issue error message for rule `type
14804         error'.
14805         (synchronized:): Error report when not using synchronized.
14806
14807 1999-11-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14808
14809         * parse.y (resolve_qualified_expression_name): Prevent `this' from
14810         being used before the superclass constructor has been called.
14811         (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
14812         instead of `CALL_THIS_CONSTRUCTOR_P'.
14813
14814 1999-10-30  Todd T. Fries <todd@lighthouse.fries.net>
14815
14816         * check-init.c: Fix typo in comment.
14817
14818 1999-10-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14819
14820         * class.c (add_method_1): Set DECL_INLINE to 1 for private, static
14821         and final method.
14822
14823 1999-10-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14824
14825         * parse.y (expression_statement:): Call function to report
14826         improper invocation of a constructor.
14827         (parse_ctor_invocation_error): New function.
14828
14829 1999-10-26  Mark Mitchell  <mark@codesourcery.com>
14830
14831         * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
14832         remember_end_note.
14833
14834 1999-10-21  Tom Tromey  <tromey@cygnus.com>
14835
14836         * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
14837         in generated `main'.
14838
14839 1999-10-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14840
14841         * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
14842         (qualify_ambiguous_name): Likewise.
14843
14844 1999-10-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14845
14846         * parse.y (java_complete_tree): fold_constant_for_init to work on
14847         permanent_obstack.
14848         (java_complete_lhs): Likewise.
14849         (array_constructor_check_entry): Complete an initializer element
14850         on permanent_obstack.
14851
14852 1999-10-19  Tom Tromey  <tromey@cygnus.com>
14853
14854         * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
14855         From Mike Moreton <mike@pillim.demon.co.uk>.
14856
14857 1999-10-15  Greg McGary  <gkm@gnu.org>
14858
14859         * java-tree.h (flag_bounds_check): Remove extern decl.
14860         * lang.c (flag_bounds_check): Remove global variable.
14861         (lang_f_options): Remove "bounds-check" entry.
14862         (lang_init_options): Default flag_bounds_check to "on".
14863
14864 1999-10-14  Tom Tromey  <tromey@cygnus.com>
14865
14866         * jvgenmain.c (usage): New function.
14867         (main): Use it.  Also, handle `-D' options.
14868         * jvspec.c (lang_specific_driver): Recognize -D.
14869         (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.
14870
14871         * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
14872
14873 1999-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14874
14875         * jcf-dump.c (print_constant, disassemble_method): Don't call a
14876         variadic function with a non-literal format string.
14877
14878         * parse-scan.y (report_main_declaration): Likewise.
14879
14880         * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.
14881
14882         * parse.y (read_import_dir, patch_assignment, patch_binop,
14883         patch_array_ref): Likewise.
14884
14885         * typeck.c (build_java_array_type): Likewise.
14886
14887         * verify.c (verify_jvm_instructions): Likewise.
14888
14889 1999-10-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14890
14891         * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
14892
14893 1999-10-07  Anthony Green  <green@cygnus.com>
14894
14895         * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases
14896         where CHECK_PUT may fail for valid reasons.
14897
14898         * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3,
14899         UNSAFE_PUTN): New macros.
14900
14901 1999-10-04  Tom Tromey  <tromey@cygnus.com>
14902
14903         * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
14904         well.  Fixes Java PR gcj/59.
14905         * parse-scan.y (yyerror): Report errors.
14906
14907 1999-09-24  Glenn Chambers  <GChambers@provsol.com>
14908
14909         * decl.c (insert_block): Remove unconditional `abort'.
14910
14911 1999-09-24  Bernd Schmidt  <bernds@cygnus.co.uk>
14912
14913         * decl.c (builtin_function): No longer static.  New arg CLASS.  Arg
14914         FUNCTION_CODE now of type int.  All callers changed.
14915         Set the builtin's DECL_BUILT_IN_CLASS.
14916
14917 1999-09-23  Tom Tromey  <tromey@cygnus.com>
14918
14919         * jvspec.c (lang_specific_driver): Don't read spec file if
14920         -fsyntax-only given.
14921
14922 1999-09-22  Tom Tromey  <tromey@cygnus.com>
14923
14924         * lang-specs.h: Added `%(jc1)' to the jc1 spec.
14925
14926         * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
14927         (WORDS_TO_LONG): Likewise.
14928         (WORDS_TO_DOUBLE): Likewise.
14929
14930 1999-09-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14931
14932         * jcf-write.c (RELOCATION_VALUE_0): New macro.
14933         (RELOCATION_VALUE_1): Likewise.
14934         (emit_iinc, emit_reloc, push_constant1, push_constant2,
14935         push_in_const, push_long_const): Prototyped.
14936         (push_constant1): Argument `index' is of type HOST_WIDE_INT.
14937         (push_constant2): Likewise.
14938         (push_int_const): Cast find_constant1's integer arguments to `jword'.
14939         (find_constant_wide): Cast find_constant2's integer arguments to
14940         `jword'.
14941         (find_constant_index): Cast find_constant2's and find_constant2's
14942         integer arguments to `jword'.
14943         (emit_pop): Argument `value' is of type HOST_WIDE_INT.
14944         (emit_switch_reloc): Use RELOCATION_VALUE_0.
14945         (emit_if): Use RELOCATION_VALUE_1.
14946         (emit_goto): Likewise.
14947         (emit_jsr): Likewise.
14948         (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
14949         argument to push_long_const to HOST_WIDE_INT.
14950
14951 1999-09-15  Andreas Schwab  <schwab@suse.de>
14952
14953         * Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
14954
14955 1999-09-20  Nick Clifton  <nickc@cygnus.com>
14956
14957         * lang.c (lang_decode_option): Extend comment.
14958
14959 1999-09-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14960
14961         * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
14962         instead of fndecl.
14963
14964 1999-09-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14965
14966         * gjavah.c (get_field_name, print_method_info, print_include,
14967         add_namelet): Use xmalloc, not malloc.
14968
14969         * jcf-depend.c (add_entry): Likewise.  Use xstrdup, not strdup.
14970         (munge): Use xrealloc, not realloc, trust xrealloc to handle a
14971         NULL pointer.
14972
14973         * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
14974
14975         * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
14976
14977         * jcf-path.c (add_entry): Likewise.
14978
14979         * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
14980
14981         * jv-scan.c (xmalloc): Remove definition.
14982
14983         * jvgenmain.c (xmalloc): Likewise.
14984
14985         * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
14986
14987         * lex.c (java_store_unicode): Use xrealloc, not realloc.
14988
14989         * parse-scan.y: Use concat, not of xmalloc/assign/strcpy.  Use
14990         concat, not xmalloc/sprintf.
14991         (java_push_parser_context): Use xcalloc, not xmalloc/bzero.
14992         (xstrdup): Remove definition.
14993
14994         * parse.y (duplicate_declaration_error_p,
14995         constructor_circularity_msg, verify_constructor_circularity,
14996         check_abstract_method_definitions, java_check_regular_methods,
14997         java_check_abstract_methods, patch_method_invocation,
14998         check_for_static_method_reference, patch_assignment, patch_binop,
14999         patch_cast, array_constructor_check_entry, patch_return,
15000         patch_conditional_expr): Use xstrdup, not strdup.
15001
15002         * zextract.c (ALLOC): Use xmalloc, not malloc.
15003
15004 1999-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15005
15006         * Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
15007
15008         * jvspec.c: Include gcc.h.  Don't include gansidecl.h.
15009         (do_spec, lang_specific_pre_link, lang_specific_driver,
15010         input_filename, input_filename_length): Don't declare.
15011         (main_class_name, jvgenmain_spec, lang_specific_driver):
15012         Constify a char*.
15013         (lang_specific_driver): All calls to the function pointer
15014         parameter now explicitly call `fatal'.
15015
15016 1999-09-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15017
15018         * parse.y (find_applicable_accessible_methods_list): Search
15019         abstract classes as interfaces.
15020
15021 1999-09-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15022
15023         * class.c (finish_class): We're now outside a valid method
15024         declaration. Tell the rest of gcc so.
15025
15026 1999-09-08  Bruce Korb  autogen@linuxbox.com
15027
15028         * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
15029
15030 1999-09-07  Tom Tromey  <tromey@cygnus.com>
15031
15032         * gjavah.c (add_class_decl): Generate include for gcj/array.h, not
15033         java-array.h.
15034         (decode_signature_piece): Don't emit "::" in JArray<>.
15035         (print_namelet): Only print trailing `;' when printing a class.
15036
15037 1999-09-10  Bernd Schmidt  <bernds@cygnus.co.uk>
15038
15039         * java-tree.h: Delete declarations for all tree nodes now moved to
15040         global_trees.
15041         * decl.c: Delete their definitions.
15042
15043 1999-09-04  Mark Mitchell  <mark@codesourcery.com>
15044
15045         * Make-lang.in (jc1): Depend on ggc-callbacks.o.
15046         * Makefile.in (OBJS): Add ggc-callbacks.o.
15047         (OBJDEPS): Likewise.
15048
15049 1999-09-03  Tom Tromey  <tromey@cygnus.com>
15050
15051         * parse.y (strip_out_static_field_access_decl): Return operand if
15052         it satisfies JDECL_P.
15053
15054 1999-09-02  Tom Tromey  <tromey@cygnus.com>
15055
15056         * gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
15057         Handle nested arrays, like `[[I'.
15058
15059 1999-09-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15060
15061         * class.c (finish_class): Remove unused parameter, all callers
15062         changed.
15063
15064         * expr.c (build_java_athrow): Change return type to void.
15065         (java_lang_expand_expr): Make sure each case in switch returns a
15066         value.
15067
15068         * java-tree.h (finish_class): Fix prototype to take void args.
15069
15070         * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
15071         (main): Issue return from main, not exit.
15072
15073         * jcf-parse.c (parse_class_file): Fix call to `finish_class'.
15074
15075         * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.
15076
15077         * jv-scan.c (main): Issue return from main, not exit.
15078
15079         * parse.y (check_abstract_method_definitions,
15080         java_check_abstract_method_definitions): Add static prototypes.
15081         (java_complete_expand_methods): Fix call to `finish_class'.
15082
15083         * verify.c (verify_jvm_instructions): Initialize variables `oldpc'
15084         and `prevpc'.
15085
15086 1999-08-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15087
15088         * lang.c (language_string): Constify.
15089
15090 1999-08-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15091
15092         * Makefile.in (LIBS): Fix definition so we link with $(CLIB).
15093         Remove hacks for stuff which comes from libiberty.
15094
15095         * Make-lang.in: Likewise.
15096
15097 1999-08-30  Hans-Peter Nilsson  <hp@axis.se>
15098
15099         * Makefile.in (xref.o): Depend on xref.c explicitly.
15100
15101 1999-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15102
15103         * java-tree.h (lang_printable_name): Constify a char*.
15104
15105         * lang.c (lang_printable_name): Likewise.
15106
15107 1999-08-27  Jeffrey A Law  (law@cygnus.com)
15108
15109         * gjavah.c, jcf-write.c, verify.c: Do not use C++ style
15110         comments in C code.
15111
15112 1999-08-26  Tom Tromey  <tromey@cygnus.com>
15113
15114         * gjavah.c (print_cxx_classname): Print "::" before qualified
15115         name.
15116
15117 1999-08-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15118
15119         * parse.y (lookup_cl): Changed leading comment. Now does its best
15120         to set the column number.
15121         (qualify_ambiguous_name): Take WFL wrappers into account.
15122
15123 1999-08-25  Gregg Townsend  <gmt@cs.arizona.edu>
15124
15125         * verify.c (verify_jvm_instructions): Don't check instruction
15126         validity beyond end of method.
15127
15128 1999-08-25  Tom Tromey  <tromey@cygnus.com>
15129
15130         * jvspec.c (lang_specific_driver): Correctly handle --help again.
15131
15132 1999-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15133
15134         * gjavah.c (print_name, print_base_classname, utf8_cmp,
15135         cxx_keyword_subst, generate_access, name_is_method_p,
15136         get_field_name, print_field_name, super_class_name, print_include,
15137         decode_signature_piece, print_class_decls, usage, help,
15138         java_no_argument, version, add_namelet, print_namelet): Add static
15139         prototype.
15140         (print_base_classname, utf8_cmp, cxx_keyword_subst,
15141         name_is_method_p): Constify a char*.
15142         (get_field_name): Likewise.  Prefer xstrdup over malloc/strcpy.
15143         Provide a final else clause in an if-else-if.
15144         (print_field_info): Add missing final arg in function call to
15145         `print_field_name'.
15146         (print_method_info, decompile_method, decode_signature_piece,
15147         print_c_decl, print_full_cxx_name, print_stub,
15148         print_mangled_classname, super_class_name, print_include,
15149         add_namelet, add_class_decl, print_class_decls, process_file,
15150         help): Constify a char*.
15151
15152         * jcf-write.c (jcf_handler, push_constant1, push_constant2,
15153         push_int_const, find_constant_wide, find_constant_index,
15154         push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
15155         emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
15156         emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
15157         emit_if, emit_goto, emit_jsr, call_cleanups,
15158         make_class_file_name): Add static prototypes.
15159         (generate_bytecode_return, generate_bytecode_insns): Pass a
15160         NULL_PTR, not a NULL_TREE.
15161
15162         * jv-scan.c: Include "jcf.h".
15163         (main): Declare using DEFUN macro.
15164
15165         * jvspec.c (find_spec_file, lang_specific_pre_link,
15166         lang_specific_driver): Add prototypes.
15167         (find_spec_file): Constify a char*.
15168
15169         * keyword.gperf (hash, java_keyword): Add prototypes.
15170
15171         * lang.c (lang_print_error): Add static prototype.
15172         (lang_init): Prefer memcpy over bcopy to avoid casts.
15173
15174         * lex.c (yylex): Add static prototype.
15175
15176         * parse-scan.y: Include "lex.c" earlier.
15177
15178         * parse.h: Remove redundant declaration for `yylex'.
15179
15180         * parse.y (java_decl_equiv, binop_compound_p, search_loop,
15181         labeled_block_contains_loop_p): Add static prototypes.
15182         (not_accessible_p): Make static to match prototype.
15183
15184         * verify.c (start_pc_cmp): Don't needlessly cast away const.
15185
15186 1999-08-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15187
15188         * parse.y (check_method_redefinition): Changed leading comment.
15189         (check_abstract_method_definitions): New function.
15190         (java_check_abstract_method_definitions): New function.
15191         (java_check_regular_methods): Call it.
15192         (verify_constructor_super): Fixed indentation.
15193         (lookup_method_invoke): Likewise.
15194
15195 1999-08-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15196
15197         * parse.y (method_header): Return a null pointer if the current
15198         class node is null.
15199         (finish_method_declaration): Return if the current function decl
15200         is null.
15201         (source_start_java_method): Likewise.
15202         (java_method_add_stmt): Likewise.
15203
15204 1999-08-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15205
15206         * class.c (emit_register_class): Removed unnecessary call to
15207         start_sequence.
15208         * parse.y (labeled_block_contains_loop_p): Removed unused local
15209         variable.
15210
15211 1999-08-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15212
15213         * parse.y (java_refold): Added prototype.
15214
15215 1999-08-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15216
15217         * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
15218         (java_stabilize_reference): Removed unnecessary `else'.
15219         (java_complete_lhs): Set flag to remember boolean. Call
15220         java_refold. Added comments.
15221         (java_decl_equiv): New function.
15222         (binop_compound_p): Likewise.
15223         (java_refold): Likewise.
15224         (patch_unaryop): Striped static field access assigned to decl and
15225         op. Changed promotion scheme for ++/-- operators.
15226         (search_loop): New function.
15227         (labeled_block_contains_loop_p): Likewise.
15228         (patch_loop_statement): Call labeled_block_contains_loop_p. Added
15229         comment.
15230         (patch_bc_statement): Call search_loop. Fixed comment.
15231
15232 1999-08-14  Anthony Green  <green@cygnus.com>
15233
15234         * expr.c (java_lang_expand_expr): Mark static array data as
15235         referenced.
15236
15237 1999-08-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15238
15239         * jvgenmain.c (main): NUL-terminate name_obstack.
15240
15241 1999-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15242
15243         * check-init.c (check_bool2_init, done_alternative): Add static
15244         prototypes.
15245
15246         * class.c (add_interface_do, maybe_layout_super_class): Likewise.
15247         (add_method, build_utf8_ref, build_class_ref,
15248         append_gpp_mangled_type, layout_class_method): Constify a char*.
15249
15250         * decl.c (push_promoted_type, make_binding_level): Add static
15251         prototypes.
15252         (push_promoted_type, pushdecl): Constify a char*.
15253
15254         * except.c (find_handler_in_range, link_handler,
15255         check_start_handlers): Add static prototypes.
15256
15257         * expr.c (process_jvm_instruction): Constify a char*.
15258
15259         * gjavah.c (main): Constify a char*.
15260
15261         * java-tree.h (verify_jvm_instructions, process_jvm_instruction):
15262         Constify a char*.
15263
15264         * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
15265         static prototypes.
15266         (add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
15267         munge, print_ents): Constify a char*.
15268
15269         * jcf-dump.c (disassemble_method): Constify a char*.
15270         (print_constant_pool, print_exception_table): Add static prototypes.
15271         (print_constant, print_exception_table, main, disassemble_method):
15272         Constify a char*.
15273
15274         * jcf-io.c (find_classfile, find_class): Likewise.
15275
15276         * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
15277         (set_source_filename, predefined_filename_p): Add static prototypes.
15278         (set_source_filename, get_constant, get_class_constant,
15279         find_in_current_zip): Constify a char*.
15280
15281         * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
15282         static prototypes.
15283         (add_entry, add_path, jcf_path_classpath_arg,
15284         jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15285
15286         * jcf-reader.c (get_attribute, jcf_parse_preamble,
15287         jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
15288         jcf_parse_one_method, jcf_parse_methods,
15289         jcf_parse_final_attributes): Add static prototypes.
15290         (get_attribute): Constify a char*.
15291
15292         * jcf.h (find_class, find_classfile, jcf_dependency_set_target,
15293         jcf_dependency_add_target, jcf_path_classpath_arg,
15294         jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15295
15296         * jv-scan.c (main): Constify a char*.
15297         (gcc_obstack_init): Add prototype arguments.
15298
15299         * jvgenmain.c (gcc_obstack_init): Likewise.
15300         (main): Constify a char*.
15301
15302         * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
15303         static prototypes.
15304         (put_decl_string, lang_print_error): Constify a char*.
15305         (lang_init): Remove redundant extern prototype.
15306
15307         * mangle.c (emit_unicode_mangled_name): Constify a char*.
15308
15309         * typeck.c (convert_ieee_real_to_integer, parse_signature_type):
15310         Add static prototypes.
15311         (get_type_from_signature): Constify a char*.
15312
15313         * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
15314         Add static prototypes.
15315         (start_pc_cmp): Prefer PTR over GENERIC_PTR.
15316         (verify_jvm_instructions): Constify a char*.
15317
15318         * xref.c (xref_flag_value): Likewise.
15319
15320         * xref.h (xref_flag_value): Likewise.
15321
15322         * zextract.c (makeword, makelong): Add static prototypes.
15323         (makeword, makelong): Constify a uch*.
15324
15325 1999-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15326
15327         * lang.c (java_dummy_print): Constify a char*.
15328         (lang_print_error): Likewise.
15329         (lang_init): Remove redundant prototype for `print_error_function'.
15330         (lang_init_source): Likewise.
15331         (lang_identify): Constify a char*.
15332
15333 1999-08-09  Tom Tromey  <tromey@cygnus.com>
15334
15335         * javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
15336         (WORDS_TO_LONG): Likewise.
15337         (WORDS_TO_DOUBLE): Likewise.
15338
15339 1999-08-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15340
15341         * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).
15342
15343         * expr.c (java_stack_pop, java_array_data_offset,
15344         build_java_throw_out_of_bounds_exception, case_identity,
15345         build_java_check_indexed_type): Add static prototypes.
15346         (linenumber_table, expand_invoke, expand_java_field_op,
15347         build_primtype_type_ref, expand_byte_code): Constify a char*.
15348
15349         * java-tree.h (build_primtype_type_ref, linenumber_table):
15350         Constify a char*.
15351         (java_lang_expand_expr): Add prototype.
15352
15353         * lang.c: Include rtl.h and expr.h.  Remove extern prototype for
15354         `java_lang_expand_expr'.
15355
15356         * lex.c (java_lex_error): Constify a char*.
15357         (java_get_unicode, java_read_char, java_allocate_new_line,
15358         java_unget_unicode, java_sneak_unicode): Prototype.
15359
15360         * parse-scan.y (current_class, package_name, method_declarator,
15361         report_class_declaration, yyerror): Constify a char*.
15362
15363         * parse.h (java_report_errors): Prototype.
15364         (yyerror): Constify a char*.
15365
15366         * parse.y (classitf_redefinition_error, check_modifiers,
15367         parse_jdk1_1_error, lookup_package_type,
15368         lookup_package_type_and_set_next, get_printable_method_name,
15369         purify_type_name): Constify a char*.
15370         (build_super_invocation, maybe_generate_finit,
15371         verify_constructor_super, parser_add_interface,
15372         add_superinterfaces, jdep_resolve_class, note_possible_classname,
15373         java_complete_expand_methods, java_expand_finals,
15374         cut_identifier_in_qualified, java_stabilize_reference,
15375         do_unary_numeric_promotion, operator_string, do_merge_string_cste,
15376         merge_string_cste): Prototype.
15377         (single_type_import_declaration, yyerror,
15378         variable_redefinition_error, build_array_from_name,
15379         build_unresolved_array_type, check_class_interface_creation,
15380         resolve_class, complete_class_report_errors,
15381         note_possible_classname, read_import_dir,
15382         find_in_imports_on_demand, resolve_package, fix_constructors,
15383         check_deprecation, lookup_method_invoke,
15384         maybe_build_primttype_type_ref, array_constructor_check_entry):
15385         Constify a char*.
15386         (java_complete_expand_methods, java_expand_finals): Make static.
15387         (convert_narrow): Remove static prototype.
15388
15389 1999-08-03  J"orn Rennecke <amylaar@cygnus.co.uk>
15390
15391         * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.
15392
15393 1999-08-02  Richard Henderson  <rth@cygnus.com>
15394
15395         * decl.c: Include defaults.h instead of expr.h.
15396         * parse.y: Likewise.
15397
15398 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
15399
15400         * java/decl.c (start_java_method): Change all uses of
15401         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
15402         Ensure expr.h is included.
15403         * java/expr.c (pop_arguments): Ditto.
15404         * java/parse.y (expand_start_java_method): Ditto.
15405
15406 1999-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15407
15408         * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
15409
15410 1999-07-31  Bernd Schmidt  <bernds@cygnus.co.uk>
15411
15412         * decl.c: Include "function.h".
15413         * except.c: Likewise.
15414         * parse.y: Likewise.
15415         * Makefile.in: Update dependencies.
15416
15417 1999-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15418
15419         * expr.c (build_java_soft_divmod): Provide a default case in switch.
15420         (java_lang_expand_expr): Mark parameters `target', `tmode' and
15421         `modifier' with ATTRIBUTE_UNUSED.
15422
15423         * gjavah.c (process_file): Add braces around ambiguous `else'.
15424
15425         * jcf-dump.c (print_access_flags, localvar_free): Change return
15426         type to void.
15427
15428         * parse.y (java_complete_expand_method): Initialize variable
15429         `exception_copy'.
15430         (resolve_qualified_expression_name): Likewise for `field_decl'.
15431         (patch_method_invocation): Likewise for `class_to_search'.
15432         (qualify_ambiguous_name): Likewise for `name' and `ptr_type'.
15433         (patch_assignment): Likewise for `lhs_type'.
15434
15435         * verify.c (verify_jvm_instructions): Remove unused variable
15436         `caller'.
15437
15438 1999-07-25  Richard Henderson  <rth@cygnus.com>
15439
15440         * decl.c (va_list_type_node): New.
15441
15442 1999-07-25  Anthony Green  <green@cygnus.com>
15443
15444         * gjavah.c (print_stub): New function.
15445         (METHOD_IS_NATIVE): New macro.
15446         (print_mangled_classname): Make static.
15447         (HANDLE_END_FIELD): Don't emit fields during stub generation.
15448         (process_file): Perform stub generation.
15449         (HANDLE_METHOD): Don't emit class decls during stub
15450         generation.
15451         (HANDLE_END_METHOD): Take into account stub generation.
15452         (print_method_info): Handle stub generation.
15453         (print_stub): New function.
15454         (print_cxx_classname): Make signature consistant with others.
15455         (help): Describe -stubs option.
15456         (main): Create stub file.
15457         (version): Use version.c.
15458         (print_full_cxx_name): New function.
15459         (print_c_decl): Use print_full_cxx_name.
15460
15461 1999-07-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15462
15463         * check-init.c (check_init): Handle MAX_EXPR.
15464
15465 1999-07-15  Andrew Haley  <aph@cygnus.com>
15466
15467         * lang.c (flag_use_divide_subroutine): New variable.
15468         * typeck.c: (convert_ieee_real_to_integer): Bounds check
15469         fp-to-integer conversion.
15470         (convert): Call convert_ieee_real_to_integer when flag_fast_math
15471         is not set.
15472
15473         * expr.c (build_java_soft_divmod): New function.
15474         (build_java_binop): Call build_java_soft_divmod if
15475         flag_use_divide_subroutine is set.
15476         * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15477         soft_lrem_node: new builtin functions.
15478         (init_decl_processing) Initialize the new builtins.
15479         * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15480         soft_lrem_node: new builtin functions.
15481         (build_java_soft_divmod): New function.
15482         * parse.y: Call build_java_soft_divmod if
15483         flag_use_divide_subroutine is set.
15484         * parse.c: Rebuilt.
15485
15486         * jvspec.c (lang_specific_driver): Always allow an extra arg (for
15487         a --specs= arg) even if not linking.
15488         * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
15489         -fuse-divide-subroutine
15490
15491 1999-07-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15492
15493         * parse.y (resolve_and_layout): Check methods only once.
15494         (resolve_qualified_expression_name): Verify thrown exceptions
15495         compatibility.
15496         (check_thrown_exceptions): Reject exceptions thrown in
15497         initializer. Error message tuned.
15498
15499 1999-07-14  Andrew Haley  <aph@cygnus.com>
15500
15501         * expr.c (expand_expr): Do not return the last statement in a
15502         block as the block's value.
15503
15504 1999-07-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15505
15506         * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
15507         CALL_EXPR, to avoid order of evaluation changes.
15508
15509 1999-07-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15510
15511         * parse.y (qualify_ambiguous_name): Do not use
15512         IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
15513
15514 1999-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15515
15516         * check-init.c (check_init): Handle MAX_EXPR.
15517         * expr.c (force_evaluation_order): Force method call arguments to
15518         be evaluated in left-to-right order.
15519         * parse.y (qualify_ambiguous_name): Loop again to qualify
15520         NEW_ARRAY_EXPR properly.
15521
15522 1999-06-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15523
15524         * parse.y (patch_invoke): Resolve unresolved invoked method
15525         returned type.
15526         (qualify_ambiguous_name): STRING_CST to qualify expression for
15527         type name resolution.
15528
15529 1999-06-24  Andrew Haley  <aph@cygnus.com>
15530
15531         * class.c (finish_class): Whenever a deferred method is
15532         output, rescan the list of methods to see if a new candidate for
15533         output can be found.
15534
15535 1999-06-28  Tom Tromey  <tromey@cygnus.com>
15536
15537         * jvspec.c (lang_specific_driver): Recognize --help.
15538
15539 1999-06-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15540
15541         * parse.y (resolve_package): Fixed bogus return statement.
15542         (patch_method_invocation): Resolve method invocation beginning with
15543         a package name qualifier.
15544
15545 1999-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15546
15547         * Make-lang.in (java.stage1): Depend on stage1-start.
15548         (java.stage2): Likewise for stage2-start.
15549         (java.stage3): Likewise for stage3-start.
15550         (java.stage4): Likewise for stage4-start.
15551
15552 1999-06-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15553
15554         * parse.y (java_complete_lhs): When doing cross referencing, don't
15555         try to keep file location on a WFL expanded as a CALL_EXPR.
15556
15557 1999-06-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15558
15559         * parse.y (finish_method_declaration): Insert a RETURN_EXPR when
15560         compiling to class file a void method with an empty method body.
15561         As a side effect, the bytecode backend will generate the
15562         appropriate `return' instruction.
15563
15564 1999-06-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15565
15566         * parse.y (lookup_package_type_and_set_next): New function prototype.
15567         (resolve_package): Search current and imported packages.
15568         (lookup_package_type_and_set_next): New function.
15569
15570 1999-06-22  Andrew Haley  <aph@cygnus.com>
15571
15572         * verify.c (verify_jvm_instructions): Check for pending blocks
15573         before invalid PC test and opcode switch, not after.
15574
15575 1999-06-21  Andrew Haley  <aph@cygnus.com>
15576
15577         * except.c (find_handler_in_range): The upper limit for exception
15578         ranges is exclusive, not inclusive: (start <= pc < end).
15579         (link_handler): find child pointer which points to outer by
15580         searching sibling list: previous code incorrectly assumed that
15581         outer->outer->first_child must point to outer.
15582         * verify.c (verify_jvm_instructions): FIXME added to code for
15583         `athrow'.
15584         (verify_jvm_instructions): Do not assume that the last block
15585         processed in a subroutine is a block which ends with a `ret'
15586         instruction.  With some control flows it is possible that the last
15587         block ends with an `athrow'.
15588
15589 1999-06-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15590
15591         * parse.y (qualify_ambiguous_name): Reorganized the post
15592         evaluation of non WFL leading expression nodes.
15593
15594 1999-06-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15595
15596         * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
15597         CONVERT_EXPR.
15598
15599 1999-06-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15600
15601         * parse.y (qualify_ambiguous_name): Handle qualified expression
15602         beginning with a STRING_CST.
15603
15604 1999-06-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15605
15606         * parse.y (register_fields): Set DECL_INITIAL on both
15607         pre-initialized static and public fields.
15608         (resolve_field_access): Static field access expressions to always
15609         use pointer types.
15610         (qualify_ambiguous_name): Work out buried CALL_EXPR for proper
15611         qualification. CONVERT_EXPR to be resolved as an expression name.
15612         (java_complete_lhs): Identify and access qualified final
15613         initialized field in switch statement case expression.
15614         (fold_constant_for_init): Pre-initialized field decl constant to
15615         be folded.
15616
15617 1999-06-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15618
15619         * parse.y (note_possible_classname): Mark returned node with
15620         QUALIFIED_P only if the original class name contained a '/'.
15621
15622 1999-06-05  Anthony Green  <green@cygnus.com>
15623
15624         * Make-lang.in (gcjh): More parallel build fixes.
15625
15626 1999-06-03  Mike Stump  <mrs@wrs.com>
15627
15628         * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds.
15629
15630 1999-06-02  Anthony Green  <green@cygnus.com>
15631
15632         * except.c (link_handler): Chain exception handlers in order.
15633
15634 1999-06-02  Anthony Green  <green@cygnus.com>
15635
15636         * expr.c (expand_byte_code): Fill unreachable bytecode regions
15637         with nops and process as usual in order to always set correct EH
15638         ranges.  Emit detailed warnings about unreachable bytecodes.
15639
15640 1999-06-02  Anthony Green  <green@cygnus.com>
15641
15642         * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as
15643         constant.
15644
15645 1999-05-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15646
15647         * parse.y (lookup_field_wrapper): Unified returned value to NULL
15648           or the searched field decl.
15649
15650 1999-05-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15651
15652         * parse.y (fold_constant_for_init): Convert numerical constant
15653         values to the type of the assigned field.
15654
15655 1999-05-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15656
15657         * expr.c (lookup_field): Relaxed the test on class loading error
15658         detection.
15659         * parse.y (fold_constant_for_init): Enabeled old code.
15660
15661 1999-05-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15662
15663         * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
15664         decide the validity of the cast of a java.lang.Cloneable reference
15665         to an array.
15666         (patch_conditional_expr): Fixed first argument passed to
15667         binary_numeric_promotion.
15668
15669 1999-05-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15670
15671         * parse.y (qualify_ambiguous_name): Take into account that a
15672         CONVERT_EXPR might specify a type as a WFL.
15673
15674 1999-05-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15675
15676         * parse.y (patch_assignment): Save the rhs before using it as an
15677         argument to _Jv_CheckArrayStore.
15678
15679 1999-05-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15680
15681         * lex.c (java_parse_doc_section): Fixed `tag' buffer size.
15682
15683 1999-05-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15684
15685         * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
15686         floating point literal only when the exponent indicator has been
15687         parsed.
15688
15689 1999-05-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15690
15691         * parse.y (formal_parameter:): Construct argument tree list
15692         element even if a yet unsupported final parameter was encountered.
15693
15694 1999-05-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15695
15696         * parse.y (finish_method_declaration): Issue errors for native or
15697         abstract methods declared with a method body, as well as for non
15698         native or non abstract methods with no method body.
15699
15700 1999-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15701
15702         * class.c (build_utf8_ref): Initialize variable `field'.
15703
15704         * decl.c (init_decl_processing): Initialize variable `field'.
15705
15706         * expr.c (build_known_method_ref): Mark parameters `method_type',
15707         `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
15708         (process_jvm_instruction): Likewise for parameter `length'.
15709
15710         * jvspec.c (lang_specific_driver): Mark variables `saw_math',
15711         `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
15712         ATTRIBUTE_UNUSED.
15713
15714         * parse.y (maybe_generate_clinit): Remove unused variable
15715         `has_non_primitive_fields'.
15716         (find_in_imports_on_demand): Initialize variables `node_to_use'
15717         and `cl'.
15718         (patch_binop): Likewise for variable `prom_type'.
15719         (patch_unaryop): Likewise for variable `prom_type'.
15720
15721         * verify.c (verify_jvm_instructions): Likewise for variable `last'.
15722
15723         * xref.c (xref_table): Add missing initializer.
15724
15725 1999-05-14  Tom Tromey  <tromey@cygnus.com>
15726
15727         * java-except.h (struct eh_range): Removed unused `next' member.
15728         * verify.c (verify_jvm_instructions): Call check_nested_ranges
15729         after adding all exception handlers.  Sort exception ranges in
15730         order of start PC.
15731         (struct pc_index): New structure.
15732         (start_pc_cmp): New function.
15733         * except.c (add_handler): Return `void'.  Don't call link_handler;
15734         instead construct an ordinary linked list and do range
15735         coalescing.
15736         (check_nested_ranges): New function.
15737         (link_handler): Changed interface to allow merging of eh_ranges.
15738         Split overlapping ranges.  Return `void'.
15739
15740 1999-05-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15741
15742         * parse.y (constructor_block_end:): New rule, tagged <node>.
15743         (constructor_body:): Use `constructor_block_end' instead of
15744         `block_end'.
15745
15746 1999-05-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15747
15748         * parse.y (statement_nsi:): Pop `for' statement block.
15749         (java_complete_lhs): Labeled blocks containing no statement are
15750         marked as completing normally.
15751
15752 1999-05-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15753
15754         * xref.c (xref_set_current_fp): New function, defined.
15755         * xref.h (xref_set_current_fp): New function, prototyped.
15756
15757 1999-05-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15758
15759         * check-init.c (check_init): Take into account that
15760         LABELED_BLOCK_STMT can be empty.
15761
15762 1999-05-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15763
15764         * parse.y (java_check_regular_methods): Warning check on not
15765         overriding methods with default access in other packages does not
15766         apply to `<clinit>'.
15767         (java_complete_lhs): If block body is an empty_stmt_node, replace
15768         it by NULL_TREE. This prevents gcc from generating an irrelevant
15769         warning.
15770
15771 1999-05-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15772
15773         * check-init.c (check_init): Removed code accepting to see things
15774         falling through default:, when doing xrefs.
15775         * java-tree.h (do_not_fold): New global variable, declared.
15776         * parse.y (do_not_fold): New global variable, defined.
15777         (java_complete_expand_method): Set `do_not_fold' to the value of
15778         `flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
15779         and reinstall them after them have been purged; do not check for
15780         initializations; do not issue missing return errors.
15781         (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
15782         when doing xrefs.
15783         (patch_binop): Skip the fold part when doing xrefs.
15784         (build_string_concatenation): Skip the concatenation part when
15785         doing xrefs.
15786         (patch_synchronized_statement): Do not generate a try-finally when
15787         doing xrefs.
15788         (patch_throw_statement): When doing xrefs, do not call BUILD_THROW
15789         and keep the location where the throw was seen.
15790         * typeck.c (convert): When `do_not_fold' is set, do not attempt
15791         any treatment on the converted node an simply return a NOP_EXPR of
15792         the targeted type.
15793         * xref.c (xref_get_data): New function, defined.
15794         * xref.h (xref_get_data): New function, declared.
15795         (XREF_GET_DATA): Use xref_get_data.
15796
15797 1999-05-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15798
15799         * gjavah.c (print_include): Cast the result of `strlen' to int
15800         when comparing against a signed value.
15801         (add_namelet): Likewise.
15802
15803 1999-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15804
15805         * expr.c (expand_invoke): Mark parameter `nargs' with
15806         ATTRIBUTE_UNUSED.
15807         (PRE_LOOKUP_SWITCH): Likewise for variable `match'.
15808
15809         * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with
15810         ATTRIBUTE_UNUSED.
15811
15812         * jcf-reader.c (get_attribute): Cast a value to long
15813         when comparing against a signed expression.  Likewise.
15814
15815         * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or
15816         HOST_BITS_PER_CHAR.
15817
15818 1999-05-11  Andrew Haley  <aph@cygnus.com>
15819
15820         * parse.y (source_end_java_method): If the current method contains
15821         any exception handlers, force asynchronous_exceptions: this is
15822         necessary because signal handlers in libjava may throw exceptions.
15823         * decl.c (end_java_method): Ditto.
15824
15825 1999-05-11  Tom Tromey  <tromey@cygnus.com>
15826
15827         * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x
15828         flags.
15829         * jvspec.c (THREAD_NAME): Removed.
15830         (GC_NAME): Likewise.
15831         (MATHLIB): Likewise.
15832         (WITHLIBC): Likewise.
15833         (GCLIB): Likewise.
15834         (THREADLIB): Likewise.
15835         (MATH_LIBRARY): Likewise.
15836         (lang_specific_driver): Don't add `-l' options to command line.
15837         Instead, add a single --specs option.  Recognize `-L' options and
15838         use them to search for spec file.
15839         (find_spec_file): New function.
15840         (SPEC_FILE): New define.
15841
15842 1999-05-11  Dave Brolley  <brolley@cygnus.com>
15843
15844         * lang-options.h: -MD, -MMD, -M and -MM not needed here for
15845         cpplib-enabled build.
15846
15847 1999-05-05  Per Bothner  <bothner@cygnus.com>
15848
15849         * class.c (make_field_value):  DECL_INITIAL may be a string literal;
15850         temporarily zero it while calling rest_of_decl_compilation.
15851
15852         * java-tree.h (string_ptr_type_node):  Add declaration.
15853         * decl.c:  Define and initialize string_ptr_type_node.
15854         * parse.y (patch_string_cst):  Use string_ptr_type_node.
15855
15856         * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P):  Removed.
15857         * parse.y (for_statement):  Now unconditionally exit_block.
15858         (finish_labeled_statement):  No longer exit_block if for-loop.
15859         (patch_loop_statement):  Check harder if the loop is already labeled.
15860
15861         * parse.y (patch_initialized_static_field):  Removed function.
15862         (maybe_generate_clinit):  Removed special handling for interfaces.
15863         (java_complete_expand_methods):  Do a preliminary java_complete_tree
15864         on <clinit> to determine if it can be removed.
15865         (java_complete_expand_method):  Remove special handling for <clinit>.
15866         (java_complete_lhs):  For BLOCK and EXPR_WITH_FILE_LOCATION
15867         optimize if we get back empty_stmt_node.
15868         For MODIFY_EXPR, re-do checking of static initializers.
15869         (fold_constant_for_init):  Don't return immediate if VAR_DECL.
15870         For VAR_DECL, pass correct context.
15871
15872         * verify.c (verify_jvm_instructions):  Better error messages.
15873
15874 1999-05-03  Tom Tromey  <tromey@cygnus.com>
15875
15876         * parse-scan.y (interface_declaration): Call
15877         report_class_declaration for interfaces.
15878
15879 1999-04-30 20:54 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
15880
15881         * Makefile.in: Remove -v from bison command lines.
15882
15883 1999-04-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15884
15885         * check-init.c (check_init): Exclude a case of error when doing
15886         xrefs.
15887         * class.c (layout_class_method): Don't generate the error message
15888         twice when compiling from source.
15889         * lang-options.h: Added `-Wredundant-modifers' and
15890         `-Wunusupported-jdk11' flags and help text.
15891         * lang.c (lang_decode_option): Added support for
15892         `-Wunsupported-jdk11' and `-Wredundant-modifiers'.
15893         flag_static_local_jdk11 and flag_redundant set accordingly.
15894         * lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
15895         * parse.h (EXPR_WFL_ADD_COL): New macro.
15896         (DECL_END_SOURCE_LINE): Likewise.
15897         (DECL_INHERITED_SOURCE_LINE): Likewise.
15898         * parse.y (static_ref_err): New function, prototyped.
15899         (CCB_TK): Now tagged <operator>.
15900         (class_body:): Remember the location of the closing '}' of a class
15901         definition when doing xrefs.
15902         (block:): Likewise.
15903         (block_end:): Likewise.
15904         (create_class): Remember the location of the inherited class
15905         identifier when doing xrefs.
15906         (register_fields): Added test on first operand of `init' before
15907         testing it TREE_CODE.
15908         (method_header): Store the location of the class identifier in the
15909         class decl when doing xrefs.
15910         (finish_method_declaration): Don't combine first/last method line
15911         when doing xref.
15912         (java_check_regular_methods): Warning check on not overriding
15913         methods with default access on other packages move before check on
15914         static methods. Initialization of `aflags' also moved up.
15915         (resolve_expression_name): Call static_ref_err to report the error.
15916         (static_ref_err): New function, implemented.
15917         (resolve_field_access): Returned simplified static field access
15918         when doing xrefs.
15919         (resolve_qualified_expression_name): Check for illegal use of
15920         static fields in a non static context. Call static_ref_err to
15921         report error in various places.
15922         (java_complete_tree): Do not fold initialized static fields when
15923         doing xrefs.
15924         (java_complete_lhs): Likewise.
15925
15926 1999-04-29  Anthony Green  <green@cygnus.com>
15927
15928         * expr.c (generate_name): Use ASM_GENERATE_INTERNAL_LABEL to
15929         create internal labels.
15930         (lookup_label): Ditto.
15931
15932 1999-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15933
15934         * class.c (layout_class_method): Generate <clinit>'s rtl for
15935         interfaces.
15936         * decl.c (complete_start_java_method): Don't call _Jv_InitClass
15937         for interfaces' <clinit>.
15938         * expr.c (lookup_field): Search for fields in interfaces.
15939         (expand_invoke): Fixed indentation.
15940         (expand_java_field_op): Likewise. Use IS_CLINIT.
15941         * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed.
15942         (IS_CLINIT): New macro.
15943         * parse.y (type_declaration:): Call maybe_generate_clinit after an
15944         interface was parsed.
15945         (maybe_generate_clinit): Don't generate if the current class is an
15946         interface with only fields of primitive types.
15947         (reset_method_name): Use IS_CLINIT.
15948         (java_complete_expand_method): Expand <clinit> when it exists for
15949         interfaces. Use IS_CLINIT.
15950         (resolve_expression_name): Use DECL_CONTEXT instead of
15951         current_class to build static field references.
15952         (java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on
15953         ARRAY_REF when doing xreferencing.
15954         (check_final_assignment): Fixed typo in leading comment. Use
15955         IS_CLINIT.
15956         (patch_array_ref): Don't fully expand array references when
15957         xreferencing.
15958         (patch_return): Use IS_CLINIT.
15959         (patch_throw_statement): Likewise.
15960
15961 1999-04-22  Tom Tromey  <tromey@cygnus.com>
15962
15963         * Make-lang.in (JAVA_SRCS): Added check-init.c.
15964
15965 1999-04-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15966
15967         * decl.c (predef_filenames, predef_filenames_size): New globals
15968         (init_decl_processing): predef_filenames and predef_filenames_size
15969         initialized.
15970         * java-tree.h (predef_filenames, predef_filenames_size): Declared
15971         extern.
15972         * jcf-parse.c (predefined_filename_p): New function.
15973         (yyparse): Check that files on the command line are specified only
15974         once and issue a warning otherwise.
15975         * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro.
15976         * parse.y (source_end_java_method): Nullify NOP method bodies, to
15977         avoid a gcc warning with -W -Wall turned on.
15978         (java_expand_classes): Abort if errors were encountered.
15979         (java_complete_lhs): If the cross reference flag is set, wrap
15980         field DECL node around a WFL when resolving expression name.
15981
15982 1999-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15983
15984         * lang.c (lang_decode_option): Fixed returned value when parsing
15985         `-fxref=...' and `-Wall'.
15986         * parse.y (source_end_java_method): Do not generate code when
15987         flag_emit_xref is set.
15988         (resolve_expression_name): Do not build static field access when
15989         flag_emit_xref is set.
15990         (resolve_field_access): No special treatment on `length' when
15991         flag_emit_xref is set. Do not build qualified static field access
15992         when flag_emit_xref is set.
15993         (patch_invoke): Keep the method DECL as operand 0 of the CALL_EXPR
15994         when flag_emit_xref is set.
15995         (patch_assignment): Do not generate array store runtime check when
15996         flag_emit_xref is set.
15997         * xref.c (xref_flag_value): Fixed function declaration
15998         indentation.
15999         (xset_set_data): New function.
16000         * xref.h (xref_set_data): Added prototype for new function.
16001         (typedef struct xref_flag_table): New field data.
16002         (XREF_GET_DATA): New macro.
16003
16004 1999-04-19  Tom Tromey  <tromey@cygnus.com>
16005
16006         * xref.h (enum): Removed trailing comma.
16007
16008         * parse.y (resolve_qualified_expression_name): Added missing
16009         `break'.
16010
16011 1999-04-15  Anthony Green  <green@cygnus.com>
16012
16013         * gjavah.c: New prototypes for java_float_finite and
16014         java_double_finite.
16015
16016 1999-04-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16017
16018         * parse.y (patch_unaryop): Fixed ++/-- operator check on array
16019         references.
16020
16021 1999-04-06  Jeffrey A Law  (law@cygnus.com)
16022
16023         * Makefile.in (TREE_H): Add tree-check.h.
16024         (RTL_H): Add genrtl.h.
16025
16026 1999-04-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16027
16028         * parse.y (patch_assignment): Added ArrayStoreException runtime
16029         check.
16030
16031 1999-04-06  Per Bothner  <bothner@cygnus.com>
16032
16033         * expr.c (pop_type_0):  New function.
16034         (pop_type):  Use pop_type_0.
16035         * java-tree.h (pop_type_0):  New declaration.
16036         * verify.c (verify_jvm_instructions):  Check return instructions.
16037
16038         * parse.y (patch_binop):  Don't fold if non-constant and emiting
16039         class files.
16040
16041 1999-04-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16042
16043         * Makefile.in (gjavah.o): Depend on $(JAVA_TREE_H).
16044
16045         * gjavah.c: Include math.h earlier.  Include tree.h/java-tree.h.
16046         (main_jcf): Don't define.
16047         (process_file): Don't set `main_jcf'.
16048
16049         * java-tree.h (main_jcf): Don't declare.
16050
16051         * jcf-parse.c (main_jcf): Add static definition.
16052
16053         * lang.c (main_jcf): Don't define.
16054
16055 1999-04-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16056
16057         * class.c (add_method_1): Cast the argument of `bzero' to PTR.
16058
16059         * decl.c (copy_lang_decl): Likewise for `bcopy'.
16060
16061         * jcf-depend.c: Include "config.h", not <config.h>.
16062
16063         * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
16064         `bcopy' to PTR.
16065
16066         * jcf-path.c: Include "config.h", not <config.h>.
16067
16068         * lex.c: Don't include various system header files.
16069         (java_init_lex): Cast the argument of `bzero' to PTR
16070
16071         * parse-scan.y (java_push_parser_context): Likewise.
16072
16073         * parse.y (java_push_parser_context): Likewise.
16074         (patch_bc_statement): Match format specifier to variable argument.
16075
16076         * xref.c: Don't include <stdio.h>.
16077
16078 1999-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16079
16080         * parse.y (struct parser_ctxt *ctxp): Now global.
16081         (declare_local_variables): Use WFL compound value for the
16082         declaration source line value, when doing cross-referencing.
16083
16084 1999-03-31  Tom Tromey  <tromey@cygnus.com>
16085
16086         * gjavah.c (print_field_info): Allow constants of other types.
16087         (print_include): Generate include when new name is proper prefix
16088         of already printed name.
16089         (add_namelet): Likewise.
16090         (cxx_keyword_subst): New function.
16091         (print_method_info): Use it.
16092         (print_field_name): New function.
16093         (get_field_name): New function.
16094         (print_field_info): Use get_field_name and print_field_name.
16095
16096 1999-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16097
16098         * Makefile.in (keyword.h): Generate using gperf language 'C', not
16099         'KR-C', so gperf uses the `const' keyword on strings.
16100
16101         * keyword.gperf (java_keyword): Const-ify a char*.
16102
16103 1999-03-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16104
16105         * parse.y (patch_bc_statement): Fixed identation and a bogus
16106         `printf' format.
16107
16108 1999-03-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16109
16110         * parse.y (patch_assignment): Allow static variables in other
16111         classes to be assigned.
16112
16113 1999-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16114
16115         * class.c (maybe_add_interface): Remove unused variable
16116         `interface_binfo'.
16117         (make_class_data): Use = for assignment, not ==.  Likewise.
16118         (emit_register_classes): Remove unused variable `decl'.
16119
16120         * lex.c: Fix comment so as not to contain an embedded `/*'.
16121
16122         * verify.c (verify_jvm_instructions): Remove unused variable
16123         `self_type'.
16124
16125 1999-03-27  Per Bothner  <bothner@cygnus.com>
16126
16127         * parse.y (complete_loop_body):  Rename to finish_loop_body.
16128         (complete_labeled_statement):  Rename to finish_labeled_statement.
16129         (complete_for_loop):  Rename to finish_for_loop.
16130         (complete_method_declaration):  Rename to finish_method_declaration.
16131
16132         * java-tree.h (continue_identifier_node):  New global node.
16133         * decl.c:  Define and initialize continue_identifier_node.
16134         * parse.y (generate_labeled_block):  Remove - no longer needed.
16135         (build_loop_body):  Use continue_identifier_node for continue block.
16136         (finish_labeled_statement):  Also do pop_labeled_block actions.
16137         (java_complete_lhs):  POP_LOOP even if error.
16138         (build_labeled_block):  Special handling for continue_identifier_node.
16139         (patch_loop_statement):  Re-organize.
16140         (patch_bc_statement):  Re-write.
16141
16142 1999-03-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16143
16144         * parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count
16145         using a WFL compound value.
16146         * parse.y (xref.h): Include.
16147         (maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the
16148         WFL compound value.
16149         (register_fields): Set WFL compound value to lineno if doing
16150         xrefs.
16151         (java_complete_expand_method): Call expand_xref if flag_emit_xref
16152         is set.
16153         * xref.c (system.h, jcf.h, parse.h, obstack.h): Include.
16154         * xref.h (expand_xref): Prototype renamed from xref_generate.
16155
16156 1999-03-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16157
16158         * parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK.
16159         (GET_CURRENT_BLOCK): New macro.
16160         * parse.y (current_static_block): New global variable.
16161         (method_body:): Define action.
16162         (complete_method_declaration): Set current_function_decl to NULL
16163         when work on the current method is done.
16164         (declare_local_variables): Use GET_CURRENT_BLOCK.
16165         (java_method_add_stmt): Likewise.
16166         (java_complete_expand_method): Disable the use of `this' when
16167         expanding <clinit>.
16168         (enter_a_block): If no current method exist, use
16169         current_static_block to link static initializer blocks.
16170         (exit_block): Rewritten to use current_static_block when no current
16171         method decl exists.
16172         (lookup_name_in_blocks): Use GET_CURRENT_BLOCK.
16173         (patch_return): Forbid the use of `return' in static initializers.
16174         (patch_throw_statement): Fixed indentation. Issue specific error
16175         for uncaught thrown checked exception in static initializer
16176         blocks. Removed FIXME.
16177
16178 1999-03-25  Zack Weinberg  <zack@rabi.columbia.edu>
16179
16180         * java/Make-lang.in: Remove all references to gcj.o/gcj.c.
16181         Link gcj from gcc.o.
16182
16183 1999-03-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16184
16185         * parse.y (find_applicable_accessible_methods_list): When dealing
16186         with interface: ensure that a given interface or java.lang.Object
16187         are searched only once.
16188
16189 1999-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16190
16191         * gjavah.c (print_c_decl): Remove unused argument `flags'.
16192
16193         * jcf-dump.c (print_access_flags): Add braces around if-else.
16194
16195         * jvspec.c (lang_specific_driver): Wrap variable `len' in macro
16196         COMBINE_INPUTS.
16197
16198         * lex.c (build_wfl_node): Add static prototype.
16199
16200         * lex.h (build_wfl_node): Remove static prototype.
16201
16202         * parse.y: Include lex.c early enough to declare everything needed.
16203         Ensure calls to `build_wfl_node' pass the proper arguments.
16204         (create_class): Remove unused variable `super_decl'.
16205         (get_printable_method_name): Initialize variable `name'.
16206
16207 1999-03-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16208
16209         * Changelog: Fixed 1999-03-22 typos.
16210         * lang.c (lang_decode_option): Fixed typo in error string in the
16211         XARG section.
16212
16213 1999-03-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16214
16215         * Makefile.in (JAVA_OBJS): Added entry xref.o.
16216         (xref.o): New rule.
16217         * java-tree.h (flag_emit_xref): Declared extern.
16218         * lang.c (xref.h): Included.
16219         (flag_emit_xref): New global variable.
16220         (lang_decode_option): Added support for -fxref.
16221         * xref.c: Created.
16222         * xref.h: Likewise.
16223
16224 1999-03-21  Manfred Hollstein  <manfred@s-direktnet.de>
16225
16226         * Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be
16227         linked with.
16228
16229 1999-03-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16230
16231         * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
16232         $(srcdir)/../system.h and $(JAVA_TREE_H).
16233         (jcf-io.o): Depend on $(JAVA_TREE_H).
16234         (mangle.o): Likewise.
16235
16236         * check-init.c (check_cond_init): Add static prototype.
16237
16238         * class.c (build_java_method_type, hashUtf8String,
16239         make_field_value, get_dispatch_vector, get_dispatch_table,
16240         append_gpp_mangled_type, mangle_static_field): Likewise.
16241         (strLengthUtf8): Hide unused definition.
16242         (hashUtf8String): Const-ify.
16243         (make_field_value): Un-ANSI-fy.
16244
16245         * constants.c: Move inclusion of jcf.h above java-tree.h.
16246         (set_constant_entry, find_class_or_string_constant,
16247         find_name_and_type_constant, get_tag_node,
16248         build_constant_data_ref): Add static prototype.
16249
16250         * decl.c (push_jvm_slot, builtin_function,
16251         lookup_name_current_level): Likewise.
16252         (builtin_function): Const-ify.
16253
16254         * except.c (expand_start_java_handler, expand_end_java_handler):
16255         Add static prototype.
16256
16257         * expr.c (flush_quick_stack, push_value, pop_value,
16258         java_stack_swap, java_stack_dup, build_java_athrow,
16259         build_java_jsr, build_java_ret, expand_java_multianewarray,
16260         expand_java_arraystore, expand_java_arrayload,
16261         expand_java_array_length, build_java_monitor, expand_java_pushc,
16262         expand_java_return, expand_java_NEW, expand_java_INSTANCEOF,
16263         expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label,
16264         expand_compare, expand_test, expand_cond, expand_java_goto,
16265         expand_java_call, expand_java_ret, pop_arguments, expand_invoke,
16266         expand_java_field_op, java_push_constant_from_pool): Likewise.
16267
16268         (decode_newarray_type, expand_iinc): Un-ANSI-fy.
16269         (build_java_arraynull_check): Mark parameters `node' and `type'
16270         with ATTRIBUTE_UNUSED.
16271         (note_label): Likewise for parameter `current_pc'.
16272         (expand_java_call, expand_java_ret): Hide unused definition.
16273
16274         * java-tree.h (make_class, build_constants_constructor,
16275         java_set_exception_lang_code, pop_labeled_block, emit_handlers,
16276         init_outgoing_cpool, register_class, emit_register_classes,
16277         java_layout_seen_class_methods): Prototype.
16278         (unicode_mangling_length): Const-ify.
16279         (append_gpp_mangled_name, append_gpp_mangled_classtype,
16280         emit_unicode_mangled_name, format_int, format_uint,
16281         jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
16282         jcf_print_utf8_replace, open_class): Prototype.
16283
16284         * jcf-dump.c: Include "config.h", not <config.h>.  Don't include
16285         <stdio.h>.  Include tree.h/java-tree.h.
16286         (utf8_equal_string usage, process_class): Add static prototype.
16287         (open_class): Don't prototype this here.
16288         (utf8_equal_string): Match arguments to format specifiers.
16289         (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
16290         TABLE_SWITCH, disassemble_method): Likewise.
16291
16292         * jcf-io.c: Include tree.h/java-tree.h.
16293         (open_class, find_classfile, jcf_print_utf8,
16294         jcf_print_utf8_replace): Const-ify.
16295
16296         * jcf-parse.c (parse_zip_file_entries, process_zip_dir,
16297         parse_class_file): Add static prototype.
16298         (find_in_current_zip): Match definition to existing static
16299         prototype.
16300
16301         * jcf-write.c: Include jcf.h before tree.h/java-tree.h.
16302         (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label,
16303         finish_jcf_block, define_jcf_label, get_jcf_label_here,
16304         put_linenumber, localvar_alloc, localvar_free, get_access_flags,
16305         write_chunks, adjust_typed_op, generate_bytecode_conditional,
16306         generate_bytecode_return, perform_relocations, init_jcf_state,
16307         init_jcf_method, release_jcf_state, generate_classfile):
16308         Add static prototype.
16309         (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED.
16310         (make_class_file_name): Const-ify.
16311
16312         * jcf.h (find_classfile): Const-ify.
16313
16314         * jv-scan.c (reset_report): Remove prototype.
16315
16316         * jvgenmain.c: Include jcf.h/tree.h/java-tree.h.
16317         (error): Rewrite to allow varargs.
16318
16319         * lang.c (lang_f_options): Const-ify.
16320
16321         * lex.c (java_parse_escape_sequence): Add static prototype.
16322         (java_allocate_new_line): Match definition to existing static
16323         prototype.
16324
16325         * mangle.c Include tree.h/java-tree.h.
16326         (unicode_mangling_length, emit_unicode_mangled_name,
16327         append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
16328
16329         * parse.h (jdep_code): Remove trailing comma in enumeration.
16330         (java_get_line_col): Move prototype outside of !JC1_LITE test.
16331         (reset_report): Add prototype.
16332
16333         * verify.c (push_pending_label, merge_types): Add static
16334         prototypes.
16335
16336         * zipfile.h (opendir_in_zip, open_in_zip): Prototype.
16337
16338 1999-03-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16339
16340         * parse.y (find_applicable_accessible_methods_list): Extend the
16341         search to superinterfaces when relevant.
16342         (search_applicable_methods_list): New function.
16343
16344 1999-03-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16345
16346         * class.c (unmangle_classname): Implemented stricter testing
16347         before setting the QUALIFIED_P flag on an identifier.
16348
16349 1999-03-16  Per Bothner  <bothner@cygnus.com>
16350
16351         * parse.y (java_complete_lhs):  Call force_evaluation_order
16352         after patch_newarray.
16353         (patch_binop):  Don't call fold if there are side effects.
16354
16355 1999-03-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16356
16357         * parse.y (java_stabilize_reference): Use save_expr instead of
16358         building a SAVE_EXPR node.
16359         (java_complete_lhs): Patch the resulting string of the `+='
16360         operator (if necessary) and complete the RHS after having built
16361         the cast.
16362
16363 1999-03-15  Per Bothner  <bothner@cygnus.com>
16364
16365         * class.c (make_class):  Don't set CLASS_P here (because
16366         this function is also called by build_java_array_type).
16367         (push_class):  Set CLASS_P here instead.
16368         * parse.h (TYPE_CLASS_P):  Check for TYPE_ARRAY_P is redundant.
16369
16370         * jcf-dump.c (print_access_flags):  Take extra parameter to indicate
16371         context.  If the context is class, perfer "super" over "synchronized".
16372         * jcf-write.c (generate_classfile):  Don't add ACC_SUPER if interface.
16373
16374         * parse.y (create_class):  Don't call parser_check_super here;
16375         it is not robust.  Always wait until later.
16376
16377         * parse.y (method_header):  For interfaces, set ACC_ABSTRACT (to
16378         match what JDK 1.2 does), but don't set ACC_PUBLIC.
16379
16380 1999-03-13  Per Bothner  <bothner@cygnus.com>
16381
16382         * lex.c (java_read_char):  UNGET invalid non-initial utf8 character.
16383         * lex.h (UNGETC):  Change misleading macro.
16384
16385 1999-03-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16386
16387         * parse.y (java_stabilize_reference): Return NODE when patching a
16388         COMPOUND_EXPR.
16389         (java_complete_lhs): Put parenthesis around truth values.
16390
16391 1999-03-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16392
16393         * class.c (layout_class_method): Don't make rtl for interface
16394         methods.
16395         * parse.h (GET_TYPE_NAME): New macro.
16396         * parse.y (if_then_statement:): Fixed indentation.
16397         (if_then_else_statement:): Likewise.
16398         (for_statement:): Fixed spacing.
16399         (try_statement:): Fixed indentation.
16400         (create_interface): Don't force interfaces to be abstract.
16401         (method_header): Abstract methods are OK in interfaces.
16402         (declare_local_variables): Fixed typo in comment.
16403         (java_complete_expand_method): Fixed indentation.
16404         (resolve_qualified_expression_name): Use GET_TYPE_NAME to report
16405         non accessible fields.
16406         (java_stabilize_reference): New function.
16407         (java_complete_lhs): Fixed indentation. Use
16408         java_stabilize_reference in compound assignment. Insert the
16409         cast. If not processing `+' fix string constants before processing
16410         binop.
16411
16412 1999-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16413
16414         * constants.c (find_class_or_string_constant): Cast variable `j'
16415         to a `jword' when comparing against one.
16416
16417         * expr.c (java_lang_expand_expr): Remove unused variables
16418         `has_finally_p' and `op0'.
16419
16420         * gjavah.c (print_field_info): Cast a value to jint when comparing
16421         against one.  Likewise for a jlong.
16422         (add_namelet): Likewise cast a `sizeof' to an int when comparing
16423         against a signed quantity.
16424
16425         * jcf-dump.c (print_signature_type): Remove unused variable `digit'.
16426         (print_signature): Don't needlessly dereference variable `str'
16427
16428         * jcf-reader.c (get_attribute): Mark variables `max_stack' and
16429         `max_locals' with ATTRIBUTE_UNUSED.
16430         (jcf_parse_class): Likewise for variable `index'.
16431
16432         * parse.h (reverse_jdep_list): Remove static prototype.
16433
16434         * parse.y (build_jump_to_finally): Remove prototype and definition.
16435         (reverse_jdep_list): Add static prototype.
16436
16437         * typeck.c (convert_ieee_real_to_integer): Remove unused variables
16438         `assignment' and `expr_decl'.
16439
16440         * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'.
16441
16442 1999-03-12  Andrew Haley  <aph@cygnus.com>
16443
16444         * jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes;
16445         we'll need a directory separator and a null character.
16446
16447 1999-03-10  Per Bothner  <bothner@cygnus.com>
16448
16449         * jcf-write.c (generate_bytecode_insns):  Handle __builtin_fmod, for %.
16450
16451 Tue Mar  9 11:52:08 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16452
16453         * parse.y (method_header): Don't set ACC_ABSTRACT flags on
16454         interfaces.
16455
16456 1999-03-05  Per Bothner  <bothner@cygnus.com>
16457
16458         * lex.c (java_parse_end_comment):  Take extra parameter (next char).
16459
16460         * class.c (build_utf8_ref):  Fix possible name class/ambiguity.
16461
16462         * class.c (layout_class_method):  A static method in a base class
16463         is never overridden, so treat it like it doesn't exist.
16464         However, do complain about private non-static method overriding
16465         public static method.
16466
16467         * parse.y:  Don't set unused INITIALIZED_P flag.
16468         * java-tree.h (INITIALIZED_P):  Removed no-longer needed flag.
16469
16470         * parse.y (find_expr_with_wfl):  Optimize tail-calls.
16471         (build_array_from_name):  Re-order &index[string] to &string[index].
16472
16473         * parse.y (java_complete_lhs):  Don't call patch_assignment if rhs is
16474         error_mark (it might catch more errors, but it is more likely to lose).
16475
16476 1999-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16477
16478         * Makefile.in (jcf-parse.o): Depend on $(PARSE_H).
16479         (parse-scan.o): Depend on toplev.h.
16480
16481         * class.c (make_method_value): Add prototype.  Make it static.
16482         Remove unused second argument, caller changed.
16483
16484         * expr.c (java_lang_expand_expr): Remove unused variable
16485         `return_label'.
16486
16487         * java-tree.h: Don't prototype find_in_current_zip.
16488         Add prototypes for verify_constant_pool, start_java_method,
16489         end_java_method, give_name_to_locals, expand_byte_code,
16490         open_in_zip, set_constant_value, find_constant1, find_constant2,
16491         find_utf8_constant, find_string_constant, find_class_constant,
16492         find_fieldref_index, find_methodref_index, write_constant_pool,
16493         count_constant_pool_bytes and encode_newarray_type.
16494
16495         * jcf-dump.c: Remove unused variable `LONG_temp'.
16496
16497         * jcf-parse.c: Include parse.h.
16498         (jcf_parse_source): Remove unused parameter, all callers changed.
16499         (jcf_figure_file_type): Add static prototype.
16500         (find_in_current_zip): Likewise.  Also remove unused parameter,
16501         all callers changed.
16502         (read_class): Initialize variable `saved_pos'.
16503
16504         * jcf-reader.c (jcf_parse_preamble): Mark variables
16505         `minor_version' and `major_version' with ATTRIBUTE_UNUSED.
16506
16507         * lex.c (java_is_eol): Wrap prototype and definition in !JC1_LITE.
16508         (java_init_lex): Wrap variable `java_lang_imported' in !JC1_LITE.
16509         (java_parse_doc_section): Initialize variable `seen_star'.
16510         (java_lex): Wrap variable `number_beginning' in !JC1_LITE.
16511         (java_lex_error): Mark parameters `msg' and `forward' with
16512         ATTRIBUTE_UNUSED.
16513         (java_get_line_col): Mark parameters `filename' and `line' with
16514         ATTRIBUTE_UNUSED.
16515
16516         * parse-scan.y: Include toplev.h.
16517         (yyerror): Mark parameter `msg' with ATTRIBUTE_UNUSED.
16518
16519         * parse.h: use `struct JCF', not plain `JCF'.
16520         (java_parser_context_save_global, java_expand_classes
16521         java_parser_context_restore_global, java_parse): Add prototypes.
16522
16523         * typeck.c (convert_ieee_real_to_integer): Remove unused variable
16524         `node'.
16525
16526 1999-02-24  Per Bothner  <bothner@deneb.cygnus.com>
16527
16528         *  check-init.c (check_init):  COPYN takes word count, not bit count.
16529
16530 1999-02-26  Per Bothner  <bothner@cygnus.com>
16531
16532         * typeck.c (convert_ieee_real_to_integer):  Use save_expr instead of
16533         explicit build_decl.  (Avoids crash in reload when optimizing.)
16534
16535 1999-02-25  Per Bothner  <bothner@cygnus.com>
16536
16537         * decl.c (complete_start_java_method):  Handle synchronized method
16538         even when compiling from bytecode.
16539
16540 1999-02-26  Tom Tromey  <tromey@cygnus.com>
16541
16542         * gjavah.c (add_class_decl): Only generate `#include' if outer
16543         class is not the name of the class we are processing.  Correctly
16544         append `.h' in #include.
16545         (process_file): Clean up newlines around generated `#include's.
16546         (decode_signature_piece): Correctly handle inner classes.
16547         (struct include): New structure.
16548         (all_includes): New global.
16549         (print_include): New function.
16550         (add_class_decl): Use it.
16551         (process_file): Likewise.
16552         (add_class_decl): Generate include for java-array.h if array
16553         seen.
16554         (process_file): Don't generate java-array.h include.
16555
16556         * gjavah.c (add_namelet): Check for standard package names here.
16557         (add_class_decl): Don't check for standard package names here.
16558
16559 1999-02-25  Tom Tromey  <tromey@cygnus.com>
16560
16561         * parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
16562         When reading a zip file, only use strncmp if both strings are
16563         bigger than the buffer length.  Initialize `k' when looping
16564         through zip file.
16565
16566 1999-02-24  Tom Tromey  <tromey@cygnus.com>
16567
16568         * gjavah.c (struct namelet): New structure.
16569         (add_namelet): New function.
16570         (print_namelet): New function.
16571         (print_class_decls): Use add_namelet and print_namelet to generate
16572         namespaces and not classes.
16573         (method_printed): New global.
16574         (HANDLE_END_METHOD): Examine method_printed.
16575         (print_method_info): Set method_printed when required.  Print
16576         error if function to be ignored is marked virtual.  Handle $finit$
16577         method.
16578         (METHOD_IS_FINAL): New macro.
16579         (print_field_info): Use it.
16580         (HANDLE_METHOD): Clear method_printed.
16581         (method_pass): New global.
16582         (HANDLE_END_FIELD): Call add_class_decl on the first pass.
16583         (process_file): Do two passes over both fields and methods.
16584         (HANDLE_METHOD): Examine method_pass.
16585         (root): New global.
16586         (add_class_decl): New function.
16587         (print_class_decls): Don't scan over entire constant pool.
16588
16589 1999-02-23  Tom Tromey  <tromey@cygnus.com>
16590
16591         * jvspec.c (lang_specific_driver): Recognize -fsyntax-only and
16592         disable linking in that case.
16593
16594 1999-02-20  Tom Tromey  <tromey@cygnus.com>
16595
16596         * jcf.h (UTF8_GET): Mask first byte of 3-byte encoding with 0x0f,
16597         not 0x1f.
16598
16599 1999-02-21  Per Bothner  <bothner@cygnus.com>
16600
16601         * decl.c (build_result_decl), java-tree.h:  New method.
16602         (complete_start_java_method):  Handle synchronized methods.
16603         Don't build DECL_RESULT here.  (Ordering dependency problem.)
16604         (start_java_method):  Call build_result_decl here instead  ...
16605         * parse.y (java_complete_expand_method):  ... and here.
16606         (expand_start_java_method): Don't call complete_start_java_method here.
16607         (java_complete_expand_method):  Call it here instead.
16608         * parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT):  Moved to ..
16609         * java-tree.h:  ... here.
16610
16611         * expr.c (force_evaluation_order):  Fix typo, don't handle ARRAY_REF.
16612         * parse.y (java_complete_lhs):  Don't call force_evaluation_order
16613         for ARRAY_REF - it doesn't work when array bounds are checked.
16614         (patch_array_ref):  Handle it here instead.
16615
16616         * jcf-write.c (generate_classfile):  Emit "Exceptions" attribute.
16617
16618 1999-02-19  Per Bothner  <bothner@cygnus.com>
16619
16620         Force left-to-right evaluation of binary operations etc.
16621         * expr.c (force_evaluation_order), java-tree.h:  New function.
16622         * parse.y (java_complete_lhs):  Pass binary operations, procedure
16623         calls, and ARRAY_REFs to force_evaluation_order.
16624         (various):  Set TREE_SIDE_EFFECTS more carefully.
16625
16626         Tolerate random (non-UTF8) encoding in comments without complaining.
16627         * lex.c (java_read_char):  Return 0xFFFE if bad UTF8 encoding.
16628         (java_is_eol):  Handle '\r' followed by '\n' instead of vice versa.
16629
16630         * parse.y (resolve_qualified_expression_name):  Handle error_mark.
16631         (java_complete_node case EXPR_WITH_FILE_LOCATION):  Likewise.
16632
16633         * parse.y (java_complete_lhs):  Ignore an empty statement in a
16634         COMPOUND_EXPR.  Don't complain about empty statement after return.
16635
16636 1999-02-19  Per Bothner  <bothner@cygnus.com>
16637
16638         * parse.y (obtain_incomplete_type):  Don't wrap unknown types
16639         in TREE_LIST - just chain the POINTER_TYPEs together.
16640         (resolve_class):  If type already resolved, return decl.
16641         After resolving, update TREE_TYPE(class_type), and name (if array).
16642         * parse.h (do_resolve_class), parse.y:  Make non-static.
16643         * class.c (maybe_layout_super_class):  Take this_class argument.
16644         Do do_resolve_class if necessary.
16645         (layout_class, layout_class_methods): Adjust calls appropriately.
16646         * parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
16647         JDEP_RESOLVED_P):  Redefined for new TREE_LIST-less convention.
16648         * typeck.c (build_java_array_type):  Don't call layout_class.
16649
16650 1999-02-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16651
16652         * parse.y (check_pkg_class_access): Allow private class access
16653         within the same package.
16654         (strip_out_static_field_access_decl): New function.
16655         (patch_unaryop): Call strip_out_static_field_access_decl on ++/--
16656         operator argument before testing its nature.
16657
16658 1999-02-03  Per Bothner  <bothner@cygnus.com>
16659
16660         * java-tree.def (FINALLY_EXPR):  Removed.  (Now uses TRY_FINALLY_EXPR.)
16661         (TRY_EXPR):  Simplify - it no longer has a finally clause.
16662         * check-init.c (check_init):  Handle TRY_FINALLY_EXPR.
16663         Simpler handling of TRY_EXPR, which no longer has a finally clause.
16664         * expr.c (java_lang_expand_expr):  Likewise.
16665         * java-tree.h (CATCH_EXPR_GET_EXPR):  Removed - no longer needed.
16666         * parse.h (java_get_catch_block), parse.y:  Removed - no longer needed.
16667         * parse.y (java_complete_lhs):  Add support for TRY_FIANLLY_EXPR.
16668         (build_try_statement):  Remove finally parameter and handling.
16669         (build_try_finally_statement):  New function.
16670         (patch_try_statement):   No longer need to support finally clause.
16671         (try_statement):  Update grammar action rules.
16672         * jcf-write.c (generate_bytecode_insns):  Handle TRY_FINALLY_EXPR.
16673         Simpler handling of TRY_EXPR, which no longer has a finally clause.
16674
16675 1998-11-26  Andrew Haley  <aph@viagra.cygnus.co.uk>
16676
16677         * jcf-parse.c (get_constant): Add braces around computation of 'd'
16678         when REAL_ARITHMETIC is not defined.  [Oct 26 fix got overwritten -PB]
16679
16680 1999-02-17  Andrew Haley  <aph@cygnus.com>
16681
16682         * class.c (build_utf8_ref): Back out broken patch which was
16683         intended to to output signatures using '.' as a separator.
16684
16685         * class.c (make_class_data): Output signatures using '.' as a
16686         separator, rather than '/'.
16687         (mangled_classname): Likewise.
16688         (make_field_value): Likewise.
16689         (make_method_value): Likewise.
16690         * constants.c (alloc_class_constant): Likewise.
16691         * expr.c (build_invokeinterface): Likewise.
16692
16693 1999-02-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16694
16695         * parse.y (valid_builtin_assignconv_identity_widening_p): Got rid
16696         of an ancient workaround.
16697
16698 1999-02-10  Jeffrey A Law  (law@cygnus.com)
16699
16700         * jvspec.c (xmalloc): Kill the prototype.  It does not belong
16701         here anymore.
16702
16703 1999-02-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16704
16705         * lex.c (yylex): Encode \0 as UTF8.
16706
16707 1999-02-10  Tom Tromey  <tromey@cygnus.com>
16708
16709         * jvspec.c (lang_specific_driver): Use libgcj, not libjava.
16710         * Makefile.in (jcf-path.o): Define LIBGCJ_ZIP_FILE.
16711         (libgcj_zip): Renamed.
16712         * jcf-path.c (add_entry): Use LIBGCJ_ZIP_FILE, not
16713         LIBJAVA_ZIP_FILE.
16714         (jcf_path_init): Use LIBGCJ_ZIP_FILE.
16715
16716         * jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
16717         (GC_NAME): Renamed -lgc to -lgcjgc.
16718
16719 1999-02-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16720
16721         * lex.c (java_lang_cloneable): Initialize.
16722         * parse.y (java_lang_cloneable): New static variable.
16723         (qualify_ambiguous_name): Take CONVERT_EXPR into account when
16724         doing one more qualification round.
16725         (valid_ref_assignconv_cast_p): Reject null source or
16726         destination. Allow an array to be cast into java.lang.Cloneable.
16727         (patch_cast): Swapped two first arguments to first call to
16728         valid_ref_assignconv_cast_p.
16729
16730 1999-02-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16731
16732         * parse.h: DECL_P renamed JDECL_P.
16733         * parse.y: DECL_P replaced by JDECL_P.
16734         (build_array_from_name): Always use pointer's type.
16735         (patch_bc_statement): Extra code to search continue target in a
16736         for loop. Fixed comments. Continue target is current loop when
16737         unlabeled.
16738
16739 1999-02-05  Andrew Haley  <aph@cygnus.com>
16740
16741         * class.c (make_class_data): The superclass of an interface should
16742         be null, not class Object.
16743
16744         * lex.c (java_lex): Sign extend hex literals.
16745
16746 1999-02-04  Andrew Haley  <aph@cygnus.com>
16747
16748         * class.c (build_utf8_ref): Output signatures using '.' as a
16749         separator, rather than '/'.
16750         (make_class_data): Likewise.
16751
16752 1999-02-03  Marc Espie <Marc.Espie@liafa.jussieu.fr>
16753
16754         * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
16755         mkstemp.o.  Get them from libiberty now.
16756
16757 1999-02-02  Jeffrey A Law  (law@cygnus.com)
16758
16759         * jcf-io.c: Do not include sys/stat.h or sys/wait.h
16760
16761 1999-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16762
16763         * jvspec.c (xmalloc): Fix the prototype to match the one obtained
16764         from libiberty.h
16765
16766 1999-02-02  Per Bothner  <bothner@cygnus.com>
16767
16768         Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'.
16769         * jcf-write.c (generate_bytecode_return):  New function.
16770         (generate_bytecode_insns):  Use it, for RETURN_EXPR.
16771
16772         * jcf-write.c (generate_bytecode_insns):  For REAL_CST that is 0 or 1,
16773         generate special [fd]const_[01] instructions.
16774
16775         * jcf-parse.c (yyparse):  Don't emit_register_classes if -fsyntax-only.
16776
16777         * verify.c (verify_jvm_instructions):  Do INVALIDATE_PC after
16778         handling OPCODE_lookupswitch or OPCODE_tableswitch.
16779
16780 1999-02-01  Per Bothner  <bothner@cygnus.com>
16781
16782         * parse.y (patch_method_invocation):  Handle calling static methods,
16783         even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS).
16784
16785         * parse.y (java_complete_lhs):  Don't complain about unreachable
16786         exit condition in a do-while statement.
16787
16788 1999-01-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16789
16790         * lex.c (java_read_char): Fixed utf8 decoding.
16791         (java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
16792         range.
16793         * parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
16794         comments. Local variable `all_primitive' is gone. Broadened
16795         acceptance of `0' to floating point targets. `long' can now be
16796         widened to `double' or `float'.
16797         (valid_method_invocation_conversion_p): Added leading
16798         comment. Fixed tabulation.
16799         (build_string_concatenation): Optimize out left or right empty
16800         string constants.
16801
16802 1999-01-28  Per Bothner  <bothner@cygnus.com>
16803
16804         * jcf-write.c (localvar_alloc):  Only emit entry for
16805         LocalVariableTable if debug_info_level > DINFO_LEVEL_TERSE.
16806         (generate_bytecode_insns):  Only call put_linenumber if
16807         debug_info_level > DINFO_LEVEL_NONE.
16808         * jvspec.c (lang_specific_driver):  If no -O* or -g* option
16809         is specified, add -g1 (for compatibility wih javac).
16810
16811 1999-01-28  Hans-Peter Nilsson  <hp@axis.se>
16812
16813         * java/Makefile.in: Add missing dependencies for jcf-dump.o,
16814         gjavah.o, check-init.o, jv-scan.o
16815
16816 1999-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16817
16818         * Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
16819
16820         * gjavah.c: Include config.h and system.h.
16821
16822         * javaop.h (inline): Don't define, its handled by system.h.
16823         (WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these
16824         from `inline' to `static inline'.
16825
16826         * jcf.h (inline): Don't define, its handled by system.h.
16827
16828         * lex.c (inline): Likewise.
16829
16830 1999-01-31  Zack Weinberg  <zack@rabi.columbia.edu>
16831
16832         * lang-specs.h: Map -Qn to -fno-ident.
16833
16834 1999-01-29  Richard Henderson  <rth@cygnus.com>
16835
16836         * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo.
16837
16838 1999-01-29  Tom Tromey  <tromey@cygnus.com>
16839
16840         * parse.h (BUILD_APPEND): If ARG is a non-String object reference,
16841         then cast it to Object before calling `append' method.
16842
16843 1999-01-28  Per Bothner  <bothner@cygnus.com>
16844
16845         * check-init.c (check_bool2_init, check_bool_init, check_init):
16846         Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
16847         * jcf-write.c (generate_bytecode_insns):  Likewise.
16848
16849 1999-01-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16850
16851         * jcf-parse.c (jcf_parse): Don't parse the same class file twice.
16852         * parse.y (patch_cast): Allow a boolean to be cast into a
16853         boolean.
16854
16855 1999-01-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16856
16857         * parse.y: (class_declaration:): Fixed indentation.
16858         (class_member_declaration:): Extra `;' after field declaration now
16859         accepted.
16860         (interface_declaration:): Removed debug messages in error reports.
16861         (patch_binop): Nodes created and returned inherit the orignal
16862         node's COMPOUND_ASSIGN_P flag value.
16863         (patch_cast): Fix cast from char to floating point.
16864
16865 1999-01-25  Andrew Haley  <aph@cygnus.com>
16866
16867         * except.c, java-except.h (expand_resume_after_catch): new
16868         function.
16869         * expr.c (java_lang_expand_expr): call expand_resume_after_catch
16870         to branch back to main flow of control after a catch block.
16871
16872 1999-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16873
16874         * Makefile.in (parse.o): Depend on $(CONFIG_H) and
16875         $(srcdir)/../system.h.
16876         (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
16877         (jcf-parse.o): Depend on $(srcdir)/../toplev.h.
16878         (jcf-write.o): Likewise.
16879         (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
16880         (mangle.o): Depend on $(srcdir)/../toplev.h.
16881         (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
16882         (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
16883
16884         * class.c: Include output.h and parse.h.
16885         (mangled_classname): Add the `const' keyword to a char*.
16886         (find_named_method): Hide unused function definition.
16887         (build_utf8_ref): Change type of variable `c' to unsigned char.
16888         Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
16889         (build_class_ref): Add the `const' keyword to a char*.
16890         (layout_class_method): Remove unused variable `buf'.
16891
16892         * decl.c (find_local_variable): Remove unused variable `rtl'.
16893         (pushdecl): Likewise for variables `different_binding_level' and
16894         `oldglobal'.
16895         (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
16896         (maybe_build_cleanup): Likewise for parameter `decl'.
16897
16898         * except.c (expand_start_java_handler): Mark parameter `range'
16899         with ATTRIBUTE_UNUSED.
16900
16901         * expr.c: Include except.h.
16902         (pop_type): Remove unused variable `i'.
16903         (pop_value): Likewise for variables `n_words' and `i'.
16904         (expand_java_arrayload): Likewise for variable `convert'.
16905         (java_lang_expand_expr): Likewise for variables `op0', `type',
16906         `mode', `unsignedp', `node' and `elements'.
16907         (expand_byte_code): Likewise for variables `prev_eh_ranges' and
16908         `eh_ranges'.
16909         (process_jvm_instruction): Add a `const' qualifier to a char*.
16910
16911         * gjavah.c (output_directory): Add the `const' keyword to a char*.
16912         (temp_directory): Likewise.
16913         (print_c_decl): Likewise.
16914         (print_method_info): Likewise.
16915         (decode_signature_piece): Likewise.
16916         (print_mangled_classname): Likewise.
16917
16918         * java-except.h: Provide prototypes for maybe_start_try,
16919         maybe_end_try and add_handler.
16920
16921         * java-tree.h (mangled_classname): Add the `const' keyword to a char*.
16922         (parse_error_context): Likewise.  Also add ATTRIBUTE_PRINTF_2.
16923         (pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
16924         init_expr_processing, push_super_field, init_class_processing,
16925         can_widen_reference_to, class_depth, verify_jvm_instructions,
16926         maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
16927         set_local_type, merge_type_state, push_type, load_type_state,
16928         add_interface, find_in_current_zip, append_gpp_mangled_classtype,
16929         emit_unicode_mangled_name): Add prototypes.
16930
16931         * jcf-dump.c (print_constant): Add the `const' keyword to a char*.
16932         (print_signature_type): Use ISDIGIT, not isdigit.
16933         (print_signature): Remove unused variable `j'.
16934
16935         * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
16936         int when comparing against one.
16937
16938         * jcf-parse.c: Include toplev.h.
16939
16940         * jcf-write.c: Likewise.  Don't include <string.h> or <sys/stat.h>.
16941         (localvar_free): Remove unused variable `i'.
16942         (generate_bytecode_conditional): Likewise for variable `kind'.
16943
16944         * jv-scan.c: Include config.h and system.h.  Remove redundant
16945         OS header and gansidecl.h includes.
16946         (warning): Add the `const' keyword to a char*.  Also add
16947         ATTRIBUTE_PRINTF_1 to the prototype.  Check ANSI_PROTOTYPES, not
16948         __STDC__, when determining whether to use ANSI-isms.
16949         (fatal): Likewise.  Also add ATTRIBUTE_UNUSED.
16950         (xmalloc): Don't redundantly prototype here.
16951         (main): Remove unused parameter `envp'.  Also fix the arguments
16952         passed to function `fatal' to match the format specifier.
16953
16954         * lang.c (java_tree_code_name): Add the `const' keyword to a char*.
16955
16956         * mangle.c: Include toplev.h.
16957         (emit_unicode_mangled_name): Declare parameter `len'.
16958
16959         * parse.y (parse_warning_context): Add the `const' keyword to a
16960         char*.  Also add ATTRIBUTE_PRINTF_2 to the prototype.  Check
16961         `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
16962         (issue_warning_error_from_context): Add the `const' keyword to
16963         a char*.
16964         (parse_error_context): Likewise.  Also check `ANSI_PROTOTYPES'
16965         not `__STDC__' for whether to use ANSI-isms.
16966
16967         * typeck.c (incomplete_type_error): Mark parameters `value' and
16968         `type' with ATTRIBUTE_UNUSED.
16969         (parse_signature_type): Use ISDIGIT, not isdigit.
16970
16971         * verify.c (check_pending_block): Add the `const' keyword to a char*.
16972         (verify_jvm_instructions): Likewise.  Remove unused variables
16973         `field_name' and `default_val'.
16974
16975         * zextract.c: Include config.h and system.h.  Remove redundant
16976         OS header includes.
16977
16978         * zipfile.h: Prototype `read_zip_archive'.
16979
16980 1999-01-21  Andrew Haley  <aph@cygnus.com>
16981
16982         * typeck.c (convert): Allow conversions to void type: some
16983         optimizations in gcc do this.
16984
16985 1999-01-21  Andrew Haley  <aph@cygnus.com>
16986
16987         * typeck.c (convert_ieee_real_to_integer): New function.
16988         (convert): When not using fast-math and using hardware fp, convert
16989         an IEEE NaN to zero.
16990
16991 1999-01-18  Andrew Haley  <aph@cygnus.com>
16992
16993         * parse.y (patch_binop): Do a type conversion from signed to
16994         unsigned and then back to signed when a ">>>" is found.
16995
16996 1999-01-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16997
16998         * java-tree.h: (check_for_initialization): Added prototype.
16999         * lex.c (java_parse_doc_section): `\n' breaks the `*/' string.
17000         * parse.y (do_resolve_class): Removed unused locals.
17001         (read_import_dir): Likewise.
17002         (resolve_qualified_expression_name): Array creation
17003         expressions are valid primary expressions.
17004         (qualify_ambiguous_name): Likewise.
17005         (patch_synchronized_statement): Removed unused local.
17006
17007 1999-01-17  Jeffrey A Law  (law@cygnus.com)
17008
17009         * Makefile.in (zextract.o): Add dependencies.
17010
17011         * Makefile.in: Do not put ^Ls at the start of a line.
17012
17013 1999-01-15  Per Bothner  <bothner@cygnus.com>
17014
17015         * expr.c (process_jvm_instruction):  Coerce to correct Throwable
17016         sub-type the result of the call that gets the exception value.
17017
17018         * parse.y (java_complete_expand_methods):  If flags_syntax_only,
17019         don't call finish_class.
17020
17021         * parse.y (java_check_regular_methods):  If METHOD_PRIVATE,
17022         clear found before continuing.
17023
17024         * verify.c (verify_jvm_instructions):  On an array load, allow
17025         and handle top of stack to be TYPE_NULL.
17026
17027         * gjavah.c (generate_access):  Translate Java package private or
17028         protected access to C++ public, but with a comment.
17029
17030 1999-01-13  Andrew Haley  <aph@cygnus.com>
17031
17032         * expr.c (generate_name): Name prefix changed to avoid clashes
17033         with assembler temp labels.
17034
17035         * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
17036         MODIFY_EXPR.  Without this, code for the assignment may not be
17037         generated at all and the synchronized statement will read an
17038         uninitialized variable.
17039
17040 1999-01-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17041
17042         * class.c (maybe_layout_super_class): Fixed returned value.
17043         * lex.c: Added 1999 to the copyright.
17044         (java_init_lex): Initialize java_lang_imported.
17045         * lex.h: Added 1999 to the copyright.
17046         * parse.h: Added 1999 to the copyright.
17047         (REGISTER_IMPORT): Fixed typo in trailing macro.
17048         (CURRENT_OSB): New macro.
17049         (struct parser_ctxt): New fields osb_depth, osb_limit.
17050         * parse.y (java_lang_id): New global variable.
17051         (type_import_on_demand_declaration): Don't import java.lang.* twice.
17052         (array_creation_expression:): Use CURRENT_OSB.
17053         (dims:): Uses a stack to keep track of array dimensions.
17054         (cast_expression:): Use CURRENT_OSB.
17055         (find_expr_with_wfl): Return NULL if node found doesn't meet the
17056         conditions.
17057         (register_fields): Fixed typos in comment.
17058         (check_method_redefinition): Fixed comment indentation.
17059         (java_check_regular_methods): Set saved found wfl to NULL after
17060         having reinstalled it in the previously found DECL_NAME.
17061
17062 1999-01-10  Richard Henderson  <rth@cygnus.com>
17063
17064         * gjavah.c (java_float_finite): Use a union to do type punning.
17065         (java_double_finite): Likewise.
17066
17067 1999-01-09  Per Bothner  <bothner@cygnus.com>
17068
17069         * parse.y (build_new_array_init):  Don't set EXPR_WFL_LINECOL
17070         on CONSTRUCTOR (since that trashes TREE_CST_RTL).
17071         (patch_new_array_init):  Clear TREE_CONSTANT also if INDIRECT_REF.
17072         (register_fields):  Set TREE_STATIC on NEW_ARRAY_INIT, not on
17073         CONSTRUCTOR (which causes expand_expr to call output_constant_def).
17074         * expr.c (java_lang_expand_expr):  Check TREE_STATIC of NEW_ARRAY_INIT.
17075
17076 1999-01-08  Per Bothner  <bothner@cygnus.com>
17077
17078         * check-init.c (check_init):  If compiling to native, we don't
17079         see THROW_EXPR.  Instead, look for a call to throw_node (_Jv_Throw).
17080
17081 1999-01-08  Tom Tromey  <tromey@cygnus.com>
17082
17083         * parse-scan.y (variable_declarator_id): Set or increment
17084         bracket_count.
17085         (bracket_count): New global.
17086         (formal_parameter): Handle case where bracket pairs trail variable
17087         declarator id.
17088
17089 1999-01-07  Andrew Haley  <aph@viagra.cygnus.co.uk>
17090
17091         * jcf-parse.c (yyparse): variable len changed from a char to an
17092         int to prevent overflow.
17093
17094 1999-01-06  Per Bothner  <bothner@cygnus.com>
17095
17096         * java-tree.h:  Declare read_class.
17097         * jcf-parse.c (read_class):  New function.
17098         (load_class):  Now just call read_class.
17099
17100         * java-tree.h (java_parse_abort_on_error):  Only return if new errors.
17101         * jcf-parse.c (parse_source_file):  Declare save_error_count,
17102         which is needed by java_parse_abort_on_error macro,
17103         * parse.y (java_layout_classes, java_expand_classes):  Likewise.
17104
17105         * parse.y (register_fields):  Set TREE_STATIC flag of NEW_ARRAY_INIT
17106         constructor, if initializing a static field.
17107         (patch_new_array_init):  Set TREE_CONSTANT if it is.
17108         * expr.c (java_lang_expand_expr):  For a static array constructor
17109         of primitive elements, allocate the array itself statically.
17110         Disabled until we can set the vtable field statically.
17111
17112         * check-init.c:  New file.  Checks for definite assignment.
17113         * Makefile.in (JAVA_OBJS):  Add check-init.o.
17114         * parse.y (java_complete_expand_method): Call check_for_initialization.
17115         * parse.h (BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY):  Moved to java-tree.h.
17116
17117 1999-01-06  Graham <grahams@rcp.co.uk>
17118
17119         * parse.y : include system.h instead of including
17120         standard headers directly with the exception of <dirent.h>.
17121
17122 1999-01-06  Per Bothner  <bothner@cygnus.com>
17123
17124         * lex.h:  Moved static function declarations to lex.c,
17125         to shut up some -Wall warnings.
17126         * lex.c:  Static function declarations moved here.
17127         * jcf-dump.c:  Small fixes to shut up -Wall warnings.
17128
17129 1999-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17130
17131         * Make-lang.in ($(GCJ).o): Depend on prefix.h.
17132
17133 1998-12-22  Per Bothner  <bothner@cygnus.com>
17134
17135         * expr.c (process_jvm_instruction):  Do load_type_state after JSR.
17136         * verify.c (verify_jvm_instructions):  Fix off-by-one error.
17137
17138         * jcf-write.c (CHECK_PUT):  Add (void) cast to avoid -Wall warnings.
17139         (localvar_alloc):  Change return type to void,
17140         (emit_unop):  Remove unused variable size.
17141
17142         * jcf-write.c (struct jcf_block):  Add new union.
17143         (PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC):  New macros.
17144         (call_cleanups):  New functions.
17145         (struct jcf_partial):  New fields num_finalizers and return_value_decl.
17146         (generate_bytecode_insns):  Support CLEANUP_POINT_EXPR and
17147         WITH_CLEANUP_EXPR.  Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
17148         * lang.c (lang_init):  Call using_eh_for_cleanups.
17149         * parse.y (java_complete_lhs):  For SYNCHRONIZED_EXPR, defer
17150         completing operands to patch_synchronized_statement.
17151         Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
17152         (patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
17153         WITH_CLEANUP_EXPR instead of TRY_EXPR.
17154
17155 1998-12-20  John F. Carr  <jfc@mit.edu>
17156
17157         * Make-lang.in: Comment out control-Ls; they upset some makes.
17158
17159 1998-12-18  Tom Tromey  <tromey@cygnus.com>
17160
17161         * parse.y (check_class_interface_creation): Use DIR_SEPARATOR
17162         consistently.
17163
17164 1998-12-17  Tom Tromey  <tromey@cygnus.com>
17165
17166         * parse.y (DIR_SEPARATOR): New define.
17167         (check_class_interface_creation): Use it.
17168
17169         * parse-scan.y (report_main_declaration): Recognize
17170         `java.lang.String' in argument to main.
17171
17172 1998-12-16  Per Bothner  <bothner@cygnus.com>
17173
17174         * parse.y (create_interface):  Remove bogus test.
17175
17176 1998-12-16  Per Bothner  <bothner@cygnus.com>
17177
17178         * jcf-parse.c (get_constant):  Set TREE_TYPE for string constants.
17179         (HANDLE_CONSTANTVALUE):  If flag_emit_class_files, call get_constant.
17180
17181 1998-12-16  Tom Tromey  <tromey@cygnus.com>
17182
17183         * parse-scan.y (qualified_name): Use correct sprintf format.
17184
17185 1998-12-15  Tom Tromey  <tromey@cygnus.com>
17186
17187         * gjavah.c (print_field_info): Changed how most negative number is
17188         printed.
17189
17190 1998-12-14  Per Bothner  <bothner@cygnus.com>
17191
17192         * parse.y (fold_constant_for_init):  New function.
17193         (resolve_expression_name):  Don't replace static final
17194         constant-initialized fields by its value.
17195         (java_complete_lhs):  New.  Same as java_complete_tree, except does
17196         not replace static final constant-initialized fields by their values.
17197         (register_fields):  If there is an initializer, set DECL_INITIAL and
17198         MODIFY_EXPR_FROM_INITIALIZATION_P.
17199         (java_complete_tree):  For MODIFY_EXPR, use java_complete_lhs for lhs.
17200         Only call patch_initialized_static_field if
17201         MODIFY_EXPR_FROM_INITIALIZATION_P.
17202         (patch_initialized_static_field):  If not valid constant, clear
17203         DECL_INITIAL.
17204
17205         * parse.y (lookup_field_wrapper):  Fix thinko.
17206
17207         * parse.y (java_complete_tree):  In EXPR_WITH_FILE_LOCATION,
17208         set and restore global lineno.
17209
17210 1998-12-14  Tom Tromey  <tromey@cygnus.com>
17211
17212         * gjavah.c (print_field_info): If value to print is the smallest
17213         value of its size, then print as hex to avoid later warnings from
17214         C++ compiler.
17215
17216 1998-12-14  Tom Tromey  <tromey@cygnus.com>
17217
17218         * gjavah.c (decompile_method): Decompile `return null'.
17219         (process_file): Generate `#pragma interface'.
17220         (method_declared): New global.
17221         (print_method_info): Set it.
17222         (HANDLE_CODE_ATTRIBUTE): Only print it method_declared set.
17223         (print_method_info): Handle abstract methods.
17224
17225 1998-12-13  Per Bothner  <bothner@cygnus.com>
17226
17227         * parse.y (patch_method_invocation):  If class_decl is null
17228         (e.g. an array type), use original type.
17229
17230         * parse.y (check_thrown_exceptions):  Temporary hack to suppress
17231         errors about uncaught exception from clone (of array, specifically).
17232
17233 1998-12-13  Tom Tromey  <tromey@cygnus.com>
17234
17235         * gjavah.c (decompile_method): Handle all types of `return'
17236         opcode.  Decompile `return this' and `return'.
17237         (method_access): New global.
17238         (print_method_info): Set it.
17239         (decompile_method): Don't decompile a synchronized method.
17240
17241 1998-12-13  Tom Tromey  <tromey@cygnus.com>
17242
17243         * jcf-reader.c (jcf_parse_one_method): Recognize
17244         HANDLE_END_METHOD.
17245         * gjavah.c (HANDLE_END_METHOD): New macro.
17246         (HANDLE_CODE_ATTRIBUTE): New macro.
17247         (decompile_method): New function.
17248         (print_method_info): Don't print `;\n' at end of function decl.
17249         Include java-opcodes.h.
17250         (decompiled): New global.
17251
17252 1998-12-12  Per Bothner  <bothner@cygnus.com>
17253
17254         * class.c (build_class_ref):  Handle PRIMTYPE.class if
17255         flag_emit_class_files.
17256         * expr.c (expand_java_field_op):  Don't optimize java.lang.XXX.TYPE
17257         if flag_emit_class_files.
17258         * parse.y (java_complete_tree):  Pre-liminary support for
17259         COMPONENT_REF - only to handle PRIMCLASS.TYPE.
17260
17261         * parse.y (patch_synchronized_statement):   Don't call monitorexit
17262         unless block CAN_COMPLETE_NORMALLY.  Propagate that flag properly.
17263
17264         * java-tree.h (DECL_LOCAL_STATIC_VALUE):  Removed - no longer used.
17265
17266         * zipfile.h (opendir_in_zip):  New declaration.
17267         * jcf-io.c (saw_java_source):  Moved to jcf-parse.c.
17268         (opendir_in_zip):  New function, using code from open_in_zip.
17269         (open_in_zip):  Call opendir_in_zip.
17270         (find_class):  Remove no-longer-used do_class_file parameter,
17271         but add source_ok parameter.  Change logic so if we find a .java file,
17272         we don't look for .class in later classpath emtries.
17273         * jcf-parse.c (load_class):  Pass saw_java_source to find_class.
17274         (jcf_figure_file_type):  Only call open_in_zip if correct magic number.
17275         * gjavah.c: Update call to find_class.
17276         * jcf-dump.c:  Likewise.
17277
17278         * jcf-write.c (put_linenumber):  Handle duplicate line numbers.
17279         (generate_bytecode_insns):  For EXPR_WITH_FILE_LOCATION, do
17280         nothing if body is empty_stmt_node.
17281         Various little fixes so SP gets correctly adjusted.
17282         For NEW_ARRAY_INIT, handle IGNORE_TARGET.
17283         For CALL_EXPR, test if static first.
17284         (generate_classfile):  Ignore fields that are DECL_ARTIFICIAL,
17285         such as the ones we create for Object and Class.
17286         Set and restore current_function_decl.
17287         * parse.y:  Check/set IS_AN_IMPORT_ON_DEMAND_P in read_import_dir.
17288         (note_possible_classname):  New function.
17289         (read_import_entry):  Removed.  Merged with read_import_dir.
17290         (read_import_dir):  Don't call find_class - that only gives us
17291         the first classpath entry having the needed package.
17292         Use the struct buffer data structure from buffer.h.
17293         (read_import_dir, find_in_imports_on_demand):  The remembered
17294         class names now use '.' (not '/') as package separator.
17295
17296         * parse.y (java_complete_expand_methods):  Call write_classfile
17297         here, and not in java_expand_classes (which only gets first class).
17298
17299 1998-12-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17300
17301         * parse.y (<type_declaration>):  Do maybe_generate_clinit last.
17302         (register_fields):  If a static fields has an initializer, just
17303         chain it on ctxp->static_initialized, and handle later.
17304         (java_complete_expand_methods):  Force <clinit> first.
17305         (resolve_expression_name, resolve_field_access):  Just get DECL_INITIAL
17306         - it's already been completed.
17307         (patch_initialized_static_field):  New function.
17308         (java_complete_field):  Call it.
17309
17310 1998-12-12  Per Bothner  <bothner@cygnus.com>
17311
17312         * expr.c (encode_newarray_type, build_new_array):  New functions.
17313         * java-tree.h:  Declare build_new_array.
17314         * jcf-write.c (patch_newarray):  Use build_new_array.
17315
17316         * expr.c (java_lang_expand_exp):  Support NEW_ARRAY_INIT.
17317         * jcf-write.c (generate_bytecode_insns):  Support NEW_ARRAY_INIT.
17318
17319         * parse.y (patch_new_array_init):  Re-organize.
17320         Now is passed the actual array (pointer) type of the value.
17321         Set the type of the CONSTRUCTOR to be an ARRAY_TYPE.
17322         (patch_array_constructor):  Removed - merged into patch_new_array_init.
17323         (java_complete_tree):  Update patch_new_array_init.
17324
17325         * jcf-write.c (find_constant_index):  New function.
17326         (generate_bytecode_insns):  Use find_constant_index.
17327         (generate_classfile):  Use find_constant_index for ConstantValue.
17328
17329 1998-12-11  Tom Tromey  <tromey@cygnus.com>
17330
17331         * expr.c (invoke_build_dtable): Renamed dtable -> vtable.
17332         * decl.c (init_decl_processing): Renamed dtable -> vtable.
17333         * class.c (make_class_data): Renamed dtable -> vtable, and
17334         dtable_method_count -> vtable_method_count.
17335
17336 1998-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17337
17338         * decl.c (long_zero_node, float_zero_node, double_zero_node): New
17339         global variables, initialized.
17340         * java-tree.h (long_zero_node, float_zero_node, double_zero_node):
17341         Declared new global variables.
17342         * lex.c (java_lex): Return long_zero_node, float_zero_node,
17343         double_zero_node, integer_zero_node upon direct matching.
17344         * parse.y (purify_type_name): Added function prototype.
17345         (duplicate_declaration_error_p): Consider new_type as potentially
17346         being a incomplete type. Use purify_type_name on type string.
17347         (method_header): saved_type: unused variable removed. Don't figure
17348         return type if method name is invalid.
17349         (java_complete_tree): Set CAN_COMPLETE_NORMALLY after `node' was
17350         processed by patch_unaryop.
17351         (patch_unaryop): Fixed typo in comment. Re-convert pre/post
17352         increment/decrement node into its original type after binary
17353         numeric promotion on its operands.
17354
17355 1998-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17356
17357         * parse.y (array_initializer:): Array init operand is NULL_TREE
17358         instead of a TREE_LIST of NULL_TREEs when parsing `{}'. `{,}' is
17359         now an error. Fixed indentation problems.
17360         (patch_string): Handle error_mark_node as an argument.
17361         (patch_new_array_init): Fixed indentation problems.
17362         (array_constructor_check_entry): Removed check on null wfl_value.
17363         Return an error if wfl_value's walk returns an error.
17364
17365 1998-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17366
17367         * java-tree.def (NEW_ARRAY_INIT): New Java tree code.
17368         * lex.c (java_lex): Remember column position before advancing one
17369         token. Retain location information on OCB_TK.
17370         * lex.h (typedef struct java_lc): Added new field.
17371         * parse.h (GET_SKIP_TYPE): New macro.
17372         (QUAL_DECL_TYPE): Redefined using GET_SKIP_TYPE.
17373         * parse.y (build_new_array_init, patch_new_array_init,
17374         patch_array_constructor, maybe_build_array_element_wfl,
17375         array_constructor_check_entry): New function prototypes.
17376         (switch_block:): Tagged <node>.
17377         (OCB_TK): Tagged <operator>.
17378         (array_initializer:): Installed actions.
17379         (variable_initializer): Build location information on element if
17380         necessary.
17381         (switch_statement:): Fixed indentation typo.
17382         (switch_block:): Redefined default action.
17383         (java_complete_tree): Handle NEW_ARRAY_INIT in MODIFY_EXPR:.
17384         (patch_assignment): Removed duplicate code.
17385         (maybe_build_array_element_wfl, build_new_array_init,
17386         patch_new_array_init, patch_array_constructor,
17387         array_constructor_check_entry): New functions.
17388
17389 1998-12-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17390
17391         * parse.y (array_initializer): Tagged <node>.
17392         (variable_initializer:): Use default rule.
17393         (array_initializer:): Defined actions.
17394         (variable_initializers:): Likewise.
17395         (resolve_qualified_expression_name): Use DECL_CONTEXT to build
17396         non-static field accesses.
17397         (patch_invoke): Fixed indentation typo.
17398         (java_complete_tree): Likewise.
17399         (build_labeled_block): Changed leading comment. Generate an error
17400         in case of duplicate loop labels.
17401         (patch_conditional_expr): Patch results of string concatenation
17402         operations.
17403
17404 1998-12-06  Per Bothner  <bothner@cygnus.com>
17405
17406         * constants.c (find_methodref_index):  When the class is an interface,
17407         generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
17408
17409         * decl.c (finit_identifier_node):  Use "$finit$", rather than
17410         "<finit>" (which Sun's verifier rejects).
17411         * parse.y (maybe_generate_finit):  Leave out meaningless final flag.
17412         (generate_field_initialization_code):  Removed.
17413         (fix_constructors)  Don't add call to $finit$ here (wrong order).
17414         (patch_method_invocation):  Add $finit$ call here.
17415
17416         * java-tree.h (CALL_USING_SUPER):  New macro.
17417         * parse.y (patch_invoke):  Remove im local variable.
17418         (patch_method_invocation, patch_invoke):  Don't pass super parameter.
17419         (patch_invoke):  Use CALL_USING_SUPER instead of from_super parameter.
17420         (resolve_qualified_expression_name):  Maybe set CALL_USING_SUPER.
17421
17422         * jcf-write.c (get_access_flags):  Fix typo ACC_PUBLIC -> ACC_FINAL.
17423
17424         * parse.y (java_complete_tree):  Don't complain about unreachable
17425         statement if it is empty_stmt_node.
17426
17427         * jcf-write.c (find_constant_wide):  New function.
17428         (push_long_const):  Use find_constant_wide.
17429
17430         * jcf-write.c (generate_bytecode_insn):  Fix bug in switch handling.
17431         (generate_bytecode_insn):  Use correct dup variant for MODIFY_EXPR.
17432         Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
17433         Emit invokeinterface when calling an interface method.
17434         Emit invokespecial also when calling super or private methods.
17435
17436         * jcf-write.c (generate_classfile):  Emit ConstantValue attributes.
17437
17438 1998-12-06  Per Bothner  <bothner@cygnus.com>
17439
17440         * jcf-dump.c (INVOKE):  If invokeinterface, print number of args.
17441
17442 1998-12-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17443
17444         * java-tree.h (java_layout_seen_class_methods): New function
17445         prototype.
17446         (LAYOUT_SEEN_CLASS_METHODS): Macro removed.
17447         * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods.
17448         * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro.
17449         * parse.y (method_declarator:): Defined action.
17450         (issue_warning_error_from_context): input_filename saved, set to
17451         the appropriate value and restored after java_error is called.
17452         (build_unresolved_array_type): Fixed comment.
17453         (register_fields): Use PROMOTE_RECORD_IF_COMPLETE.
17454         (method_header): Deal with return type the same way type are
17455         handled for fields and method's parameters and local variables
17456         types are handled.
17457         (check_method_redefinition): Removed extra CR.
17458         (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE.
17459         (java_layout_seen_class_methods): New function.
17460         (java_layout_classes): Call java_layout_seen_class_methods.
17461
17462 1998-12-03  Per Bothner  <bothner@cygnus.com>
17463
17464         * parse,y (patch_synchronized_statement):  Set CAN_COMPLETE_NORMALLY.
17465
17466 1998-12-03  Per Bothner  <bothner@cygnus.com>
17467
17468         * jcf-dump.c (main):  Fix error message.
17469         * jcf-path.c (add_entry):  Style fix.
17470
17471 1998-12-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17472
17473         * class.c (layout_class_method): Call build_java_argument_signature
17474         on constructors too.
17475         * parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE.
17476         (patch_method_invocation): Define a primary when resolving an
17477         expression name. Augmented comment on code checking illegal `this'
17478         usage. Loosened it test by accepting NEW_CLASS_EXPR.
17479
17480 1998-12-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17481
17482         * class.c (layout_class_method): Don't report error on non-static
17483         overriding static if the method is private.
17484         * java-tree.h (finish_class): Prototype added.
17485         * lex.c (java_get_line_col): Handle col argument -2 value.
17486         * parse.h: All static method declarations moved to parse.y.
17487         * parse.y: Now contains all static method declarations previously
17488         found in parse.h.
17489         (find_expr_with_wfl, missing_return_error,
17490         unreachable_stmt_error): New functions.
17491         (java_get_real_method_name): Identify constructors bearing class
17492         names in source code compiled classes only.
17493         (java_complete_expand_methods): Call missing_return_error.
17494         (invocation_mode): Private methods invoked as static methods.
17495         (java_complete_tree): Call unreachable_stmt_error.
17496
17497 1998-12-01  Tom Tromey  <tromey@cygnus.com>
17498
17499         * Makefile.in (+target): Removed.
17500         (+xmake_file): Likewise.
17501         (+tmake_file): Likewise.
17502         (.NOEXPORT): Removed duplicate.
17503
17504 1998-11-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17505
17506         * Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
17507
17508         * jv-scan.c: Fix xmalloc prototype.  Provide an xmalloc definition.
17509
17510         * jvgenmain.c: Remove the xmalloc prototype, we get it from
17511         libiberty.h.  Provide an xmalloc definition.
17512
17513         * jvspec.c: Remove the xmalloc prototype.
17514
17515         * parse-scan.y: Include config.h and system.h.  Don't include
17516         OS headers or gansidecl.h.  Don't prototype xmalloc/xstrdup.
17517         Provide an xstrdup definition.
17518
17519 1998-11-26  Alexandre Oliva  <oliva@dcc.unicamp.br>
17520
17521         * jcf-path.c (add_entry): Recognize ".jar" too.
17522         * lang-specs.h: Likewise.
17523
17524 1998-11-26  Per Bothner  <bothner@cygnus.com>
17525
17526         * jcf-write.c (generate_bytecode_insns):  In Call_EXPR, handle
17527         soft_monitorenter_node, soft_monitorexit_node, throw_node.
17528
17529         * jcf-write.c (generate_bytecode_insns):
17530         Handle pre/post-increment/decrement of long.
17531
17532         * jcf-write.c (generate_bytecode_insns):
17533         Handle missing exception handler (finally for synchronized).
17534
17535 1998-11-25  Per Bothner  <bothner@cygnus.com>
17536
17537         * java-tree.h (end_params_node):  Declare global.
17538         * decl.c (end_params_node):  New global.
17539         (init_decl_processing, start_java_method):  Use end_params_node for
17540         end of list of parameter types.  Follows correct gcc conventions.
17541         * expr.c (pop_argument_types, pop_arguments):  Likewise.
17542         * lang.c (put_decl_node):  Likewise.
17543         * typeck.c (various places):  Likewise.
17544         * class.y (various places):  Likewise.
17545         * parse.y (various places):  Likewise.
17546
17547         * parse.y (java_complete_tree):  Move CAN_COMPLETE_NORMALLY.
17548         (build_jump_to_finally):  Add missing CAN_COMPLETE_NORMALLY.
17549
17550         * class.c:  Add #include flags.h, remove no-longer needed declaration.
17551
17552         * class.c (layout_class_method):  Remove commented-out code, re-format.
17553         Don't add vtable entry (or index) for private methods.
17554         * expr.c (expand_invoke):  A private method is implicitly final.
17555         * class.c (make_class_data):  If inlining or optimizing,
17556         skip private methods.
17557
17558         * class.c (finish_class):  New function.  Calls existing methods,
17559         but alls emits deferred inline functions.
17560         * jcf-parse.c (parse_class_file):  Call finish_class.
17561         * parse.y (java_complete_expand_methods):  Likewise.
17562
17563         * expr.c (build_java_binop):  Explicit default, to silence -Wall.
17564
17565         * expr.c (CHECK_PC_IN_RANGE):  Add void cast to kill warnings.
17566
17567 1998-11-25  Marc Espie <espie@quatramaran.ens.fr>
17568
17569         * jcf-write.c (generate_bytecode_conditional): Fix typo.
17570
17571 1998-11-24  Per Bothner  <bothner@cygnus.com>
17572
17573         * (generate_classfile): Always write class access flag with
17574         ACC_SUPER set.
17575
17576 1998-11-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17577
17578         * class.c (maybe_layout_super_class): New function.
17579         (layout_class): Reorganized. Loop on class methods dispatched into
17580         a new function. Call maybe_layout_super_class.
17581         (layout_class_methods, layout_class_method): New functions.
17582         * expr.c (expand_java_NEW): Call layout_class_methods on loaded
17583         class.
17584         (expand_invoke): Likewise.
17585         * java-tree.h (all_class_list): New global variable declared.
17586         (layout_class_methods, layout_class_method): New function
17587         prototypes.
17588         (LAYOUT_SEEN_CLASS_METHODS): New macro.
17589         * jcf-parse.c (all_class_list): New global variable.
17590         (load_class): Extended what class_or_name can be. Use parser
17591         context mechanism to save globals before calling jcf_parse.
17592         (jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
17593         is set on the file name.
17594         (jcf_parse): Layout class methods when Object is loaded, otherwise
17595         record class in all_class_list for delayed method layout.
17596         (parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
17597         * lang.c (put_decl_node): Decode <init> into the decl context
17598         class name.
17599         * lex.c (java_allocate_new_line): Use xmalloc.
17600         * parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
17601         pointers, not TREE_LIST elements.
17602         (struct parser_ctxt): Fixed comment indentations, added comments
17603         and reordered some fields.
17604         (java_check_methods): Function prototype removed.
17605         * parse.y (java_push_parser_context): Use xmalloc.
17606         (java_parser_context_restore_global): Pop extra pushed ctxp only
17607         when there's nothing next.
17608         (maybe_create_class_interface_decl): Fixed comment, add new
17609         created class decl to all_class_list.
17610         (method_header): Use GET_REAL_TYPE on argument's types.
17611         (method_declarator): Use GET_REAL_TYPE, change type to the real
17612         type in TREE_LIST dependency node. Build argument list with the
17613         real type.
17614         (create_jdep_list): Use xmalloc. Removed allocation error message.
17615         (obtain_incomplete_type): Fixed leading comment. Broadened
17616         incoming argument meaning.
17617         (register_incomplete_type): Use xmalloc. Removed allocation error
17618         message.
17619         (safe_layout_class): Fixed leading comment.
17620         (jdep_resolve_class): Reversed if statement condition and switch
17621         if and else bodies.
17622         (resolve_and_layout): Fixed leading comment. Broadened incoming
17623         argument meaning.
17624         (complete_class_report_errors): New local variable name, for
17625         clarity. purify_type_name used for all error cases.
17626         (java_get_real_method_name): Stricter check on constructors.
17627         (java_check_regular_methods): Reverse methods list only if not
17628         already laid out. Layout artificial constructor.
17629         (java_check_methods): Deleted.
17630         (source_start_java_method): Obtain incomplete type for patchable
17631         method arguments.
17632         (java_layout_classes): Fixed leading comment. Use
17633         LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
17634         statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
17635         before returning. Fixed comments.
17636         (java_expand_classes): Check for errors up front.
17637         (patch_method_invocation): Class to search is resolved and laid
17638         out.
17639
17640 1998-11-24  Per Bothner  <bothner@cygnus.com>
17641
17642         * expr.c (java_lang_expand_expr):  Add missing emit_queue.
17643
17644         * javaop.h (int8):  Removed - not used.
17645         (jbyte):  Redefine portably with correct signedness.
17646
17647         * jcf-write.c (generate_bytecode_insns):  Don't free sw_state.cases.
17648
17649         * jcf-write.c (generate_bytecode_insns):  Fix typo
17650         OPCODE_getstatic to OPCODE_getfield.
17651
17652         * java-tree.def (CASE_EXPR, DEFAULT_EXPR):  Kind is 'x', not '1'.
17653         * parse.y (java_complete_tree):  For CASE_EXPR and DEFAULT_EXPR,
17654         set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
17655
17656 1998-11-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17657
17658         * jcf-parse.c (jcf_parse_source): Function returned type is
17659         void. Added prototype.
17660         (jcf_parse): Function returned type is void.
17661         (yyparse): Remove call to fclose on the last parsed file.
17662
17663         * java-tree.h (jcf_parse): Changed jcf_parse prototype.
17664
17665 1998-11-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17666
17667         * class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
17668         (layout_class): Cope with methods featuring WFL in decl names.
17669         * decl.c (unqualified_object_id_node): New global variable,
17670         initialized.
17671         (build_decl_no_layout): Removed.
17672         * expr.c (build_primtype_type_ref): Handle Double.
17673         (java_lang_expand_expr): Fixed indentations.
17674         * java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted.
17675         (flag_wall, flag_redundant, flag_not_overriding,
17676         flag_static_local_jdk1_1, unqualified_object_id_node): Global
17677         variable declarations.
17678         (build_decl_no_layout): Removed prototype.
17679         (java_get_real_method_name): Added prototype.
17680         (IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P.
17681         (java_parse_abort_on_error): Macro now just returns.
17682         * jcf-parse.c (jcf_parse_source): Check fclose returned
17683         value. Call emit_register_classes if java_report_errors returns
17684         zero.
17685         * lanc.c (flag_wall, flag_redundant, flag_not_overriding,
17686         flag_static_local_jdk1_1): New integer flags.
17687         (lang_decode_option): New flags set here.
17688         * parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros.
17689         (OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to
17690         the flag_redundant variable.
17691         (SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object
17692         when parsing java.lang.Object class.
17693         (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal
17694         NULL_TREE to build.
17695         (resolve_qualified_expression_name): Fixed indentation.
17696         (patch_array_ref): Changed prototype.
17697         (not_initialized_as_it_should_p): Prototype removed.
17698         (java_report_errors): Added function prototype.
17699         * parse.y (formal_parameter:): Changed error message for not yet
17700         supported final parameters.
17701         (class_type_list:): Set both PURPOSE and VALUE of created
17702         TREE_LIST to be class_type.
17703         (primary_no_new_array:): Handle class literals on primitive types.
17704         (parse_warning_context): Reinstalled correct force_error and
17705         do_warning flags setups.
17706         (java_report_errors): Changed prototype. Return java_error_count
17707         value.
17708         (variable_redefinition_error): Consider treating variable type as
17709         a fake pointer.
17710         (create_interface): Warn about redundant abstract modifier if
17711         flag_redundant is set. Changed error message.
17712         (lookup_field_wrapper): Save/restore globals before/after looking
17713         up field.
17714         (duplicate_declaration_error_p): Consider treating declaration
17715         type as a fake pointer.
17716         (register_fields): Extract real type from dependency node. Check
17717         for duplicate field declaration after type adjustment. Use
17718         DECL_INITIAL to store static final initialized values.
17719         (method_header): Extract real function type from dependency node.
17720         (check_abstract_method_header): Use GET_METHOD_NAME.
17721         (obtain_incomplete_type): Layout fake pointer type.
17722         (safe_layout_class): Don't try to check for methods before layout.
17723         (java_complete_class): Don't check for correct throws clause
17724         elements inheritance here.
17725         (resolve_and_layout): Broadened name parameter meaning.
17726         (reset_method_name): Use GET_METHOD_NAME.
17727         (java_get_real_method_name): New function.
17728         (java_check_regular_methods): Don't check methods in
17729         java.lang.Object.  Verify lineage of throws clause elements. Use
17730         flag_no_overriding in warning report.
17731         (check_throws_clauses): Don't check if class was from
17732         bytecode. Use IS_UNCHECKED_EXCEPTION_P macro.
17733         (java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag.
17734         (declare_local_variables): Use flag_static_local_jdk1_1 to report
17735         warning on unsupported final local variables. Use build_decl
17736         instead of build_decl_no_layout. Get real local variable type from
17737         dependency node.
17738         (source_start_java_method): Get real parameter type from
17739         dependency node. Call build_decl instead of build_decl_no_layout.
17740         (java_layout_classes): Reverse tree and layout type and class as
17741         required. Mark class as loaded when done.
17742         (resolve_field_access): Fixed indentation. Restricted condition
17743         leading to static field access code generation. Set field_type
17744         decl's TREE_TYPE if QUAL_DECL_TYPE not available.
17745         (resolve_qualified_expression_name): Initialize type_found to
17746         null. Handle static field resolved during qualification. Fixed
17747         layout on non primitive field decl types.
17748         (not_accessible_p): Fixed typo in comment.
17749         (patch_method_invocation): Resolve and layout class to search from
17750         type.
17751         (lookup_method_invoke): Keep integer constant 0 as is. Resolve and
17752         layout non primitive type, if necessary. Make method node only to
17753         report errors.
17754         (find_applicable_accessible_methods_list): Consider WFL'ed method
17755         decl names. Fixed indentation.
17756         (argument_types_convertible): Resolve and layout target type if
17757         necessary.
17758         (java_complete_tree): Fixed indentation problems. Rewrote
17759         CALL_EXPR thrown exceptions check. Re-installed further processing
17760         of the assignment in certain cases.
17761         (patch_assignment): Call maybe_build_primttype_type_ref to perform
17762         inlining on class literals.
17763         (valid_builtin_assignconv_identity_widening_p): Cope with constant
17764         0 literal.
17765         (valid_method_invocation_conversion_p): Likewise.
17766         (patch_string): Temporary disable forbidden use of `this' in
17767         explicit constructor invocations when doing string concatenation
17768         within their scope.
17769         (patch_unaryop): Added comment. Reinstalled code to disable
17770         further check on assignment operation with cast expression RHS.
17771         (patch_switch_statement): Fixed indentation.
17772         (build_try_statement): Call build_decl instead of
17773         build_decl_no_layout.
17774         (patch_synchronized_statement): Likewise.
17775         (patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of
17776         IS_UNCHECKED_EXPRESSION_P.
17777         (check_thrown_exceptions_do): Changed leading comment. Resolve and
17778         layout argument exception type.
17779         (purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
17780         of IS_UNCHECKED_EXPRESSION_P.
17781
17782 1998-11-18  Anthony Green  <green@cygnus.com>
17783
17784         * jcf-parse.c (yyparse): Open class file in binary mode.
17785
17786 1998-11-15  Per Bothner  <bothner@cygnus.com>
17787
17788         * jvgenmain.c:  Need to #include "gansidecl.h" (to get PROTO).
17789
17790         * jcf-write.c (perform_relocations):  Move check out one loop.
17791
17792 1998-11-15  Anthony Green  <green@hoser.cygnus.com>
17793
17794         * Make-lang.in: Fix reference to srcdir.
17795         * jv-scan.c: Add missing xmalloc prototype.
17796         * jvgenmain.c: Ditto.
17797
17798 1998-11-15  Per Bothner  <bothner@cygnus.com>
17799
17800         * decl.c (error_mark_node), java-tree.h:  New global.
17801         * parse.y:  Use empty_stmt_node instead of size_zero_node.
17802         (build_if_else_statement):  If missing else, use empty_stmt_node.
17803
17804         * parse.y (not_initialized_as_it_should_p):  Removed, with its callers.
17805         (java_complete_expand_method):  Complain if return is missing.
17806         (java_check_regular_methods):  Comment out incorrect error check.
17807         (not_accessible_p):  Fix incorrect handling of protected methods.
17808         (patch_method_invocation):  Pass correct context to not_accessible_p.
17809         (find_applicable_accessible_methods_list):  Likewise.
17810         (qualify_ambiguous_name):  If ARRAY_REF, it's an expression name.
17811         (java_complete_tree):  For CASE_EXPR and DEFAULT_EXPR, set
17812         TREE_TYPE (to void_type_node);  otherwise expand_expr crashes.
17813         (patch_if_else_statement):  Fix setting of CAN_COMPLETE_NORMALLY.
17814
17815         * jcf-write.c (CHECK_OP, CHECK_PUT):  Add some error checking.
17816         (push_int_const):  Remove reundant NOTE_PUSH.
17817         (generate_bytecode_insns - case STRING_CST):  Do NOTE_PUSH.
17818         (- case SWITCH_EXPR):  Fix code generation bug.
17819         (- case PREDECREMENT_EXPR etc):  Remove redundant NOTE_PUSH.
17820         (generate_classfile):  More robust for abstract methods.
17821
17822 1998-11-15  Anthony Green  <green@cygnus.com>
17823
17824         * Makefile.in: jv-scan and jvgenmain all require libiberty.
17825         * Make-lang.in: Ditto.
17826
17827         * jv-scan.c: Remove xmalloc and xstrdup definitions.
17828         * jvgenmain: Ditto.
17829
17830 1998-11-15  Per Bothner  <bothner@cygnus.com>
17831
17832         * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE):  New macro.
17833
17834         * jcf-io.c (find_class):  Simpler/cleaner structure fixes a bug.
17835
17836 1998-11-14  Per Bothner  <bothner@cygnus.com>
17837
17838         Allow uses of interface types to verify.  This is not really
17839         type-safe, but it matches what Sun does, and is OK as long as
17840         there are appropriate run-time checks.
17841         * verify.c (merge_types):  If merging two interface types,
17842         just set the result to java.lang.Object.
17843         * expr.c (pop_type):  Any interface is matches by java.lang.Object.
17844
17845 1998-11-13  Tom Tromey  <tromey@cygnus.com>
17846
17847         * gjavah.c (main): Handle --output-class-directory argument.
17848         * jvspec.c (lang_specific_driver): Translate `-d' into
17849         -foutput-class-dir.
17850         * jcf.h (jcf_write_base_directory): Declare.
17851         * lang.c (lang_decode_option): Recognize -foutput-class-dir.
17852         * lang-options.h: Mention -foutput-class-dir.
17853         * jcf-write.c (jcf_write_base_directory): New global.
17854         (make_class_file_name): Put generated .class file into `-d'
17855         directory, or into source directory if -d not given.  Function now
17856         static.
17857         (write_classfile): Free class file name.  Handle case where class
17858         file name is NULL.
17859         (DIR_SEPARATOR): New macro.
17860         Include <sys/stat.h>
17861
17862         * Makefile.in (prefix): New macro.
17863
17864 1998-11-12  Per Bothner  <bothner@cygnus.com>
17865
17866         * parse.y (patch_invoke):  Do less if flag_emit_class_files.
17867         * expr.c (build_known_method_ref):  Don't check flag_emit_class_files
17868         here (done in patch_invoke instead).
17869         (case_identity):  Moved here from parse.y.
17870
17871         * java-tree.h (CAN_COMPLETE_NORMALLY):  New macro.
17872         * parse.y (java_complete_tree etc):  Maybe set CAN_COMPLETE_NORMALLY.
17873         * parse.y (java_complete_tree):  Re-order COMPOUND_EXPR in BLOCK
17874         so they can be efficiently scanned without recursion.
17875         Error it ! CAN_COMPLETE_NORMALLY first part of COMPOUND_EXPR.
17876         * expr.c (java_lang_expand_expr):  Expand statements of COMPOUND_EXPR
17877         in BLOCK iteratively, rather than recursively.
17878
17879         * parse.y (do_unary_numeric_promotion):  New function.
17880         (patch_unaryop, patch_binop, patch_array_ref):  Use it.
17881
17882         * parse.y (patch_newarray):  Various fixes.
17883
17884         Re-do handling of switch statements (for proper block scoping).
17885         * parse.y:  Add just a single block for the enture switch block,
17886         but don't create any "case blocks".
17887         (group_of_labels):  Rmeoved unneeded non-terminal.
17888         CASE_EXPR and DEFAULT_EXPR are added to current block.
17889         * expr.c (java_lang_expand_expr):  Inline SWITCH_EXPR here.
17890         Now also need to handle CASE_EXPR and DEFAULT_EXPR.
17891         * java-tree.h (SWITCH_HAS_DEFAULT):  New macro.
17892         * parse.y (wfl_operator, print_int_node): Make non-static.
17893         (java_complete_tree):  CASE_EXPR and DEFAULT_EXPR are now processed
17894         as part of recursive scan of block.
17895         (java_expand_switch ):  Removed - inlined into java_lang_expand_expr.
17896         (patch_switch_statement):  Most tests move dinto java_complete_tree.
17897
17898         * parse.y:  Make various production be non-typed (void).
17899         * parse.y (parse_error):  Merged into issue_warning_error_from_context.
17900         * parse.y (add_stmt_to_compound):  Don't create/change extra node.
17901         (patch_method_invocation_stmt):  Renamed to patch_method_invocation.
17902
17903         * jcf-write.c (struct jcf_handler):  New type.
17904         (struct jcf_switch_state):  New type.
17905         (SWITCH_ALIGN_RELOC, BLOCK_START_RELOC):  New relocation kinds.
17906         (alloc_handler, emit_unop, emit_reloc):  New functions.
17907         (adjust_typed_op):  Add extra parameter ("max type" offset).
17908         (emit_switch_reloc, emit_case-reloc):  New function.
17909         (generate_bytecode_conditional):  Handle REAL_TYPE comparisons.
17910         (generate_bytecode_insns):  Support REAL_CST, switch statements,
17911         exception handling, method calls, object/array creation, and more.
17912
17913         * class.c:  Remove some unused variables.
17914         * constants.c (find_string_constant):  New function.
17915         (count_constant_pool_bytes):  Fix to correctly handle wide constants.
17916         * decl.c (complete_start_java_method):  Don't _Jv_InitClass
17917         if flag_emit_class_files.
17918
17919 1998-11-12  Tom Tromey  <tromey@cygnus.com>
17920
17921         * jcf-io.c (find_class): Added explanatory comment.
17922
17923         * jcf-path.c (add_entry): Look for `.zip' at end of filename.  Add
17924         trailing slash to `.zip' entries.
17925
17926         * jvspec.c (lang_specific_driver): Correctly handle case where
17927         GC_NAME not defined.
17928
17929 1998-11-11  Tom Tromey  <tromey@cygnus.com>
17930
17931         * jvspec.c (GC_NAME): New define.
17932         (lang_specific_driver): Use GC_NAME.  Add GC_NAME to command line
17933         if required.
17934         * Make-lang.in (jvspec.o): Define WITH_GC_<name>.
17935
17936 1998-11-11  Per Bothner  <bothner@cygnus.com>
17937
17938         * jcf-dump.c (TABLE_SWITCH):  Fix typos.
17939
17940 1998-11-11  Tom Tromey  <tromey@cygnus.com>
17941
17942         * jcf-dump.c (main): Correctly recognize `--'-style long options.
17943
17944 1998-11-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17945
17946         * class.c (is_compiled_class): Call safe_layout_class for class
17947         compiled from source.
17948         * conver.h (convert_to_integer, convert_to_real,
17949         convert_to_pointer): Added prototypes.
17950         * decl.c (init_decl_processing): Non longer push the decls of
17951         `methodtable', `constants', `Class', `Field', `dispatchTable'
17952         `jexception' and `Method'.
17953         * expr.c (build_invokeinterface): New function.
17954         (expand_invoke): static variable CLASS_IDENT now in
17955         build_invokeinterface. Use build_invokeinterface.
17956         (expand_java_field_op): Moved code to inline
17957         java.lang.PRIMTYPE.TYPE into a function.
17958         (build_primtype_type_ref): New function.
17959         * java-tree.def (INSTANCEOF_EXPR): New tree code.
17960         * java-tree.h (CLASS_METHOD_CHECKED_P, METHOD_DEPRECATED,
17961         FIELD_DEPRECATED, CLASS_DEPRECATED): New flag macros.
17962         (DECL_CONSTRUCTOR_P): Fixed typo in comment.
17963         (DECL_LOCAL_STATIC_VALUE): New macro.
17964         (build_invokeinterface, build_primtype_type_ref): New function
17965         prototypes.
17966         (java_parse_abort_on_error): Macro rewritten.
17967         * jcf-parse.c (current_method): Add comment to declaration.
17968         (parse_zip_file_entries, process_zip_dir, void parse_source_file):
17969         Function prototypes fixed.
17970         (jcf_parse_source): push/pop parser context. save/restore global.
17971         (parse_source_file): Fixed leading comment. Now take a
17972         IDENTIFIER_NODE as an argument. Doesn't check methods, layout
17973         classes and pop the parser context anymore.
17974         (yyparse): Push parser context, save globals, parse the source
17975         file, restore globals and pop the parser context when processing a
17976         source file.
17977         * jcf.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG define.
17978         * lex.c (java_parse_doc_section): New function.
17979         (java_lex): Call java_parse_doc_section when appropriate. Build an
17980         operator around INSTANCEOF_TK.
17981         * lex.h (java_lineterminator, java_sprint_unicode,
17982         java_unicode_2_utf8, java_lex_error, java_store_unicode):
17983         Prototypes rewritten.
17984         (java_parse_escape_sequence, java_letter_or_digit_p,
17985         java_parse_doc_section, java_parse_end_comment, java_get_unicode,
17986         java_read_unicode, java_store_unicode, java_read_char,
17987         java_allocate_new_line, java_unget_unicode, java_sneak_unicode):
17988         Added function prototypes.
17989         * parse.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG
17990         define.
17991         (JNULLP_TYPE_P, CHECK_METHODS, CHECK_DEPRECATED, REGISTER_IMPORT):
17992         New macros
17993         (struct parser_ctxt): New fields: deprecated,
17994         current_parsed_class_un, gclass_list.
17995         (fix_method_argument_names, issue_warning_error_from_context,
17996         resolve_package, lookup_package_type): New function prototypes.
17997         (resolve_expression_name): Fixed function prototype.
17998         (find_applicable_accessible_methods_list): Fixed indentation, added
17999         extra argument in prototype.
18000         (check_final_assignment, build_null_of_type, check_deprecation,
18001         check_method_redefinition, reset_method_name,
18002         java_check_regular_methods, java_check_abstract_methods,
18003         maybe_build_primttype_type_ref): New function prototype.
18004         * parse.y (conver.h): Include.
18005         (INSTANCEOF_TK): Tagged <operator>.
18006         (single_type_import_declaration): Use REGISTER_IMPORT macro.
18007         (relational_expression:): Build binop for instanceof.
18008         (java_push_parser_context): Remember ctxp->gclass_list across
18009         contexts.
18010         (java_pop_parser_context): Simply return if no context
18011         exists. Remember gclass_list across contexts.
18012         (issue_warning_error_from_context): New function.
18013         (parse_error_context): Don't setup ctxp->elc here. Call
18014         issue_warning_error_from_context instead.
18015         (parse_warning_context): Likewise.
18016         (maybe_create_class_interface_decl): Removed DECL_ARTIFICIAL
18017         setup. Link new class/interface to ctxp->gclass_list.
18018         (add_superinterfaces): Register interface as incomplete if not
18019         loaded.
18020         (create_class): Remember class unqualified name in
18021         ctxp->current_parsed_class_un. Check class deprecation.
18022         (register_fields): Check field deprecation. Remember static final
18023         field value in DECL_LOCAL_STATIC_VALUE. Changed comment in part
18024         processing INIT.
18025         (method_header): New local variable ORIG_ARG. Use unqualified
18026         current class name for check on constructor errors. Promote return
18027         type if of record type. Argument list fix moved in
18028         fix_method_argument_names, called here. Check method deprecation.
18029         (fix_method_argument_names): New function.
18030         (method_declarator): Promote record typed arguments.
18031         (safe_layout_class): Check class methods before layout.
18032         (java_complete_class): Compute field layout when patched.
18033         (do_resolve_class): Try to load class after having it renamed
18034         after the package name.
18035         (get_printable_method_name): Use DECL_CONTEXT.
18036         (reset_method_name): New function.
18037         (check_method_redefinition): Use reset_method_name.
18038         (java_check_regular_methods): New local variable
18039         SAVED_FOUND_WFL. Temporarily reinstall overriding/hiding method
18040         names for error report. Check for compile-time error when method
18041         found has default (package) access.
18042         (java_check_abstract_methods): Now takes an interface DECL node as
18043         an argument. Also reinstall real name on unchecked
18044         overriding/hiding methods for error report.
18045         (java_check_methods): Fixed leading comment. Get classes to verify
18046         from ctxp->gclass_list. Use CHECK_METHODS macro and set
18047         CLASS_METHOD_CHECKED_P on class verification.
18048         (lookup_java_method2): Get real method name if necessary.
18049         (find_in_imports): Don't check package class access here.
18050         (resolve_package, lookup_package_type): New functions.
18051         (java_layout_classes): Fixed leading comment. Take classes to be
18052         laid out from ctxp->gclass_list.
18053         (java_complete_expand_methods): Don't expand native and abstract
18054         methods.
18055         (java_expand_classes): New function.
18056         (resolve_expression_name): Use additional argument ORIG.  Retrieve
18057         values of static final field of primitive types.
18058         (resolve_field_access): Handles static final field of promotive
18059         type.
18060         (resolve_qualified_expression_name): Handle STRING_CST as
18061         primaries and package name resolution. Check deprecation on found
18062         decls. Set where_found and type_found on non static field resolved
18063         during qualification. Layout non primitive field decl types.
18064         (check_deprecation): New function.
18065         (maybe_access_field): Simplified.
18066         (patch_method_invocation_stmt): Local variable CLASS_TYPE
18067         removed. Reverse method's argument when primary is a type. Don't
18068         use CLASS_TYPE to report problems, use IDENTIFIER_WFL
18069         instead. Include abstract class in the list of class searchable
18070         for constructors. Use DECL_CONTEXT of found method for access
18071         checks. Check method deprecation.
18072         (patch_invoke): Pay extra care to NEW_CLASS_EXPR type call when
18073         converting arguments. Handle INVOKE_INTERFACE.
18074         (lookup_method_invoke): Search constructor using existing
18075         infrastructure (don't rely on lookup_java_constructor anymore).
18076         (find_applicable_accessible_methods_list): Extra argument flag
18077         LC. Now include constructor in the search.
18078         (qualify_ambiguous_name): Conditional expression are primaries.
18079         (not_initialized_as_it_should_p): static final are always
18080         initialized.
18081         (java_complete_tree): Pass extra NULL argument to
18082         resolve_expression_name. Stricter test to carry on patching
18083         assignments. New case for INSTANCEOF_EXPR.
18084         (complete_function_arguments): Inline PRIMTYPE.TYPE read access.
18085         (check_final_assignment, maybe_build_primttype_type_ref): New
18086         functions.
18087         (patch_assignment): Detect resolved static finals and carry normal
18088         assignment error check on them. Inline PRIMTYPE.TYPE read access.
18089         (try_builtin_assignconv): Access constant 0 on all primitive
18090         types.
18091         (valid_builtin_assignconv_identity_widening_p): Accept identical
18092         types. Accept all promoted type on int type.
18093         (valid_ref_assignconv_cast_p): Accept a null pointer to be
18094         assigned to a reference.
18095         (valid_method_invocation_conversion_p): Accept to check null
18096         pointers.
18097         (build_binop): Merge declaration and initialization of local
18098         variable BINOP.
18099         (patch_binop): New case for INSTANCEOF_EXPR. NE_EXPR to accept all
18100         numeric types. Improved validity test for qualify operators on
18101         references.
18102         (patch_unaryop): Broadened rejection test for PREDECREMENT_EXPR
18103         and PREINCREMENT_EXPR. Also detect resolved static finals of a
18104         primitive type and issue the appropriate error message.
18105         (resolve_type_during_patch): Mark class loaded when resolved.
18106         (patch_cast): Allow null to be cased to reference types.
18107         (build_null_of_type): New function.
18108         (patch_array_ref): Handle array on references correctly.
18109         (patch_return): Removed unused local variable MODIFY. Force
18110         boolean to be returned as integers. Allows null to be returned by
18111         a function returning a reference.
18112         * typeck.c (convert_to_integer, convert_to_real,
18113         convert_to_pointer): Prototypes moved to convert.h
18114         (lookup_argument_method): Use method real name, if necessary.
18115
18116 1998-10-30  Tom Tromey  <tromey@cygnus.com>
18117
18118         * class.c (build_class_ref): Changed name of primitive classes to
18119         start with `_Jv_'.
18120
18121         * class.c (make_class_data): Renamed fields: nmethods to
18122         method_count, method_count to dtable_method_count.  Always set
18123         `state' field to 0.
18124         * decl.c (init_decl_processing): Likewise.
18125
18126 1998-10-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18127
18128         * class.c (layout_class): Don't mangle <finit>, produce
18129         __finit<class> instead. Don't verify artificial methods.
18130         * decl.c (finit_identifier_node): New declared global.
18131         (init_decl_processing): finit_identifier_node initialized.
18132         * java-tree.def (CONDITIONAL_EXPR): New Java tree code.
18133         * java-tree.h (finit_identifier_node): Declared as extern.
18134         (struct lang_decl): New field called_constructor.
18135         (DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor.
18136         (CLASS_HAS_FINIT_P): New macro.
18137         (CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks
18138         explicit constructor invocation.
18139         (CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P,
18140         CALL_SUPER_CONSTRUCTOR_P): New macros.
18141         (write_classfile): Added prototype.
18142         * jcf-parse.c (jcf_parse_source): Parse and remember for
18143         generation if the file was seen on the command line.
18144         (parse_source_file): Don't write the class file here.
18145         (yyparse): Loop on files rewritten. Set current_jcf.
18146         (parse_zip_file_entries): Parse class file only if it was found.
18147         * lang.c (init_parse): Don't open command line provided filename
18148         here.
18149         (lang_parse): Don't set main_jcf anymore.
18150         * parse.h (ABSTRAC_CHECK): Capitalized arguments.
18151         (JCONSTRUCTOR_CHECK): New macro.
18152         (JBSC_TYPE_P): New macro.
18153         (IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment.
18154         (COMPLETE_CHECK_OP_2): New macro.
18155         (struct parse_ctxt): New field explicit_constructor_p.
18156         (check_class_interface_creation): Fixed prototype indentation.
18157         (patch_method_invocation_stmt): Prototype reflects added argument.
18158         (patch_invoke): Likewise.
18159         (complete_method_declaration, build_super_invocation,
18160         verify_constructor_circularity,
18161         build_this_super_qualified_invocation, get_printable_method_name,
18162         patch_conditional_expr, maybe_generate_finit, fix_constructors,
18163         verify_constructor_super, create_artificial_method,
18164         start_artificial_method_body, end_artificial_method_body,
18165         generate_field_initialization_code): New function prototypes.
18166         * parse.y: Fixed leading comment
18167         (constructor_header:, constructor_body:, block_end:): Rules tagged
18168         <node>.
18169         (type_declaration:): Call maybe_generate_finit.
18170         (method_declaration:): Action for method_body: placed in new
18171         function complete_method_declaration, called here.
18172         (constructor_declaration:): Defined actions. Removed leading
18173         FIXME.
18174         (constructor_header:): New rule with action.
18175         (constructor_body:): Rule rewritten using block_begin: and
18176         block_end:. Defined actions.
18177         (constructor_declarator:, explicit_constructor_invocation:):
18178         Defined actions.
18179         (block:): Use new rules block_begin: block_end:.
18180         (block_begin:, block_end:): New rules and actions.
18181         (block_statements:): Fixed error message for explicit
18182         constructors.
18183         (method_invocation:): Call build_this_super_qualified_invocation
18184         if primary is `this' or `super' was seen.
18185         (conditional_expression:): Action defined.
18186         (extra_ctxp_pushed_p): New static global flag.
18187         (java_parser_context_save_global): Create parser context if
18188         necessary. Use extra_ctxp_pushed_p to remember it.
18189         (java_parser_context_restore_global): Pop extra parser context if
18190         one exists.
18191         (build_array_from_name): Array on primitive types are marked
18192         loaded.
18193         (register_fields): Restore new name in field initializer
18194         expression if type was altered. Non static fields initialized upon
18195         declaration marked initialized.
18196         (maybe_generate_finit): New function.
18197         (maybe_generate_clinit): Use create_artificial_method,
18198         start_artificial_method_body, end_artificial_method_body. Generate
18199         debug info for enclosed initialization statements.
18200         (method_header): Fixed leading comment. Check constructor
18201         flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P
18202         accordingly.
18203         (complete_method_declaration, constructor_circularity_msg,
18204         verify_constructor_circularity): New functions.
18205         (get_printable_method_name): New function.
18206         (check_method_redefinition): Don't rename <finit> methods. Fix
18207         declared constructor names. Error message for
18208         constructors modified.
18209         (java_check_regular_methods): Local variable seen_constructor
18210         renamed saw_constructor. Skip verification on constructors. Create
18211         default constructor with create_artificial_method.
18212         (java_check_methods): Removed unnecessary empty line.
18213         (create_artificial_method, start_artificial_method_body,
18214         end_artificial_method_body): New functions.
18215         (java_layout_classes): Changed leading comment. Reverse fields
18216         list if necessary. Always layout java.lang.Object if being
18217         defined.
18218         (java_complete_expand_methods): Verify constructor circularity.
18219         (java_complete_expand_method): Call fix_constructor on
18220         constructors.  Local variable no_ac_found removed. Restore
18221         bindings if method body expansion failed.
18222         (fix_constructors, verify_constructor_super,
18223         generate_field_initialization_code): New function.
18224         (java_expand_classes): Fixed leading comment. Write class file
18225         here.
18226         (resolve_expression_name): Check for illegal instance variable
18227         usage within the argument scope of an explicit constructor
18228         invocation.
18229         (resolve_qualified_expression_name): Pass extra from_super flag
18230         when invoking patch_method_invocation_stmt. New case for
18231         conditional expression when used as a primary. Check for error
18232         when acquiring super.
18233         (patch_method_invocation_stmt): Added extra argument super. New
18234         local variable is_static_flag. Set class_to_search according to
18235         the nature of the constructor invocation. Don't add `this'
18236         argument when expanding NEW_CLASS_EXPR. Check for illegal method
18237         invocation within the argument scope of explicit constructor
18238         invocation. Set is_static according to is_static_flag. Provide
18239         extra `super' argument to patch_invoke invocation.
18240         (patch_invoke): New argument from_super. Loop on arguments
18241         indentation fixed. Pass from_super to invocation_mode. New switch
18242         case INVOKE_SUPER. Fixed error message in switch default case.
18243         Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node
18244         value.
18245         (invocation_mode): Return INVOKE_SUPER mode when appropriate.
18246         (lookup_method_invoke): Fixed prototypes in candidates list. Error
18247         message takes constructors into account.
18248         (find_applicable_accessible_methods_list): Fixed indentation.
18249         (qualify_ambiguous_name): Take explicit constructor invocation
18250         into account. Deal with a conditional expression as a primary to
18251         a method call.
18252         (java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR
18253         case. Added extra argument to patch_method_invocation_stmt.
18254         Register calls made to explicit constructor `this'. Don't call
18255         save_expr in ARRAY_REF case when emitting class files. Check for
18256         illegal use of this when expanding explicit constructor invocation
18257         arguments.
18258         (complete_function_arguments): Set and reset parser context
18259         explicit_constructor_p field value when appropriate.
18260         (build_super_invocation, build_this_super_qualified_invocation):
18261         New functions.
18262         (patch_assignment): Fixed typo.
18263         (patch_unaryop): Check on final fields occurs only when a decl
18264         exits.
18265         (patch_return): Take constructors into account.
18266         (patch_conditional_expr): New function.
18267         * typeck.c (build_java_signature): Removed unnecessary empty line.
18268
18269 1998-10-28  Jeffrey A Law  (law@cygnus.com)
18270
18271         * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
18272
18273 1998-10-28  Tom Tromey  <tromey@cygnus.com>
18274
18275         * decl.c (init_decl_processing): Renamed fields.
18276         * class.c (make_class_data): Renamed bfsize, nfields, nsfields,
18277         interface_len, msize fields.
18278
18279         * class.c (make_class_data): Removed subclass_head and
18280         subclass_next fields.
18281         * decl.c (init_decl_processing): Removed subclass_head and
18282         subclass_next fields.
18283
18284 1998-10-28  Jeffrey A Law  (law@cygnus.com)
18285
18286         * jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
18287         * mangle.c (emit_unicode_mangled_name): Similarly.
18288
18289 1998-10-26  Nick Clifton  <nickc@cygnus.com>
18290
18291         * jcf-parse.c (get_constant): Place braces around code to compute
18292         'd' when REAL_ARITHMETIC is not defined.
18293
18294 1998-10-25  H.J. Lu  (hjl@gnu.org)
18295
18296         * Make-lang.in (jv-scan$(exeext)): Add stamp-objlist to
18297         dependency.
18298
18299 1998-10-23  Tom Tromey  <tromey@cygnus.com>
18300
18301         * lang-specs.h: `.zip' files are input to jc1.
18302
18303 1998-10-22  Per Bothner  <bothner@cygnus.com>
18304
18305         * jvspecs.c:  Add (but don't enable) support for combining multiple
18306         .class and .java input filenames to a single jc1 invocation.
18307         Add support for -C flag (copile to .class files).
18308         Translate -classpath and -CLASSPATH arguments.
18309         * lang-specs.h:  Don't set %2 spec.
18310
18311 1998-10-22  Tom Tromey  <tromey@cygnus.com>
18312
18313         * jcf-path.c (add_entry): Don't add trailing separator if entry is
18314         a .zip file.
18315         (add_path): Don't add trailing separator to non-empty path
18316         elements.
18317
18318         * lang.c (lang_decode_option): Check for -fclasspath and
18319         -fCLASSPATH before examining other `-f' options.
18320
18321         * java-tree.h (finalize_identifier_node): Don't declare.
18322         * class.c (make_class_data): Don't push "final" field.
18323         * decl.c (init_decl_processing): Don't push "final" field.
18324         (finalize_identifier_node): Removed.
18325         (init_decl_processing): Don't set finalize_identifier_node.
18326
18327         * config-lang.in (stagestuff): Added jcf-dump and jv-scan.
18328
18329 1998-10-11  Anthony Green  <green@cygnus.com>
18330
18331         * Make-lang.in (java): Depend on jcf-dump and jv-scan.
18332         (JV_SCAN_SOURCES): New macro.
18333         (JCF_DUMP_SOURCES): Likewise.
18334         (jcf-dump$(exeext)): New target.
18335         (jv-scan$(exeext)): New target.
18336
18337 1998-10-22  Tom Tromey  <tromey@cygnus.com>
18338
18339         * Makefile.in (LEX): Removed.
18340         (LEXFLAGS): Likewise.
18341         (SET_BISON): New macro.
18342         (BISON): Removed.
18343         ($(PARSE_C)): Use SET_BISON.  Run bison from srcdir to avoid
18344         spurious diffs in parse.c.
18345         ($(PARSE_SCAN_C)): Likewise.
18346         (PARSE_DIR): New macro.
18347         (PARSE_C): Use it.
18348         (PARSE_SCAN_C): Likewise.
18349         (PARSE_RELDIR): New macro.
18350
18351         * jcf-io.c (saw_java_source): Define here, not in jcf-parse.c.
18352
18353         * jcf-io.c (find_class): Use saw_java_source to determine when to
18354         look for `.java' file.
18355         * jcf-parse.c (saw_java_source): New global.
18356         (yyparse): Set it if `.java' file seen.
18357
18358         * Make-lang.in (JAVA_SRCS): Added jcf-path.c.
18359         (GCJH_SOURCES): Likewise.
18360         * Makefile.in (datadir): New macro.
18361         (libjava_zip): Likewise.
18362         (JAVA_OBJS): Added jcf-path.o.
18363         (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18364         (../gcjh$(exeext)): Likewise.
18365         (jcf-path.o): New target.
18366         * java-tree.h (fix_classpath): Removed decl.
18367         * jcf-parse.c (fix_classpath): Removed.
18368         (load_class): Don't call fix_classpath.
18369         * parse.y (read_import_dir): Don't call fix_classpath.
18370         * lex.h: Don't mention classpath.
18371         * lex.c (java_init_lex): Don't initialize classpath.
18372         * jcf-io.c (classpath): Removed global.
18373         (find_class): Use jcf_path iteration functions.  Correctly search
18374         class path for .java file.
18375         (open_in_zip): New argument `is_system'.
18376         * jcf-dump.c (main): Call jcf_path_init.  Recognize all new
18377         classpath-related options.
18378         * lang.c (lang_decode_option): Handle -fclasspath, -fCLASSPATH,
18379         and -I.
18380         (lang_init): Call jcf_path_init.
18381         * lang-options.h: Mention -I, -fclasspath, and -fCLASSPATH.
18382         * lang-specs.h: Handle -I.  Minor cleanup to -M options.
18383         Correctly put braces around second string in each entry.
18384         * gjavah.c (main): Call jcf_path_init.  Recognize all the new
18385         classpath-related options.
18386         (help): Updated for new options.
18387         * jcf.h: Declare functions from jcf-path.c.  Don't mention
18388         `classpath' global.
18389         * jcf-path.c: New file.
18390
18391         * jcf-depend.c: Include jcf.h.
18392
18393         * jcf-write.c (localvar_alloc): Returns `void'.
18394         (localvar_free): Removed unused variable.
18395
18396         * lang.c (OBJECT_SUFFIX): Define if not already defined.
18397         (init_parse): Use OBJECT_SUFFIX, not ".o".
18398
18399 1998-10-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18400
18401         * class.c (emit_register_classes): Renamed from
18402         emit_register_class.
18403         * java-tree.h (emit_register_classes): Prototype renamed from
18404         emit_register_class.
18405         * jcf-parse.c (yyparse): Call emit_register_classes once before
18406         returning.
18407         * parse.y (java_expand_classes): No longer register classes.
18408
18409 1998-10-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18410
18411         * class.c (is_compiled_class): New local variable
18412         seen_in_zip. Identify classes found in currently compiled source
18413         file(s).
18414         * decl.c (complete_start_java_method): Fixed typo.
18415         * java-tree.h (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P,
18416         HAS_BEEN_ALREADY_PARSED_P, IS_A_COMMAND_LINE_FILENAME_P): New macros.
18417         (CLASS_P): Moved around.
18418         (java_parse_abort_on_error): Macro moved from jcf-parse.c
18419         * jcf-parse.c (java_parse_abort_on_error): Macro moved to
18420         java-tree.h
18421         (jcf_parse_source): Changed leading comment. Removed unnecessary
18422         fclose and CLASS_FROM_SOURCE_P marking.
18423         (parse_source_file): New local variables remember_for_generation
18424         and filename. Mark parsed file name identifier node. Removed block
18425         executed when parse_only was null. Set remember_for_generation.
18426         Use it as an argument to java_pop_parser_context.
18427         (yyparse): New local variables several_files, list, next node and
18428         current_file_list. Split ampersand separated file names into
18429         current_file_list. Iterate through the list and parse accordingly.
18430         * parse.h (java_pop_parser_context): New function prototype.
18431         * parse.y (ctxp_for_generation): New static global variable.
18432         (java_pop_parser_context): New argument generate. Link popped ctxp
18433         to ctxp_for_generation list accordingly.
18434         (java_complete_expand_methods): Fixed indentation.
18435         (java_expand_classes): New function.
18436
18437 1998-10-17  Per Bothner  <bothner@cygnus.com>
18438
18439         * Makefile.in:  Link with libiberty.a instead of memmove.o.
18440
18441 1998-10-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18442
18443         * lex.c (setjmp.h): No longer included.
18444         * lex.h (setjmp.h): Included.
18445         * parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
18446         (duplicate_declaration_error_p): Renamed from
18447         duplicate_declaration_error.
18448         (build_array_from_name): New function prototype.
18449         * parse.y (setjmp.h): No longer included.
18450         (variable_declarator_id): Define action.
18451         (build_array_from_name): New function.
18452         (duplicate_declaration_error_p): Renamed from
18453         duplicate_declaration_error.  Fixed leading comment.
18454         (register_fields): Main `for' loop reorganized. Uses
18455         SET_TYPE_FOR_RESOLUTION and build_array_from_name.
18456         (method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
18457         build_array_from_name.
18458         (resolve_class): Set CLASS_LOADED_P on newly build array dimension
18459         types.
18460         (read_import_dir): Don't try to skip `.' and `..'.
18461         (declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
18462         build_array_from_name. Main `for' loop reorganized.
18463         (resolve_qualified_expression_name): When building access to a
18464         field, use the type where the field was found, not its own type.
18465         (maybe_access_field): Use field DECL_CONTEXT if the type where the
18466         field was found is null.
18467         (qualify_ambiguous_name): Sweep through all successive array
18468         dimensions.
18469
18470 1998-10-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18471
18472         * java-tree.h (pop_labeled_block, lang_printable_name,
18473         maybe_add_interface, set_super_info, get_access_flags_from_decl,
18474         interface_of_p, inherits_from_p, fix_classpath,
18475         complete_start_java_method, emit_handlers, init_outgoing_cpool,
18476         make_class_data, register_class, alloc_name_constant): New
18477         function prototypes.
18478         * lang.c (lang_decode_option): Set argc argument unused. Fixed
18479         indentation. Added cast to remove warning.
18480         (lang_printable_name): Set v argument unused.
18481         (lang_print_error): Added argument to lang_printable_name call.
18482         (java_dummy_print, print_lang_decl, print_lang_type,
18483         print_lang_identifier, lang_print_xnode): All argument marked
18484         unused.
18485         * lex.c (java_unget_unicode): Removed unnecessary argument.
18486         (java_allocate_new_line): Unused local variable is gone.
18487         (java_read_char): Added parenthesis in expressions to remove
18488         warnings.  Added final return statement.
18489         (java_read_unicode): Added parenthesis in expression to remove
18490         warning.
18491         (java_parse_end_comment): Fixed java_unget_unicode invocation.
18492         (java_parse_escape_sequence): Likewise.
18493         (java_lex): Unused local variables are gone. Fixed
18494         java_unget_unicode invocation.
18495         * lex.h (set_float_handler): Prototype added when JC1_LITE not
18496         defined.
18497         * parse.h (ERROR_CANT_CONVERT_TO_BOOLEAN): Fixed
18498         lang_printable_name invocation in macro.
18499         (ERROR_CANT_CONVERT_TO_NUMERIC, ERROR_CAST_NEEDED_TO_INTEGRAL):
18500         Likewise.
18501         (duplicate_declaration_error): Suppressed unused argument in
18502         prototype.
18503         (identical_subpath_p): Function declaration is gone.
18504         (patch_invoke): Suppressed unused argument in prototype.
18505         (patch_cast, build_labeled_block, check_thrown_exceptions):
18506         Likewise.
18507         * parse.y (setjmp.h): Included
18508         (toplev.h): Likewise.
18509         (field_declaration:): Suppressed unused local
18510         (label_decl:): Fixed build_labeled_block invocation.
18511         (java_pop_parser_context): Put extra parenthesis around assignment
18512         in if.
18513         (yyerror): Suppressed unused local variables.
18514         (variable_redefinition_error): Fixed lang_printable_name
18515         invocation.
18516         (create_interface): Suppressed unused local variables.
18517         (create_class): Likewise.
18518         (duplicate_declaration_error): Suppressed unused argument. Fixed
18519         lang_printable_name invocation.
18520         (register_fields): Suppressed unused local variable. Fixed
18521         duplicate_declaration_error invocation.
18522         (method_header): Suppressed unused local variable.
18523         (method_declarator, parser_check_super): Likewise.
18524         (java_complete_class): Suppressed unused local variable. Fixed
18525         fatal error message.
18526         (complete_class_report_errors): Added default: in switch.
18527         (java_check_regular_methods): Fixed lang_printable_name
18528         invocations.
18529         (check_throws_clauses): Likewise.
18530         (java_check_abstract_methods): Suppressed unused local
18531         variable. Fixed lang_printable_name invocation.
18532         (read_import_entry): Added supplemental return statement.
18533         (read_import_dir): Suppressed unused local variables.
18534         (check_pkg_class_access, declare_local_variables): Likewise.
18535         (source_start_java_method): Suppressed unused extern variable
18536         declarations
18537         (expand_start_java_method): Suppressed unused extern and local
18538         variable declarations.
18539         (java_complete_expand_methods): Likewise.
18540         (java_complete_expand_method): Suppressed unused local variables.
18541         (make_qualified_name): Likewise.
18542         (resolve_qualified_expression_name): Added default: in
18543         switch. Fixed lang_printable_name invocation.
18544         (class_instance_creation_expression): Added parenthesis around
18545         expressions.
18546         (patch_method_invocation_stmt): Fixed lang_printable_name and
18547         patch_invoke invocations.
18548         (check_for_static_method_reference): Fixed lang_printable_name
18549         invocation.
18550         (patch_invoke): Suppressed unused arguments and local variables.
18551         (lookup_method_invoke): Suppressed unused local variables.
18552         (qualify_ambiguous_name): Added default: in switch.
18553         (identical_subpath_p): Function removed.
18554         (patch_assignment): Suppressed unused local variables. Suppressed
18555         unnecessary if statement. Fixed lang_printable_name invocations.
18556         (try_builtin_assignconv): Fixed lang_printable_name invocations.
18557         (valid_ref_assignconv_cast_p): Parenthesis around
18558         expression. Suppressed unused local variables.
18559         (build_binop): Suppressed unused local variables. fixed
18560         lang_printable_name invocations.
18561         (string_constant_concatenation): Suppressed unused local
18562         variables.
18563         (patch_unaryop): Fixed lang_printable_name invocation.
18564         (patch_cast): Suppressed unnecessary argument. Fixed
18565         lang_printable_name invocation.
18566         (patch_array_ref): Fixed lang_printable_name invocation.
18567         (patch_newarray, patch_return, patch_if_else_statement): Likewise.
18568         (build_labeled_block): Suppressed unused argument.
18569         (generate_labeled_block): Fixed build_labeled_block invocation.
18570         (build_loop_body): Suppressed unused local variables.
18571         (patch_loop_statement): Likewise.
18572         (patch_exit): Fixed lang_printable_name invocation.
18573         (patch_switch_statement): Likewise.
18574         (case_identity): First argument marked unused.
18575         (patch_try_statement): Fixed lang_printable_name invocations.
18576         (patch_synchronized_statement, patch_throw_statement): Likewise.
18577         (check_thrown_exceptions): Fixed check_thrown_exceptions and
18578         lang_printable_name invocations.
18579         (check_thrown_exceptions_do): Suppressed unused argument.
18580
18581 1998-10-14  Tom Tromey  <tromey@cygnus.com>
18582
18583         * jcf-write.c (write_classfile): Add output class file as target.
18584         * lang-options.h: Added -MD, -MMD, -M, and -MM.
18585         * jcf.h: Added declarations for dependency-tracking functions.
18586         * lang-specs.h: Handle -M, -MM, MD, and -MMD.
18587         * lang.c (lang_decode_option): Recognize -MD and -MMD.
18588         (finish_parse): Call jcf_dependency_write.
18589         (dependency_tracking): New global.
18590         (DEPEND_SET_FILE): New define.
18591         (DEPEND_ENABLE): New define.
18592         (init_parse): Enable dependency tracking if required.
18593         Include "flags.h".
18594         * Makefile.in (JAVA_OBJS): Added jcf-depend.o.
18595         (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18596         (../gcjh$(exeext)): Likewise.
18597         (jcf-depend.o): New target.
18598         * Make-lang.in (JAVA_SRCS): Added jcf-depend.c.
18599         (GCJH_SOURCES): Likewise.
18600         * jcf-io.c (open_class): Call jcf_dependency_add_file.  Added
18601         dep_name argument.
18602         (find_classfile): Added dep_name argument.
18603         (find_class): Compute name of dependency.
18604         (open_in_zip): Call jcf_dependency_add_file.
18605         * gjavah.c (output_file): No longer global.
18606         (usage): Don't mention "gjavah".
18607         (help): Likewise.
18608         (java_no_argument): Likewise.
18609         (version): Likewise.
18610         (main): Recognize and handle -M family of options.
18611         (print_mangled_classname): Return is void.
18612         (process_file): Handle case where output is suppressed.
18613         (HANDLE_END_FIELD): Likewise.
18614         (HANDLE_METHOD): Likewise.
18615         * jcf-depend.c: New file.
18616
18617 1998-10-13  Jeffrey A Law  (law@cygnus.com)
18618
18619         * java-tree.def: Add missing newline at EOF.
18620
18621 1998-10-13  Tom Tromey  <tromey@cygnus.com>
18622
18623         * jcf-dump.c (process_class): Use FATAL_EXIT_CODE, not -1.
18624         (main): Likewise.  Exit with SUCCESS_EXIT_CODE at end of
18625         function.
18626         Include <config.h> and "system.h".
18627         (disassemble_method): Undefine RET to avoid clash with
18628         config/i386/i386.h.
18629
18630 1998-10-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18631
18632         * decl.c (runtime_exception_type_node, error_exception_type_node):
18633         New global variables.
18634         (init_decl_processing): Initialized.
18635         * expr.c (java_lang_expand_expr): Set caught exception type to
18636         null if catch handler argument doesn't exit.
18637         * java-tree.def (SYNCHRONIZED_EXPR, THROW_EXPR): New Java specific
18638         tree codes.
18639         * java-tree.h (runtime_exception_type_node,
18640         error_exception_type_node): Global variables declared.
18641         (DECL_FUNCTION_THROWS): New macro.
18642         (DECL_FUNCTION_BODY): Modified comment.
18643         (DECL_SPECIFIC_COUNT): Likewise.
18644         (struct lang_decl): New field throws_list.
18645         (IS_UNCHECKED_EXPRESSION_P): New macro.
18646         * lex.c (java_lex): Generate location information for THROW_TK.
18647         * parse.h (PUSH_EXCEPTIONS, POP_EXCEPTIONS, IN_TRY_BLOCK_P,
18648         EXCEPTIONS_P): New macros.
18649         (enum jdep_code): New value JDEP_EXCEPTION.
18650         (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT,
18651         BUILD_ASSIGN_EXCEPTION_INFO, BUILD_THROW, SET_WFL_OPERATOR,
18652         PATCH_METHOD_RETURN_ERROR): New macros.
18653         (patch_method_invocation_stmt): Added new argument to prototype.
18654         (patch_synchronized_statement, patch_throw_statement,
18655         check_thrown_exceptions, check_thrown_exceptions_do,
18656         purge_unchecked_exceptions, check_throws_clauses): New function
18657         prototypes.
18658         * parse.y Fixed typo in keyword section.
18659         (throw:): Rule tagged <node>.
18660         (THROW_TK): Keyword tagged <operator>.
18661         (method_header:): Last argument to call to method_header passed
18662         from throws: rule.
18663         (throws:, class_type_list:, throw_statement:,
18664         synchronized_statement:, synchronized:): Defined actions.
18665         (method_header): New local variable current. Register exceptions
18666         from throws clause.
18667         (java_complete_tree): Complete and verify exceptions from throws
18668         clause.
18669         (complete_class_report_errors): Error message on exceptions not
18670         found
18671         (java_check_regular_methods): Fixed typo. Shortcut on private
18672         overriding methods. Changed error message on method
18673         redefinition. Check for throws clause compatibility.
18674         (check_throws_clauses): New function.
18675         (java_check_abstract_methods): Use DECL_NAME for wfl or current
18676         method. Changed error message on method redefinition.
18677         (currently_caught_type_list): New static variable.
18678         (java_complete_expand_methods): Purge unchecked exceptions from
18679         throws clause list. Call PUSH_EXCEPTIONS before walk and
18680         POP_EXCEPTIONS after.
18681         (resolve_qualified_expression_name): Pass new argument as NULL to
18682         patch_method_invocation_stmt.
18683         (patch_method_invocation_stmt): New argument ref_decl. Invoke
18684         PATCH_METHOD_RETURN_ERROR when returning with error. Reverse
18685         argument list when appropriate. Use new argument if non null to
18686         store selected method decl.
18687         (patch_invoke): Convert if necessary args of builtin types before
18688         forming CALL_EXPR. Argument list no longer reversed here.
18689         (invocation_mode): Treat final methods as static methods.
18690         (java_complete_tree): New cases for THROW_EXPR: and
18691         SYNCHRONIZED_EXPR:. Check thrown exceptions when completing
18692         function call.
18693         (complete_function_arguments): No more RECORD_TYPE
18694         conversion. Function parameter nodes no longer saved.
18695         (valid_ref_assignconv_cast_p): Avoid handling null type.
18696         (patch_binop): Fixed null constant reference handling.
18697         (build_try_statement): Use BUILD_ASSIGN_EXCEPTION_INFO and
18698         BUILD_THROW macros.
18699         (patch_try_statement): Fixed comments. Record caught types in
18700         list, push the list, expand try block and pop the list.
18701         (patch_synchronized_statement, patch_throw_statement,
18702         check_thrown_exceptions, check_thrown_exceptions_do,
18703         purge_unchecked_exceptions): New functions.
18704         * typeck.c (lookup_argument_method): Allow WFL in place of method
18705         DECL_NAME during method definition check
18706
18707 1998-10-09  Tom Tromey  <tromey@cygnus.com>
18708
18709         * gjavah.c (decode_signature_piece): New function.
18710         (print_c_decl): Use it.  Added `name_override' argument.
18711         (print_method_info): Use name_override argument to print_c_decl.
18712         (seen_fields): Removed.
18713         (print_field_info): Don't update seen_fields.
18714         (struct method_name): New structure.
18715         (method_name_list): New global.
18716         (print_method_info): Add new method to list of methods.
18717         (name_is_method_p): New function.
18718         (print_field_info): If field name has same name as method, then
18719         change field name.
18720         (process_file): Parse methods before fields.
18721         (field_pass): New global.
18722         (HANDLE_END_FIELD): Take field_pass into account.
18723
18724 1998-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18725
18726         * Makefile.in (keyword.h): Add -L KR-C -F ', 0' flags to gperf.
18727         (keyword.h): Regenerate using gperf 2.7.1 (19981006 egcs).
18728
18729 1998-10-03  Anthony Green  <green@cygnus.com>
18730
18731         * jvspec.c: Fix bug in jvgenmain_spec patch.
18732
18733 1998-10-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18734
18735         * Makefile.in (lang.o:): Install dependency on java-tree.def.
18736         * decl.c (soft_exceptioninfo_call_node): New global variable.
18737         (init_decl_processing): Fixed indentation. soft_badarrayindex_node
18738         takes extra integer argument. soft_exceptioninfo_call_node
18739         initialized.
18740         * except.c (java_set_exception_lang_code): New function
18741         (method_init_exceptions): Called here.
18742         (prepare_eh_table_type): New function.
18743         (expand_end_java_handler): Called here.
18744         * expr.c (build_java_throw_out_of_bounds_exception): Now features
18745         one argument. Modified generation of call to
18746         soft_badarrayindex_node to use new argument.
18747         (build_java_arrayaccess): Pass faulty index value to
18748         build_java_throw_out_of_bounds_exception.
18749         (generate_name): New function.
18750         (java_lang_expand_expr): New local variables node, current,
18751         has_finally_p. Expand TRY_EXPR node.
18752         (process_jvm_instruction): Replace top of the stack with thrown
18753         object reference when entering exception handler.
18754         * java-tree.def (TRY_EXPR, CATCH_EXPR, FINALLY_EXPR): New Java
18755         specific tree codes.
18756         * java-tree.h (soft_exceptioninfo_call_node): Declaration of new
18757         global.
18758         (DECL_SPECIFIC_COUNT): New macro.
18759         (prepare_eh_table_type, java_set_exception_lang_code,
18760         generate_name): New function declarations.
18761         (match_java_method): Declaration deleted.
18762         (FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, CATCH_EXPR_GET_EXPR): New
18763         macros.
18764         * lex.c (TRY_TK, CATCH_TK): Generate location information.
18765         * parse.h (redefinition_error, refine_accessible_methods_list,
18766         can_cast_to_p): Function declaration removed.
18767         (classitf_redefinition_error, variable_redefinition_error,
18768         parse_jdk1_1_error, find_applicable_accessible_methods_list,
18769         find_most_specific_methods_list, argument_types_convertible,
18770         enter_a_block, valid_builtin_assignconv_identity_widening_p,
18771         valid_cast_to_p, valid_method_invocation_conversion_p,
18772         try_reference_assignconv, add_stmt_to_compound,
18773         build_jump_to_finally, build_tree_list, patch_try_statement,
18774         java_get_catch_block): New function declarations.
18775         * parse.y (string_buffer_type): Global variable deleted.
18776         (group_of_labels, catches, catch_clause, catch_clause_parameter,
18777         finally): Rules tagged <node>.
18778         (TRY_TK, CATCH_TK): Token tagged <operator>.
18779         (class_body_declaration:, class_member_declaration:,
18780         formal_parameter:, explicit_constructor_invocation:,
18781         interface_member_declaration:, constant_declaration:,
18782         primary_no_new_array:, class_instance_creation_expression:,
18783         array_creation_expression:): Issue error on unsuported JDK1.1
18784         features.
18785         (try_statement:, catches:, finally:): Define actions.
18786         (catch_clause_parameter): New rule.
18787         (catch_clause:): Use new rule catch_clause_parameter.
18788         (parse_jdk1_1_error): New function.
18789         (redefinition_error): Renamed classitf_redefinition_error.
18790         (variable_redefinition_error): New function.
18791         (check_class_interface_creation): Call
18792         classitf_redefinition_error.
18793         (java_complete_tree): Added error message on JDEP_TYPE: case.
18794         (complete_class_report_errors): Fixed indentation.
18795         (declare_local_variables): Call variable_redefinition_error.
18796         (source_end_java_method): Call java_set_exception_lang_code and
18797         emit_handlers where appropriate.
18798         (java_method_add_stmt): Call add_stmt_to_block.
18799         (add_stmt_to_block): New function.
18800         (lookup_method_invoke): Fixed outside comment. new local variable
18801         candicates.  Call find_applicable_accessible_methods_list and
18802         find_most_specific_methods_list when searching for a
18803         method. Modified error report to list possible candidates when
18804         applicable.
18805         (find_applicable_accessible_methods_list,
18806         find_most_specific_methods_list, argument_types_convertible): New
18807         function.
18808         (refine_accessible_methods_list): Function deleted.
18809         (java_complete_tree): Handle TRY_EXPR. ARRAY_REF handling: save
18810         expr (if applicable) before calling patch_array_ref.
18811         (build_expr_block): Fixed BLOCK_EXPR_BODY assignment.
18812         (enter_block): Fixed comment.
18813         (enter_a_block): New function.
18814         (patch_assignment): Reorganized. Call try_reference_assignconv for
18815         references. Call valid_cast_to_p instead of can_cast_to_p.
18816         (try_reference_assignconv,
18817         valid_builtin_assignconv_identity_widening_p): New functions.
18818         (valid_ref_assignconv_cast_p): Fixed inverted test on CLASS_FINAL.
18819         (valid_cast_to_p, valid_method_invocation_conversion_p): New
18820         functions.
18821         (build_string_concatenation): Don't resolve StringBuffer.
18822         (patch_cast): Fixed inverted arguments.
18823         (patch_array_ref): Code to save array expr deleted. Call
18824         valid_cast_to_p instead of can_cast_to_p.
18825         (generate_labeled_block): Call generate_name.
18826         (build_jump_to_finally, build_try_statement, java_get_catch_block,
18827         patch_try_statement): New functions.
18828         * typeck.c (match_java_method): Function deleted.
18829
18830 1998-10-02  Anthony Green  <green@cygnus.com>
18831
18832         * jvspec.c: jvgenmain_spec uses different temporary file names.
18833
18834 1998-10-02  Anthony Green  <green@cygnus.com>
18835
18836         * jvspec.c (lang_specific_driver): Fail if user specifies
18837         --main= when not linking.
18838
18839 1998-09-28  Tom Tromey  <tromey@cygnus.com>
18840
18841         * class.c (make_class_data): Push value for `thread' field.
18842         * decl.c (init_decl_processing): Added `thread' field to class.
18843
18844         * class.c (add_field): Always make static fields externally
18845         visible.
18846
18847 1998-09-26  Anthony Green  <green@cygnus.com>
18848
18849         * expr.c (build_java_athrow,
18850         build_java_throw_out_of_bounds_exception, expand_invoke,
18851         build_newarray, expand_java_multianewarray, build_java_monitor):
18852         Update comments to reflect _Jv_* function names.
18853
18854 1998-09-25  Per Bothner  <bothner@cygnus.com>
18855
18856         * decl.c (complete_start_java_method):  DECL_RESULT is always promoted.
18857         * decl.c (start_java_method):  Handle PROMOTE_PROTOTYPES target macro.
18858         * parse.y (expand_start_java_method):  Likewise.
18859
18860 1998-09-24  Per Bothner  <bothner@cygnus.com>
18861
18862         * expr.c (pop_arguments):  Handle PROMOTE_PROTOTYPES target macro.
18863
18864         * class.c (push_class):  IDENTIFIER_SIGNATURE_TYPE is now POINTER_TYPE.
18865         (add_field):  No longer need to convert from RECORD_TYPE to pointer,
18866         * expr.c:  Remove no-longer-needed calls to promote_type.
18867         * decl.c (give_name_to_locals):  Liekwise.
18868         * jcf-parse.c (get_class_constant):  Compensate for new signatures.
18869         * parse.y:  Add/remove promote_type calls as appropriate.
18870         * typeck.c (parse_signature_type):  Returns POINTER_TYPE for objects.
18871         (parse_signature_string):  Likewise.
18872         (build_java_array_type):  Fix for now signature convenions.
18873
18874         * lex.c (java_lex):  Fix (from Alex) for JC1_LITE problem.
18875
18876 1998-09-23  Tom Tromey  <tromey@cygnus.com>
18877
18878         * class.c (init_class_processing): libjava function renamed to
18879         _Jv_RegisterClass.
18880
18881 1998-09-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18882
18883         * expr.c (java_lang_expand_expr): New case for SWITCH_EXPR.
18884         * java-tree.def: Fixed DEFTREECODE third argument.
18885         (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
18886         CASE_EXPR, DEFAULT_EXPR): New tree codes for Java.
18887         * java-tree.h: (IS_CRAFTED_STRING_BUFFER_P): New macro.
18888         (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
18889         JAVA_THIS_EXPR): Now replaced by tree code definitions.
18890         (CALL_CONSTRUCTOR_P): Now uses NEW_CLASS_EXPR.
18891         * lang.c (java_tree_code_type, java_tree_code_length,
18892         java_tree_code_name): New arrays.
18893         (lang_init): Append Java tree node definitions to Gcc ones.
18894         * lex.c (expression_obstack): Declared as extern when JC1_LITE
18895         defined.
18896         (java_init_lex): Initialize wfl_append, wfl_string_buffer,
18897         wfl_to_string.
18898         (java_lex): Allow declaration of empty string constants. Retain
18899         location information on CASE_TK and DEFAULT_TK.
18900         * parse.h (JFLOAT_TYPE_P, JINTEGRAL_TYPE_P, JNUMERIC_TYPE_P,
18901         JPRIMITIVE_TYPE_P, JSTRING_TYPE_P, JSTRING_P, JREFERENCE_TYPE_P):
18902         Modified to be more robust.
18903         (BUILD_APPEND, BUILD_STRING_BUFFER): New macros.
18904         (build_new_invocation, try_builtin_assignconv,
18905         patch_switch_statement, string_constant_concatenation,
18906         build_string_concatenation, patch_string_cst, patch_string,
18907         java_expand_switch): New function declarations.
18908         * parse.y: Rules related to switch and EH tagged <node>.
18909         (label_id): Set to NULL_TREE
18910         (wfl_string_buffer, wfl_append, wfl_to_string): New static global
18911         tree nodes.
18912         (this_or_super:): Fixed indentation.
18913         (statement:, statement_nsi:, statement_without_trailing_substatement:,
18914         statement_expression:): Removed call to RULE on all sub-rules.
18915         (switch_expression:, switch_labels:): New rules.
18916         (switch_statement:, switch_block:, switch_block_statement_groups:,
18917         switch_block_statement_group:, switch_labels:, switch_label:):
18918         Defined actions.
18919         (throw_statement:, synchronized_statement:, try_statement:):
18920         Defined temporary actions.
18921         (class_instance_creation_expression:): Call
18922         build_new_invocation. Fixed indentation.
18923         (field_access): Fixed indentation.
18924         (method_invocation): Likewise.
18925         (make_qualified_primary): Use THIS_EXPR.
18926         (resolve_qualified_expression_name): Use NEW_CLASS_EXPR. When
18927         resolving from SUPER, set *type_found.
18928         (qualify_ambiguous_name): Use NEW_CLASS_EXPR.
18929         (java_complete_tree): Removed unused local variable `location'. Case
18930         for SWITCH_EXPR, sharing code with LOOP_EXPR. Use NEW_ARRAY_EXPR,
18931         NEW_CLASS_EXPR, UNARY_PLUS_EXPR and THIS_EXPR. New string handling
18932         on MODIFY_EXPR: and all binary operator tree code cases. Removed
18933         STRING_CST: case. default: checks for patchable strings.
18934         (complete_function_arguments): Transform string constant or
18935         crafted StringBuffer if necessary.
18936         (build_method_invocation): Fixed comments.
18937         (build_new_invocation): New function.
18938         (patch_assignment): Call try_builtin_assignconv to figure a valid
18939         assignment conversion between builtin types.
18940         (try_builtin_assignconv): New function.
18941         (build_binop): Use URSHIFT_EXPR directly to call build.
18942         (operator_string): Use UNARY_PLUS_EXPR.
18943         (patch_binop): Use UNARY_PLUS_EXPR. Handle string concatenation
18944         operator.
18945         (do_merge_string_cste, merge_string_cste,
18946         string_constant_concatenation, build_string_concatenation,
18947         patch_string, patch_string_cst): New function.
18948         (build_unary_op): Use UNARY_PLUS_EXPR and CONVERT_EXPR.
18949         (patch_unaryop): Likewise. New test of valid ++/-- operands.
18950         (build_newarray_node): Use NEW_ARRAY_EXPR.
18951         (build_this): Use THIS_EXPR.
18952         (build_return): Enable debug information on return statement.
18953         (build_if_else_statement): Likewise.
18954         (complete_labeled_statement): Fixed related comment.
18955         (build_loop_body): Fixed comment.
18956         (build_bc_statement): Enable debug information on break/continue
18957         statements.
18958         (patch_bc_statement): Fixed typos. Handle SWITCH statement
18959         context.
18960         (patch_switch_statement, case_identity, java_expand_switch): New
18961         functions.
18962
18963 1998-09-21  Per Bothner  <bothner@cygnus.com>
18964
18965         * buffer.h (BUFFER_INIT):  New macro.
18966         * jcf-write.c (struct jcf_partial):  New type.  Put global stuff here.
18967         Pass (struct jcf_partial *state) to most functions.
18968         (jcf_block, jcf_relocation):  New types.
18969         Support labels, branches, conditionals, loops.
18970
18971 1998-09-21  Tom Tromey  <tromey@cygnus.com>
18972
18973         * decl.c (INT_TYPE_SIZE): Define as BITS_PER_WORD if not defined.
18974
18975 1998-09-21  Per Bothner  <bothner@cygnus.com>
18976
18977         * decl.c (integer_type_node):  Make it have INT_TYPE_SIZE.
18978         * verify.c (verify_jvm_instructions):  Use int_type_not (32 bits),
18979         not integer_type_node (INT_TYPE_SIZ bits).
18980
18981         * parse.y (patch_if_else_statement):  Accept promoted_boolean_type_node.
18982
18983         * jcf-reader.c (get_attribute):  New HANDLE_EXCEPTION_TABLE hook.
18984         * jcf-dump.c (print_exception_table):  New function.
18985         (disassemble_method):  Better handling of wide instructions.
18986         Make more robust for bad input.
18987
18988 1998-09-30  Jeffrey A Law  (law@cygnus.com)
18989
18990         * jcf-write.c (OP2, OP4): Use "_i", not "_I" to avoid problems on
18991         FreeBSD.
18992
18993 1998-09-17  Jeffrey A Law  (law@cygnus.com)
18994
18995         * Makefile.in (jcf-dump, jvgenmain): Link in memmove.o too.
18996
18997 1998-09-17  Tom Tromey  <tromey@cygnus.com>
18998
18999         * Makefile.in ($(PARSE_H)): Removed target.
19000
19001 1998-09-17  Jeffrey A Law  (law@cygnus.com)
19002
19003         * Makefile.in (JAVA_OBJS): Add memmove.o
19004         (memmove.o): New target & rules.
19005
19006 1998-09-15  Tom Tromey  <tromey@cygnus.com>
19007
19008         * expr.c (expand_invoke): Don't generate a call to the class init
19009         code.
19010
19011 1998-09-14  Jeffrey A Law  (law@cygnus.com)
19012
19013         * Makefile.in: Add many missing dependencies.
19014         * buffer.c, class.c, constants.c, decl.c: Use system.h and toplev.h
19015         as appropriate.
19016         * except.c, expr.c, jcf-io.c jcf-parse.c, jcf-write.c: Likewise.
19017         * jvgenmain.c lang.c mangle.c typeck.c verify.c: Likewise.
19018
19019 1998-09-11  Per Bothner  <bothner@cygnus.com>
19020
19021         * decl.c (complete_start_java_method):  If method is static (and
19022         not private) call _Jv_InitClass.
19023         * expr.c (expand_invoke):  Don't call build_class_init.
19024
19025         * jvspec.c (jvgenmain_spec):  Fix spec for generated .o file.
19026
19027 1998-09-10  Jeffrey A Law  (law@cygnus.com)
19028
19029         * Make-lang.in (GCJ): Define before using.
19030
19031 1998-09-09  Jeffrey A Law  (law@cygnus.com)
19032
19033         * gjavah.c (java_no_argument): Renamed from no_argument to avoid
19034         losing due to namespace pollution in GNU getopt.h
19035
19036 1998-09-09  Tom Tromey  <tromey@cygnus.com>
19037
19038         * Make-lang.in (java.all.build): Don't mention jvgenmain or gcjh.
19039         (java.all.cross): Likewise.
19040         (java.rest.encap): Likewise.
19041
19042 1998-09-08  Jeffrey A Law  (law@cygnus.com)
19043
19044         * gjavah.c (print_class_decls): Fix thinko in arglist
19045         * jcv-io.c (find_classfile): Similarly.
19046
19047 1998-09-07  Jeffrey A Law  (law@cygnus.com)
19048
19049         * Makefile.in (INCLUDES): Update for recent toplevel gcc changes.
19050
19051 1998-09-05  Tom Tromey  <tromey@cygnus.com>
19052
19053         * Make-lang.in (java.maintainer-clean): Don't remove parse.h.
19054         (java.mostlyclean): Remove parse.c and parse-scan.c, not parse.h.
19055         * Makefile.in (PARSE_C): New macro.
19056         (PARSE_H): Likewise.
19057         (PARSE_SCAN_C): Likewise.
19058         ($(PARSE_C)): Target renamed from parse.c.
19059         ($(PARSE_SCAN_C)): Target renamed from parse-scan.c.
19060         (clean): Remove parse-scan.c as well.
19061         (parse.o): Depend on $(PARSE_C).
19062
19063 1998-09-05  Anthony Green  <green@cygnus.com>
19064
19065         * README, license.terms: Removed.
19066
19067         * Make-lang.in, Makefile.in, class.c, config-lang.in, constants.c,
19068         decl.c, except.c, expr.c, gjavah.c, java-except.h, java-tree.h,
19069         javaop.def, javaop.h, jcf-dump.c, jcf-io.c, jcf-parse.c,
19070         jcf-reader.c, jcf-write.c, jcf.h, jvgenmain.c, jvspec.c,
19071         keyword.gperf, keyword.h, lang-options.h, lang-specs.h, lang.c,
19072         lex.c, lex.h, mangle.c, parse-scan.y, parse.h, parse.y, typeck.c,
19073         verify.c, zextract.c, zipfile.h: Fixed copyright assignment,
19074         and Java trademark attribution.
19075
19076 1998-09-04  Tom Tromey  <tromey@cygnus.com>
19077
19078         * Makefile.in: Use gcjh, not gjavah.
19079         * config-lang.in (stagestuff): Use gcjh, not gjavah.
19080         * Make-lang.in: Changed gjavah to gcjh everywhere.
19081
19082 1998-09-03  Per Bothner  <bothner@cygnus.com>
19083
19084         * gjavah.c:  Support new -prepend -add -append flags.
19085         (print_method_info):  Method is not virtual if class is final.
19086
19087 1998-09-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19088
19089         * jv-scan.c: Fixed copyright assignment.
19090         * keyword.gperf: Likewise.
19091         * keyword.h: Likewise.
19092         * lex.c: Fixed copyright assignment.
19093         (java_lex): Push unicode back when parsing '<'.
19094         * lex.h: Fixed copyright assignment.
19095         * parse-scan.y: Likewise.
19096         * parse.h: Fixed copyright assignment.
19097         (build_debugable_stmt, complete_for_loop): New function prototypes.
19098         * parse.y: Fixed copyright assignment.
19099         (for_statement:): Call complete_for_loop. Set EXIT_EXPR to be
19100         size_zero_node when completing a loop with no exit condition.
19101         (for_statement_nsi:): Define action.
19102         (for_init:, for_update:): Return size_zero_node when empty.
19103         (declare_local_variables): Call build_debugable_stmt.
19104         (build_debugable_stmt): New function.
19105         (build_loop_body): Build debugable statement around loop
19106         condition part.
19107         (complete_loop_body): Take into account the debugable statement
19108         around the EXIT_EXPR.
19109         (complete_loop_body): New function.
19110         (patch_exit_expr): Fixed condition inversion.
19111
19112 1998-09-02  Tom Tromey  <tromey@cygnus.com>
19113
19114         * Make-lang.in (jvspec.o): Use GCC_THREAD_FILE to compute correct
19115         name of thread define.
19116         * jvspec.c (THREAD_NAME): New macro.
19117         (GCLIB): Likewise.
19118         (THREADLIB): Likewise.
19119         (lang_specific_driver): Recognize attempt to link with thread
19120         library or gc library.  Recognize -ljava on command line so it
19121         isn't linked against more than once.
19122
19123 1998-09-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19124
19125         * parse-scan.y (report_main_declaration): Name of the class
19126         containing `main' can be a qualified name.
19127
19128 1998-08-31  Tom Tromey  <tromey@cygnus.com>
19129
19130         * config-lang.in: Changed gjavac to gjc everywhere.
19131         * Make-lang.in: Changed gjavac to gjc everywhere.
19132
19133 1998-08-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19134
19135         * Make-lang.in (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): New variable.
19136         (java.install-common:): Loop over JAVA_TARGET_INDEPENDENT_BIN_TOOLS
19137         and install the files.
19138         * Makefile.in (JAVA_OBJS_LITE): New variable.
19139         (compiler:): Now include jv-scan as a dependency.
19140         (../jv-scan$(exeext), parse-scan.c): New targets.
19141         (../jcf-dump$(exeext)): Was jcf-dump$(exeext) before.
19142         * config-lang.in (compilers): Removed gcj, gjavah from the list.
19143         * jcf-parse.c (parse_source_file): Call java_layout_classes and
19144         check for errors even if parse_only.
19145         * lex.c (java_init_lex): Reorganized and skip parts if JC1_LITE is
19146         defined.
19147         (yylex): New function. Uses java_lex body.
19148         (java_lex): Removed commented out statement. Remove local variable
19149         literal. Use SET_LVAL_NODE_TYPE and SET_LVAL_NODE where
19150         appropriate.  Use macros FLOAT_TYPE_NODE, DOUBLE_TYPE_NODE,
19151         DCONST0, SET_FLOAT_HANDLER, SET_REAL_VALUE_ATOF,
19152         SET_LVAL_NODE_TYPE and GET_TYPE_PRECISION. Don't create STRING_CST
19153         if JC1_LITE is defined. Use BUILD_ID_WFL to build identifiers. Use
19154         SET_MODIFIER_CTX, SET_LVAL_NODE, BUILD_ID_WFL and GET_IDENTIFIER
19155         where appropriate.
19156         (java_lex_error): Empty if JC1_LITE is defined.
19157         (java_get_line_col): Return 0 if JC1_LITE is defined.
19158         * lex.h (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR,
19159         SET_MODIFIER_CTX): Moved into the section containing the macros
19160         conditionally defined by JC1_LITE.
19161         (BUILD_OPERATOR,BUILD_OPERATOR2): Just return the TOKEN
19162         argument if JC1_LITE is defined.
19163         (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, REAL_VALUE_ATOF,
19164         REAL_VALUE_ISINF, REAL_VALUE_ISNAN): Preset to values if JC1_LITE
19165         is defined.
19166         (DCONST0, SET_FLOAT_HANDLER, GET_IDENTIFIER, SET_REAL_VALUE_ATOF,
19167         FLOAT_TYPE, DOUBLE_TYPE, SET_MODIFIER_CTX, GET_TYPE_PRECISION,
19168         SET_LVAL_NODE, SET_LVAL_NODE_TYPE, BUILD_ID_WFL): New macros, set
19169         to different values according to JC1_LITE.
19170         * parse.h (int_fits_type_p, stabilize_reference): Prototype not
19171         declared if JC1_LITE set.
19172         (jdep_code, typedef struct _jdep, typedef struct _jdeplist): Not
19173         defined if JC1_LITE not set.
19174         (struct parser_ctx): Reorganized and skip the jc1 front end part
19175         if JC1_LITE set.
19176         (java_layout_classes): New function definition.
19177         (java_push_parser_context, java_init_lex, yyparse, yylex,
19178         yyerror): Prototype always declared. All other static function
19179         prototypes declared only if JC1_LITE is not set.
19180         * parse.y (yyparse, yylex, yyerror): No longer declared here. Now
19181         declared in parse.h.
19182         (java_layout_classes): New function.
19183         (java_complete_expand_methods): No longer layout the class here.
19184         * parse-scan.y: New file.
19185         * jv-scan.c: New file.
19186
19187 1998-08-25  Tom Tromey  <tromey@cygnus.com>
19188
19189         * gjavah.c (main): Handle -friend option.
19190         (friend_specs): New global.
19191         (generate_access): Handle friend_specs.
19192         (process_file): Likewise.
19193         (MAX_FRIENDS): New macro.
19194         (friend_count): New global.
19195         (print_cxx_classname): Added `prefix' argument.  Ignore arrays.
19196         Changed all callers.
19197
19198 1998-08-24  Per Bothner  <bothner@cygnus.com>
19199
19200         * jcf-dump.c (process_class):  Move JCF_FINISH use to main,
19201         (main):  Handle processing all the entries of a named .zip archive.
19202         * jcf-io.c (jcf_trim_old_input):  New function.
19203         * jcf.h (GET_u2_le,GET_u4_le,JCF_readu2_le,JCF_readu4_le):  New macros.
19204
19205 1998-08-24  Per Bothner  <bothner@cygnus.com>
19206
19207         * lang.c (flag_assume_compiled):  Make default be on.
19208
19209 1998-08-21  Per Bothner  <bothner@cygnus.com>
19210
19211         * jcf-dump.c:  Add bunches of flags to control output more.
19212         (process_class):  New function;  support printing more than one class.
19213         (main): Support new --print-main and --javap flags.
19214         * jcf-reader.c (IGNORE_ATTRIBUTE):  New hook.
19215         * jcf.h (CPOOL_INDEX_IN_RANGE):  New macro.
19216
19217 1998-08-20  Per Bothner  <bothner@cygnus.com>
19218
19219         Change mangling of dispatch table to match C++ vtable (w/thunks).
19220         * class.c (build_dtable_decl), java-tree.h:  New function.
19221         (make_class_data):  Call it.
19222         * decl.c (init_decl_processing):  Likewise.
19223
19224 1998-08-19  Warren Levy  <warrenl@cygnus.com>
19225
19226         * decl.c (init_decl_processing): Use _Jv_NewObjectArray, not
19227         soft_anewarray; adjust args passed.
19228         * expr.c (build_anewarray): Adjust args for soft_anewarray_node to
19229         match _Jv_NewObjectArray.
19230
19231 1998-08-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19232
19233         * decl.c (push_labeled_block, pop_labeled_block): New functions.
19234         * expr.c (loopup_label): Call create_label_decl.
19235         (create_label_decl): New function.
19236         (java_lang_expand_expr): Call expand_start_bindings with argument
19237         set to zero.
19238         * java-tree.h Added space after PROTO in function declarations
19239         when necessary.
19240         (IS_FOR_LOOP_P, IS_BREAK_STMT_P): New macros.
19241         (create_label_decl, push_labeled_block): New function
19242         declarations.
19243         * lex.c (label_id): Initialize.
19244         (SUPER_TK, THIS_TK, RETURN_TK): Merged common actions in final
19245         switch.
19246         * parse.h Added space after PROTO in function declarations when
19247         necessary.
19248         (LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
19249         LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
19250         LOOP_EXPR_BODY_BODY_EXPR, LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P,
19251         PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, PUSH_LOOP, POP_LOOP): New
19252         macros.
19253         (struct parser_ctxt): New fields current_loop,
19254         current_labeled_block.
19255         (build_if_else_statement, patch_if_else_statement,
19256         add_stmt_to_compound, patch_exit_expr, build_labeled_block,
19257         generate_labeled_block, complete_labeled_statement,
19258         build_bc_statement, patch_bc_statement, patch_loop_statement,
19259         build_new_loop, build_loop_body, complete_loop_body): New function
19260         declarations.
19261         * parse.y (java_warning_count): New global variable.
19262         (label_id): New static variable.
19263         (BREAK_TK, CONTINUE_TK): Token tagged <operator>.
19264         (block:): Return size_zero_node when block is empty.
19265         (empty_statement:): Return size_zero_node.
19266         (statement:): Implement supplemental action when for_statement: is
19267         reduced.
19268         (label_decl:): New rule.
19269         (labeled_statement:): Rewritten using label_decl. Actions
19270         implemented.
19271         (labeled_statement_nsi:): Likewise.
19272         (if_then_statement): Actions implemented.
19273         (while_expression): New rule.
19274         (while_statement:): Rewritten using while_expression. Actions
19275         implemented.
19276         (while_statement_nsi:): Likewise.
19277         (do_statement_begin:): New rule.
19278         (do_statement:): Rewritten using do_statement_begin. Actions
19279         implemented.
19280         (for_statement:): Rewritten using for_begin. Actions implemented.
19281         (for_statement_nsi:): Likewise.
19282         (for_header:, for_begin:): New rules.
19283         (for_init:): Actions implemented.
19284         (statement_expression_list:, break_statement:,
19285         continue_statement:): Likewise.
19286         (yyerror): Count number of issued warning(s).
19287         (java_report_errors): Report error(s) and/or warning(s).
19288         (java_complete_class): Use build_java_argument_signature to
19289         recompute completed method signature.
19290         (java_check_regular_methods): New locals method_wfl and aflags.
19291         Use method_wfl instead of lookup_cl during error reports. Fixed
19292         indentation and modified some error messages. Use
19293         lang_printable_name in method instead of the DECL_NAME. New code
19294         to issue warnings on methods not overriding corresponding methods
19295         private to a different package.
19296         (java_method_add_stmt): Call add_stmt_to_compound.
19297         (add_stmt_to_compound): New function.
19298         (java_complete_tree): Handle LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR,
19299         LOOP_EXPR, EXIT_EXPR and COND_EXPR.
19300         (build_if_else_statement, patch_if_else_statement,
19301         build_labeled_block, generate_labeled_block,
19302         complete_labeled_statement, build_new_loop, build_loop_body,
19303         complete_loop_body, patch_loop_statement, build_bc_statement,
19304         patch_bc_statement, patch_exit_expr): New functions.
19305         * typeck.c (build_java_signature): Build argument signature before
19306         enclosing it in between parenthesis.
19307
19308 1998-08-17  Warren Levy  <warrenl@cygnus.com>
19309
19310         * Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in
19311         (JAVA_OBJS): Added reminder comment
19312
19313 1998-08-13  Nick Clifton  <nickc@cygnus.com>
19314
19315         * gjavah.c (D_NAN_MASK): Append LL to the constant to force it to
19316         be interpreted as a long long.
19317
19318 1998-08-13  Warren Levy  <warrenl@cygnus.com>
19319
19320         * decl.c (init_decl_processing): Use _Jv_InitClass, not
19321         soft_initialise_class.  Use _Jv_NewMultiArray, not
19322         soft_multianewarray.  Use _Jv_ThrowBadArrayIndex, not
19323         soft_badarrayindex.  Use _Jv_CheckCast, not soft_checkcast.  Use
19324         _Jv_CheckArrayStore, not soft_checkarraystore.  Use
19325         _Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod.
19326
19327 1998-08-12  Per Bothner  <bothner@cygnus.com>
19328
19329         * decl.c, java-tree.h (this_identifier_node, super_identifier_node,
19330         length_identifier_node):  New global tree node constants.
19331         * parse.y (kw_super, kw_this, kw_length):  Removed globals.
19332         Replace uses by super_identifier_node etc.
19333         * lex.c (kw_super, kw_this, kw_length):  Don't initialize.
19334
19335         * parse.y (resolve_field_access):  Don't special-case ".length" if
19336         flag_emit_class_files.
19337         (patch_array_ref):  Leave as ARRAY_REF if flag_emit_class_files.
19338         * jcf-write.c (generate_bytecode_insns):  Handle ARRAY_REF opcode
19339         and ARRAY.length.
19340
19341 1998-08-11  Per Bothner  <bothner@cygnus.com>
19342
19343         * decl.c (init_decl_processing): Remove unused method_type_node fields.
19344         * class.c (make_method_value):  Remove init for removed fields.
19345
19346         * class.c (layout_class):  Use build_java_argument_signature.
19347         * java-tree.h (TYPE_ARGUMENT_SIGNATURE):  New macro.
19348
19349         * typeck.c (push_java_argument_signature):  Removed.  Merged into ...
19350         (build_java_argument_signature):  Use TYPE_ARGUMENT_SIGNATURE cache.
19351         (build_java_signature):  Don't use push_java_argument_signature.
19352
19353         * typeck.c (lookup_argument_method):  New function.
19354         * parse.y (java_check_regular_methods):  Use lookup_argument_method
19355         instead of lookup_java_method2 followed by lookup_java_method.
19356
19357         * parse.y (check_method_redefinition):  Minor optimization.
19358
19359         * jcf-write.c (generate_bytecode_insns):  Handle RETURN_EXPR,
19360         MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR.
19361
19362 1998-08-10  Tom Tromey  <tromey@cygnus.com>
19363
19364         * Make-lang.in (jc1$(exeext)): Don't depend on c-common.o or
19365         c-pragma.o.
19366
19367         * gjavah.c (java_float_finite): Use K&R-style definition.
19368         (java_double_finite): Likewise.
19369         (generate_access): Now returns void.  Changed all callers.
19370         (last_access_generated): Removed.
19371         (process_file): Only make a single pass over the .class file.
19372
19373 1998-07-29  Per Bothner  <bothner@cygnus.com>
19374
19375         * class.c (get_dispatch_table):  Add extra dummy vtable entry,
19376         for compatibility for G++ (with -fvtable-thunks).
19377         * expr.c (build_invokevirtual):  Add one for extra dummy vtable entry.
19378
19379         * gjavah.c (process_file):  Use public inheritance for super-class.
19380
19381 1998-07-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19382
19383         * lex.c (java_init_lex): Initialize ctxp->package.
19384         * parse.h (struct parser_ctxt): package and package_len replaced
19385         by tree package, an identifier node. Field method_decl_list is
19386         gone. Fixed comments.
19387         (lookup_field_wrapper, merge_qualified_name, not_accessible,
19388         class_in_current_package): New function prototypes.
19389         * parse.y (array_type:): Set class loaded flag on primitive type
19390         arrays.
19391         (package_declaration:): Assign ctxp->package to the
19392         identifier node.
19393         (method_invocation:): Handle invocation of method qualified by
19394         `super'.
19395         (single_type_import_declaration:): Removed ambiguity check.
19396         (java_pop_parser_context): New local variable `next'. Reset and
19397         set IMPORT_CLASSFILE_NAME flags on current and previous import
19398         list.
19399         (java_accstring_lookup): Use new local macro COPY_RETURN.
19400         (lookup_field_wrapper): New function.
19401         (parser_qualified_classname): Use merge_qualified_name.
19402         (parser_check_super_interface): Broaden error message.
19403         (do_resolve_class): Check for qualified class name in the current
19404         compilation unit if appropriate.
19405         (process_imports): Check for already defined classes.
19406         (check_pkg_class_access): Got rid of call to
19407         get_access_flags_from_decl.
19408         (java_complete_expand_methods): Call safe_layout_class based on
19409         the current class size.
19410         (make_qualified_primary): Build a WFL qualification on primary if
19411         none exists.
19412         (merge_qualified_name): New function.
19413         (make_qualified_name): Use merge_qualified_name.
19414         (resolve_expression_name): Use safe_lookup_field.
19415         (resolve_field_access): Got rid of call to get_access_flags_from_decl.
19416         (resolve_qualified_expression_name): Likewise. Check on resolved
19417         element accessibility.
19418         (not_accessible_p, class_in_current_package): New functions.
19419         (maybe_access_field): Got rid of call to get_access_flags_from_decl.
19420         (patch_method_invocation_stmt): Merged common pieces. Check
19421         accessibility of invoked method.
19422         (check_for_static_method_reference): Add returned type in error
19423         message.
19424         (invocation_mode): Get rid of bogus check on PRIVATE methods.
19425         (refine_accessible_methods_list): Merged two conditions in test.
19426         (java_complete_class): Sanity check on stabilize_ref gone.
19427         * zextract.c (read_zip_archive): Cast lseek second argument to long.
19428
19429 1998-07-28  Per Bothner  <bothner@cygnus.com>
19430
19431         * class.c (hashUtf8String):  Fix - use new JavaSoft specification.
19432
19433 1998-07-24  Tom Tromey  <tromey@cygnus.com>
19434
19435         * gjavah.c (F_NAN): Removed.
19436         (F_NAN_MASK): New macro.
19437         (F_POSITIVE_INFINITY): Removed.
19438         (F_NEGATIVE_INFINITY): Likewise.
19439         (java_float_finite): Rewrote.
19440         (D_NAN_MASK): Renamed.
19441         (java_double_finite): Rewrote.
19442         (D_POSITIVE_INFINITY): Removed.
19443         (D_NEGATIVE_INFINITY): Likewise.
19444
19445         * jcf-dump.c (print_constant): [CONSTANT_Double, CONSTANT_Float]
19446         If verbose, print underlying representation of value in hex.
19447
19448 1998-07-24  Per Bothner  <bothner@cygnus.com>
19449
19450         * buffer.h, buffer.c:  New files.
19451         * Makefile.in (JAVA_OBJS):  Add buffer.o.
19452
19453         Support locals variables and writing their debug entries to .class.
19454         * jcf-write.c:  Simplify some by user new buffer type.
19455         (vode_buffer_grow):  Removed.
19456         (struct localvar_info):  New type.
19457         (localsvars, localvartable):  New buffers.
19458         (localvar_alloc, localvar_free):  New functions.
19459         (generate_bytecode_insns):  Handle local variables.
19460         (generate_classfile):  Write LocalVariableTable attribute.
19461
19462 1998-07-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19463
19464         * jcf-io.c (open_in_zip): Check the zipfile magic number.
19465         * zipfile.h (ZIPMAGIC): New macro.
19466
19467 1998-07-24  Tom Tromey  <tromey@cygnus.com>
19468
19469         * Makefile.in (gjavah.o): Updated dependencies.
19470         (jcf-dump.o): Likewise.
19471         (all.indirect): Use ../gjavah.
19472         (../gjavah$(exeext)): Likewise.
19473         (clean): Don't remove gjavah.
19474         (clean): Remove parse.c, not java/parse.c.
19475         * Make-lang.in (java): Added gjavah.
19476         (gjavah$(exeext)): New target.
19477         (GJAVAH_SOURCES): New macro.
19478         (java.all.build): Added gjavah.
19479         (java.all.cross): Likewise.
19480         (java.rest.encap): Likewise.
19481         * config-lang.in (compilers, stagestuff): Added gjavah.
19482
19483 1998-07-23  Tom Tromey  <tromey@cygnus.com>
19484
19485         * gjavah.c (java_float_finite): New function.
19486         (java_double_finite): Likewise.
19487         (F_POSITIVE_INFINITY): New macro.
19488         (F_NEGATIVE_INFINITY): Likewise.
19489         (F_NAN): Likewise.
19490         (D_POSITIVE_INFINITY): Likewise.
19491         (D_NEGATIVE_INFINITY): Likewise.
19492         (D_NAN): Likewise.
19493         (print_field_info): Use java_float_finite and java_double_finite.
19494
19495 1998-07-23  Per Bothner  <bothner@cygnus.com>
19496
19497         * parse.y (method_header):  Name "this" implicit argument.
19498
19499 1998-07-22  Per Bothner  <bothner@cygnus.com>
19500
19501         * jcf-write.c:  Write out LineNumberTable attribute in .class file.
19502         (linenumber_buffer, linenumber_ptr, linenumber_limit):  New statics.
19503         (put_linenumber):  New function.
19504         (generate_bytecode_insns, generate_classfile):  Write line numbers.
19505
19506 1998-07-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19507
19508         * java-tree.h (CALL_EXPR_FROM_PRIMARY_P): Changed in PRIMARY_P.
19509         (lookup_name, build_known_method_ref, build_class_init,
19510         build_invokevirtual, invoke_build_dtable, match_java_method,
19511         build_field_ref, pushdecl_force_head, build_java_binop,
19512         binary_numeric_promotion, build_decl_no_layout,
19513         build_java_arrayaccess, build_newarray, build_anewarray,
19514         build_java_array_length_access, build_java_arraynull_check): New
19515         extern function prototypes.
19516         (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19517         JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in
19518         java-tree.h.
19519         * jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref
19520         to NULL
19521         * jcf.h (jcf_out_of_synch): New extern function prototype.
19522         * parse.h: Static/global function implemented in parse.y
19523         prototyped and declarations moved at the end of the file.
19524         (DECL_P): Check that the argument isn't null.
19525         (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19526         JAVA_THIS_EXPR): No longer defined here. See java-tree.h
19527         (QUAL_DECL_TYPE): New macro.
19528         (PARAMS): Macro definition removed.
19529         * parse.y: (yyparse, yyerror): Use PROTO instead of PARAMS.
19530         (return_statement:): Call build_return.
19531         (field_access:): Call make_qualified_primary in sub rule.
19532         (method_invocation:): Build method invocation and call
19533         make_qualified_primary when processing primaries.
19534         (java_complete_class): Set IDENTIFIER_SIGNATURE_TYPE by calling
19535         get_type_from_signature.
19536         (java_check_regular_method): Extra integer 0 argument when calling
19537         lookup_java_method2.
19538         (lookup_java_interface_method2): Extra method DECL argument when
19539         calling lookup_java_interface_method2.
19540         (java_method_add_stmt): Set TREE_SIDE_EFFECTS on newly created
19541         COMPOUND_EXPR node.
19542         (java_complete_expand_method): Layout current class iff not
19543         already done. Don't process interface's methods.
19544         (java_complete_expand_method): Use super class only if it
19545         exists. Use current class otherwise.
19546         (make_qualified_primary): New function.
19547         (resolve_expression_name): Process qualified expression or
19548         expression from primary the same way.
19549         (resolve_expression_name): Two last arguments to
19550         resolve_field_access are now NULL_TREEs.
19551         (resolve_field_access): New variable is_static. Local field must
19552         be DECLs. is_static computed on field DECLs only. Append code in
19553         where_found to the field access if necessary. Use QUAL_DECL_TYPE
19554         to initialize field_type.
19555         (resolve_qualified_expression_name): New local variable,
19556         previous_call_static and is_static. Handle primaries with function
19557         calls, casts, array references and `this'. `super' now handled as
19558         `(super_class)this'. Use is_static to clarify boolean expressions.
19559         Added code to handle case where a proper handle is required to
19560         access a field. Use QUAL_DECL_TYPE where applicable.
19561         (maybe_access_field): New function.
19562         (patch_method_invocation_stmt): New arguments primary, where,
19563         is_static. Branch of the test on CALL_EXPR_FROM_PRIMARY_P
19564         deleted. Use `where' as a type to search from if specified. Check
19565         for static method reference where forbidden. Append primary or
19566         current_this to the argument list if not calling constructor nor
19567         static methods.
19568         (check_for_static_method_reference): New function.
19569         (patch_invoke): Layout the class on which new is done if
19570         necessary.
19571         (lookup_method_invoke): Changed format to report errors on
19572         methods.
19573         (qualify_ambiguous_name): New local variable this_found. Now
19574         handle things from primaries. Method call are considered
19575         expression names.
19576         (identical_subpath_p): NULL_TREE arguments to breakdown_qualified
19577         changed into NULLs.
19578         (not_initialized_as_it_should_p): Comply with the new DECL_P.
19579         (java_complete_tree): New case fo RETURN_EXPR. Process function
19580         call arguments in separate function.
19581         (complete_function_arguments): New function.
19582         (build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P
19583         anymore.
19584         (patch_assignment): Take the return function slot into account as
19585         a RHS. Distinguish assignment from a return.
19586         (valid_ref_assignconv_cast_p): Use build_java_argument_signature
19587         when checking methods in interfaces.
19588         (resolve_type_during_patch): NULL argument to unresolve_type_p
19589         instead of NULL_TREE.
19590         (patch_newarray): Fixed typo in comment.
19591         (buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL.
19592         (build_return, patch_return): New functions.
19593         * typeck.c (lookup_java_constructor): Fixed typo in comment.
19594
19595 1998-07-21  Per Bothner  <bothner@cygnus.com>
19596
19597         * constants.c (find_name_and_type_constant, find_fieldref_index,
19598         find_methodref_index):  New methods.
19599         * expr.c (build_invoke_non_interface):  If flag_emit_class_files,
19600         just return given method.  Also, rename to build_known_method_ref.
19601         (expand_invoke):  Rename call to build_invoke_non_interface.
19602         * java-tree.h, parse.h:  Update prototype.
19603         * parse.y, decl.c, jcf-parse.c:  Suppress calls to back-end functions
19604         (such as expand_expr_stmt) if flag_emit_class_files.
19605         * jcf-write.c (RESERVE, OP1, OP2, OP4, NOTE_PUSH, NOTE_POP,
19606         STACK_TARGET, IGNORE_TARGET):  New macros.
19607         (code_buffer, code_ptr, code_limit, code_S, code_SP_max):  New globals.
19608         (generate_bytecode_insn):  New function to generate method's bytecode.
19609         (generate_classfile):  Node generate Code attribute for a method.
19610         (code_buffer_grow, push_constant1, push_constant2, push_int_const,
19611         push_long_const, field_op, adjust_typed_op, maybe_wide):
19612         New functions used by generate_bytecode_insn.
19613
19614         * typeck.c (signature_include_return):  Remove variable.
19615         (push_java_argument_signature, build_java_argument_signature):  New.
19616         (build_java_signature):  Use push_java_argument_signature.
19617         * parse.y:  Use build_java_argument_signature instead of fiddling
19618         with signature_include_return.
19619
19620 1998-07-17  Tom Tromey  <tromey@cygnus.com>
19621
19622         * gjavah.c (print_c_decl): Always generate JArray<>* for array
19623         types.
19624
19625         * Makefile.in (all.indirect): Added gjavah$(exeext).
19626         (gjavah$(exeext)): Added $(exeext).
19627         (clean): Likewise.
19628
19629 1998-07-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19630
19631         * class.c (layout_class): Call to java_layout_parsed_class replace
19632         by safe_layout_class.
19633         * expr.c (build_java_array_length_access): Removed static storage
19634         class in the function definition.
19635         (build_java_arraynull_check): Likewise.
19636         Also fixed typos in two comments.
19637         * lex.c (java_init_lex): Initialize static global kw_length.
19638         (java_lex): Use BUILD_OPERATOR on RETURN_TK.
19639         * lex.h (JAVA_FLOAT_RANGE_ERROR): Add extra argument to
19640         java_lex_error.
19641         (JAVA_INTEGRAL_RANGE_ERROR): Likewise.
19642         * parse.h (resolve_no_layout): New static function declaration.
19643         (get_identifier_in_static): Declaration removed.
19644         (java_layout_parsed_class): Function name declaration changed to
19645         safe_layout_class.
19646         (build_newarray_node, patch_newarray, resolve_type_during_patch,
19647         not_initialized_as_it_should_p, build_this): New static function
19648         declarations.
19649         (pushdecl_force_head, build_java_binop, int_fits_type_p,
19650         binary_numeric_promotion, stabilize_reference,
19651         build_decl_no_layout, build_java_arrayaccess): Extern function
19652         declarations moved into their own section.
19653         (build_newarray, build_anewarray, build_java_array_length_access,
19654         build_java_arraynull_check): New extern function declarations.
19655         (UNARY_PLUS_EXPR): Macro renamed into JAVA_UNARY_PLUS_EXPR.
19656         (JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, JAVA_THIS_EXPR): New
19657         fake tree codes.
19658         (CALL_CONSTRUCTOR_P): New macro.
19659         * parse.y (kw_length): New static global tree node.
19660         (return_statement): Tagged <node>.
19661         (RETURN_TK): Tagged <operator>.
19662         (variable_declarator_id:): Build variable declaration with an
19663         empty initialization value if a syntax error was found in the
19664         initialization part of the variable declaration.
19665         (statement_without_trailing_substatement:): return_statement: now
19666         uses the default rule.
19667         (return_statement:): Temporarily fixed to return NULL_TREE.
19668         (primary_no_new_array:): Call build_this when THIS_TK was parsed.
19669         (class_instance_creation_expression:): Class creation rules now
19670         call build_method_invocation upon reduction.
19671         (array_creation_expression:): Rules call build_newarray_node upon
19672         reduction.
19673         (dim_exprs:): Build a list of dimension expressions.
19674         (dim_expr:): Store location of the OSB_TK in the dimension
19675         expression node.
19676         (method_invocation:): Added a new error rule.
19677         (build_unresolved_array_type): WFL argument may also be an array
19678         on a primitive type. Name of the argument changed to reflect this.
19679         (method_declarator): Insert argument type at the beginning of the
19680         argument type list and later reverse the list.
19681         (unresolved_type_p): Argument 'returned' may be optionally
19682         NULL_TREE.
19683         (java_layout_class_from_source): Function renamed
19684         safe_layout_class.
19685         (resolve_and_layout): Now call resolve_no_layout and
19686         safe_layout_class.
19687         (resolve_no_layout): New function.
19688         (purify_type_name): New function.
19689         (complete_class_report_errors): Call purify_type_name during error
19690         report on a type not found.
19691         (process_imports): error_found local variable doesn't need to be
19692         initialized to zero.
19693         (declare_local_variables): New local type_wfl. Fixed typo in error
19694         message. type_wfl assigned to unresolved type and used to register
19695         incomplete type. Build a WFL around the variable initialization
19696         statement so that debug info can be generated on it.
19697         (source_start_java_method): Reverse argument list after they've
19698         been processed.
19699         (current_this): New static global variable.
19700         (java_complete_expand_methods): Set current_this when appropriate.
19701         (resolve_expression_name): Build correct static and non static
19702         field access bearing a simple name.
19703         (resolve_field_access): Resolve the length field of arrays. Handle
19704         f.m() cases.
19705         (patch_method_invocation_stmt): Set the type of the method
19706         invocation to error_mark_node. This value is later overridden by a
19707         valid type, if any. Don't handle qualified constructor invocation
19708         as qualified method invocation. Call lookup_method_invoke with its
19709         new flag. It's no longer necessary to access the selected method
19710         as the value of a tree list. Handle constructor invocation.
19711         (patch_invoke): Reverse argument list when invoking non interface
19712         methods. Insert call to new as the first argument of the
19713         constructor.
19714         (invocation_mode): Return a INVOKE_STATIC is the invoked method is
19715         defined within a final class. Return INVOKE_STATIC if the invoked
19716         method is a constructor.
19717         (lookup_method_invoke): New lc argument is a flag to indicate a
19718         constructor lookup. Now handle constructor lookup. Choose the most
19719         specific method in case several were matching the invocation
19720         requirements. Return a method decl instead of a tree list featuring
19721         one single method decl element.
19722         (refine_accessible_methods_list): New lc flag argument to
19723         indicate that a constructor is being looked up.
19724         (not_initialized_as_it_should_p): New function.
19725         (java_complete_tree): Now process fake tree codes
19726         JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR and JAVA_THIS_EXPR. Call
19727         save_expr on resolved function call arguments. Case on
19728         UNARY_PLUS_EXPR changed into a case on JAVA_UNARY_PLUS_EXPR.
19729         (patch_assignment): LHS can be a field access expression. When
19730         dealing with reference, lhs_type is the promoted type of the
19731         rhs_type, not the RHS. Use not_initialized_as_it_should_p where
19732         applicable.
19733         (operator_string): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
19734         (patch_binop): Use not_initialized_as_it_should_p where
19735         applicable.
19736         (build_unaryop): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
19737         (patch_unaryop): Likewise. And use not_initialized_as_it_should_p
19738         where applicable.
19739         (resolve_type_during_patch): New function.
19740         (patch_cast): Call resolve_type_during_patch to resolve type and
19741         report error accordingly.
19742         (patch_array_ref): Use not_initialized_as_it_should_p where
19743         applicable. Array base expression is saved before being
19744         used. Promote the type of an array elements if it contains non
19745         builtin types.
19746         (build_newarray_node, patch_newarray, build_this): New functions.
19747
19748 1998-07-16  Tom Tromey  <tromey@cygnus.com>
19749
19750         * gjavah.c (print_c_decl): UTF8_GET increments pointer; don't
19751         increment it in `for' statement.
19752         (print_field_info): If number is inf or nan, don't print it.
19753         (print_method_info): If method name is `delete', just ignore it.
19754         (print_c_decl): Special-case jstringArray.
19755
19756         * gjavah.c (help): New function.
19757         (no_argument): New function.
19758         (usage): Changed text.
19759         (main): Rewrote argument handling.  Now handles -v, --help,
19760         --version.
19761         (version): New function.
19762         (found_error): New global.
19763         (main): Return found_error.
19764         (generate_access): Set found_error.
19765         (print_c_decl): Likewise.
19766
19767 1998-07-15  Tom Tromey  <tromey@cygnus.com>
19768
19769         * gjavah.c (print_c_decl): Don't print "," when examining field.
19770         Skip type name when looking at "[L" types.
19771         (process_file): Now static.
19772         (generate_access): Now returns int.
19773         (last_access_generated): New global.
19774         (process_file): Clear last_access_generated; make multiple passes
19775         over the class.
19776         (print_field_info): Just return if generate_access returns true.
19777         (print_method_info): Likewise.  Also, allow <init> functions to
19778         pass through.
19779         (print_c_decl): Added is_init argument.  Print constructors
19780         properly.
19781         (print_cxx_classname): Use UTF8_GET to extract characters from
19782         string.
19783         (print_base_classname): New function.
19784         (print_class_decls): New function.
19785         (process_file): Use it.
19786         (utf8_cmp): New function.
19787
19788 1998-07-13  Nick Clifton  <nickc@cygnus.com>
19789
19790         * lang-options.h: Format changed to match changes in gcc/toplev.c
19791         to implement a --help option.
19792
19793 1998-07-10  Brendan Kehoe  <brendan@cygnus.com>
19794
19795         * decl.c (init_decl_processing): Revert change to dtable_type.
19796
19797 1998-07-09  Per Bothner  <bothner@cygnus.com>
19798
19799         * java-tree.h (CLASS_P):  Changed DECL_LANG_FLAG_7 -> TYPE_LANG_FLAG_4.
19800
19801 1998-07-08  Brendan Kehoe  <brendan@cygnus.com>
19802
19803         * decl.c (init_decl_processing): Set CLASS_LOADED_P on dtable_type.
19804
19805         * lang.c (lang_init): Default flag_exceptions to 1, without
19806         checking to see if it's 2 first.
19807
19808 1998-07-08  Jeffrey A Law  (law@cygnus.com)
19809
19810         * constants.c: Include "system.h".
19811         * decl.c: Likewise.
19812         * lang.c (flag_new_exceptions): Get via extern now.
19813         (lang_init_options): New functions.  Turn on flag_new_exceptions.
19814
19815 1998-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19816
19817         * lex.c (java_lex): Return 0 when we see an invalid character in
19818         the input.
19819
19820         * lex.c (java_read_char): Specify extra argument when calling
19821         java_lex_error.
19822         (java_read_unicode, java_parse_end_comment,
19823         java_parse_escape_sequence): Likewise,
19824         (java_lex): Specify extra argument when calling
19825         java_lex_error. Test that IDs are beginning with a legal character
19826         for IDs. Handle invalid characters with an error message and a
19827         call to java_lex_error.
19828         (java_lex_error): Adjust column position by new argument
19829         `forward'. Issue an error even if in the middle of reporting an
19830         other error.
19831
19832 1998-07-07  Brendan Kehoe  <brendan@cygnus.com>
19833
19834         * jcf-io.c (find_class): Zero out BUFFER before we use it, since
19835         we don't explicitly put a null pointer when we're copying it.
19836
19837 1998-07-07  Tom Tromey  <tromey@cygnus.com>
19838
19839         * gjavah.c (print_cxx_classname): New function.
19840         (super_class_name): Likewise.
19841         (print_super_fields): Removed.
19842         (in_super): Removed.
19843         (print_field_info): Never generate #defines.
19844         (print_c_decl): Changed generated types to match JNI.  No longer
19845         print class name before method name.
19846         (print_method_info): Print "static" before static methods.
19847         Print "virtual" before non-final methods.
19848         (usage): Use exit(1), not exit(-1).
19849         (main): Likewise.
19850         (print_field_info): Use %.17g to print a double.
19851         (last_access): New globals.
19852         (process_file): Initialize last_access.
19853         (usage): Now static.
19854         (ACC_VISIBILITY): New define.
19855         (generate_access): New function.
19856         (print_field_info): Call it.
19857         (print_method_info): Likewise.  Also, generate information for all
19858         methods, not just native methods.  Return void.
19859         (print_c_decl): Return void.
19860         (print_field_info): Return void.
19861
19862 1998-07-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19863
19864         * Makefile.in (JAVABISONFLAGS): Specific flag for bison when
19865         processing the jc1 grammar file. Prefix bison functions and
19866         variables with java_.
19867         (parse.c): Dependencies on parse.h and lex.h
19868         * expr.c (build_java_arrayaccess): Function now global.
19869         * java-tree.h: Comment reorganized to carry on previous
19870         classification effort.
19871         (RESOLVE_EXPRESSION_NAME_P, RESOLVE_PACKAGE_NAME_P,
19872         RESOLVE_TYPE_NAME_P): New flags on WFLs.
19873         * jcf-parse.c (parse_source_file): java_parse_source_file renamed
19874         java_parse (new prefix java_ generated by bison).
19875         (java_layout_parsed_class, java_register_parsed_class): Function
19876         call removed.
19877         (yyparse): Removed unnecessary call to init_outgoing_cpool.
19878         * lex.c (static tree wfl_op): Variable deleted.
19879         (java_init_lex): Initialize kw_super and kw_this. Initialize more
19880         ctxp fields to NULL_TREE.
19881         (java_lex): No longer create WFL for operators. Filename caching
19882         mechanism deleted. Call BUILD_OPERATOR for `.', '(', '['. Strings
19883         created as STRING_CST and later expanded. Removed extra argument
19884         to BUILD_OPERATOR and BUILD_OPERATOR2. Build operators for THIS
19885         and SUPER.
19886         (build_wfl_node): Removed code in comments.
19887         * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): No longer build a WFL but
19888         store token and location data in the current bison token.
19889         * parse.h: Removed pre-processor based symbol prefixes hack. Moved
19890         static/extern function declaration at the beginning of the file.
19891         (struct qualification): Data structure definition deleted.
19892         (RESOLVE_CHAIN_REMAINDER): Macro definition deleted.
19893         (qualify_ambiguous_name): Function declaration modified. Function
19894         now returns nothing.
19895         (build_array_ref, patch_array_ref, make_qualified_name,
19896         resolve_qualified_expression_name, maybe_generate_clinit,
19897         resolve_field_access): New static function declarations.
19898         (build_java_arrayaccess): New extern function declaration.
19899         (enum { RESOLVE_EXPRESION_NAME...}): Enum deleted.
19900         (CALL_EXPR_PRIMARY): Macro deleted.
19901         (EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION): New macros.
19902         (struct parser_ctxt): Field initialized_final
19903         removed. non_static_initialized, static_initialized: New fields.
19904         * parse.y (static tree kw_super, static tree kw_this): New global
19905         static.
19906         (%union): tree wfl field of operator member replaced by int
19907         location. WFLs are non longer created for operators.
19908         (OSB_TK, DOT_TK, THIS_TK, SUPER_TK): Tagged <operator>.
19909         (qualified_name:): Now calls make_qualified_name to build the
19910         identifier.
19911         (type_declaration:): Consider generating <clinit> when class
19912         parsing completed.
19913         (variable_declarator:): Directly build an assignment node when the
19914         variable is initialized when declared.
19915         (this_or_super:): Build a WFL and set current location when THIS
19916         or SUPER are parsed.
19917         (expression_statement:): Wrap statement around a WFL.
19918         (primary_no_new_array:): Fixed typo. Changed value returned by
19919         THIS_TK because of its new type (temporary).
19920         (dim_exprs:): Temporary fix because of OSB_TK's new type.
19921         (field_access:): Build qualified name with SUPER.
19922         (method_invocation:): Fixed returned value because of SUPER's new
19923         type.
19924         (array_access:): Use OSB_TK location information.
19925         (post_increment_expression:, post_decrement_expression:,
19926         unary_expression:, pre_increment_expression:,
19927         pre_decrement_expression:, unary_expression_not_plus_minus:,
19928         cast_expression:, multiplicative_expression:,
19929         additive_expression:, shift_expression:, relational_expression:,
19930         equality_expression:, and_expression:, exclusive_or_expression:,
19931         inclusive_or_expression:, conditional_and_expression:,
19932         conditional_or_expression:, assignment:): Use new location/token
19933         information available on operators.
19934         (create_class): Set super_decl_type to NULL_TREE when processing
19935         java.lang.Object.
19936         (register_fields): Field initialization is now a MODIFY_EXPR
19937         node. Chain initialization code to the matching lists (according
19938         to the field declaration modifiers).
19939         (maybe_generate_clinit): New function.
19940         (method_header): Don't set method's DECL_NAME to a WFL when adding
19941         methods to java.lang.Object.
19942         (resolve_and_layout): Now can return NULL_TREE if the type
19943         resolution fails. Otherwise, return the class DECL instead of its
19944         TYPE.
19945         (check_method_redefinition): Don't patch method DECL_NAME if it
19946         belongs to java.lang.Object.
19947         (process_imports): Simply assign error_found to the value returned
19948         by check_pkg_class_access.
19949         (declare_local_variables): Don't use their init statements (if
19950         any) when parsing error were previously found. Reuse MODIFY_EXPR
19951         build during parsing as an init statement.
19952         (java_method_add_stmt): Now return the current method body.
19953         (java_layout_parsed_class, java_register_parsed_class): Functions
19954         removed.
19955         (java_complete_expand_methods): Initialize the constant pool on a
19956         per class basis. Layout the classes before expanding their method
19957         bodies. Don't try expand artificial constructor code if error were
19958         found. Make the classes data and register them if no error were
19959         found.
19960         (java_complete_expand_method): Retrieve an artificial constructor
19961         argument list before entering its body. Assign the top block to
19962         the artificial constructor function body and set types of declared
19963         blocks and compound statements to void. Walk method body if not an
19964         artificial constructor.
19965         (make_qualified_name, cut_identifier_in_qualified): New functions.
19966         (resolve_expression_name): Fixed comments. Save/restore the
19967         current class CLASS_LOADED_P flag value. Build non qualified
19968         static field access and handle qualified expression names.
19969         (resolve_field_access, resolve_qualified_expression_name): New
19970         functions.
19971         (patch_method_invocation_stmt): Use the new expression resolution
19972         scheme, calling resolve_field_access when the function call is
19973         resolved as an expression.
19974         (qualify_ambiguous_name): Function rewritten to work on qualified
19975         expression produced by make_qualified_name.
19976         (java_complete_tree): Promote type when function's argument are
19977         RECORD_TYPEs. While processing the MODIFY_EXPR case: don't patch
19978         the assignment to discover further errors if RHS is a expression
19979         name that fails to evaluate. Declare LHS initialized even though
19980         the assignment failed. Don't use the location variable and removed
19981         extra argument in patch function calls. Now handle the ARRAY_REF
19982         case and build internal string representation when STRING_CSTs are
19983         walked.
19984         (build_method_invocation): Don't wrap function call around a WFL.
19985         (build_assignment): Likewise. Use the operator location
19986         information.
19987         (patch_assignment): Handle array access LHSs. Handle error
19988         provenance, resulting in a better error report.
19989         (build_binop): Use op_location from operator as binop location
19990         information.
19991         (build_unaryop, build_incdec, build_cast): Likewise.
19992         (patch_binop): Extract location information from the node. Fixed
19993         typo in error message.
19994         (patch_unary_op): Extract location information from the node.
19995         (build_array_ref, patch_array_ref): New functions.
19996
19997 1998-07-01  Tom Tromey  <tromey@cygnus.com>
19998
19999         * expr.c (expand_java_INSTANCEOF): Changed calling convention to
20000         match _Jv_IsInstanceOf.
20001         * decl.c (init_decl_processing): Use _Jv_NewArray, not
20002         soft_newarray.  Use _Jv_IsInstanceOf, not soft_instanceof.
20003
20004 1998-06-30  Tom Tromey  <tromey@cygnus.com>
20005
20006         * decl.c (init_decl_processing): Functions are now named
20007         _Jv_MonitorEnter and _Jv_MonitorExit, and return jint.
20008
20009 1998-06-29  Per Bothner  <bothner@cygnus.com>
20010
20011         * java-tree.h (load_class):  Add prototype.
20012         * class.c (is_compiled_class):  Add missing arg to load_class.
20013         * expr.c (expand_java_NEW):  Call load_class.
20014         * parse.y (process_import):  Removed bogus use of void return value.
20015
20016 1998-06-25  Per Bothner  <bothner@cygnus.com>
20017
20018         * decl.c, java-tree.h (soft_athrow_node):  Renamed to soft_node.
20019         Function name is "_Jv_Throw" instead of "soft_athrow".
20020         * decl.c, java-tree.h (soft_new_node):  Renamed to alloc_object_node.
20021         Function name is "_Jv_AllocObject" instead of "soft_new".
20022         Takes an extra parameter (object size).
20023         * expr.c:  Update calls.
20024
20025 1998-06-24  Per Bothner  <bothner@cygnus.com>
20026
20027         * lex.c (java_get_line_col):  Handle end-of-file.
20028         * except.c (expand_end_java_handler):  Handle null type (i.e. finally).
20029
20030 1998-06-24  Andrew MacLeod  <amacleod@cygnus.com>
20031
20032         * lang.c (lang_init): Make -fexceptions the default.
20033         * except.c (maybe_start_try, maybe_end_try): Don't do anything if
20034         exception handling is not turned on.
20035
20036 1998-06-23  Andrew MacLeod  <amacleod@cygnus.com>
20037
20038         * lang.c (flag_new_exceptions): Make this this default.
20039         * decl.c (end_java_method): Call emit_handlers.
20040         * except.c (method_init_exceptions): Set language code and version.
20041         (expand_start_java_handler): Enable exception, and call
20042         expand_eh_region_start.
20043         (expand_end_java_handler): Enable exception, and set up catch blocks.
20044         (emit_handlers): New routine to generate the saved handlers.
20045         * java-except.h (emit_handlers): Add prototype.
20046
20047 1998-06-12  Per Bothner  <bothner@cygnus.com>
20048
20049         We used to have three different representations of the constant pool:
20050         the CPool structure, the tree_constant_pool, and the constructures
20051         used to build the Class object (which may need class and string
20052         constants) in compiled code.  None were appropriate for compiling
20053         to .class files, so I did a major overhaul.
20054
20055         First, the tree_constant_pool array was removed.  Things were
20056         modified to the CPool structure in the JCF could be used.
20057         Second, a "capacity" field was added to the CPool, and functions
20058         written to search for a matching constant, adding one if not found.
20059         The code that generated the Class object was changed to use a CPool.
20060         The actual TREE_LISTs used to build the CONSTRUCTORs used for
20061         the static Class object are now only in build_constants_constructor.
20062         Finally, I wrote code which can generate a .class file (including its
20063         constant pool) from the RECORD_TYPE of a class.  This is a big step
20064         on the way to compiling Java source into .class files.
20065
20066         * jcf-write.c:  New file. Writes out a RECORD_TYPE as a .class file.
20067         * Makefile.in (JAVA_OBJS):  Added jcf-write.o.
20068
20069         * java-tree.h (CPOOL_UTF, CONSTANT_ResolvedFlag,
20070         CONSTANT_ResolvedString, CONSTANT_ResolvedClass):  New macros.
20071         (NAME_AND_TYPE_NAME, NAME_AND_TYPE_SIGNATURE, COMPONENT_REF_NAME,
20072         COMPONENT_REF_NAME_AND_TYPE, COMPONENT_REF_SIGNATURE): Redefined.
20073         (COMPONENT_REF_CLASS):  Replaced by COMPONENT_REF_CLASS_INDEX.
20074         (lang_type):  Removed constant_pool field.
20075         * jcf.h (CPool):  Renamed size to count.  Added field capacity.
20076         (CPOO_COUNT, CPOOL_UINT, CPOOL_USHORT1, CPOOL_USHORT2,
20077         CPOOL_FINISH, CPOOL_INIT, CPOOL_REINIT):  New macros.
20078         Rewrite some of the old JCF_XXX in terms of CPOOL_XXX macros.
20079
20080         * constants.c (current_constant_pool_tags, current_constant_pool_data,
20081         current_constant_pool_length), java-tree.h: Replaced by outgoing_cpool.
20082         * constants.c (build_constants_constructor):  Use new outgoing_cpool.
20083         (set_constant_entry, find_constant1, find_constant2,
20084         find_class_constant, count_constant_pool_bytes, write_constant_pool,
20085         find_utf8_constant, find_class_or_string_constant):  New functions.
20086
20087         * jcf-parse.c (load_class):  Don't save/restore tree-constant_pool.
20088         (get_constant):  Use current_jcf.cpool instead of tree_constant_pool.
20089         (give_name_to_class, get_class_constant):  Likewise.
20090         * jcf-parse.c, java-tree.h (tree_constant_pool):  Removed.
20091         (get_name_and_type_constant, get_ref_constant):  Removed.
20092         * parse.h (parser_ctxt):  Remove field tree_constant_pool.
20093         * parse.y:  Don't save/restore tree_constant_pool.
20094         * verify.c (verify_jvm_instructions):  Update for new approach.
20095         * expr.c (expand_invoke, expand_java_field_op): Likewise.
20096
20097         * lang-options.h:  Added -femit-class-file, -femit-class-files.
20098         * lang.c (flag_emit_class_files), java-tree.h:  New flag.
20099         (lang_f_options):  Added "emit-class-file(s)".
20100
20101         * expr.c (build_java_arrayaccess):  Generate more efficient array
20102         bounds checking, by using unsigned compare.
20103
20104         * expr.c (expand_invoke):  Re-arrange error checks to make more robust.
20105
20106 1998-06-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20107
20108         * parse.h: New comment on the handling of unresolved type
20109         identifiers. JDEPs are now part of the jdep_code enum.
20110         (typedef struct jdep): Now use enum jdep_code or int, depending on
20111         availability. Both are narrowed down to an 8 bits bitfield.
20112         (CALL_EXPR_PRIMARY): Fixed comment.
20113
20114 1998-06-10  Tom Tromey  <tromey@cygnus.com>
20115
20116         * Make-lang.in (java): Added gjavac and jvgenmain.
20117         (java.start.encap): Depend on gjavac.
20118         (java.rest.encap): Depend on jvgenmain.
20119
20120         * Make-lang.in (JAVA_INSTALL_NAME): Name is gjavac, not c++.
20121         (JAVA_CROSS_NAME): Likewise.
20122         (java.all.build): Depend on jvgenmain and gjavac.
20123         (java.all.cross): Depend on jvgenmain and gjavac-cross.
20124         (jvgenmain$(exeext)): New target.
20125         (java.install-common): Wrote.
20126         * config-lang.in (compilers, stagestuff): Added gjavac and
20127         jvgenmain.
20128
20129 1998-06-10  Dave Brolley  <brolley@cygnus.com>
20130
20131         * lang.c (lang_decode_option): New argc/argv interface.
20132
20133 1998-06-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20134
20135         * ChangeLog: Fixed entries not compliant with the Gnu Coding Standard.
20136         * decl.c (build_decl_no_layout): New function.
20137         * expr.c (java_lang_expand_expr): Layout declarations found in
20138         blocks before they're pushed.
20139         * jcf-parse.c (load_class): Save current line when parsing class
20140         file.
20141         (parse_source_file): Register class before expanding their
20142         methods.
20143         * lang.c (put_decl_node): Produce `null' when `void *' is
20144         processed.
20145         * lex.c (static tree wfl_op): New static global, for error report
20146         on casts.
20147         (java_init_lex): wfl_operator and wfl_op initialized
20148         here. Filename caching added for wfl_op. Return wfl_op when `(' is
20149         parsed.
20150         * parse.h (build_unaryop, build_incdec, patch_unaryop, build_cast,
20151         patch_cast, valid_ref_assignconv_cast_p, can_cast_to_p,
20152         build_unresolved_array_type): New static function definitions.
20153         (build_decl_no_layout): New extern function declared.
20154         (OBSOLETE_MODIFIER_WARNING): Report error only if the WFL of the
20155         faulty modifier exists.
20156         (TYPE_INTERFACE_P, TYPE_CLASS_P): New macros.
20157         (ERROR_CAST_NEEDED_TO_INTEGRAL): Error message tuned.
20158         (UNARY_PLUS_EXPR): New fake operator.
20159         (struct parser_ctxt): New field osb_number.
20160         * parse.y (static tree wfl_operator): New static WFL for operator
20161         bound error messages.
20162         (DECR_TK, INCR_TK): Moved.
20163         (OP_TK): Tagged <operator>.
20164         (array_type:): Now call build_unresolved_array_type.
20165         (dim_expr:): Count the number of '[' seen.
20166         (post_increment_expression, post_decrement_expression,
20167         pre_increment_expression, pre_decrement_expression,
20168         unary_expression_not_plus_minus, unary_expression:): Actions are
20169         now building the corresponding unary expressions.
20170         (cast_expression:): Actions are now building cast expressions.
20171         (build_unresolved_array_type): New function.
20172         (create_interface): Reset the number of declared interfaces.
20173         (create_class): Likewise.
20174         (method_header): Methods declared within the scope of an interface
20175         are now implicitly set public and abstract.
20176         (java_complete_class): Variable's and parameter's type are patched
20177         with a promoted type.
20178         (declare_local_variables): Resolved non builtin types are promoted
20179         before being used to build a variable decl. Removed type patch
20180         posted on variable initialization statement.
20181         (source_start_java_method): Use build_decl_no_layout to build the
20182         decl of a parameter of incomplete type.
20183         (java_register_parsed_class): Process interfaces too. Call
20184         rest_of_decl_compilation on each processed class declarations.
20185         (java_complete_expand_methods): Don't attempt to expand things in
20186         interfaces.
20187         (java_complete_tree): Process CONVERT_EXPR, even though it always
20188         has a type. Propagate error_mark_node to node's type too. Promote
20189         method's call argument type and return error_mark_node if
20190         argument's completion didn't work. MODIFY_EXPR can have a WFL as a
20191         RHS. Fixed bug in the handling of bogus RHS of a fixed type. Now
20192         handle unary operator nodes.
20193         (build_assignment): Added comment.
20194         (print_int_node): New function.
20195         (patch_assignment): New second argument. New error handling. Use
20196         print_int_node. Handle references. Use can_cast_to_p to issue
20197         different error message according to the context and check upon
20198         the initialization of the RHS.
20199         (can_cast_to_p, valid_ref_assignconv_cast_p): New functions.
20200         (operator_string): Handle more operators.
20201         (patch_binop): No longer use a function static
20202         wfl_operator. Improved error message on shift distance.
20203         (build_unaryop, build_incdec, build_cast, patch_unaryop,
20204         patch_cast): New functions.
20205
20206 1998-06-05  Per Bothner  <bothner@cygnus.com>
20207
20208         * jvspec.c:  New file.
20209         * Make-lang.in:  New rules to build gjavac from jvspec.c and ../gcc.c.
20210
20211         * java-tree.h (identifier_subst):  Add declaration.
20212
20213 1998-06-04  Tom Tromey  <tromey@cygnus.com>
20214
20215         * jvgenmain.c (main): Generate call to JvRunMain.
20216
20217         * class.c (make_class_data): Push value for "sync_info" field.
20218         * decl.c (init_decl_processing): Push "sync_info" field.
20219
20220 1998-06-03  Per Bothner  <bothner@cygnus.com>
20221
20222         * typeck.c (build_java_array_type):  Set TYPE_NAME to actual
20223         Java (source) name, not signature.
20224         Set TYPE_ALIGN to (at least) that of element_type.
20225
20226 1998-06-02  Per Bothner  <bothner@cygnus.com>
20227
20228         * class.c:  Moved classname-mangling-rekated code to ...
20229         * mangle.c:  ... this new file.
20230         * jvgenmain.c:  New program (needs mangle.c) to generate main program.
20231         * Makefile.in:  Update for above changes.
20232
20233 1998-06-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20234
20235         * expr.c (truthvalue_conversion): Convert integer and floating
20236         point value to their truth value.
20237         * lex.c (java_lex): Handle the `null' literal.
20238         * parse.h (JREFERENCE_TYPE_P, DECL_P): New macros.
20239         (ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
20240         ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED):
20241         New macros.
20242
20243         * parse.y: Reorganization/documentation on token declaration.
20244         (binop_lookup[]): New added new tree codes.
20245         (relational_expression): Build corresponding binary operators.
20246         (equality_expression, conditional_and_expression,
20247         conditional_or_expression): Likewise.
20248         (java_complete_class): Fix crash in debug message.
20249         (java_complete_tree): Check initialization of method call
20250         arguments. Further bogus node evaluation to detect more error
20251         during assignments. Handles more binary operators.
20252         (patch_assignment): Use DECL_P.
20253         (build_binop): Fix crash when using URSHIFT_EXPR, a Java only tree
20254         code.
20255         (operator_string): Handle more case. Compacted source.
20256         (patch_binop): Changed function comment. Checking for
20257         uninitialized first operand takes the compound assignment into
20258         account and uses DECL_P. Checking for uninitialized second operand
20259         delayed to routine's end. Use macros to issue type bound error
20260         messages and issue messages on both operands if their types are
20261         different. Force fixed type into node. Handle all binary
20262         operators.
20263
20264 1998-05-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20265
20266         * java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros.
20267         * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
20268         build operator node and return tokens.
20269         * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
20270         * parse.h (java_complete_tree): Changed returned type in prototype.
20271         (build_method_invocation, build_assignment, patch_assignment,
20272         patch_binop): New static function declarations.
20273         (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
20274         BUILD_EXPR_WFL): New macros.
20275         * parse.y (enum tree_code binop_lookup[]): New static for token to
20276         TREE_CODE lookup.
20277         (%union): Parser union has new sub-structure `operator'.
20278         (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
20279         PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
20280         ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
20281         ASSIGN_ANY_TK): Tokens tagged `operator'.
20282         (EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK,
20283         AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK,
20284         MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK,
20285         REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'.
20286         (assignment_operator:): Rule tagged `operator'.
20287         (expression_statement:): Re-installed default rule.
20288         (method_invocation:): Sub rules call build_method_invocation.
20289         (postfix_expression:): Don't attempt to resolve name here. Just
20290         return an ID.
20291         (multiplicative_expression:): Sub-rules build corresponding binop
20292         expression node.
20293         (additive_expression:, shift_expression:, and_expression:,
20294         exclusive_or_expression:, inclusive_or_expression:): Likewise.
20295         (assignment:): Sub rule invoke build_assignment.
20296         (assignment_operator:): Default rules on sub rules.
20297         (force_error): Added documentation on this variable.
20298         (declare_local_variables): Build initialization calling
20299         build_assignment.
20300         (expand_start_java_method): Removed unused rtx declaration. Mark
20301         arguments as already initialized.
20302         (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
20303         (java_complete_expand_methods): Don't process next method if
20304         completion of the previous one triggered errors.
20305         (java_complete_expand_method): Call source_end_java_method if no
20306         error were found during completion.
20307         (resolve_expression_name): Use IDENTIFIER_LOCAL_VALUE to retrieve
20308         locals declaratilon. Handle names found within a class. Return
20309         error_mark_node when things aren't found.
20310         (patch_method_invocation_stmt): Return error_mark_node on failures.
20311         (patch_invoke): Removed unused local. Return the correct node.
20312         (java_complete_tree): Now returns a value. The BLOCK section binds
20313         local identifiers and the type of a BLOCK is now void. Assign the
20314         result of operand completion on COMPOUND_EXPR. Assign the
20315         encapsulated node of a WFL to the result of its completion, except
20316         when the node is an identifier. Now handle MODIFY_EXPR and several
20317         binary operators. Return error_mark_node on errors.
20318         (build_method_invocation, build_assignment, patch_assignment,
20319         build_binop, operator_string, patch_binop): New functions.
20320         * typeck.c (binary_numeric_promotion): New function.
20321
20322 1998-05-21  Per Bothner  <bothner@cygnus.com>
20323
20324         * class.c (identifier_subst):  New convenience wrapper for ident_subst.
20325         Replace most uses of ident_subst by identifier_subst.
20326
20327         * class.c (push_class_static_dummy_field):  Removed function.
20328         (build_class_ref):  Find Class object decl by looking up "CNAME.class",
20329         instead of looking got "class" static field.  Create that decl here.
20330         (class_identifier_node):  Removed;  no longer needed.
20331         (init_class_processing):  Don't init class_identifier_node.
20332         * jcf-parse.c (jcf_parse):  Don't call push_class_static_dummy_field.
20333         Do nreverse 0 times (instead of twice) for Object and Class.
20334         * parse.y (java_layout_parsed_class): No push_class_static_dummy_field.
20335
20336 1998-05-20  Per Bothner  <bothner@cygnus.com>
20337
20338         * jcf-parse.c (parse_class-file):  Set lino to smallest line number,
20339         while initializing linenumber_count and linenumber_table.
20340         Do it before init_function_start (which calls emit_line_note).
20341         * expr.c (expand_byte_code):  Don't need to clear lineno here.
20342
20343 1998-05-18  Tom Tromey  <tromey@cygnus.com>
20344
20345         * class.c (append_gpp_mangled_type): If `qualifications' is >=9,
20346         then mangle number as _N_.
20347
20348         * class.c (mangle_class_field): New function.
20349         (build_class_ref): Set assembler name of class reference using
20350         mangle_class_field.
20351         (push_class_static_dummy_field): Likewise.
20352
20353 1998-05-17  Michael Tiemann <tiemann@cygnus.com>
20354
20355         * parse.y (source_start_java_method): Use TREE_SET_CODE instead
20356         of assigning to TREE_CODE.  The latter method exploits a feature
20357         of GCC that is not ANSI compliant.
20358
20359 1998-05-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20360
20361         * decl.c (pushdecl_force_head): New function.
20362         (pushlevel): Removed conditional printf.
20363         (complete_start_java_method): Don't enter local variable scope if
20364         function is compiled from source code.
20365         * expr.c: parse.h now included
20366         (java_lang_expand_expr): New function.
20367         * jcf-io.c (find_class): Use SOURCE_FRONTEND_DEBUG instead of
20368         printf. Terminate buffer when doing directories.
20369         * jcf-parse.c (parse_source_file): Call lang_init_source before
20370         parsing and before code generation.
20371         * jcf.h (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally
20372         use printf if the macro is defined.
20373         * lang.c (lang_init): Install lang_expand_expr hook on
20374         java_lang_expand_expr.
20375         (java_dummy_print): New function.
20376         (lang_init_source): New function.
20377         * lex.c (java_lex): Remember location of an opening brace at the
20378         second nesting level.
20379         (java_is_eol): Unget character seen after a CR if it is EOF.
20380         * parse.h: Now includes lex.h
20381         (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally use
20382         printf if the macro is defined.
20383         (expand_start_java_method, build_expr_block, enter_block,
20384         exit_block, lookup_name_in_blocks, maybe_absorb_scoping_blocks):
20385         New static function declarations.
20386         (pushdecl_force_head): New extern function declaration.
20387         (INCOMPLETE_TYPE_P): New macro.
20388         (JDEP_PARM, JDEP_TYPE): New entries in JDEPs enum.
20389         (BLOCK_CHAIN_DECL, BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY,
20390         BLOCK_EXPR_ORIGIN): New macros.
20391         (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
20392         DECL_SOURCE_LINE_LAST): New macros.
20393         (struct parser_ctxt): Removed field current_method_decl, redundant
20394         with the field current_function_decl. Added fields
20395         first_ccb_indent1 and pending_block.
20396         * parse.y (method_body, literal, INT_LIT_TK, FP_LIT_TK,
20397         BOOL_LIT_TK, CHAR_LIT_TK, STRING_LIT_TK, NULL_TK, VOID_TK): Rules
20398         tagged <node>
20399         (SOURCE_FRONTEND_DEBUG): Used as macro accepting varargs.
20400         (compilation_unit:): Cosmetic on sub rule.
20401         (type_declaration:): Cosmetic on sub rules. Added an error rule.
20402         (variable_initializer:): Installed default rule on expression:.
20403         (method_declaration:): method_header: starts a new
20404         method. method_body: installs the function body, absorbs blocks
20405         emitted for temporary variable scopings, pops function's body block
20406         and merges function's last statement lineno in DECL_SOURCE_LINE.
20407         (method_body:): Installed default rules.
20408         (block:): Call enter_block when an opening brace is seen.  Absorb
20409         scoping blocks and call exit_block when a closing brace is seen.
20410         (block_statement:): Cosmetic changes.
20411         (method_invocation:): Create WFL around CALL_EXPR node.
20412         (patch_stage): Added comment around definition.
20413         (method_header): Try to use first_ccb_indent1 as the first line of
20414         the method, so BP debug info are emitted at the first opening
20415         brace of the function. If the function has no body, use the
20416         location of the function's name. Override currently defined method
20417         name with the matching WFL so we can point redefinition errors
20418         using the location where the function's name was declared.
20419         (check_abstract_method_header): Interprets DECL_NAME as an
20420         identifier or as a WFL, accordingly.
20421         (java_complete_class): New cases for JDEP_TYPE and JDEP_PARM.
20422         (check_method_redefinition): Use DECL_NAME as a WFL. Extract
20423         location and name information out of it and reinstall DECL_NAME to
20424         its original identifier node value.
20425         (lookup_cl): Use DECL_SOURCE_LINE_FIRST (first line of the
20426         function's source code).
20427         (read_import_dir): Test the value returned by find_class and issue
20428         a fatal accordingly.
20429         (declare_local_variables): Push a new block for the scope of the
20430         new variable(s) if code has been already generated at that nesting
20431         level. Pinpoint redefinition errors using the variable id
20432         WFLs. Generate initialization code if necessary. If the variable
20433         type is incomplete, register a patch on its decl.
20434         (source_start_java_method): Rewritten. Define a new block for the
20435         function's parameters. Build parameter decl out of function's
20436         arguments and register them for a patch if their types are
20437         incomplete.
20438         (expand_start_java_method): Includes the part of
20439         source_start_java_method that was pushing the parameter decls and
20440         completing the method start code.
20441         (source_end_java_method): Removed call the expand_end_bindings and
20442         poplevel (already taken care of). Reinstall function's arguments
20443         and get function's last line of code before calling
20444         expand_function_end.
20445         (java_method_add_stmt): New comment before the function's
20446         code. Complement the second operand of the current COMPOUND_EXPR
20447         if necessary.
20448         (java_complete_expand_methods): Don't generate debug info on line
20449         zero when expanding a generated constructor.
20450         (java_complete_expand_method): Set start and end line numbers for
20451         a artificially generated constructor to one and manually call
20452         enter_block and exit_block when defining it. For all methods:
20453         expand function's start calling the new expand_start_java_method
20454         and invoke java_complete_tree on the effective method's body, if
20455         any.
20456         (resolve_expression_name): Now use lookup_name_in_blocks to search
20457         local variable decls and print out an error when variables are
20458         undefined.
20459         (patch_method_invocation_stmt): Inserted comment before the
20460         function's code.
20461         (lookup_method_invoke): Chain method's arguments using chainon
20462         with the current arg list as a second argument. Inserted missing
20463         IDENTIFIER_POINTER when reporting an error on methods not found.
20464         (refine_accessible_methods_list): Don't retain constructors.
20465         (patch_arguments): Function removed.
20466         (java_complete_tree): Inserted comment before the function's
20467         code. New case for BLOCKs. Moved the WFL case a bit
20468         further. Complete function's arguments.
20469         (build_expr_block, enter_block, exit_block, lookup_name_in_blocks,
20470         maybe_absorb_scoping_blocks): New functions.
20471
20472 1998-04-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20473
20474         * jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if
20475         previously set.
20476         * jcf-parse.c (parse_source_file, java_error_count): New forward
20477         and extern declarations.
20478         (java_parse_abort_on_error): Macro moved.
20479         (jcf_parse_source): fatal called if fopen fails. Now calls
20480         parse_source_file.
20481         (parse_source_file): New parse_only parameter. Reflects the
20482         elimination of the second pass.
20483         (yyparse): parse_source_file called with argument set to 0.
20484         * jcf.h (JCF_ZERO): Sets java_source to zero.
20485         * lex.c (java_init_lex): pass argument is gone. Function modified
20486         to be called once during the analysis of a file.
20487         (java_unget_unicode): Fixed typo in fatal message.
20488         (java_get_line_col): Likewise.
20489         (java_lval): Likewise. String literals no longer built during
20490         second pass.
20491         * lex.h (JAVA_COLUMN_DELTA): Take the tabulation character into
20492         account.
20493         * parse.h (MODIFIER_WFL): New macro.
20494         (parse_check_super, parser_check_super_interface): Now return int.
20495         (parser_chain_incomplete_item, not_builtin_p,
20496         complete_method_decl): Declarations removed.
20497         (build_method_invocation_stmt, build_invoke): Renamed using the
20498         `patch' instead of `build'
20499         (register-incomplete_type, obtain_incomplete_type,
20500         java_complete_tree, java_complete_expand_method,
20501         unresolved_type_p, create_jdep_list): New function declarations.
20502         (IC_TYPE, IC_DEPEND, DEPEND_DECL, DEPEND_WFL, BEGIN_ONLY_PASS,
20503         END_ONLY_PASS, ELSE_ONLY_PASS): Macro deleted.
20504         (jdep): New typedef on new struct _jdep.
20505         (JDEP_DECL, JDEP_DECL_WFL, JDEP_KIND, JDEP_SOLV, JDEP_WFL,
20506         JDEP_MISC, JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN,
20507         JDEP_TO_REVOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
20508         JDEP_RESOLVED_P): New macros.
20509         (JDEP_NO_PATCH, JDEP_SUPER, JDEP_FIELD, JDEP_METHOD,
20510         JDEP_METHOD_RETURN, JDEP_METHOD_END, JDEP_INTERFACE,
20511         JDEP_VARIABLE): New enum values and jdep kinds.
20512         (jdeplist): New typedef on struct _jdeplist.
20513         (CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, JDEP_INSERT): New
20514         macros.
20515         (CALL_EXPR_PRIMARY): New macro.
20516         (struct parser_ctxt): Fields java_pass, current_method_decl,
20517         method_decl_list deleted. New field jdeplist.
20518         (INCOMPLETE_P): Macro deleted.
20519         * parse.y (single_type_import_declaration:): Removed pass switch.
20520         (type_import_on_demand_declaration): Likewise.
20521         (field_declaration:): Removed pass switch on all sub rules.
20522         (class_declaration:): Call the complete_class_decl removed on
20523         class_body rules.
20524         (method_declaration:): Removed second pass switch. No longer chain
20525         methods decl when method_header reduced.
20526         (method_header:): Sub rules no longer depend on pass switch.
20527         (method_declarator:): Likewise.
20528         (method_body:): Likewise.
20529         (abstract_method_declaration:): Likewise.
20530         (block_statement:): Likewise.
20531         (local_variable_declaration:): Likewise.
20532         (argument_list:): Likewise.
20533         (method_invocation:): Likewise. Call to build_method_invocation_stmt
20534         removed. Partial CLASS_EXPR tree node built instead.
20535         (postfix_expression:): Removed pass switch on all sub rules.
20536         (java_pop_parser_context): Free classd_list content.
20537         (yyerror): Call obstrack_grow0 to finalize error message.
20538         (check_class_interface_creation): Comment modified to reflect new
20539         returned value meaning. Removed second pass switch. Return 1 if an
20540         error was found, 0 otherwise. Adjust pointer on filename if a
20541         leading path separator was found.
20542         (maybe_create_class_interface_decl): Removed first pass switch
20543         when linking the class decl to the class_list. Install a new
20544         jdep_list for the class.
20545         (add_superinterfaces): List of unresolved interfaces is
20546         gone. Unresolved interfaces are directly added to the current
20547         dependencies list.
20548         (create_interface): Second pass shortcut removed.
20549         ctpx->modifier_ctx access through MODIFIER_WFL.
20550         (create_class): Second pass shortcut removed. Call to
20551         register_incomplete_type replaces the call to
20552         parser_chain_incomplete_item.
20553         (complete_class_decl): Function removed.
20554         (duplicate_declaration_error): New way of retrieving redeclared
20555         item type.
20556         (register_fields): Call to lookup_modifier_cl replaced by
20557         MODIFIER_WFL. New way of handling unresolved type, using
20558         unresolved_type_p and obtain_incomplete_type.
20559         register_incomplete_type replaces call to parser_chain_incomplete_item.
20560         (patch_stage): New static global variable.
20561         (method_header): New way of handling unresolved type, using
20562         unresolved_type_p and obtain_incomplete_type. patch_stage used to
20563         indicates that the method decl needs to be patched.
20564         (check_abstract_method_header): Call to lookup_modifier_cl
20565         replaced by MODIFIER_WFL.
20566         (method_declarator): Incomplete argument type are registered
20567         calling register_incomplete_type. Patch on the declared method is
20568         issued in that case.
20569         (unresolved_type_p): New function.
20570         (parser_check_super_interface): New comment to reflect function's
20571         modified returned type (int). Function and has a new argument
20572         this_wfl. Call to parse_error_context uses this_wfl instead of
20573         relying on lookup_cl.
20574         (parser_check_super): Comment reflects function's new returned
20575         type (int). Function returns nonzero value on error.
20576         (create_jdep_list, reverse_jdep_list, obtain_incomplete_type,
20577         register_incomplete_type, jdep_resolve_class): New functions to
20578         handle incomplete types in declarations.
20579         (java_complete_class): Rewritten to work with the new incomplete
20580         type handling scheme.
20581         (complete_class_report_errors): Likewise.
20582         (complete_method_decl): Removed: it jobs is now handled by
20583         java_complete_class.
20584         (do_resolve_class): Class loaded in not already loaded and not
20585         found in Java source code.
20586         (java_check_regular_methods, java_check_abstract_methods): Don't
20587         call complete_method_decl anymore.
20588         (lookup_modifier_cl, not_builtin_p): Functions deleted.
20589         (read_import_dir): Got rid of the pass number dependency.
20590         (declare_local_variables): New handling of unresolved types (patch
20591         issued).
20592         (source_start_java_method): New parameter level. Function called
20593         with level set to 1 when argument types are potentially
20594         unresolved.  Called to complete the job with level set to 2 once
20595         types are complete.
20596         (source_end_java_method): Call to permanent_allocation
20597         removed. Waiting to be replaced by a more suitable obstack
20598         management.
20599         (java_complete_expand_methods, java_complete_expand_method,
20600         java_expand_finals): New functions.
20601         (build_method_invocation_stmt): Renamed
20602         patch_method_invocation_stmt. Extracts function call expression
20603         (wfl) and arguments (args) from CALL_EXPR tree operands.
20604         (build_invoke): Renamed patch_invoke. Fixed typo in fatal
20605         call. Patch the function and argument operand of the CALL_EXPR
20606         tree argument.
20607         (patch_argument, java_complete_tree): New functions.
20608
20609 1998-04-20  Per Bothner  <bothner@cygnus.com>
20610
20611         Recover from missing fields and methods (i.e. error instead of fatal).
20612         * decl.c, java-tree.h (TYPE_identifier_node):  New global constant.
20613         * expr.c (expand_invoke):  Recover from missing method.
20614         (expand_java_field_op):  Recover from missing field.
20615         Inline references to java.lang.{Integer,Char,...}.TYPE.
20616         * typeck.c (get_type_from_signature), java-tree.h:  New function.
20617         * class.c (add_method):  Use get_type_from_signature.
20618         (build_class_ref):  Handle a class that was not found.
20619         * typeck.c (convert):  Handle conversion to pointers (for convenience).
20620         * verify.c (verify_jvm_instructions):  Use get_type_from_signature
20621         instead of lookup_field to handle missing fields.
20622
20623         * jcf-parse.c (process_zip_dir):  Set java_source.
20624
20625 1998-04-20  Brendan Kehoe  <brendan@cygnus.com>
20626
20627         * jcf-parse.c (set_source_filename): Use TYPE_NAME, not DECL_NAME.
20628
20629 1998-04-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20630
20631         * jcf-parse.c (load_class): Don't change input_filename before
20632         calling jcf_parse_source (but still do it before calling
20633         jcf_parse).
20634         (jcf_parse_source): Assign input_filename after having saved the
20635         parser context.
20636         * lex.c (java_init_lex): Chain a WFL node to the import on demand
20637         list. ctxp->modifier_ctx zeroed according to its new
20638         definition. ctxp->filename initialized. Removed
20639         JAVA_MODIFIER_CTX_UNMARK.
20640         (java_unget_unicode): Update the character based column position.
20641         (java_allocate_new_line): ref_count not used anymore. Always free
20642         ctxp->p_line. Initialize c_line->char_col to 0.
20643         (java_get_unicode): Update the character based column position.
20644         (java_lex): Use ctxp->elc to store current position in source
20645         file, at the beginning of the parsed token. Set modifier_ctx entry
20646         corresponding to the parse modifier to a WFL node. Return a WFL
20647         node when an identifier is parsed.
20648         (java_lex_error): Now uses ctxp->elc to store current position in
20649         source.
20650         (build_wfl_node, java_is_eol, java_get_line_col): New functions.
20651         * lex.h (build_wfl_node): New function definitions.
20652         (struct java_line): ref_count and next fields are gone. New field
20653         char_col.
20654         (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
20655         JAVA_LINE_UNMARK, ID_NAME, ID_CL): Macro definitions deleted.
20656         (JAVA_COLUMN_DELTA): New macro.
20657         (java_lc): New typedef on new struct _java_lc.
20658         * parse.h (lookup_cl, lookup_modifier_cl): Changed returned types.
20659         (parse_error_context, parse_warning_context): Changed prototypes.
20660         (java_get_line_col): Added as an available global function.
20661         (JAVA_MODIFIER_CTX_UNMARK): Macro removed.
20662         (IC_DECL): Replaced by macro IC_TYPE
20663         (DEPEND_WFL): New macro.
20664         (THIS_MODIFIER_ONLY): Now works with WFL and only remembers the first
20665         wrong modifier.
20666         (exit_java_complete_class): Removed a commented out statement.
20667         (struct parser_ctxt): Added comments on fields. modifier_ctx is
20668         now an array of tree nodes. Deleted fields line_list and
20669         e_line. New field elc, to replace e_line.
20670         * parse.y (array_type:): Build WFL node.
20671         (qualified_name:): Build a single WFL node out of two. Retain
20672         the location information of the first node in the resulting node.
20673         (package_declaration:): Use package name as a WFL node
20674         (single_type_import_declaration:): Use imported name as a WFL node.
20675         (type_import_on_demand_declaration:): Use root of the imported
20676         packages as a WFL node.
20677         (field_declaration:): Removed unused local variable cl.
20678         (method_declaration:): Don't call JAVA_MODIFIER_CTX_UNMARK.
20679         (yyerror): New static elc. Removed static error_line, error_pos.
20680         New local code_from_source. Save ctxp->elc into elc at the first
20681         pass. Call java_get_line_col to get a string of the line where
20682         the error occurred.
20683         (debug_line): Removed static function.
20684         (parse_error_context, parse_warning_context): Parameter cl is now
20685         a WFL node. Use its value to initialize ctxp->elc.
20686         (redefinition_error): Parameter cl is now a WFL node.
20687         (parse_add_interface): New parameter wfl. No longer call
20688         lookup_cl, use wfl instead.
20689         (check_class_interface_creation): Parameter cl is now a WFL node.
20690         (maybe_create_class_interface_decl): Likewise.
20691         (add_superinterfaces): New function.
20692         (create_interface): Removed local cl, node, super_decl,
20693         super_decl_type.  Function now uses id as a WFL node. Better
20694         warning/error report on obsolete or forbidden mix of
20695         modifiers. Now calls add_superinterfaces to register interfaces.
20696         (create_class): Removed local cl, node. Local variable id is used
20697         as a WFL node. Better error report on forbidden modifier
20698         mix. Uses add_superinterfaces to register interfaces.
20699         (find_field): Argument cl is now a WFL node. Now store the WFL
20700         node of a fields that needs to be checked for their
20701         initialization.
20702         (method_header): Local variable node non longer used. Local
20703         variable id replaces cl.
20704         (check_modifiers_consistency): Local variable cl is now a WFL
20705         node.
20706         (method_declarator): Local variable cl replaced by parameter id.
20707         (parser_qualified_name): Now uses parameter name as a WFL node.
20708         (parser_check_super_interface): New parameter wfl, for achieve
20709         greater accuracy during error reports.
20710         (parser_chain_incomplete_item): New parameter named location. Used,
20711         along the decl, to construct the incomplete item node.
20712         (java_complete_class): resolve_class now uses WFL node extracted
20713         from the incomplete item node. Macro IC_TYPE replaces TREE_PURPOSE
20714         where appropriate.
20715         (complete_method_decl): Unresolved function's argument types are WFL.
20716         (resolve_class): Parameter cl is now a WFL node.
20717         (resolve_and_layout): Likewise.
20718         (do_resolve_class): Likewise. Try first to use cl and then do the
20719         lookup on the decl when calling check_pkg_class_access.
20720         (complete_class_report_errors): Use IC_TYPE in place of
20721         TREE_PURPOSE where appropriate. Use DEPEND_WFL on dependency
20722         instead of doing a lookup over the decl.
20723         (java_check_final): Use WFL info from field tree list.
20724         (lookup_cl): Rewritten and returns a statically defined WFL node.
20725         (lookup_modifier_cl): Now uses information from WFL nodes.
20726         (process_imports): Likewise.
20727         (read_import_dir): name and cl arguments replaced by a single WFL
20728         node. Function modified accordingly.
20729         (find_in_imports_on_demand): Now uses WFL node.
20730         (check_pkg_class_access): cl argument is now a WFL node.
20731         (declare_local_variables): Fixed to use WFL nodes.
20732         (resolve_expression_name): Likewise.
20733         (build_method_invocation_stmt): name_combo argument renamed
20734         wfl. Function modified to use WFL nodes.
20735         (build_invoke): cl used as a WFL node when calling build_expr_wfl.
20736         (lookup_method_invoke): cl is now a WFL node. Added missing
20737         IDENTIFIER_POINTER to class type decl name.
20738
20739 1998-04-14  Dave Brolley  <brolley@cygnus.com>
20740
20741         * lang.c (init_parse): Now returns char* containing the filename.
20742
20743 1998-04-10  Per Bothner  <bothner@cygnus.com>
20744
20745         * class.c (layout_class):  Mangle repeated arg types to match cc1plus.
20746
20747         * decl.c, java-tree.h (integer_four_node):  New INTEGER_CST node.
20748         * class.c (make_class_data):  If flag_assume_compiled, initial class
20749         state is CSTATE_PREPARED; make superclass and interfaces direct
20750         references, rather than constant pool indexes.
20751
20752 1998-04-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20753
20754         * parser.y: Include flags.h. Removed debug variable pl.
20755         (method_declaration:): Uses ctxp->parser_ccb_indent instead of pl.
20756         (block:): Likewise.
20757         (labeled_statement_nsi:): Generate debug info when reducing
20758         expression_statement:.
20759         (check_pkg_class_access): get_access_flags_from_decl invocation
20760         fixed for new CLASS_* flags location.
20761         (source_end_java_method): Save/restore parser context when
20762         entering/leaving this routine. Restore lineno to its right value
20763         before calling expand_end_bindings.
20764         (build_method_invocation_stmt): build_invoke called with the
20765         current line information.
20766         (build_invoke): New argument cl. Wrap the function call around a
20767         wfl node.
20768         (refine_accessible_methods_list): Changed comment, removed
20769         unnecessary code.
20770         * parse.h: Fixed typo in comments.
20771         (CLASS_OR_INTERFACE): Handle the new CLASS_* flags location.
20772         (JAVA_MAYBE_GENERATE_DEBUG_INFO): New macro.
20773         (struct parser_ctxt): New fields ccb_indent, last_ccb_indent1,
20774         parser_ccb_indent.
20775         * lex.c (java_lex): Record the last closing curly bracket of a
20776         function.
20777         * jcf-parse.c (jcf_parse_source): Now calls
20778         java_check_methods. Clarified comment, fixed typo.
20779
20780 1998-04-09  Dave Brolley  <brolley@cygnus.com>
20781
20782         * lang.c (init_parse): Expose for non USE_CPPLIB builds.
20783         (finish_parse): Expose for non USE_CPPLIB builds.
20784
20785 1998-04-08  Jeffrey A Law  (law@cygnus.com)
20786
20787         * lang.c (lang_print_xnode): New function.
20788
20789 1998-04-03  Per Bothner  <bothner@cygnus.com>
20790
20791         * decl.c (class_dtable_decl), java-tree.h:  New tree node.
20792         * class.c (get_dispatch_vector, get_dispatch_table):  New functions
20793         used to build a class's dispatch table.
20794         (make_class_data):  Generate dispatch table if flag_assume_compiled.
20795         Set dtable of class object to address of class_dtable_decl.
20796
20797         * decl.c (int_decl_processing):  Make soft_badarrayindex_node
20798         be volatile and have side effects - generates better code.
20799
20800         * class.c, expr.c, parse.y:  CLASS_INTERFACE, CLASS_FINAL, etc:
20801         These flags were defined for TYPE_DECLs, but used on RECORD_TYPEs.
20802
20803         * expr.c (expand_invoke):  If class is final, method is
20804         effectively final, so can call it directly.
20805
20806         * java-tree.h (TYPE_NVIRTUALS, TYPE_VTABLE):  New macros.
20807
20808         * Makefile.in, Make-lang.in:  Add missing $(exeext)s.
20809
20810 1998-03-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20811
20812         * parse.y (build_method_invocation_stmt): Removed extra argument
20813         to build_invoke.
20814
20815 1998-03-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20816
20817         * expr.c (dtable_indent): Now static global.
20818         (expand_invoke): Now call invoke_build_dtable and
20819         build_invokevirtual.
20820         (invoke_build_dtable, build_invokevirtual): New functions.
20821         * jcf-io.c (find_class): Defer issuing a warning by setting
20822         jcf->outofsynch to 1.
20823         * jcf-parse.c (jcf_out_of_synch): New function.
20824         (load_class): Test this_jcf.outofsynch flag and call
20825         jcf_out_of_synch accordingly.
20826         * jcf.h: (typedef struct JCF): New flag outofsynch. Fixed typo in
20827         comment indentation.
20828         * lex.c (java_get_unicode): Fixed code indentation.
20829         (java_lex): Create string literal. Fixed typo. Removed several
20830         premature obstack_free.
20831         * parse.h: New enums for name resolution and invocation mode.
20832         (struct qualification): New data structure.
20833         (RESOLVE_CHAIN_REMAINDER, BUILD_PTR_FROM_NAME): New macros.
20834         (do_resolve_class, build_method_invocation_stmt,
20835         breakdown_qualified, qualify_ambiguous_name, resolve_and_layout,
20836         debug_line, identical_subpath_p, invocation_mode,
20837         refine_accessible_methods_list, build_invoke,
20838         lookup_method_invoke): New functions declared.
20839         (build_invokevirtual, invoke_build_dtable, match_java_method,
20840         build_field_ref, jcf_out_of_synch): New references to external
20841         functions.
20842         (struct parse_ctxt): Removed artificial_constructor field.
20843         * parse.y: (array_type:): Type defined for this rule.
20844         (class_type:): Installed default rule for interface_type:.
20845         (array_type:): Now build Java array type.
20846         (qualified_name:): Now use obstack_grow0.
20847         (method_declaration:): Skip the artificial constructor added to
20848         the list, if any.
20849         (abstract_method_declaration:): Execute the code only during pass 1.
20850         (block:): Installed default rule in block_statements:.
20851         (block_statement:): Add the statement to the method during pass 2.
20852         (statement_expression): Installed default rule for
20853         method_invocation:.
20854         (argument_list:): Added code to build the argument list.
20855         (method_invocation:): Added call to create the method invocation
20856         node.
20857         (yyerror): Now use obstack_grow0. Removed bogus obstack_free.
20858         (debug_line): New function for debug.
20859         (complete_class_decl): No longer do something during pass 1.
20860         (method_header): Use BUILD_PTR_FROM_NAME.
20861         (parser_qualified_classname): Use obstack_grow0. Removed bogus
20862         obstack_free.
20863         (parser_chain_incomplete_item): Use BUILD_PTR_FROM_NAME. Modified
20864         function's main comment.
20865         (java_complete_class): Set CLASS_LOADED_P on all fixed incomplete
20866         classes.
20867         (complete_method_decl): Use BUILD_PTR_FROM_NAME and promote types.
20868         (resolve_class): Now works with arrays.
20869         (do_resolve_class, resolve_and_layout): New functions.
20870         (java_check_regular_methods): Reverse method list before and after
20871         having processed it. No longer set ctxp->artificial_constructor.
20872         (read_import_dir): Test jcf->outofsynch and call jcf_out_of_synch
20873         accordingly. Fixed typo in issued error message. Now use
20874         obstack_grow0.
20875         (find_in_imports_on_demand): Now use obstack_grow0.
20876         (declare_local_variables): Use BUILD_PTR_FROM_NAME.
20877         (source_end_java_method): Call expand_expr_stmt instead of
20878         expand_expr. Calls it before calling expand_function_end.
20879         (java_method_add_stmt): Do nothing if errors were found during
20880         parsing.
20881         (java_layout_parsed_class): Set CLASS_LOADED_P and fixed typo.
20882         (build_method_invocation_stmt, build_invoke, invocation_mode,
20883         lookup_method_invoke, refine_accessible_methods_list,
20884         qualify_ambiguous_name, breakdown_qualified, identical_subpath_p):
20885         New functions.
20886         * typeck.c (build_java_signature): Properly end method signature
20887         if return type skipped.
20888         (match_java_method): New function.
20889
20890 1998-03-16  Per Bothner  <bothner@cygnus.com>
20891
20892         * jcf-io.c (find_classfile):  If USE_JCF_STDIO, fopen in binary mode.
20893
20894 1998-02-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20895
20896         * expr.c (build_invoke_non_interface): New function.
20897         (methods_ident, ncode_ident): Now static globals.
20898         (expand_invoke): Use build_invoke_non_interface.
20899         * java-tree.h (struct lang_decl): New field function_decl_body.
20900         (DECL_FUNCTION_BODY): New macro.
20901         * jcf-parse.c (jcf_parse_source): Deeper check before setting
20902         CLASS_FROM_SOURCE_P.
20903         (parse_source_file): Fixed typos. Call java_layout_parsed_class
20904         before starting pass 2. Call to java_generate_parsed_class replaced
20905         by java_register_parsed_class.
20906         * lex.c: Fixed typo in header. Some line width related formating.
20907         * lex.h: Some line width related formating.
20908         * parse.h (source_end_java_method, resolve_expression_name,
20909         complete_class_decl, maybe_create_class_interface_decl,
20910         check_class_interface_creation): New static function declarations.
20911         (java_layout_parsed_class, java_method_add_stmt): New function
20912         declarations.
20913         (struct parser_ctxt): Field mark_class_generate removed. New
20914         fields class_list and artificial_constructor.
20915         * parse.y: Fixed typo in header.
20916         (class_declaration:): Call complete_class_decl when class body
20917         parsed.
20918         (method_declaration:): Call source_end_java_method in pass 2 when
20919         the method body is defined.
20920         (postfix_expression:): Do expression name resolution on sub-rule
20921         name during pass 2.
20922         (create_class, create_interface): Merged common pieces.
20923         (check_class_interface_creation, maybe_create_class_interface_decl):
20924         New functions.
20925         (complete_class_decl): New function.
20926         (register_fields): Fixed line width related typo.
20927         (method_header): Correctly skip first argument when fixing
20928         argument line. Changed the loop.
20929         (java_check_circular_reference): Now use ctxp->class_list.
20930         (java_complete_class): Removed start/stop marking.
20931         (java_check_regular_methods): Now takes a class decl as an
20932         argument.  Add default constructor if none were encountered.
20933         (java_check_methods): Now use ctxp->class_list. Changed call to
20934         java_check_regular_methods.
20935         (source_start_java_method): Set DECL_ARG_TYPE for each function
20936         arguments.
20937         (source_end_java_method, java_method_add_stmt): New functions.
20938         (java_generate_parsed_class): No longer exists.
20939         (java_layout_parsed_class, java_register_parsed_class): New functions.
20940         (resolve_expression_name): New function.
20941
20942 1998-02-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20943
20944         * jcf-parse.c: (parse_source_file): Check on errors after init lex.
20945         * lex.c: (java_init_lex): Defer ctxp->java_pass initialization
20946         until pass initializations are done. Call read_import_dir with
20947         pass set to 0.
20948         * parse.h: (lookup_modifier_cl): New function declared.
20949         (INTERFACE_FIELD_MODIFIERS): New macro.
20950         (OBSOLETE_MODIFIER_WARNING): New macro.
20951         * parse.y: (register_fields): Class type and current field name in
20952         local variables. Check modifier(s) if adding field(s) to an interface.
20953         (check_abstract_method_header): Now use OBSOLETE_MODIFIER_WARNING
20954         and report errors using the faulty modifier line context.
20955         (lookup_modifier_cl): New function.
20956         (read_import_dir): Detect and report default import processing
20957         failure.
20958
20959 1998-02-11  Brendan Kehoe  <brendan@cygnus.com>
20960
20961         Add a pair of -fassume-compiled/-fno-assume-compiled options.
20962         * class.c (is_compiled_class): Return 1 after making sure it
20963         qualifies as loaded, if FLAG_ASSUME_COMPILED is set.
20964         * lang-options.h: Add -fassume-compiled/-fno-assume-compiled.
20965         * java-tree.h (flag_assume_compiled): Add decl.
20966         * lang.c (lang_f_options): Add the flag.
20967         (flag_assume_compiled): Add decl, default to 0.
20968
20969 1998-02-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20970
20971         * class.c (class_depth): Call to load_class uses extra VERBOSE arg.
20972         (is_compiled_class): Likewise.
20973         (layout_class): Likewise.
20974         (layout_class): Detect and lay out classes defined in source code.
20975         (interface_of_p, add_interface_do, may_add_interface): New
20976         function.
20977         (add_interface): Now use add_interface_do.
20978         (add_method_1): New function.
20979         (add_method): Now use add_method_1.
20980         (pushlevel): Debug message conditional to SOURCE_FRONTEND_DEBUG.
20981         (complete_start_java_method): New function.
20982         (start_java_mehod): Now call complete_start_java_method.
20983         * expr.c (lookup_field): Call to load_class uses extra VERBOSE arg.
20984         (expand_invoke): Likewise and fixed typo.
20985         *gjava.c: (print_super_field): Use new argument to find_class
20986         DO_CLASS_FILE.
20987         (main): Likewise.
20988         *java-tree.h: (CLASS_FROM_SOURCE_P): New flag on RECORD_TYPE.
20989         (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
20990         QUALIFIED_P, IS_AN_IMPORT_ON_DEMAND_P): New flags on
20991         IDENTIFIER_NODE.
20992         (CLASS_COMPLETE_P): New flag on TYPE_DECL.
20993         (add_method_1, push_class): New prototypes.
20994         *jcf-dump.c: find_class now uses new DO_CLASS_FILE argument.
20995         *jcf-io.c: (open_in_zip): jcf now stores a pointer to the Zip
20996         directory where the class was found.
20997         (find_class): New argument DO_CLASS_FILE. Function find_class
20998         modified accordingly.
20999         *jcf-parse.c: (fix_class_path): New function.
21000         (load_class): Use new VERBOSE argument. load_class now finds and
21001         loads/parses .class/.java files. Save read_state of current_jcf
21002         if necessary.
21003         (java_parser_abort_on_error): New macro.
21004         (jcf_parse_source, parse_source_file): New function.
21005         (jcf_parse): Fixed typo.
21006         (yyparse): Call parse_source_file () only.
21007         (process_zip_dir): Fixed typo, fix zdir->filename_length when
21008         writing the real class name back in the zip directory entry.
21009         (find_in_current_zip): IDENTIFIER_CLASS_VALUE may be null.
21010         (jcf_figure_file_type): Fixed bogus alloc and bcopy.
21011         *jcf.h: (typedef struct JCF): New fields java_source and zipd.
21012         (find_class): Prototype fixed.
21013         *lex.c: Added 1998 time stamp.
21014         Removed all static global variables, moved into the parser
21015         context data structure.. Now include unistd.h if SEEK_SET not
21016         defined.
21017         (java_init_lex): Rewritten.
21018         (java_sneak_unicode): Modified current unicode access in current line.
21019         (java_unget_unicode): Likewise.
21020         (java_allocate_new_line): New allocation management.
21021         (java_read_char): Modified access and storage of unget_utf8_value.
21022         New way of processing current unicode.
21023         (java_store_unicode, java_read_unicode): Fixed typo in declaration.
21024         (java_get_unicode): Now use the parser context.
21025         (java_lineterminator): Likewise.
21026         (java_lex): Now used java_lval argument (pointer to YYSTYPE), part
21027         of the reentrant parser implementation. Function now use the
21028         parser context data structure and java_lval. Fixed production of
21029         the float and double constant "out of range" error message. Fixed
21030         obstack use. Return integer value when hitting a modifier. Now
21031         return type for TRUE, FALSE and other predefined types. Return
21032         identifier as a TREE_LIST list containing the current line context
21033         as the TREE_VALUE sub-node.
21034         (java_unicode_2_utf8): Fixed typo in declaration.
21035         (java_lex_error): Now use the parser context data structure.
21036         *lex.h: Added 1998 time stamp.
21037         (struct java_line): New fields ref_count and next.
21038         (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
21039         JAVA_LINE_UNMARK, ID_NAME, ID_CL): New macros.
21040         (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, UNGETC): Fixed.
21041         *parse.h: Added 1998 time stamp.
21042         (java_parse_source_file): Renamed from parse_source_file.
21043         (YYERROR_NOW, YYNOT_TWICE): Fixed.
21044         (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
21045         INTERFACE_MODIFIER, INTERFACE_METHOD_MODIFIERS,
21046         JAVA_MODIFIER_CTX_UNMARK, IC_DECL, IC_DEPEND, DEPEND_DECL,
21047         THIS_MODIFIER_ONLY, ABSTRACT_CHECK, BEGIN_ONLY_PASS,
21048         END_ONLY_PASS, ELSE_ONLY_PASS, exit_java_complete_class,
21049         CLASS_OR_INTERFACE, INCOMPLETE_P): New macros.
21050         (struct parser_ctxt): New data structure to keep the parser context.
21051         *parse.y: Added 1998 time stamp, got rid of static global variables.
21052         (java_error_count, ctxp): New global variables.
21053         (%union): New value field.
21054         (numeric_type, integral_type): Rules removed.
21055         (primitive_type): Rule defined to handle integral, float, double and
21056         boolean types.
21057         (qualified_name, package_declaration,
21058         single_type_import_declaration, type_import_on_demand_declaration,
21059         modifiers, class_declaration, super, interfaces,
21060         interface_type_list, class_body, field_declaration,
21061         field_declaration, variable_declarators, variable_declarator,
21062         variable_declarator_id, method_declaration, method_header,
21063         formal_parameter_list, formal_parameter, method_body, block,
21064         static, interface_declaration, extends_interfaces,
21065         abstract_method_declaration, local_variable_declarators): Rules now
21066         define actions.
21067         (force_error, do_warning): New global statics.
21068         (push_parser_context, parser_context_save_global,
21069         parser_context_restore_global, pop_parser_context): New functions.
21070         (yyerror): Now uses the global parser context. Fixed use of obstack.
21071         (parse_error, parse_error_context, parse_warning_context,
21072         java_accstring_lookup, redefinition_error, check_modifiers,
21073         parser_add_interface, create_interface, create_class, find_field,
21074         duplicate_declaration_error, register_fields, method_header,
21075         check_modifiers_consistency, check_abstract_method_header,
21076         method_declarator, parser_qualified_classname,
21077         parser_check_super_interface, parser_check_super,
21078         parser_chain_incomplete_item, java_check_circular_reference,
21079         layout_class_from_source, java_complete_class,
21080         complete_method_decl, resolve_class, complete_class_report_errors,
21081         java_check_final, check_method_redefinition,
21082         java_check_regular_methods, java_check_abstract_methods,
21083         java_check_methods, lookup_java_interface_method2,
21084         lookup_java_method2, lookup_cl, find_name_in_single_imports,
21085         process_imports, find_in_imports, read_import_entry,
21086         read_import_dir, find_in_imports_on_demand,
21087         check_pkg_class_access, not_builtin_p, declare_local_variables,
21088         source_start_java_method, java_generate_parsed_class): New
21089         functions.
21090         *typeck.c: (signature_include_return): New global variable.
21091         (build_java_signature): Use SIGNATURE_INCLUDE_RETURN figure whether
21092         to add the function returned type in the signature.
21093
21094 1998-02-09  Brendan Kehoe  <brendan@cygnus.com>
21095
21096         * jcf-io.c (open_in_zip): Use strncmp and LEN.
21097
21098 1998-01-29  Dave Brolley  <brolley@cygnus.com>
21099
21100         * Make-lang.in (java.info): Added.
21101         (java.install-info): Added
21102
21103 1998-01-27  Brendan Kehoe  <brendan@cygnus.com>
21104
21105         * Makefile.in (clean): Also remove java/parse.c.
21106
21107 1998-01-26  Brendan Kehoe  <brendan@cygnus.com>
21108
21109         Add a pair of -fbounds-check/-fno-bounds-check options.
21110         * lang.c (lang_decode_option): Add code to grok arguments.
21111         (flag_bounds_check): Add decl.
21112         (lang_f_options): New array w/ the option in it.
21113         * java-tree.h (flag_bounds_check): Add decl.
21114         * lang-options.h: New file.
21115         * expr.c (build_java_arrayaccess): Use flag_bounds_check instead
21116         of a static macro value.
21117         (JAVA_ARRAY_EXCEPTION): Delete macro.
21118
21119 1998-01-23  Per Bothner  <bothner@cygnus.com>
21120
21121         * typeck.c (build_java_array_type):  Fix two bugs in previous change.
21122         * expr.c (build_anewarray):  Add missing promote_type.
21123
21124 1998-01-22  Per Bothner  <bothner@cygnus.com>
21125
21126         Add array types with known length to optimize bounds checking.
21127         * typeck.c (build_java_array_type):  Take length parameter.
21128         (java_array_type_length, build_prim_array_type):  New functions.
21129         * java-tree.h:  Update for new functions.
21130         * expr.c, typeck.c, verify.c: Update build_java_array_type calls.
21131         * class.c:  Use build_prim_array_type.
21132         * expr.c (can_widen_reference_to):  Handle known-length array types.
21133         (verify_jvm_instructions):  Keep track of integer push instructions
21134         followed by newarray/anewarray, so we can build known-length arrays.
21135         (JAVA_ARRAY_DATA_OFFSET):  Replace by ...
21136         (java_array_data_offset):  New function.
21137         (build_java_array_length_access):  New function.  Optimize if constant.
21138         (build_java_arrayaccess):  Constant fold bounds check.
21139         (expand_java_newarray, expand_java_anewarray):  Replaced by ...
21140         (build_newarray, build_anewarray):  New functions.
21141         (ARRAY_NEW_NUM, ARRAY_NEW_PTR):  Use build_{a,}newarray.
21142         * verify.c (merge_types):  Handle known-lengh array types.
21143
21144 1998-01-19  Per Bothner  <bothner@cygnus.com>
21145
21146         * expr.c (expand_byte_code):  Fix performace bug, which caused
21147         searching linenumber_table to be linear rather than constant.
21148
21149 1997-12-12  Per Bothner  <bothner@cygnus.com>
21150
21151         * Makefile.in (BISON, BISONFLAGS):  Add missing macros.
21152
21153         * decl.c, java-tree.h (soft_fmod_node):  New global.
21154         * decl.c (init_decl_processing):  Define __builtin_fmod.
21155         * expr.c (build_java_binop):  Implement TRUNC_MOD_EXPR for REAL_TYPE
21156         using __builtin_fmod.
21157
21158 1997-12-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21159
21160         * keyword.h: New file, output of keyword.gperf as processed by
21161         gperf.
21162         * lex.c (java_lex_init): Initialize java_error_flag.
21163         * parse.c (YYERROR_NOW): Uses java_error_flag.
21164         * parse.y: New static java_error_flag. Useless definition of
21165         buffer_error gone.
21166         * parse.y (java_error): Portable error recovery using
21167         java_error_flag (not yet completely tuned).
21168
21169 1997-12-04  Brendan Kehoe  <brendan@lisa.cygnus.com>
21170
21171         * Makefile.in (parse.c): Use $(srcdir) for parse.y.
21172
21173 1997-12-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21174
21175         * Makefile.in: (JAVA_OBJS): New object jcf-parse.o.
21176         (parse.c, lex.c, keyword.h): New rules for Java source code
21177         front-end.
21178         * parse.c: Renamed into jcf-parse.c.
21179         * jcf-parse.c (yyparse): Invoke the parser to process Java source code.
21180         * keyword.gperf: New file, Java keywords.
21181         * parse.y: New file, Java language grammar.
21182         * parse.h: New file, Java language grammar definitions.
21183         * lex.c: New file, Java language lexer.
21184         * lex.h: New file, Java language lexer definitions.
21185
21186 1997-12-03  Per Bothner  <bothner@cygnus.com>
21187
21188         * decl.c (clinit_identifier_node), java-tree.h:  New global.
21189         * java-tree.h (IS_METHOD_INIT_P, IS_METHOD_CLINIT_P):  Removed.
21190         * verify.c (verify_jvm_instructions):  Inline use of removed macros.
21191         * expr.c (expand_java_field_op):  Check for invalid assignment
21192         to final field.
21193
21194         * jcf-reader.c (get_attribute):  Test for wrong attribute length.
21195
21196 1997-10-27  Per Bothner  <bothner@cygnus.com>
21197
21198         * verify.c (verify_jvm_instructions):  When processing a handler,
21199         attempt to set the current_subr to the right value.
21200         (More complicated code combines Sep 17 and Oct 22 versions.)
21201
21202 1997-10-24  Per Bothner  <bothner@cygnus.com>
21203
21204         * class.c (push_class):  Figure out (guess) name of source file.
21205         * parse.c  (set_source_filename):  Set DECL_SOURCE_FILE of class decl.
21206         (give_name_to_class):  Don't guess source name;  use DECL_SOURCE_FILE.
21207         (parse_class_file):  Change return type from int to void.
21208         Call debug_start_source_file/debug_end_source_file.
21209
21210         * expr.c (build_java_binop):  Fix masking 2nd operand.
21211         * decl.c (init_decl_processing):  Set sizetype first.
21212
21213 1997-10-22  Per Bothner  <bothner@cygnus.com>
21214
21215         * verify.c (verify_jvm_instructions):  Don't set current_subr to NULL.
21216         (Revert Sep 17 change.)
21217
21218 1997-10-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21219
21220         * parse.c (process_zip_dir): Skip ZIP entries not bearing the
21221         .class extension in their name and fix thing so we don't process
21222         them parse_zip_file_entries().
21223         (parse_zip_file_entries): Cleaned unused local variables.
21224
21225 1997-10-20  Per Bothner  <bothner@cygnus.com>
21226
21227         * expr.c (can_widen_reference_to):  Allows equal array element types.
21228         (expand_byte_code):  PRE_RET must expand OPERAND_VALUE (to get index).
21229         * jcf-dump.c (RET):  Get (and print) index.
21230
21231         * verify.c (verify_jvm_instructions case OPCODE_anewarray):
21232         Promote element type to POINTER_TYPE.
21233
21234 1997-10-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21235
21236         * jcf-reader.c, parse.c: (parse_zip_file, process_zip_dir,
21237         find_in_current_zip, jcf_figure_file_type): Moved from
21238         jcf-reader.c to parse.c.
21239         * zextract.c: (read_zip_archive): takes file_comment_length possible
21240         field into account.
21241
21242 1997-10-20  Per Bothner  <bothner@cygnus.com>
21243
21244         * verify.c (verify_jvm_instructions):  Var can also be promoted to int.
21245
21246         * verify.c (merge_types):  Handle array types even better ...
21247
21248 1997-10-17  Per Bothner  <bothner@cygnus.com>
21249
21250         * expr.c (java_stack_pop):  Fix use of NULL_TREE for TYPE_SECOND.
21251
21252         * java-tree.h (PUSH_FIELD):  Set DECL_ARTIFICIAL.
21253         * class.c (make_class_data):  Don't build fields_decl if no fields.
21254         When building fields_decl, skip if DECL_ARTIFICIAL.
21255
21256         * expr.c (java_stack_swap):  Update stack_type_map.
21257         * verify.c (merge_types):  Handle array types better.
21258
21259 1997-10-15  Per Bothner  <bothner@cygnus.com>
21260
21261         * class.c (add_field):  Don't promote short integral fields to
21262         int any more (unless JAVA_PROMOTE_TO_INT), since Kaffe doesn't.
21263         * expr.c (push_value):  Promote and convert short integral values.
21264
21265         * decl.c, java-tree.h (integer_two_node):  New constant node.
21266         * verify.c (merge_types):  Check for TYPE_RETURN_ADDR.
21267
21268 1997-10-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21269
21270         * class.c (append_gpp_mangled_type): Use function argument
21271         unpromoted type to generate mangled name.
21272
21273 1997-10-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21274
21275         * constants.c (build_constant_data_ref): Now uses current_class
21276         instead of main_class.
21277         (build_constants_constructor): Now uses current_class instead of
21278         main_class.
21279         * zipfile.h: (struct ZipFileCache): Now defined here. Declaration
21280         of the global variable SeepZipFiles done here.
21281         * zextract.c (read_zip_archive): extra_field optional field taken
21282         into account while computing the position of the class file in the
21283         archive.
21284         * verify.c (verify_jvm_instructions): Use current_jcf to search
21285         the constant pool.
21286         * parse.c (load_class): First search for the class to load in the
21287         current zip file. Saves current_jcf (restored before returning
21288         from that function). Don't call JCF_FINISH in the class was found
21289         in the current ZIP file.
21290         (jcf_parse): If the class was found in the current ZIP file, save
21291         its tree_constant_pool (for later reuse).
21292         (parse_class_file): New function. Process each method defined in
21293         the current class and record the class as to be later registered.
21294         (yyparse): Rewritten. Figure the type of the current file and switch
21295         accordingly.
21296         * lang.c: New global variable current_jcf.
21297         (lang_init): Removed compiling_from_source test (done later, in
21298         yyparse). Removed call the jcf_parse ().
21299         * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): New defined values.
21300         (typedef struct JCF): New fields seen_in_zip (to mark a class found
21301         in the current ZIP file) and zip_offset (offset to the class data in
21302         the current zip file).
21303         * jcf-reader.c: zipfile.h included.
21304         localToFile: New ZipFileCache static global variable
21305         (parse_zip_file_entries): New function. Browse the current ZIP
21306         file directory and process each class found.
21307         (process_zip_dir): New function. Register each class found in the
21308         ZIP file directory. The class aren't parsed but a valid JCF is
21309         link to each of them.
21310         (find_in_current_zip): New function. Search for a class in the
21311         current ZIP file directory. If found, prepare the class so that it
21312         can be loaded.
21313         (jcf_figure_file_type): New function. Examine the file structure
21314         to figure a class file, a ZIP file. If none of these categories are
21315         matched, a source file is assumed.
21316         * jcf-io.c: Removed definition of ZipFileCache (moved in zipfile.h).
21317         SeenZipFile: New global variable.
21318         (open_in_zip): Use zipmember's length to accelerate the search for
21319         a member. If zipmember was NULL and zip file successfully read,
21320         return 0.
21321         * java-tree.h: New global variable current_jcf declared.  Added
21322         declaration for current_constant_pool_tags, current_constant_pool_data,
21323         current_constant_pool_length, current_constant_pool_data_ref.
21324         (struct lang_type): Augmented with two fields. struct JCF *jcf (to
21325         store the JCF of classes seen in a zip file) and tree *constant_pool
21326         (to save a loaded class constant pool). current_class declared here.
21327         * expr.c (expand_invoke): Use current_jcf instead of main_jcf to
21328         retrieve method_ref_constant.
21329         (PUSHC): java_push_constant_from_pool now uses current_jcf.
21330         (OBJECT): get_class_constant now uses current_jcf.
21331         (ARRAY_NEW_PTR): get_class_constant now uses current_jcf.
21332         (ARRAY_NEW_MULTI): get_class_constant now uses current_jcf.
21333         (expand_invoke): Now uses current_class instead of main_class
21334         (build_class_init): Now uses current_class instead of main_class
21335         * class.c: New static global variable registered_class.
21336         (register_class): New function.
21337         (emit_register_class): Modified to use registered_class instead of
21338         main_class
21339         (is_compiled_class): Now take into account class seen in the archive.
21340
21341 1997-10-06  Per Bothner  <bothner@cygnus.com>
21342
21343         * except.h:  Renamed to: java-except.h.
21344         * parse.c, except.c, expr.c, verify.c:  Update #include accordingly.
21345         * except.c:  Add semi-working (commented out) implementation.
21346
21347         * expr.c (expand_iinc):  Add needed flush_quick_stack.
21348         * parse.c (set_source_filename):  New function.
21349         (give_name_to_class):  Set input_filename from package.classname.java.
21350
21351         * jcf-io.c (find_class):  Don't look first in ".".
21352
21353 1997-10-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21354
21355         * zextract.c (read_zip_archive): Now takes into account the
21356         extra_field field.
21357         * expr.c (can_widen_reference_to): Modified to handle sub-interfaces.
21358
21359 1997-09-20  Per Bothner  <bothner@cygnus.com>
21360
21361         * constants.c, java-tree.h (build_internal_class_name):  New function.
21362         (alloc_class_constant):  Re-implement using build_internal_class_name.
21363         * class.c (make_class_data):  Likewise.
21364         * class.c (hashUtf8String):  Make hash algorithm match String.hashCode.
21365
21366 1997-09-17  Per Bothner  <bothner@cygnus.com>
21367
21368         * verify.c (verify_jvm_instructions):  Temporarily set current_subr
21369         to NULL before pushing an exception handler target.
21370
21371         * expr.c (flush_quick_stack):  Save from low stack indexes to high.
21372         (java_stack_swap, java_stack_dup):  Re-write to be safe from
21373         clobbering registers.
21374         (build_class_init):  New function.
21375
21376 1997-09-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21377
21378         * typeck.c (build_java_array_type): Temporary use
21379         permanent_obstack to create the array 'length' field.
21380         * expr.c (lookup_label): Temporay use permanent_obstack to create
21381         label if not found.
21382         * class.c (push_super_field): Tempory use permanent_obstack.
21383
21384 1997-09-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21385
21386         * typeck.c (type_for_mode): Now handles double_type_node and
21387         float_type_node.
21388         * verify.c (verify_jvm_instructions): The instruction following
21389         the wide bytecode is checked. OPCODE_ret added to the list of
21390         wide.
21391
21392 1997-09-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21393
21394         * class.c (make_class): Temporary use permanent_obstack. Set the
21395         class CLASS_P field to 1.
21396         (push_class): Temporary use permanent_obstack.
21397         (set_super_info): Temporary use permanent_obstack.
21398         (add_method): Temporary use permanent_obstack, set
21399         METHOD_TRANSIENT().
21400         (add_field): Temporary use permanent_obstack. Sets
21401         FIELD_VOLATILE() and FIELD_TRANSIENT().
21402         (build_class_ref): Temporary use permanent_obstack if the class
21403         isn't compiled.
21404         (build_static_field_ref): Temporary use permanent_obstack when
21405         creating field's rtl.
21406         (get_access_flags_from_decl): Handle ACC_VOLATILE, ACC_TRANSIENT,
21407         ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT flags for methods
21408         and fields. Function finalized, as far as flag handling.
21409         (push_class_static_dummy_field): Temporary use permanent_obstack.
21410         (emit_register_class): Force generation of class registration at
21411         -O3 or deeper.
21412         * decl.c (end_java_method): Call permanent_allocation() before
21413         returning.
21414         * expr.c (can_widen_reference_to): Added comment to interface
21415         handling, fixed typo.
21416         (lookup_field): Now uses CLASS_P() to correct FIXME
21417         (expand_invoke): Verification on public && !static &&
21418         !abstract moved into soft_lookupinterfacemethod (kaffe).
21419         Use Object class dtable if objectref is an array when expanding
21420         invokeinterface.
21421         (java_push_constant_from_pool): Temporary use permanent_obstack
21422         for CONSTANT_string
21423         * parse.c (get_ref_constant): Temporary use permanent_obstack to
21424         create constant references.
21425         (get_constant): Temporary use permanent_obstack to create constant.
21426         (load_class): Temporary use permanent_obstack to load class.
21427         (jcf_parse): Temporary use permanent_obstack to perform class
21428         layout.
21429         * typeck.c: (parse_signature_string): Temporary use permanent_obstack.
21430         (build_java_signature): Temporary use permanent_obstack.
21431         * verify.c: (verify_jvm_instruction): removed unnecessary verification
21432         on ACC_SUPER flag.
21433         * java-tree.h (METHOD_NATIVE, METHOD_TRANSIENT): Defined.
21434         (FIELD_VOLATILE, FIELD_TRANSIENT): Defined.
21435         (CLASS_P): Defined
21436
21437 1997-09-11  Per Bothner  <bothner@cygnus.com>
21438
21439         * class.c (append_gpp_mangled_type):  Fix typo.
21440         (emit_register_class):  Use main_class to get class object, rather
21441         than looking for no-longer-existing static decl starting with _CL.
21442         * typeck.c (parse_signature_type):  Promote array element type
21443         if it is a RECORD_TYPE.
21444
21445 1997-09-10  Per Bothner  <bothner@cygnus.com>
21446
21447         * class.c (push_class_static_dummy_field):  New function.
21448         (mangle_static_field):  New. Do G++-style mangling of static fields.
21449         (layout_class):  Mandle static fields here, not in add_field.
21450         (build_class_ref):  The class object is now a dummy static field.
21451         * decl.c (find_local_variable):  Look for best, instead of first match.
21452         * expr.c (push_type):  Always promote_type, not just for RECORD_TYPE.
21453         (build_java_athrow):  Don't check here if exception is Throwable.
21454         * java-tree.h (TYPE_UNSET):  Renamed to TYPE_UNKNOWN.
21455         (TYPE_USED):  Removed.  No longer used ...
21456         * parse.c (jcf_parse):  Call push_class_static_dummy_field.
21457         * verify.c (push_pending_label):  New function.
21458         (push_pending_block):  Renamed to check_pending_block.
21459         (merge_types):  Remove unneeded suuport for TYPE_UNUSED.
21460         (verify_jvm_instructions):  Only reset prev_eh_ranges (to force
21461         re-checking possible handlers) after a store (less wasted work).
21462         Check for null handler (finally) before calling add_handler.
21463         Various changes to (finally?) correctly handle try/finally.
21464
21465 1997-09-09  Brendan Kehoe  <brendan@lisa.cygnus.com>
21466
21467         * class.c: Include stdio.h.
21468
21469 1997-09-04  Per Bothner  <bothner@cygnus.com>
21470
21471         * expr.c (expand_invoke):  Use COMPOUND_EXPR (and TREE_SIDE_EFFECTS)
21472         to make sure class is initialized before static/special invoke.
21473
21474         * verify.c (verify_jvm_instructions):  On a store instruction,
21475         call find_local_variable to force pre-allocation of decl and rtx.
21476         * decl.c (push_jvm_slot):  Set DECL_REGISTER on stack slots.
21477
21478 1997-09-03  Per Bothner  <bothner@cygnus.com>
21479
21480         * class.c (build_class_ref):   Strip off "promoted_" if need be.
21481         (make_field_value): Call build_java_signature when needed.
21482         (layout_class):  Don't make_function_rtl if METHOD_ABSTRACT.
21483         * expr.c (build_java_athrow):  Don't push_value of exception.
21484         (build_java_binop):  Implement COMPARE_L_EXPR and COMPARE_G_EXPR to
21485         match specification of [fd]cmp[lg] for NaNs.
21486         (expand_byte_code):  Add support for exception handler ranges.
21487         * except.c:  Add skeleton for EH code-generation.
21488         * verify.c (merge_types):  Treat all promoted integral types as equal.
21489         * constants.c (build_constants_constructor):  To force creation of
21490         current_constant_pool_data_ref, call build_constant_data_ref.
21491
21492         * javaop.def (lload):  Fix typo.
21493         * jcf-dump.c (main):  Clear filename to prevent possibly-bad free.
21494
21495 1997-09-02  Brendan Kehoe  <brendan@lisa.cygnus.com>
21496
21497         * parse.c: Don't include function.h.
21498
21499 1997-08-27  Per Bothner  <bothner@cygnus.com>
21500
21501         * except.[ch]:  New files.
21502         * Makefile.in (JAVA_OBJS):  Add except.o
21503         * expr.c:  Temporary warning about unimplemented exceptions.
21504         * verify.c:  Verify exception handlers.
21505
21506         * jcf-dump.c (disassemble_method):  Print exception table.
21507
21508 1997-08-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21509
21510         * expr.c (verify_jvm_instructions): Started a thorough
21511         verification of invoke* bytecodes.
21512         (expand_byte_code): flush quick stack if PC is the target of a
21513         branch.  and undef RET (conflicting with config/i386/i386.h).
21514         (expand_java_arrayload): Fixed bogus cast, when Boolean type is
21515         used.
21516         (expand_invoke): Now handles invokeinterface and do more
21517         verification according to the bytecode.
21518         (lookup_field): Don't try to load the class if processing
21519         dtable_type.
21520         (can_widen_reference_to): Now handles interfaces.
21521         * decl.c (init_decl_processing): New global variable
21522         soft_lookupinterfacemethod_node, declared in java-tree.h.
21523         Call set_super_info on string_type_node.
21524         * java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now
21525         defined.
21526         * class.c (set_super_info): Fills the CLASS_* flags according to
21527         access_flags.
21528         (get_access_flags_from_decl): Handles all class flags.
21529
21530 1997-08-26  Per Bothner  <bothner@cygnus.com>
21531
21532         * class.c (add_method):  Zero out newly-allocated DECL_LANG_SPECIFIC.
21533         * parse.c (yyparse):  Check for abstract method, and missing code.
21534         * expr.c (expand_byte_code):  Change interface.
21535         * lang.c (put_decl_node):  Print promoted types prettier.
21536         * verify.c (verify_jvm_instruction):  Change interface.
21537         Partial support for scanning exception table.
21538         For load instructions, handle promoted integral types.
21539
21540 1997-08-21  Per Bothner  <bothner@cygnus.com>
21541
21542         * verify.c:  New file, with contents moved from expr.c.
21543         * expr.c:  Bunch of stuff (mostly verification) moved to verify.c.
21544         * typeck.c (is_array_type_p):  Moved here from expr.c.
21545         * java-tree.h:  Add some now-needed function declarations.
21546         * Makefile.in (JAVA_OBJS): Added verify.o.
21547
21548 1997-08-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21549
21550         * class.c (add_method): Sets the METHOD_SYNCHRONIZED flag, sets the
21551         METHOD_ABSTRACT flag.
21552
21553         * java-tree.h (METHOD_SYNCHRONIZED): Set to DECL_LANG_FLAG_4.
21554         (IS_METHOD_CLINIT_P, IS_METHOD_INIT_P): New macros.
21555         (METHOD_ABSTRACT): Set to DECL_LANG_FLAG_5
21556
21557         * decl.c (soft_monitorenter_node, soft_monitorexit_node): New global
21558         variables.
21559         (start_java_method): Hook for SYNCHRONIZED methods.
21560
21561         * expr.c (build_java_jsr, build_java_ret): New functions
21562         (JSR,PRE): New macros
21563         (PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured.
21564         (verify_jvm_instructions): tableswitch, lookupswitch,
21565         monitorenter, monitorexit, goto_w: verified.
21566         (LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label
21567         (build_java_monitor): New function.
21568         (MONITOR_OPERATION): Modified to call build_java_monitor()
21569         (verify_jvm_instructions): Started a thorough verification of
21570         invoke* bytecodes.
21571
21572 1997-08-19  Per Bothner  <bothner@cygnus.com>
21573
21574         Support verification of jsr/ret subroutines (used for try/finally).
21575         * decl.c (return_address_type_node):  New type node.
21576         * java-tree.h (LABEL_RETURN_LABEL, LABEL_RETURN_TYPE_STATE,
21577         RETURN_MAP_ADJUSTED, LABEL_RETURN_LABELS, LABEL_IN_SUBR,
21578         LABEL_SUBR_START, LABEL_SUBR_CONTEXT, BCODE_VERIFIED):  New macros.
21579         (TYPE_UNSET, TYPE_SECOND, TYPE_NULL, TYPE_RETURN_ADDR, TYPE_UNUSED,
21580         TYPE_USED):  New macros for special types in type_map.
21581
21582         * java-tree.h (BCODE_JUMP_TARGET):  Renamed to BCODE_TARGET.
21583         (BCODE_BACKWARDS_TARGET, CODE_FORWARDS_TARGET):  Replaced by
21584         BCODE_JUMP_TARGET.
21585         * expr.c (expand_byte_code):  Fix logic to warn of unused instructions.
21586
21587         * expr.c (can_widen_reference_to):  New function.
21588         (pop_type):  Use it.
21589         (merge_type_state):  Support handling start of subroutine.
21590         (push_pending_block):  Return char* error message, instead of calling
21591         fatal on an error.  Also handle subroutines.
21592         (verify_jvm_instructions):  Handle errors from push_poending_block.
21593         Support jsr and ret instructions.
21594
21595 1997-08-19  Per Bothner  <bothner@cygnus.com>
21596
21597         * jcf-io.c (find_classfile):  Fix thinko.
21598         * jcf-dump.c:  Add CONVERT2 (to match changed javaop.def).
21599
21600 1997-08-12  Jason Merrill  <jason@yorick.cygnus.com>
21601
21602         * Makefile.in (BISON): Remove.
21603
21604 1997-08-07  Per Bothner  <bothner@cygnus.com>
21605
21606         * Makefile.in:  Convert to autoconf.
21607         * config-lang.in (outputs):  Added java/Makefile.
21608
21609         * Make-lang.in, lang-specs.h, config-lang.in, Makefile.in:
21610         Rename cc1java to jc1.
21611
21612         * lang.c (init_parse, finihs_parse):  New functions #ifdef USE_CPPLIB.
21613         * Makefile.in (INTERNAL_CFLAGS):  Add @extra_c_flags.
21614
21615         * class.c (class_depth):  Do load_class if needed.
21616
21617         Mostly better verification.
21618         * decl.c (pushdecl):  Set TYPE_STUB_DECL for a type.
21619         (init_decl_processing):  Change return type of soft_checkcast.
21620         * expr.c (expand_java_CHECKCAST):  Do push_value of the "casted" value.
21621         * lang.c (put_decl_string, put_decl_node, lang_printable_name,
21622         lang_print_error):  New functions.
21623         (lang_init):  Set global hook print_error_function to lang_print_error.
21624         * expr.c:  In the type_map ptr_type_node is only used for null now.
21625         (pop_type, merge_types):  Hence ptr_type_node matches any reference.
21626         (merge_types):  Dererence pointer to record types before comparing.
21627         (decode_newarray_type, merge_types):  On error just return NULL.
21628         (build_java_binop):  Add preliminary implementation (with warning)
21629         for COMPARE_L_EXPR and COMPARE_G_EXPR (i.e. [fd]cmp[lg]).
21630         (lookup_label):  Set DECL_IGNORED_P (for dwarf2out).
21631         (expand_compare, expand_java_goto, expand_java_call):  Don't
21632         push_pending_block, since that only makes sense when verifying.
21633         (merge_type_state):  Different return codes.
21634         (push_pending_block):  A block may need to be verified more than once.
21635         (expand_byte_code):  Warn about unused code at code generation time.
21636         (verify_jvm_instruction):  Changed logic, since code may need to be
21637         re-verified if type-state has changed.  Also, better error handling.
21638         Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof.
21639         Improve newarray, anewarray, ?aload, athrow,
21640         * java-tree.h (LABEL_CHANGED):  New macro.
21641
21642 1997-08-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21643
21644         * decl.c (soft_athrow_node): New global variable initialized.
21645         * javaop.def (i2b, i2c, i2s): Invoke CONVERT2
21646         * typeck.c (convert): Added support for REAL_TYPE.
21647         (convert_to_char): New function.
21648         (convert): Handle CHAR_TYPE.
21649         * expr.c (expand_java_arraystore): Modified because CHAR/BYTE/BOOLEAN/
21650         SHORT now expect INT but store as CHAR/BYTE/BOOLEAN/SHORT.
21651         (expand_java_arrayload): CHAR/BYTE/BOOLEAN/SHORT now convert result to
21652         promoted type.
21653         (verify_jvm_instructions): Added break a the end of bogus unop: label.
21654         (OPCODE_<b|c|s>astore): Pop an int operand from the type stack
21655         (OPCODE_<b|c|s>astore): Push the promoted type onto the stack
21656         (process_jvm_instruction): New macro CONVERT2 for i2c, i2s and i2b.
21657         (JAVA_ARRAY_LENGTH_OFFSET, JAVA_ARRAY_DATA_OFFSET): Modified
21658         to Use The Right Things.
21659         (pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as
21660         compatible with INT. BOOLEAN is made equivalent to BYTE.
21661         (OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull,
21662         OPCODE_ifnonnull): Now supported.
21663         (build_java_athrow): New function.
21664
21665 1997-08-04  Per Bothner  <bothner@cygnus.com>
21666
21667         Rename method name <init> to match G++ (and fix mangling).
21668         * class.c (layout_class):  Replace method name of <init> by class name.
21669         (make_method_value):  Do inverse renaming of constructor from <init>.
21670         * java-tree.h (DECL_CONSTRUCTOR_P):  New macro.
21671         * typeck.c (lookup_java_constructor):  New function.
21672         * expr.c (expand_invoke):  If method_name is <init>, call
21673         lookup_java_constructor to find constructor.
21674
21675         * parse.c (get_constant):  Handle CONSTANT_Float and CONSTANT_Double.
21676
21677 1997-08-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21678
21679         * parse.c (get_class_constant): Modified to handle array "classes"
21680         * typeck.c (set_local_type): Bug fixed when filling type_map[] with
21681         wide type.
21682         (convert): Modified to handle real type.
21683         * java-tree.h (soft_badarrayindex_node, soft_anewarray_node,
21684         soft_multianewarray, soft_newarray_node, soft_throw_node): New global
21685         variables declared.
21686         * decl.c (soft_badarrayindex_node, soft_anewarray_node,
21687         soft_multianewarray, soft_newarray_node, soft_throw_node): New
21688         global variables initialized.
21689         (find_local_variable): Handles the case of a pointer
21690         (end_java_method): Restore the use of one more scope
21691         * expr.c (build_java_arraynull_check, build_java_arrayaccess,
21692         build_java_array_length_access, expand_java_arrayload,
21693         expand_java_arraystore, expand_java_array_length,
21694         expand_java_multianewarray, expand_java_anewarray,
21695         build_java_check_indexed_type, is_array_type_p,
21696         build_java_throw_out_of_bound_exception): New functions.
21697         (STORE_INTERNAL): Now forces type of the decl to be type of the value.
21698         (OPCODE_arraylength, OPCODE_newarray, OPCODE_<t>astore,
21699         OPCODE_<t>aload): Implemented code for verification.
21700         (ARRAY_STORE, ARRAY_LOAD, ARRAY_LENGTH, ARRAY_NEW_PTR, ARRAY_NEW_NUM
21701         ARRAY_NEW_MULTI): Macro defined.
21702         (CONVERT): Modified to invoke convert().
21703         (case OPCODE_aload2): Fixed index typo from 2 to 1.
21704
21705 1997-07-31  Per Bothner  <bothner@cygnus.com>
21706
21707         * class.c (push_class):  Set DECL_ARTIFICIAL (for dbxout.c).
21708         (build_class_ref, is_compiled_class):  Handle pointer-to-record types.
21709         (make_class_data):  Field name needs '/' as package prefix.
21710         * expr.c (type_stack_dup, java_stack_dup):  Fix fencepost errors.
21711
21712 1997-07-25  Per Bothner  <bothner@cygnus.com>
21713
21714         Implement debug information for local variables.
21715         * java-tree.h (DECL_CODE_LENGTH, DECL_ARG_SLOT_COUNT,
21716         DECL_LOCAL_SLOT_NUMBER, DECL_LOCAL_START_PC, DECL_LOCAL_END_PC,
21717         DECL_LOCAL_SLOT_CHAIN):  New macros.
21718         (struct lang_decl_var):  New type.
21719         * parse.c (give_name_to_locals):  Move to decl.c.
21720         * decl.c (give_name_to_locals):  Re-written to Do The Right Thing.
21721         (start_java_method):  Re-write parameter handling.
21722         (pending_local_decls):  New global variable.
21723         (push_jvm_slot, maybe_pushlevels, maybe_poplevels):  New functions.
21724         (find_local_variable):  Accept pc so we can skips decls not in range.
21725         (struct binding_level):  Add end_pc field.
21726         * expr.c (expand_byte_code): Call maybe_pushlevels and maybe_poplevels.
21727         (various):  Change so current pc gets passed to find_local_variable.
21728
21729         * decl.c (init_decl_processing):  Re-arrange fields in
21730         class_type_node and and method_type_node to match kaffe 0.9.1.
21731         * class.c (make_method_value, make_class_data):  Update
21732         initializations to match.
21733
21734 1997-07-16  Per Bothner  <bothner@cygnus.com>
21735
21736         * class.c (unicode_mangling_length, emit_unicode_mangled_name,
21737         append_gpp_mangled_name, append_gpp_mangled_type):  New functions.
21738         (push_super_field):  New function.
21739         (make_class_data):  Handle inheritance of class static initializer.
21740         (layout_class):  New name mangling.
21741         * constants.c (build_constant_data_ref):  Init type of data array
21742         to a one-element array.
21743         (build_constants_constructor):  Set DECL_SIZE from complete array type.
21744         * decl.c:  Rename class_type, object_type etc to class_type_node,
21745         object_type_node etc.  Make former inherit from latter.
21746         * expr.c (expand_invoke):  Add cast of function address.
21747         * java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE):  New.
21748         * parse.c (yyparse):  Don't call layout_class here.
21749         * typeck.c (build_java_array_type):  Set TYPE_ARRAY_ELEMENT.
21750
21751 1997-06-14  Per Bothner  <bothner@cygnus.com>
21752
21753         * decl.c, class.c:  Update method type to match latest Kaffe snapshot.
21754         * constants.c (lookup_name_constant):  Renamed to alloc_name_constant.
21755         (alloc_class_constant):  New.
21756         * expr.c (expand_invoke):  Make sure method's class is initialized.
21757         * class.c (interits_from_p, emit_register_class):  New functions.
21758         * parse.c (yyparse):  Call emit_register_class.
21759
21760 1997-06-09  Per Bothner  <bothner@cygnus.com>
21761
21762         * constants.c:  New file, to handle constant pool.
21763         * Makefile.in (JAVA_OBJS):  Add constants.o.
21764         * decl.c (init_decl_processing):  Update, fix, finish various structs.
21765         (pushdecl_top_level):  New.
21766         * parse.c (layout_class):  Moved to class.c.
21767         * expr.c (java_push_constant_from_pool):  New function.
21768         * class.c (build_class_ref):  Make work fully
21769         (make_class_data):  Emit super-class, constant pool, interface vector.
21770
21771 1997-06-03  Per Bothner  <bothner@cygnus.com>
21772
21773         java-tree.h (DECL_SIGNATURE, BCODE_EMITTED):  Remove.
21774         (LABEL_VERIFIED, BCODE_EXCEPTION_TARGET, TYPE_ARRAY_P):  New.
21775         * class.c (class_depth):  New function.
21776         (lookup_named_class):  Replaced by new function lookup_class.
21777         * decl.c (object_type_node, string_type_node):  New.
21778         Remove various types that we no longer need.
21779         * expr.c (verify_jvm_instructions):  New separate verifier pass.
21780         (push_type, pop_type):  New functions for verifier.
21781         (type_stack_dup, pop_argument_types, merge_types):  Likewise.
21782         (expand_byte_code):  Simplify, since we assume already verified.
21783         (expand_invoke):  Now mostly works.
21784         * javaop.def:  Rename ldc1->ldc, ldc2->ldc_w, ldc2w->ldc2_w.
21785         * lang.c (main_class):  Move to parse.c.  Don't make_class yet.
21786         * parse.c:  Wait to allocate class object until we know its name.
21787         (layout_class):  Calculate DECL_VINDEX for each virtual method.
21788         * typeck.c (get_array_type):  Rename to ...
21789         (build_java_array_type):  ... and provide working implementation.
21790         (build_java_signature):  New function - build Java signature of type.
21791         (set_java_signature):  New function - cache signature with type.
21792         (lookup_java_method):  New function.
21793
21794 1997-05-06  Per Bothner  <bothner@deneb.cygnus.com>
21795
21796         * class.c (ident_subst):  Take extra SUFFIX parameter.
21797         (add_field):  Set DECL_ASSEMBLER_NAME of static fields;  more.
21798         (set_constant_value, build_static_field_ref, is_compiled_class):  New.
21799         (build_class_ref):  Actually implement.
21800         * decl.c, java-tree.h:  Renamed some xx_type to xx_type_node.
21801         * decl.c (builtin_function):  New.
21802         (init_decl_processing):  Update for current Kaffe.  Declare some
21803         builtin Kaffe functions.
21804         * expr.c (build_address_of):  New.
21805         (expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST):
21806         Renamed (from expand_java_new etc), and added working implementations.
21807         (build_field_ref):  Now also handle static fields.
21808         (expand_invoke):  Implement invokestatic, and start implement rest.
21809         * java-opcodes.h:  Use javaop.def to avoid duplicated list.
21810         * javaop.def:  Rename invokevirt -> invokevirtual.
21811         * lang.c (use_handles):  Removed.
21812         * parse.c:  Add support for ConstantValue attribute.
21813         Handle nested loading of a class.  (JPOOL_UTF):  New.
21814
21815 1997-03-11  Per Bothner  <bothner@deneb.cygnus.com>
21816
21817         * expr.c (expand_java_pushc):  Support #ifndef REAL_ARITHMETIC case.
21818
21819 1997-02-27  Per Bothner  <bothner@deneb.cygnus.com>
21820
21821         * Make-lang.in (java.install-man):  New empty rule.
21822         * typeck.c (set_local_type):  New function.
21823         * expr.c (STORE_INTERNAL):  Call find_local_variable,
21824         not find_stack_slot.  Call set_local_type.
21825
21826 1997-02-12  Per Bothner  <bothner@kalessin.cygnus.com>
21827
21828         * java-tree.h:  Various new macros for constructing RECORD_TYPEs,
21829         and building RECORD_TYPE CONSTRUCTORs.
21830         Also support for creating Utf8Const objects from an INDETIFIER_NODE.
21831
21832         * lang.c (use_handles):  Change the default to 0.
21833         * decl.c:  Define and build class_type, field_type, utf8const_type.
21834         * class.c (make_class_data, make_field_value,
21835         get_access_flags_from_decl, build_class_ref, build_utf8_ref,
21836         hashUtf8String, strLengthUtf8, mangled_classname:
21837         Functions to build reflective data structures.
21838         * parse.c (yyparse):  Call make_class_data.
21839
21840         * jcf-io.c (open_class, find_classfile):  New functions.
21841         * jcf-dump.c:  Support reading classfile from explicitly-named
21842         class file (without CLASSPATH searching).
21843
21844 1996-10-24  Per Bothner  <bothner@deneb.cygnus.com>
21845
21846         * jcf-reader.c:  Add parameter list to HANDLE_CONSTANT_Utf8.
21847         * parse.c (JPOOL_UTF_LENGTH, JPOOL_UTF_DATA, HANDLE_CONSTANT_Utf8):
21848         Override jcf-reader macros so CONSTANT_Utf8 becomes tree node here.
21849         (get_constant):  Now trivial for CONSTANT_Utf8.
21850
21851         * jcf.h:  Make NEW_CPOOL the default.
21852         * jcf.h, jcf-reader.c, parse.c:  Remove support for !NEW_CPOOL.
21853
21854 1996-10-24  Per Bothner  <bothner@deneb.cygnus.com>
21855
21856         New directory.
21857
21858 \f
21859 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
21860 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
21861
21862 Copying and distribution of this file, with or without modification,
21863 are permitted in any medium without royalty provided the copyright
21864 notice and this notice are preserved.