decl.c (java_init_decl_processing): Use double_int_to_tree instead of build_int_cst_wide.
[platform/upstream/gcc.git] / gcc / java / ChangeLog
1 2010-06-23  Anatoly Sokolov  <aesok@post.ru>
2
3         * decl.c (java_init_decl_processing): Use double_int_to_tree instead
4         of build_int_cst_wide.
5         * boehm.c (set_bit): Remove.
6         (mark_reference_fields): Use double_int type for 'mask' argument.
7         Use double_int_setbit instead of set_bit.
8         (get_boehm_type_descriptor): Use double_int_setbit instead of
9         set_bit. Use double_int_to_tree instead of build_int_cst_wide.
10
11 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
12
13         * gcj.texi: Move to GFDL version 1.3.  Fix copyright years.
14
15 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16
17         * jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.
18
19         * jcf-parse.c (java_parse_file): Likewise.
20         (process_zip_dir): Likewise.
21
22         * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
23         (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
24
25         * expr.c (add_type_assertion): Likewise.
26
27         * decl.c (make_binding_level): Likewise.
28         (java_dup_lang_specific_decl): Likewise.
29
30         * constants.c (set_constant_entry): Likewise.
31         (cpool_for_class): Likewise.
32
33         * class.c (add_method_1): Likewise.
34         (java_treetreehash_new): Likewise.
35
36         * java-tree.h (struct lang_type): Add variable_size GTY option.
37         (struct lang_decl): Likewise.
38
39         * jch.h (struct cpool_entry): Likewise.
40
41         * java-tree.h (java_treetreehash_create): Remove parameter ggc.
42
43         * except.c (prepare_eh_table_type): Update
44         java_treetreehash_create call.
45
46         * class.c (add_method_1): Update java_treetreehash_create call.
47         (java_treetreehash_create): Remove parameter gc.  Use
48         htab_create_ggc.
49
50 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
51
52         * jvspec.c (lang_specific_driver): Use GCC-specific formats in
53         diagnostics.
54
55 2010-05-30  Steven Bosscher  <steven@gcc.gnu.org>
56
57         * except.c: Include tm.h.
58
59 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
60
61         * jvspec.c (lang_specific_driver): Use fatal_error instead of
62         fatal.  Use warning instead of error for warnings.
63
64 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
65
66         * expr.c (get_symbol_table_index): Add spaces in expression.
67
68 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
69
70         * java-tree.h (method_entry): Declare.  Declare VECs containing it.
71         (struct lang_type): Change type of otable_methods, atable_methods, and
72         itable_methods to VECs.  Fix comment for atable_methods.
73         (emit_symbol_table): Take a VEC instead of a tree.
74         (get_symbol_table_index): Take a VEC * instead of a tree *.
75         * class.c (add_table_and_syms): Take a VEC instead of a tree.
76         (emit_symbol_table): Update for changed parameter type.
77         * expr.c (get_symbol_table_index): Likewise.
78
79 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
80
81         * buildings.c: Pretend to be a backend file by undefining
82         IN_GCC_FRONTEND (still need rtl.h here).
83
84 2010-05-26  Nathan Froyd  <froydnj@codesourcery.com>
85
86         * java-tree.h (struct lang_decl_func): Change type of throws_list
87         field to a VEC.
88         * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): Adjust for changed type
89         of DECL_FUNCTION_THROWS.
90         * class.c (make_method_value): Likewise.
91
92 2010-05-26  Nathan Froyd  <froydnj@codesourcery.com>
93
94         * class.c (utf8_decl_list): Delete.
95         (build_utf8_ref): Remove references to it.
96         * java-tree.h (all_class_list): Delete.
97         (predef_filenames): Delete.
98         (enum java_tree_index) [JTI ALL_CLASS_LIST,JTI_PREDEF_FILENAMES]:
99         Delete.
100         * jcf-parse.c (parse_roots): Decrease size to 2.
101         (current_file_list): Convert to a VEC.
102         (all_class_list): Declare.
103         (jcf_parse): Adjust for new type of all_class_list.
104         (java_layout_seen_class_methods): Likewise.
105         (predefined_filenames): Declare.
106         (add_predefined_file): Use it.
107         (predefined_filename_p): Likewise.
108         (java_parse_file): Adjust for new type of current_file_list.                                                                                                                                                     *
109
110 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
111
112         * lang.c (java_classify_record): Return RECORD_IS_INTERFACE
113         for interfaces.
114
115         PR debug/43260
116         * java-tree.h (pending_static_fields): New extern declaration.
117         (java_write_globals): New prototype.
118         * lang.c (LANG_HOOKS_WRITE_GLOBALS): Define.
119         * decl.c (java_mark_class_local): When clearing DECL_EXTERNAL
120         of a static field push it into pending_static_fields vector.
121         * class.c (pending_static_fields): New variable.
122         (add_field): If static field is not DECL_EXTERNAL, push it into
123         pending_static_fields vector.
124         (java_write_globals): New function.
125
126 2010-05-24  Nathan Froyd  <froydnj@codesourcery.com>
127
128         * expr.c (quick_stack): Change type to a VEC.  Update comment.
129         (tree_list_free_list): Delete.
130         (flush_quick_stack): Update for quick_stack type change.
131         (push_value): Likewise.
132         (pop_value): Likewise.
133
134 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
135
136         * java-gimplify.c: Do not include tm.h, toplev.h.
137         * typeck.c: Do not include tm.h.
138         * mangle_name.c: Do not include tm.h.
139         * jcf-dump.c: Do not include tm.h, ggc.h.
140         * class.c: Do not include rtl.h, tm_p.h, target.h, except.h, cgraph.h.
141         * decl.c: Do not include tm.h, rtl.h, function.h, expr.h, except.h,
142         and timevar.h.
143         * jcf-parse.c: Do not include tm.h and tm_p.h.
144         * resource.c: Do not include tm.h, rtl.h, flags.h, obstack.h,
145         target.h, and expr.h.
146         * except.c: Do not include tm.h, rtl.h, function.h.
147         * builtins.c: Do not include convert.h.  Explain why RTL headers
148         have to be included here.
149         * verify-glue.c: Do not include tm.h.
150         * jcf-depend.c: Do not include tm.h.
151         * jcf-reader.c: Include ggc.h.
152         * jcf-io.c: Do not include tm.h, toplev.h.
153         * expr.c: Do not include tm.h, rtl.h, expr.h, except.h, tm_p.h,
154         gimple.h.
155         * lang.c: Do not include rtl.h, expr.h.
156         * Make-lang.in: Update dependencies.
157
158 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
159
160         * jcf-parse.c: Include bitmap.h.
161         * Make-lang.in: Update dependencies.
162
163 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
164
165         PR debug/43521
166         * decl.c (start_java_method): Set DECL_ARTIFICIAL on the 'this'
167         PARM_DECL.
168
169 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
170
171         * jcf-parse.c (get_constant): Use double_int_to_tree instead of
172         build_int_cst_wide_type.
173
174 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
175
176         * expr.c (pop_arguments): Fix use of undeclared variable.
177
178 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
179
180         * expr.c (expand_java_multianewarray): Use build_call_vec instead of
181         build_call_list.
182         (pop_arguments): Return a VEC instead of a tree.  Take a method type
183         rather than a list of argument types.
184         (rewrite_rule): Change signature. of rewrite_arglist member.
185         (rewrite_arglist_getcaller): Update signature.
186         (rewrite_arglist_getclass): Likewise.
187         (maybe_rewrite_invocation): Update for rewrite_arglist change.
188         (build_known_method_ref): Take a VEC instead of a tree.
189         (invoke_build_dtable): Likewise.
190         (expand_invoke): Update calls to pop_arguments.  Use build_call_vec
191         instead of build_call_list.
192         (build_jni_stub): Use build_call_vec instead of build_call_list.
193         * java-tree.h (maybe_rewrite_invocation): Update declaration.
194         (build_known_method_ref): Likewise.
195         (invoke_build_dtable): Likewise.
196
197 2010-05-14  Nathan Froyd  <froydnj@codesourcery.com>
198
199         PR 44103
200         * java-tree.h (START_RECORD_CONSTRUCTOR): Change first argument to a
201         vector.  Move call to build_constructor...
202         (FINISH_RECORD_CONSTRUCTOR): ...here.  Add necessary arguments.  Clear
203         TREE_CONSTANT on the constructor.
204         (PUSH_SUPER_VALUE): Change first argument to a vector.
205         (PUSH_FIELD_VALUE): Likewise.
206         * resource.c (compile_resource_data): Update calls to above macros.
207         * constants.c (build_constants_constructor): Likewise.
208         * class.c (build_utf8_ref): Likewise.
209         (make_field_value): Likewise.
210         (make_method_value): Likewise.
211         (add_table_and_syms): New function.
212         (make_class_data): Call it.  Update calls to above macros.
213         (build_symbol_table_entry): New function.
214         (build_symbol_entry): Call it.  Update calls to above macros.
215         (emit_symbol_table): Likewise.
216         (make_catch_class_record): Update calls to above macros.
217         (build_assertion_table_entry): New function.
218         (add_assertion_table_entry): Call it.
219         (emit_assertion_table): Likewise.
220
221 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
222
223         PR 40989
224         * lang.c (java_handle_option): Add argument kind.
225
226 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
227
228         * decl.c (java_init_decl_processing): Remove argument in call to
229         initialize_sizetypes
230
231 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
232
233         * exception.cc (_Jv_Throw): Avoid set but not used warning.
234         * include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
235         sizeof to avoid set but not used warnings.
236
237 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
238
239         * lang.c (java_post_options): Constify variable "dot".
240
241         * jcf-parse.c (set_source_filename): Constify variable "dot".
242         (load_class): Constify variable "separator".
243         Use get_identifier_with_length.
244
245         * jvspec.c (lang_specific_driver): Constify two variables named "p".
246
247 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
248
249         * jcf-dump.c (version): Update copyright notice dates.
250
251 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
252
253         * jvspec.c (lang_specific_driver): Remove unused
254         saw_verbose_flag variable.
255         * jcf-dump.c (main): Remove unused general_purpose_bits
256         variable.
257         * builtins.c (initialize_builtins): Remove unused float_ftype_float
258         variable.
259         * expr.c (java_stack_pop): Remove unused val variable.
260         (build_jni_stub): Remove unused res_type variable.
261         * verify-impl.c (check_field_constant): Remove unused len variable.
262
263 2009-10-20  Joel Dice <dicej@mailsnare.net>
264
265         PR java/28474
266         * mangle_name.c (append_unicode_mangled_name): Fix mangling
267         of names with multiple underscores and "U".
268         (unicode_mangling_length): Likewise.
269
270 2009-10-03  Simon Baldwin  <simonb@google.com>
271
272         * config-lang.in (lang_dirs): Remove zlib.
273
274 2009-09-28  Richard Henderson  <rth@redhat.com>
275
276         * builtins.c (initialize_builtins): Update call to
277         build_common_builtin_nodes.
278         * lang.c (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
279
280 2009-09-14  Richard Henderson  <rth@redhat.com>
281
282         * builtins.c (initialize_builtins): Update call to
283         build_common_builtin_nodes.
284         * decl.c (java_init_decl_processing): Don't call
285         default_init_unwind_resume_libfunc.
286         * except.c: Include tree-iterator.h.
287         (build_exception_object_var): New.
288         (build_exception_object_ref): Use it.
289         (expand_end_java_handler): Initialize it from __builtin_eh_pointer.
290         Attach all CATCH_EXPRs to a single TRY_CATCH_EXPR.
291         * java-tree.h (DECL_FUNCTION_EXC_OBJ): New.
292
293 2009-09-13  Richard Guenther  <rguenther@suse.de>
294         Rafael Avila de Espindola  <espindola@google.com>
295
296         * decl.c (do_nothing): Remove.
297         (java_init_decl_processing): Do not set lang_eh_runtime_type.
298         * Make-lang.in (lang.o): Add $(EXCEPT_H) dependency.
299         * lang.c (java_eh_personality): New.
300         (java_eh_personality_decl): Likewise.
301         (LANG_HOOKS_EH_PERSONALITY): Define.
302
303 2009-09-03  Diego Novillo  <dnovillo@google.com>
304
305         * lang.c (lang_hooks): Remove const qualifier.
306
307 2009-09-01  Jakub Jelinek  <jakub@redhat.com>
308
309         * boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT
310         type.
311
312 2009-09-01  Richard Guenther  <rguenther@suse.de>
313
314         * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
315         * java-tree.h (java_mark_addressable): Likewise.
316         * typeck.c (java_mark_addressable): Likewise.
317
318 2009-08-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
319
320         * Make-lang.in (java.install-pdf): Install gcj.pdf in
321         $(pdfdir)/gcc, alongside the other manuals.
322
323 2009-08-12  Andrew Haley  <aph@redhat.com>
324
325         * builtins.c (compareAndSwapInt_builtin): Use
326         flag_use_atomic_builtins.
327         (compareAndSwapLong_builtin): Likewise.
328         (compareAndSwapObject_builtin): Likewise.
329         * jvspec.c: Add flag_use_atomic_builtins.
330         * gcj.texi: Likewise.
331         * java-tree.h: Likewise.
332         * lang.opt: Likewise.
333
334 2009-08-11  Dodji Seketeli  <dodji@redhat.com>
335
336         PR debug/40990
337         * lang.c (put_decl_node): Outputs different level of information
338         depending on the verbosity level.
339
340 2009-07-31  Andrew Haley  <aph@redhat.com>
341
342         PR java/40867
343         * decl.c (java_replace_references): Set EXPR_LOCATION on all
344         generated expressions.
345         (binding_level.loc): new field.
346         (clear_binding_level): Initialize loc.
347         (set_input_location): New function.
348         (pushlevel): Set new binding_level.loc.
349         (poplevel): Set EXPR_LOCATION on the new BIND_EXPR_BODY.
350         (start_java_method): Set DECL_SOURCE_LOCATION of this new method.
351         (java_add_stmt): Set the EXPR_LOCATION on all subtrees of new_stmt.
352
353 2009-07-17  Richard Guenther  <rguenther@suse.de>
354
355         PR c/40401
356         * java-gimplify.c (java_genericize): Do not gimplify here.
357         But replace all local references.
358         (java_gimplify_expr): Do not replace local references here.
359         (java_gimplify_modify_expr): Likewise.
360         * jcf-parse.c (java_parse_file): Do not finalize the CU or
361         optimize the cgraph here.
362         * decl.c (java_replace_reference): Make static.
363         (java_replace_references): New function.
364         (end_java_method): Clear base_decl_map.
365         * java-tree.h (java_replace_references): Declare.
366         (java_replace_reference): Remove.
367
368 2009-07-14  Taras Glek  <tglek@mozilla.com>
369             Rafael Espindola  <espindola@google.com>
370
371         * Make-lang.in (java.install-plugin): New target for
372         installing plugin headers.
373
374 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
375
376         * class.c: Replace %J by an explicit location. Update all calls.
377         
378 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
379
380         * jcf-parse.c: Replace %H by an explicit location. Update all calls.
381
382 2009-06-29  Andrew Haley  <aph@redhat.com>
383
384         PR java/40590
385         * java-tree.h (cxx_keyword_p): New declaration.
386         * mangle_name.c (utf8_cmp): Move here from mangle.c.
387         (cxx_keywords): Likewise.
388         (cxx_keyword_p): Likewise.
389         (MANGLE_CXX_KEYWORDS): New macro.
390         (append_gpp_mangled_name): Use MANGLE_CXX_KEYWORDS.
391         (append_gpp_mangled_name): Likewise.
392         * mangle.c: Move code to mangle_name.c. 
393         (mangle_member_name): Don't call cxx_keyword_p.
394
395 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
396
397         * java-gimplify.c (java_gimplify_block): New argument to
398         build_empty_stmt.
399         * expr.c (force_evaluation_order): Same.
400         * typeck.c: Add location to build_decl or PUSH_FIELD calls.
401         * class.c: Same.
402         * decl.c: Same.
403         * jcf-parse.c: Same.
404         * constants.c: Same.
405         * resource.c: Same.
406         * except.c: Same.
407         * builtins.c: Same.
408         * expr.c: Same.
409         * java-tree.h (PUSH_FIELD): Add location field.
410         
411 2009-06-09  Ian Lance Taylor  <iant@google.com>
412
413         * verify.h: Remove extern "C".
414
415 2009-06-07  Ian Lance Taylor  <iant@google.com>
416
417         * jcf-parse.c (handle_constant): Change local variable 'kind' to
418         unsigned int.
419
420 2009-06-01  Ian Lance Taylor  <iant@google.com>
421
422         * jcf-io.c (find_class): Use CONST_CAST.
423
424 2009-05-27  Ian Lance Taylor  <iant@google.com>
425
426         * Make-lang.in ($(XGCJ)$(exeext)): Change $(COMPILER) to
427         $(LINKER).
428         (jc1$(exeext), jcf-dump$(exeext), jvgenmain$(exeext)): Likewise.
429
430 2009-05-26  Ian Lance Taylor  <iant@google.com>
431
432         * Make-lang.in (jvspec.o): Use $(COMPILER).
433         ($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise.
434         (jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise.
435
436 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
437
438         * Make-lang.in (GCJ): Renamed to...
439         (XGCJ): ... this.
440
441 2009-04-27  Ian Lance Taylor  <iant@google.com>
442
443         * builtins.c (java_builtins): Add casts to enum type.
444         * verify-impl.c (check_class_constant): Add cast to enum type.
445         (check_constant, check_wide_constant): Likewise.
446
447 2009-04-27  Richard Guenther  <rguenther@suse.de>
448
449         PR java/38374
450         * constants.c (build_constants_constructor): Retain the old
451         pointer type as valid TYPE_POINTER_TO after patching the
452         type of the constant pool decl.
453
454 2009-04-24  Ian Lance Taylor  <iant@google.com>
455
456         * jcf-parse.c (handle_constant): Add cast to enum type.
457
458 2009-04-21  Taras Glek <tglek@mozilla.com>
459
460         * builtins.c: Update GTY annotations to new syntax
461         * decl.c: Likewise
462         * java-tree.h: Likewise
463         * jcf.h: Likewise
464         * lang.c: Likewise
465
466 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
467
468         * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
469         license notices.
470
471 2009-04-18  Ian Lance Taylor  <iant@google.com>
472
473         * verify-impl.c (verify_instructions_0): Add cast to enum type.
474
475 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
476
477         * builtins.c (compareAndSwapLong_builtin,
478         compareAndSwapInt_builtin, compareAndSwapObject_builtin,
479         VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc.
480
481 2009-03-31  Richard Guenther  <rguenther@suse.de>
482
483         * java-gimplify.c (java_gimplify_expr): Do not manually gimplify
484         the first operand of binary and comaprison expressions.
485
486 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
487
488         PR rtl-optimization/323
489         * lang.c (java_post_options): Set flag_excess_precision_cmdline.
490         Give an error for -fexcess-precision=standard for processors where
491         the option is significant.
492
493 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
494
495         * lang.opt: Unify help text for -Wdeprecated.
496
497 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
498
499         * jcf-dump.c (version): Update copyright notice dates.
500
501 2009-01-16  Richard Guenther  <rguenther@suse.de>
502
503         PR tree-optimization/38835
504         PR middle-end/36227
505         * builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR.
506
507 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
508
509         PR bootstrap/38262
510         * Make-lang.in (jc1): Add BACKENDLIBS, remove GMPLIBS.
511
512 2008-11-04  Andrew Haley  <aph@redhat.com>
513
514         PR java/37068
515         * jcf-parse.c (java_emit_static_constructor): Don't call
516         cgraph_build_static_cdtor.  Rewrite.
517
518 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
519
520         * Make-lang.in (check-java-subtargets): New target.
521
522 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
523
524         PR target/35483
525         * Make-lang.in (class.o): Depend on $(TM_P_H).
526         (expr.o): Same.
527         * class.c: Include tm_p.h.
528         * expr.c: Include tm_p.h.
529
530 2008-10-14  Andrew Haley  <aph@redhat.com>
531
532         * constants.c (build_constant_data_ref): Make sure we only build
533         one copy of the decl for the constant pool.
534
535 2008-09-22  Andrew Haley  <aph@redhat.com>
536
537         * expr.c (rules): Add new rule for
538         gnu.java.lang.VMCPStringBuilder.toString.
539         (rewrite_rule.new_classname): New field.
540         (maybe_rewrite_invocation): Use new_classname field instead of
541         DECL_CONTEXT (*method_p).
542         Allow rewrite_arglist to be NULL.
543
544 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
545
546         * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
547         (java_get_callee_fndecl): Kill.
548
549 2008-09-17  Jan Hubicka  <jh@suse.cz>
550
551         PR c++/18071
552         * class.c (add_method_1): Do not initialize DECL_INLINE.
553         (make_local_function_alias): Likewise.
554         * expr.c (rewrite_arglist_getcaller): Set DECL_UNINLINABLE.
555         * lang.c (java_decl_ok_for_sibcall): Use DECL_UNINLINABLE.
556
557 2008-09-09  Richard Guenther  <rguenther@suse.de>
558
559         * decl.c (build_result_decl): Remove no longer applicable
560         promotion.
561
562 2008-09-05  David Daney  <ddaney@avtrex.com>
563
564         * gcj.texi (-freduced-reflection): Clarify option's restrictions.
565
566 2008-08-21  David Daney  <ddaney@avtrex.com>
567
568         * class.c (make_class_data): Don't add field_index when
569         flag_reduced_reflection set.
570
571 2008-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
572
573         * typeck.c (convert): Do not check for TARGET_FLOAT_FORMAT.
574
575 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
576
577         PR 28875
578         * lang.c (java_handle_option): Replace set_Wunused with
579         warn_unused.
580
581 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
582
583         * gcj.texi: Update copyright years.  Do not list GPL as
584         Invariant Section.
585
586 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
587
588         * class.c (build_utf8_ref): Set DECL_SIZE and DECL_SIZE_UNIT
589         from ctype's sizes.
590
591         * class.c (build_utf8_ref): Pad initializer string to utf8const_type's
592         alignment.
593
594 2008-07-29  Jan Hubicka  <jh@suse.cz>
595
596         * lang.c (java_post_options): Remove handling of flag_no_inline.
597
598 2008-07-28  Richard Guenther  <rguenther@suse.de>
599
600         Merge from gimple-tuples-branch.
601
602         2008-07-18  Richard Guenther  <rguenther@suse.de>
603
604         * expr.c: Include tree-iterator.h.
605         * Make-lang.in (expr.o): Add tree-iterator.h dependency.
606
607         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
608
609         * java-gimplify.c: Include gimple.h instead of tree-gimple.h.
610         * expr.c: Same.
611
612         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
613
614         * java-gimplify.c (java_gimplify_expr): Same.
615         (java_gimplify_modify_expr): Same.
616         * java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN.
617
618         2008-05-02  Diego Novillo  <dnovillo@google.com>
619
620         * expr.c (build_java_throw_out_of_bounds_exception): Fix
621         mixed declarations and code.
622
623         2008-05-02  Doug Kwan  <dougkwan@google.com>
624         
625         * expr.c (build_java_throw_out_of_bounds_exception ): Wrap call to
626         _Jv_ThrowBadArrayIndex with a COMPOUND_EXPR to return 0.
627
628         2008-02-19  Diego Novillo  <dnovillo@google.com>
629
630         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
631
632         * java-gimplify.c (java_gimplify_self_mod_expr): Change
633         gimple_seq arguments to gimple_seq *.  Update all users.
634
635         2007-11-26  Aldy Hernandez  <aldyh@redhat.com>
636
637         * java-gimplify.c (java_gimplify_expr): Make pre_p and post_p
638         sequences.
639         (java_gimplify_self_mod_expr): Same.                                    
640         * java-tree.h (java_gimplify_expr): Make pre_p and post_p               
641         sequences.
642
643 2008-07-24  Jan Hubicka  <jh@suse.cz>
644
645         * java/decl.c: Include cgraph.h
646         (end_java_method): Remove non-unit-at-a-time code.
647         (java_mark_decl_local): Likewise; sanity check that we don't touch
648         finalized nodes.
649
650 2008-07-15  Jan Hubicka  <jh@suse.cz>
651
652         * lang.c (java_init_options): Enable unit-at-a-time by default.
653
654 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
655
656         * Make-lang.in (jvspec.o): Fix dependencies.
657
658 2008-07-06  Tom Tromey  <tromey@redhat.com>
659
660         * Make-lang.in (java/parse.o-warn): Remove.
661         (java/jcf-io.o-warn): Remove.
662
663 2008-07-05  Tom Tromey  <tromey@redhat.com>
664
665         * jcf-io.c: Don't include fnmatch.h.  Don't use JCF_USE_SCANDIR.
666         (compare_path): Remove.
667         (java_or_class_file): Likewise.
668         (memoized_dirlist_entry): Likewise.
669         (memoized_dirlist_hash): Likewise.
670         (memoized_dirlist_lookup_eq): Likewise.
671         (memoized_dirlists): Likewise.
672         (caching_stat): Likewise.
673         (find_class): Use stat.
674         * jcf.h (JCF_USE_SCANDIR): Remove.
675
676 2008-06-30  Joshua Sumali  <jsumali@redhat.com>
677
678         * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and
679         doc/rebuild-gcj-db.1
680         (java.uninstall): Likewise.
681         (java.maintainer-clean): Likewise.
682         (aot-compile.pod): New rule.
683         (rebuild-gcj-db.pod): New rule.
684         (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1
685         * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db.
686
687 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
688
689         * Make-lang.in (java/jcf-io.o-warn): New.
690
691 2008-06-24  Tom Tromey  <tromey@redhat.com>
692
693         * jcf-path.c (jcf_path_init): Don't name variable 'try'.
694         * expr.c (add_type_assertion): Rename argument.
695         (build_java_arrayaccess): Don't name variable 'throw'.
696         (ARRAY_NEW_MULTI): Don't name variable 'class'.
697         * jcf-io.c (find_class): Don't name variable 'class'.
698         * mangle.c (compression_table_add): Don't name variable 'new'.
699         * constants.c (cpool_for_class): Rename argument.
700         (alloc_constant_fieldref): Likewise.
701         * jcf-parse.c (handle_innerclass_attribute): Don't name variable
702         'class'.
703         (read_class): Likewise.
704         (parse_zip_file_entries): Likewise.
705         (process_zip_dir): Likewise.
706         * decl.c (java_mark_class_local): Rename argument.
707         * class.c (GEN_TABLE): Use type_name, not typename.
708         (gen_indirect_dispatch_tables): Likewise.
709         (add_field): Rename argument.
710         (is_compiled_class): Likewise.
711         (safe_layout_class): Likewise.
712         (emit_assertion_table): Likewise.
713         * typeck.c (has_method): Rename argument.
714
715 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
716
717         * class.c (ident_subst, mangled_classname, unmangle_classname,
718         gen_indirect_dispatch_tables, add_method_1,
719         build_fieldref_cache_entry, make_local_function_alias,
720         layout_class, java_treetreehash_find, java_treetreehash_new,
721         split_qualified_name): Fix for -Wc++-compat.
722         * constants.c (set_constant_entry, cpool_for_class): Likewise.
723         * decl.c (make_binding_level, java_dup_lang_specific_decl,
724         start_java_method): Likewise.
725         * except.c (prepare_eh_table_type): Likewise.
726         * expr.c (type_assertion_hash, note_instructions): Likewise.
727         * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC,
728         MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
729         * jcf-io.c (jcf_filbuf_from_stdio, opendir_in_zip, find_class):
730         Likewise.
731         * jcf-parse.c (reverse, java_read_sourcefilenames,
732         annotation_grow, rewrite_reflection_indexes, java_parse_file,
733         process_zip_dir): Likewise.
734         * jcf-path.c (add_entry, add_path, jcf_path_init,
735         jcf_path_extdirs_arg): Likewise.
736         * jcf-reader.c (jcf_parse_constant_pool): Likewise.
737         * jvgenmain.c (do_mangle_classname): Likewise.
738         * lang.c (put_decl_string): Likewise.
739         * verify-impl.c (make_state_copy, make_state, add_new_state):
740         Likewise.
741
742 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
743
744         * gcj.texi: Expand TABs, remove whitespace from blank lines.
745
746 2008-06-14  Tom Tromey  <tromey@redhat.com>
747
748         PR java/36247:
749         * class.c (build_class_ref): Initialize this_classdollar when
750         needed.
751
752 2008-05-23  Andrew Haley  <aph@redhat.com>
753
754         * jcf-parse.c (give_name_to_class): Call find_sourcefile to find full
755         pathname of source file.
756
757 2008-05-12  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
758
759         * jcf-dump.c (print_constant): Use
760         HOST_LONG_LONG_FORMAT.
761
762 2008-05-07  Kenneth Zadeck <zadeck@naturalbridge.com>
763
764         * decl.c (java_init_decl_processing): Change DECL_IS_PURE to
765         DECL_PURE_P.
766
767 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
768
769         * class.c (build_utf8_ref): Don't set TREE_INVARIANT.
770         (build_classdollar_field): Don't set TREE_INVARIANT.
771         (get_dispatch_table): Don't set TREE_INVARIANT.
772         (make_class_data): Don't set TREE_INVARIANT.
773         (build_symbol_entry): Don't set TREE_INVARIANT.
774         (emit_symbol_table): Don't set TREE_INVARIANT.
775         * constants.c (build_constant_data_ref): Don't set TREE_INVARIANT.
776         (build_ref_from_constant_pool): Don't set TREE_INVARIANT.
777         * resource.c (compile_resource_data): Don't set TREE_INVARIANT.
778         * expr.c (cache_cpool_data_ref): Don't set TREE_INVARIANT.
779
780 2008-04-03  Tom Tromey  <tromey@redhat.com>
781
782         * Make-lang.in (java_OBJS): New variable.
783
784 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
785
786         * java-tree.h (insert_block): Kill.
787         * decl.c (insert_block): Kill.
788                 
789 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
790
791         * gcj.texi: Include gpl_v3.texi instead of gpl.texi
792         * Make-lang.in (TEXI_JAVA_FILES): Include gpl_v3.texi instead of
793         gpl.texi.
794
795 2008-03-27  Tom Tromey  <tromey@redhat.com>
796
797         * Make-lang.in: Revert automatic dependency patch.
798
799 2008-03-25  Tom Tromey  <tromey@redhat.com>
800
801         * Make-lang.in: Removed most explicit .o targets.
802         (java/jvspec.o): Reduce to variable setting.  Moved to java/.
803         ($(GCJ)$(exeext)): Update.
804         (JAVA_OBJS): New variable.
805         (JCFDUMP_OBJS): Reformat.
806         (java_OBJS): New variable.
807         (java/jvspec.o-warn): Update.
808         (java/parse.o-warn): Remove.
809         (JAVA_TREE_H): Remove.
810         (java/jcf-io.o): Reduce to variable setting.
811         (ALL_CPPFLAGS): Likewise.
812
813 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
814
815         * mangle.c (java_mangle_decl): Remove dead check.
816
817 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
818
819         * jcf-parse.c (java_parse_file): Assert binding levels are
820         left in order.
821         * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack):
822         Delete.
823
824 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
825
826         * jcf-dump.c (version): Update copyright notice dates.
827
828 2008-02-29  Tom Tromey  <tromey@redhat.com>
829
830         * expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on
831         method.
832         * java-tree.h (struct lang_decl_func): Remove obsolete comment.
833
834 2008-02-26  Tom Tromey  <tromey@redhat.com>
835
836         * lang.c (java_post_options): Remove conditional.
837         * expr.c (expand_byte_code): Remove old location code.
838         * jcf-parse.c (set_source_filename): Remove old location code.
839         (give_name_to_class): Likewise.
840         (jcf_parse): Likewise.
841         (duplicate_class_warning): Likewise.
842         (parse_class_file): Likewise.
843         (java_parse_file): Likewise.
844         * decl.c (finish_method): Remove old location code.
845         * class.c (push_class): Remove old location code.
846
847 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
848
849         PR other/35107
850         * Make-lang.in (jc1): Add $(GMPLIBS).
851
852 2008-01-23  David Daney  <ddaney@avtrex.com>
853
854         * class.c (hide)  Rename to...
855         (java_hide_decl) ... this throughout, and make public.
856         * resource.c (Jr_count): Remove.
857         (compile_resource_data): Call java_mangle_resource_name to generate
858         decl name.  Make resource decl public and hidden.
859         * mangle.c (java_mangle_resource_name): New function.
860         * java-tree.h (java_hide_decl, java_mangle_resource_name): Declare
861         functions.
862
863 2008-01-04  Andrew Haley  <aph@redhat.com>
864
865         PR java/17779
866         * jcf-parse.c (parse_zip_file_entries): Move decl to compile on
867         C90.
868
869 2008-01-03  Andrew Haley  <aph@redhat.com>
870
871         PR java/17779
872         * jcf-parse.c (parse_zip_file_entries): Unset TYPE_ALIAS_SET if
873         we're about to re-layout the type.
874
875 2007-12-20  Alexandre Oliva  <aoliva@redhat.com>
876
877         * lang.c (java_classify_record): Don't return
878         RECORD_IS_INTERFACE for now.
879
880 2007-12-18  Andrew Haley  <aph@redhat.com>
881
882         PR java/27643
883         * jcf-parse.c (java_parse_file): Remove call to
884         java_mark_class_local.
885         (parse_class_file): Reinstate call to java_mark_class_local here.
886         * decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
887         already set, call java_mangle_decl() and make_decl_rtl() to
888         rewrite its name as a hidden alias.
889
890 2007-12-15  Alexandre Oliva  <aoliva@redhat.com>
891
892         PR debug/7081
893         * lang.c (java_classify_record): New.
894         (LANG_HOOKS_CLASSIFY_RECORD): Override.
895
896 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
897
898         PR 34081/C++
899         * decl.c (finish_method): Pass 'false' for the new
900         allocate_struct_function parameter.
901
902 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
903
904         * expr.c (build_jni_stub): Use the computed jni func type for
905         variable meth.
906
907 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
908
909         * class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID.
910
911 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
912
913         * expr.c (type_assertion_hash): Hash type uids rather than
914         tree pointers.
915
916 2007-11-17  David Daney  <ddaney@avtrex.com>
917             Andrew Haley  <aph@redhat.com>
918
919         * constants.c (build_constants_constructor):  Use POINTER_SIZE
920         insead of BITS_PER_WORD in big-endian work around.
921
922 2007-11-07  Tom Tromey  <tromey@redhat.com>
923
924         PR java/34019:
925         * gcj.texi (Input Options): Add missing noun.
926
927 2007-11-02  Tom Tromey  <tromey@redhat.com>
928
929         PR java/33765:
930         * jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files.
931         * zipfile.h (ZIPEMPTYMAGIC): New define.
932
933 2007-11-01  Tom Tromey  <tromey@redhat.com>
934
935         * Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
936         (java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h.
937         (java/jcf-io.o): Depend on zipfile.h.
938
939 2007-10-17  Richard Guenther  <rguenther@suse.de>
940
941         * Make-lang.in (java/builtins.o): Add $(OPTABS_H) and $(EXPR_H)
942         dependencies.
943
944 2007-10-03  Andrew Haley  <aph@redhat.com>
945
946         PR java/33639
947         * class.c (mangled_classname): Detect and replace illegal
948         characters in assembly language symbols.
949         (gen_indirect_dispatch_tables): Call mangled_classname() on
950         the type.
951
952 2007-09-27  Jakub Jelinek  <jakub@redhat.com>
953
954         * lang.c (java_print_error_function): Add third argument.
955
956 2007-09-15  Tom Tromey  <tromey@redhat.com>
957
958         * java-tree.h (struct lang_decl_func) <function_decl_body>:
959         Remove.
960         <init_final>: Likewise.
961         * lang.c (java_dump_tree): Update.
962         * java-tree.h (DECL_FUNCTION_BODY): Remove.
963
964 2007-09-11  Jan Hubicka <jh@suse.cz>
965
966         * decl.c (java_expand_body): Kill.
967         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
968
969 2007-09-06  Tom Tromey  <tromey@redhat.com>
970
971         * jcf-parse.c (parse_class_file): Re-enter the current file.
972
973 2007-09-07  Roman Zippel  <zippel@linux-m68k.org>
974
975         * boehm.c (mark_reference_fields): Move misaligned pointer check
976         after JREFERENCE_TYPE_P test
977
978 2007-09-06  Roman Zippel  <zippel@linux-m68k.org>
979
980         * boehm.c (mark_reference_fields): Don't use bitmap as gc_descr
981         if pointer is misaligned.
982
983 2007-09-06  Tom Tromey  <tromey@redhat.com>
984
985         * lang.c (java_post_options): Update.
986         * jcf-parse.c (set_source_filename): Update.
987         (give_name_to_class): Update.
988         (jcf_parse): Update.
989         (duplicate_class_warning): Update.
990         (parse_class_file): Update.
991         (java_parse_file): Update.
992         * expr.c (expand_byte_code): Update.
993
994 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
995
996         * decl.c (finish_method): Use set_cfun.
997
998 2007-09-04  Andrew Haley  <aph@redhat.com>
999
1000         * decl.c (java_init_decl_processing): Call "__cxa_end_cleanup"
1001         when using the ARM EABI.
1002
1003 2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
1004
1005         * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB.
1006
1007 2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1008
1009         * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
1010         CONST_CAST.
1011         * jcf.h (JCF_FINISH): Likewise.
1012
1013 2007-08-28  Tom Tromey  <tromey@redhat.com>
1014
1015         * Make-lang.in (java.tags): Don't tag '*.y' files.
1016
1017 2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1018
1019         * lang.c (java_decl_ok_for_sibcall): Likewise.
1020
1021 2007-08-21  Paul Brook  <paul@codesourcery.com>
1022             Nathan Sidwell  <nathan@codesourcery.com>
1023             Mark Mitchell  <mark@codesourcery.com>
1024             Joseph Myers  <joseph@codesourcery.com>
1025
1026         * jcf-dump.c (version): Use pkgversion_string.  Update copyright
1027         date.
1028
1029 2007-08-20  Richard Guenther  <rguenther@suse.de>
1030
1031         * lang.c (java_tree_inlining_walk_subtrees): Remove.
1032         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove.
1033
1034 2007-08-17  Tom Tromey  <tromey@redhat.com>
1035
1036         * typeck.c (find_method_in_interfaces): Update.
1037         * jcf-parse.c (load_class): Update.
1038         * java-gimplify.c (java_gimplify_component_ref): Removed.
1039         (java_gimplify_modify_expr): Update.  Removed pre_p and post_p
1040         arguments.
1041         (java_gimplify_expr): Update.
1042         * decl.c (java_init_decl_processing): Update.
1043         * class.c (set_constant_value): Update.
1044         (make_class_data): Update.
1045         (finish_class): Update.
1046         (build_static_field_ref): Update.
1047         (is_compiled_class): Update.
1048         (maybe_layout_super_class): Update.
1049         (layout_class): Update.
1050         (layout_class_method): Update.
1051         * java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
1052         (lang_decl_var) <am, final_iud, cif>: Removed fields.
1053         (lang_decl_func) <init_calls_this>: Removed field.
1054         (lang_type) <dot_class, verify_method>: Removed fields.
1055         (FIELD_NESTED_ACCESS): Removed.
1056         (FIELD_NESTED_ACCESS_P): Removed.
1057         (DECL_FIELD_FINAL_IUD): Removed.
1058         (DECL_LOCAL_FINAL_IUD): Removed
1059         (LOCAL_FINAL_P): Removed.
1060         (FINAL_VARIABLE_P): Removed.
1061         (CLASS_FINAL_VARIABLE_P): Removed.
1062         (DECL_BIT_INDEX): Removed.
1063         (DECL_INIT_CALLS_THIS): Removed.
1064         (FIELD_LOCAL_ALIAS): Removed.
1065         (FIELD_LOCAL_ALIAS_USED): Removed.
1066         (FIELD_THISN): Removed.
1067         (DECL_FUNCTION_INIT_TEST_CLASS): Removed.
1068         (LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
1069         (LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
1070         (TYPE_DOT_CLASS): Removed.
1071         (TYPE_VERIFY_METHOD): Removed.
1072         (ID_CLASSDOLLAR_P): Removed.
1073         (enum java_tree_index) <JTI_CLASSDOLLAR_IDENTIFIER_NODE>:
1074         Removed.
1075         (classdollar_identifier_node): Removed.
1076         (TYPE_UNKNOWN): Removed.
1077         (CLASS_FROM_SOURCE_P): Removed.
1078         * expr.c (build_jni_stub): Update.
1079         (force_evaluation_order): Update.
1080         (build_java_empty_stmt): Update.
1081         (build_class_init): Update.
1082         (java_stack_swap): Update.
1083         (build_jni_stub): Update.
1084
1085 2007-08-17  Tom Tromey  <tromey@redhat.com>
1086
1087         * java-tree.h (LABEL_TYPE_STATE): Removed.
1088         (load_type_state): Removed.
1089         (LABEL_PC): Removed.
1090         (LABEL_VERIFIED): Removed.
1091         (type_states): Declare.
1092         * expr.c (type_states): New global.
1093         (load_type_state): Now static.  Use type_states.  Changed
1094         argument.
1095         (lookup_label): Don't set LABEL_PC.
1096         (expand_byte_code): Don't use LABEL_VERIFIED.
1097         (note_instructions): Initialize type_states.
1098         * verify-glue.c (vfy_note_stack_depth): Rewrote.
1099         (vfy_note_stack_type): Use type_states.
1100         (vfy_note_local_type): Likewise.
1101
1102 2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1103
1104         * jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
1105         * jcf.h (JCF_FINISH): Likewise.
1106
1107 2007-07-31  Nick Clifton  <nickc@redhat.com>
1108
1109         * java-gimplify.c: Change copyright header to refer to version 3
1110         of the GNU General Public License and to point readers at the
1111         COPYING3 file and the FSF's license web page.
1112         * typeck.c, lang-specs.h, mangle_name.c, jcf-dump.c, class.c,
1113         decl.c, config-lang.in, jcf-parse.c, constants.c, Make-lang.in,
1114         resource.c, except.c, builtins.c, jvspec.c, java-tree.def,
1115         javaop.def, jcf-path.c, verify-glue.c, jcf-depend.c, lang.opt,
1116         jcf-reader.c, mangle.c, zextract.c, jcf-io.c, jcf.h, zipfile.h,
1117         verify.h, java-except.h, win32-host.c, expr.c, jvgenmain.c,
1118         parse.h, lang.c, java-tree.h, javaop.h, boehm.c: Likewise.
1119
1120 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1121
1122         * jcf-io.c (find_class): Fix -Wcast-qual warnings.
1123
1124 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1125
1126         * lang.c (java_get_callee_fndecl): Constify.
1127
1128 2007-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1129
1130         * mangle.c (set_type_package_list): Constify.
1131         * verify-glue.c (vfy_make_string): Delete.
1132         * verify.h (vfy_make_string): Likewise.
1133
1134 2007-07-26  Tom Tromey  <tromey@redhat.com>
1135
1136         * java-tree.h (push_labeled_block, pop_labeled_block): Remove.
1137         (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
1138         EXIT_BLOCK_LABELED_BLOCK): Likewise.
1139         * lang.c (java_tree_inlining_walk_subtrees): Update.
1140         (java_dump_tree): Likewise.
1141         * java-tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRY_EXPR):
1142         Remove.
1143         * decl.c (push_labeled_block, pop_labeled_block): Remove.
1144         * java-gimplify.c (java_gimplify_labeled_block_expr,
1145         java_gimplify_exit_block_expr, java_gimplify_try_expr): Remove.
1146         (java_gimplify_expr): Update.
1147
1148 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1149
1150         * class.c (java_treetreehash_hash, java_treetreehash_compare):
1151         Constify. 
1152         * expr.c (type_assertion_eq): Likewise.
1153         * jcf-io.c (compare_path): Likewise.
1154         * jcf-parse.c (cmpstringp): Likewise.
1155         * verify-impl.c (get_one_type, compute_argument_types,
1156         compute_return_type): Likewise. 
1157
1158 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1159
1160         PR target/32462
1161         PR libgcj/32465
1162         * class.c (hide): Wrap in HAVE_GAS_HIDDEN.
1163
1164 2007-07-12  Richard Guenther  <rguenther@suse.de>
1165
1166         * expr.c (expand_java_return): RETURN_EXPR has void type.
1167         (build_jni_stub): Likewise.  Use a comparison against zero
1168         for null-pointer test in COND_EXPR.
1169         (build_field_ref): Build POINTER_PLUS_EXPR with correct
1170         type.  Convert result instead.
1171         (build_invokevirtual): Likewise.
1172
1173 2007-07-09  Geoffrey Keating  <geoffk@apple.com>
1174
1175         PR 32617
1176         * lang.c (java_init): Remove setting of force_align_functions_log.
1177         * class.c (add_method_1): Set DECL_ALIGN of non-static method
1178         to cope with ptrmemfunc_vbit_in_pfn.
1179
1180 2007-07-03  David Daney  <ddaney@avtrex.com>
1181
1182         * java/Make-lang.in (doc/gcj.info): Add $(gcc_docdir) to 
1183         include path.
1184         (doc/gcj.dvi): Same.
1185         (doc/gcj.pdf): Same.
1186         (java/index.html): Same.
1187
1188 2007-06-15 Andrew Pinski  <andrew_pinski@playstation.sony.com>
1189
1190         * class.c (make_class_data): Build the index in sizetype.
1191         Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
1192         adding to a pointer type.
1193         (build_symbol_entry): Likewise.
1194         * expr.c (build_java_arrayaccess): Likewise.
1195         (build_field_ref): Likewise.
1196         (build_known_method_ref): Likewise.
1197         (build_invokevirtual): Likewise.
1198         * except.c (build_exception_object_ref): Do a
1199         NEGATIVE and then a POINTER_PLUS_EXPR instead
1200         of a MINUS_EXPR.
1201
1202 2007-06-11  Rafael Ávila de Espíndola  <espindola@google.com>
1203
1204         * typeck.c (java_signed_type): Remove.
1205         * lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
1206         * java-tree.h (java_signed_type): Remove.
1207
1208 2007-05-18  Geoffrey Keating  <geoffk@apple.com>
1209
1210         * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx.
1211         (print_constant): Likewise.
1212
1213 2007-05-14  Rafael Ávila de Espíndola  <espindola@google.com>
1214
1215         * expr.c (build_java_binop): Use unsigned_type_for instead of
1216         java_unsigned_type.
1217         * java-tree.h (java_unsigned_type): Remove.
1218         * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
1219         * typeck.c (java_unsigned_type): Remove.
1220
1221 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1222
1223         * java-tree.h (lang_tree_node): Use GENERIC_NEXT
1224         instead of checking GIMPLE_STMT_P in chain_next.
1225
1226 2007-04-06  Colin Walters  <walters@redhat.com>
1227
1228         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701
1229         * jcf-io.c (open_class): Copy 'filename'.
1230
1231 2007-04-03  Andrew Haley  <aph@redhat.com>
1232
1233         * jvgenmain.c (main): Change main to use class$, not class$$.
1234         (do_mangle_classname): Likewise.
1235         * class.c (hide): New function.
1236         (add_field): Hide everything that shouldn't be visible outside a
1237         DSO.
1238         (build_static_class_ref): Likewise.
1239         (build_classdollar_field): Likewise.
1240         (make_class_data): Likewise.
1241         (layout_class_method): Likewise.
1242         * expr.c (special_method_p): New function.
1243
1244         * class.c (push_class): Don't bogusly guess the source filename.
1245         * jcf-parse.c (give_name_to_class): Don't set input_location from
1246         DECL_ARTIFICIAL decls.
1247
1248 2007-03-30  Rafael Ávila de Espíndola  <espindola@google.com>
1249
1250         * typeck.c (java_signed_or_unsigned_type): Removed.
1251         (java_signed_type): use get_signed_or_unsigned_type instead of
1252         java_signed_or_unsigned_type.
1253         (java_unsigned_type): Ditto.
1254         * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Removed.
1255         * java-tree.h (java_signed_or_unsigned_type): Removed.
1256
1257 2007-03-26  Tom Tromey  <tromey@redhat.com>
1258
1259         * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1.
1260         (java.maintainer-clean): Likewise.
1261         (java.install-man): Likewise.
1262         (.INTERMEDIATE): Removed grmiregistry.pod.
1263         (grmiregistry.pod): Removed.
1264         * gcj.texi (Invoking gcjh): Removed.
1265         (Invoking gjnih): Likewise.
1266         (Invoking grmiregistry): Likewise.
1267         (direntry): Updated.
1268         (Top): Likewise.
1269         (which-gcj): Removed.
1270
1271 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
1272
1273         * Make-lang.in: Add install-pdf target as copied from
1274         automake v1.10 rules.
1275
1276 2007-02-27  Brooks Moses  <brooks.moses@codesourcery.com>
1277
1278         * gcj.texi: Standardize title page.
1279
1280 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
1281
1282         * class.c: Fix a comment typo.
1283
1284 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
1285             Brooks Moses  <brooks.moses@codesourcery.com>
1286             Lee Millward  <lee.millward@codesourcery.com>
1287
1288         * java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
1289         of build3.
1290         (BUILD_MONITOR_EXIT): Likewise.
1291
1292         * java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
1293         (java_gimplify_modify_expr): Likewise.
1294
1295         * class.c (cache_this_class_ref): Use build_call_expr.
1296         (build_static_field_ref): Likewise.
1297         (emit_indirect_register_classes): Likewise.
1298         (emit_register_classes): Likewise.
1299
1300         * resource.c (write_resource_constructor): Use build_call_expr.
1301
1302         * builtins.c (builtin_creator_function): Change interpretation of
1303         the second parameter to be the whole CALL_EXPR instead of the arglist.
1304         (max_builtin): Tweak parameter list.  Use new CALL_EXPR accessors.
1305         (min_builtin): Likewise.
1306         (abs_builtin): Likewise.
1307         (java_build_function_call_expr): Likewise.
1308         (convert_real): Likewise.
1309         (UNMARSHAL3): Likewise.
1310         (UNMARSHAL4): Likewise.
1311         (UNMARSHAL5): Likewise.
1312         (build_arglist_for_builtin): Delete.  Fix callers to use
1313         build_call_expr instead.
1314         (putObject_builtin): Tweak parameter list.  Use new CALL_EXPR
1315         accessors.
1316         (compareAndSwapInt_builtin): Likewise.
1317         (compareAndSwapLong_builtin): Likewise.
1318         (compareAndSwapObject_builtin): Likewise.
1319         (putVolatile_builtin): Likewise.
1320         (getVolatile_builtin): Likewise.
1321         (VMSupportsCS8_builtin): Likewise.
1322         (check_for_builtin): Pass entire CALL_EXPR to builtin expander
1323         instead of arglist.
1324
1325         * expr.c (build_java_athrow): Use build_call_nary instead of build3.
1326         (build_java_throw_out_of_bounds_exception): Likewise.
1327         (java_check_reference): Likewise.
1328         (build_java_arraystore_check): Likewise.
1329         (build_newarray): Likewise.
1330         (build_anewarray): Likewise.
1331         (expand_java_multinewarray): Use build_call_list instead of build3.
1332         (build_java_monitor): Use build_call_nary instead of build3.
1333         (java_create_object): Likewise.
1334         (expand_java_NEW): Likewise.
1335         (build_instanceof): Likewise.
1336         (expand_java_CHECKCAST): Likewise.
1337         (build_java_soft_divmod): Likewise.
1338         (build_java_binop): Likewise.
1339         (build_field_ref): Likewise.
1340         (build_class_init): Likewise.
1341         (rewrite_arglist_getcaller): Use build_call_expr.
1342         (build_invokeinterface):  Use build_call_nary instead of build3.
1343         (expand_invoke): Use build_call_list instead of build3.
1344         (build_jni_stub): Use build_call_nary, build_call_list, or
1345         build_call_expr instead of build3.
1346         (expand_java_field_op): Use build_call_expr instead of build3.
1347         (force_evaluation_order): Use new CALL_EXPR accessors.
1348
1349         * lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
1350
1351 2007-02-15  David Daney  <ddaney@avtrex.com>
1352
1353         * Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
1354         (java.maintainer-clean):Add gc-analyze.1.
1355         (.INTERMEDIATE): Add gc-analyze.pod.
1356         (gc-analyze.pod): New rule.
1357         (java.install-man): Install gc-analyze.1
1358         * gcj.texi: Add new section for the gc-analyze program.
1359
1360 2007-02-07  Andrew Haley  <aph@redhat.com>
1361
1362         * class.c (uncache_this_class_ref): New.
1363         * expr.c (build_jni_stub): Initialize the class.
1364         (expand_byte_code): Call uncache_this_class_ref after generating
1365         code.
1366
1367 2007-02-06  Tom Tromey  <tromey@redhat.com>
1368
1369         PR java/30714:
1370         * jvspec.c (lang_specific_driver): Check for the '-' in '-I'.
1371
1372 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
1373
1374         * java-tree.h, javaop.def, jcf-parse.c: Fix comment typos.
1375
1376 2007-02-02  Andrew Haley  <aph@redhat.com>
1377
1378         * expr.c (expand_byte_code): Call cache_this_class_ref() and
1379         cache_cpool_data_ref().
1380         Set TYPE_CPOOL_DATA_REF.
1381         (cache_cpool_data_ref): New function.
1382         * constants.c (build_ref_from_constant_pool): Remove special-case
1383         code for flag_indirect_classes.
1384         (build_constant_data_ref): Move special-case code for
1385         flag_indirect_classes here from build_ref_from_constant_pool.
1386         * decl.c (finish_method): Move class initialization from here to
1387         cache_this_class_ref.
1388         * class.c (cache_this_class_ref): New function.
1389         (build_class_ref): Use this_classdollar for the ouput class.
1390
1391 2007-02-02  David Daney  <ddaney@avtrex.com>
1392
1393         * class.c (is_compiled_class): Move check to avoid reloading
1394         current class.
1395         (layout_class_method): Don't calculate DECL_EXTERNAL if it is
1396         already set.
1397
1398 2007-02-01  Andrew Haley  <aph@redhat.com>
1399
1400         PR java/30641
1401         * jcf-parse.c (jcf_parse): Clear the field_offsets bitmap.
1402
1403 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
1404
1405         * class.c, jcf-parse.c: Fix comment typos.
1406
1407 2007-01-30  Tom Tromey  <tromey@redhat.com>
1408
1409         * gcj.texi (Strings): Fix documentation for JvNewString.
1410
1411 2007-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1412
1413         * gcj.texi (Invoking gcjh, Invoking gjnih, Arrays): Fix some
1414         typos.
1415
1416 2007-01-30  Ben Elliston  <bje@au.ibm.com>
1417
1418         * jvspec.c (lang_specific_driver): Remove unused classpath_args.
1419
1420 2007-01-29  Tom Tromey  <tromey@redhat.com>
1421
1422         PR java/30607:
1423         * jvspec.c (lang_specific_driver): Handle separate -I argument.
1424         * lang.opt (-I): Add 'Separate'.
1425
1426 2007-01-29  Andrew Haley  <aph@redhat.com>
1427
1428         * class.c (add_method_1): Mark fndecl as external unless we are
1429         compiling it into this object file.
1430
1431 2007-01-24  Andrew Haley  <aph@redhat.com>
1432
1433         * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a
1434         type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC.
1435
1436 2007-01-22  Andrew Haley  <aph@redhat.com>
1437
1438         * builtins.c (VMSupportsCS8_builtin): New function.
1439
1440 2007-01-23  Andrew Pinski  <pinskia@gmail.com>
1441
1442         PR java/30454
1443         * jcf-io.c (opendir_in_zip): Close the file
1444         and free zipf before returning after an error.
1445
1446 2007-01-16  Tom Tromey  <tromey@redhat.com>
1447
1448         * java-tree.def: Added copyright header.
1449
1450 2007-01-15  Tom Tromey  <tromey@redhat.com>
1451
1452         * lang.c (dump_compound_expr) <EXPR_WITH_FILE_LOCATION>: Removed
1453         case.
1454         * java-gimplify.c (java_gimplify_expr) <EXPR_WITH_FILE_LOCATION>:
1455         Removed case.
1456         * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed.
1457         (EXPR_WFL_NODE): Likewise.
1458         (EXPR_WFL_LINECOL): Likewise.
1459         (EXPR_WFL_FILENAME): Likewise.
1460         (EXPR_WFL_LINENO): Likewise.
1461         (build_expr_wfl, expr_add_location): Don't declare.
1462         (build_unknown_wfl): Removed.
1463         (EXPR_WFL_FILENAME_NODE): Removed.
1464         (EXPR_WFL_COLNO): Removed.
1465         (EXPR_WFL_SET_LINECOL): Removed.
1466         (DECL_FUNCTION_WFL): Removed.
1467         (DECL_FIELD_FINAL_WFL): Removed.
1468         (struct lang_decl_func) <wfl>: Removed field.
1469         <called_constructor>: Likewise.
1470         <inner_access>: Likewise.
1471         (struct lang_decl_var) <wfl>: Removed field.
1472         (DECL_CONSTRUCTOR_CALLS): Removed.
1473         (DECL_FUNCTION_ACCESS_DECL): Likewise.
1474         (DECL_FUNCTION_INNER_ACCESS): Likewise.
1475         (DECL_SPECIFIC_COUNT): Likewise.
1476         * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed.
1477         * expr.c (build_expr_wfl): Removed.
1478         (expr_add_location): Likewise.
1479
1480 2007-01-12  Tom Tromey  <tromey@redhat.com>
1481
1482         * jcf-dump.c (main): Updated call to find_class.
1483         * lang.c (java_init): Removed dead code.
1484         * jcf-parse.c (read_class): Don't use java_source field.  Removed
1485         dead code.
1486         (parse_zip_file_entries): Don't use java_source field.
1487         (process_zip_dir): Likewise.
1488         (jcf_parse): Removed dead code.
1489         (java_parse_file): Likewise.
1490         (read_class): Updated call to find_class.
1491         * jcf-io.c (find_class): Don't use java_source field.  Removed
1492         'source_ok' argument, .java logic.
1493         * jcf.h (JCF) <java_source>: Removed field.
1494         (JCF_ZERO): Updated.    (find_class): Updated.
1495         * decl.c: Removed dead code.
1496         * class.c: Removed dead code.
1497
1498 2007-01-11  Tom Tromey  <tromey@redhat.com>
1499
1500         * typeck.c (convert): Don't use flag_emit_class_files.
1501         * lang.c (java_post_options): Don't use flag_emit_class_files.
1502         (java_handle_option): Don't use flag_extraneous_semicolon or
1503         flag_redundant.
1504         * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use
1505         flag_emit_class_files.
1506         (load_class): Likewise.
1507         * java-tree.h (flag_emit_class_files): Don't declare.
1508         (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files.
1509         (flag_extraneous_semicolon): Don't declare.
1510         (flag_not_overriding): Likewise.
1511         (flag_static_local_jdk1_1): Likewise.
1512         (flag_redundant): Likewise.
1513         * expr.c (build_newarray): Don't use flag_emit_class_files.
1514         * class.c (DEFAULT_ENABLE_ASSERT): Don't use
1515         flag_emit_class_files.
1516         (build_class_ref): Likewise.
1517         * builtins.c (check_for_builtin): Don't use
1518         flag_emit_class_files.
1519
1520 2007-01-10  Tom Tromey  <tromey@redhat.com>
1521
1522         * lang.c (java_can_use_bit_fields_p): Removed.
1523         (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
1524
1525 2007-01-09  Andrew Haley  <aph@redhat.com>
1526
1527         * expr.c (build_java_arrayaccess): Rewrite to generate array
1528         access in canonical form.
1529         (expand_java_arraystore): Use build_fold_addr_expr() on address of
1530         array access.
1531
1532 2007-01-03  Andrew Haley  <aph@redhat.com>
1533
1534         PR java/28754
1535         * expr.c (expand_java_field_op): If we're initializing a field's
1536         declaring interface we should not also initialize the class
1537         context in which it was referenced.
1538
1539 2007-01-02  Tom Tromey  <tromey@redhat.com>
1540
1541         * java-tree.h (compiling_from_source, current_encoding,
1542         JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE,
1543         JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE,
1544         JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE,
1545         JTI_WFL_OPERATOR): Removed
1546         (finit_identifier_node, instinit_identifier_node,
1547         length_identifier_node, super_identifier_node,
1548         continue_identifier_node, access0_identifier_node, wfl_operator):
1549         Removed.
1550         (cyclic_inheritance_report,
1551         DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND,
1552         DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR,
1553         DECL_FIXED_CONSTRUCTOR_P): Removed.
1554         (struct lang_decl_func) <smic, nap, synthetic_ctor, fixed_ctor>:
1555         Removed.
1556         (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST,
1557         TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed.
1558         (struct lang_type) <finit_stmt_list, clinit_stmt_list, ii_block,
1559         import_list, import_demand_list>: Removed.
1560         (java_layout_seen_class_methods, init_jcf_parse, init_src_parse,
1561         cxx_keyword_p): Removed.
1562         (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P,
1563         TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED,
1564         CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P,
1565         IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
1566         IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT,
1567         PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P,
1568         CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P,
1569         LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR,
1570         RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P,
1571         IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER,
1572         NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P,
1573         PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
1574         CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P,
1575         CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P,
1576         FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT,
1577         BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count,
1578         java_parse_abort_on_error, extract_field_decl): Removed.
1579         (finput): Declare.
1580         * lang.c: (compiling_from_source, current_encoding): Removed.
1581         (java_handle_option): Ignore -fencoding.
1582         * parse.h: Don't include lex.h.
1583         (java_error_count, int_fits_type_p, stabilize_reference, RULE,
1584         RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW,
1585         YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
1586         INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS,
1587         INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS,
1588         MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context,
1589         ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class,
1590         CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME,
1591         OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2,
1592         BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P,
1593         JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P,
1594         JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P,
1595         IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS,
1596         MANGLE_OUTER_LOCAL_VARIABLE_NAME,
1597         MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID,
1598         MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING,
1599         SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
1600         UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP,
1601         AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION,
1602         AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION,
1603         ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
1604         ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED,
1605         LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
1606         LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
1607         LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK,
1608         PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS,
1609         IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE,
1610         ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER,
1611         INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE,
1612         INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL,
1613         JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS,
1614         JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE,
1615         JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct
1616         jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN,
1617         JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET,
1618         STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE,
1619         BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL,
1620         EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE,
1621         GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0,
1622         COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND,
1623         BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR,
1624         PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED,
1625         CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT,
1626         CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P,
1627         GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE,
1628         GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
1629         GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC,
1630         PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST,
1631         CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST,
1632         CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT,
1633         CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT,
1634         SET_CPC_STATIC_INITIALIZER_STMT,
1635         SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG,
1636         java_complete_class, java_check_circular_reference,
1637         java_fix_constructors, java_layout_classes, java_reorder_fields,
1638         java_method_add_stmt, java_get_line_col, reset_report,
1639         java_init_lex, yyparse, java_parse, yyerror, java_expand_classes,
1640         java_finish_classes, ctxp, ctxp_for_generation,
1641         ctxp_for_generation_last): Removed.
1642         * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR.
1643         * mangle.c (utf8_cmp): New function.
1644         (cxx_keywords): New global.
1645         (cxx_keyword_p): New function.
1646         * jvspec.c (JAVA_START_CHAR): Removed obsolete comment.
1647         * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR,
1648         NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
1649         CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR,
1650         THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT,
1651         CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed.
1652         * Make-lang.in (java.srcextra): Do nothing.
1653         (parse.c, keyword.h, gt-java-parse.h): Removed targets.
1654         (JAVA_OBJS): Don't mention deleted files.
1655         (java.mostlyclean): Likewise.
1656         (java.clean): Likewise.
1657         (JAVA_LEX_C): Removed.
1658         (buffer.o, check-init.o, parse.o): Remove unused targets.
1659         (typeck.o): Updated.
1660         * jcf-parse.c (read_class): Comment out unused code.
1661         (java_layout_seen_class_methods): New function.
1662         (parse_source_file_1, parse_source_file_2, parse_source_file_3):
1663         Removed.
1664         (java_parse_file): Comment out unused code.  Don't use 'ctxp'.
1665         (init_jcf_parse): Removed.
1666         * config-lang.in (gtfiles): Remove deleted files.
1667         * decl.c (java_init_decl_processing): Don't initialize
1668         finit_identifier_node, instinit_identifier_node,
1669         length_identifier_node, super_identifier_node,
1670         continue_identifier_node, access0_identifier_node.  Don't call
1671         init_jcf_parse.
1672         * class.c (cyclic_inheritance_report): New global.
1673         (add_method_1): Don't use
1674         DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND.
1675         (maybe_layout_super_class): Comment out code.
1676         (safe_layout_class): New function.
1677         * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR,
1678         DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR,
1679         UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR,
1680         NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR,
1681         INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR.
1682         (java_gimplify_case_expr): Removed.
1683         (java_gimplify_default_expr): Likewise.
1684         (java_gimplify_new_array_init): Likewise.
1685         * parse.y: Removed.
1686         * keyword.gperf, keyword.h: Removed.
1687         * chartables.h: Removed.
1688         * check-init.c: Removed.
1689         * buffer.c, buffer.h: Removed.
1690         * convert.h: Removed.
1691         * gen-table.pl: Removed.
1692         * lex.c, lex.h: Removed.
1693
1694 2007-01-02  Andrew Haley  <aph@redhat.com>
1695
1696         * expr.c (expand_java_arraystore): Make sure we perform a bounds
1697         check at runtime before we perform a type check.
1698
1699 2006-12-19  Andrew Haley  <aph@redhat.com>
1700
1701         * decl.c: Bump minor BC ABI version.
1702
1703 2006-12-13  Gary Benson  <gbenson@redhat.com>
1704
1705         * jcf-depend.c (jcf_dependency_add_file): Mark filename unused.
1706
1707 2006-12-12  Tom Tromey  <tromey@redhat.com>
1708
1709         * lang-specs.h: Pass -M options to jc1.
1710         * jcf-depend.c (jcf_dependency_add_file): Don't emit
1711         dependencies.
1712
1713 2006-12-07  Mohan Embar  <gnustuff@thisiscool.com>
1714
1715         * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR.
1716
1717 2006-12-06  Mohan Embar  <gnustuff@thisiscool.com>
1718
1719         * lang-specs.h: Pass '%U'-based options as separate arguments.
1720
1721 2006-12-05  Tom Tromey  <tromey@redhat.com>
1722
1723         PR java/29495:
1724         * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and
1725         classes as well.
1726         * class.c (add_field): Handle ACC_SYNTHETIC.
1727         (add_method_1): Likewise.  Handle bridge and varargs.
1728         (get_access_flags_from_decl): Handle synthetic, bridge, varargs,
1729         annotation.
1730         (set_class_decl_access_flags): Handle synthetic and annotation.
1731         * java-tree.h (METHOD_BRIDGE): New macro.
1732         (METHOD_VARARGS): Likewise.
1733         (TYPE_SYNTHETIC): Likewise.
1734         (TYPE_ANNOTATION): Likewise.
1735         (lang_type): New fields 'synthetic' and 'annotation'.
1736         (lang_decl_func): New fields 'varargs' and 'bridge'.
1737
1738 2006-12-04  Andrew Haley  <aph@redhat.com>
1739
1740         * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if
1741         there's no map.
1742
1743 2006-11-29  Gary Benson  <gbenson@redhat.com>
1744
1745         * expr.c (rewrite_arglist_getcaller): Reorder.
1746
1747 2006-11-29  Andrew Haley  <aph@redhat.com>
1748
1749         * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE.
1750         * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE.
1751
1752 2006-11-23  Andrew Haley  <aph@redhat.com>
1753
1754         * expr.c (rewrite_arglist_getcaller): New.
1755         (rewrite_arglist_getclass): Fix indentation.
1756         (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and 
1757         gnu.classpath.VMStackWalker.getCallingClassLoader().
1758         * builtins.c (initialize_builtins): Remove duplicate def'n of
1759         __sync_synchronize.
1760         Add __builtin_return_address.
1761
1762 2006-11-22  Andrew Haley  <aph@redhat.com>
1763
1764         * jcf-reader.c (get_attribute): Mark attr_type unused.
1765
1766         * builtins.c (compareAndSwapObject_builtin): Fix declaration.
1767
1768 2007-01-08  Richard Guenther  <rguenther@suse.de>
1769
1770         * lex.c (do_java_lex): Use build_int_cst_wide_type.
1771         * jcf-parse.c (get_constant): Likewise.
1772
1773 2006-11-12  Jan Hubicka  <jh@suse.cz>
1774
1775         * resource.c (compile_resource_data): Update for new varpool names.
1776         * java/class.c (build_utf8_ref): Likewise.
1777
1778 2006-11-12  David Daney  <ddaney@avtrex.com>
1779
1780         PR java/29805
1781         * typeck.c (build_java_array_type): Increase buffer sizes.
1782
1783 2006-11-11  Richard Guenther  <rguenther@suse.de>
1784
1785         * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR,
1786         FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1787
1788 2006-11-06  Andrew Haley  <aph@redhat.com>
1789
1790         * java-tree.h (CONSTANT_LazyFlag): New.
1791         * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag.
1792         * jcf-parse.c (handle_innerclass_attribute): Write attribute to
1793         reflection_data.
1794         (handle_constant): Return 0 for dummy cpool entries.
1795         Handle constants of kind Class.
1796         Handle constants of kind NameAndType.
1797         (handle_enclosingmethod_attribute): New.
1798         (handle_signature_attribute): New.
1799         (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New.
1800         (HANDLE_SIGNATURE_ATTRIBUTE): New.
1801         (handle_constant): Use unmangle_classname()rather than calling
1802         identifier_subst() directly.
1803
1804 2006-11-02  Andrew Haley  <aph@redhat.com>
1805
1806         * java-tree.h (FIELD_ENUM): New.
1807         (lang_decl_var.field_enum): New.
1808         (lang_type.enum_class): New.
1809         (CLASS_ENUM): New.
1810         * class.c (set_class_decl_access_flags): Handle enum types.
1811         (add_field): Handle enum fields.
1812         (get_access_flags_from_decl): Likewise.
1813
1814         * class.c (make_class_data): Put reflection_data into rodata.
1815
1816 2006-11-01  Andrew Haley  <aph@redhat.com>
1817
1818         * jcf-parse.c (field_offsets, bit_obstack): New variables.
1819         (jcf_parse): Write end marker to annotation_data.
1820         (java_parse_file): Create field_offsets bitmap.  Destroy it.
1821         (annotation_grow, annotation_rewrite_byte) 
1822         (annotation_rewrite_short, annotation_rewrite_int) 
1823         (annotation_read_short, annotation_write_byte) 
1824         (annotation_write_short, annotation_write_int) 
1825         (handle_long_constant, handle_constant, handle_element_value) 
1826         (handle_annotation, handle_annotations) 
1827         (handle_annotation_attribute, rewrite_reflection_indexes) 
1828         (handle_member_annotations, handle_parameter_annotations) 
1829         (handle_default_annotation): New functions.
1830         (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE) 
1831         (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE) 
1832         (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE) 
1833         (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE) 
1834         (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions.
1835         * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New. 
1836         (TYPE_REFLECTION_DATA): New.
1837         (TYPE_REFLECTION_DATASIZE): New.
1838         * jcf.h (enum cpool_tag): Convert a bunch of #define constants to
1839         an enum.
1840         * jcf-reader.c (get_attribute): Pass field/method index and
1841         attribute type to get_attribute().
1842         * constants.c (find_class_or_string_constant): Make nonstatic.
1843         (cpool_for_class): Likewise.
1844         (build_constants_constructor): Separate string and scalar types.
1845         * class.c (make_class_data): Generate field_indexes permutation.
1846         Pass it to rewrite_reflection_indexes().
1847         (make_class_data): Generate constructor for reflection_data field.
1848
1849 2006-10-20  Tom Tromey  <tromey@redhat.com>
1850
1851         * gcj.texi (Top): Don't mention jv-scan.
1852         (Invoking gcj): Likewise.
1853         (Invoking gcjh): Likewise.
1854         (Invoking gjnih): Likewise.
1855         (Invoking gij): Likewise.
1856         (Invoking gcj-dbtool): Likewise.
1857         (Invoking jv-scan): Removed.
1858         * parse-scan.y: Removed.
1859         * jv-scan.c: Removed.
1860         * config-lang.in (stagestuff): Don't mention jv-scan.
1861         * Make-lang.in (java): Removed jv-scan.
1862         (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1863         (JVSCAN_OBJS): Removed.
1864         (jv-scan$(exeext)): Likewise.
1865         (JAVA_MANFILES): Removed jv-scan.1.
1866         (java.uninstall): Don't mention jv-scan.
1867         (java.mostlyclean): Likewise.
1868         (java.maintainer-clean): Likewise.
1869         (.INTERMEDIATE): Likewise.
1870         (java/jv-scan.o): Removed.
1871         (jv-scan.pod): Likewise.
1872         (java.srcextra): Don't mention parse-scan.c.
1873         (java.mostlyclean): Likewise.
1874         (java/parse-scan.c): Removed.
1875         (java/parse-scan.o-warn): Removed.
1876         (java/parse-scan.o): Removed.
1877
1878 2006-10-20  Tom Tromey  <tromey@redhat.com>
1879
1880         * lang.c (java_handle_option): Don't use
1881         jcf_write_base_directory.
1882         * jcf.h (jcf_write_base_directory): Removed.
1883         * parse.y (java_expand_classes): Don't call write_classfile.
1884         * config-lang.in (gtfiles): Removed jcf-write.c.
1885         * Make-lang.in (JAVA_OBJS): Removed jcf-write.o.
1886         (java/jcf-write.o): Removed.
1887         * jcf-parse.c (parse_class_file): Don't call write_classfile.
1888         * java-tree.h (write_classfile): Removed declaration.
1889         * jcf-write.c: Removed.
1890
1891 2006-10-20  Tom Tromey  <tromey@redhat.com>
1892
1893         * Make-lang.in (java): Removed gjnih, gcjh.
1894         (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1895         (GCJH_OBJS): Removed.
1896         (GJNIH_OBJS): Likewise.
1897         (gjnih$(exeext)): Likewise.
1898         (gcjh$(exeext)): Likewise.
1899         (JAVA_MANFILES): Removed gcjh.1, gjnih.1.
1900         (java.install-common): Don't special case gcjh.
1901         (java.uninstall): Don't mention gcjh, gjnih.
1902         (java.mostlyclean): Likewise.
1903         (java.maintainer-clean): Likewise.
1904         (.INTERMEDIATE): Likewise.
1905         (gcjh.pod): Removed.
1906         (gjnih.pod): Likewise.
1907         (GCJH_TARGET_INSTALL_NAME): Removed.
1908         (java/gjavah-jni.o): Removed.
1909         (java/gjavah.o): Likewise.
1910         * config-lang.in (stagestuff): Removed gjnih, gcjh.
1911         * gjavah.c: Removed.
1912
1913 2006-10-17  Tom Tromey  <tromey@redhat.com>
1914
1915         * jcf-dump.c (print_element_value): Expect a utf8 constant in the
1916         "string" case.
1917
1918 2006-10-17  Tom Tromey  <tromey@redhat.com>
1919
1920         * jvgenmain.c (main): Handle -findirect-dispatch.
1921         * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
1922         jvgenmain.
1923
1924 2006-10-06  Andrew Haley  <aph@redhat.com>
1925
1926         * builtins.c (compareAndSwapInt_builtin): Check that we really do
1927         have a compare_and_swap builtin.
1928         (compareAndSwapLong_builtin): Likewise.
1929         (compareAndSwapObject_builtin): Likewise.
1930
1931 2006-10-04  Andrew Haley  <aph@redhat.com>
1932
1933         * builtins.c (java_builtins): Add compareAndSwapInt,
1934         compareAndSwapLong, compareAndSwapObject, putOrderedInt,
1935         putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile,
1936         putObjectVolatile, getObjectVolatile, getIntVolatile,
1937         getLongVolatile, getLong.
1938         (UNMARSHAL3): New macro.
1939         (UNMARSHAL4): Likewise.
1940         (UNMARSHAL5): Likewise.
1941         (build_arglist_for_builtin): New function.
1942         (build_addr_sum, build_check_this): New functions.
1943         (putObject_builtin. compareAndSwapInt_builtin,
1944         compareAndSwapLong_builtin, compareAndSwapObject_builtin,
1945         putVolatile_builtin, getVolatile_builtin): New builtins.
1946
1947 2006-06-08  Andrew Haley  <aph@redhat.com>
1948  
1949         * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
1950         get_symbol_table_index().
1951         (maybe_rewrite_invocation): Set SPECIAL if we need to access a
1952         private method.
1953         (build_known_method_ref): New arg: special.  Pass it to
1954         get_symbol_table_index.
1955         (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
1956         the method list.
1957         (build_invokevirtual): New arg: special.  Pass it to
1958         get_symbol_table_index.
1959         (expand_invoke): New variable: special.
1960         Pass it to maybe_rewrite_invocation().
1961         Pass it to build_known_method_ref().
1962         * class.c (build_symbol_entry): Add new arg: special.  Use it to
1963         build the symbol table conbstructor.
1964         (emit_symbol_table): Extract SPECIAL from the method list and pass
1965         it to build_symbol_entry().
1966         * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
1967         special accordingly.
1968  
1969 2006-09-08  Andrew Haley  <aph@redhat.com>
1970
1971         * class.c (layout_class_method): Use build_java_signature, not
1972         build_java_argument_signature.  Use lookup_java_method, not
1973         lookup_argument_method.
1974
1975 2006-08-16  Jakub Jelinek  <jakub@redhat.com>
1976             Bryce McKinlay  <bryce@mckinlay.net.nz>
1977
1978         * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
1979
1980 2006-07-18  Tom Tromey  <tromey@redhat.com>
1981
1982         * lang.opt: Added missing -W options.
1983
1984 2006-07-12  Tom Tromey  <tromey@redhat.com>
1985
1986         PR java/28329:
1987         * lang-specs.h: Pass '%U'-based options as separate arguments.
1988         Use -faux-classpath.
1989         * lang.c (java_handle_option): Handle OPT_faux_classpath.
1990         * lang.opt (faux-classpath): New option.
1991
1992 2006-07-07  Tom Tromey  <tromey@redhat.com>
1993
1994         * class.c (make_class_data): Set value for reflection_data field.
1995         * decl.c (java_init_decl_processing): Add reflection_data field.
1996
1997 2006-07-07  Tom Tromey  <tromey@redhat.com>
1998
1999         * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals
2000         earlier.
2001         (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2002
2003 2006-07-07  Andrew Haley  <aph@redhat.com>
2004
2005         * jcf-parse.c (set_source_filename): Don't check for
2006         CLASS_FROM_CURRENTLY_COMPILED_P.
2007         Remove // comments.
2008
2009 2006-07-07  Andrew Haley  <aph@redhat.com>
2010
2011         * java-tree.h (java_read_sourcefilenames): Declare.
2012         * lang.c (java_handle_option): Call java_read_sourcefilenames().
2013         * lang.opt (fsource-filename): New opt.
2014         * lang-specs.h: Add -fsource-filename.
2015         * jcf-parse.c (num_files, filenames): New variables.
2016         (reverse, cmpstringp, java_read_sourcefilenames,
2017         find_sourcefile): New.
2018         (set_source_filename): Call find_sourcefile to find the real name
2019         of a source file.
2020
2021 2006-06-27  Tom Tromey  <tromey@redhat.com>
2022
2023         * jcf-reader.c (get_attribute): Handle EnclosingMethod,
2024         Signature, LocalVariableTypeTable, annotation attributes.
2025         * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro.
2026         (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2027         (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'.
2028         (HANDLE_METHOD): Likewise.
2029         (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro.
2030         (print_annotation): New function.
2031         (print_element_value): Likewise.
2032         (indent): Likewise.
2033         (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro.
2034         (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise.
2035         (print_parameter_annotations): New function.
2036         (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro.
2037         (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE):
2038         Likewise.
2039         (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise.
2040         (print_annotations): New function.
2041
2042 2006-06-23  Tom Tromey  <tromey@redhat.com>
2043
2044         * lang-specs.h: Default -fsource and -ftarget to 1.5.  If
2045         emitting class files, always use 1.5.
2046         * gcj.texi (Input Options): Document -fsource.
2047         (Code Generation): Document -ftarget.
2048
2049 2006-06-21  Tom Tromey  <tromey@redhat.com>
2050
2051         PR java/28089:
2052         * expr.c (expand_java_field_op): Initialize field's declaring
2053         class.
2054
2055 2006-06-20  Tom Tromey  <tromey@redhat.com>
2056
2057         * expr.c (push_value): Always flush quick stack.
2058
2059 2006-06-19  Tom Tromey  <tromey@redhat.com>
2060
2061         * expr.c (push_value): Also flush quick stack if value is a
2062         component_ref.
2063
2064 2006-06-19  Tom Tromey  <tromey@redhat.com>
2065
2066         * expr.c (push_value): Flush quick stack if value has side
2067         effects.
2068
2069 2006-06-13  Tom Tromey  <tromey@redhat.com>
2070
2071         * class.c (is_compiled_class): Explicitly check for current
2072         class.
2073
2074 2006-06-09  Tom Tromey  <tromey@redhat.com>
2075
2076         * gjavah.c (decompile_method): Don't decompile a static field
2077         accessor method.
2078
2079 2006-06-06  Tom Tromey  <tromey@redhat.com>
2080
2081         * lang-specs.h <jc1>: Add .jar file to command line if
2082         -fsaw-java-file.  Also, remove -ffilelist-file in this case.
2083
2084 2006-06-05  Tom Tromey  <tromey@redhat.com>
2085
2086         * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2087         synthetic, enum, annotation.
2088         * jcf.h (ACC_BRIDGE): New macro.
2089         (ACC_VARARGS): Likewise.
2090         (ACC_SYNTHETIC): Likewise.
2091         (ACC_ENUM): Likewise.
2092         (ACC_ANNOTATION): Likewise.
2093
2094 2006-06-04  Tom Tromey  <tromey@redhat.com>
2095
2096         * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options.
2097         * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource,
2098         and -ftarget.
2099         (lang_specific_driver): Removed dead code.  Add -fsaw-java-file
2100         when needed.  Handle classpath-setting.
2101         * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o.
2102         * lang-specs.h: Rewrote.
2103
2104 2006-06-04  Tom Tromey  <tromey@redhat.com>
2105
2106         * jcf-io.c (find_class): Set source_ok to 0.
2107         * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning.
2108         (parse_class_file): Don't call java_mark_class_local.
2109         (java_parse_file): Skip .java files.  Call java_mark_class_local
2110         before lowering any code.
2111         (parse_zip_file_entries): Don't call duplicate_class_warning
2112         here.
2113         (process_zip_dir): ... call it here.
2114         * class.c (add_field): Don't mark field external if it is being
2115         compiled into this object.
2116         (make_class_data): Handle situation where class_dtable_decl is
2117         created before Class is compiled.
2118         (is_compiled_class): Don't assume files in zip are compiled into
2119         this object.
2120         (layout_class_method): Don't mark method external if it is being
2121         compiled into this object.
2122
2123 2006-06-04  Tom Tromey  <tromey@redhat.com>
2124
2125         * jcf-path.c (jcf_path_compute): New function.
2126         * jcf.h (jcf_path_compute): Declare.
2127
2128 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2129
2130         * decl.c: Include langhooks.h.
2131         (builtin_function): Remove.
2132         (java_init_decl_processing): Replace calls to builtin_function
2133         with add_builtin_function.
2134         * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o.
2135         (java/decl.o): Depend on langhooks.h.
2136         * java-tree.h (builtin_function): Remove.
2137
2138 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
2139
2140         * Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
2141
2142 2006-09-12  Tom Tromey  <tromey@redhat.com>
2143
2144         * expr.c (push_value): Always flush quick stack.
2145
2146 2006-09-12  Tom Tromey  <tromey@redhat.com>
2147
2148         PR java/29013:
2149         * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note
2150         the push of the called method's return result.
2151
2152 2006-09-12  Tom Tromey  <tromey@redhat.com>
2153
2154         * jvspec.c (lang_specific_driver): Read spec file even if
2155         -fsyntax-only.
2156
2157 2006-09-12  Tom Tromey  <tromey@redhat.com>
2158
2159         PR java/28754:
2160         * expr.c (expand_java_field_op): Initialize field's declaring
2161         interface if necessary.
2162
2163 2006-09-12  Tom Tromey  <tromey@redhat.com>
2164
2165         PR java/28892:
2166         * expr.c (expand_java_field_op): No error for assignments not in
2167         class initializer or constructor.
2168
2169 2006-08-22  Andrew Haley  <aph@redhat.com>
2170
2171         * decl.c (java_add_stmt): Give the statement list a type.
2172
2173 2006-08-16  Jakub Jelinek  <jakub@redhat.com>
2174             Bryce McKinlay  <bryce@mckinlay.net.nz>
2175
2176         * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
2177
2178 2006-08-10  Simon Martin  <simartin@users.sourceforge.net>
2179
2180         PR java/8923
2181         * parse.y (build_incdec): Emit an error instead of an ICE if '++'
2182         or '--' is used with a constant operand.
2183         (java_complete_lhs): When processing a '++' or '--' expression,
2184         don't call java_complete_tree but java_complete_lhs, so that a
2185         static final variable operand is never replaced by its value. This
2186         avoids an ICE later on.
2187         (patch_unaryop): Fixed typo in comment.
2188
2189 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2190
2191         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2192
2193 2006-07-12  Bryce McKinlay  <mckinlay@redhat.com>
2194
2195         * builtins.c (check_for_builtin): If a builtin could result in a
2196         direct call being generated, don't use it if flag_indirect_dispatch
2197         is set.
2198
2199 2006-07-12  Bryce McKinlay  <mckinlay@redhat.com>
2200
2201         * gcj.texi (Invocation): Corrections for Invocation API example.
2202
2203 2006-07-04  Andrew Haley  <aph@redhat.com>
2204
2205         * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the
2206         entry.
2207
2208 2006-06-21  Andrew Haley  <aph@redhat.com>
2209
2210         * java-tree.h (update_aliases): Remove
2211         * expr.c (expand_iinc): Remove call to update_aliases().
2212         (STORE_INTERNAL): Likewise.
2213         * decl.c (update_aliases, initialize_local_variable) 
2214         (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls.
2215
2216 2006-06-19  Andrew Haley  <aph@redhat.com>
2217
2218         PR java/1305
2219         PR java/27908
2220         * expr.c (java_modify_addr_for_volatile): New function.
2221         (expand_java_field_op): Handle volatile fields.
2222         * java-gimplify.c (java_gimplify_component_ref): Call
2223         java_modify_addr_for_volatile to give the field_ref the correct
2224         volatile type.
2225         (java_gimplify_modify_expr): Likewise.
2226         * java-tree.h (java_modify_addr_for_volatile): New decl.
2227
2228 2006-06-17  Karl Berry  <karl@gnu.org>
2229
2230         * gcj.texi (@dircategory): Use "Software development" instead
2231         of "Programming", following the Free Software Directory.
2232
2233 2006-06-16  Andrew Haley  <aph@redhat.com>
2234
2235         * class.c (make_class_data): When using flag_indirect_classes,
2236         don't initialize the vtable of Class instances.
2237
2238 2006-06-09  Andrew Haley  <aph@redhat.com>
2239
2240         PR java/1305
2241         PR java/27908
2242         * builtins.c (initialize_builtins): Add __sync_synchronize().
2243         * class.c (add_field): Mark volatile fields.
2244         * java-gimplify.c (java_gimplify_expr): Call new functions to
2245         handle self-modifying exprs and COMPONENT_REFs.
2246         (java_gimplify_component_ref): New.
2247         (java_gimplify_modify_expr): Add handling for volatiles.
2248
2249 2006-06-08  Tom Tromey  <tromey@redhat.com>
2250
2251         * gcj.texi (libgcj Runtime Properties): Document
2252         gnu.gcj.user.realname.
2253
2254 2006-06-08  Andrew Haley  <aph@redhat.com>
2255
2256         * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
2257         get_symbol_table_index().
2258         (maybe_rewrite_invocation): Set SPECIAL if we need to access a
2259         private method.
2260         (build_known_method_ref): New arg: special.  Pass it to
2261         get_symbol_table_index.
2262         (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
2263         the method list.
2264         (build_invokevirtual): New arg: special.  Pass it to
2265         get_symbol_table_index.
2266         (expand_invoke): New variable: special.
2267         Pass it to maybe_rewrite_invocation().
2268         Pass it to build_known_method_ref().
2269         * class.c (build_symbol_entry): Add new arg: special.  Use it to
2270         build the symbol table conbstructor.
2271         (emit_symbol_table): Extract SPECIAL from the method list and pass
2272         it to build_symbol_entry().
2273         * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
2274         special accordingly.
2275
2276 2006-06-06  David Daney  <ddaney@avtrex.com>
2277
2278         * gcj.texi (libgcj Runtime Properties): Document
2279         gnu.gcj.runtime.NameFinder.show_raw and
2280         gnu.gcj.runtime.NameFinder.remove_unknown.
2281
2282 2006-06-06  Tom Tromey  <tromey@redhat.com>
2283
2284         * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2285         synthetic, enum, annotation.
2286         * jcf.h (ACC_BRIDGE): New macro.
2287         (ACC_VARARGS): Likewise.
2288         (ACC_SYNTHETIC): Likewise.
2289         (ACC_ENUM): Likewise.
2290         (ACC_ANNOTATION): Likewise.
2291
2292 2006-06-06  Mike Stump  <mrs@apple.com>
2293
2294         * Make-lang.in: Rename to htmldir to build_htmldir to avoid
2295         installing during build.
2296
2297 2006-05-31  Thomas Fitzsimmons  <fitzsim@redhat.com>
2298
2299         * gcj.texi (Extensions): Document the new gcj-dbtool-based
2300         classname-to-library resolution mechanism.
2301         Declare the old gnu.gcj.runtime.VMClassLoader.library_control
2302         mechanism deprecated.
2303         (libgcj Runtime Properties): Document
2304         gnu.gcj.runtime.VMClassLoader.library_control's new default.
2305
2306 2006-05-29  Jakub Jelinek  <jakub@redhat.com>
2307
2308         * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
2309         bit wide type.
2310         (jword): Define to uint64 on 64-bit arches.
2311         * jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
2312
2313 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
2314
2315         * class.c, except.c, expr.c, java-gimplify.c: Fix comment
2316         typos.
2317
2318 2006-05-26  Tom Tromey  <tromey@redhat.com>
2319
2320         * expr.c (java_push_constant_from_pool): Handle 'ldc class'.
2321         * verify-glue.c (vfy_class_type): New function.
2322         * verify-impl.c (check_constant): Allow 'ldc class'.
2323         * verify.h (vfy_class_type): Declare.
2324
2325 2006-05-25  Andrew Haley  <aph@redhat.com>
2326
2327         PR java/27756
2328         * decl.c (maybe_pushlevels): When variable ranges are non-nested
2329         update all lifetimes, not just the first one.
2330
2331 2006-05-24  Tom Tromey  <tromey@redhat.com>
2332
2333         * java-tree.h: Fixed flag documentation.
2334
2335 2006-05-24  Tom Tromey  <tromey@redhat.com>
2336
2337         PR libgcj/27729:
2338         * jcf.h (ACC_INVISIBLE): Changed value.
2339
2340 2006-05-24  Andrew Haley  <aph@redhat.com>
2341
2342         PR java/27754
2343         * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a
2344         COMPOUND_EXPR.
2345
2346 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2347
2348         * lang.opt (femit-class-file): Remove VarExists.
2349
2350 2006-05-16  Tom Tromey  <tromey@redhat.com>
2351
2352         * verify-impl.c (verify_instructions_0) <op_return>: Special case
2353         for Object.<init>.
2354
2355 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2356
2357         PR driver/26885
2358         * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
2359         $(GCC_OBJS).
2360
2361 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2362
2363         * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H).
2364         (java/expr.o): Replace target.h with $(TARGET_H).
2365         (java/parse.o): Likewise.
2366
2367 2006-05-10  Andrew Haley  <aph@redhat.com>
2368
2369         * class.c (emit_indirect_register_classes): Fix comment.
2370
2371 2006-05-04  Tom Tromey  <tromey@redhat.com>
2372
2373         * java-tree.h (uses_jv_markobj_p): Declare.
2374         * class.c (uses_jv_markobj_p): Removed.
2375         * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define.
2376         (get_boehm_type_descriptor): Use it.
2377         (uses_jv_markobj_p): Moved from class.c.  Return bool.
2378
2379 2006-05-04  Tom Tromey  <tromey@redhat.com>
2380
2381         * java-tree.def (THIS_EXPR): Now a tcc_expression.
2382
2383 2006-05-04  Andrew Haley  <aph@redhat.com>
2384
2385         * class.c (make_field_value): Always build_address_of fdecl if
2386         there is an initializer.
2387
2388 2006-05-03  Andrew Haley  <aph@redhat.com>
2389
2390         PR libgcj/27352
2391         * expr.c (maybe_rewrite_invocation): New function.
2392         (rewrite_arglist_getclass): Likewise.
2393         (rules): New.
2394         (expand_invoke): Call maybe_rewrite_invocation.
2395         * parse.y (patch_invoke): Likewise.
2396         * java-tree.h: (maybe_rewrite_invocation): New function.
2397
2398 2006-04-21  Andrew Haley  <aph@redhat.com>
2399
2400         * lang.c (java_init): Handle flag_indirect_classes.
2401         * jvgenmain.c: Use "class$$" instead of "class$".
2402         * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
2403         DECLs.
2404         (mangle_class_field): Special case "class$$" as well as "class$".
2405         * constants.c (build_ref_from_constant_pool): If
2406         flag_indirect_classes, generate a ref into the heap.
2407         * decl.c (constants_field_decl_node,
2408         constants_data_field_decl_node): New.
2409         * class.c (build_static_class_ref): New.
2410         (build_classdollar_field): Factor out from build_class_ref().
2411         (make_field_value): Handle static fields in heap.
2412         (make_class_data): Make sure we get a static ref to class.
2413         Make class initializer const if flag_indirect_classes.
2414         (register_class): Build a class_ref for initialization if
2415         flag_indirect_classes.
2416         (emit_indirect_register_classes): New.
2417
2418 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
2419
2420         * expr.c, gjavah.c: Fix comment typos.
2421
2422 2006-04-03  Andrew Haley  <aph@redhat.com>
2423
2424         PR java/26858
2425         * expr.c (build_field_ref): Don't check the field offset if
2426         flag_syntax_only.
2427
2428 2006-03-30  Andrew Haley  <aph@redhat.com>
2429
2430         PR java/26858
2431         * lang.c (java_attribute_table): New.
2432         (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
2433         * expr.c (build_field_ref): Add a null pointer check for all
2434         fields of offset > 4k.  Don't do so for accesses via the this
2435         pointer, which we know can never be null.
2436         * class.c (build_java_method_type): Mark arg 1 of all nonstatic
2437         methods nonnull.
2438
2439 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
2440
2441         * Make-lang.in: Rename docdir to gcc_docdir.
2442
2443 2006-03-30  Tom Tromey  <tromey@redhat.com>
2444
2445         PR java/26042:
2446         * parse.y (java_reorder_fields): Reset superclass field's size as
2447         well.
2448
2449 2006-03-28  Tom Tromey  <tromey@redhat.com>
2450
2451         PR java/26390:
2452         * parse.y (find_most_specific_methods_list): Added 'class'
2453         argument.
2454         (lookup_method_invoke): Updated.
2455
2456 2006-03-15  Tom Tromey  <tromey@redhat.com>
2457
2458         * jcf-write.c (generate_bytecode_insns): Use qualifying type for
2459         non-static method calls.
2460
2461 2006-03-15  David Daney  <ddaney@avtrex.com>
2462
2463         * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its
2464         declaration.
2465
2466 2006-03-15  David Daney  <ddaney@avtrex.com>
2467
2468         * lang.opt (-freduced-reflection): New option.
2469         * lang.c (java_post_options): Generate an error if
2470         -freduced-reflection used with -fjni or -findirect-dispatch.
2471         * java-tree.h (flag_reduced_reflection): Declare new variable.
2472         * boehm.c (get_boehm_type_descriptor): Indicate all pointers
2473         if bitmap overflows and flag_reduced_reflection set.
2474         * class.c (uses_jv_markobj_p): New function.
2475         (make_class_data): Moved generation of vtable to before
2476         reflection data, generate less reflection data if
2477         flag_reduced_reflection set.
2478         * gcj.texi: Document -freduced-reflection.
2479
2480 2006-03-15  Tom Tromey  <tromey@redhat.com>
2481
2482         PR java/26638:
2483         * class.c (get_interface_method_index): Don't put <clinit> into
2484         interface table.
2485
2486 2006-03-15  Tom Tromey  <tromey@redhat.com>
2487
2488         * parse.y (analyze_clinit_body): Ignore empty statements.
2489
2490 2006-03-08  David Daney  <ddaney@avtrex.com>
2491
2492         * gcj.texi: Document -static-libgcj option.
2493
2494 2006-02-20  Andrew Haley  <aph@redhat.com>
2495
2496         * jcf-parse.c (parse_class_file): Set input_location from
2497         current_class.
2498
2499 2006-02-15  Andrew Haley  <aph@redhat.com>
2500
2501         * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here.
2502         (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL,
2503         TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here.
2504
2505 2006-02-09  Andrew Haley  <aph@redhat.com>
2506
2507         PR java/26192
2508         * expr.c (expand_invoke): Allow methods in arrays to be resolved
2509         in their superclass.
2510
2511         * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for
2512         array types.
2513         
2514 2006-02-08  Tom Tromey  <tromey@redhat.com>
2515
2516         PR java/22578:
2517         * check-init.c (check_init): Handle VIEW_CONVERT_EXPR.
2518         * builtins.c (convert_real): New function.
2519         (java_builtins): Handle Float.intBitsToFloat,
2520         Float.floatToRawIntBits, Double.longBitsToDouble,
2521         Double.doubleToRawLongBits.
2522
2523 2006-02-07  Andrew Haley  <aph@redhat.com>
2524
2525         * expr.c (expand_invoke): (BC mode.)  If we find a method in a
2526         class other than the one in which we expected to find it, ignore
2527         the result.
2528
2529         PR java/25535
2530         * constants.c (build_constants_constructor): move initializer into
2531         first halfword on a 64-bit big-endian machine.
2532
2533 2006-02-04  Tom Tromey  <tromey@redhat.com>
2534
2535         PR java/25676:
2536         * builtins.c (max_builtin): Skip floating point 'max'.
2537         (min_builtin): Skip floating point 'min'.
2538         (check_for_builtin): Never return NULL_TREE.
2539
2540 2006-02-04  Tom Tromey  <tromey@redhat.com>
2541
2542         PR java/26097:
2543         * expr.c (push_type): Avoid side effect in gcc_assert.
2544
2545 2006-02-04  Roger Sayle  <roger@eyesopen.com>
2546
2547         * decl.c (java_init_decl_processing): Create char_type_node as a
2548         regular INTEGER_TYPE node.
2549         (push_promoted_type): Preserve TYPE_STRING_FLAG on types.
2550         * typeck.c (convert): No longer check for CHAR_TYPEs but instead
2551         test for char_type_node and promoted_char_type_node as special
2552         instances of INTEGER_TYPE tree codes.
2553         (promote_type,build_java_signature): Likewise.
2554         * jcf-write.c (adjust_typed_op): Likewise.
2555         * mangle.c (mangle_type): Likewise.
2556         * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
2557         * parse.h (JINTEGRAL_TYPE_P): Likewise.
2558
2559 2006-02-04  Andreas Tobler  <a.tobler@schweiz.ch>
2560
2561         * expr.c (java_stack_swap): Revert gcc_assert patch.
2562
2563 2006-02-03  Ben Elliston  <bje@au.ibm.com>
2564
2565         * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout.
2566         * typeck.c: Likewise.
2567         * verify-impl.c: Likewise.
2568         * class.c: Likewise.
2569         * decl.c: Likewise.
2570         * jcf-parse.c: Likewise.
2571         * constants.c: Likewise.
2572         * check-init.c: Likewise.
2573         * jcf-write.c: Likewise.
2574         * verify-glue.c: Likewise.
2575         * mangle.c: Likewise.
2576         * expr.c: Likewise.
2577         * lang.c: Likewise.
2578         * boehm.c: Likewise.
2579
2580 2006-02-01  Jan Hubicka  <jh@suse.cz>
2581
2582         * decl.c (end_java_method): Kill hack disabling unit-at-a-time.
2583         * lang.c (java_init_options): Set no_unit_at_a_time_default.
2584
2585 2006-01-30  Andrew Haley  <aph@redhat.com>
2586
2587         PR java/21428
2588         * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").
2589
2590 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
2591
2592         * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version):
2593         Update copyright notice dates.
2594
2595 2006-01-16  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2596
2597         * jvspec.c (lang_specific_spec_functions): Remove.
2598
2599 2006-01-06  Tom Tromey  <tromey@redhat.com>
2600
2601         * gcj.texi (Arrays): Added more documentation for
2602         JvNewObjectArray.
2603         (Primitive types): Correct information about primitive classes.
2604         (Reference types): New node.
2605         (Index): New node.
2606
2607 2005-12-16  Alexandre Oliva  <aoliva@redhat.com>
2608
2609         * jcf-parse.c (set_source_filename): Set the decl source location
2610         even when returning early.
2611
2612 2005-12-15  Tom Tromey  <tromey@redhat.com>
2613             Andrew Haley  <aph@redhat.com>
2614
2615         PR java/25429
2616         * parse.y (resolve_expression_name): Don't generate accessor
2617         methods for constant fields.
2618
2619 2005-12-13  Andrew Haley  <aph@redhat.com>
2620
2621         PR java/25366
2622         PR java/25368
2623         * class.c (maybe_layout_super_class): Update current_class before
2624         calling do_resolve_class.
2625
2626 2005-12-12  H.J. Lu  <hongjiu.lu@intel.com>
2627
2628         PR java/25330
2629         * jcf-write.c (write_classfile): Use PID in temporary class
2630         file. Save/restore errno when reporting error.
2631
2632 2005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>
2633
2634         PR java/9861
2635         * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J'
2636         to bare_function_type and including the return type
2637         * builtins.c (initialize_builtins) : Change builtin mangled name
2638         constants to conform to new mangling scheme
2639
2640 2005-12-08  Andrew Haley  <aph@redhat.com>
2641
2642         PR libgcj/25265
2643         * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
2644         (soft_abstractmethod_node): New.
2645         * expr.c (build_field_ref): Add in-line check for missing field.
2646         * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
2647
2648 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2649
2650         * Make-lang.in (java.all.build, java.install-normal): Remove.
2651
2652 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2653
2654         * Make-lang.in: Remove all dependencies on s-gtype, except for
2655         gt-java-parse.h.
2656
2657 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
2658
2659         * class.c (build_utf8_ref, emit_register_classes): Use
2660         switch_to_section and get_section.
2661
2662 2005-12-06  Tom Tromey  <tromey@redhat.com>
2663
2664         PR java/25283:
2665         * parse.y (patch_new_array_init): Revert previous patch.
2666         (lookup_method_invoke): Use size-less array type when creating an
2667         anonymous constructor.
2668
2669 2005-12-05  Tom Tromey  <tromey@redhat.com>
2670
2671         * parse.y (patch_new_array_init): Don't set length on array.
2672
2673 2005-12-02  Richard Guenther  <rguenther@suse.de>
2674
2675         * java-gimplify.c (java_gimplify_labeled_block_expr): Use
2676         buildN instead of build.
2677         * class.c (finish_class): Likewise.
2678         * expr.c (java_create_object): Likewise.
2679
2680 2005-11-28  Tom Tromey  <tromey@redhat.com>
2681
2682         PR java/18278:
2683         * expr.c (build_jni_stub): Unwrap the return value.
2684         * java-tree.h (soft_unwrapjni_node): New define.
2685         (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
2686         * decl.c (java_init_decl_processing): Initialize
2687         soft_unwrapjni_node.
2688
2689 2005-11-24  Bryce McKinlay  <mckinlay@redhat.com>
2690
2691         * gcj.texi (gij options): Add -Xss documentation.
2692
2693 2005-11-08  Wil Mahan  <wmahan@gmail.com>
2694
2695         PR java/23617
2696         * zextract.c (read_zip_archive): Fix out of memory error when
2697         reading jar files with zip-style comments.
2698
2699 2005-11-07   Terry Laurenzo   <tlaurenzo@gmail.com>
2700
2701         * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
2702         formats.
2703         * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
2704
2705 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
2706             Wil Mahan <wmahan@gmail.com>
2707
2708         PR java/23620
2709         * class.c (make_class): Create empty binfo here.
2710         (set_super_info): Only create binfo if we have superclasses.
2711
2712 2005-10-03  Ranjit Mathew  <rmathew@gcc.gnu.org>
2713
2714         PR java/24127
2715         * parse.y (method_header): Make the result of the rule a NULL_TREE
2716         when a parsing error occurs.
2717
2718 2005-09-29  Tom Tromey  <tromey@redhat.com>
2719
2720         PR java/24120:
2721         * jcf-io.c (memoized_dirlist_hash): New function.
2722         (caching_stat): Use it.
2723
2724 2005-09-21  Ranjit Mathew  <rmathew@gcc.gnu.org>
2725
2726         PR java/21418
2727         * class.c (inherits_from_p): Try to lay out super class
2728         if it is not already laid out.
2729         (maybe_layout_super_class): Handle the case where SUPER_CLASS
2730         is a NULL_TREE.
2731
2732 2005-09-18  James A. Morrison  <phython@gcc.gnu.org>
2733
2734         * builtins.c (max_builtin, min_builtin, abs_builtin,
2735         java_build_function_call_expr): Use fold_buildN.
2736         * class.c (layout_class_method): Likewise.
2737         * expr.c (java_truthvalue_conversion, build_java_jsr,
2738         build_java_arrayaccess, expand_java_arrayload, expand_iinc,
2739         build_java_binop, build_field_ref, expand_compare,
2740         build_known_method_ref, build_invokevirtual,
2741         process_jvm_instruction): Likewise.
2742         * parse.y (patch_binop, patch_exit_expr): Likewise.
2743         * typeck.c (convert_ieee_real_to_integer): Likewise.
2744         (convert): Don't call fold after convert_ieee_real_to_integer.
2745
2746 2005-09-14  Bryce McKinlay  <mckinlay@redhat.com>
2747
2748         PR java/23891
2749         * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
2750         the newly created type. Set import lists here, not in create_class.
2751         (jdep_resolve_class): Set current_class.
2752         (do_resolve_class): Use current_class's TYPE_PACKAGE to determine 
2753         the current package context, not ctxp->package.
2754         (cicp_cache): Removed.
2755         (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
2756         * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
2757         * java-tree.h (TYPE_PACKAGE): New macro.
2758         (struct lang_type): New member 'package'.
2759
2760 2005-09-09  Andrew Haley  <aph@redhat.com>
2761
2762         PR libgcj/23182 
2763         * expr.c (pop_type_0): If the expected type is object or ptr
2764         (i.e. void*), return the type of the object we just popped from
2765         the stack.
2766
2767 2005-09-06  Andrew Pinski  <pinskia@physics.uc.edu>
2768
2769         * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
2770         BLOCK_EXPR_BODY before returning the new BIND_EXPR.
2771
2772 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
2773
2774         * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
2775         jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
2776         typos.  Follow spelling conventions.
2777
2778 2005-09-05  Ranjit Mathew  <rmathew@hotmail.com>
2779
2780         PR java/23431
2781         * typeck.c (lookup_do): Look up interfaces for the original class,
2782         not the base class.
2783         * parse.y (java_check_regular_methods): Fix diagnostic message for
2784         more restrictive overriding of a method from an interface.
2785
2786 2005-08-16  Tom Tromey  <tromey@redhat.com>
2787
2788         * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
2789         class' initial state.
2790
2791 2005-08-16  Ranjit Mathew  <rmathew@hotmail.com>
2792
2793         PR java/22113
2794         * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
2795         `literal_token' for large numeric input tokens.
2796
2797 2005-08-16  Ranjit Mathew  <rmathew@hotmail.com>
2798
2799         PR java/19870
2800         * parse.y (nested_field_access_p): Rename to nested_member_access_p
2801         and expand to handle method accesses across nested classes.
2802         (build_outer_method_access_method): Rename to
2803         build_nested_method_access_method.  Minor adjustments to comments.
2804         (resolve_expression_name): Use the newly-renamed
2805         nested_member_access_p method.
2806         (resolve_qualified_expression_name): Likewise.
2807         (patch_method_invocation): Also consider static methods for access
2808         method generation.  Minor adjustments to comments.
2809         (maybe_use_access_method): Use the more general
2810         nested_memeber_access_p to determine access across nested class
2811         boundaries.  Allow THIS_ARG to be NULL (for static methods).
2812
2813 2005-08-15  Tom Tromey  <tromey@redhat.com>
2814
2815         PR java/23300.
2816         * expr.c (build_field_ref): Don't generate otable reference when
2817         DECL_FIELD_OFFSET is 0.
2818         * class.c (maybe_layout_super_class): Pass outer class to
2819         do_resolve_class.
2820
2821 2005-08-15  Tom Tromey  <tromey@redhat.com>
2822
2823         * java-tree.h (LABEL_IN_SUBR): Removed.
2824         (LABEL_IN_SUBR): Likewise.
2825         (LABEL_IS_SUBR_START): Likewise.
2826         (LABEL_SUBR_START): Likewise.
2827         (LABEL_SUBR_CONTEXT): Likewise.
2828         (LABEL_CHANGED): Likewise.
2829         (LABEL_RETURN_LABEL): Likewise.
2830         (LABEL_RETURN_TYPE_STATE): Likewise.
2831         (LABEL_RETURN_LABELS): Likewise.
2832         (RETURN_MAP_ADJUSTED): Likewise.
2833         (LABEL_PENDING_CHAIN): Likewise.
2834
2835 2005-08-15  Tom Tromey  <tromey@redhat.com>
2836
2837         * Make-lang.in (JAVA_OBJS): Removed verify.o
2838         (java/verify.o): Removed.
2839         * verify.c: Removed.
2840         * lang.c (flag_new_verifier): Removed.
2841         (java_post_options): Updated.
2842         * java-tree.h (flag_new_verifier): Removed.
2843         (verify_jvm_instructions): Removed.
2844         * expr.c (pop_type_0): Assume flag_new_verifier is true.
2845         (build_java_check_indexed_type): Likewise.
2846         (expand_java_arraystore): Likewise.
2847         (expand_java_arrayload): Likewise.
2848         (pop_arguments): Likewise.
2849         (expand_byte_code): Likewise.
2850         (process_jvm_instruction): Likewise.
2851
2852 2005-08-10  Andrew Haley  <aph@redhat.com>
2853
2854         * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
2855         type mismatches to make legal GIMPLE.
2856
2857 2005-08-10  Robin Green <greenrd@greenrd.org>
2858
2859         PR java/23230:
2860         * parse.y (maybe_use_access_method): Generalize check from
2861         java.lang.Object to any superclass of current_class
2862
2863 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
2864
2865         * class.c (build_class_ref): Wrap the primary class type in a
2866         NOP_EXPR.
2867         * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
2868         primary class type from the NOP_EXPR in which it was placed.
2869
2870 2005-07-28  Diego Novillo  <dnovillo@redhat.com>
2871
2872         * expr.c (expand_load_internal): Fix missing parens in
2873         predicate.
2874
2875 2005-07-28  Andrew Haley  <aph@redhat.com>
2876
2877         * expr.c (expand_load_internal): Convert to destination type.
2878
2879 2005-07-22  Manfred Hollstein  <mh@suse.com>
2880
2881         * verify-impl.c (check_class_constant): Fix uninitialised warnings.
2882         (check_constant): Likewise.
2883         (check_wide_constant): Likewise.
2884
2885 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
2886
2887         Make CONSTRUCTOR use VEC to store initializers.
2888         * check-init.c (check_init): Update to cope with VEC in
2889         CONSTRUCTOR_ELTS.
2890         * class.c (make_field_value, make_method_value, get_dispatch_table,
2891         make_class_data, emit_symbol_table, emit_catch_table,
2892         emit_assertion_table): Use build_constructor_from_list instead of
2893         build_constructor.
2894         * constants.c (build_constants_constructor): Likewise.
2895         * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
2896         VEC in CONSTRUCTOR_ELTS.
2897         * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
2898         PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
2899         of a TREE_LIST.
2900         * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
2901         CONSTRUCTOR_ELTS.
2902         * parse.y (build_new_array_init): Use build_constructor_from_list
2903         instead of build_constructor.
2904         (patch_new_array_init): Update to cope with VEC in
2905         CONSTRUCTOR_ELTS.
2906         (array_constructor_check_entry): Likewise.
2907
2908 2005-07-12  Tom Tromey  <tromey@redhat.com>
2909
2910         * jvspec.c (lang_specific_driver): Put filelist_filename first on
2911         command line.
2912
2913 2005-07-12  Tom Tromey  <tromey@redhat.com>
2914
2915         PR java/19674:
2916         * parse-scan.y (interface_member_declaration): Added
2917         empty_statement.
2918
2919 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
2920         
2921         * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
2922         (LABEL_PENDING_CHAIN): Ditto.
2923         (LABEL_PC): Ditto.
2924         (DECL_BIT_INDEX): Ditto.        
2925
2926 2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>
2927
2928         PR java/18119
2929         * parse.y (inner_class_accessible): New function. Logic moved from
2930         check_inner_class_access.
2931         (check_inner_class_access): Use inner_class_accessible.
2932         (resolve_inner_class): Simplify arguments. Create circularity hash
2933         here. Keep looking for classes if we found one that was inaccessible. 
2934         Return the inaccessible class only if there is no other match.
2935         (do_resolve_class): Update for new resolve_inner_class arguments.
2936         Don't create circularity_hash here.
2937
2938 2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>
2939
2940         PR java/21045
2941         * parse.y (add_exception_to_throws): New function.
2942         (purge_unchecked_exceptions): Removed.
2943         (get_constructor_super): Renamed from verify_constructor_super. Now
2944         returns the super constructor after verification.
2945         (java_complete_expand_method): Don't use purge_unchecked_exceptions
2946         or save/restore the exception list.
2947         (check_thrown_exceptions): Add uncaught exceptions in anonymous
2948         class initializers and constructors to the throws clause of the method. 
2949
2950 2005-07-05  Bryce McKinlay  <mckinlay@redhat.com>
2951
2952         PR java/19674
2953         * parse.y (interface_member_declaration): Allow empty statements in
2954         interface declarations.
2955
2956 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
2957
2958         * Makefile.in (parse.o): Adjust dependencies.
2959         * parse.y: Include tree-dump.h.
2960
2961 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
2962
2963         * class.c, decl.c, expr.c: Use '+' flag instead of %J.  Use 'q'
2964         flag for quoting.
2965
2966 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
2967
2968         * parse.y (issue_warning_error_from_context): Call
2969         pp_output_formatted_text to be able to get the buffer.
2970
2971 2005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>
2972
2973         * parse.y (issue_warning_error_from_context): Update for the
2974         renaming of pp_format_text to pp_format.
2975
2976 2005-06-28  Paul Brook  <paul@codesourcery.com>
2977
2978         * decl.c (java_init_decl_processing): Call
2979         default_init_unwind_resume_libfunc.
2980
2981 2005-06-27  Tom Tromey  <tromey@redhat.com>
2982
2983         PR java/21540, PR java/13788:
2984         * parse.y (java_complete_lhs) <CASE_EXPR>: Use
2985         fold_constant_for_init.
2986         (patch_binop): Added 'folding' argument.  Updated all callers.
2987         (patch_unaryop) <NOP_EXPR>: New case.
2988         (fold_constant_for_init) <NOP_EXPR>: Likewise.
2989         (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
2990
2991 2005-06-25  Jan Hubicka  <jh@suse.cz>
2992
2993         * builtins.c (define_builtin): Accept new flags parameter.
2994         (initialize_builtins): Mark the builtins const and nothrow accordingly.
2995
2996 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
2997
2998         * all files: Update FSF address in copyright headers.
2999
3000 2005-06-24  Tom Tromey  <tromey@redhat.com>
3001
3002         * verify-impl.c (verify_instructions_0): Correctly handle
3003         situation where PC falls off end.
3004
3005 2005-06-23  Bryce McKinlay  <mckinlay@redhat.com>
3006
3007         PR java/20697
3008         * parse.y (find_most_specific_methods_list): Remove special case for
3009         inner classes.
3010
3011 2005-06-15  Tom Tromey  <tromey@redhat.com>
3012
3013         PR libgcj/21906:
3014         * class.c (make_method_value): Use soft_abstractmethod_node for
3015         abstract method.
3016         * java-tree.h (soft_abstractmethod_node): New define.
3017         (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
3018         * decl.c (java_init_decl_processing): Initialize
3019         soft_abstractmethod_node.
3020
3021 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
3022
3023         * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
3024
3025 2005-06-13  Per Bothner  <per@bothner.com>
3026
3027         * expr.c (int highest_label_pc_this_method,
3028         start_label_pc_this_method): New globals.
3029         (lookup_label): Add start_label_pc_this_method to pc for label, and
3030         update highest_label_pc_this_method.  This prevents conflicts between
3031         labels from different methods.
3032         * java-tree.h: Declare new globals.
3033         * jcf-parse.c (parse_class_file): If needed bump
3034         start_label_pc_this_method and reset highest_label_pc_this_method.
3035
3036 2005-06-13  Tom Tromey  <tromey@redhat.com>
3037
3038         PR java/21844:
3039         * parse.y (nested_field_access_p): Handle case where outer field
3040         is inherited by enclosing class.
3041
3042 2005-06-12  Per Bothner  <per@bothner.com>
3043
3044         * class.c (inherits_from_p): Do load_class if needed.
3045
3046 2005-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3047
3048         * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
3049         * java-tree.h (parse_error_context): Move...
3050         * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
3051         * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
3052         * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
3053
3054 2005-06-08  Roger Sayle  <roger@eyesopen.com>
3055
3056         * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
3057
3058 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
3059
3060         * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
3061         msgid for argument name.
3062         * gjavah.c (error): Likewise.
3063         * java-tree.h (parse_error_context): Likewise.
3064         * parse.y (parse_error_context, parse_warning_context,
3065         issue_warning_error_from_context): Likewise.
3066
3067 2005-06-01  Tom Tromey  <tromey@redhat.com>
3068
3069         PR java/21722:
3070         * class.c (build_static_field_ref): Don't fold constant fields if
3071         current class is from a .class file and we're using indirect
3072         dispatch.
3073
3074 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3075
3076         * java/verify-glue.c: Don't include errors.h and include toplev.h.
3077         * java/Make-lang.in: Updates dependencies.
3078
3079 2005-05-26  Ranjit Mathew  <rmathew@hotmail.com>
3080
3081         PR java/19870.
3082         * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
3083         NESTED_FIELD_ACCESS_IDENTIFIER_P.
3084         (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
3085         (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
3086         * jcf-write.c (generate_classfile): Use
3087         NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3088         OUTER_FIELD_ACCESS_IDENTIFIER_P.
3089         * parse.y (build_outer_field_access): Rename to
3090         build_nested_field_access. Support static fields and outer-to-inner
3091         class accesses.
3092         (outer_field_access_p): Rename to nested_field_access_p. Support
3093         static fields and generalise to outer-to-inner class and sibling
3094         inner class accesses.
3095         (outer_field_expanded_access_p): Rename to
3096         nested_field_expanded_access_p and support static fields.
3097         (outer_field_access_fix): Rename to nested_field_access_fix and
3098         support static fields.
3099         (build_outer_field_access_expr): Rename to
3100         build_nested_field_access_expr and support static fields.
3101         (build_outer_field_access_methods): Rename to
3102         build_nested_field_access_methods and support static fields. For
3103         static fields, generate accessors without class instance parameters.
3104         (build_outer_field_access_method): Rename to
3105         build_nested_field_access_method and support static fields.
3106         (build_outer_method_access_method): Use
3107         NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3108         OUTER_FIELD_ACCESS_IDENTIFIER_P.
3109         (resolve_expression_name): Consider static field accesses across
3110         nested classes.
3111         (resolve_qualified_expression_name): Likewise.
3112         (java_complete_lhs): Use nested_field_access_fix instead of
3113         outer_field_access_fix.
3114         (patch_unary_op): Rename outer_field_flag to nested_field_flag.
3115         Use nested_field_expanded_access_p instead of
3116         outer_field_expanded_access_p. Use nested_field_access_fix instead
3117         of outer_field_access_fix.
3118         (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
3119         instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
3120
3121 2005-05-26  Bryce McKinlay  <mckinlay@redhat.com>
3122
3123         * decl.c (GCJ_BINARYCOMPAT_ADDITION, 
3124         GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
3125         (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
3126         MINOR_BINARYCOMPAT_ABI_VERSION): New.
3127         (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
3128         (parse_version): Calculate version ID using new method. Use bit-flags
3129         for flag_indirect_dispatch and flag_bootstrap_classes.
3130
3131 2005-05-25  Richard Henderson  <rth@redhat.com>
3132
3133         PR libgcj/21692
3134         * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
3135         * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
3136         DECL_CONTEXT; avoid pushdecl_top_level.
3137         (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
3138         (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
3139         (layout_class_method): Likewise.
3140         * decl.c (java_mark_cni_decl_local): New.
3141         (java_mark_class_local): Use it.
3142         * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
3143         (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
3144         (struct lang_decl_func): Add local_cni;
3145         (struct lang_decl_var): Add class_field, vtable.
3146         (java_mangle_decl): Declare.
3147         * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
3148         * mangle.c: Remove dup obstack.h; include langhooks-def.h.
3149         (mangle_obstack_1): New.
3150         (java_mangle_decl): Remove obstack argument.  Call mangle_class_field,
3151         mangle_vtable, and mangle_local_cni_method_decl.  Fall back to
3152         lhd_set_decl_assembler_name for things that don't need mangling.
3153         (mangle_class_field): Rename from java_mangle_class_field, make
3154         static, don't call init_mangling or finish_mangling.
3155         (mangle_vtable): Similarly.
3156         (mangle_local_cni_method_decl): New.
3157         (init_mangling): Remove obstack argument.  Use &mangle_obstack_1,
3158         gcc_assert, and MANGLE_RAW_STRING.
3159         (finish_mangling): Use gcc_assert, remove if 0 debugging code.
3160
3161 2005-05-25  DJ Delorie  <dj@redhat.com>
3162
3163         * class.c (set_constant_value): Move warning control from if() to
3164         warning(OPT_*).
3165
3166 2005-05-24  Richard Henderson  <rth@redhat.com>
3167
3168         * builtins.c (define_builtin): Don't call make_decl_rtl.
3169         * constants.c (build_constant_data_ref): Likewise.
3170         * class.c (build_utf8_ref): Likewise.
3171         (build_fieldref_cache_entry, build_static_field_ref): Likewise.
3172         (get_dispatch_table, layout_class_method): Likewise.
3173         (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
3174         by hand.
3175         (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
3176         (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
3177         to determine if we need a non-zero address.
3178         * decl.c (builtin_function): Don't call make_decl_rtl.
3179         (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
3180         * expr.c (build_known_method_ref): Don't call make_decl_rtl.
3181         * resource.c (compile_resource_data): Likewise.
3182         * parse.y (resolve_field_access): Re-word comment to avoid
3183         building DECL_RTL.
3184
3185 2005-05-24  Richard Henderson  <rth@redhat.com>
3186
3187         * class.c (registered_class): Take it out of class_roots; turn into
3188         a vec of trees.
3189         (register_class): Make static.  Don't duplicate decl node.  Use
3190         VEC_safe_push.
3191         (emit_register_classes): Use VEC_iterate.  Use output_constant
3192         instead of assemble_integer.  Don't call mark_decl_referenced
3193         directly.
3194         * java-tree.h (register_class): Remove decl.
3195
3196 2005-05-19  Paolo Bonzini  <bonzini@gnu.org>
3197
3198         PR java/17845
3199
3200         * parse.y (register_package, package_list): Remove.
3201         (package_declaration): Do not call register_package.
3202         (do_resolve_class): Do not use package_list.
3203
3204 2005-05-15  Gerald Pfeifer  <gerald@pfeifer.com>
3205
3206         * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
3207         unused variable.
3208
3209 2005-05-15  Tom Tromey  <tromey@redhat.com>
3210
3211         PR java/21519:
3212         * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
3213         NOTE_PUSH.
3214
3215 2005-05-12  Aaron Luchko <aluchko@redhat.com>
3216
3217         * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
3218
3219 2005-05-11  Tom Tromey  <tromey@redhat.com>
3220
3221         * gcj.texi (Code Generation): Document -fbootstrap-classes.
3222         * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
3223         (parse_version): Use it.
3224         * lang.opt (-fbootstrap-classes): New option.
3225
3226 2005-05-10  Paolo Bonzini  <bonzini@gnu.org>
3227
3228         PR java/21436
3229         * class.c (maybe_layout_super_class): Look for imports in this_class.
3230         * parse.h (ctxp_for_generation_last): New.
3231         (do_resolve_class): Add a parameter.
3232         * parse.y (ctxp_for_generation_last): New.
3233         (java_pop_parser_context): Add at end of list.
3234         (find_in_imports, find_in_imports_on_demand): Look in ctxp
3235         if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
3236         the given type are NULL.
3237         (do_resolve_class): Look into the imports of the new second parameter.
3238         Adjust recursive calls.
3239         (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
3240         calls to do_resolve_class.
3241         (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
3242         (java_complete_class): Do not do that here.
3243
3244 2005-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
3245
3246         PR java/20309
3247         * Make-lang.in (java): Add gjnih.
3248         (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
3249         (GJNIH_OBJS): New variable.
3250         (gjnih$(exeext)): New target.
3251         (JAVA_MANFILES): Add gjnih.1.
3252         (java.uninstall): Add gjnih.1.
3253         (java.mostlyclean): Add gjnih.
3254         (java.maintainer-clean): Add gjnih.1.
3255         (java/gjavah-jni.o): New target.
3256         (.INTERMEDIATE): Add gjnih.pod.
3257         (gjnih.pod): New target.
3258         * config-lang.in (stagestuff): Add gjnih.
3259         * gcj.texi (Top): Add gjnih node.
3260         (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
3261         -bootclasspath options.
3262         (Invoking gjnih): New node.
3263         * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
3264         (TOOLNAME): New macro.
3265         (error): Replace hard-coded gcjh with TOOLNAME.
3266         (process_file): Likewise.
3267         (usage): Likewise.
3268         (version): Likewise.
3269         (help): Likewise.  Add help output for -force, -old, -trace and -J
3270         options.
3271         (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
3272         (options): Add force, old, trace and J fields.
3273         (main): Handle -force, -old, -trace and -J options.
3274
3275 2005-05-03  Tom Tromey  <tromey@redhat.com>
3276
3277         PR java/21245:
3278         * gjavah.c (main): Unlink output file on error.
3279
3280 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3281
3282         * constants.c, jvgenmain.c, lang.opt, resource.c: Update
3283         copyright.
3284
3285 2005-04-29  Tom Tromey  <tromey@redhat.com>
3286
3287         * expr.c (build_jni_stub): Updated for change to build_block.
3288
3289 2005-04-29  Andrew Pinski  <pinskia@gcc.gnu.org>
3290
3291         * expr.c (force_evaluation_order): Declare 'saved' earlier.
3292
3293 2005-04-28  Andrew Haley  <aph@redhat.com>
3294
3295         PR java/19285
3296         * java-tree.h (soft_resolvepoolentry_node): New.
3297         (alloc_constant_fieldref): Declare.
3298         * expr.c (expand_java_field_op): Don't call class_init for
3299         accesses to static fields with indirect dispatch.
3300         * builtins.c (initialize_builtins): Add "__builtin_expect".
3301         * decl.c (soft_resolvepoolentry_node): New variable.
3302         (java_init_decl_processing): Create a decl for
3303         "_Jv_ResolvePoolEntry".
3304         * class.c (build_fieldref_cache_entry): New function.
3305         (build_static_field_ref): Rewrite for indirect dispatch.
3306         * constants.c (find_name_and_type_constant_tree): New function.
3307         (alloc_constant_fieldref): Likewise.
3308         (build_constants_constructor): Handle CONSTANT_Fieldref and
3309         CONSTANT_NameAndType.
3310
3311         PR java/21115
3312         * expr.c (force_evaluation_order): Convert outgoing args smaller
3313         than integer.
3314
3315 2005-04-27  Bryce McKinlay  <mckinlay@redhat.com>
3316
3317         * gcj.texi (libgcj Runtime Properties): Remove obsolete
3318         gnu.gcj.runtime.NameFinder.* system properties. Update documentation 
3319         for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
3320
3321 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3322
3323         * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
3324         to `unlock_stream' with `unlock_std_streams'.
3325
3326 2005-04-25  Jakub Jelinek  <jakub@redhat.com>
3327
3328         * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
3329         instead of just expr.h.
3330
3331 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3332
3333         * gjavah.c (main): Unlock the stdio streams.
3334         * jcf-dump.c (main): Likewise.
3335         * jv-scan.c (main): Likewise.
3336         * jvgenmain.c (main): Likewise.
3337
3338 2005-04-23  DJ Delorie  <dj@redhat.com>
3339
3340         * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
3341         parse.y: Adjust warning() callers.
3342
3343 2005-04-21  Bryce McKinlay  <mckinlay@redhat.com>
3344
3345         * gcj.texi (Object fields): Change "Integer" to "Int" in example
3346         contructor.
3347
3348 2005-04-20  Bryce McKinlay  <mckinlay@redhat.com>
3349
3350         * gcj.texi: Fix typos and bogus example.
3351
3352 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
3353
3354         * except.c: Fix a comment typo.
3355
3356 2005-04-19  Julian Brown  <julian@codesourcery.com>
3357
3358         * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
3359         indirect dispatch with PIC.
3360
3361 2005-04-18  Andrew Haley  <aph@redhat.com>
3362
3363         * java-except.h (struct eh_range.handler): Remove unused field.
3364         (handle_nested_ranges): Remove function declaration.
3365         (sanity_check_exception_range): Add function declaration.       
3366         * verify.c (verify_jvm_instructions): Remove call to
3367         handle_nested_ranges.
3368         * verify-glue.c (verify_jvm_instructions_new): Call
3369         sanity_check_exception_range.
3370         * except.c (link_handler, eh_range_freelist, link_handler,
3371         handle_nested_ranges): Remove.
3372         (add_handler): Rewrite.
3373         (sanity_check_exception_range): New function.
3374         (print_ranges): New function.
3375
3376 2005-04-13  Julian Brown  <julian@codesourcery.com>
3377
3378         * decl.c (finish_method): Give methods once-only linkage.
3379
3380 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
3381
3382         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
3383
3384 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3385
3386         * java-tree.h: Don't use PARAMS().
3387
3388 2005-04-07  Per Bothner  <per@bothner.com>
3389
3390         * class.c (push_class): By default, suppress debug output.
3391         (finish_class): Enable debug output for classes we're emitting.
3392
3393 2005-04-07  Andrew Haley  <aph@redhat.com>
3394
3395         * gcj.texi: Correct gcj-dbtool instructions.
3396
3397 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
3398
3399         * gcj.texi: Fix a typo.
3400         * lang.c: Fix a comment typo.
3401
3402 2005-04-01  Thomas Fitzsimmons  <fitzsim@redhat.com>
3403
3404         * gcj.texi (Invoking gij): Add descriptions of new -X options.
3405         Mention recognized-and-ignored compatibility options.
3406         (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
3407         JvFree.
3408         (About CNI): Add Memory allocation section.
3409
3410 2005-04-01  Tom Tromey  <tromey@redhat.com>
3411
3412         * decl.c (java_init_decl_processing): Fix types of
3413         _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
3414         _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
3415         _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
3416
3417 2005-03-31  Jan Hubicka  <jh@suse.cz>
3418
3419         * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
3420         * class.c: Include cgraph.h
3421         (make_local_functoin_alias): Mark aslias as needed.
3422         * resource.c: Include cgraph.h
3423         (compile_resource_data): Go via cgraph interface.
3424
3425 2005-03-30  Ian Lance Taylor  <ian@airs.com>
3426
3427         * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
3428
3429 2005-03-30  Tom Tromey  <tromey@redhat.com>
3430
3431         * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
3432         inner_class_info_index==0 or outer_class_info_index==0.
3433
3434 2005-03-29  Tom Tromey  <tromey@redhat.com>
3435
3436         * gcj.texi (libgcj Runtime Properties): Document
3437         gnu.gcj.runtime.endorsed.dirs.
3438
3439 2005-03-24  Anthony Green  <green@redhat.com>
3440
3441         * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
3442         'gcj-dbtool -p'.
3443
3444 2005-03-23  Tom Tromey  <tromey@redhat.com>
3445
3446         * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
3447         (parse_version): Use it.
3448
3449 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
3450
3451         * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
3452
3453 2005-03-18  Andrew Haley  <aph@redhat.com>
3454
3455         PR java/20522
3456         * decl.c (update_aliases): Don't update variables that are about
3457         to die.
3458         (maybe_poplevels): Add comment.
3459
3460 2005-03-17  Bryce McKinlay  <mckinlay@redhat.com>
3461
3462         PR java/20502
3463         * jcf-parse.c (duplicate_class_warning): New function.
3464         (java_parse_file): Call duplicate_class_warning if 
3465         CLASS_FROM_CURRENTLY_COMPILED_P is already set.
3466         (parse_zip_file_entries): Likewise. Also set
3467         CLASS_FROM_CURRENTLY_COMPILED_P.
3468
3469 2005-03-16  Andrew Haley  <aph@redhat.com>
3470
3471         * expr.c (expand_java_arrayload): Don't generate a
3472         NullPointerException based on the type of the node.
3473         (build_java_array_length_access): Likewise.
3474
3475 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
3476
3477         * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
3478
3479 2005-03-11  Tom Tromey  <tromey@redhat.com>
3480
3481         * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
3482         (libgcj Runtime Properties): Document the default .db.
3483
3484 2005-03-10  Ranjit Mathew  <rmathew@hotmail.com>
3485
3486         PR java/20312
3487         * parse.y (checks_throws_clauses): Check exceptions list even when
3488         the base class does not come from a source file being compiled.
3489         (java_complete_lhs): Remove unused variable 'wfl'.
3490
3491 2005-03-09  Ranjit Mathew  <rmathew@hotmail.com>
3492
3493         PR java/20338
3494         * decl.c (finish_method): Emit _Jv_InitClass for private static
3495         methods inside inner classes as well.
3496
3497 2005-03-08  Julian Brown  <julian@codesourcery.com>
3498         * Revert patch from 2005-03-08 for causing bootstrap failure on
3499         ppc-darwin.
3500
3501 2005-03-08  Julian Brown  <julian@codesourcery.com>
3502
3503         * decl.c (finish_method): Give methods once-only linkage.
3504
3505 2005-03-07  Ranjit Mathew  <rmathew@hotmail.com>
3506
3507         * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
3508
3509 2005-03-07  Bryce McKinlay  <mckinlay@redhat.com>
3510
3511         * verify-glue.c (vfy_is_assignable_from): Perform static check using
3512         can_widen_reference_to if the C++ ABI is in use.
3513         (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
3514         * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
3515         type_isresolved, init_state, set_pc, state_get_pc,
3516         _Jv_BytecodeVerifier): Clean up unused and disabled functions.
3517         (verify_fail): Report the current PC from the verifier context.
3518         (free_state): Remove #if 0 block to enable this function.
3519         (free_verifier_context): Call free_state on state_list iterator
3520         values before freeing them.
3521         * expr.c (pop_type_0): Pop correct type for error message when stack
3522         contains a multi-word type.
3523
3524 2005-03-07  Ranjit Mathew  <rmathew@hotmail.com>
3525
3526         * expr.c (build_java_array_length_access): Remove !flag_new_verifier
3527         for known NULL array length access.
3528
3529 2005-03-07  Tom Tromey  <tromey@redhat.com>
3530
3531         * gcj.texi (Invoking gcj-dbtool): Document '-f'.
3532
3533 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3534
3535         * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
3536         typeck.c: Update copyright.
3537
3538 2005-03-06  Ranjit Mathew  <rmathew@hotmail.com>
3539
3540         Remove xref code.
3541         * xref.c, xref.h: Remove file.
3542         * Make-lang.in (java/xref.o): Remove.
3543         * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
3544         * lang.c (flag_emit_xref): Remove definition.
3545         * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
3546         * typeck.c (convert): Remove use of do_not_fold.
3547         * parse.y (do_not_fold): Remove definition.
3548         (parser grammar): Remove xref code.
3549         (maybe_create_class_interface_decl, create_class): Likewise.
3550         (register_fields, method_header, finish_method_declaration): Likewise.
3551         (declare_local_variables, source_end_java_method): Likewise.
3552         (java_complete_expand_classes): Do not set do_not_fold.
3553         (java_complete_expand_method): Remove xref code.
3554         (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
3555         (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
3556         (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
3557         (patch_synchronized_statement, patch_throw_statement): Likewise.
3558         (maybe_build_class_init_for_field): Likewise.
3559
3560 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3561
3562         * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
3563         instead of IS_NON_TYPE_CODE_CLASS.
3564
3565 2005-03-04  Andrew Haley  <aph@redhat.com>
3566
3567         PR java/18362
3568         * class.c (set_method_index): Don't set method_index if it is
3569         NULL_TREE.
3570         (layout_class_method): Don't complain about "non-static method foo
3571         overrides static method" in the case of indirect dispatch.
3572
3573 2005-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3574
3575         * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
3576         warning.
3577         * Make-lang.in: Don't elide warnings in jcf-io.c.
3578
3579 2005-03-01  Per Bothner  <per@bothner.com>
3580
3581         PR java/8608
3582         * check-init.c (wfl): Remove static.
3583         (final_assign_error, check_init): Replace calls to parse_error_context
3584         by plain error.
3585         (check_init): Save, set, and restore input_location for each exp.
3586
3587 2005-03-01  Per Bothner  <per@bothner.com>
3588
3589         * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
3590         if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
3591         * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
3592
3593 2005-03-01  Per Bothner  <per@bothner.com>
3594
3595         * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
3596
3597 2005-02-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
3598
3599         PR libgcj/16923
3600         * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
3601         JvVMOption.
3602
3603 2005-02-22  Tom Tromey  <tromey@redhat.com>
3604
3605         PR java/20056:
3606         * verify-impl.c (EITHER): New define.
3607         (types_compatible): Handle it.
3608         (check_field_constant): Use it.
3609
3610 2005-02-18  Tom Tromey  <tromey@redhat.com>
3611
3612         PR java/20056:
3613         * verify-impl.c (types_equal): Fixed test.
3614
3615         PR java/20056:
3616         * verify-glue.c (vfy_class_has_field): New function.
3617         * verify.h (vfy_class_has_field): Declare.
3618         * verify-impl.c (check_field_constant): Added 'putfield'
3619         argument.
3620         (verify_instructions_0): Updated.
3621         (types_equal): New function.
3622
3623 2005-02-14  Tom Tromey  <tromey@redhat.com>
3624
3625         PR java/19921:
3626         * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
3627         stack effect of multianewarray.
3628
3629 2005-02-14  Andrew Haley  <aph@redhat.com>
3630
3631         PR java/19907
3632         * expr.c (expand_byte_code): Call promote_arguments().
3633         (promote_arguments): New function.
3634         * decl.c (check_local_unnamed_variable): Remove special case for
3635         new verifier.
3636         (find_local_variable): Promote all boolean types to int
3637         when searching for local variable decls.
3638
3639 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
3640
3641         * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
3642         parse-scan.y: Update copyright.
3643
3644 2005-02-11  Per Bothner  <per@bothner.com>
3645
3646         PR java/15543
3647         * parse-scan.y (input_location): Remove variable.
3648         (main_input_filename): New - replaces input_filename, which isn't
3649         settable if USE_MAPPED_LOCATION.
3650         * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
3651         so we don't reference input_location or wfl_operator in that case.
3652         * jv-scan.c (expand_location): Remove - no longer used.
3653         (main): Set main_input_filename rather than input_filename.
3654
3655 2005-02-09  Richard Henderson  <rth@redhat.com>
3656
3657         * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
3658         * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
3659
3660 2005-02-08  Marcin Dalecki  <martin@dalecki.de>
3661
3662         * expr.c (add_type_assertion): Use the proper enumeration type,
3663         since this is what htab_find_slot() is expecting.
3664
3665 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
3666
3667         * gcj.texi: Update copyright dates.
3668
3669 2005-02-02  Tom Tromey  <tromey@redhat.com>
3670
3671         * gcj.texi (libgcj Runtime Properties): Default library_control
3672         to 'cache'.
3673
3674 2005-02-02  Ranjit Mathew  <rmathew@hotmail.com>
3675
3676         PR java/15543
3677         * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
3678         (modifiers) when square brackets are present in a declaration for
3679         a final paramter.
3680         * jv-scan.c (main): Set input_filename and input_line.
3681
3682 2005-02-01  Tom Tromey  <tromey@redhat.com>
3683
3684         PR java/19742:
3685         * gjavah.c (get_field_name): Don't override name for JNI header.
3686
3687 2005-02-01  Roger Sayle  <roger@eyesopen.com>
3688
3689         * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
3690         of unsigned types using iushr and lushr JVM bytecodes.
3691
3692 2005-02-01  Ranjit Mathew  <rmathew@hotmail.com>
3693
3694         PR java/19738
3695         * gjavah.c (jni_print_float): Do not emit floating-point
3696         initialiser for a static final field.
3697         (jni_print_double): Likewise.
3698
3699 2005-02-01  Mark Mitchell  <mark@codesourcery.com>
3700
3701         Revert:
3702         2005-01-31  Mark Mitchell  <mark@codesourcery.com>
3703         * gjavah.c (print_field_info): Mark static data members of
3704         floating-point type with "__extension__".
3705
3706 2005-01-31  Mark Mitchell  <mark@codesourcery.com>
3707
3708         * gjavah.c (print_field_info): Mark static data members of
3709         floating-point type with "__extension__".
3710
3711 2005-02-01  Ranjit Mathew  <rmathew@hotmail.com>
3712
3713         PR java/9157
3714         * parse.y (build_string_concatenation): Remove redundant if.
3715         (patch_conditional_expr): Attempt to patch_string() the condition
3716         of a ?: as well, in addition to its other operands.
3717
3718 2005-01-25  Tom Tromey  <tromey@redhat.com>
3719
3720         * Make-lang.in (java/java-tree-inline.o): Removed.
3721
3722 2005-01-25  Ranjit Mathew  <rmathew@hotmail.com>
3723
3724         PR java/19070
3725         * parse.y (patch_binop): Allow comparisons against NULL only
3726         if the other operand is of a reference type.
3727
3728 2005-01-24  Tom Tromey  <tromey@redhat.com>
3729
3730         * java-tree.h (gcj_abi_version): Declare.
3731         * class.c (make_class_data): Push gcj_abi_version into "next"
3732         field.  Renamed field.
3733         * decl.c (gcj_abi_version): New global.
3734         (parse_version): New function.
3735         (java_init_decl_processing): Call it.  Renamed 'next' field.
3736         Include version.h.
3737         (GCJ_BINARYCOMPAT_ADDITION): New define.
3738
3739 2005-01-24  Roger Sayle  <roger@eyesopen.com>
3740
3741         PR java/19295
3742         * jcf-write.c (generate_bytecode_insns): Conversions between
3743         integer types of the same precision shouldn't generate widening
3744         or narrowing conversion bytecodes.
3745
3746 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
3747
3748         * java-except.h, java-tree.h: Remove unused prototypes.
3749
3750 2005-01-20  Andrew Pinski  <pinskia@gcc.gnu.org>
3751
3752         PR java/18091:
3753         * jcf-write.c (perform_relocations): Don't call memcpy if source
3754         and destination are the same.
3755
3756 2005-01-17  Tom Tromey  <tromey@redhat.com>
3757
3758         * verify-impl.c (get_short): Sign extend.
3759         (get_int): Likewise.
3760
3761 2005-01-12  Ranjit Mathew  <rmathew@hotmail.com>
3762
3763         * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
3764         with TYPE_SIZE.
3765
3766 2005-01-10  Ranjit Mathew  <rmathew@hotmail.com>
3767
3768         * verify.c: Revert to the version before the BC-ABI merge.
3769
3770 2005-01-10  Ranjit Mathew  <rmathew@hotmail.com>
3771
3772         PR java/19277
3773         * check-init.c (check_init): Take care of references that do not
3774         have an explicit final variable declaration (e.g. array length
3775         access) for pre/post in/de-crement operators.
3776
3777 2005-01-08  Mark Wielaard  <mark@klomp.org>
3778
3779         * parse.y (process_imports): Allocate (and free) original_name only
3780         when not already defined.
3781         * jcf-parse.c (read_class): Free results of find_class() and
3782         lrealpath().
3783         (java_parse_file): Keep pointer to head of file_list and free when
3784         done. Free result of lrealpath().
3785
3786 2005-01-05  Tom Tromey  <tromey@redhat.com>
3787
3788         * gcj.texi (Standard Properties): java.ext.dirs is now used.
3789
3790 2004-12-20  Andrew Haley  <aph@redhat.com>
3791
3792         * typeck.c: Use fold_convert for ints and booleans.
3793
3794 2004-12-17  Andrew Haley  <aph@redhat.com>
3795
3796         PR java/18931
3797         * typeck.c (convert): Use a CONVERT_EXPR when converting to
3798         BOOLEAN_TYPE or CHAR_TYPE.
3799         (convert_to_boolean, convert_to_char) : Remove.
3800         * convert.h (convert_to_boolean, convert_to_char) : Remove.
3801         * expr.c (expand_load_internal): Do type conversion if type is not
3802         as required.
3803
3804 2004-12-13  Danny Smith  <dannysmith@users.sourceforge.net>
3805
3806         PR target/18459
3807         * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
3808         Update comment.
3809
3810 2004-12-07  Andrew Haley  <aph@redhat.com>
3811
3812         PR java/18811:
3813         * jcf-parse.c (load_class): Remove sanity test for missing inner
3814         class file.
3815
3816 2004-12-06  Tom Tromey  <tromey@redhat.com>
3817
3818         * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
3819         (java.uninstall): Likewise.
3820         (java.maintainer-clean): Likewise.
3821         (.INTERMEDIATE): Likewise.
3822         (java.install-man): Likewise.
3823         (gcj-dbtool.pod): New target.
3824         * gcj.texi (Code Generation): Document -findirect-dispatch.
3825         (libgcj Runtime Properties): Document
3826         gnu.gcj.precompiled.db.path.
3827         (Top): Link to "Invoking gcj-dbtool".
3828
3829 2004-12-06  Tom Tromey  <tromey@redhat.com>
3830
3831         PR java/14853:
3832         * java-tree.h (extract_field_decl): Declare.
3833         * parse.y (extract_field_decl): Renamed from
3834         strip_out_static_field_access_decl.  No longer static.
3835         * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
3836
3837 2004-12-03  Tom Tromey  <tromey@redhat.com>
3838
3839         * lang.c (flag_new_verifier): Define.
3840         (java_post_options): Set flag_new_verifier if indirect dispatch
3841         is being used.
3842         * lang.opt (fnew-verifier): Removed.
3843
3844 2004-12-03  Tom Tromey  <tromey@redhat.com>
3845
3846         PR bootstrap/14614:
3847         * Make-lang.in (java.install-common): Only install transformed
3848         gcjh if gcj-cross exists.
3849
3850 2004-12-03  Andrew Haley  <aph@redhat.com>
3851
3852         PR java/18812
3853         * except.c (link_handler): Patch 'outer' field of siblings of the
3854         range we're demoting.
3855
3856 2004-12-03  Andrew Haley  <aph@redhat.com>
3857
3858         PR java/18697
3859         * class.c (layout_class_method): Don't fail to override a method
3860         simply because it has DECL_ARTIFICIAL set.
3861
3862 2004-12-02  Tom Tromey  <tromey@redhat.com>
3863
3864         PR java/16675:
3865         * parse.y (craft_constructor): Special case null_pointer_node.
3866
3867 2004-12-02  Tom Tromey  <tromey@redhat.com>
3868
3869         PR java/18741:
3870         * java-gimplify.c (java_gimplify_expr): Don't call
3871         SET_EXPR_LOCATION unless wrapped tree is an expression.
3872
3873 2004-11-27  Per Bothner  <per@bothner.com>
3874
3875         * jcf-parse.c (set_source_filename):  Improvement to Andrew's fix:
3876         Fix fencepost error in 'i', which got executed one too many times.
3877         Also, fold memcpy into explicit loop, as originally intended.
3878         Also, free temporary 'buf' which otherwise leaks.
3879
3880 2004-11-27  Per Bothner  <per@bothner.com>
3881
3882         * expr.c (build_expr_wfl): Only declare last_file and last_filenode
3883         local static variables if not USE_MAPPED_LOCATION.
3884
3885 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
3886
3887         * class.c, decl.c, expr.c: Fix comment typos.
3888
3889 2004-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
3890
3891         PR java/18305
3892         * decl.c (end_java_method): Call
3893         attach_init_test_initialization_flags on all the init_decls.
3894         * parse.y (attach_init_test_initialization_flags): Move to ...
3895         * expr.c (attach_init_test_initialization_flags): here and
3896         support BIND_EXPR also.
3897         * java-tree.h (attach_init_test_initialization_flags): Prototype.
3898         * jcf-parse.c (parse_class_file): Don't disable class init
3899         optimization.
3900
3901 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
3902
3903         * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
3904         in diagnostics.
3905
3906 2004-11-24  Richard Henderson  <rth@redhat.com>
3907
3908         * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
3909         vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
3910
3911 2004-11-24  Tom Tromey  <tromey@redhat.com>
3912
3913         * verify.c (defer_merging): Don't use C++-style comment.
3914         * verify.h (java_opcode): Added java_opcode_end.
3915         * class.c (build_class_ref): Remove C++ comment and old FIXME.
3916
3917         * verify-impl.c (vfy_push_type): Removed bogus "return".
3918         (initialize_stack): Use vfy_alloc and vfy_free.
3919         (verify_instructions_0): Likewise.
3920
3921         * Merged gcj-abi-2-dev-branch to trunk.
3922
3923 2004-11-24  Andrew Haley  <aph@redhat.com>
3924
3925         * jcf-parse.c (parse_class_file): Set file_start_location.
3926
3927 2004-11-10  Tom Tromey  <tromey@redhat.com>
3928
3929         * class.c (make_field_value): Don't call build_static_field_ref.
3930         (build_static_field_ref): Don't emit direct references when using
3931         indirect dispatch.
3932
3933         * gcj.texi (Invoking gij): Document -verbose.  Put -verbose and
3934         -verbose:class into man page synopsis.
3935
3936 2004-11-09  Tom Tromey  <tromey@redhat.com>
3937
3938         * expr.c (build_java_arraystore_check): Still generate check if
3939         element type is itself an array.
3940
3941 2004-11-08  Tom Tromey  <tromey@redhat.com>
3942
3943         * java-tree.h (soft_check_assignment_node): Removed.
3944         (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
3945         * decl.c (java_init_decl_processing): Don't initialize
3946         soft_check_assignment_node.
3947
3948 2004-11-05  Tom Tromey  <tromey@redhat.com>
3949
3950         * class.c (layout_class_methods): Don't add Miranda methods when
3951         using indirect dispatch.
3952
3953 2004-11-05  Bryce McKinlay  <mckinlay@redhat.com>
3954
3955         * class.c (make_class_data): Call emit_assertion_table to set the
3956         'assertion_table' field.
3957         (build_signature_for_libgcj): Move here from expr.c.
3958         (add_assertion_table_entry): New function. Callback for assertion
3959         hashtable traversal.
3960         (emit_assertion_table): New. Take class argument, and generate
3961         assertion table DECL based on the TYPE_ASSERTIONS hashtable.
3962         * decl.c (init_decl_processing): Define assertion_entry_type record.
3963         Push 'assertion_table' class field instead of 'verify'.
3964         * expr.c (type_assertion_eq): Compare 'assertion_code' field.
3965         (type_assertion_hash): Include 'assertion_code' in hash.
3966         (add_type_assertion): Rewritten. Take class and assertion_code
3967         arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
3968         (can_widen_reference_to): Use new add_type_assertion() arguments.
3969         * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
3970         JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
3971         (verify_identifier_node): Removed.
3972         (assertion_entry_type, assertion_table_type): New.
3973         (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
3974         assertion code definitions.
3975         (struct type_assertion): Add assertion_code. Rename 'source_type' and
3976         'target_type' to 'op1' and 'op2'.
3977         (add_type_assertion): Declare.
3978         (lang_printable_name_wls): Remove unused definition.
3979         * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
3980         to emit runtime assertion.
3981         (vfy_note_stack_type): Clean up non-C90 declarations.
3982         (vfy_note_local_type): Likewise.
3983         * verify.h (vfy_is_assignable_from): Declare.
3984         * verify-impl.c (is_assignable_from_slow): Remove unused function.
3985         (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
3986         instead of is_assignable_from_slow().
3987         (types_compatible): Reinstate ref_compatible() call.
3988
3989 2004-11-04  Tom Tromey  <tromey@redhat.com>
3990
3991         * class.c (build_static_field_ref): Reverted previous patch.
3992
3993         * class.c (build_static_field_ref): Don't emit direct references
3994         when using indirect dispatch.
3995
3996 2004-11-03  Tom Tromey  <tromey@redhat.com>
3997
3998         * expr.c (expand_java_arrayload): Set lhs_type_node.
3999         (expand_java_arraystore): Set rhs_type_node.
4000
4001 2004-11-02  Tom Tromey  <tromey@redhat.com>
4002
4003         * jcf-parse.c (compute_class_name): Use filename length from zip
4004         directory, not strlen.
4005
4006         * expr.c (expand_invoke): Mark new interface methods as abstract.
4007
4008 2004-11-01  Tom Tromey  <tromey@redhat.com>
4009
4010         * verify-impl.c (push_jump): Removed check for uninitialized
4011         objects.
4012         (push_exception_jump): Likewise.
4013         (handle_ret_insn): Likewise.
4014         (handle_jsr_insn): Likewise.
4015         (state_check_no_uninitialized_objects): Removed.
4016
4017         * decl.c (check_local_unnamed_variable): Recognize
4018         promoted-to-int parameters when using the new verifier.
4019         * expr.c (expand_java_arraystore): Explicitly request array type
4020         when using new verifier.
4021         (expand_java_arrayload): Likewise.
4022         (invoke_build_dtable): Don't pass object_type_node as
4023         expression argument to build_java_indirect_ref.
4024         (build_java_check_indexed_type): Do nothing.
4025         (build_java_arraystore_check): Handle case where array doesn't
4026         have array type.
4027         (build_java_array_length_access): Likewise.
4028         (expand_invoke): Handle case where interface overrides a method
4029         from Object.
4030         (pop_type_0): Always succeed for reference types.
4031         (process_jvm_instruction): Don't pop a value in a dead
4032         exception handler.
4033         (pop_arguments): Convert arguments to correct types.
4034
4035 2004-10-29  Andrew Haley  <aph@redhat.com>
4036
4037         * jcf-parse.c (give_name_to_class): Remove line that was
4038         incorrectly merged.
4039
4040 2004-10-29  Andrew Haley  <aph@redhat.com>
4041
4042         * jcf-parse.c (set_source_filename): Add code to build new sfname.
4043
4044 2004-10-20  Andrew Haley  <aph@redhat.com>
4045
4046         * decl.c (end_java_method): Don't expand if flag_syntax_only.
4047
4048 2004-10-26  Tom Tromey  <tromey@redhat.com>
4049
4050         * verify.h (vfy_notify_verified): Removed.
4051         * verify-glue.c (vfy_notify_verified): Removed.
4052
4053 2004-10-26  Tom Tromey  <tromey@redhat.com>
4054
4055         * verify-impl.c (debug_print_state): Declare `i' before code.
4056         (merge_types): Modify `t' when it is null_type.
4057
4058 2004-10-26  Tom Tromey  <tromey@redhat.com>
4059
4060         * verify-impl.c (type_print): Renamed from print.  Now static and
4061         takes an argument.
4062         (debug_print_state): Use type_print.
4063
4064 2004-10-25  Tom Tromey  <tromey@redhat.com>
4065
4066         * expr.c (build_invokeinterface): Compute correct offset for
4067         index into interface methods.
4068
4069 2004-10-20  Tom Tromey  <tromey@redhat.com>
4070
4071         * java-tree.h (verify_jvm_instructions_new): Declare.
4072
4073         * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
4074         command line.
4075
4076         * verify-impl.c (verify_instructions): Correctly handle wide
4077         types on the stack.
4078         * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
4079         (vfy_get_component_type): Strip pointer types.
4080         (vfy_find_class): Use get_type_from_signature.  Strip pointer
4081         types.
4082         Include java-except.h.
4083
4084 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
4085
4086         * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
4087         vfy_push_type_t, set_variable, add_new_state, merge_into,
4088         handle_jsr_insn, branch_prepass, check_class_constant,
4089         check_wide_constant, get_one_type, compute_static_types,
4090         verify_instructions_0): Clean up C99 declarations after statements.
4091
4092 2004-10-20  Tom Tromey  <tromey@redhat.com>
4093
4094         * verify-impl.c (merge_refs): Compare reference against iterator,
4095         not ref2.
4096
4097         * verify-glue.c (vfy_tag): Mask off resolved flag.
4098
4099 2004-10-19  Tom Tromey  <tromey@redhat.com>
4100
4101         * verify-impl.c (verify_instructions): Call vfy_note_local_type.
4102         (init_state_with_stack): Initialize `this_type' in state.
4103         (verify_method): Use debug_print.
4104         * verify-glue.c (vfy_is_primitive): Removed debugging print.
4105         (vfy_note_stack_depth): Reverted last patch.
4106         (vfy_note_stack_type): Note pointer to Object, not Object.
4107         (vfy_note_local_type): Likewise.
4108
4109         * verify.h (vfy_note_instruction_seen): Declare.
4110         * verify-glue.c (verify_jvm_instructions_new): Set
4111         BCODE_EXCEPTION_TARGET on target instruction.
4112         (vfy_note_instruction_seen): New function.
4113         * verify-impl.c (FLAG_INSN_SEEN): New define.
4114         (verify_instructions_0): Set flag on instruction.  Save state for
4115         PC=0 later.
4116         (verify_instructions): Call vfy_note_instruction_seen.
4117
4118         * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
4119         (verify_jvm_instructions_new): Call method_init_exceptions,
4120         add_handler, and handle_nested_ranges.
4121         * verify-impl.c (verify_method): Return 1 on success.
4122         (verify_instructions_0): Save the state at PC=0.
4123
4124         * verify-impl.c (init_type_from_class): Set is_resolved and
4125         ref_next on new ref_intersection.
4126         (init_type_from_string): Likewise.
4127
4128 2004-10-15  Bryce McKinlay  <mckinlay@redhat.com>
4129
4130         * expr.c (expand_bytecode): Use verify_jvm_instructions_new
4131         if flag_new_verifier is set.
4132         * java-tree.h (flag_new_verifier): Declare.
4133         * lang.opt (fnew-verifier): New option.
4134         * verify-impl.c: Work around namespace pollution by undef'ing
4135         'current_class'.
4136         (struct verifier_context): Make 'bytecode' const.
4137         (verify_fail_pc): Pass -1 PC argument to vfy_fail.
4138         (types_compatible): For the BC-ABI, always consider reference types
4139         compatible.
4140         (check_class_constant): Use vfr->current_class.
4141         (check_constant): Likewise.
4142         (check_wide_constant): Likewise.
4143         (check_field_constant): Check for 'L' at start of type name.
4144         (get_one_type): Return pointer instead of type. Set type result in
4145         caller via passed type pointer.
4146         (compute_argument_types): Update to use new get_one_type arguments.
4147         (compute_return_type): Likewise.
4148         (make_verifier_context): New. Allocate and initialize 'vfr'.
4149         (free_verifier_context): New. Free 'vfr' and its contents.
4150         (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
4151         and free_verifier_context.
4152
4153 2004-10-15  Tom Tromey  <tromey@redhat.com>
4154
4155         * verify-glue.c (vfy_note_local_type): Mark argument as unused.
4156         * verify.h (vfy_fail): Fixed formatting.
4157
4158         * verify-impl.c (vfr): Fixed comment formatting.
4159         (collapse_type): New function.
4160         (verify_instructions): Notify compiler about type map.
4161         * verify.h (vfy_note_stack_depth): Updated.
4162         (vfy_note_stack_type): Likewise.
4163         (vfy_note_local_type): Likewise.
4164         (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
4165         Declare.
4166         * verify-glue.c (vfy_note_stack_depth): Correctly size type
4167         state.  Added `method' argument.
4168         (vfy_note_stack_type): Renamed from vfy_note_type.  Added `method'
4169         argument.
4170         (vfy_note_local_type): New function.
4171         (vfy_unsuitable_type): Likewise.
4172         (vfy_return_address_type): Likewise.
4173         (vfy_null_type): Likewise.
4174
4175         * verify.h (VFY_IN_GCC): Removed.
4176         (VFY_WANT_TYPEMAP): Removed.
4177         * verify-impl.c (verify_instructions_0): Removed useless "\".
4178         (struct state) <next>: Uncomment.
4179
4180 2004-10-13  Bryce McKinlay  <mckinlay@redhat.com>
4181
4182         * verify-impl.c: Formatting fixes. Reformat C++-style comments to
4183         C-style.
4184
4185 2004-10-06  Bryce McKinlay  <mckinlay@redhat.com>
4186
4187         * Make-lang.in (verify.o): Re-enabled this target.
4188         * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
4189         (vfy_get_interface): Likewise.
4190         (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
4191         * verify.h (verify_jvm_instructions_new): Declare.
4192         * verify-impl.c (free_state): Temporarily comment out unused
4193         function.
4194
4195 2004-10-06  Tom Tromey  <tromey@redhat.com>
4196
4197         * java-tree.h (JV_STATE_READ): New enum value.
4198
4199 2004-10-06  Bryce McKinlay  <mckinlay@redhat.com>
4200
4201         * verify.h: New file.
4202
4203 2004-10-05  Bryce McKinlay  <mckinlay@redhat.com>
4204
4205         * verify-impl.c, verify-glue.c, verify.h: New files.
4206         * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
4207
4208 2004-09-24  Andrew Haley  <aph@redhat.com>
4209
4210         * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
4211         for a slot if it's of pointer type.
4212
4213 2004-09-14  Tom Tromey  <tromey@redhat.com>
4214
4215         * class.c (make_class_data): Correctly initialize "state" field.
4216         Initialize "engine" field.
4217         * decl.c (java_init_decl_processing): Add "engine" field.
4218
4219 2004-09-10  Andrew Haley  <aph@redhat.com>
4220
4221         PR java/12760
4222         * expr.c (build_invokeinterface): Use fast method for interface
4223         dispatch.
4224         * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
4225         JTI_ITABLE_PTR_TYPE.
4226         (struct lang_type): Add  itable_methods, itable_decl, itable_syms_decl.
4227         (emit_symbol_table): Add new arg, element_size.
4228         * decl.c (java_init_decl_processing): Initialize Class.itable.
4229         * class.c (GEN_TABLE): New macro.
4230         (gen_indirect_dispatch_tables): Use it.  Add itable.
4231         (make_class_data): Add new arg for emit_symbol_table().
4232         Emit itable.
4233         (add_miranda_methods): Make sure search_class has been parsed.
4234         (emit_symbol_table): Add new arg, element_size.
4235
4236 2004-09-06  Andrew Haley  <aph@redhat.com>
4237
4238         * verify.c (merge_types): Return Object for all merges of
4239         interfaces.
4240         * expr.c (add_type_assertion): Don't generate assertions when
4241         source type is array of Object.
4242
4243 2004-09-03  Andrew Haley  <aph@redhat.com>
4244
4245         * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
4246
4247         * lang.c (java_post_options): Force flag_verify_invocations if
4248         we're not using indirect dispatch.
4249
4250         * expr.c (pop_type_0): Move test for interfaces before call to
4251         can_widen_reference_to().
4252         (build_signature_for_libgcj): Remove generation of canonical array
4253         type.
4254         (add_type_assertion): Canonicalize both arrays.
4255         Don't assert that type X can be assigned to Object.
4256         Don't assert that type X an be assigned to type X.
4257         Don't assert that Object can be assigned to type X.
4258         (can_widen_reference_to): Warn whenever we generate an assertion.
4259         (process_jvm_instruction): Use throwable_type_node for the type of
4260         an exception class.
4261
4262 2004-09-01  Andrew Haley  <aph@redhat.com>
4263
4264         * decl.c (java_init_decl_processing): Change
4265         verify_identifier_node to "__verify".
4266         * expr.c (add_type_assertion): Use verify_identifier_node for name.
4267         * java-tree.h (verify_identifier_node): Change to "__verify".
4268
4269         * expr.c (build_signature_for_libgcj): New function.
4270         (add_type_assertion): Use it to construct signatures for
4271         source_type and target_type.
4272
4273 2004-08-27  Andrew Haley  <aph@redhat.com>
4274
4275         * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
4276         (verify_identifier_node): New.
4277         (TYPE_VERIFY_METHOD): New.
4278         (struct type_assertion): New type.
4279         * expr.c (type_assertion_eq): New function.
4280         (type_assertion_hash): New function.
4281         (add_type_assertion): New function.
4282         (can_widen_reference_to): Call add_type_assertion().
4283         * decl.c (java_init_decl_processing): Add verify_identifier_node.
4284         * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
4285         (finish_class): Output TYPE_VERIFY_METHOD (type).
4286
4287         * decl.c (end_java_method): Nullify unused fields.
4288
4289 2004-08-17  Andrew Haley  <aph@redhat.com>
4290
4291         * verify.c (defer_merging): Quieten.
4292         * jcf-parse.c (load_class): Only try to open a class file if it's
4293         java.lang.Object or if it's part of the current compilation.
4294         Check that the class we just tried to load is the class we just
4295         loaded.  Quieten.
4296         (java_parse_file): Set flag_verify_invocations off if we're
4297         compiling from .class.
4298         (parse_zip_file_entries): Abort if we try to read a dummy class.
4299         * expr.c (can_widen_reference_to): Quieten.
4300         (build_invokevirtual): Abort if we try to invokevirtual an
4301         interface.
4302         (expand_invoke): Don't build a non-interface call to an interface.
4303         (build_instanceof): Don't do premature optimization if
4304         flag_verify_invocations is not set.
4305         * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
4306         from superclass.
4307         (build_static_field_ref): Add correct type conversion for
4308         field_address.
4309         (add_miranda_methods): Disable generation of Miranda methods for
4310         dummy classes.
4311         (layout_class_method): Don't complain about non-static method
4312         overrides static method with dummy classes.
4313
4314 2004-08-13  Tom Tromey  <tromey@redhat.com>
4315
4316         * class.c (build_static_field_ref): Re-enable atable lookups for
4317         static fields.
4318
4319         * parse.y (strip_out_static_field_access_decl): Indentation fix.
4320
4321 2004-08-11  Tom Tromey  <tromey@redhat.com>
4322
4323         * gcj.texi (libgcj Runtime Properties): Document new properties.
4324
4325 2004-08-06  Andrew Haley  <aph@redhat.com>
4326
4327         * jcf-parse.c (load_class): Check that we really have loaded the
4328         class we're looking for.
4329
4330 2004-07-19  Andrew Haley  <aph@redhat.com>
4331
4332         * verify.c (verify_jvm_instructions): Comment change only.
4333
4334         * typeck.c (build_java_array_type): Add size field to array name.
4335
4336         * java-tree.h (LOCAL_SLOT_P): New.
4337         (update_aliases): Add PC argument.
4338         (pushdecl_function_level): New function.
4339
4340         * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
4341         MODIFY_EXPR, and SAVE_EXPR.
4342         (java_gimplify_modify_expr): New function.
4343
4344         * expr.c (push_type_0): Call find_stack_slot() to create temporary.
4345         (expand_iinc): Pass PC to update_aliases().
4346         (STORE_INTERNAL): Likewise.
4347         (process_jvm_instruction): Likewise.
4348
4349         * decl.c (base_decl_map): New variable.
4350         (uniq): New variable.
4351         (update_aliases): Rewrite with more thorough checking.
4352         (debug_variable_p): New function.
4353         (push_jvm_slot): Don't initialize local variable.  Don't pushdecl.
4354         (check_local_named_variable): Delete whole function.
4355         (initialize_local_variable): New function.
4356         (check_local_unnamed_variable): Add checks and comments.
4357         (find_local_variable): Rewrite.
4358         (java_replace_reference): New function.
4359         (function_binding_level): New variable.
4360         (pushdecl_function_level): New function.
4361         (maybe_pushlevels): Set DECL_LOCAL_END_PC.
4362         (maybe_pushlevels): Call pushdecl() on each of the new decls.
4363         (start_java_method): Reset uniq.  Create base_decl_map.  Set
4364         function_binding_level.
4365         (end_java_method): Null unused fields to save memory.
4366
4367 2004-06-29  Andrew Haley  <aph@redhat.com>
4368
4369         * except.c (expand_start_java_handler): Push a new binding level.
4370         Don't build a TRY_CATCH_EXPR now, we'll do it later.  Call
4371         register_exception_range() to register where we'll do it.
4372         (expand_end_java_handler): Remove old bogus code.  Replace with
4373         new logic that simply builds TRY_CATCH_EXPRs and inserts them at
4374         the top of the expression we're curently building.
4375         (maybe_end_try): Delete.
4376         * decl.c (binding_level.exception_range): New field.
4377         (clear_binding_level): Add field exception_range.  Reformat.
4378         (poplevel): Call expand_end_java_handler().
4379         (poplevel): Call java_add_stmt only if functionbody is false.
4380         (maybe_poplevels): Don't call maybe_end_try() from here.
4381         (end_java_method): Clear no longer used trees in function decl.
4382         (register_exception_range): New function.
4383         * java-tree.h (register_exception_range, struct eh_range): Declare.
4384
4385 2004-06-22  Andrew Haley  <aph@redhat.com>
4386
4387         * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
4388         the otable.
4389         * check-init.c (get_variable_decl): Teach check-init about
4390         FIELD_DECLs addressed via the otable.
4391         * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
4392         CLASS_PARSED_P.
4393
4394 2004-05-28  Andrew Haley  <aph@redhat.com>
4395
4396         * jcf-parse.c (load_class): Don't try to read a class that we've
4397         already read.
4398
4399         * expr.c (build_invokeinterface): Use the old-fashioned way of
4400         doing indirect dispatch: look up interfaces by name.
4401         * java-tree.h (enum java_tree_index): Add
4402         JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
4403         * decl.c (java_init_decl_processing): Add
4404         soft_lookupinterfacemethodbyname_node.
4405
4406         * gjavah.c (print_method_info): Final methods have vtable entries,
4407         so gjavah needs to output them.
4408         * class.c (layout_class_method): Generate vtable entries for final
4409         methods.
4410         * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
4411         dispatch, even if a method is final.
4412
4413 2004-05-25  Andrew Haley  <aph@redhat.com>
4414
4415         * class.c (build_symbol_entry): Convert the names of constructors
4416         to init_identifier_node when generating an entry for the indirect
4417         dispatch table.
4418
4419         * expr.c (build_known_method_ref): Generate indirect calls for
4420         all methods marked DECL_EXTERNAL or TREE_PUBLIC.
4421
4422 2004-05-24  Andrew Haley  <aph@redhat.com>
4423
4424         * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
4425         atable element is of the right type.
4426
4427         * class.c (build_static_field_ref): Cast pointer to correct type
4428         for field.
4429
4430 2004-04-20  Bryce McKinlay  <mckinlay@redhat.com>
4431
4432         * Merged with HEAD as of 20040514. Diff against
4433         gcj-abi-2-merge-20040514.
4434
4435 2004-04-16  Andrew Haley  <aph@redhat.com>
4436
4437         * verify.c (check_pending_block): Disable subroutine checks.
4438         (defer_merging): New function.
4439         (merge_types): If types are dummy, use defer_merging to combine them.
4440         (verify_jvm_instructions): If invocation is invokeinterface and
4441         target is dummy, assume target really is an interface.
4442
4443         * parse.y (patch_invoke): Break out call to java_create_object.
4444
4445         * lang.c (flag_verify_invocations): New.
4446
4447         * jcf-parse.c (load_class): If we've already failed to load a
4448         class, don't try again.
4449         (load_class): If we can't find a .class file, don't fail, but emit
4450         a warning.
4451         (parse_class_file): Don't act on dummy methods.
4452
4453         * java-tree.h (flag_verify_invocations): New.
4454         (TYPE_DUMMY): New.
4455         (lang_type.dummy_class): New field.
4456         (java_create_object): New function.
4457         (METHOD_DUMMY): New.
4458
4459         * expr.c (build_field_ref): Widen field offset.
4460         (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
4461         that each of its elements is compatible with the one we're
4462         popping.
4463         (pop_type_0): Issue a warning to say that we need to generate a
4464         runtime check.
4465         (java_create_object): New function.
4466         (build_field_ref): Only generate hard refs if we're not using
4467         indirect dispatch.
4468         (expand_java_field_op): If we're using !verify_invocations and we
4469         see a missing field, generate a decl for it.
4470
4471         (expand_invoke): If a class doesn't have the method we seek and
4472         we're using !flag_verify_invocations, generate a decl for the
4473         method now.
4474
4475         (build_known_method_ref): Always use indirect dispatch via the
4476         atable for static methods.
4477
4478         (expand_java_NEW): Break out object creation into new function,
4479         java_create_object.
4480
4481         (can_widen_reference_to): Issue a warning to say that we need to
4482         generate a runtime check.
4483
4484         * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
4485         (make_method_value): Also use index for interfaces.
4486         (make_class_data): Skip dummy field for inherited data.
4487         Don't build method array for dummy methods.
4488         Set size_in_byte to -1 when using inirect dispatch
4489         Don't build a hard class ref if we don't have a hard ref to our
4490         superclass, or if we're using inirect dispatch.
4491         Null out dispatch tables.
4492
4493         (layout_class_method): Don't complain about non-static method
4494         overrides static method is method is artificial.
4495
4496         (build_static_field_ref): Disable atable references to static
4497         fields for the time being.
4498
4499         (layout_class_methods): Check for CLASS_INTERFACE as
4500         well as CLASS_ABSTRACT.
4501
4502 2004-11-24  Steven Bosscher  <stevenb@suse.de>
4503
4504         * class.c (make_class_data): Don't check flag_inline_functions.
4505         * lang.c (flag_really_inline): Remove unused flag.
4506         (java_handle_option): Don't set it here.  Remove special handling
4507         of flag_inline_functions for Java.
4508         (java_init): Don't set flag_inline_trees here.  Already done...
4509         (java_post_options): ...here.  Don't clear flag_inline_functions.
4510
4511 2004-11-24  Steven Bosscher  <stevenb@suse.de>
4512
4513         * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
4514         (java_gimplify_exit_block_expr): New function.
4515         (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
4516         LABELED_BLOCK_EXPR.
4517         * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
4518         (EXIT_BLOCK_EXPR): Likewise.
4519         * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
4520         (LABELED_BLOCK_BODY): Likewise.
4521         (EXIT_BLOCK_LABELED_BLOCK): Likewise.
4522         * jcf-write.c (generate_bytecode_insns): Don't handle the unused
4523         EXIT_BLOCK_RETURN operand.  Use EXIT_BLOCK_LABELED_BLOCK instead of
4524         TREE_OPERAND.
4525         * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
4526         (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
4527         EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND.  Don't handle the
4528         second operand of EXIT_BLOCK_EXPR.
4529         * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
4530         TREE_OPERAND.
4531         (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
4532
4533 2004-11-23  Ben Elliston  <bje@au.ibm.com>
4534
4535         * xref.h (xref_flag_value): Remove.
4536         (xref_set_data, xref_get_data): Likewise.
4537         (xref_set_current_fp): Likewise.
4538         (XREF_NONE): Likewise.
4539         (XREF_GET_DATA): Likewise.
4540         * xref.c (xref_flag_value): Remove.
4541         (xref_set_data, xref_get_data): Likewise.
4542         (xref_set_current_fp): Likewise.
4543
4544 2004-11-23  Ben Elliston  <bje@au.ibm.com>
4545
4546         * gjavah.c (output_directory): Make static.
4547         (temp_directory): Likewise.
4548
4549 2004-11-15  Tom Tromey  <tromey@redhat.com>
4550
4551         * decl.c (instn_ptr_type_node): Removed.
4552         (lineNumbers_ptr_type_node): Removed.
4553         (jint_type): Removed.
4554         (jint_ptr_type): Removed.
4555
4556 2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
4557
4558         PR java/15576
4559         * check-init.c (check_init): Ignore DECL_EXPR.
4560         * expr.c (always_initialize_class_p): Reenable.
4561         (build_class_init): Use a variable to store the decl.  Also use
4562         boolean_false_node instead of integer_zero_node.
4563         * parse.y (attach_init_test_initialization_flags): Add a decl_expr
4564         to the block.
4565
4566 2004-11-08  Tom Tromey  <tromey@redhat.com>
4567
4568         PR java/16843:
4569         * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
4570         generating a JNI header.
4571         (print_field_info): Handle JNI headers.
4572         (jni_print_float): Likewise.
4573         (jni_print_double): Likewise.
4574
4575 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
4576
4577         * decl.c (end_java_method): Remove duplicated code.
4578
4579 2004-11-06  Zack Weinberg  <zack@codesourcery.com>
4580             Gerald Pfeifer  <gerald@pfeifer.com>
4581
4582         * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
4583         as well.
4584
4585 2004-11-02  Bryce McKinlay  <mckinlay@redhat.com>
4586
4587         PR java/17265
4588         * class.c: Reinstate 2004-08-18 patch.
4589         (make_local_function_alias): Don't create an alias for extern (native)
4590         functions.
4591
4592 2004-10-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4593
4594         PR java/17265
4595         * class.c (make_local_function_alias): Revert 2004-08-18 change.
4596         (make_method_value): Likewise.
4597
4598 2004-10-21  Andrew Haley  <aph@redhat.com>
4599
4600         PR java/18091:
4601         * jcf-parse.c (set_source_filename): Add code to build new sfname.
4602
4603 2004-10-20  Andrew Haley  <aph@redhat.com>
4604
4605         * decl.c (end_java_method): Don't expand if flag_syntax_only.
4606         Remove duplicated code block.
4607
4608 2004-10-18  Steven Bosscher  <stevenb@suse.de>
4609
4610         * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
4611         New rules to work around old Bison warnings.
4612
4613 2004-10-17  Steven Bosscher  <stevenb@suse.de>
4614
4615         * class.c (ident_subst): Always alloca buffer.
4616         * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
4617         opcode after including javaop.def.
4618         * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
4619         conditional expression that exits, to avoid warnings.
4620         * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
4621         a user of an extension.
4622         * win32-host.c: Move check down to have non-empty file when
4623         WIN32 is not defined.
4624
4625         * Make-lang.in (java-warn): Add STRICT_WARN.
4626         (java/jcf-io.o-warn): Don't have Werror for this file.
4627         * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
4628
4629 2004-10-16  Hans-Peter Nilsson  <hp@bitrange.com>
4630
4631         * expr.c (expr_add_location): Move declaration to before all
4632         statements.
4633         * parse.y (java_expand_classes): Ditto.
4634         * lex.c (java_peek_unicode): Ditto.
4635
4636 2004-10-16  Ranjit Mathew  <rmathew@hotmail.com>
4637
4638         * check-init.c: Use %<, %> and %q for quoting in diagnostics,
4639         if possible, else convert `foo' to 'foo'.
4640         * class.c: Likewise.
4641         * decl.c: Likewise.
4642         * expr.c: Likewise.
4643         * jcf-io.c: Likewise.
4644         * jcf-parse.c: Likewise.
4645         * lang.c: Likewise.
4646         * lex.c: Likewise.
4647         * parse.h: Likewise.
4648
4649 2004-10-16  Ranjit Mathew  <rmathew@hotmail.com>
4650
4651         * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
4652         rename parameter 'msg' to 'msgid' in function declaration.
4653         (issue_warning_error_from_context): Likewise.
4654         (yyerror): Rename parameter 'msg' to 'msgid'.
4655         (all over): Use new quoting style for diagnostics.
4656
4657 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
4658
4659         * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
4660         jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
4661         Update copyright.
4662
4663 2004-10-14  Matt Austern  <austern@apple.com>
4664
4665         * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
4666         pointer_set_t* now.
4667
4668 2004-10-13  Tom Tromey  <tromey@redhat.com>
4669
4670         PR java/15578:
4671         * lang.opt (--extdirs): Document.
4672         * jvspec.c (lang_specific_driver): Recognize -encoding and
4673         -extdirs.
4674
4675 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
4676
4677         * parse.y (issue_warning_error_from_context): Use va_list *
4678         instead of va_list parameter.
4679         (parse_error_context): Update call.
4680         (parse_warning_context): Likewise.
4681
4682 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
4683
4684         * parse.y, parse-scan.y: Add list of diagnostic messages to
4685         insulate translation template from version of yacc/bison used
4686         to compile the grammar.
4687
4688 2004-10-05  Ranjit Mathew  <rmathew@hotmail.com>
4689
4690         Prepare for %q, %< and %> in diagnostic message strings.
4691         * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
4692         Name second parameter 'msgid'.
4693         * parse.y: Additionally include pretty-print.h and diagnostic.h.
4694         (issue_warning_error_from_context): Use pretty-printer functions
4695         instead of vsprintf for constructing formatted messages. Rename
4696         parameter 'msg' to 'msgid'.
4697         (parse_error_context): Rename parameter 'msg' to 'msgid'.
4698         (parse_warning_context): Likewise.
4699
4700 2004-10-05  Andrew Haley  <aph@redhat.com>
4701
4702         PR java/17779
4703         * jcf-parse.c (parse_zip_file_entries): If a class has a
4704         superclass and a TYPE_SIZE of zero, lay it out.
4705
4706 2004-09-30  Andrew Haley  <aph@redhat.com>
4707
4708         PR java/17733
4709         * jcf-parse.c (compute_class_name): Rewrite.
4710
4711 2004-10-01  Jan Hubicka  <jh@suse.cz>
4712
4713         * java.c (java_expand_body): Update call of tree_rest_of_compilation.
4714
4715 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
4716
4717         * lex.c: Fix a comment typo.
4718
4719 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
4720
4721         * java-tree.h: Fix a comment typo.
4722
4723 2004-09-30  Per Bothner  <per@bothner.com>
4724
4725         Simplify lexer.  Implement --enable-mapped-location support.
4726         * jcf-parse.c (parse_class_file):  Use linemap_line_start.
4727         (parse_source_file_1): Pass filename as extra parameter, so we can call
4728         linemap_add and set input_location here, rather than in both callers.
4729         (read_class): Pass copied filename to parse_source_file_1.
4730         Don't initialize wfl_operator - only needed for source compilation.
4731         (read_class, jcf_parse):  Call linemap_add with LC_LEAVE.
4732         * lex.h:  Remove a bunch of debugging macros.
4733         * lex.h (struct_java_line, struct java_error):  Remove types.
4734         (JAVA_COLUMN_DELTA):  Remove - use java_lexer.next_colums instead.
4735         (struct java_lc_s):  Remove prev_col field.
4736         (struct java_lexer):  New fields next_unicode, next_columns, and
4737         avail_unicode.  New position field, and maybe token_start field.
4738         Don't need hit_eof field - use next_unicode == -1 instead.
4739         (JAVA_INTEGERAL_RANGE_ERROR):  Rename to JAVA_RANGE_ERROR.
4740         (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR):  Update accordingly.
4741         * parse.h:  Various changes for USE_MAPPED_LOCATION.
4742         (EXPR_WFL_EMIT_LINE_NOTE): XXX
4743         (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
4744         (struct parser_ctxt):  New file_start_location field.
4745         Remove p_line, c_line fields since we no longer save lines.
4746         Remove elc, lineno, and current_jcf fields - no longer used.
4747         * parse.y:  Updates for USE_MAPPED_LOCATION and new lexer.
4748         Don't use EXPR_WFL_ADD_COL since that isn't trivial with
4749         source_location and is probably not needed anymore anyway.
4750         Use new expr_add_Location function.
4751         (SET_EXPR_LOCATION_FROM_TOKEN):  New convenience macro.
4752         (java_pop_parser_context):  Minor cleanup.
4753         (java_parser_context_save_global, java_parser_context_restore_global,
4754         java_pop_parser_context):  Save/restore input_location as a unit.
4755         (issue_warning_error_from_context):  If USE_MAPPED_LOCATION take
4756         a source_location instead of a wfl context node.
4757         (check_class_interface_creation):  input_filename is not addressable.
4758         (create_artificial_method):  Calling java_parser_context_save_global
4759         and java_parser_context_restore_global is overkill.  Instead,
4760         temporarily set input_location from class decl.
4761         (java_layout_seen_class_methods): Set input_location from method decl.
4762         (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
4763         (finish_loop_body):  Likewise.
4764         * lex.c: Updates for USE_MAPPED_LOCATION.  Use build_unknwon_wfl.
4765         (java_sprint_unicode):  Take a character, not index in line.
4766         (java_sneak_uncode):  Replaced by java_peek_unicode.
4767         (java_unget_unicode):  No longer used.
4768         (java_allocate_new_line. java_store_unicode):  Removed, since we
4769         no longer remember "lines".
4770         (java_new_lexer):  Update for new data structures.
4771         (java_read_char):  Move unget_value checking to java_read_unicode.
4772         (java_get_unicode, java_peek_unicode, java_next_unicode): New more
4773         efficient functions that are used directly when lexing.
4774         (java_read_unicode_collapsing_terminators):  No longer needed.
4775         (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
4776         Re-organize to use java_peek_unicode to avoid java_unget_unicode.
4777         (java_parse_escape_sequence):  Rewrite to be simpler / more efficient.
4778         (do_java_lex):  Lots of movings around to avoid java_unget_unicode,
4779         combine switch branches, and test for common token kinds earlier.
4780         (java_lex_error):  Rewrite.
4781         * jv-scan.c (expand_location): New function, copied from tree.c.
4782         (main): Set ctxp->filename instead of setting input_filename directly.
4783
4784 2004-09-30  Per Bothner  <per@bothner.com>
4785
4786         More cleanup for --enable-mapped-location.
4787         * class.c (push_class):  If USE_MAPPED_LOCATION don't set
4788         input_location here.  Instead do it in give_name_to_class.
4789         (build_class_ref):  Set DECL_ARTIFICIAL, for the sake of dwarf2out.
4790         * expr.c (expand_byte_code): Call linemap_line_start.
4791         * expr.c (build_expr_wfl):  If USE_MAPPED_LOCATION, change final
4792         parameters to a source_location.  Don't need EXPR_WFL_FILENAME_NODE.
4793         (expr_add_location):  New function, if USE_MAPPED_LOCATION.
4794         * class.c (maybe_layout_super_class):  Adjust build_expr_wfl call
4795         to USE_MAPPED_LOCATION case.
4796
4797         * java-tree.h (JAVA_FILE_P, ZIP_FILE_P):  Remove unused macros.
4798         * jcf-parse.c (java_parse_file): Don't set input_filename.
4799         Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
4800         Create a list of TRANSLATION_UNIT_DECL.
4801         (current_file_list):  Is now a TRANSLATION_UNIT_DECL chain.  The
4802         reason is so we can set a DECL_SOURCE_LOCATION for each file.
4803         (java_parse_file):  Don't set unused ZIP_FILE_P, JAVA_FILE_P..
4804         Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
4805         (file_start_location):  New static.
4806         (set_source_filename):  Avoid extra access to input_filename macro.
4807         Concatenate new name with class's package prefix.
4808         (set_source_filename, give_name_to_class): Update.
4809         (give_name_to_class):  Set class's "line 0" input_location here.
4810         (parse_class_file):  Set input_location as a unit.
4811
4812         * jcf-parse.c (load_class): Sanity test if missing inner class file.
4813
4814 2004-09-29  Per Bothner  <per@bothner.com>
4815
4816         * java-tree.h:  Redefine some macros and add some declaration
4817         to handle the USE_MAPPED_LOCATION case.
4818         * parse.h (EXPR_WFL_QUALIFICATION):  Use operand 1, not 2.
4819         * java-tree.h (EXPR_WFL_FILENAME_NODE):  Use operand 2, not 1.
4820         * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
4821         USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
4822
4823         * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
4824         * decl.c (finish_method, java_add_stmt): Likewise.
4825         * java-gimplify.c (java-gimplify.c):  Likewise.
4826         * jcf-write.c (generate_bytecode_insns):  Likewise.
4827         * lang.c (java_post_options): Likewise - call linemap_add.
4828
4829 2004-09-29  Andrew Haley  <aph@redhat.com>
4830
4831         PR java/17007
4832         * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
4833         result of TRUNC_MOD_EXPR.
4834         (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
4835         * decl.c (java_init_decl_processing): Mark
4836         soft_lookupinterfacemethod_node and soft_instanceof_node pure.
4837
4838 2004-09-28  Tom Tromey  <tromey@redhat.com>
4839
4840         PR java/15710:
4841         * class.c (add_miranda_methods): Load superinterface if not
4842         already loaded.
4843
4844 2004-09-28  Andrew Haley  <aph@redhat.com>
4845
4846         PR java/17586
4847         * jcf-parse.c (load_class): Don't try to read a class that we've
4848         already read.
4849
4850 2004-09-28  Andrew Haley  <aph@redhat.com>
4851
4852         * jcf-parse.c (load_class): Back out previous broken patch.
4853
4854 2004-09-28  Andrew Haley  <aph@redhat.com>
4855
4856         PR java/17586
4857         * jcf-parse.c (load_class): Don't try to read a class that we've
4858         already read.
4859         Check that we really did read the right class.
4860
4861 2004-09-25  Tom Tromey  <tromey@redhat.com>
4862
4863         PR java/17500:
4864         * parse.y (create_artificial_method): Use add_method_1.
4865
4866 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
4867
4868         * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
4869         comment typos.
4870         * gcj.texi: Fix typos.
4871
4872 2004-09-24  Tom Tromey  <tromey@redhat.com>
4873
4874         PR java/15656:
4875         * parse.y (class_instance_creation_expression): Set `$$' to NULL
4876         in error parts of rule.
4877         (unary_expression): Don't call error_if_numeric_overflow when $1
4878         is NULL.
4879
4880 2004-09-24  Tom Tromey  <tromey@redhat.com>
4881
4882         PR java/16789:
4883         * parse.y (resolve_qualified_expression_name): Set
4884         CAN_COMPLETE_NORMALLY on first call when chaining static calls.
4885         * expr.c (force_evaluation_order): Check for empty argument list
4886         after stripping COMPOUND_EXPR.
4887
4888 2004-09-23  Andrew Haley  <aph@redhat.com>
4889
4890         PR java/16927:
4891         * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
4892         COND_EXPRs.
4893
4894 2004-09-23  Tom Tromey  <tromey@redhat.com>
4895
4896         PR java/17329:
4897         * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
4898         where operand is null.
4899
4900 2004-09-23  Tom Tromey  <tromey@redhat.com>
4901
4902         PR java/17380:
4903         * parse.y (not_accessible_p): Allow access to protected members
4904         even when class is not static.
4905
4906 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
4907
4908         * Make-lang.in: Revert the gcc-none.o change.
4909
4910 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
4911
4912         * parse.y (patch_anonymous_class): VEC_space returns true if there
4913         is space.
4914
4915 2004-09-21  Matt Austern  <austern@apple.com>
4916
4917         Fix bootstrap.
4918         * gjavah.c (free_method_name_list): Fix function definition so
4919         it's a proper C prototype.
4920
4921 2004-09-21  Tom Tromey  <tromey@redhat.com>
4922
4923         PR java/17575:
4924         * gjavah.c (free_method_name_list): New method.
4925         (main): Call it.
4926
4927 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
4928             Zack Weinberg  <zack@codesourcery.com>
4929
4930         * java-tree.def: Use tree_code_class enumeration constants
4931         instead of code letters.
4932         * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
4933         new tree-class enumeration constants.
4934
4935 2004-09-13  Tom Tromey  <tromey@redhat.com>
4936
4937         PR java/17216:
4938         * class.c (layout_class_method): Put synthetic methods into the
4939         vtable.
4940
4941 2004-09-11  Andrew Pinski  <apinski@apple.com>
4942
4943         * Make-lang.in (java/ggc-none.c): Change dependency
4944         for ggc.h into $(GGC_H).
4945
4946 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
4947
4948         * Make-lang.in (java/win32-host.o): Add dependency on
4949         coretypes.h.
4950         * win32-host.c: Add includes for coretypes.h, jcf.h
4951
4952 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
4953
4954         * Make-lang.in (GCJH_OBJS): Change dependency from
4955         ggc-none.o to java/ggc-none.o
4956         (JCFDUMP_OBJS): Likewise.
4957         (java/ggc-none.o): New target.
4958
4959 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
4960
4961         * boehm.c (get_boehm_type_descriptor):  Adjust build_int_cst calls.
4962         * class.c (build_utf8_ref, build_static_field_ref,
4963         make_field_value, make_method_value, get_dispatch_table,
4964         make_class_data, emit_symbol_table, emit_catch_table): Likewise.
4965         * constants.c (get_tag_node, build_ref_from_constant_pool,
4966         build_constants_constructor): Likewise.
4967         * decl.c (java_init_decl_processing): Likewise.
4968         * expr.c (build_java_array_length_access, build_newarray,
4969         expand_java_multianewarray, expand_java_pushc, expand_iinc,
4970         build_java_binop, build_field_ref, expand_java_add_case,
4971         expand_java_call, build_known_method_ref, build_invokevirtual,
4972         build_invokeinterface, build_jni_stub): Likewise.
4973         * java-gimplify.c (java_gimplify_new_array_init): Likewise.
4974         * jcf-parse.c (get_constant): Likewise.
4975         * lex.c (do_java_lex): Likewise.
4976         * parse.y (patch_binop, patch_unaryop, patch_cast,
4977         build_newarray_node, patch_newarray): Likewise.
4978         * resource.c (compile_resource_data): Likewise.
4979         * typeck.c (build_prim_array_type): Likewise.
4980
4981 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
4982
4983         * decl.c (java_init_decl_processing): Adjust
4984         initialize_sizetypes call.
4985
4986 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
4987
4988         * jv-scan.c (fancy_abort): Add.
4989
4990 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
4991
4992         * expr.c (build_java_arrayaccess): Use convert to change
4993         len's type.
4994
4995 2004-08-19  Bryce McKinlay  <mckinlay@redhat.com>
4996
4997         * class.c (make_local_function_alias): Allocate extra space for 'L'
4998         in name buffer. Reported by Thomas Neumann.
4999
5000 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
5001
5002         * parse.h (JAVA_RADIX10_FLAG): Rename to ...
5003         (JAVA_NOT_RADIX10_FLAG): ... here.  Invert meaning.
5004         * lex.c (do_java_lex): Adjust.
5005         (error_if_numeric_overflow): Likewise.
5006
5007 2004-08-18  Andrew Pinski  <apinski@apple.com>
5008
5009         * class.c (make_local_function_alias): Only make a new decl if we
5010         support alias attribute on all decls.
5011
5012 2004-08-18  Bryce McKinlay  <mckinlay@redhat.com>
5013
5014         * class.c (make_local_function_alias): New function. Create local
5015         alias for public method DECL.
5016         (make_method_value): Use make_local_function_alias.
5017         * parse.y (craft_constructor): Don't special-case anonymous classes.
5018         Always set ctor_name to init_identifier_node.
5019         (lookup_method_invoke): Call layout_class_method when creating
5020         anonymous class constructor.
5021
5022 2004-08-18  Richard Henderson  <rth@redhat.com>
5023
5024         * java-gimplify.c (java_gimplify_expr): Move '2' handling into
5025         default case.  Treat '<' similarly.  Update for
5026         is_gimple_formal_tmp_var name change.
5027
5028 2004-08-17  Andrew Haley  <aph@redhat.com>
5029
5030         * lang.c (lang_printable_name): Obey verbose flag.
5031         * parse.y (constructor_circularity_msg): Set VERBOSE arg for
5032         lang_printable_name().
5033         (verify_constructor_circularity, get_printable_method_name,
5034         check_abstract_method_definitions, java_check_regular_methods,
5035         java_check_abstract_methods, check_inner_class_access,
5036         fix_constructors, patch_method_invocation, patch_return):
5037         Likewise.
5038         * expr.c (pop_type_0): Likewise.
5039
5040         * java-tree.h (lang_printable_name_wls): Delete.
5041
5042 2004-08-16  Tom Tromey  <tromey@redhat.com>
5043
5044         PR java/8473:
5045         * parse.y (primary): Changed for initialized and uninitialized
5046         array creations.
5047         (array_access): Handle array_creation_initialized.
5048         (array_creation_expression): Split into
5049         array_creation_initialized and array_creation_uninitialized.
5050
5051 2004-08-16  Andrew Haley  <aph@redhat.com>
5052
5053         * jcf-write.c (find_constant_index): Canonicalize NaNs when
5054         generating bytecode.
5055
5056 2004-08-16  Elliot Lee <sopwith@redhat.com>
5057
5058         PR java/9677
5059         * jcf-parse.c (java_parse_file): Handle filenames with embedded
5060         spaces, and quoted filelists.
5061
5062 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
5063
5064         * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
5065         * class.c (build_utf8_ref, build_static_field_ref,
5066         make_field_value, make_method_value, get_dispatch_table,
5067         make_class_data, emit_symbol_table, emit_catch_table): Likewise.
5068         * constants.c (get_tag_node,  build_ref_from_constant_pool,
5069         build_constants_constructor): Likewise.
5070         * decl.c (java_init_decl_processing): Likewise.
5071         * expr.c (build_java_array_length_access, build_newarray,
5072         expand_java_multianewarray, expand_java_pushc, expand_iinc,
5073         build_java_binop, build_field_ref, expand_java_add_case,
5074         expand_java_call, build_known_method_ref, build_invokevirtual,
5075         build_invokeinterface, build_jni_stub): Likewise.
5076         * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5077         * jcf-parse.c (get_constant): Likewise.
5078         * lex.c (do_java_lex): Likewise.
5079         * parse.y (patch_binop, patch_unaryop, patch_cast,
5080         build_null_of_type, patch_newarray): Likewise.
5081         * resource.c (compile_resource_data): Likewise.
5082         * typeck.c (build_prim_array_type): Likewise.
5083
5084 2004-08-10  Bryce McKinlay  <mckinlay@redhat.com>
5085
5086         * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
5087         Don't create BLOCK here or call java_gimplify_block.
5088
5089 2004-08-09  H.J. Lu  <hongjiu.lu@intel.com>
5090
5091         * java-tree.h (flag_deprecated): Removed.
5092         * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
5093         * parse.y (check_deprecation): Check warn_deprecated instead of
5094         flag_deprecated.
5095
5096 2004-08-06  Kelley Cook  <kcook@gcc.gnu.org>
5097
5098         * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
5099         flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
5100         flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
5101         flag_check_references, flag_extraneous_semicolon, flag_deprecated,
5102         flag_force_classes_archive_check, flag_optimize_sci,
5103         flag_indirect_dispatch): Remove explicit declarations.
5104         * lang.opt: Add implicit declare/define/assign.  Remove obsolete
5105         final comment.
5106
5107 2004-08-05  Michael Chastain  <mec.gnu@mindspring.com>
5108
5109         PR bootstrap/14893
5110         * Make-lang.in (java.install-man): Install from either build
5111         tree or source tree, whichever has the file first.
5112
5113 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
5114
5115         * jcf-parse.c (get_constant): Adjust force_fit_type call.
5116         * lex.h (SET_LVAL_NODE_TYPE): Remove.
5117         * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
5118         (do_java_lex): Likewise. Adjust force_fit_type call.
5119
5120 2004-08-04  Roger Sayle  <roger@eyesopen.com>
5121             Andrew Haley  <aph@redhat.com>
5122
5123         * typeck.c (convert_ieee_real_to_integer): Call fold on the range
5124         checking trees as they're being built.
5125         (convert): Call convert_ieee_real_to_integer if we're
5126         converting a constant, even if we're writing a class file.
5127
5128 2004-08-02  Bryce McKinlay  <mckinlay@redhat.com>
5129
5130         PR java/16701
5131         * parse.y (fold_constant_for_init): Call resolve_field_access with
5132         correct current_class context.
5133
5134 2004-08-01  Roger Sayle  <roger@eyesopen.com>
5135
5136         * decl.c (update_aliases, initialize_local_variable): Replace calls
5137         to build with calls to buildN.
5138         * java-gimplify.c (java_gimplify_modify_expr): Likewise.
5139         * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
5140         * parse.h (BUILD_THROW): Likewise.
5141         * parse.y (switch_expression, synchronized_statement,
5142         catch_clause_parameter, array_creation_expression,
5143         conditional_expression, make_qualified_name,
5144         resolve_qualified_expression_name, patch_method_invocation,
5145         patch_invoke, build_method_invocation, build_new_invocation,
5146         build_assignment, patch_assignment, build_binop, patch_binop,
5147         build_string_concatenation, build_incdec, patch_unaryop,
5148         patch_cast, build_array_ref, build_newarray_node, patch_newarray,
5149         patch_return, build_if_else_statement, build_labeled_block,
5150         build_new_loop, build_loop_body, build_bc_statement,
5151         build_assertion, encapsulate_with_try_catch, build_try_statement,
5152         build_try_finally_statement, patch_synchronized_statement,
5153         emit_test_initialization): Likewise, replace build with buildN.
5154
5155 2004-07-28  Eric Christopher  <echristo@redhat.com>
5156
5157         * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
5158         (java_unsafe_for_reeval): Ditto.
5159
5160 2004-07-26    <hp@bitrange.com>
5161
5162         * parse.y (build_super_invocation): Adjust declaration order to
5163         avoid declaration after statement.
5164
5165 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
5166
5167         * decl.c: Rename all identifiers named `class' to `cl'.
5168
5169 2004-07-25  Richard Henderson  <rth@redhat.com>
5170
5171         * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
5172
5173 2004-07-23  Mike Stump  <mrs@apple.com>
5174
5175         * boehm.c (set_bit): Improve type safety wrt unsignedness.
5176         * gjavah.c (throwable_p, decode_signature_piece,
5177         print_full_cxx_name, print_include, add_namelet, add_class_decl,
5178         process_file): Likewise.
5179         * jcf-dump.c (main): Likewise.
5180         * jcf-io.c (read_zip_member): Likewise.
5181         * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
5182         give_name_to_class, get_class_constant): Likewise.
5183         * jcf-write.c (find_constant_wide, push_long_const,
5184         generate_classfile): Likewise.
5185         * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
5186         * parse.y (read_import_dir): Likewise.
5187         * typeck.c (parse_signature_type): Likewise.
5188         * verify.c (verify_jvm_instructions): Likewise.
5189         * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
5190
5191 2004-07-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
5192
5193         * Make-lang.in: Replace rmic and rmiregistry references with
5194         grmic and grmiregistry.
5195         * gcj.texi: Likewise.
5196
5197 2004-07-20  Andrew Haley  <aph@redhat.com>
5198
5199         PR java/16431.
5200         * verify.c (verify_jvm_instructions): Comment change only.
5201
5202         * typeck.c (build_java_array_type): Add size field to array name.
5203
5204         * java-tree.h (LOCAL_SLOT_P): New.
5205         (update_aliases): Add PC argument.
5206         (pushdecl_function_level): New function.
5207
5208         * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
5209         MODIFY_EXPR, and SAVE_EXPR.
5210         (java_gimplify_modify_expr): New function.
5211
5212         * expr.c (push_type_0): Call find_stack_slot() to create temporary.
5213         (expand_iinc): Pass PC to update_aliases().
5214         (STORE_INTERNAL): Likewise.
5215         (process_jvm_instruction): Likewise.
5216
5217         * decl.c (base_decl_map): New variable.
5218         (uniq): New variable.
5219         (update_aliases): Rewrite with more thorough checking.
5220         (debug_variable_p): New function.
5221         (push_jvm_slot): Don't initialize local variable.  Don't pushdecl.
5222         (check_local_named_variable): Delete whole function.
5223         (initialize_local_variable): New function.
5224         (check_local_unnamed_variable): Add checks and comments.
5225         (find_local_variable): Rewrite.
5226         (java_replace_reference): New function.
5227         (function_binding_level): New variable.
5228         (pushdecl_function_level): New function.
5229         (maybe_pushlevels): Set DECL_LOCAL_END_PC.
5230         (maybe_pushlevels): Call pushdecl() on each of the new decls.
5231         (start_java_method): Reset uniq.  Create base_decl_map.  Set
5232         function_binding_level.
5233         (end_java_method): Null unused fields to save memory.
5234
5235 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
5236
5237         * class.c (add_interface_do): Remove.
5238         (set_super_info, interface_of_p, maybe_add_interface,
5239         add_interface, make_class_data, layout_class,
5240         add_miranda_methods): Adjust BINFO accessors and addition.
5241         * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
5242         accessors.
5243         * jcf-write.c (generate_classfile): Likewise.
5244         * parse.y (patch_anonymous_class, check_inner_circular_reference,
5245         check_circular_reference, java_complete_class,
5246         check_abstract_method_definitions,
5247         java_check_abstract_method_definitions,
5248         check_interface_throws_clauses, java_check_abstract_methods,
5249         lookup_java_interface_method2,
5250         find_applicable_accessible_methods_list): Adjust BINFO accessors
5251         and addition.
5252         * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
5253
5254 2004-07-18  Roger Sayle  <roger@eyesopen.com>
5255
5256         * builtins.c (max_builtin, min_builtin,
5257         java_build_function_call_expr): Replace calls to build with buildN.
5258         * class.c (build_class_ref, build_static_field_ref,
5259         get_dispatch_table, make_class_data, layout_class_method): Likewise.
5260         * constants.c (build_ref_from_constant_pool): Likewise.
5261         * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
5262         add_stmt_to_compound): Likewise.
5263         * except.c (build_exception_object_ref, expand_end_java_handler):
5264         Likewise.
5265         * java-gimplify.c (java_gimplify_case_expr,
5266         java_gimplify_default_expr, java_gimplify_block,
5267         java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
5268         * jcf-write.c (generate_bytecode_insns): Likewise.
5269         * typeck.c (convert_ieee_real_to_integer): Likewise.
5270
5271 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
5272
5273         * java-tree.h (builtin_function): Declare.
5274
5275 2004-07-16  Steven Bosscher  <stevenb@suse.de>
5276
5277         * parse.y (java_complete_expand_methods, java_expand_classes): Don't
5278         abuse restore_line_number_status.
5279
5280 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
5281
5282         g++/15861
5283         * jcf-parse.c (java_emit_static_constructor): Specify default
5284         priority.
5285
5286 2004-07-13  Per Bothner  <per@bothner.com>
5287
5288         * java-tree.h (all_class_filename):  Remove useless macro.
5289         (enum java_tree_index):  Remove JTI_ALL_CLASS_FILENAME constant.
5290         (BUILD_FILENAME_IDENTIFIER_NODE):  Remove useless macro.
5291         * parse.y (java_parser_context_restore_global):  Replace
5292         BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
5293         * jcf-parse.c (read_class, java_parse_file):  Likewise.
5294
5295 2004-07-12  Bryce McKinlay  <mckinlay@redhat.com>
5296
5297         PR java/16474
5298         gjavah.c (print_field_info): Emit constant only if field is static.
5299
5300 2004-07-11  Roger Sayle  <roger@eyesopen.com>
5301
5302         * expr.c (java_truthvalue_conversion, flush_quick_stack,
5303         java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
5304         build_java_ret, build_java_throw_out_of_bounds_exception,
5305         build_java_array_length_access, java_check_reference,
5306         build_java_arrayaccess, build_java_arraystore_check, build_newarray,
5307         build_anewarray, expand_java_multianewarray, expand_java_arraystore,
5308         expand_java_arrayload, build_java_monitor, expand_java_return,
5309         expand_load_internal, expand_java_NEW, build_get_class,
5310         build_instanceof, expand_java_CHECKCAST, expand_iinc,
5311         build_java_soft_divmod, build_java_binop, build_field_ref,
5312         expand_compare, expand_java_goto, expand_java_switch,
5313         expand_java_add_case, build_class_init, build_known_method_ref,
5314         invoke_build_dtable, build_invokevirtual, build_invokeinterface,
5315         expand_invoke, build_jni_stub, expand_java_field_op,
5316         java_expand_expr, expand_byte_code, STORE_INTERNAL,
5317         force_evaluation_order, emit_init_test_initialization): Convert
5318         calls to "build" into calls to the prefered "buildN" functions.
5319
5320 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
5321
5322         * java-tree.h (set_block): Remove.
5323         * lang.c (java_clear_binding_stack): New.
5324         (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
5325         * decl.c (struct binding_level): Remove this_block.
5326         (clear_binding_level): Likewise.
5327         (poplevel): Don't handle this_block.
5328         (set_block): Remove.
5329
5330 2004-07-10  Bryce McKinlay  <mckinlay@redhat.com>
5331
5332         * class.c (common_enclosing_context_p): Remove statement with no
5333         side-effects.
5334
5335 2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>
5336
5337         PR java/8618
5338         * parse.y (create_anonymous_class): Remove 'location' argument. Use
5339         the WFL from TYPE_NAME to get line number for the decl. Fix comment.
5340         (craft_constructor): Inherit access flags for implicit constructor
5341         from the enclosing class.
5342         (create_class): Fix comment typo.
5343         (resolve_qualified_expression_name): Pass type of qualifier to
5344         not_accessible_p, not the type in which target field was found.
5345         (not_accessible_p): Handle inner classes. Expand protected
5346         qualifier-subtype check to enclosing instances, but don't apply this
5347         check to static members. Allow protected access to inner classes
5348         of a subtype. Allow private access within common enclosing context.
5349         (build_super_invocation): Get WFL line number info from current
5350         class decl.
5351         (build_incomplete_class_ref): Update for new create_anonymous_class
5352         signature.
5353         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
5354         common_enclosing_instance_p.
5355         * class.c (common_enclosing_context_p): New. Determine if types
5356         share a common enclosing context, even across static contexts.
5357         (common_enclosing_instance_p): Renamed from
5358         common_enclosing_context_p. Determines if types share a common
5359         non-static enclosing instance.
5360         * java-tree.h (common_enclosing_instance_p): Declare.
5361         * jcf-write.c (get_method_access_flags): New. Surpress private flag
5362         for inner class constructors.
5363         (generate_classfile): Use get_method_access_flags.
5364
5365 2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>
5366
5367         * class.c (interface_of_p): Check for null TYPE_BINFO.
5368
5369 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
5370
5371         * class.c (make_class): Do not create binfo here.
5372         (set_super_info): Create it here.
5373         * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
5374
5375 2004-07-08  Richard Henderson  <rth@redhat.com>
5376
5377         * expr.c (case_identity, get_primitive_array_vtable,
5378         java_expand_expr, emit_init_test_initialization): Remove.
5379         * java-tree.h (java_expand_expr): Remove.
5380         * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
5381
5382 2004-07-07  Per Bothner  <per@bothner.com>
5383
5384         * class.c (build_static_field_ref):  Add a NOP_EXPR; otherwise we
5385         get internal error due to mismatched types.
5386
5387         * gcj.texi (Invoking gij):  Document new -verbose:class flag.
5388
5389         * gcj.texi (Linking):   New node.  Document -lgij usage.
5390
5391 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
5392
5393         * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
5394         (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
5395         * java/class.c (set_super_info, class_depth, interface_of_p,
5396         maybe_add_interface, add_interface, make_class_data,
5397         layout_class, add_miranda_methods): Adjust BINFO macros.
5398         * expr.c (can_widen_reference_to, lookup_field): Likewise.
5399         * jcf-write.c (generate_classfile): Likewise.
5400         * parse.y (patch_anonymous_class,
5401         check_inner_circular_reference, check_circular_reference,
5402         java_complete_class, check_abstract_method_definitions,
5403         java_check_abstract_method_definitions,
5404         check_interface_throws_clauses, java_check_abstract_methods,
5405         lookup_java_interface_method2,
5406         find_applicable_accessible_methods_list): Likewise.
5407         * typeck.c (find_method_in_interface): Likewise.
5408         * verify.c (merge_types): Likewise.
5409
5410 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
5411
5412         * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
5413         * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
5414
5415 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
5416
5417         * class.c (make_class): Use make_tree_binfo.
5418         (set_super_info, add_interface_do): Likewise.
5419         * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
5420
5421 2004-07-04  Ranjit Mathew  <rmathew@hotmail.com>
5422
5423         * verify.c: Correct array element access formatting thinko.
5424
5425 2004-07-04  Ranjit Mathew  <rmathew@hotmail.com>
5426
5427         * verify.c: Insert a short blurb at the start referring to the JVMS.
5428         (merge_type_state): Remove redundant nested if statement.
5429         (verify_jvm_instructions): Ensure current_subr is initialised to
5430         NULL_TREE.
5431         Minor formatting fixes all over the place.
5432
5433 2004-07-02  Richard Henderson  <rth@redhat.com>
5434
5435         * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
5436
5437 2004-07-01  Richard Henderson  <rth@redhat.com>
5438
5439         * class.c (registerClass_libfunc): Remove.
5440         (init_class_processing): Don't set it.
5441         (emit_register_classes): Take list_p parameter.  Fill it in
5442         with _Jv_RegisterClass calls.
5443         * decl.c (java_init_decl_processing): Don't call
5444         init_resource_processing.
5445         * jcf-parse.c (java_emit_static_constructor): New.
5446         (java_parse_file): Call it.
5447         * resource.c (registerResource_libfunc): Remove.
5448         (init_resource_processing): Remove.
5449         (write_resource_constructor): Take list_p parameter.  Fill it in
5450         with _Jv_RegisterResource calls.
5451         * java-tree.h: Update prototypes.
5452
5453 2004-06-29  Bryce McKinlay  <mckinlay@redhat.com>
5454
5455         PR java/1262
5456         * class.c (layout_class_method): Do not override package-private
5457         method if its in a different package.
5458         (split_qualified_name): Move here from parse.y. Rename from
5459         breakdown_qualified. Add comment.
5460         (in_same_package): Move here from parse.y. Add comment.
5461         * java-tree.h (break_down_qualified, in_same_package): Declare.
5462         (in_same_package): Likewise.
5463         * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
5464         Callers updated.
5465
5466 2004-06-29  Andrew Haley  <aph@redhat.com>
5467
5468         * except.c (expand_start_java_handler): Push a new binding level.
5469         Don't build a TRY_CATCH_EXPR now, we'll do it later.  Call
5470         register_exception_range() to register where we'll do it.
5471         (expand_end_java_handler): Remove old bogus code.  Replace with
5472         new logic that simply builds TRY_CATCH_EXPRs and inserts them at
5473         the top of the expression we're curently building.
5474         (maybe_end_try): Delete.
5475         * decl.c (binding_level.exception_range): New field.
5476         (clear_binding_level): Add field exception_range.  Reformat.
5477         (poplevel): Call expand_end_java_handler().
5478         (poplevel): Call java_add_stmt only if functionbody is false.
5479         (maybe_poplevels): Don't call maybe_end_try() from here.
5480         (end_java_method): Clear no longer used trees in function decl.
5481         (register_exception_range): New function.
5482         * java-tree.h (register_exception_range, struct eh_range): Declare.
5483
5484 2004-06-28  Bryce McKinlay  <mckinlay@redhat.com>
5485
5486         * jcf-write.c (get_classfile_modifiers): Formatting fixes.
5487
5488 2004-06-27  Ranjit Mathew  <rmathew@hotmail.com>
5489
5490         Formatting fixes.
5491         * expr.c (class_has_finalize_method): Fix method name indentation.
5492         (expand_java_call): Remove K&R style parameter declaration.
5493         (expand_invoke): Fix statement indentation.
5494         (expand_java_field_op): Likewise.
5495         * parse-scan.y: Fix typo.
5496         (reset_report): Fix method name indentation.
5497         * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
5498         line. Fix typos.
5499         * verify.c (verify_jvm_instructions): Document parameters, insert
5500         page break.
5501         * lang.c (lang_init_source): Fix method name indentation.
5502         * class.c (common_enclosing_context_p): Likewise.
5503         (emit_symbol_table): Fix parameter list indentation.
5504         * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
5505         parameter declaration.
5506         * constants.c: Fix copyright notice indentation.
5507         * typeck.c (find_method_in_superclasses): Fix parameter list
5508         indentation.
5509         (find_method_in_interfaces): Likewise.
5510         * zextract.c (makelong): Fix method name indentation.
5511
5512 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
5513
5514         PR java/15715.
5515         * parse.y (create_interface): Set correct access modifiers for
5516         interfaces.
5517         * jcf-write.c (get_classfile_modifiers): New function.
5518         (generate_classfile): Use get_classfile_modifiers, not
5519         get_access_flags.
5520
5521 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
5522
5523         * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
5524         dependency to current parser context, not NULL_TREE, for top-level
5525         classes.
5526         (jdep_resolve_class): Enable member access check for all inner
5527         class dependencies.
5528
5529 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
5530
5531         * parse.y (qualify_and_find): Pass type decl, not identifier, to
5532         load_class.
5533
5534 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
5535
5536         PR java/15734
5537         * expr.c (expand_java_field_op): Ensure that target class for static
5538         field access has been loaded.
5539
5540 2004-06-26  Bryce McKinlay  <mckinlay@redhat.com>
5541             Ranjit Mathew  <rmathew@hotmail.com>
5542
5543         PR java/1207, java/16178
5544         * jcf-parse.c (load_class): Return immediately if passed a type decl
5545         where CLASS_FROM_SOURCE_P is set. Remove FIXME.
5546         * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
5547         before calling load_class.
5548         (qualify_and_find): Likewise.
5549         (find_in_imports_on_demand): Likewise.
5550         (find_applicable_accessible_methods_list): Likewise.
5551
5552 2004-06-24  Bryce McKinlay  <mckinlay@redhat.com>
5553
5554         * parse.y (java_layout_seen_class_methods): Don't call load_class
5555         on class defined by source parser.
5556
5557 2004-06-23  Bryce McKinlay  <mckinlay@redhat.com>
5558
5559         * parse.y (set_nested_class_simple_name_value): Removed.
5560         (java_complete_expand_class): Remove calls to
5561         set_nested_class_simple_name_value.
5562
5563 2004-06-22  Andrew Haley  <aph@redhat.com>
5564             Ranjit Mathew  <rmathew@hotmail.com>
5565
5566         Fixes PR java/16113.
5567         * decl.c (force_poplevels): Remove call to expand_end_bindings.
5568
5569 2004-06-22  Ranjit Mathew  <rmathew@hotmail.com>
5570
5571         * parse.y (create_class): Correct diagnostic message about
5572         java.lang.Object extending anything else.
5573
5574 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5575
5576         * class.c (build_class_ref): Add new operand for COMPONENT_REF.
5577         (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
5578         * constants.c (build_ref_from_constant_pool): Likewise.
5579         * expr.c (build_java_array_length_access): Likewise.
5580         (build_get_class, build_field_ref, build_known_method_ref): Likewise.
5581         (invoke_build_dtable, build_invokevirtual): Likewise.
5582         (build_invokeinterface, java_expand_expr): Likewise.
5583         (emit_init_test_initialization): Likewise.
5584         * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5585         * parse.y (make_qualifed_name, build_array_ref): Likewise.
5586
5587 2004-06-21  Andrew Haley  <aph@redhat.com>
5588
5589         * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
5590         block.
5591
5592 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
5593
5594         * jcf.h (struct JCF): Change java_source, right_zip and finished
5595         to unsigned int.
5596         * lex.h (struct java_lexer): Change hit_eof, read_anything,
5597         byte_swap and use_fallback to unsigned int.
5598         * parse.h (struct _jdep): Change flag0 to unsigned int.
5599
5600 2004-06-17  Ranjit Mathew  <rmathew@hotmail.com>
5601
5602         Fixes PR java/13948
5603         * parse.y (java_layout_seen_class_methods): Ensure class is loaded
5604         before trying to lay out its methods.
5605         * jcf-parse.c (read_class): Track parsed files using canonical paths
5606         obtained via lrealpath from libiberty.
5607         (java_parse_file): Likewise.
5608         (parse_source_file_1): Rename formal parameter to reflect its
5609         modified purpose. Minor formatting fix.
5610
5611 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
5612
5613         * class.c (emit_register_classes): Make the function uninlinable,
5614         do not set current_function_cannot_inline.
5615         * resource.c (write_resource_constructor): Do not reset
5616         flag_inline_functions around rest_of_compilation.
5617
5618 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
5619
5620         PR java/15769
5621         * expr.c (java_truthvalue_conversion): Handle
5622         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
5623         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
5624         i.e. return the expression.
5625
5626 2004-06-03 Mark G. Adams  <mark.g.adams@sympatico.ca>
5627
5628         * gjavah.c: Include version.h
5629
5630 2004-05-31  Bryce McKinlay  <mckinlay@redhat.com>
5631
5632         * jcf-write.c (generate_bytecode_conditional): Correct handling
5633         of unordered conditionals. Add comment.
5634
5635 2004-05-29  Ranjit Mathew  <rmathew@hotmail.com>
5636             Per Bothner  <per@bothner.com>
5637
5638         * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
5639         local variable was initialised upon declaration.
5640         * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
5641         variable was final and initialised upon declaration.
5642         * check-init.c (check_final_reassigned): Give error only if a blank
5643         final is not definitely unassigned or if an initialised final is
5644         reassigned.
5645         (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
5646         assignment expressions. Remove case MODIFY_EXPR, label do_default.
5647         (check_init): Perform initialised-variable-removing-optimisation
5648         only on non-final local variables.
5649
5650 2004-05-28  Bryce McKinlay  <mckinlay@redhat.com>
5651
5652         * jcf-write.c (generate_bytecode_conditional): Handle binops
5653         UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
5654         and LTGT_EXPR.
5655         (generate_bytecode_insns): Likewise.
5656
5657 2004-05-28  Bryce McKinlay  <mckinlay@redhat.com>
5658
5659         * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
5660         UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
5661
5662 2004-05-28  Bryce McKinlay  <mckinlay@redhat.com>
5663
5664         * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
5665         (Mixing with C++): Document JvAllocBytes and RawDataManaged.
5666
5667 2004-05-26  Bryce McKinlay  <mckinlay@redhat.com>
5668
5669         * decl.c (struct binding_level): Add GTY marker. Compile
5670         binding_depth unconditionally.
5671         (current_binding_level, free_binding_level, global_binding_level):
5672         Likewise.
5673         (clear_binding_level): Unconditionally set binding_depth.
5674         (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
5675
5676 2004-05-26  Bryce McKinlay  <mckinlay@redhat.com>
5677
5678         * lex.c (java_new_lexer): Set 'encoding'.
5679         (java_read_char): Improve error message for unrecognized characters.
5680         * lex.h (struct java_lexer): New field 'encoding'.
5681
5682 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
5683
5684         * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
5685
5686 2004-05-21  Mark Wielaard  <mark@klomp.org>
5687
5688         * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
5689         extern.
5690
5691 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
5692
5693         * typeck.c: Remove non-printable character 160.
5694
5695 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
5696
5697         * check-init.c: Correct minor typos.
5698
5699 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5700
5701         * Make-lang.in, expr.c, java-gimplify.c: Rename
5702         tree-simple.[ch] to tree-gimple.[ch].
5703
5704 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
5705
5706         * java-gimplify.c (java_gimplify_expr): Correct minor typos.
5707
5708 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5709
5710         Merge from tree-ssa-20020619-branch.  See
5711         ChangeLog.tree-ssa for details.
5712
5713         * Make-lang.in, builtins.c, check-init.c, class.c,
5714         constants.c, decl.c, except.c, expr.c, java-except.h,
5715         java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
5716         lang.c, lang.opt, parse.y, resource.c: Merged.
5717         * java-gimplify.c: New file.
5718
5719 2004-05-10  Andrew Haley  <aph@redhat.com>
5720
5721         * parse.y (create_class): Set TYPE_VFIELD.
5722         * decl.c (java_init_decl_processing): Likewise.
5723
5724         * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
5725         * class.c (make_method_value): Replace DECL_VINDEX with call to
5726         get_method_index().
5727         (get_dispatch_vector): Likewise.
5728         (layout_class_method): Likewise.
5729         Replace set of DECL_VINDEX with call to set_method_index().
5730         (set_method_index): New function.
5731         (get_method_index): New function.
5732         * java-tree.h (set_method_index): New function decl.
5733         (get_method_index): New function decl.
5734
5735 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
5736
5737         * parse.y (check_pkg_class_access): Add new argument
5738         and use it when cl is NULL to call lookup_cl on it.
5739         (parser_check_super_interface): Do not call lookup_cl.
5740         Pass this_decl to check_pkg_class_access and NULL
5741         instead of lookup_cl.
5742         (parser_check_super): Update for change in
5743         check_pkg_class_access.
5744         (do_resolve_class): Likewise.
5745         (process_imports): Likewise.
5746         (find_in_imports_on_demand): Likewise.
5747         (resolve_qualified_expression_name): Likewise.
5748
5749 2004-05-06  Ranjit Mathew  <rmathew@hotmail.com>
5750
5751         Fixes PR java/9685, PR java/15073
5752         * parse.y (accessibility_string): New method.
5753         (not_accessible_field_error): Use accessibility_string()
5754         instead of java_accstring_lookup().
5755         (resolve_qualified_expression_name): Check with
5756         check_pkg_class_access() before allowing access using
5757         qualified names.
5758         Fix comment typo.
5759         Use check_pkg_class_access() instead of not_accessible_p()
5760         for unqualified types.
5761         (not_accessible_p): Use DECL_CONTEXT (member) instead of
5762         REFERENCE for package-private access checking.
5763         (patch_method_invocation): Use accessibility_string() instead
5764         of java_accstring_lookup().
5765
5766 2004-04-30  Ranjit Mathew  <rmathew@hotmail.com>
5767
5768         Fixes PR java/15133
5769         * gjavah.c (struct method_name): Add member is_native.
5770         (overloaded_jni_method_exists_p): Match candidate method only if
5771         it is native.
5772         (print_method_info): Initialise is_native flag from the method's
5773         access flags.
5774
5775 2004-04-30  Roger Sayle  <roger@eyesopen.com>
5776
5777         * builtins.c (java_builtins): Add acos, asin, ceil and floor.
5778         (initialize_builtins): Likewise, define acos, asin, ceil and floor.
5779
5780 2004-04-22  Roger Sayle  <roger@eyesopen.com>
5781
5782         * resource.c (write_resource_constructor): Guard call to possibly
5783         NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
5784
5785 2004-04-19  Bryce McKinlay  <mckinlay@redhat.com>
5786
5787         * class.c (make_class_data): Add new field aux_info.
5788         * decl.c (java_init_decl_processing): Push type and decl for
5789         `aux_info'.
5790
5791 2004-04-15  Bryce McKinlay  <mckinlay@redhat.com>
5792
5793         * expr.c (expand_java_NEW): Don't use size argument for
5794         _Jv_AllocObject calls.
5795         * parse.y (patch_invoke): Likewise.
5796
5797 2004-04-12  Bryce McKinlay  <mckinlay@redhat.com>
5798
5799         * expr.c (build_invokeinterface): Remove unused variables to
5800         fix warnings.
5801
5802 2004-04-12  Bryce McKinlay  <mckinlay@redhat.com>
5803
5804         * class.c (get_interface_method_index): New function. Return dispatch
5805         index for interface method.
5806         (make_method_value): For interface methods, set index field to
5807         iface dispatch index, not DECL_VINDEX.
5808         * expr.c (build_invokeinterface): Use get_interface_method_index.
5809
5810 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5811
5812         * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
5813
5814 2004-03-31  Andrew Haley  <aph@redhat.com>
5815
5816         PR java/14104
5817         * jcf-io.c (opendir_in_zip): Tidy up error handling.
5818
5819 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
5820
5821         * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
5822         form of GTY markers.
5823
5824 2004-03-25  Marcus Meissner  <meissner@suse.de>
5825
5826         PR java/14689:
5827         * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
5828
5829 2004-03-23  Tom Tromey  <tromey@redhat.com>
5830
5831         PR java/14315:
5832         * jcf-write.c (make_class_file_name): Don't report if mkdir
5833         failed with EEXIST.
5834
5835 2004-03-23  Tom Tromey  <tromey@redhat.com>
5836
5837         * gcj.texi (Extensions): Document GCJ_PROPERTIES.
5838
5839 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5840
5841         * class.c, gjavah.c, lang.c: Fix comment typos.
5842         * gcj.texi: Fix typos.
5843
5844 2004-03-19  Per Bothner  <per@bothner.com>
5845
5846         * gcj.texi (Code Generation):  Document new flags and assert defaults.
5847
5848         * class.c (assume_compiled_node_struct):  Rename type to
5849         class_flag_node_struct, as it is now also used for enable_assertions.
5850         Rename assume_compiled_node typedef.  Rename excludep field to value.
5851         (find_assume_compiled_node):  Rename function to find_class_flag_node.
5852         Minor optimization - avoid needless strlen.
5853         (add_assume_compiled):  Some tweaking and optimization.
5854         Rename and generalize to add_class_flag takem an extra parameter.
5855         (add_assume_compled):  New just calls add_class_flag.
5856         (add_enable_assert, enable_assertions):  New functions.
5857         (enable_assert_tree):  New static.
5858         * java-tree.h (add_enable_assert, enable_assertions): New declarations.
5859         * lang.opt (fenable-assertions, fenable-assertions=,
5860         fdisable-assertions, fdisable-assertions=):  New options.
5861         * lang.c (java_handle_option):  Handle new options.
5862         * parse.y (build_incomplete_class_ref):  Handle class$ in an inner
5863         class in an interface - create helper class nested in outer interface.
5864         (build_assertion):  Short-circuit if enable_assertions is false.
5865
5866 2004-03-18  Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5867
5868         * java-tree.h: Changes throughout to add checking to macros
5869         and numerous whitespace changes.
5870         (VAR_OR_FIELD_CHECK): New macro.
5871         * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
5872         FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
5873
5874 2004-03-16  Per Bothner  <per@bothner.com>
5875
5876         * jcf-jump.c (options):  New --print-constants option.
5877         * gcj.texi (Invoking jcf-dump):  Document --print-constants.
5878
5879         * jcf-dump.c (flag_print_constant_pool):  Default to off.
5880         (print_constant_terse_with_index):  New helper function.
5881         (various places):  Check flag_print_constant_pool where missing.
5882         (main):  If verbose set flag_print_constant_pool.
5883         (HANDLE_INNERCLASSES_ATTRIBUTE):  Null inner class name is anonymous.
5884
5885 2004-03-15  Andrew Haley  <aph@redhat.com>
5886
5887         PR java/14581
5888         * parse.y (java_complete_lhs): Check that final variable has an
5889         initializer.
5890
5891 2004-03-12  Andrew Haley  <aph@redhat.com>
5892
5893         PR java/14551
5894         * typeck.c (convert): Clear TREE_OVERFLOW after an integer
5895         conversion.
5896
5897 2004-02-29  Roger Sayle  <roger@eyesopen.com>
5898
5899         * jcf-parse.c (java_parse_file): Handle the case that input_filename
5900         is NULL.
5901
5902 2004-02-27  Per Bothner  <per@bothner.com>
5903
5904         * parse.y (build_assertion):  Re-do 02-25 change following Jeff Sturm
5905         suggestion:  Use build_incomplete_class_ref.
5906         This fixes PR java/13508, java/11714.
5907
5908 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5909
5910         * java/parse.h: Update copyright.
5911
5912 2004-02-26  Andrew Haley  <aph@redhat.com>
5913
5914         PR java/14231:
5915         * parse.y (check_interface_throws_clauses): Check for
5916         !METHOD_INVISIBLE (iface_method).
5917         * class.c (layout_class_methods): Check for CLASS_INTERFACE as
5918         well as CLASS_ABSTRACT.
5919
5920 2004-02-25  Per Bothner  <per@bothner.com>
5921
5922         * parse.y (build_assertion):  If we're in an inner class, create the
5923         class$ helper routine in the outer class.
5924
5925 2004-02-19  Richard Henderson  <rth@redhat.com>
5926
5927         * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
5928
5929 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
5930
5931         * Make-lang.in (java.install-man): Add extra dependencies.
5932
5933 2004-02-13  Geoffrey Keating  <geoffk@apple.com>
5934
5935         * Make-lang.in: Install man pages under the same names
5936         (possibly transformed) as the program they document.
5937
5938 2004-02-10  Joseph S. Myers  <jsm@polyomino.org.uk>
5939
5940         * gjavah.c: Include "intl.h".
5941         (error): New function.
5942         (main): Call gcc_init_libintl.
5943         (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
5944         print_stub_or_jni, process_file, main): Use error rather than
5945         fprintf.
5946         (print_method_info, usage, help, version, main): Mark strings for
5947         translation with _.  Avoid splitting up sentences.  Send
5948         information messages to stdout.
5949         * jcf-dump.c: Include "intl.h".
5950         (main): Call gcc_init_libintl.
5951         (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
5952         Mark error, usage and version messages for translation with _.
5953         Avoid splitting up sentences.
5954         * jv-scan.c: Include "intl.h".
5955         (fatal_error, warning): Change parameter s to msgid.  Translate
5956         messages.
5957         (main): Call gcc_init_libintl.
5958         (usage, help, version): Mark error, usage and version messages for
5959         translation with _.  Avoid splitting up sentences.
5960         * jvgenmain.c: Include "intl.h".
5961         (main): Call gcc_init_libintl.
5962         (usage, main): Mark error messages for translation with _.
5963         * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
5964         JVGENMAIN_OBJS): Add intl.o.
5965         (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
5966         java/jvgenmain.o): Update dependencies.
5967
5968 2004-02-08  Per Bothner  <per@bothner.com>
5969
5970         * parse.y (resolve_qualified_expression_name):  In case of inaccessible
5971         class don't use not_accessible_field_error, which can get confused.
5972
5973 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
5974
5975         Make-lang.in (po-generated):  Delete.
5976
5977 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
5978
5979         * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
5980         Depend on target.h.
5981         * decl.c: Include target.h.
5982         (start_java_method): Replace PROMOTE_PROTOTYPES with
5983         targetm.calls.promote_prototypes.
5984         * expr.c: Include target.h.
5985         (pop_arguments): Replace PROMOTE_PROTOTYPES with
5986         targetm.calls.promote_prototypes.
5987         * parse.y: Include target.h.
5988         (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
5989         with targetm.calls.promote_prototypes.
5990
5991 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
5992
5993         * typeck.c: Update copyright.
5994
5995 2004-02-02  Tom Tromey  <tromey@redhat.com>
5996
5997         * decl.c (java_init_decl_processing): Remove duplicate
5998         gnu/gcj/RawData.
5999
6000 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
6001
6002         * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
6003
6004 2004-01-28  Andrew Pinski  <pinskia@physics.uc.edu>
6005
6006         * expr.c (build_field_ref): Move variable
6007         definition up.
6008
6009 2004-01-28  Andrew Haley  <aph@redhat.com>
6010
6011         * expr.c (build_field_ref): Widen field offset.
6012
6013 2004-01-27  Andrew Haley  <aph@redhat.com>
6014
6015         java/13273
6016         * parse.y (check_interface_throws_clauses): Make sure class_decl
6017         has been loaded.
6018
6019 2004-01-22  Jeff Sturm  <jsturm@one-point.com>
6020
6021         PR java/13733
6022         * parse.y (patch_assignment): Don't modify lhs_type for
6023         reference assignments.
6024
6025 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
6026
6027         * Make-lang.in: Replace $(docdir) with doc.
6028         (java.info, java.srcinfo, java.man, java.srcman): New rules.
6029         (java.install-man): Revamp rule.
6030
6031 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
6032
6033         * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
6034         GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
6035         instead of deferred backquote.
6036
6037 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
6038
6039         * typeck.c (find_method_in_interfaces): Move variable
6040         definition up.
6041
6042 2004-01-16  Andrew Haley  <aph@redhat.com>
6043
6044         PR java/13273:
6045         * typeck.c (shallow_find_method): New.
6046         (find_method_in_superclasses): New.
6047         (find_method_in_interfaces): New.
6048         (lookup_do): Rewrite.
6049         * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
6050
6051         * jcf-parse.c (read_class): Save and restore output_class.
6052         * decl.c (java_expand_body): Set output_class from fndecl.
6053
6054 2004-01-15  Michael Chastain  <mec.gnu@mindspring.com>
6055
6056         * class.c (gen_indirect_dispatch_tables): Fix string length
6057         calculations.
6058
6059 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
6060
6061         * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
6062         (java.srcextra): Copy above back to source directory if requested.
6063         (po-generated): Delete reference to $(parsedir).
6064         (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
6065         Use implicit rule.
6066
6067 2004-01-14  Jan Hubicka  <jh@suse.cz>
6068
6069         * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
6070         estimation.
6071
6072 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
6073
6074         * java-tree.h (java_expand_expr): Change prototype.
6075         * expr.c (java_expand_expr): Add alt_rtl parameter.
6076
6077 2004-01-09  Andrew Haley  <aph@redhat.com>
6078
6079         PR java/12755:
6080         * parse.y (java_fix_constructors):  Set output_class.
6081         (java_reorder_fields): Likewise.
6082         (java_layout_classes): Likewise.
6083         (java_expand_classes): Generate indirect dispatch tables.
6084         (java_expand_classes): Set output_class.
6085         (java_finish_classes): Likewise.
6086         * lang.c (java_init): Turn on always_initialize_class_p if we're
6087         using indirect dis[atch.
6088         (java_decl_ok_for_sibcall): Use output_class, not current_class.
6089         (java_get_callee_fndecl): Use class local atable.
6090         * jcf-parse.c
6091         (always_initialize_class_p): Decl moved to java-tree.h.
6092         (HANDLE_CLASS_INFO): Set output_class.
6093         (read_class): Likewise.
6094         (parse_class_file): Call gen_indirect_dispatch_tables.
6095         (parse_zip_file_entries): Set output_class.
6096         (java_parse_file): Set output_class.  Don't emit symbol tables.
6097         * java-tree.h (output_class): New.
6098         Remove global declarations for otable, atable, and ctable.
6099         (always_initialize_class_p): moved here from decl.c.
6100         (DECL_OWNER): New.
6101         (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
6102         TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
6103         TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
6104         (struct lang_type): Add otable_methods, otable_decl,
6105         otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
6106         ctable_decl, catch_classes, type_to_runtime_map.
6107         * expr.c (build_field_ref): Make otable, atable, and ctable class
6108         local rather than global.
6109         (build_known_method_ref): Likewise.
6110         (build_invokeinterface): Likewise.
6111         (java_expand_expr): Pass runtime type (rather than actual type) to
6112         expand_start_catch.
6113         * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
6114         this class.  Look up each class in that map to delete duplicates.
6115         (expand_end_java_handler): Pass runtime type (rather than actual
6116         type) to expand_start_catch.
6117         * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
6118         (do_nothing): New.
6119         (java_init_decl_processing): Rearrange things.  Remove global
6120         declarations of otable, atable, and ctable.
6121         (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
6122         (java_expand_body): Set output_class.
6123         * constants.c (build_constant_data_ref): Use output_class, not
6124         current_class.
6125         (alloc_name_constant): Likewise.
6126         * class.c (gen_indirect_dispatch_tables): New.
6127         (build_class_ref): Generate hard reference to superclass, even if
6128         using indirect dispatch.
6129         (build_static_field_ref): Use class local atable.
6130         (make_class_data): Generate hard reference to superclass, even if
6131         using indirect dispatch.
6132         Generate symbolic references to interfaces when using indirect
6133         dispatch.
6134         (make_class_data): Emit otable, atable, and ctable.
6135         Make otable, atable, and ctable class local rather than global.
6136         (emit_catch_table): Make otable, atable, and ctable class local
6137         rather than global.
6138
6139 2003-12-25  Andrew Pinski  <pinskia@physics.uc.edu>
6140
6141         * parse.y (catch_clause_parameter): Fix typo.
6142
6143         PR java/13404
6144         * parse.y: (catch_clause_parameter): Return early if $3, aka
6145         formal_parameter, is null.
6146
6147 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
6148
6149         * class.c: Remove uses of "register" specifier in
6150         declarations of arguments and local variables.
6151         * decl.c: Likewise.
6152         * expr.c: Likewise.
6153         * gjavah.c: Likewise.
6154         * jcf-dump.c: Likewise.
6155         * jcf-io.c: Likewise.
6156         * jcf-parse.c: Likewise.
6157         * jcf-write.c: Likewise.
6158         * keyword.h: Likewise.
6159         * parse.y: Likewise.
6160         * typeck.c: Likewise.
6161         * verify.c: Likewise.
6162
6163 2003-12-06  Kelley Cook  <kcook@gcc.gnu.org>
6164
6165         * Make-lang.in (GCJ_CROSS_NAME): Delete.
6166         (java.install_common, java.install-man): Adjust for above.
6167         (java.uninstall): Likewise.
6168
6169 2003-12-03  Michael Koch  <konqueror@gmx.de>
6170
6171         * class.c (make_class_data):
6172         Push field value to 'hack_signers' instead of 'signers'.
6173         * decl.c (java_init_decl_processing):
6174         Push field 'hack_signers' instead of 'signers'.
6175
6176 2003-12-03  Zack Weinberg  <zack@codesourcery.com>
6177
6178         * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
6179         including iconv.h.
6180
6181 2003-12-03  Ralph Loader  <rcl@ihug.co.nz>
6182
6183         PR java/12374:
6184         * parse.y (qualify_ambiguous_name): Remove lots of broken
6185         field access processing - there's no need to do that here,
6186         because we have resolve_field_access.  Remove
6187         RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
6188         * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
6189         used.
6190
6191 2003-12-01  Jeff Sturm  <jsturm@one-point.com>
6192
6193         Fix PR java/13237
6194         * parse.y (java_complete_lhs): Save location prior to patching
6195         CALL_EXPR.
6196
6197 2003-11-25  Mohan Embar  <gnustuff@thisiscool.com>
6198
6199         PR java/12548
6200         * resource.c (write_resource_constructor): Append
6201         "_resource" to constructor identifier name.
6202
6203 2003-11-25  Jeff Sturm  <jsturm@one-point.com>
6204
6205         Fix PR java/13183.
6206         * constants.c (cpool_for_class): New function.
6207         (outgoing_cpool): Remove global variable.
6208         (alloc_name_constant): Use cpool_for_class.
6209         (build_constants_constructor): Likewise.
6210         * decl.c (java_expand_body): Set current_class.
6211         * java-tree.h (outgoing_cpool) Remove declaration.
6212         (init_outgoing_cpool): Likewise.
6213         * jcf-parse.c (init_outgoing_cpool): Remove function.
6214         (parse_class_file): Don't call init_outgoing_cpool.
6215         * parse.y (java_complete_expand_methods): Don't call
6216         init_outgoing_cpool.  Don't save outgoing_cpool.
6217         (java_expand_classes): Don't restore outgoing_cpool.
6218         (java_finish_classes): Likewise.
6219
6220 2003-11-24  Mohan Embar  <gnustuff@thisiscool.com>
6221
6222         * Make-lang.in: (java.install-common) Add
6223         symlink for $(target_noncanonical)-gcjh for
6224         native builds.
6225
6226 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6227
6228         * Make-lang.in (java.extraclean): Delete.
6229
6230 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6231
6232         * Make-lang.in (check-java): Add.
6233
6234 2003-11-19  Jeff Sturm  <jsturm@one-point.com>
6235
6236         Fix PR java/13024.
6237         * except.c (prepare_eh_table_type): Allocate variable-sized
6238         buffer `buf' with alloca.
6239
6240 2003-11-17  Jeff Sturm  <jsturm@one-point.com>
6241
6242         Fix PR java/12857.
6243
6244         decl.c (java_init_decl_processing): Don't initialize
6245         class_not_found_type_node, no_class_def_found_type_node.
6246
6247         java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
6248         JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
6249         (class_not_found_type_node, no_class_def_found_type_node):
6250         Don't define.
6251
6252         parse.y (build_dot_class_method_invocation): Add this_class
6253         argument.  Qualify method invocations to a different class.
6254         (create_new_parser_context): Initialize saved_data_ctx to 0.
6255         (java_parser_context_save_global): Initialize saved_data_ctx to 1.
6256         (build_dot_class_method): Don't load classes.  Register
6257         incomplete types.
6258         (build_incomplete_class_ref): Special cases for interfaces
6259         and inner classes.  Move build_dot_class_method call to here...
6260         (patch_incomplete_class_ref): ...from here.  Pass current_class
6261         to build_dot_class_method_invocation.
6262         (build_assertion): Pass class_type to
6263         build_dot_class_method_invocation.
6264         (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
6265
6266 2003-11-17  Jeff Sturm  <jsturm@one-point.com>
6267
6268         Fix PR java/12739.
6269         * java-tree.h (BLOCK_EMPTY_P): Define.
6270         * parse.y (java_complete_lhs): Check for empty blocks
6271         in TRY_FINALLY_EXPR case.
6272
6273 2003-11-17  Andrew Haley  <aph@redhat.com>
6274
6275         * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
6276         (struct lang_decl_var:freed): New variable.
6277         * decl.c (poplevel): Mark local vars that have gone out of scope.
6278         (push_jvm_slot): Don't use the RTL of a var that has gone out of
6279         scope.
6280
6281 2003-11-16  Jason Merrill  <jason@redhat.com>
6282
6283         * Make-lang.in (java.tags): Create TAGS.sub files in each directory
6284         and TAGS files that include them for each front end.
6285
6286 2003-11-15  Tom Tromey  <tromey@redhat.com>
6287
6288         * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
6289
6290 2003-11-12  Jason Merrill  <jason@redhat.com>
6291
6292         PR optimization/12547
6293         * lang.c (java_tree_inlining_walk_subtrees): Just walk
6294         BLOCK_EXPR_BODY directly.
6295
6296 2003-11-12  Andrew Haley  <aph@redhat.com>
6297
6298         PR java/11045
6299         * parse.y (fold_constant_for_init): Check that we really do have a
6300         constant.
6301
6302         PR java/11533
6303         * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
6304         init_test_decls being inlined.
6305
6306         PR java/12890:
6307         * parse.y (do_resolve_class): Check return value from
6308         breakdown_qualified().
6309
6310 2003-11-11  Tom Tromey  <tromey@redhat.com>
6311
6312         PR java/12915:
6313         * parse.y (merge_string_cste): Handle case where we have a
6314         pointer that happens to be zero, not null_pointer_node.
6315
6316 2003-11-10  Tom Tromey  <tromey@redhat.com>
6317
6318         * jcf-parse.c (classify_zip_file): Correctly compare
6319         filename_length against length of manifest file's name.
6320
6321 2003-11-08  Tom Tromey  <tromey@redhat.com>
6322
6323         PR java/12894:
6324         * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
6325
6326 2003-11-06  Andrew Haley  <aph@redhat.com>
6327
6328         * expr.c (java_stack_swap): Make sure destination stack slots are
6329         of the correct type.
6330
6331 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
6332
6333         * Make-lang.in (dvi): Move targets to $(docobjdir).
6334         (gcj.dvi): Simplify rule and adjust target.
6335         (gcj.info): Simplify rule.
6336         (gcj.pod): New intermediate rule.
6337         (gcjh.pod): Likewise.
6338         (jv-scan.pod): Likewise.
6339         (jcf-dump.pod): Likewise.
6340         (gij.pod): Likewise.
6341         (jv-convert.pod): Likewise.
6342         (rmic.pod): Likewise.
6343         (rmiregistry.pod): Likewise.
6344         (gcj.1): Delete.
6345         (gcjh.1): Delete.
6346         (jv-scan.1): Delete.
6347         (jcf-dump.1): Delete.
6348         (gij.1): Delete.
6349         (jv-convert.1): Delete.
6350         (rmic.1): Delete.
6351         (rmiregistry.1): Delete.
6352
6353 2003-11-02  Jeff Sturm  <jsturm@one-point.com>
6354
6355         Fixes PR java/12866.
6356         * parse.y (resolve_qualified_expression_name): Move test
6357         for outer field access methods from here...
6358         (check_thrown_exceptions) ...to here.
6359
6360 2003-11-01  Kelley Cook  <kcook@gcc.gnu.org>
6361
6362         * .cvsignore: Delete.
6363
6364 2003-10-28  Frank Ch. Eigler  <fche@redhat.com>
6365
6366         * verify.c (verify_jvm_instructions): Don't warn about legal
6367         eh binding regions generated for example by jdk 1.4.1.
6368
6369 2003-10-24  David S. Miller  <davem@redhat.com>
6370
6371         * jcf-parse.c (jcf_parse): Fix args to fatal_error().
6372
6373 2003-10-22  Andrew Haley  <aph@redhat.com>
6374
6375         * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
6376         (java_get_callee_fndecl): New.
6377
6378         * jcf-parse.c (java_parse_file): Call emit_catch_table().
6379
6380         * java-tree.h (ctable_decl): New.
6381         (catch_classes):  New.
6382         (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
6383
6384         * decl.c (java_init_decl_processing): Add catch_class_type.
6385         Add ctable_decl.
6386         Add catch_classes field.
6387
6388         * class.c (build_indirect_class_ref): Break out from
6389         build_class_ref.
6390         (make_field_value): Check flag_indirect_dispatch.
6391         (make_class_data): Ditto.
6392         Tidy uses of PUSH_FIELD_VALUE.
6393         Add field catch_classes.
6394         (make_catch_class_record): New.
6395
6396         * java-tree.h (PUSH_FIELD_VALUE): Tidy.
6397
6398 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6399
6400         * jcf-write.c: Follow spelling conventions.
6401         * parse.y: Likewise.
6402
6403 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6404
6405         * ChangeLog: Fix typos.
6406         * expr.c: Fix comment typos.
6407         * jcf-write.c: Likewise.
6408         * lang.c: Likewise.
6409         * lex.c: Likewise.
6410         * mangle.c: Likewise.
6411         * parse-scan.y: Likewise.
6412         * parse.y: Likewise.
6413
6414 2003-10-22  Tom Tromey  <tromey@redhat.com>
6415
6416         * expr.c (expand_byte_code): Only warn about dead bytecode when
6417         extra_warnings is set.
6418
6419 2003-10-22  Bryce McKinlay  <bryce@mckinlay.net.nz>
6420
6421         Fix for PR java/12586.
6422         * mangle.c (find_compression_record_match): Don't iterate through
6423         package namespace elements unless they all match compression_table
6424         entries.
6425
6426 2003-10-20  Kelley Cook  <kcook@gcc.gnu.org>
6427
6428         * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
6429         (generate-manpages): Likewise.
6430         (java.maintainer-clean): Likewise.
6431         (gcj.info): Likewise.
6432         (gcj.1): Likewise.
6433         (gcjh.1): Likewise.
6434         (jv-scan.1): Likewise.
6435         (jcf-dump.1): Likewise.
6436         (gij.1): Likewise.
6437         (jv-convert.1): Likewise.
6438         (rmic.1): Likewise.
6439         (rmiregistry.1): Likewise.
6440         (java.install-man): Likewise.
6441         (parse-scan.o): Move and define complete compile line.
6442         (parse.o): Likewise.
6443         (jcf-tree-inline.o): Move.
6444
6445 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
6446
6447         * Make-lang.in (info): Update dependencies.
6448         (java.install-info): Remove.
6449         ($(srcdir)/java/gcj.info): Replace with ...
6450         ($(docobjdir)/gcj.info): ... this.
6451
6452 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6453
6454         * Make-lang.in: Replace uses of $(target_alias) with
6455         $(target_noncanonical).
6456
6457 2003-10-09  Tom Tromey  <tromey@redhat.com>
6458
6459         * decl.c (java_init_decl_processing): Declare signers field.
6460         * class.c (make_class_data): Set signers field.
6461
6462 2003-10-09  Jason Merrill  <jason@redhat.com>
6463
6464         * parse.y (patch_assignment): Use make_node to create a BLOCK.
6465         * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
6466         POINTER_TYPE.
6467
6468 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
6469
6470         * Make-lang.in (java.info): Replace with ...
6471         (info): ... this.
6472         (java.dvi): Replace with ...
6473         (dvi): ... this.
6474         (java.generated-manpages): Replace with ...
6475
6476 2003-10-03  Kelley Cook  <kelleycook@wideopenwest.com>
6477
6478         * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
6479
6480 2003-10-01  Andrew Haley  <aph@redhat.com>
6481
6482         * jcf-parse.c (java_parse_file): Write otable and atable.
6483         * java-tree.h (atable_methods): New.
6484         (atable_decl): New.
6485         (atable_syms_decl): New.
6486         (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
6487         JTI_ATABLE_SYMS_DECL.  Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
6488         (symbol_*type): Rename method_symbol* to symbol*type.
6489         (emit_offset_symbol_table): Delete.
6490         (emit_symbol_table): New.
6491         (get_symbol_table_index): New.
6492         (atable_type): New.
6493         * expr.c (build_field_ref): Handle flag_indirect_dispatch.
6494         (build_known_method_ref): Likewise.
6495         (get_symbol_table_index): Rename from get_offset_table_index.
6496         Parameterize to allow re-use by differing types of symbol table.
6497         (build_invokevirtual): Pass table to get_offset_table_index.
6498         * decl.c (java_init_decl_processing): Push types and decls for
6499         atable and atable_syyms.
6500         * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
6501         (make_class_data): Add new fields atable and atable_syms.
6502         (emit_symbol_table): Rename from emit_offset_symbol_table.
6503         Parameterize to allow re-use by different types of symbol table.
6504         (build_symbol_entry): Renamed from build_method_symbols_entry.
6505
6506 2003-09-30  Roger Sayle  <roger@eyesopen.com>
6507
6508         * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
6509         semantics for SAVE_EXPR, by caching the result in a temporary.
6510
6511 2003-09-28  Richard Henderson  <rth@redhat.com>
6512
6513         * check-init.c (check_init): Save and restore input_location
6514         instead of file and line separately.
6515         * decl.c (java_expand_body): Likewise.
6516         * jcf-write.c (generate_bytecode_insns): Likewise.
6517         * parse.y (safe_layout_class): Likewise.
6518         * jcf-parse.c (read_class, parse_class_file): Likewise.
6519         (java_parse_file): Use %H for warning locator.
6520
6521 2003-09-28  Roger Sayle  <roger@eyesopen.com>
6522
6523         * expr.c (java_check_reference): Use the semantics of COND_EXPRs
6524         with void-type branches instead of using a COMPOUND_EXPR.
6525
6526 2003-09-28  Jeff Sturm  <jsturm@one-point.com>
6527
6528         * decl.c (java_optimize_inline, dump_function): Remove.
6529         * java-tree.h (java_optimize_inline): Remove declaration.
6530         * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
6531         * parse.y (source_end_java_method, java_expand_classes):
6532         Likewise.  Remove dead code.
6533
6534 2003-09-27  Roger Sayle  <roger@eyesopen.com>
6535
6536         * lang.c (java_init_options): Set flag_evaluation_order.
6537         * expr.c (force_evaluation_order): Don't attempt to force
6538         evaluation order of binary operations using save_expr.
6539         * parse.y (java_complete_lhs): No longer need to call
6540         force_evaluation_order when constructing binary operators.
6541
6542 2003-09-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
6543             Bryce McKinlay  <bryce@mckinlay.net.nz>
6544
6545         PR java/1333:
6546         * parse.y (not_accessible_field_error): New function.
6547         (resolve_expression_name): Check field access permissions.
6548         (resolve_qualified_expression_name): Use
6549         not_accessible_field_error.
6550         (resolve_qualified_expression_name): Likewise.
6551
6552 2003-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6553
6554         * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
6555
6556 2003-09-23  Roger Sayle  <roger@eyesopen.com>
6557
6558         * jcf-write.c (generate_bytecode_insns): Optimize binary operations
6559         with equal operands without side-effects.
6560
6561 2003-09-22  Jeff Sturm  <jsturm@one-point.com>
6562
6563         * decl.c (java_init_decl_processing): Don't emit otable decls
6564         if flag_indirect_dispatch is not set.
6565
6566 2003-09-21  Richard Henderson  <rth@redhat.com>
6567
6568         * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6569         resource.c: Revert.
6570
6571 2003-09-21  Richard Henderson  <rth@redhat.com>
6572
6573         * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6574         resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
6575
6576 2003-09-20  Richard Henderson  <rth@redhat.com>
6577
6578         * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
6579
6580 2003-09-18  Roger Sayle  <roger@eyesopen.com>
6581
6582         * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
6583         * check-init.c (check_init): Likewise.
6584
6585 2003-09-18  Roger Sayle  <roger@eyesopen.com>
6586
6587         * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
6588
6589 2003-09-16  Andrew Haley  <aph@redhat.com>
6590
6591         * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
6592
6593 2003-09-17  Ranjit Mathew  <rmathew@hotmail.com>
6594
6595         Fixes PR java/9577
6596         * mangle.c (find_compression_record_match): Skip
6597         over a "6JArray" (the array template mangled string)
6598         IDENTIFIER_NODE.
6599         (mangle_array_type): Correct minor typo.
6600         (atms): Move definition to the beginning.
6601
6602 2003-09-16  Bryce McKinlay  <bryce@mckinlay.net.nz>
6603
6604         * class.c (add_miranda_methods): Ensure super-interfaces are laid
6605         out. Fix for PR java/12254.
6606
6607 2003-09-11  Richard Henderson  <rth@redhat.com>
6608
6609         * parse.y (source_end_java_method): Update for new
6610         cgraph_finalize_function argument.
6611
6612 2003-09-09  Richard Henderson  <rth@redhat.com>
6613
6614         * parse.y (source_end_java_method): Update call to
6615         cgraph_finalize_function.
6616
6617 2003-09-03  Jeff Sturm  <jsturm@one-point.com>
6618
6619         * decl.c (java_expand_body): New function.
6620         * expr.c (build_class_init): Set DECL_IGNORED_P.
6621         * java-tree.h (start_complete_expand_method,
6622         java_expand_body): Declare.
6623         * jcf-parse.c (cgraph.h): Include.
6624         (java_parse_file): Handle flag_unit_at_a_time.
6625         * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
6626         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
6627         (java_estimate_num_insns): Use walk_tree_without_duplicates.
6628         (java_start_inlining): New function.
6629         * parse.h (java_finish_classes): Declare.
6630         * parse.y: Include cgraph.h.
6631         (block): Don't special-case empty block production.
6632         (craft_constructor): Set DECL_INLINE.
6633         (source_end_java_method): Handle flag_unit_at_a_time.
6634         Replace inline code with call to java_expand_body.
6635         (start_complete_expand_method): Remove static modifier.
6636         (java_expand_method_bodies): Patch function tree for
6637         class initialization and/or synchronization as needed.
6638         Don't begin RTL expansion yet.
6639         (java_expand_classes): Check flag_unit_at_a_time before
6640         calling finish_class.
6641         (java_finish_classes): New function.
6642         (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
6643         (patch_assignment): Set DECL_CONTEXT on temporary variable.
6644         (emit_test_initialization): Set DECL_IGNORED_P.
6645
6646 2003-09-03  Roger Sayle  <roger@eyesopen.com>
6647
6648         * builtins.c (enum builtin_type): Delete unused enumeration.
6649         * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
6650
6651 2003-08-28  Tom Tromey  <tromey@redhat.com>
6652
6653         * gcj.texi (Extensions): Document gcjlib URLs.
6654
6655 2003-08-20  Tom Tromey  <tromey@redhat.com>
6656
6657         * gcj.texi (Extensions): Added xref.
6658         (libgcj Runtime Properties): Document
6659         gnu.gcj.runtime.VMClassLoader.library_control.
6660
6661 2003-08-20  Andrew Haley  <aph@redhat.com>
6662
6663         * except.c (prepare_eh_table_type): Use new encoding for exception
6664         handlers when using -fno-assume-compiled.
6665
6666 2003-08-13  Tom Tromey  <tromey@redhat.com>
6667
6668         * gcj.texi (Invoking gij): Document -X and -?.
6669
6670 2003-08-13  Mohan Embar  <gnustuff@thisiscool.com>
6671
6672         * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
6673         GCJH_OBJS, JCFDUMP_OBJS
6674         * win32-host.c: Removed the unnecessary and broken dependency
6675         on jcf.h
6676
6677 2003-08-11  Tom Tromey  <tromey@redhat.com>
6678
6679         * parse.y (java_check_regular_methods): Typo fixes.  Call
6680         check_interface_throws_clauses.  Use
6681         check_concrete_throws_clauses.
6682         (check_interface_throws_clauses): New function.
6683         (check_concrete_throws_clauses): New function.
6684         (hack_is_accessible_p): New function.
6685         (find_most_specific_methods_list): Added FIXME.
6686         * typeck.c (lookup_do): Use `flags' argument to decide what to
6687         do.  Reimplemented.
6688         (lookup_argument_method_generic): New function.
6689         (lookup_argument_method2): Removed.
6690         * jcf.h (ACC_INVISIBLE): New define.
6691         * jcf-write.c (generate_classfile): Skip invisible methods.
6692         * class.c (add_miranda_methods): New function.
6693         (layout_class_methods): Use it.
6694         (get_access_flags_from_decl): Use ACC_INVISIBLE.
6695         * java-tree.h (METHOD_INVISIBLE): New define.
6696         (lang_decl_func) [invisible]: New field.
6697         (lookup_argument_method_generic): Declare.
6698         (SEARCH_INTERFACE): New define.
6699         (SEARCH_SUPER): Likewise.
6700         (SEARCH_ONLY_INTERFACE): Likewise.
6701         (SEARCH_VISIBLE): Likewise.
6702         (lookup_argument_method2): Removed declaration.
6703
6704 2003-08-05  Tom Tromey  <tromey@redhat.com>
6705
6706         Fix for PR java/11600:
6707         * parse.y (java_complete_lhs): See whether we're calling a method
6708         on an array.
6709         (check_thrown_exceptions): Added `is_array_call' argument;
6710         fixed `clone' checking; updated all callers.
6711
6712 2003-08-05  Steven Bosscher  <steven@gcc.gnu.org>
6713
6714         * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
6715
6716 2003-08-03  Tom Tromey  <tromey@redhat.com>
6717
6718         * java-tree.h (METHOD_TRANSIENT): Removed.
6719         * decl.c (pushdecl): Removed some dead code.
6720         * class.c (get_access_flags_from_decl): Can't have transient
6721         method.
6722         (add_method_1): Can't have a transient method.
6723
6724 2003-07-28  Andreas Jaeger  <aj@suse.de>
6725
6726         * jvspec.c: Convert to ISO C90 prototypes.
6727
6728 2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>
6729
6730         * decl.c (force_poplevels): Fix warning call.
6731
6732 2003-07-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6733
6734         * expr.c (expand_java_field_op): Don't use xxx_with_decl
6735         (expand_java_field_op): Likewise.
6736         * class.c (layout_class_method): Likewise
6737         (emit_register_classes): Likewise.
6738         * decl.c (pushdecl): Likewise.
6739         (poplevel): Likewise.
6740         (force_poplevels): Likewise.
6741         (give_name_to_locals): Likewise.
6742         * check-init.c (check_for_initialization): Likewise.
6743
6744 2003-07-24  Jason Merrill  <jason@redhat.com>
6745
6746         * java-tree.h: Move boolean_type_node et al to the back end.
6747
6748 2003-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6749
6750         * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
6751         casts.
6752
6753 2003-07-19  Neil Booth  <neil@daikokuya.co.uk>
6754
6755         * lang.opt: Don't show -MD_ and -MDD_.
6756
6757 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
6758
6759         * lang-options.h: Remove.
6760         * lang.opt: Add help text.
6761
6762 2003-07-15  Kazu Hirata  <kazu@cs.umass.edu>
6763
6764         * expr.c: Remove the last argument to expand_assignment().
6765
6766 2003-07-09  Jan Hubicka  <jh@suse.cz>
6767
6768         * java-tree.h (DECL_NUM_STMTS): Rename to...
6769         (DECL_ESTIMATED_INSNS): ... this.
6770         * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
6771         New static functions.
6772         (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
6773         * parser.y (add_stmt_to_compound): Do not account statements.
6774
6775 2003-07-08  Mark Wielaard  <mark@klomp.org>
6776
6777         * gcj.texi: CNI now expands to Compiled Native Interface.
6778
6779 2003-07-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6780
6781         * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
6782
6783 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
6784
6785         * expr.c (expand_byte_code): Adjist emit_line_note call.
6786
6787 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
6788
6789         * lang.c (java_handle_option): Don't handle filenames.
6790
6791 2003-07-02  Zack Weinberg  <zack@codesourcery.com>
6792
6793         * jcf-path.c: Don't default-define PATH_SEPARATOR nor
6794         DIR_SEPARATOR.
6795         Use FILENAME_CMP.
6796         * jcf-write.c: Don't default-define DIR_SEPARATOR.
6797         * jcf.h: Delete COMPARE_FILENAMES definition.
6798
6799 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
6800
6801         * lang.c (java_init_options): Update prototype.
6802
6803 2003-07-01  Nathan Sidwell  <nathan@codesourcery.com>
6804
6805         * decl.c (poplevel): Adjust define_label call.
6806
6807 2003-06-27  Zack Weinberg  <zack@codesourcery.com>
6808
6809         * gjavah.c (flag_jni): Make non-static.
6810         * parse-scan.y (ctxp): Make non-static.
6811
6812         * class.c (build_method_symbols_entry)
6813         * expr.c (get_offset_table_index)
6814         * jcf-parse.c (jcf_parse):
6815         Mark the definition static, matching the forward declaration.
6816
6817 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
6818
6819         * lang.c (java_handle_option): Don't check for missing arguments.
6820
6821 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
6822
6823         * class.c (push_class): Use a location_t to save place.
6824         (emit_register_classes): Set input_location. Adjust
6825         expand_function_end call.
6826         * resource.c (write_resource_constructor): Likewise.
6827         * decl.c (end_java_method): Adjust expand_function_end call.
6828         * parse.y (source_end_java_method): Likewise.
6829
6830 2003-06-17  Robert Abeles  <rabeles@archaelogic.com>
6831
6832         * lang.c (java_handle_option): Likewise.
6833
6834 2003-06-16  Neil Booth  <neil@daikokuya.co.uk>
6835
6836         * lang.c (java_handle_option): Special-casing of optional
6837         joined arguments no longer needed.
6838         * lang.opt: Update switches that take optional argument.
6839
6840 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
6841
6842         * lang.opt: Declare Java.
6843         * lang.c (java_init_options): Update.
6844
6845 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
6846
6847         * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
6848
6849 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
6850
6851         * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
6852         * lang.c (java_handle_option): -MD and -MMD have an underscore.
6853         * lang.opt: -MD and -MMD have an underscore.
6854
6855 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
6856
6857         * class.c (emit_register_classes): Adjust init_function_start
6858         call.
6859         * decl.c (complete_start_java_method): Likewise.
6860         * resource.c (write_resource_constructor): Likewise.
6861
6862 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
6863
6864         * Make-lang.in: Update to use options.c and options.h.
6865         * lang.c: Include options.h not j-options.h.
6866         (java_handle_option): Abort on unrecognized option.
6867         (java_init_options): Request Java switches.
6868
6869 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
6870
6871         * Make-lang.in: Handle mostlyclean.
6872
6873 2003-06-11  Tom Tromey  <tromey@redhat.com>
6874
6875         * lang.c (java_handle_option): Update dependency_tracking for
6876         OPT_MF case.
6877
6878         * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
6879         empty argument.
6880
6881 2003-06-10  Andrew Haley  <aph@redhat.com>
6882
6883         * resource.c (write_resource_constructor): Use expand_expr to
6884         generate the address of the label attached to a resource.
6885         * Make-lang.in (java/resource.o): Add expr.h
6886
6887 2003-06-10  Andrew Haley  <aph@redhat.com>
6888
6889         * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
6890         (java_decl_ok_for_sibcall): New.
6891
6892 2003-06-09  Neil Booth  <neil@daikokuya.co.uk>
6893
6894         * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
6895         (java/j-options.c, java/j-options.h): New.
6896         * java-tree.h (resource_name, compile_resource_file,
6897         compile_resource_data): Constify.
6898         * jcf-write.c (jcf_write_base_directory): Similarly.
6899         * jcf.h (jcf_write_base_directory): Similarly.
6900         * lang.c: Include j-options.h.
6901         (cl_options_count, cl_options, string_option, java_decode_option,
6902         lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
6903         process_option_with_no): Remove.
6904         (resource_name): Constify.
6905         (LANG_HOOKS_HANDLE_OPTION): Override.
6906         (java_handle_option): New.
6907         (java_init): Don't call jcf_path_init.
6908         (java_init_options): Call jcf_path_init.
6909         * lang.opt: New.
6910         * resource.c (compile_resource_data, compile_resource_file): Constify.
6911
6912 2003-06-09  Nathan Sidwell  <nathan@codesourcery.com>
6913
6914         * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
6915         (struct lang_decl_func): Add last_line field.
6916         * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
6917         DECL_SOURCE_LINE_LAST): Remove.
6918         * parse.y (missing_return_error, finish_method_declaration,
6919         lookup_cl, start_artificial_method_body, source_end_java_method,
6920         start_complete_expand_method): Adjust.
6921
6922 2003-06-08  Tom Tromey  <tromey@redhat.com>
6923
6924         * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
6925         fno-assume-compiled.
6926
6927 2003-06-08  Roger Sayle  <roger@eyesopen.com>
6928
6929         * builtins.c (define_builtin_type, builtin_types): Delete.
6930         (define_builtin): Rewritten to take just the built-in code,
6931         the function's name, type and fallback library function name.
6932         All built-ins used by Java are implicit and BUILT_IN_NORMAL.
6933         (initialize_builtins): Overhaul to define the GCC builtins
6934         used by gcj manually, providing the Java run-time's
6935         implementations as the fallback library function.
6936
6937 2003-06-08  Anthony Green  <green@redhat.com>
6938
6939         * parse.y (patch_cast): Fix conversions from floating-point to
6940         integral types.
6941
6942 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
6943
6944         * Make-lang.in: Update.
6945         * lang.c: Include opts.h. Define cl_options_count and cl_options.
6946
6947 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
6948
6949         * lang.c (java_init_options): Update.
6950
6951 2003-06-05  Jan Hubicka  <jh@suse.cz>
6952
6953         * Make-lang.in:  Add support for stageprofile and stagefeedback
6954
6955 2003-05-31  Roger Sayle  <roger@eyesopen.com>
6956
6957         * lang.c (java_init_options): Prescribe wrap-around two's
6958         complement arithmetic overflow by setting flag_wrapv.
6959
6960 2003-05-29  Roger Sayle  <roger@eyesopen.com>
6961
6962         * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
6963         (builtin_record): Add an additional builtin_code field to
6964         record which GCC built-in corresponds to the Java function.
6965         (java_builtins):  Add new entries for atan, atan2, exp, log,
6966         pow and tan.
6967         (max_builtin, min_builtin, abs_builtin): Perform constant
6968         folding on the resulting tree.
6969         (java_build_function_call_expr): Likewise, perform constant
6970         folding on the resulting tree.
6971         (initialize_builtins): The NULL creators are now allowed in
6972         the java_builtins table, which is now terminated by an entry
6973         with builtin_code == END_BUILTINS.
6974         (check_for_builtin): Likewise.  If the matching creator is
6975         NULL, construct the call using java_build_function_call_expr
6976         directly with the decl for the corresponding builtin_code.
6977
6978 2003-05-23  Nathanael Nerode  <neroden@gcc.gnu.org>
6979
6980         * win32-host.c: Normalize copyright boilerplate.
6981
6982 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6983
6984         * parse.y (print_int_node): Use string concatentation on
6985         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
6986         function calls into one.
6987
6988 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
6989
6990         * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
6991         fatal_io_error with calls to fatal_error; add ": %m" to the end of
6992         all the affected error messages.
6993
6994 2003-05-13  Richard Henderson  <rth@redhat.com>
6995
6996         * class.c (layout_class_method): Set DECL_EXTERNAL.
6997         * decl.c (java_mark_decl_local, java_mark_class_local): New.
6998         * java-tree.h (java_mark_class_local): Declare.
6999         * jcf-parse.c (parse_class_file): Use it.
7000         * parse.y (java_expand_classes): Likewise.
7001
7002 2003-05-04  Nathan Sidwell  <nathan@codesourcery.com>
7003
7004         * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
7005         * lex.h: #include input.h.
7006         * jv-scan.c (input_filename): Remove.
7007
7008 2003-05-02  Tom Tromey  <tromey@redhat.com>
7009
7010         PR java/10491:
7011         * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
7012         (handle_inner_classes): New function.
7013
7014 2003-05-01  Tom Tromey  <tromey@redhat.com>
7015
7016         PR java/10459:
7017         * parse.y (finish_for_loop): Do nothing if update expression is a
7018         EXPR_WFL_NODE wrapping nothing.
7019         (java_complete_lhs) <COMPOUND_EXPR>: Likewise.
7020
7021 2003-05-02  Nathan Sidwell  <nathan@codesourcery.com>
7022
7023         * lex.h (input_lineno): Remove declaration.
7024         * parse-scan.y: #include input.h.
7025         (input_filename): Remove declaration.
7026         (input_location): Add definition.
7027         (input_line): Remove definition.
7028
7029 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
7030
7031         * lex.h (lineno): Rename to ...
7032         (input_line): ... here
7033         * parse-scan.y (lineno): Rename to ...
7034         (input_line): ... here.
7035         (reset_report): Rename lineno to input_line.
7036         * check-init.c (check_init): Likewise.
7037         * class.c (push_class): Likewise.
7038         * decl.c (complete_start_java_method, end_java_method): Likewise.
7039         * expr.c (expand_byte_code): Likewise.
7040         * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
7041         * jcf-write.c (generate_bytecode_insns): Likewise.
7042         * lex.c (java_init_lex, java_allocate_new_line,
7043         do_java_lex): Likewise.
7044         * parse.h (YYNOT_TWICE): Likewise.
7045         * parse.y (empty_statement, expression_statement,
7046         java_pop_parser_context, java_parser_context_save_global,
7047         yyerror, register_fields, method_header, safe_layout_class,
7048         find_in_imports_on_demand, create_artificial_method,
7049         source_end_java_method, start_complete_expand_method,
7050         build_thisn_assign, java_complete_lhs,
7051         maybe_absorb_scoping_block): Likewise.
7052
7053 2003-04-20  Mohan Embar  <gnustuff@thisiscool.com>
7054
7055         * jcf-io.c (find_class): use DIR_SEPARATOR instead of
7056         '/' when computing java source filename
7057
7058 2003-04-13  Tom Tromey  <tromey@redhat.com>
7059
7060         * gjavah.c (print_c_decl): Indentation fix.
7061
7062 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
7063
7064         * class.c (make_field_value, make_method_value, get_dispatch_table)
7065         (make_class_data, emit_offset_symbol_table)
7066         * constants.c (build_constants_constructor)
7067         * java-tree.h (START_RECORD_CONSTRUCTOR)
7068         * parse.y (maybe_build_array_element_wfl):
7069         Use build_constructor.
7070
7071 2003-04-10  Eric Blake  <ebb9@email.byu.edu>
7072
7073         PR java/10253:
7074         * parse.y (string_convert_int_cst): Always use at least one digit
7075         in string conversion. Remove ASCII dependence.
7076         (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
7077
7078 2003-03-16  Mohan Embar  <gnustuff@thisiscool.com>
7079
7080         * Make-lang.in: added win32-host.c
7081         * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
7082         resolves to open() on non-Win32 platforms and
7083         Win32-specific jcf_open_exact_case() on Win32
7084         * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
7085         when trying .java and .class files
7086         * win32-host.c: added to repository. Defines
7087         Win32-specific jcf_open_exact_case()
7088
7089 2003-04-10  Andrew Haley  <aph@redhat.com>
7090
7091         * jcf-write.c (struct jcf_partial): num_jsrs: new field.
7092         (maybe_free_localvar): Renamed from localvar_free.
7093         Add new arg, really.
7094         (generate_bytecode_insns): Set new variable, jsrs.
7095         Only free local vars if no jsr insns have been emittted.
7096         Call maybe_free_localvar, not localvar_free.
7097
7098 2003-03-30  Joseph S. Myers  <jsm@polyomino.org.uk>
7099
7100         * gcj.texi: Remove @ at start of file.
7101
7102 2003-03-25  Tom Tromey  <tromey@redhat.com>
7103
7104         * parse.y (create_interface): Call CHECK_DEPRECATED.
7105
7106 2003-03-23  Zack Weinberg  <zack@codesourcery.com>
7107
7108         * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
7109
7110 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
7111
7112         * javaop.h (jfloat, jdouble): Make them structures mirroring
7113         the bit fields of IEEE float and double respectively.
7114         (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
7115         JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
7116         (union Word, union DWord): Delete.
7117         (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
7118
7119         * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
7120         D_NAN_MASK): Delete.
7121         (jni_print_float, jni_print_double): New.  Generate
7122         hexadecimal floating constants.
7123         (print_field_info): Use jni_print_float/double.
7124
7125         * jcf-dump.c: Include math.h.  Use ldexp/frexp to assemble
7126         finite floating point numbers for output; special case
7127         non-finite floats.
7128
7129 2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
7130
7131         * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
7132         Replace 0 and 1 with true and false in return statements.
7133
7134 2003-03-19  Tom Tromey  <tromey@redhat.com>
7135
7136         * lex.c (do_java_lex): Renamed from java_lex.
7137         (java_lex): New function.
7138         Include timevar.h.
7139
7140 2003-03-13  Tom Tromey  <tromey@redhat.com>
7141
7142         * parse.y (resolve_inner_class): Error if qualifier is a primitive
7143         type.
7144
7145 2003-03-04  Andrew Haley  <aph@redhat.com>
7146
7147         * gjavah.c (is_first_data_member): New global variable.
7148         (print_c_decl): If it's the first data member, align it as the
7149         superclass.
7150         (process_file): Set is_first_data_member.
7151
7152 2003-03-11  Tom Tromey  <tromey@redhat.com>
7153
7154         * parse.y (resolve_field_access): Initialize class if field is
7155         found in another static field.
7156         * expr.c (build_class_init): Don't optimize out initialization of
7157         implemented interface.
7158
7159 2003-03-11  Andrew Haley  <aph@redhat.com>
7160
7161         * jcf-io.c (caching_stat): Initialize origsep to remove compiler
7162         warning.
7163
7164 2003-03-10  Ranjit Mathew  <rmathew@hotmail.com>
7165
7166         * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
7167         and DIR_SEPARATOR_2 for a target.
7168         Correct minor typos.
7169
7170         * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
7171         and DIR_SEPARATOR_2 for a target into account.
7172
7173 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
7174
7175         * lang.c (java_init): Update prototype, move code to java_post_options.
7176         (java_post_options): Similarly.
7177
7178 2003-03-05  Ranjit Mathew  <rmathew@hotmail.com>
7179
7180         * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
7181         compare file name components depending on the case-sensitivity
7182         or otherwise of the host file system.
7183
7184         * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
7185         "strcmp" to compare file name components.
7186         Use IS_DIR_SEPARATOR instead of comparing directly against
7187         DIR_SEPARATOR.
7188         (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
7189         comparing directly against DIR_SEPARATOR.
7190
7191 2003-03-04  Tom Tromey  <tromey@redhat.com>
7192
7193         * Make-lang.in (java.tags): New target.
7194
7195 2003-03-01  Roger Sayle  <roger@eyesopen.com>
7196
7197         * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
7198         (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
7199
7200 2003-03-01  Tom Tromey  <tromey@redhat.com>
7201
7202         * parse.y (jdep_resolve_class): Only check deprecation if we found
7203         a decl.
7204
7205 2003-02-28  Tom Tromey  <tromey@redhat.com>
7206
7207         PR java/9695:
7208         * class.c (maybe_layout_super_class): Always pass a WFL to
7209         do_resolve_class.
7210         * parse.y (do_resolve_class): Updated comment to explain
7211         parameters.
7212
7213 2003-02-26  Tom Tromey  <tromey@redhat.com>
7214
7215         * jcf-write.c (generate_classfile): Check whether class is
7216         deprecated before writing attribute count.
7217
7218 2003-02-25  Roger Sayle  <roger@eyesopen.com>
7219
7220         * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
7221         built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
7222
7223 2003-02-23  Tom Tromey  <tromey@redhat.com>
7224
7225         * lang-options.h: Added -Wdeprecated.
7226         * gcj.texi (Warnings): Document -Wdeprecated.
7227         * java-tree.h (flag_deprecated): Declare.
7228         * lang.c (lang_W_options): Added deprecated.
7229         (flag_deprecated): New global.
7230         * chartables.h: Rebuilt.
7231         * gen-table.pl (process_one): Look at whitespace.
7232         (print_tables): Define LETTER_SPACE, LETTER_MASK.
7233         * parse.h (CLEAR_DEPRECATED): New macro.
7234         (CHECK_DEPRECATED_NO_RESET): New macro.
7235         * jcf-parse.c (handle_deprecated): New function.
7236         (HANDLE_DEPRECATED_ATTRIBUTE): New define.
7237         * jcf-reader.c (get_attribute): Handle Deprecated attribute.
7238         * parse.y (resolve_type_during_patch): Check deprecation.
7239         (jdep_resolve_class): Likewise.
7240         (process_imports): Likewise.
7241         (resolve_expression_name): Likewise.
7242         (check_deprecation): Strip arrays from decl.  Check
7243         flag_deprecated.
7244         (patch_method_invocation): Also check the particular constructor
7245         for deprecation.
7246         (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
7247         * jcf-write.c (append_deprecated_attribute): New function.
7248         (generate_classfile): Generate deprecated attribute when
7249         appropriate.
7250         * lex.c (java_parse_doc_section): Return type now void.  Rewrote.
7251         (java_lex) [case '*']: Simplify logic.
7252         (java_start_char_p): Use LETTER_MASK.
7253         (java_part_char_p): Likewise.
7254         (java_space_char_p): New function.
7255
7256 2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
7257
7258         Change base class access representation.
7259         * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
7260         (add_interface_do): Likewise.
7261
7262 2003-02-12  Ranjit Mathew  <rmathew@hotmail.com>
7263
7264         * decl.c (java_init_decl_processing): Change
7265         soft_lookupjnimethod_node to reflect the change in
7266         signature of _Jv_LookupJNIMethod in libjava/jni.cc
7267         * expr.c (build_jni_stub): Calculate and pass the size
7268         on the stack of the arguments to a JNI function. Use
7269         new target macro MODIFY_JNI_METHOD_CALL to allow a
7270         target to modify the call to a JNI method.
7271
7272 2003-02-08  Roger Sayle  <roger@eyesopen.com>
7273
7274         * jcf-io.c (java_or_class_file): Use libiberty's lbasename
7275         instead of basename to avoid compiler warnings on Tru64.
7276
7277 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
7278
7279         * gcj.texi: Update to GFDL 1.2.
7280
7281 2003-01-31  Andrew Haley  <aph@redhat.com>
7282
7283         * parse.y (java_expand_classes): Scan the whole class list looking
7284         for access methods that haven't yet been expanded.
7285
7286 2003-01-31 Adrian Bunk <bunk@fs.tum.de>
7287
7288         Fix for java/4269:
7289
7290         * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
7291         to fix bootstrap on sparc-unknown-netbsdelf1.5.
7292         * jcf-parse.c: Likewise.
7293
7294 2003-01-31  Mark Wielaard  <mark@klomp.org>
7295
7296         * gjavah.c (throwable_p): Allocate 1 more byte for string.
7297
7298 2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>
7299
7300         * class.c (make_class): Use BINFO_ELTS.
7301         (set_super_info): Likewse.
7302         (add_interface_do): Likewise.
7303
7304 2003-01-30  Tom Tromey  <tromey@redhat.com>
7305
7306         * jcf-parse.c (read_class): Update identifier's class value if it
7307         changed during parsing.
7308
7309 2003-01-30  Loren James Rittle  <ljrittle@acm.org>
7310
7311         * Make-lang.in (po-generated): Find the targets in $(parsedir).
7312         Propagate change to all other rules as required.
7313         (java/parse-scan.o): Add explicit dependency on
7314         $(parsedir)/java/parse-scan.c .
7315
7316 2003-01-29  Tom Tromey  <tromey@redhat.com>
7317
7318         * parse.y (patch_assignment): Only transform the rhs of an
7319         assignment when compiling to native.
7320
7321 2003-01-28  Tom Tromey  <tromey@redhat.com>
7322
7323         * jcf-write.c (generate_bytecode_conditional): Typo fixes.
7324
7325 2003-01-28  Tom Tromey  <tromey@redhat.com>
7326
7327         * lex.c (java_lex): Don't include UEOF as part of token.
7328         (java_read_unicode): Error if \u sequence prematurely terminated.
7329
7330 2003-01-27  Tom Tromey  <tromey@redhat.com>
7331
7332         * parse.y (java_check_regular_methods): Check for construct after
7333         checking types in throws clause.
7334
7335 2003-01-24  Tom Tromey  <tromey@redhat.com>
7336
7337         * class.c (build_static_field_ref): Only a String or numeric field
7338         can fold to a constant.
7339
7340 2003-01-23  Tom Tromey  <tromey@redhat.com>
7341
7342         * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
7343         file name in resource buffer.
7344
7345 2003-01-23  Tom Tromey  <tromey@redhat.com>
7346
7347         * expr.c (build_known_method_ref): Use method's context to find
7348         method table index.
7349
7350 2003-01-23  Tom Tromey  <tromey@redhat.com>
7351
7352         * constants.c (set_constant_entry): Allocated cleared memory.
7353
7354 2003-01-22  Tom Tromey  <tromey@redhat.com>
7355
7356         * java-tree.h: Don't use PARAMS.
7357         * resource.c: Add prototypes for all functions.
7358         (write_resource_constructor): Use `const char *' to avoid
7359         warning.
7360
7361 2003-01-22 Nathanael Nerode  <neroden@gcc.gnu.org>
7362
7363         * jcf-parse.c (process_zip_dir): Remove unused variable.
7364
7365 2003-01-22  Tom Tromey  <tromey@redhat.com>
7366
7367         * expr.c (build_invokeinterface): Abort if method's context is not
7368         an interface.
7369
7370 2003-01-22  Tom Tromey  <tromey@redhat.com>
7371
7372         * gcj.texi (Input and output files): Mention non-class entries.
7373         * decl.c (java_init_decl_processing): Call
7374         init_resource_processing.
7375         * java-tree.h (compile_resource_data, write_resource_constructor,
7376         compile_resource_file, init_resource_processing): Declare.
7377         * config-lang.in (gtfiles): Added resource.c.
7378         * Make-lang.in (gt-java-resource.h): New target.
7379         (JAVA_OBJS): Added resource.o.
7380         (java/resource.o): New target.
7381         * resource.c: New file.
7382         * class.c (compile_resource_file): Moved to resource.c.
7383         (registerResource_libfunc): Likewise.
7384         (utf8_decl_list): Mark with GTY; now static.
7385         * jcf-parse.c (classify_zip_file): New function.
7386         (parse_zip_file_entries): Use it; compile .properties files.
7387         (process_zip_dir): Use classify_zip_file and compute_class_name.
7388         Don't write class name into zip directory.
7389         (java_parse_file): Call write_resource_constructor.
7390         (compute_class_name): New function.
7391         * jcf-io.c (read_zip_member): Reindented.
7392
7393 2003-01-21  Tom Tromey  <tromey@redhat.com>
7394
7395         * class.c (supers_all_compiled): New function.
7396         (make_class_data): Use it.
7397
7398 2003-01-21  Tom Tromey  <tromey@redhat.com>
7399
7400         * parse.y (method_header): Native method can't be strictfp.
7401         No method can be transient or volatile.
7402
7403 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7404
7405         Make-lang.in (jvspec.o-warn): Add -Wno-error.
7406
7407 2003-01-18  Kazu Hirata  <kazu@cs.umass.edu>
7408
7409         * check-init.c: Fix comment typos.
7410         * class.c: Likewise.
7411         * constants.c: Likewise.
7412         * decl.c: Likewise.
7413         * except.c: Likewise.
7414         * expr.c: Likewise.
7415         * java-except.h: Likewise.
7416         * java-tree.h: Likewise.
7417         * javaop.h: Likewise.
7418         * jcf-dump.c: Likewise.
7419         * jcf-io.c: Likewise.
7420         * jcf-parse.c: Likewise.
7421         * jcf-write.c: Likewise.
7422         * lang.c: Likewise.
7423         * mangle.c: Likewise.
7424         * typeck.c: Likewise.
7425         * verify.c: Likewise.
7426
7427 2003-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7428
7429         * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
7430         * jcf-write.c: Include "tm_p.h".
7431
7432 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7433
7434         * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
7435
7436 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7437
7438         * builtins.c (java_build_function_call_expr): Renamed from
7439         build_function_call_expr.  All callers changed.
7440
7441         * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
7442         * jcf-parse.c: Include tm_p.h.
7443
7444         * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
7445         warning.
7446
7447 2003-01-14  Tom Tromey  <tromey@redhat.com>
7448
7449         * class.c (make_class_data): Check that super is compiled before
7450         building class reference to it.
7451
7452 2003-01-14  Andrew Haley  <aph@redhat.com>
7453
7454         * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7455         varargs function -- correct.
7456
7457 2003-01-14  Andrew Haley  <aph@redhat.com>
7458
7459         * decl.c (java_init_decl_processing): Temporarily back out previous patch.
7460
7461 2003-01-14  Andrew Haley  <aph@redhat.com>
7462
7463         * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7464         varargs function -- correct.
7465
7466         * parse.y (patch_assignment): Copy the rhs of an assignment into a
7467         temporary if the RHS is a reference.
7468
7469 2003-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7470
7471         * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
7472         * keyword.h: Regenerated.
7473
7474         * All Files: Convert to ISO C style function definitions.
7475
7476 2003-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
7477
7478         * parse.y (check_pkg_class_access): ANSIfy definition.
7479
7480 2003-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7481
7482         * decl.c, parse-scan.y, parse.y: Don't cast return value of
7483         xmalloc et al.
7484
7485         * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
7486
7487 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
7488
7489         Merge from pch-branch:
7490
7491         2002-12-02  Geoffrey Keating  <geoffk@apple.com>
7492
7493         * Make-lang.in (java/gjavah.o): Update dependencies.
7494         * gjavah.c: Include ggc.h.
7495
7496         2002-08-16  Geoffrey Keating  <geoffk@redhat.com>
7497
7498         * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
7499         (JCFDUMP_OBJS): Add ggc-none.o.
7500         (java/jcf-dump.o): Depend on GGC_H.
7501         * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
7502         CPool substructures.
7503         * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
7504         * jcf-dump.c: Include ggc.h.
7505
7506         2002-08-08  Geoffrey Keating  <geoffk@redhat.com>
7507
7508         * jcf.h (union cpool_entry): New.
7509         (struct CPool): Use gengtype to mark.  Change field 'data' to be
7510         an array of unions.
7511         (struct JCF): Use gengtype to mark.
7512         (CPOOL_UINT): Update for new cpool_entry type.
7513         (CPOOL_USHORT1): Likewise.
7514         (CPOOL_USHORT2): Likewise.
7515         (CPOOL_FINISH): Use GC to free cpool subfields.
7516         * parse.h (struct parser_ctxt): Mark field current_jcf.
7517         * lex.c (java_init_lex): Use GC to allocate struct JCF.
7518         * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
7519         (main_jcf): Use gengtype to mark.
7520         (ggc_mark_jcf): Delete.
7521         (get_constant): Update for new cpool_entry type.
7522         (give_name_to_class): Likewise.
7523         (get_class_constant): Likewise.
7524         (init_outgoing_cpool): Use GGC to allocate struct CPool.
7525         (java_parse_file): Use GGC to allocate struct JCF.
7526         (init_jcf_parse): Don't call ggc_add_root.
7527         * jcf-reader.c (jcf_parse_constant_pool): Update for new
7528         cpool_entry type.
7529         * java-tree.h (current_jcf): Use gengtype to mark.
7530         (CPOOL_UTF): Update for new cpool_entry type.
7531         (outgoing_cpool): Use gengtype to mark.
7532         (struct lang_type): GC struct JCF and struct CPool.
7533         * config-lang.in (gtfiles): Add jcf.h.
7534         * constants.c (find_tree_constant): New.
7535         (set_constant_entry): Allocate cpool subfields using GGC.  Update
7536         for new cpool_entry type.
7537         (find_constant1): Update for new cpool_entry type.
7538         (find_constant2): Likewise.
7539         (find_utf8_constant): Use find_tree_constant.
7540         (find_class_or_string_constant): Remove unnecessary cast to jword.
7541         Update for new cpool_entry type.
7542         (count_constant_pool_bytes): Update for new cpool_entry type.
7543         (write_constant_pool): Likewise.
7544         (alloc_name_constant): Use find_tree_constant.
7545         (build_constants_constructor): Update for new cpool_entry type.
7546
7547         2002-08-08  Geoffrey Keating  <geoffk@redhat.com>
7548
7549         * parse.y (mark_parser_ctxt): Delete.
7550         (goal): Don't use ggc_add_root.
7551         (create_new_parser_context): Use GC to allocate struct parser_ctxt.
7552         (java_pop_parser_context): Let GC free parser_ctxt.
7553         (java_parser_context_resume): Likewise.
7554         * parse.h (struct parser_ctxt): Use gengtype to mark.
7555         (ctxp): Likewise.
7556         (ctxp_for_generation): Likewise.
7557         * lex.h (struct java_lc_s): Mark for gengtype.
7558         (java_lexer): Rearrange for gengtype.
7559         * config-lang.in (gtfiles): Add lex.h, parse.h.
7560
7561 2003-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7562
7563         * All Files: Remove PARAMS macro.
7564
7565         * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
7566         jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
7567         `__STDC__' macros.
7568
7569         * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
7570         VA_CLOSE.
7571
7572 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
7573
7574         * Make-lang.in (java.install-common, java.uninstall,
7575         java.install-info, java.install-man): Prepend $(DESTDIR)
7576         to destination paths in all (un)installation commands.
7577         (java.install-common): Rewrite $(LN) command to support
7578         DESTDIR with "ln" as well as with "ln -s".
7579
7580 2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>
7581
7582         * java-tree.h: Protect against multiple inclusion.
7583
7584 2003-01-07  Tom Tromey  <tromey@redhat.com>
7585
7586         * class.c (add_assume_compiled): Don't adjust parent if we're
7587         already at the root of tree.
7588
7589 2003-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7590
7591         * lang.c (dump_compound_expr): Prototype.
7592
7593 2003-01-03  Tom Tromey  <tromey@redhat.com>
7594
7595         Fix for PR java/8712:
7596         * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
7597         when simply checking against `null'.
7598
7599 2003-01-03  Tom Tromey  <tromey@redhat.com>
7600
7601         * gcj.texi (Standard Properties): Document http.proxyHost and
7602         http.proxyPort.
7603
7604         * gcj.texi (GNU Classpath Properties): Document new properties.
7605
7606 2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
7607
7608         * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
7609         java/lang-options.h, java/mangle.c, java/mangle_name.c,
7610         java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
7611
7612 2003-01-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
7613
7614         * Make-lang.in, boehm.c, buffer.c,
7615           buffer.h, builtins.c, class.c,
7616           config-lang.in, constants.c,
7617           convert.h, decl.c, except.c,
7618           expr.c, java-except.h,
7619           java-tree.h, javaop.def,
7620           jcf-parse.c, jcf-write.c,
7621           jv-scan.c, jvgenmain.c,
7622           jvspec.c, keyword.gperf,
7623           keyword.h, lang-options.h,
7624           lang-specs.h, lang.c, lex.c,
7625           lex.h, mangle.c, mangle_name.c,
7626           parse-scan.y, parse.h, parse.y,
7627           typeck.c, verify.c, xref.c,
7628           xref.h: Replace "GNU CC" with
7629           "GCC" in the copyright header.
7630
7631         * check-init.c, gjavah.c, javaop.h,
7632           jcf-depend.c, jcf-dump.c, jcf-io.c,
7633           jcf-path.c, jcf-reader.c, jcf.h,
7634           zextract.c, zipfile.h: These files are
7635           "part of GCC". Also say "GCC" not "GNU CC".
7636
7637 2002-12-30  DJ Delorie  <dj@redhat.com>
7638
7639         * Make-lang.in: Protect against texi2pod/pod2man failing.
7640
7641 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7642
7643         * gcj.texi: Use @copying.
7644
7645 2002-12-27  Mark Mitchell  <mark@codesourcery.com>
7646
7647         * gjavah.c (print_name_for_stub_or_jni): Adjust call to
7648         print_cxx_classname.
7649         (print_cxx_classname): Add add_scope parameter.
7650         (print_class_decls): Do not emit a semicolon after the extern
7651         "Java" block.
7652         (process_file): Adjust calls to print_cxx_classname.
7653
7654 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
7655
7656         * gcj.texi: Include Cover Texts in man page.
7657
7658 2002-12-23  Jeff Sturm  <jsturm@one-point.com>
7659
7660         * class.c (build_static_field_ref): Check FIELD_FINAL.
7661
7662         * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
7663         instead of current_constant_pool_data_ref.
7664         * java-tree.h (current_constant_pool_data_ref): Undefine.
7665         (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
7666         * jcf-parse.c (init_outgoing_cpool): Don't initialize
7667         current_constant_pool_data_ref.
7668
7669         * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
7670         not build_internal_class_name.
7671
7672         * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
7673         Use it when class ref isn't certain to be compiled.
7674
7675 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
7676
7677         * gcj.texi: Include gcc-common.texi.
7678         * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
7679         $(srcdir)/doc/include/gcc-common.texi.
7680
7681 2002-12-22  Anthony Green  <green@redhat.com>
7682
7683         * gcj.texi (Limitations): Add note about org.xml.sax and
7684         org.w3c.dom.
7685
7686 2002-12-20  Tom Tromey  <tromey@redhat.com>
7687
7688         * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
7689         where minimum case value is Integer.MIN_VALUE.
7690         Fixes PR java/8955.
7691
7692 2002-12-18  Andrew Haley  <aph@redhat.com>
7693
7694         * parse.y (patch_invoke): Force evaluation order when `check' is
7695         set.  For PR libgcj/8945.
7696
7697 2002-12-16  Mark Mitchell  <mark@codesourcery.com>
7698
7699         * gcj.texi: Change version number to 3.4.
7700
7701 2002-12-05  Ranjit Mathew <rmathew@hotmail.com>
7702         Andrew Haley <aph@redhat.com>
7703
7704         * parse.y (source_end_java_method): Remove custom encoding of line
7705         numbers for a function decl before passing it to the back end.
7706
7707 2002-12-03  Andrew Haley  <aph@redhat.com>
7708
7709         * class.c (make_class_data): New field, "chain".
7710         * decl.c (java_init_decl_processing): Likewise.
7711
7712 2002-12-02  Tom Tromey  <tromey@redhat.com>
7713
7714         For PR java/8740:
7715         * parse.y (do_resolve_class): Handle qualified name via
7716         recursion.
7717
7718 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
7719
7720         * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
7721         constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
7722         jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
7723         jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
7724         parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
7725         Include coretypes.h and tm.h.
7726         * Make-lang.in: Update dependencies.
7727
7728 2002-11-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7729
7730         * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
7731
7732 2002-11-25  Diego Novillo  <dnovillo@redhat.com>
7733
7734         * jcf-reader.c: Don't expand JCF_readu4 inside the
7735         expansion of JCF_SKIP.
7736
7737 2002-11-25  Diego Novillo  <dnovillo@redhat.com>
7738
7739         * jcf-reader.c: Don't expand JCF_readu4 inside the
7740         expansion of JCF_SKIP.
7741
7742 2002-11-22  Tom Tromey  <tromey@redhat.com>
7743
7744         * parse.y (patch_binop): Cast right hand side of shift expression
7745         to `int'.  Fixes PR java/8676.
7746
7747 2002-11-22  Ranjit Mathew <rmathew@hotmail.com>
7748             Andrew Haley <aph@redhat.com>
7749
7750         * gcc/java/jcf-write.c (write_classfile): Remove target
7751         class file, if it exists, before renaming the temporary
7752         class file to it.
7753
7754 2002-11-19  Jason Thorpe  <thorpej@wasabisystems.com>
7755
7756         * jvspec.c (lang_specific_spec_functions): New.
7757
7758 2002-11-18  Tom Tromey  <tromey@redhat.com>
7759
7760         Fix for PR java/7912:
7761         * expr.c (can_widen_reference_to): Allow cast of array to
7762         Cloneable or Serializable.
7763         * java-tree.h (java_lang_cloneable_identifier_node): Declare.
7764         (java_io_serializable_identifier_node): Likewise.
7765         * parse.y (java_lang_cloneable, java_io_serializable): Removed.
7766         (valid_ref_assignconv_cast_p): Use new identifier nodes.
7767         * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
7768         java_io_serializable.
7769         * decl.c (java_init_decl_processing): Initialize
7770         java_lang_cloneable_identifier_node and
7771         java_io_serializable_identifier_node.
7772         (java_lang_cloneable_identifier_node): New global.
7773         (java_io_serializable_identifier_node): Likewise.
7774
7775 2002-11-14  Jens-Michael Hoffmann  <jensmh@gmx.de>
7776
7777         * buffer.c: Remove unnecessary casts.
7778         * check-init.c: Likewise.
7779         * class.c: Likewise.
7780         * constants.c: Likewise.
7781         * decl.c: Likewise.
7782         * except.c: Likewise.
7783         * gjavah.c: Likewise.
7784         * jcf-io.c: Likewise.
7785         * jcf-parse.c: Likewise.
7786         * jcf-path.c: Likewise.
7787         * jvspec.c: Likewise.
7788         * lang.c: Likewise.
7789         * lex.c: Likewise.
7790         * verify.c: Likewise.
7791
7792 2002-11-06  Tom Tromey  <tromey@redhat.com>
7793
7794         * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
7795         a JNI header.
7796
7797 2002-11-05  Tom Tromey  <tromey@redhat.com>
7798
7799         Fix for PR java/6388.
7800         * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
7801         * java-tree.h (enum java_tree_index): New values
7802         JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
7803         (decimal_int_max, decimal_long_max): New defines.
7804         * lex.c (yylex): Rewrote range checking.  Sign extend literals.
7805         (error_if_numeric_overflow): Rewrote range checking.
7806         * decl.c (java_init_decl_processing): Initialize decimal_int_max,
7807         decimal_long_max.
7808
7809 2002-11-02  Tom Tromey  <tromey@redhat.com>
7810
7811         * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
7812
7813         * class.c (make_method_value): Put class name, not signature, into
7814         `throws' field.  For PR java/8415.
7815
7816 2002-10-24  Tom Tromey  <tromey@redhat.com>
7817
7818         * gcj.texi (Invoking gij): Document --showversion.
7819         (Standard Properties): java.library.path now set.
7820
7821 2002-10-23  Tom Tromey  <tromey@redhat.com>
7822
7823         * gjavah.c (decode_signature_piece): In JNI mode, print
7824         `jobjectArray' when array depth is nonzero.
7825         Fixes PR java/8296.
7826
7827 2002-10-15  Andrew Haley  <aph@redhat.com>
7828
7829         * parse.y (patch_invoke): Call force_evaluation_order on a static
7830         arg list.
7831         (resolve_qualified_expression_name): Call force_evaluation_order
7832         on a arg list that is part of a Qualified Expression Name.
7833
7834         * lang.c (dump_compound_expr): New.
7835         (java_dump_tree): New.
7836
7837 2002-10-20  Ranjit Mathew <rmathew@hotmail.com>
7838
7839         * gcj.texi: Added item describing the GCJ runtime property
7840         "gnu.gcj.progname".
7841
7842 2002-10-15  Richard Henderson  <rth@redhat.com>
7843
7844         * jcf-parse.c (get_constant): Fix type warning.
7845
7846 2002-10-15  Andrew Haley  <aph@redhat.com>
7847
7848         * java-tree.h (java_inlining_merge_static_initializers): Declare.
7849         (java_inlining_map_static_initializers): Declare.
7850
7851 2002-10-14  Andrew Haley  <aph@redhat.com>
7852
7853         * tree-inline.c (remap_block): All local class initialization
7854         flags go in the outermost scope.
7855         (expand_call_inline): Call java_inlining_map_static_initializers.
7856         (expand_call_inline): Call java_inlining_merge_static_initializers.
7857         * java/lang.c (merge_init_test_initialization): New.
7858         (java_inlining_merge_static_initializers): New.
7859         (inline_init_test_initialization): New.
7860         (java_inlining_map_static_initializers): New.
7861
7862 2002-10-11  Mark Wielaard  <mark@klomp.org>
7863
7864         * gcj.texi (Compatibility): Add Limitations and Extensions section.
7865
7866 2002-10-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7867
7868         * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
7869
7870 2002-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7871
7872         * parse.y (merge_string_cste): Add parentheses around & within |.
7873
7874 2002-10-08  Tom Tromey  <tromey@redhat.com>
7875
7876         * parse.y (variable_declarator_id): Simplify error path for
7877         array declarator error.  For PR java/8003.
7878
7879 2002-10-08  Zack Weinberg  <zack@codesourcery.com>
7880
7881         * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
7882         bug_report_url.
7883
7884 2002-10-08  Andrew Haley  <aph@redhat.com>
7885
7886         * parse.y (attach_init_test_initialization_flags): Check for
7887         error_mark_node.
7888
7889 2002-10-07  Anthony Green  <green@redhat.com>
7890
7891         * parse.y (merge_string_cste): Fix bug in string concatenation.
7892
7893 2002-10-03  Michael Koch  <konqueror@gmx.de>
7894
7895         * gcj.texi (Standard properties):
7896         Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
7897
7898 2002-10-02  Roger Sayle  <roger@eyesopen.com>
7899
7900         PR optimization/6627
7901         * lang.c (java_init): If storing the vbit in function
7902         pointers, ensure that force_align_functions_log is atleast
7903         one to aid compatability with g++ vtables.
7904
7905 2002-10-01  Nathan Sidwell  <nathan@codesourcery.com>
7906
7907         * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
7908         foul of type-based aliasing.
7909
7910 2002-09-30  Anthony Green  <green@redhat.com>
7911
7912         * gcj.texi (Invoking jv-scan): Fix texinfo.
7913
7914 2002-09-28  Anthony Green  <green@redhat.com>
7915
7916         * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
7917         (Code Generation): Add -fno-assert documentation.
7918         * jv-scan.c (flag_assert): New global.
7919         (options): Add assert option.
7920         (help): Add --no-assert documentation.
7921         * parse-scan.y (flag_assert): New global.
7922         * lang.c (lang_f_options): Add -fassert/-fno-assert support.
7923         (flag_assert): New global.
7924         * java-tree.h (flag_assert): New global.
7925         * lex.c (java_lex): Obey flag_assert.
7926         * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
7927         calling cc1.
7928
7929 2002-09-26  Andrew Haley  <aph@redhat.com>
7930
7931         * expr.c (build_java_array_length_access): Check for null pointer.
7932         * expr.c (expand_java_arrayload): Likewise.
7933
7934 2002-09-21  Richard Henderson  <rth@redhat.com>
7935
7936         * jcf-parse.c (get_constant): Decode from IEEE no matter
7937         what the target format.
7938
7939 2002-09-20  Kazu Hirata  <kazu@cs.umass.edu>
7940
7941         * ChangeLog: Follow spelling conventions.
7942         * class.c: Likewise.
7943         * decl.c: Likewise.
7944         * expr.c: Likewise.
7945         * gjavah.c: Likewise.
7946         * java-tree.h: Likewise.
7947         * jcf-dump.c: Likewise.
7948         * jcf-parse.c: Likewise.
7949         * jvspec.c: Likewise.
7950         * lang.c: Likewise.
7951         * mangle.c: Likewise.
7952         * parse.y: Likewise.
7953
7954 2002-09-17  Tom Tromey  <tromey@redhat.com>
7955
7956         * lex.c (java_read_unicode_collapsing_terminators): Handle case
7957         where \r appears at EOF.  Fixes PR java/7950.
7958
7959 2002-09-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7960
7961         * jvspec.c (lang_specific_driver): Remove unused variable.
7962
7963 2002-09-16  Geoffrey Keating  <geoffk@apple.com>
7964
7965         * java-tree.h (union lang_tree_node): Add chain_next option.
7966
7967 2002-09-16  Richard Henderson  <rth@redhat.com>
7968
7969         * jcf-parse.c (get_constant): Runtime check for IEEE format;
7970         use new real.h interface.
7971         * jcf-write.c (find_constant_index): Use new real.h interface.
7972         * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
7973
7974 2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>
7975
7976         * lang.c: Follow spelling conventions.
7977
7978 2002-09-11  Per Bothner  <per@bothner.com>
7979
7980         * parse.y (fold_constant_for_init):  If a VAR_DECL, convert numerical
7981         constant to the type of the field.
7982         (java_complete_tree):  Remove now-redundant code.
7983
7984         * parse.y (fold_constant_for_init):  'null' is not a constant expr.
7985
7986 2002-09-03  Jesse Rosenstock  <jmr@ugcs.caltech.edu>
7987
7988         For PR java/5794:
7989         * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
7990         return label if a ret instruction for the jsr has been reached.
7991
7992 2002-09-09  Ranjit Mathew  <rmathew@hotmail.com>
7993
7994         * parse.y (DIR_SEPARATOR): Don't define.
7995         (check_class_interface_creation): Use IS_DIR_SEPARATOR.
7996
7997 2002-08-28  Andrew Haley  <aph@redhat.com>
7998
7999         * verify.c (verify_jvm_instructions): Allow exception handler
8000         inside code that is being protected, but generate a warning.
8001         * except.c (link_handler): Initialize `expanded' in new eh_range.
8002         (binding_depth, is_class_level, current_pc): Declare extern.
8003
8004 2002-09-01  Mark Wielaard <mark@klomp.org>
8005
8006         * gcj.texi: Add chapter about system properties.
8007         Fixed some typos.
8008
8009 2002-08-26  Tom Tromey  <tromey@redhat.com>
8010
8011         * parse.y (try_builtin_assignconv): Allow narrowing primitive
8012         conversion if RHS_TYPE is byte, short, or char.
8013
8014 2002-08-22  Tom Tromey  <tromey@redhat.com>
8015
8016         * gcj.texi (Invoking gij): Document -cp and -classpath.
8017
8018 2002-08-21  Tom Tromey  <tromey@redhat.com>
8019
8020         * Make-lang.in (java/jcf-path.o): Use $(datadir), not
8021         $(prefix)/share.  For PR libgcj/7633.
8022
8023         For PR java/6005 and PR java/7611:
8024         * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
8025         (java_can_use_bit_fields_p): New function.
8026
8027 2002-08-16  Tom Tromey  <tromey@redhat.com>
8028
8029         * gcj.texi (Class Initialization): Mention class initialization of
8030         arrays.
8031
8032 2002-07-30  Andrew Haley  <aph@cambridge.redhat.com>
8033
8034         * Make-lang.in (java-tree-inline.o): New.
8035         (JAVA_OBJS): Add java-tree-inline.o.
8036         * parse.y (source_end_java_method): Call java_optimize_inline.
8037         (java_expand_method_bodies): Save method's tree in
8038         DECL_SAVED_TREE.
8039         (add_stmt_to_compound): Keep track of the number of statments.
8040         * lang.c (java_init): Enable flag_inline_trees.
8041         (java_post_options): If flag_inline_functions is on, enable
8042         flag_inline_trees instread.
8043         (decl_constant_value): New.
8044         (java_tree_inlining_walk_subtrees): New.
8045         * java-tree.h (DECL_NUM_STMTS): New macro.
8046         (java_optimize_inline): Declare.
8047         * expr.c (java_expand_expr): Allow a BLOCK to return a value.
8048         Handle a LABEL_EXPR.
8049         * decl.c (build_result_decl): If we already have a DECL_RESULT
8050         don't make another.
8051         (dump_function): New.
8052         (java_optimize_inline): New.
8053         (dump_function): New.
8054
8055 2002-08-13  Jesse Rosenstock  <jmr@fulcrummicro.com>
8056
8057         For PR java/7483:
8058         * parse.y (build_assertion): Invert return from
8059         desiredAssertionStatus.
8060
8061 2002-08-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8062
8063         * jcf-write.c (get_access_flags): Return correct access flags for
8064         private and protected inner classes.
8065
8066 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
8067
8068         * java/Make-lang.in (java.mostlyclean): Remove coverage files.
8069
8070 2002-08-05  Geoffrey Keating  <geoffk@redhat.com>
8071
8072         * mangle_name.c: Don't include obstack.h twice.
8073         * xref.c: Don't include obstack.h.
8074
8075 2002-08-04  Geoffrey Keating  <geoffk@redhat.com>
8076
8077         * class.c: (permanent_obstack): Delete declaration.
8078         * constants.c: (permanent_obstack): Delete declaration.
8079         * except.c: (permanent_obstack): Delete declaration.
8080         * expr.c: (permanent_obstack): Delete declaration.
8081         * jcf-parse.c: (permanent_obstack): Delete declaration.
8082         (saveable_obstack): Delete declaration.
8083         * parse.h: (permanent_obstack): Delete declaration.
8084         * typeck.c: (permanent_obstack): Delete declaration.
8085
8086 2002-08-04  Joseph S. Myers  <jsm@polyomino.org.uk>
8087
8088         * gcj.texi (version-gcc): Increase to 3.3.
8089
8090 2002-07-22  Tom Tromey  <tromey@redhat.com>
8091
8092         * lex.c (java_lex): Check for `e' or `E' after 0.
8093
8094 2002-07-21  Richard Henderson  <rth@redhat.com>
8095
8096         * lang.c (java_unsafe_for_reeval): New.
8097         (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
8098
8099 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
8100
8101         * jcf-path.c (GET_ENV_PATH_LIST): Remove.
8102         (jcf_path_init): Use GET_ENVIRONMENT.
8103
8104 2002-07-10  Roger Sayle  <roger@eyesopen.com>
8105             Zack Weinberg <zack@codesourcery.com>
8106
8107         * builtins.c (initialize_builtins): Remove defines that
8108         handled C/C++ specific junk hereby removed from builtins.def.
8109
8110 2002-07-07  Neil Booth  <neil@daikokuya.co.uk>
8111
8112         * lang.c (java_post_options): Update prototype.
8113
8114 2002-07-05  Roger Sayle  <roger@eyesopen.com>
8115
8116         * builtins.c (initialize_builtins): Ignore the additional
8117         parameter to DEF_BUILTIN.  Handle more C/C++ specific junk in
8118         the builtins.def file.
8119
8120 2002-07-01  Tom Tromey  <tromey@redhat.com>
8121
8122         For PR libgcj/7073:
8123         * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
8124         specially.
8125
8126 2002-07-01  Roger Sayle  <roger@eyesopen.com>
8127
8128         * java/decl.c (builtin_function): Accept additional parameter.
8129         (java_init_decl_processing): Pass an additional NULL_TREE
8130         argument to builtin_function.
8131
8132 2002-06-29  T.J. Mather  <tjmather@maxmind.com>
8133
8134         * gcj.texi: Fixed gcj invocation example so that it compiles.
8135
8136 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8137
8138         * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
8139         * parse.y (mark_parser_ctxt): Likewise.
8140         (check_modifiers, declare_local_variables): Avoid incorrect
8141         hardcoded constant 10.
8142
8143         * lex.c (java_read_char): Avoid "comparison is always true"
8144         warning.
8145
8146 2002-06-25  Andreas Schwab  <schwab@suse.de>
8147
8148         * expr.c (JSR): Avoid undefined operation on PC.
8149
8150 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8151
8152         * decl.c (clear_binding_level): Const-ify.
8153
8154 2002-06-13  Akim Demaille  <akim@epita.fr>
8155
8156         * parse.y (class_declaration, interface_declaration): Make sure
8157         all their rules have an action, in order to avoid meaningless `$$
8158         = $1' and their type clashes.
8159
8160 2002-06-11  Tom Tromey  <tromey@redhat.com>
8161
8162         * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
8163         * parse-scan.y (statement_without_trailing_substatement): Added
8164         assert_statement.
8165         (assert_statement): New rule.
8166         * java-tree.h (struct lang_type) [assertions]: New field.
8167         (TYPE_USES_ASSERTIONS): New macro.
8168         (CLASS_USES_ASSERTIONS): Likewise.
8169         (FIELD_SYNTHETIC): New define.
8170         * lex.c (java_lval;): Added ASSERT_TK.
8171         * parse.y (ASSERT_TK): Added.
8172         (statement_without_trailing_substatement): Added assert_statement.
8173         (assert_statement): New rule.
8174         (build_assertion): New function.
8175         (maybe_generate_pre_expand_clinit): Create and initialize
8176         $assertionsDisabled.
8177         (lookup_package_type): Removed decl.
8178         * keyword.h: Rebuilt.
8179         * keyword.gperf (assert): New token.
8180
8181 2002-06-10  Akim Demaille  <akim@epita.fr>
8182
8183         * parse.y (interface_type_list, class_member_declaration)
8184         (unary_expression_not_plus_minus): Remove duplicate %type.
8185         Whitespace changes.
8186
8187 2002-06-09  Tom Tromey  <tromey@redhat.com>
8188
8189         * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
8190
8191         * parse.y (method_header): Give error message in all cases.
8192         Fixes PR java/6865.
8193
8194 2002-06-10  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8195
8196         Don't use RTL inlining. Fix for PR java/6820.
8197         * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
8198         (flag_really_inline): New.
8199         (java_decode_option): Set flag_really_inline if -finline-functions
8200         is seen.
8201         (java_post_options): New function. Turn off inlining unless
8202         flag_really_inline is set.
8203
8204 2002-06-10  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8205
8206         * gjavah.c (throwable_p): Accept argument as either a classname or
8207         signature fragment. Create null-terminated classname string for super
8208         when calling itself recursively.
8209         (decode_signature_piece): Skip first character from class name
8210         signature when calling throwable_p.
8211
8212 2002-06-08  H.J. Lu  (hjl@gnu.org)
8213
8214         * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
8215
8216 2002-06-04  Tom Tromey  <tromey@redhat.com>
8217
8218         * jcf-write.c (perform_relocations): Optmize a goto to a goto.
8219
8220 2002-06-04  Michael Koch  <konqueror@gmx.de>
8221
8222         * gcj.texi (Input Options): Fixed typo.
8223
8224 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
8225
8226         * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
8227         typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
8228         all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
8229         and all now-pointless local variables.  Rename other local
8230         variables to reflect their not being handles.
8231
8232         * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
8233         #if JCF_USE_STDIO blocks.
8234
8235         * parse.y: Add missing semicolon at end of rule.
8236
8237 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
8238
8239         * check-init.c (attach_initialized_static_class): Delete, unused.
8240         * parse.y: Use htab_t instead of struct hashtable, update
8241         all uses.
8242         * java-tree.h: Include hashtab.h instead of hash.h.
8243         (struct lang_decl_func): Use htab_t, set up for gengtype.
8244         (struct init_test_hash_entry): Delete.
8245         (struct treetreehash_entry): New.
8246         (java_treetreehash_find): New
8247         (java_treetreehash_new): New prototype.
8248         (java_treetreehash_create): New prototype.
8249         (java_mark_tree): Delete prototype.
8250         (java_hash_hash_tree_node): Delete prototype.
8251         (java_hash_compare_tree_node): Delete prototype.
8252         (attach_initialized_static_class): Delete prototype.
8253         * expr.c (build_class_init): Update to use java_treetreehash
8254         functions.
8255         (java_expand_expr): Update to use htab_t.
8256         (emit_init_test_initialization): Likewise.
8257         * decl.c (java_mark_tree): Delete.
8258         * class.c (init_test_hash_newfunc): Delete.
8259         (java_hash_hash_tree_node): Delete.
8260         (java_hash_compare_tree_node): Delete.
8261         (add_method_1): Update to use java_treetreehash functions.
8262         (JAVA_TREEHASHHASH_H): New macro.
8263         (java_treetreehash_hash): New function.
8264         (java_treetreehash_compare): New function.
8265         (java_treetreehash_find): New function.
8266         (java_treetreehash_new): New function.
8267         (java_treetreehash_create): New function.
8268         * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
8269
8270         * Make-lang.in (java/parse.o): Depend on debug.h.
8271         * java-tree.h (struct lang_identifier): Use gengtype.
8272         (union lang_tree_node): New.
8273         (struct lang_decl_func): Use gengtype.
8274         (struct lang_decl_var): Likewise.
8275         (struct lang_decl): Likewise.
8276         * parse.y: Include debug.h.
8277         * lang.c (LANG_HOOKS_MARK_TREE): Delete.
8278
8279         * lang.c (struct language_function): New dummy structure.
8280
8281         * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
8282         descriminator for DECL_LANG_SPECIFIC.
8283         (struct lang_decl_func): Rename from struct lang_decl.
8284         (enum lang_decl_desc): New.
8285         (struct lang_decl): Make it a union.  Update all the accessor macros.
8286         (struct lang_type): Use gengtype.
8287         * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
8288         * decl.c (java_dup_lang_specific_decl): All lang_decl structures
8289         are now the same size.
8290         (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
8291         use discriminator to mark DECL_LANG_SPECIFIC.
8292
8293         * Make-lang.in (gt-java-builtins.h): New rule.
8294         (java/builtins.o): Add dependency on gt-<filename>.h.
8295         * builtins.c: Use gengtype for roots.
8296         (union string_or_tree): Use gengtype.
8297         (struct builtin_record): Use gengtype.
8298         * config-lang.in (gtfiles): Add builtins.c.
8299
8300         * Make-lang.in (gt-java-class.h, gt-java-constants.h,
8301         gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
8302         gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
8303         gt-java-parse.h, gtype-java.h): Add rules to generate.
8304         (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
8305         (class.o): Add dependency on gt-*.h.
8306         (constants.o): Likewise.
8307         (decl.o): Likewise.
8308         (expr.o): Likewise.
8309         (jcf-parse.o): Likewise.
8310         (jcf-write.o): Likewise.
8311         (lang.o): Likewise.
8312         * config-lang.in (gtfiles): New.
8313         * class.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8314         * constants.c: Replace uses of ggc_add_* with GTY markers.
8315         Include gt-*.h.
8316         * decl.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8317         * expr.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8318         * java-tree.h: Replace uses of ggc_add_* with GTY markers.
8319         * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
8320         Include gt-*.h.
8321         * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
8322         Include gt-*.h.
8323         * lang.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8324         * mangle.c: Replace uses of ggc_add_* with GTY markers.  Include
8325         gt-*.h.
8326         * parse.y: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8327         Include gtype-java.h.
8328
8329 2002-06-02  Tom Tromey  <tromey@redhat.com>
8330
8331         Fix for PR java/5913:
8332         * parse.y (patch_binop): Call patch_string on op1.
8333
8334 2002-06-02  Tom Tromey  <tromey@redhat.com>
8335
8336         Fix for PR java/1343, PR java/6336:
8337         * parse.y (make_nested_class_name): Remove extraneous `else'; fix
8338         formatting.  Changed return type.
8339         (anonymous_class_counter): Moved to top of file.
8340         (maybe_make_nested_class_name): Append number to class name for
8341         function-local classes.
8342
8343 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
8344
8345         * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
8346         * Make-lang.in: Update dependency lists.
8347
8348 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
8349
8350         * gjavah.c (throwable_p): Do not free the name of the class after
8351         passing it to find_class.
8352         * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
8353         * jcf-io.c (dirent.h): Include it.
8354         (fnmatch.h): Likewise.
8355         (compare_path): New function.
8356         (java_or_class_file): Likewise.
8357         (memoized_dirlist_entry): New type.
8358         (memoized_dirlist_lookup_eq): New function.
8359         (memoized_dirlists): New variable.
8360         (caching_stat): New function.
8361         (memoized_class_lookup_eq): New function.
8362         (memoized_class_lookups): Likewise.
8363         (find_class): Use memoized_class_lookups and caching_stat.
8364         * jcf.h (JCF_USE_SCANDIR): Define.
8365         * parse.y (java_expand_classes): Write the class files in reverse
8366         order.
8367
8368 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8369
8370         * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
8371
8372 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
8373
8374         * jcf-write.c (write_classfile): Unlink the temporary file if it
8375         cannot be renamed.  Use concat to build up the name of the
8376         temporary file.
8377
8378 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
8379
8380         * jcf-write.c (write_classfile): Write the file to a
8381         temporary file and then rename it.
8382
8383 2002-05-07  Tom Tromey  <tromey@redhat.com>
8384
8385         * gjavah.c (throwable_p): Use xstrdup, not strdup.
8386
8387         Fix for PR java/1200:
8388         * gjavah.c (throwable_p): New function.
8389         (decode_signature_piece): Use it.  A `WeakReference' isn't the
8390         same as a `jweak'.
8391         Include hashtab.h.
8392         (gcjh_streq): New function.
8393
8394 2002-05-07  Andreas Jaeger  <aj@suse.de>
8395
8396         * parse.y (finish_for_loop): Fix if statement.
8397
8398 2002-05-06  Tom Tromey  <tromey@redhat.com>
8399
8400         Fix for PR java/5941:
8401         * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
8402         loop update expression.
8403         (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
8404         * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
8405
8406 2002-05-04  Mark Wielaard  <mark@klomp.org>
8407
8408         For PR java/6519:
8409         * parse.y (build_string_concatenation): Return just op1 only when op2
8410         is null and op1 is a STRING_CST, otherwise always construct a
8411         StringBuffer.
8412
8413 2002-04-27  Tom Tromey  <tromey@redhat.com>
8414
8415         For PR java/6382:
8416         * parse.y (string_convert_int_cst): New function.
8417         (merge_string_cste): Use it.
8418
8419 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
8420
8421         * java-tree.h (java_parse_file): Update.
8422         (java_set_yydebug): Remove.
8423         * jcf-parse.c (yydebug): Remove.
8424         (java_set_yydebug): Die.
8425         (java_parse_file): Update.
8426         * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
8427
8428 2002-04-24  Tom Tromey  <tromey@redhat.com>
8429
8430         For PR java/6425:
8431         * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
8432         EXPR_WFL_QUALIFICATION of qual_wfl.
8433
8434 2002-04-23  Per Bothner  <per@bothner.com>
8435
8436         * expr.c (PRE_JSR):  Call NOTE_LABEL for return address.
8437         * java-tree.h (BCODE_RETURN_TARGET):  Removed - never set.
8438         (BCODE_TARGET):  Remove BCODE_RETURN_TARGET.
8439
8440 2002-04-23  Tom Tromey  <tromey@redhat.com>
8441
8442         For PR java/6314:
8443         * jvspec.c (lang_specific_driver): Use --resource, not -R.  Also
8444         recognize `-fcompile-resource='.
8445         * gcj.texi (Invoking gcj): Use --resource, not -R.  Expanded text
8446         a bit.
8447
8448 2002-04-22  Alexandre Petit-Bianco  <apbianco@redhat.com>
8449
8450         * jcf-parse.c: (yyparse): Don't prepend "./" to relative
8451         paths. Fixes PR java/2791.
8452
8453 2002-04-19  Andrew Haley  <aph@redhat.com>
8454
8455         * jcf-write.c (push_long_const): lo, hi: New variables.
8456         Use rshift_double to extract the high part of a 64-bit long.
8457         Use WORD_TO_INT to extract the low part.
8458
8459         * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
8460         HOST_WIDE_INT for num.  Use JPOOL_UINT to get it.
8461         CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
8462
8463 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
8464
8465         * typeck.c (incomplete_type_error): Remove.
8466
8467 2002-04-18  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8468
8469         * class.c (make_class_data): Set DECL_ALIGN on static class data,
8470         for hash synchronization.
8471         * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
8472         * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
8473         class_type_node.
8474
8475 2002-04-16  Mark Wielaard  <mark@klomp.org>
8476
8477         * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
8478         negative zero.
8479
8480 2002-04-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8481
8482         Fix for PR java/6294:
8483         * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
8484         interfaces.
8485
8486 2002-04-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8487
8488         Fix for PR java/6085:
8489         * parse.y (patch_method_invocation): Always use build_access_to_thisn
8490         to get enclosing "this" argument for inner-class constructor
8491         invocation. Pass correct arguments to build_access_to_thisn.
8492
8493 2002-04-10  Andreas Jaeger  <aj@suse.de>
8494
8495         * gcj.texi (Input Options): Fix extdirs patch.
8496
8497 2002-04-10  Anthony Green  <green@redhat.com>
8498
8499         * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
8500
8501 2002-04-09  Anthony Green  <green@redhat.com>
8502
8503         * gcj.texi (Input Options): Add --extdirs documentation.
8504         * jcf-dump.c (OPT_extdirs): New macro.
8505         (options): Add extdirs option.
8506         (help): Describe --extdirs.
8507         (main): Handle OPT_extdirs.
8508         * gjavah.c (OPT_extdirs): New macro.
8509         (options): Add extdirs option.
8510         (help): Describe --extdirs.
8511         (main): Handle OPT_extdirs.
8512         * jcf-path.c (jcf_path_init): Add extdirs support.
8513         (jcf_path_extdirs_arg): New function.
8514         (extensions): New variable to hold extensions path entries.
8515         * jvspec.c: Remove -fextdirs= when compiling main().
8516         * lang.c (java_decode_option): Handle -fextdirs=.
8517         * jcf.h (jcf_path_extdirs_arg): Declare new function.
8518         * Make-lang.in: Compile jcf-path with version info for use in
8519         identifying the appropriate libgcj.jar.
8520
8521 2002-04-08  Tom Tromey  <tromey@redhat.com>
8522
8523         For PR libgcj/5303:
8524         * .cvsignore: Added rmic.1 and rmiregistry.1.
8525         * gcj.texi (Top): Link to new nodes.
8526         (Invoking rmic): New node.
8527         (Invoking rmiregistry): Likewise.
8528         * Make-lang.in (java.generated-manpages): Added rmic.1 and
8529         rmiregistry.1.
8530         (java.maintainer-clean): Likewise.
8531         ($(srcdir)/java/rmic.1): New target.
8532         ($(srcdir)/java/rmiregistry.1): Likewise.
8533         (java.install-man): Handle rmic.1 and rmiregistry.1.
8534
8535 2002-04-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8536
8537         * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
8538         Add note about handling uncaught exceptions. Add an exception handler
8539         to example.
8540
8541 2002-04-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8542
8543         * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
8544         after using it to patch CALL_EXPR.
8545
8546 2002-04-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8547
8548         * gcj.texi (Invocation): Document CNI invocation API.
8549
8550 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
8551
8552         * expr.c (truthvalue_conversion): Rename.  Update.
8553         (expand_compare): Update.
8554         * java-tree.h (java_truthvalue_conversion): New.
8555         * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
8556
8557 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
8558
8559         * java-tree.h (java_mark_addressable): New.
8560         * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
8561         * typeck.c (mark_addressable): Rename, update.
8562
8563 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
8564
8565         * expr.c (build_java_binop): Update.
8566         * java-tree.h (java_signed_type, java_unsigned_type,
8567         java_signed_or_unsigned_type): Update.
8568         * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
8569         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
8570         * parse.y (patch_binop): Update.
8571         * typeck.c (signed_or_unsigned_type, unsigned_type,
8572         signed_type): Update.
8573
8574 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
8575
8576         * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
8577         (java_dummy_print): Remove.
8578         (lang_print_error): Rename.  Exit early if inhibiting output.
8579         (inhibit_error_printing_function): New.
8580         (java_init): Don't set hook.
8581         (lang_init_source): Use new boolean.
8582
8583 2002-03-29  Martin Kahlert  <martin.kahlert@infineon.com>
8584
8585         * parse.y (do_resolve_class): Fix infinite recursion.
8586
8587 2002-03-29  Tom Tromey  <tromey@redhat.com>
8588
8589         * parse.y (check_inner_circular_reference): Ignore incomplete
8590         types.
8591
8592 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8593
8594         * Make-lang.in (builtins.o): Update.
8595         * boehm.c (get_boehm_type_descriptor): Update.
8596         * builtins.c: Include langhooks.h.
8597         * decl.c (java_init_decl_processing): Update.
8598         * java-tree.h (java_type_for_mode, java_type_for_size): New.
8599         * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
8600         Redefine.
8601         * typeck.c (type_for_mode, type_for_size): Update.
8602
8603 2002-03-29  Martin Kahlert  <martin.kahlert@infineon.com>
8604
8605         * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
8606
8607 2002-03-28  Tom Tromey  <tromey@redhat.com>
8608
8609         * except.c (expand_end_java_handler): If the handler type is NULL,
8610         use java.lang.Throwable.  Fixes PR java/5986.
8611
8612 2002-03-28  Alexandre Petit-Bianco  <apbianco@redhat.com>
8613
8614         Fix for PR java/4715:
8615         * jcf-parse.c (parse_source_file_3): New function.
8616         (read_class): Call it.
8617         (java_parse_file): Likewise.
8618
8619 2002-03-28  Jan Hubicka  <jh@suse.cz>
8620
8621         * java/lang.c (java_init_options): Set flag_trapping_math to 0.
8622
8623 2002-03-28  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8624
8625         * parse.y (resolve_package): Initialize "decl".
8626         (lookup_package_type): Remove unused function.
8627
8628 2002-03-28  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8629
8630         Fix for PR java/5993:
8631         * parse.y (resolve_package): Return the decl if resolution was
8632         successful. Don't special case "java.lang" and "java.lang.reflect"
8633         packages. Set type_name to the merged identifier.
8634         (resolved_qualified_expression_name): Print error using "name" if
8635         resolve_package returns NULL_TREE.
8636
8637 2002-03-27  Tom Tromey  <tromey@redhat.com>
8638
8639         * expr.c (expand_invoke): Don't generate null pointer check if
8640         we're calling <init>.
8641
8642 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
8643
8644         * expr.c (java_lang_expand_expr): Rename java_expand_expr,
8645         fix prototype.
8646         * java-tree.h (java_lang_expand_expr): Similarly.
8647         * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
8648         (java_init): Don't set hook.
8649
8650 2002-03-27  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8651
8652         Fix for PR java/5850:
8653         * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
8654         context if field was not found in the current scope.
8655         * expr.c (lookup_field): Don't look in enclosing contexts.
8656
8657 2002-03-26  Tom Tromey  <tromey@redhat.com>
8658
8659         Fix for PR java/5942:
8660         * parse.y (init_src_parse): Added sanity check.
8661         * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
8662         elements, not 11.
8663
8664 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
8665
8666         * decl.c (lang_mark_tree): Rename java_mark_tree.
8667         * java-tree.h (java_mark_tree): New.
8668         * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
8669
8670 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
8671
8672         * lex.c: Change java_perform_atof to take normal parameters
8673         instead of a pointer to a parameter block.  Call it directly
8674         from java_lex.
8675
8676 2002-03-22  Mark Wielaard  <mark@klomp.org>
8677
8678         Fix for PR java/5368:
8679         * parse.y (resolve_qualified_expression_name): Use decl not field_decl
8680         when printing error message.
8681
8682 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
8683
8684         * decl.c (maybe_build_cleanup): Remove.
8685
8686 2002-03-22  Tom Tromey  <tromey@redhat.com>
8687
8688         Andrew Haley  <aph@cambridge.redhat.com>
8689
8690         * expr.c (build_field_ref): Don't build a check if the field is a
8691         member of `this'.
8692
8693 2002-03-21  Eric Blake  <ebb9@email.byu.edu>
8694
8695         Fix for PR java/6026:
8696         * lex.c (java_lex): Fix parsing of consecutive floats.
8697
8698 2002-03-21  Tom Tromey  <tromey@redhat.com>
8699
8700         * parse.y (build_access_to_thisn): Stop when FROM is not an inner
8701         class.
8702
8703 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8704
8705         * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
8706         insert_block, getdecls, kept_level_p, global_bindings_p): New.
8707
8708 2002-03-20  Nic Ferrier  <nferrier@tapsellferrier.co.uk>
8709
8710         * gcj.texi: @code{gcj} becomes @command{gcj}.
8711         @code{gcc} becomes @command{gcc}.
8712         GcjRaw changed to gnu.gcc.RawData.
8713
8714 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
8715
8716         * decl.c (start_java_method): Use new hook.
8717         * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
8718         (java_init): Remove old hook.
8719
8720 2002-03-18  Alexandre Petit-Bianco  <apbianco@redhat.com>
8721
8722         * builtins.c (define_builtin): Do nothing if `type' is null.
8723         Fixes PR java/5876.
8724
8725 2002-03-18  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8726
8727         * parse.y (parser_check_super_interface): Fix error message
8728         grammar/order.
8729
8730 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8731
8732         * jcf-parse.c (get_constant): Delete unused variables.
8733
8734 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
8735
8736         * java-tree.h (java_parse_file): New.
8737         * jcf-parse.c (yyparse): Rename java_parse_file.
8738         * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
8739
8740 2002-03-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8741
8742         * parse.y (craft_constructor): Return the constructor decl.
8743         (java_expand_classes): Update comments.
8744         (lookup_method_invoke): Call fix_constructors immediately for
8745         anonymous class. Fixes PR java/5935.
8746
8747 2002-03-15  Anthony Green  <green@redhat.com>
8748
8749         * jcf-parse.c (yyparse): Don't emit class registration
8750         constructor when compiling resource files.
8751
8752 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8753
8754         * lang.c (java_tree_code_type, java_tree_code_length,
8755         tree_code_name): Delete.
8756         (tree_code_type, tree_code_length, tree_code_name): Define.
8757         (java_init): Don't try to copy into the various tree_code
8758         arrays.
8759
8760 2002-03-12  Tom Tromey  <tromey@redhat.com>
8761
8762         * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
8763         UTF-8, not UCS-2.  Fixes PR java/5923.
8764
8765         * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
8766         a call_expr wrapped in a convert.  Fixes PR java/5848.
8767
8768 2002-03-12  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8769
8770         * jcf-write.c (write_classfile): Improve error strings.
8771
8772 2002-03-11  Eric Blake  <ebb9@email.byu.edu>
8773
8774         * lex.c: Adjust comments to GNU standards.
8775
8776 2002-03-11  Eric Blake  <ebb9@email.byu.edu>
8777
8778         Fix for PR java/5902:
8779         * lex.c (java_lex): Fix parsing of literals.
8780
8781 2002-03-11  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8782
8783         * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
8784         to prevent it getting evaluated twice in the store checking case.
8785         * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
8786         examining OBJECT.
8787
8788 2002-03-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8789
8790         * decl.c (java_init_decl_processing): Make sure class_type_node
8791         alignment is not less than 64 bits if hash synchronization is enabled.
8792
8793 2002-03-08  Per Bothner  <per@bothner.com>
8794
8795         * parse.y (java_complete_lhs):  Check if patch_assignment
8796         returned an error-mark.
8797
8798         * parse.y (try_builtin_assignconv):  Don't special-case zero.
8799
8800 2002-03-08  Per Bothner  <per@bothner.com>
8801
8802         Fix for PR java/5812.
8803         * expr.c (build_java_jsr):  Take pc arguments, and do lookup_label
8804         here instead of in JSR macro.  Likewise with load_type_state call.
8805         Do the latter on if the return_pc has been verified (the jsr returns).
8806         (JSR):  Now just call build_java_jsr.
8807
8808 2002-03-07  Jeff Sturm  <jsturm@one-point.com>
8809
8810         * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
8811         (java.install-common): Link native driver to
8812         JAVA_TARGET_INSTALL_NAME.
8813
8814 2002-03-05  David Billinghurst <David.Billinghurst@riotinto.com>
8815
8816         * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
8817         * builtins.c(sin_builtin): Likewise
8818         * builtins.c(sqrt_builtin): Likewise
8819
8820 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
8821
8822         * java/expr.c, java/jcf-parse.c, java/lex.c:
8823         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
8824         REAL_ARITHMETIC blocks unconditional.  Delete some further
8825         #ifdef blocks predicated on REAL_ARITHMETIC.
8826
8827 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8828
8829         * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
8830         explicit sizeof/sizeof.
8831         * decl.c (java_init_decl_processing): Likewise.
8832         * jcf-parse.c (init_jcf_parse): Likewise.
8833         * parse.y (init_src_parse): Likewise.
8834
8835 2002-03-02  Per Bothner  <per@bothner.com>
8836
8837         Make --CLASSPATH by a synonym for --classpath and -classpath.
8838         Implement --bootclasspath.
8839         * jcf-path.c (classpath_u):  Rename static variable to classpath_user.
8840         (classpath_l):  Remove.
8841         (jcf_path_CLASSPATH_arg):  Remove.
8842         (jcf_path_bootclasspath_arg):  New function.
8843         (jcf_path_seal):  Simplify accordingly.
8844
8845         * jcf.h (jcf_path_bootclasspath_arg):  New declarations.
8846         (jcf_path_CLASSPATH):  Remove declaration.
8847         * jvspec.c (jvgenmain_spec):  Also accept -fbootclasspath*.
8848         (lang_specific_driver):  Translate -bootclasspath.
8849         * lang-options.h:  Add --bootclasspath.  Update --CLASSPATH.
8850         * lang.c (decode_lang_options):  Do jcf_path_init first.
8851         Handle -fCLASSPATH same as -fclasspath.  Also process -fbootclasspath.
8852         * gjavah.c:  Also handle --bootclasspath.
8853         Handle --CLASSPATH as a synonum for --classpath.
8854         * jcf-dump.c: Likewise.
8855
8856         "." is not part of system path, but is the default for --classpath.
8857         * jcf-path.c (jcf_path_init):  Don't add "." to sys_dirs.
8858         (jcf_path_seal):  Add "." if no CLASSPATH specified.
8859
8860         * gcj.texi:  Document changes.
8861
8862 2002-03-01  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8863
8864         * expr.c (build_java_arraystore_check): Fix formatting.
8865
8866 2002-02-28  Alexandre Petit-Bianco  <apbianco@redhat.com>
8867
8868         Fix for PR java/5758, java/5632:
8869         * jcf-parse.c (load_class): Renamed local variable, consider `.' an
8870         inner-class separator too.
8871         * parse.y (do_resolve_class): New local `decl_result.'
8872         Progressively build a name for what can have been loaded.
8873
8874 2002-02-28  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8875
8876         * expr.c (java_array_data_offset): Removed function.
8877         (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
8878         (build_java_array_length_access): Obtain "length" value using a
8879         COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
8880         (build_java_arrayaccess): Correct comment. Access "data" using a
8881         COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
8882         (build_java_arraystore_check): New function.
8883         (expand_java_arraystore): Use build_java_arraystore_check.
8884         * parse.y (patch_assignment): Simplify code to insert a store check
8885         when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
8886         * check-init.c (check_init): Update to reflect that an array length
8887         access is now a COMPONENT_REF.
8888         * gcj.texi (Code Generation): Improve documentation of
8889         -fno-bounds-check. Add documentation for -fno-store-check.
8890         * java-tree.h (flag_store_check): Declare.
8891         (build_java_arraystore_check): Declare.
8892         * lang.c (flag_store_check): Initialize to 1.
8893         (lang_f_options): Add store-check option.
8894         * jvspec.c: Don't pass store-check option to jvgenmain.
8895         * lang-options.h: Add help string for -fno-store-check.
8896
8897 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
8898
8899         * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
8900         * java-tree.h (java_dup_lang_specific_decl): New.
8901         * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
8902
8903 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
8904
8905         * builtins.c, decl.c: Delete traditional-mode-related code
8906         copied from the C front end but not used, or used only to
8907         permit the compiler to link.
8908
8909 2002-02-22  Tom Tromey  <tromey@redhat.com>
8910
8911         Fix for PR java/2369:
8912         * jvspec.c (verify_class_name): New function.
8913         (lang_specific_driver): Call it.
8914         (JAVA_START_CHAR_P): New macro.
8915         (JAVA_PART_CHAR_P): Likewise.
8916
8917 2002-02-22  Per Bothner  <per@bothner.com>
8918
8919         * class.c:  Change vtable to be more compatible with g++ v3 abi.
8920         (get_dispatch_table):  Prepend offset-to-top (always 0) and
8921         type_info pointer (currently unimplemented hence NULL) to vtable.
8922         Specifically, prepend offset-to-top and typeinfo ptr (currently null).
8923         (make_class_data):  Variable dtable_start_offset is sizeof 2 pointers.
8924         Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
8925         (build_dtable_decl):  Add declarations for new fields.
8926
8927 2002-02-20  Per Bothner  <per@bothner.com>
8928
8929         * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
8930         to finit$ (otherwise generate_bytecode_insns drops it). However, we
8931         don't need to set it on the COMPOUND_EXPR - the caller does that.
8932
8933 2002-02-20  Nic Ferrier  <nferrier@tapsellferrier.co.uk>
8934
8935         * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
8936         `--CLASSPATH' becomes `--classpath.'
8937         * gjavah.c: Likewise.
8938         * jcf-dump.c: Likewise.
8939         * lang-options.h: Likewise.
8940         * lang.c: Likewise.
8941         * jcf-path.c: Updated comment.
8942         (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
8943         (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
8944         * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
8945         (jcf_path_CLASSPATH_arg): Ditto.
8946         (classpath_u): Updated leading comment.
8947
8948 2002-02-20  Per Bothner  <per@bothner.com>
8949
8950         * builtins.c (check_for_builtin):  New function.
8951         (build_call_or_builtin):  Remove.
8952         * java-tree.h:  Update accordingly.
8953         * expr.c (expand_invoke):  Use build + check_for_builtin instead
8954         of build_call_or_builtin.
8955         * parse.y (patch_invoke):  Likewise.  This avoids needlessly creating
8956         a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
8957         flag (which had caused jcf-write to incorrectly emit invokevirtual).
8958
8959 2002-02-17  Tom Tromey  <tromey@redhat.com>
8960
8961         * java-tree.h (TYPE_STRICTFP): New macro.
8962         (struct lang_type) [strictfp]: New field.
8963         (CLASS_STRICTFP): New macro.
8964         (METHOD_STRICTFP): New macro.
8965         (struct lang_decl) [strictfp]: New field.
8966         * parse.y (method_header): Disallow strictfp constructor or
8967         abstract method.
8968         (STRICT_TK): Move before MODIFIER_TK.
8969         * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
8970         (METHOD_MODIFIERS): Likewise.
8971         (INTERFACE_MODIFIERS): Likewise.
8972         * jcf-write.c (get_access_flags): Likewise.
8973         * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
8974         (add_method_1): Likewise.
8975         (get_access_flags_from_decl): Likewise.
8976         * jcf-dump.c (print_access_flags): Print in standard order.  Also,
8977         recognize strictfp flag.
8978         * jcf.h (ACC_STRICT): New define.
8979
8980 2002-02-12  David Billinghurst <Davod.Billinghurst@riotinto.com>
8981
8982         * class.c(build_utf8_ref): Move declaration of decl_size
8983
8984 2002-02-07  Tom Tromey  <tromey@redhat.com>
8985
8986         * gcj.texi (Input Options): --CLASSPATH does not suppress system
8987         path.
8988
8989 2002-02-04  Anthony Green  <green@redhat.com>
8990
8991         * class.c (build_utf8_ref): Put UTF-8 constants into merged
8992         sections if available.
8993
8994 2002-02-04  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
8995
8996         * parse.y (java_expand_classes): Fix typo in static field loop.
8997
8998 2002-02-02  Richard Henderson  <rth@redhat.com>
8999
9000         * class.c (add_field): Mark static fields external.
9001         (build_class_ref): Remove redundant set.
9002         * parse.y (java_expand_classes): Mark static fields of classes
9003         to be compiled as local.
9004         * jcf-parse.c (parse_class_file): Likewise.
9005
9006 2002-02-02  Nic Ferrier  <nferrier@tapsellferrier.co.uk>
9007
9008         * gcj.texi (About CNI): New node.
9009
9010 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9011
9012         PR java/5080
9013         * jcf-parse.c : Check for HAVE_LOCALE_H before using
9014         setlocale() with LC_CTYPE as a parameter.
9015         * jv-scan.c: Same.
9016
9017 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
9018
9019         * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
9020         Follow GNU Coding Standards for --version.
9021
9022 2002-01-28  Tom Tromey  <tromey@redhat.com>
9023
9024         * expr.c (build_jni_stub): Ensure storage for `meth' is
9025         generated.
9026         * parse.y (java_complete_expand_methods): Set
9027         current_function_decl before building JNI stub.
9028
9029 2002-01-26 Andreas Tobler <a.tobler@schweiz.ch>
9030
9031         * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
9032         BUILT_IN_SQRTF.
9033
9034 2002-01-22  Tom Tromey  <tromey@redhat.com>
9035
9036         * decl.c (java_init_decl_processing): Use add_predefined_file.
9037         Predefine RawData.java.
9038         (predef_filenames): Removed.
9039         (java_init_decl_processing): Don't register predef_filenames.
9040         * jcf-parse.c (add_predefined_file): New function.
9041         (predefined_filename_p): Rewrote.
9042         (predefined_filename_p): No longer static.
9043         * decl.c (java_init_decl_processing): Call initialize_builtins.
9044         * Make-lang.in (JAVA_OBJS): Added builtins.o.
9045         (java/builtins.o): New target.
9046         * builtins.c: New file.
9047         * parse.y (patch_invoke): Use build_call_or_builtin.
9048         * java-tree.h (build_call_or_builtin): Declare.
9049         (initialize_builtins): Declare.
9050         (java_set_exception_lang_code): Removed unused declaration.
9051         (PREDEF_FILENAMES_SIZE): Removed.
9052         (java_tree_index): Added JTI_PREDEF_FILENAMES.
9053         (predef_filenames): New define.
9054         (add_predefined_file): Declare.
9055         (predefined_filename_p): Declare.
9056         * expr.c (expand_invoke): Use build_call_or_builtin.
9057
9058 2002-01-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9059
9060         * parse.y (patch_switch_statement): Fix format specifier.
9061
9062 2002-01-16  Tom Tromey  <tromey@redhat.com>
9063
9064         More for PR java/5365:
9065         * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
9066         default.
9067         (process_file): Generate include for
9068         java.lang.UnsupportedOperationExceptions.
9069
9070 2002-01-15  Andreas Jaeger  <aj@suse.de>
9071
9072         * .cvsignore: Add man pages.
9073
9074 2002-01-15  Tom Tromey  <tromey@redhat.com>
9075
9076         Fix for PR java/5365:
9077         * gjavah.c (process_file): Turn class name into a file name.
9078
9079 2002-01-14  Matthias Klose  <doko@debian.org>
9080
9081         * gcj.texi: Fix whitespace and formatting errors in the
9082         synopsis of the man pages. Update copyright.
9083
9084 2002-01-14  Tom Tromey  <tromey@redhat.com>
9085
9086         For PR libgcj/5303:
9087         * Make-lang.in (java.install-man): Handle jv-convert man page.
9088         (java.generated-manpages): Added jv-convert.1.
9089         (java.uninstall): Remove jv-convert.1.
9090         (java.maintainer-clean): Likewise.
9091         ($(srcdir)/java/jv-convert.1): New target.
9092         * gcj.texi (Top): Link to jv-convert node.
9093         (Individual utilities): Likewise.
9094         (Invoking jv-convert): New node.
9095
9096 2001-01-10  Jeff Sturm  <jsturm@one-point.com>
9097             Martin Kahlert  <martin.kahlert@infineon.com>
9098
9099         * jcf-parse.c (get_constant): Don't swap lo/hi for big
9100         endian targets when HOST_BITS_PER_WIDE_INT >= 64.
9101
9102 2002-01-03  Graham Stott  <grahams@redhat.com>
9103
9104         * class.c (compile_resource_file): Update copyright date.
9105         Constify filename parameter.
9106         (java-tree.h): Update copyright date.
9107         (compile_resource_file): Constify filename parameter.
9108
9109 2002-01-03  Graham Stott  <grahams@redhat.com>
9110
9111         * gcc/jcf-parse.c: Update copyright date.
9112         (yyparse): Constify resource_filename.
9113
9114 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9115
9116         * parse.y (src_parse_roots): Don't needlessly zero init.
9117
9118 2001-12-31  Tom Tromey  <tromey@redhat.com>
9119
9120         * parse.y (dump_java_tree): New function.
9121         (source_end_java_method): Call it.
9122         (end_class_declaration): Likewise.
9123         * lang.c (java_decode_option): Call dump_switch_p.
9124
9125 2001-12-28  Tom Tromey  <tromey@redhat.com>
9126
9127         * gen-table.pl: Don't process characters after \uffff.  Added
9128         comment pointing to input file.
9129
9130 2001-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9131
9132         * gen-table.pl: Const-ify output.  Document the location of a
9133         suitable unicode input file.
9134
9135         * chartables.h: Regenerate.
9136
9137 2001-12-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9138
9139         * chartables.h: Const-ify.
9140         * gjavah.c (options): Likewise.
9141         * jcf-dump.c (options): Likewise.
9142         * jv-scan.c (options): Likewise.
9143         * lex.c (java_start_char_p, java_part_char_p): Likewise.
9144         * parse.y (binop_lookup): Likewise.
9145
9146 2001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9147
9148         * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
9149         the static arrays that are output.
9150         * jvspec.c (jvgenmain_spec): Make static.
9151         * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
9152         * keyword.h: Regenerate.
9153         * lang.c (string_option, process_option_with_no, lang_f_options,
9154         lang_W_options): Const-ify.
9155         * lex.c (java_lex): Likewise.
9156
9157 2001-12-21  Richard Henderson  <rth@redhat.com>
9158
9159         * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
9160         (get_boehm_type_descriptor): ... here.  Arrange for the
9161         TREE_TYPE to get set properly.
9162
9163 2001-12-21  Richard Henderson  <rth@redhat.com>
9164
9165         * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
9166         only if the target requires collect2.
9167
9168         * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
9169
9170 2001-12-20  Tom Tromey  <tromey@redhat.com>
9171
9172         For PR java/4509:
9173         * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
9174         CAN_COMPLETE_NORMALLY for the node.
9175         * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
9176         generate code for second branch if first branch can't complete
9177         normally.
9178         (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
9179         the loop head if the loop body can't complete normally.
9180
9181 2001-12-20  Tom Tromey  <tromey@redhat.com>
9182
9183         For PR java/4766:
9184         * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
9185         case where `finally' clause can't complete normally.
9186
9187 2001-12-20  Tom Tromey  <tromey@redhat.com>
9188
9189         Fixes PR java/5057:
9190         * parse.y (analyze_clinit_body): Added this_class parameter.
9191         Check for more cases where we must keep <clinit>.
9192         (maybe_yank_clinit): Cleaned up flow control.
9193
9194 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9195
9196         * decl.c (java_init_decl_processing): Don't initialize
9197         finit_leg_identifier_node.
9198         * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
9199         (finit_leg_identifier_node): Remove.
9200         (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
9201
9202 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9203
9204         * mangle.c (mangle_member_name): Don't special-case for
9205         NO_DOLLAR_IN_LABEL.
9206         * mangle_name.c (unicode_mangling_length): Likewise.
9207         (append_unicode_mangled_name): Likewise.
9208         * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
9209         code.
9210
9211 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9212
9213         * expr.c (build_java_array_length_access): Don't force null pointer
9214         check unless flag_check_references is set.
9215
9216 2001-12-20  Tom Tromey  <tromey@redhat.com>
9217
9218         Fix for PR java/3417:
9219         * parse.y (patch_assignment): Added special processing for
9220         `return'.
9221         (patch_return): Don't convert booleans to integers, and don't
9222         special-case `null'.
9223
9224 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
9225
9226         * config-lang.in (diff_excludes): Remove.
9227
9228 2001-12-17  Joseph S. Myers  <jsm28@cam.ac.uk>
9229
9230         * gcj.texi: Update link to GCC manual.
9231
9232 2001-12-17  Tom Tromey  <tromey@redhat.com>
9233
9234         * parse.y (link_nested_class_to_enclosing): Removed useless
9235         statement.
9236
9237 2001-12-16  Tom Tromey  <tromey@redhat.com>
9238
9239         * mangle.c (mangle_method_decl): Never emit `C2' constructor.
9240         Fixes PR java/5088.
9241
9242 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
9243
9244         * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
9245         jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
9246         spelling errors.
9247
9248 2001-12-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9249
9250         * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
9251
9252 2001-12-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9253
9254         * decl.c (java_init_decl_processing): Build otable_type correctly.
9255         otable_decl is an otable_type.
9256
9257 2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9258
9259         * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
9260         otable_type, otable_ptr_type, method_symbol_type,
9261         method_symbols_array_type, method_symbols_array_ptr_type): New
9262         field/global tree definitions.
9263         (flag_indirect_dispatch): New flag.
9264         * decl.c (java_init_decl_processing): Initialize new otable and
9265         otable_syms type nodes and decls. Add new field "index" to
9266         method_type_node.
9267         * class.c (build_method_symbols_entry): New function.
9268         (make_method_value): Set "index" to to method's vtable index for
9269         virtual methods when indirect-dispatch is not used.
9270         (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
9271         and set vtable_method_count to -1. Set otable and otable_syms field
9272         if indirect-dispatch is used and there was something to put in them.
9273         (build_method_symbols_entry): New function.
9274         (emit_offset_symbol_table): New function.
9275         * expr.c (get_offset_table_index): New function.
9276         (build_invokevirtual): Build array reference to otable at the index
9277         returned by get_offset_table_index, and use the result as the vtable
9278         offset.
9279         (build_invokeinterface): Similar.
9280         * jcf-parse.c (yyparse): If indirect-dispatch, call
9281         emit_offset_symbol_table at the end of compilation, after all classes
9282         have been generated.
9283         * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
9284         * lang.c (flag_indirect_dispatch): Define.
9285         (lang_f_options): Add indirect-dispatch flag.
9286
9287 2001-12-14  Matthias Klose  <doko@debian.org>
9288
9289         * gcj.texi: Markup for man page generation. Document missing
9290         options printed by <tool> --help.
9291         Terminate description of gij's -ms option with a dot.
9292         * Make-lang.in ($(srcdir)/java/*.1): New targets.
9293         (java.generated-manpages java.install-man, java.uninstall,
9294         java-maintainer-clean) Updated.
9295
9296 2001-12-14  Hans Boehm  <Hans_Boehm@hp.com>
9297
9298         * class.c (get_dispatch_table): Fix java vtable layout
9299         for TARGET_VTABLE_USES_DESCRIPTORS.
9300         * decl.c (java_init_decl_processing): Initialize
9301         alloc_no_finalizer_node, finalize_identifier_node.
9302         * expr.c (class_has_finalize_method): New function.
9303         (expand_java_NEW): Generate calls for finalizer-free allocation.
9304         (build_invokevirtual): Fix java vtable layout for
9305         TARGET_VTABLE_USES_DESCRIPTORS.
9306         * java-tree.h (enum java_tree_index): New entries:
9307         JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
9308         (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
9309         (class_has_finalize_method): declare.
9310         (HAS_FINALIZER_P): New macro.
9311         * parse.y (patch_invoke): Generate calls for finalizer-free
9312         allocation.
9313
9314 2001-12-12  Matthias Klose  <doko@debian.org>
9315
9316         * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
9317         whitespace at end of line.
9318
9319 2001-12-11  Tom Tromey  <tromey@redhat.com>
9320
9321         * lex.c (java_init_lex): Define wfl_to_string as
9322         gnu.gcj.runtime.StringBuffer unless generating bytecode.
9323
9324 2001-12-11  Jeff Sturm  <jsturm@one-point.com>
9325
9326         * class.c (make_method_value): Use null_pointer_node to
9327         represent empty exception table.
9328
9329 2001-12-10  Tom Tromey  <tromey@redhat.com>
9330
9331         * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
9332
9333 2001-12-10  Douglas B. Rupp  <rupp@gnat.com>
9334
9335         * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
9336
9337 2001-12-09  Per Bothner  <per@bothner.com>
9338
9339         * check-init.c (current_switch_has_default):  New static field.
9340         (check_init):  Case DEFAULT_EXPR: Set current_switch_has_default.
9341         Case SWITCH_EXPR:  Save/restore current_switch_has_default.  If no
9342         DEFAULT_EXPR seen, simulate a default alternative that copies state.
9343
9344 2001-12-09  Tom Tromey  <tromey@redhat.com>
9345
9346         * check-init.c (check_init): Don't allow pre- or post- increment
9347         or decrement of final variable.
9348         (final_assign_error): Minor error message rewording.
9349
9350 2001-12-08  Tom Tromey  <tromey@redhat.com>
9351
9352         * java-tree.h: Fixed typo.
9353
9354         * gjavah.c (decompile_method): Don't decompile to `return this'
9355         for static methods.
9356
9357         * gjavah.c (cxx_keywords): Re-sorted.
9358         * lex.c (cxx_keywords): Re-sorted.
9359
9360         * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
9361         else.
9362
9363         * gjavah.c (print_namelet): Clear subnamelets.
9364         (HANDLE_METHOD): Set `method_printed' earlier.
9365
9366 2001-12-07  Tom Tromey  <tromey@redhat.com>
9367
9368         * lang.c (lang_f_options): Added
9369         optimize-static-class-initialization.
9370         (java_decode_option): Removed special case.
9371
9372 2001-12-07  Per Bothner  <per@bothner.com>
9373
9374         * check-init.c (check_init):  Fix typo freeing memory twice.
9375
9376 2001-12-05  Per Bothner  <per@bothner.com>
9377
9378         Restore support for static class initialization optimization.
9379         * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
9380         * check-init.c (check_int):  At end of BLOCK handle initialization
9381         blocks, which used to be done in java_complete_expand_method but did
9382         not handle the case where check_for_initialization might allocate
9383         more than a word of bits.
9384         * decl.c (lang_make_tree):  The smic field is now a tree.
9385         * expr.c (build_class_init):  Set DECL_FUNCTION_INIT_TEST_CLASS field.
9386         * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE):  New macro.
9387
9388         * parse.y (emit_test_initialization):  Combine hash_lookup calls.
9389
9390         * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
9391         Change from a hash table to a list.
9392         (struct_lang_decl):  Change field 'smic' to match.
9393         * class.c (add_method_1):  Initialize
9394         DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
9395         * parse.y (adjust_init_test_initialization):  Removed - inlined into -
9396         (java_expand_method_bodies): -here, since 'smic' is now a list.
9397         (patch_invoke):  Add to 'smic' list, instead of hash_lookup.
9398
9399         * check-init.c (WORD_SIZE):  Use BITS_PER_UNIT.
9400
9401         * class.c (java_hash_compare_tree_node):  Fix casts.
9402
9403 2001-12-04  Per Bothner  <per@bothner.com>
9404
9405         * check-init.c:   Handle definite unassignment to finals in addition
9406         to definite assignment.
9407         (loop_current_locals):  New field.
9408         (num_current_locals, int start_current_locals, num_current_words):
9409         Make static.
9410         (SET_P, CLEAR_P, SET_BIT):  Add needed but missing parentheses.
9411         (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
9412         CLEAR_ASSIGNED, CLEAR_UNASSIGNED):  New macros.
9413         (get_variable_decl, check_final_reassigned):  New functions.
9414         (check_init, check_bool_init):  Modify as needed for checking finals.
9415         (check_for_initialization):  Take extra parameter and return void.
9416         Do extra start-up logic to check final fields for assignment.
9417         * parse.y (check_static_final_variable_assignment_flag,
9418         reset_static_final_variable_assignment_flag, check_final_assignment,
9419         check_final_variable_local_assignment_flag,
9420         reset_final_variable_indirect_assignment_flag,
9421         reset_final_variable_global_assignment_flag):  Remove functions.
9422         (java_complete_expand_methods, outer_field_access_fix,
9423         patch_assignment): Remove no-longer used logic.
9424         * java-tree.h (DECL_FIELD_FINAL_IUD):  Change usage and comments.
9425         * parse.y (register_fields, java_complete_tree):  Update accordingly.
9426
9427         * check-init.c (ALLOC_WORDS/FREE_WORDS):  Use xmalloc/free, not alloca.
9428         (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER):  New.
9429         (check_cond_init, check_bool2_init):  Use DECLARE_BUFFERS.
9430
9431         * java-tree.h (STATIC_CLASS_INIT_OPT_P):  Temporarily turn off.
9432
9433         * java-tree.h (DECL FINAL):  New bit-field.
9434         (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL):  Define as DECL_FINAL.
9435         (LOCAL_FINAL_P):  Use DECL_FINAL rather than old LOCAL_FINAL.
9436         (DECL_INIT_CALLS_THIS):  New macro.
9437         (struct lang_decl):  New bit-field init_calls_this.
9438         (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
9439         DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
9440         (DECL_BIT_INDEX):  Change to use pointer_alias_set since we now
9441         use it for both local variables and final fields.
9442         (struct lang_decl_var):  Remove bit-fields final_liic, final_ierr,
9443         and local_final.
9444         (struct lang_type):  Remove hfv bit-field.
9445         (check_for_initialization):  Change to return void.
9446
9447         * java-tree.h (IS_ARRAY_LENGTH_ACCESS):  New macros.
9448         * expr.c (build_java_array_length_access):  Set IS_ARRAY_LENGTH_ACCESS.
9449         * check-init.c (final_assign_error):  New helper function.
9450         (check_final_reassigned, check_init):  Use it.
9451         (check_init):  Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
9452
9453         * java-tree.h (struct lang_decl, struct lang_decl_var):  Change all
9454         bit-fields to unsigned.
9455
9456 2001-12-03  Per Bothner  <per@bothner.com>
9457
9458         * parse.y (patch_binop):  Minor constant folding.
9459
9460         * parse.y (build_current_thisn):  Shorter 'buffer'.
9461
9462 2001-12-03  Per Bothner  <per@bothner.com>
9463
9464         * decl.c (complete_start_java_method):  Now generate TRY_FINALLY_EXPR
9465         instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
9466         * jcf-write.c (generate_bytecode_insns):  Remove support for
9467         CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
9468         * check-init.c (check_init):  Likewise.
9469
9470 2001-12-03  Per Bothner  <per@bothner.com>
9471
9472         * verify.c (subroutine_nesting):  New function.
9473         (verify_jvm_instructions):  Use it to fix logic for checking that
9474         we're done with the current subroutine.
9475
9476         * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
9477         OPCODE_instanceof use POP_TYPE macro for better diagnostics.
9478
9479 2001-12-03  Per Bothner  <per@bothner.com>
9480
9481         * jcf.h:  Fix obvious typo in comment.
9482         * typeck.c (build_null_signature):  Add comment.
9483
9484 2001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
9485
9486         * expr.c: Remove leading capital from diagnostic messages, as
9487         per GNU coding standards.
9488         * jcf-io.c: Similarly.
9489         * jcf-parse.c: Similarly.
9490         * jv-scan.c: Similarly.
9491         * jvspec.c: Similarly.
9492         * mangle.c: Similarly.
9493
9494 2001-12-02  Tang Ching-Hui  <nicholas@cs.nthu.edu.tw>
9495             Alexandre Petit-Bianco  <apbianco@redhat.com>
9496
9497         * expr.c (build_java_arrayaccess): Call save_expr on array for
9498         correct evaluation order, modified comment, fixed indentation.
9499         * parse.y: (patch_assignment): Correctly extract the array base
9500         from the tree generate by build_java_arrayaccess, added comments.
9501         (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
9502         Fixes PR java/3096, PR java/3803, PR java/3965.
9503
9504 2001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
9505
9506         * expr.c (expand_byte_code): Remove trailing periods from messages.
9507         * jcf-parse.c (load_class, jcf_parse): Similarly.
9508         * jcf-write.c (generate_classfile): Similarly.
9509         * lex.c (java_lex): Similarly.
9510
9511 2001-11-30  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9512
9513         * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
9514
9515 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
9516
9517         * Make-lang.in (java.generated-manpages): New dummy target.
9518
9519 2001-11-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9520
9521         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9522         ASM_FINAL_SPEC.
9523         (lang_specific_pre_link): Use set_input to set input_filename.
9524         Append `main' here.
9525         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9526         (main): Fix definition.
9527         Strip `main' from classname.
9528         Fixes PR java/227.
9529
9530 2001-11-18  Roger Sayle <roger@eyesopen.com>
9531
9532         * parse.h (java_expand_switch): Remove old prototype.
9533
9534 2001-11-18  Tom Tromey  <tromey@redhat.com>
9535
9536         Fix for PR java/1401:
9537         * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
9538         arg0 is null.
9539         (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
9540         correctly.
9541
9542 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
9543
9544         * lang.c (finish_parse): Rename to java_finish.
9545         (LANG_HOOKS_FINISH, java_finish): New.
9546
9547 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
9548
9549         * decl.c (init_decl_processing): Rename java_init_decl_processing.
9550         * java-tree.h: New prototype.
9551         * lang.c (java_init): Update prototype.  Combine with old init_parse.
9552
9553 2001-11-13  Tom Tromey  <tromey@redhat.com>
9554
9555         * gjavah.c (method_signature): New global.
9556         (HANDLE_METHOD): Set it.
9557         (decompile_return_statement): New function.
9558         (decompile_method): Use it.
9559         (print_method_info): Removed `synth' argument.
9560
9561 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9562
9563         * java-tree.h (java_set_yydebug): New.
9564         * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
9565         * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
9566         (print_lang_decl, print_lang_type, print_lang_identifier,
9567         print_lang_statistics, lang_print_xnode): Remove.
9568
9569 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9570
9571         * jcf-parse.c (init_lex): Remove.
9572         * lang.c (language_string, lang_identify): Remove.
9573         (struct lang_hooks): Constify.
9574         (LANG_HOOKS_NAME): Override.
9575         (init_parse): Update.
9576
9577 2001-11-08  Andreas Franck  <afranck@gmx.de>
9578
9579         * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
9580         program_transform_name the way suggested by autoconf.
9581         (java.install-common): Also transform auxiliary program names with
9582         program_transform_name.
9583
9584 2001-11-08  Tom Tromey  <tromey@cygnus.com>
9585
9586         * parse.y (trap_overflow_corner_case): New rule.
9587         (unary_expression): Use it.
9588         * lex.c (java_init_lex): Don't set minus_seen.
9589         (yylex): Don't use minus_seen.  Communicate overflow to parser for
9590         it to handle.
9591         (error_if_numeric_overflow): New function.
9592         * parse.h (minus_seen): Removed field.
9593         (JAVA_RADIX10_FLAG): New define.
9594
9595 2001-11-07  Tom Tromey  <tromey@redhat.com>
9596
9597         Patch for PR java/1414:
9598         * parse.y (case_label_list): New global.
9599         (goal): Register case_label_list with GC.
9600         (java_complete_lhs): Save new case on case_label_list.
9601         (patch_switch_statement): Check for duplicate case labels.
9602
9603 2001-11-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
9604
9605         * parse.y (patch_assignment): Removed unused third argument.
9606         (java_complete_lhs): Removed unused third argument to patch_assignment.
9607
9608 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9609
9610         * lang.c: Include langhooks-def.h.
9611         * Make-lang.in: Update.
9612
9613 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
9614
9615         * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
9616
9617 2001-10-29  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9618
9619         * mangle.c (find_compression_record_match): Don't match compression
9620         records for package name elements unless they occur at the start of
9621         the name. Fix for PR java/4717.
9622
9623 2001-10-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9624
9625         * expr.c (expand_java_field_op): Don't special-case references to
9626         java.lang.PRIMTYPE.TYPE.
9627         (build_primtype_type_ref): Removed.
9628         * java-tree.h (build_primtype_type_ref): Remove prototype.
9629         * parse.y (maybe_build_primttype_type_ref): Removed.
9630         (complete_function_arguments): Don't special-case references to
9631         java.lang.PRIMTYPE.TYPE.
9632         (patch_assignment): Likewise.
9633         (array_constructor_check_entry): Likewise.
9634
9635 2001-10-24  Alexandre Petit-Bianco  <apbianco@redhat.com>
9636
9637         * mangle.c (static tree compression_table): Fixed leading comment.
9638         * parse.h (struct parser_ctxt): Fixed field comment.
9639         * parse.y (check_pkg_class_access): New prototype, fixed leading
9640         comment, new parameter used to emit error only if passed as true.
9641         (parse_check_super): Pass extra argument to check_pkg_class_access.
9642         (do_resolve_class): Likewise.
9643         (process_imports): Likewise.
9644         (read_import_dir): Fixed indentation.
9645         (find_in_imports_on_demand): New local class_type_name. Local
9646         node_to_use deleted. while loop changed into for loop. Report
9647         multiple definition only for accessible classes. Improved error
9648         message.
9649         (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
9650         assigned to parameter list, fixed indentation. while loop changed
9651         into for loop, restore TREE_CHAIN on local `tem' before the next
9652         iteration.
9653
9654 2001-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9655
9656         * lang.c (lang_get_alias_set): Deleted.
9657
9658 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9659
9660         * gjavah.c (jni_print_char): Fix thinko in last change.
9661
9662         * gjavah.c (jni_print_char, decode_signature_piece): Use
9663         safe-ctype macros and/or fold extra calls into fewer ones.
9664         * lex.c (java_read_unicode, java_lex): Likewise.
9665         * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
9666         JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
9667         * mangle_name.c (append_unicode_mangled_name,
9668         unicode_mangling_length): Likewise.
9669
9670 2001-10-17  Richard Henderson  <rth@redhat.com>
9671
9672         * Make-lang.in (java/lang.o): Depend on langhooks.h.
9673
9674 2001-10-15  Alexandre Petit-Bianco  <apbianco@redhat.com>
9675
9676         * lang.c (langhooks.h): Included.
9677         (LANG_HOOKS_INIT): Redefined.
9678         (LANG_HOOKS_INIT_OPTIONS): Likewise.
9679         (LANG_HOOKS_DECODE_OPTION): Likewise.
9680         (struct lang_hooks lang_hooks): New initialization.
9681
9682 2001-10-11  Per Bothner  <per@bothner.com>
9683
9684         * parse.y (patch_synchronized_statement):  Use a TRY_FINALLY_EXPR
9685         rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
9686         The former is simpler, and jcf-write.c handles it better.
9687         (java_complete_lhs):  No longer need to handle CLEANUP_POINT_EXPR
9688         or WITH_CLEANUP_EXPR.
9689         * jcf-write.c:  Revert Alex's change from 2000-10-18.  It is no
9690         longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
9691
9692         * parse.y (patch_if_else_statement):  If the condition is constant,
9693         optimize away the test.
9694
9695 2001-10-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
9696
9697         * parse.y (patch_cast): Call patch_string on the first operand of
9698         the incoming node, update it if necessary. Fixes PR java/4510.
9699
9700 2001-10-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9701
9702         * parse.y (find_as_inner_class): Don't disregard the enclosing scope
9703         when name qualifier matches a package name.
9704
9705 2001-10-08  Tom Tromey  <tromey@redhat.com>
9706
9707         Fix for PR java/4489:
9708         * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
9709         force a new label when computing `body_block'.
9710
9711 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9712
9713         * jcf-io.c (format_uint): Const-ify.
9714         * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
9715         * lex.c (java_get_line_col): Likewise.
9716         * parse.y (build_incdec): Likewise.
9717
9718 2001-10-05  Alexandre Petit-Bianco  <apbianco@redhat.com>
9719
9720         * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
9721         a NULL enclosing context if appropriate. Fixes PR java/4466.
9722
9723 2001-10-03  Alexandre Petit-Bianco  <apbianco@redhat.com>
9724
9725         * parse.y (patch_assignment): Use lvalue's original TYPE when
9726         building the final COMPOUND_EXPR.
9727         (try_reference_assignconv): Fixed leading comment.
9728
9729 2001-09-26  Alexandre Petit-Bianco  <apbianco@redhat.com>
9730
9731         * parse.y (check_final_variable_indirect_assignment): For
9732         COMPOUND_EXPR, return only if finals were found initialized
9733         properly, if not, keep on checking.
9734         (check_final_variable_global_assignment_flag): New local
9735         error_found, set when appropriate and used to decide whether to
9736         report uninitialized finals. Fixed typo in comment.
9737
9738 2001-09-22  Alexandre Petit-Bianco  <apbianco@redhat.com>
9739
9740         * decl.c (init_decl_processing): Fixed typo in predef_filenames
9741         last three initializations. Fixes PR java/4360.
9742
9743 2001-09-21  Richard Henderson  <rth@redhat.com>
9744
9745         * class.c (get_dispatch_table): Handle function descriptors.
9746         (build_dtable_decl): Likewise.
9747         * expr.c (build_invokevirtual): Likewise.
9748
9749 2001-09-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
9750
9751         * parse.y (patch_method_invocation): Build class initialization
9752         when static finals are used to qualify method invocation.
9753         Fixes PR java/4366.
9754
9755 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
9756
9757         * parse.h: (WFL_STRIP_BRACKET): Re-written using
9758         build_type_name_from_array_name.
9759         (STRING_STRIP_BRACKETS): New macro.
9760         * parse.y (build_type_name_from_array_name): New function.
9761         (array_creation_expression:): Accumulate []s instead of [s.
9762         (cast_expression:): Accumulate []s instead of [s after cast type
9763         name.
9764         (build_array_from_name): Local string deleted, use
9765         build_type_name_from_array_name.
9766         (build_unresolved_array_type): Accumulate []s instead of [s after
9767         type name.
9768         (register_fields): Fixed comment.
9769         (resolve_class): Local name, base deleted, new locals tname and
9770         array_dims. Use build_type_name_from_array_name. Use array_dims to
9771         build array type.
9772         (purify_type_name): Use STRING_STRIP_BRACKETS.
9773
9774 2001-09-18  Andreas Jaeger  <aj@suse.de>
9775
9776         * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
9777         * jv-scan.c: Likewise.
9778
9779 2001-09-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
9780
9781         * parse.y (patch_method_invocation): Inner class creation context
9782         check not enforced within constructors. Fixes PR java/1873.
9783
9784 2001-09-16  Tom Tromey  <tromey@redhat.com>
9785
9786         * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
9787         NOTE_PUSH for single-case push.  Fixes PR java/4189.
9788
9789 2001-09-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
9790
9791         * java-tree.h (TYPE_IMPORT_LIST): New macro.
9792         (TYPE_IMPORT_DEMAND_LIST): Likewise.
9793         (struct lang_type): New fields import_list and import_demand_list.
9794         * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
9795         TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
9796         (do_resolve_class): New local saved_enclosing_type, initialized,
9797         passed as parameter to find_in_imports and find_in_imports_on_demand.
9798         (find_in_imports): Added paramater enclosing_type, use its
9799         TYPE_IMPORT_LIST when applicable.
9800         (find_in_imports_on_demand): Added parameter enclosing_type, use
9801         its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
9802         declaration and initialization.
9803         (fold_constant_for_init): Switch/restore current_class to the
9804         appropriate context.
9805
9806 2001-09-13  Mark Mitchell  <mark@codesourcery.com>
9807
9808         * verify.c (verify_jvm_instructions): Fix typo.
9809
9810 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9811
9812         * expr.c (expand_invoke): Const-ification.
9813         * parse.y (patch_method_invocation): Likewise.
9814
9815 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9816
9817         * gjavah.c (cxx_keywords): Const-ification.
9818         * keyword.gperf (java_keyword): Likewise.
9819         * lang.c (java_tree_code_name): Likewise.
9820         * lex.c (cxx_keywords): Likewise.
9821         * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
9822
9823 2001-09-11  Richard Henderson  <rth@redhat.com>
9824
9825         * parse.h (ctxp_for_generation): Mark extern.
9826
9827 2001-09-10  Richard Henderson  <rth@redhat.com>
9828
9829         * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
9830
9831 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
9832
9833         * typeck.c (java_array_type_length, build_prim_array_type):
9834         Represent empty arrays by NULL index.
9835
9836 2001-09-06  Alexandre Petit-Bianco  <apbianco@redhat.com>
9837
9838         * java-tree.h (compile_resource_file): Grouped with other prototypes.
9839         * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
9840
9841 2001-09-06  Anthony Green  <green@redhat.com>
9842
9843         * class.c (O_BINARY): Define if necessary.
9844         (registerResource_libfunc): Declare.
9845         (init_class_processing): Initilize registerResource_libfunc.
9846         (compile_resource_file): New function.
9847         * java-tree.h (resource_name): Declare.
9848         (compile_resource_file): Declare.
9849         * jcf-parse.c (yyparse): Handle compiling java resource files.
9850         * lang.c (java_decode_option): Handle -fcompile-resource option.
9851         * jvspec.c (lang_specific_driver): Handle -R flag for compiling
9852         resource files.
9853         * gcj.texi (Code Generation): Add documentation for -R flag.
9854
9855 2001-09-05 Alexandre Petit-Bianco  <apbianco@redhat.com>
9856
9857         * jcf-write.c (generate_classfile): Issue an error in case of
9858         field/initial value mismatch.
9859         * parse.y (analyze_clinit_body): Keep <clinit> if an array is
9860         being initialized and we're generating bytecode.
9861         (java_complete_lhs): In MODIFY_EXPR section: added comments,
9862         set DECL_INITIAL properly when appropriate.
9863         Fixes PR java/4230
9864         Fixes PR java/4204
9865
9866 2001-09-01  Per Bothner  <per@bothner.com>
9867
9868         * parse.y (maybe_yank_clinit):  A field without an initializer is not
9869         relevant.  All initializers except static final and constant require
9870         <clinit>, regardless of flag_emit_class_files.
9871
9872 2001-08-31  Per Bothner  <per@bothner.com>
9873
9874         * class.c (set_constant_value):  When not emitting class files, then a
9875         String ConstantValue is a utf8const_ptr_type.
9876
9877 2001-08-30  Per Bothner  <per@bothner.com>
9878
9879         * jcf-write.c (generate_classfile):  Check that field is primitive
9880         or string before emitting ConstantValue attribute.
9881
9882 2001-08-30  Per Bothner  <per@bothner.com>
9883
9884         * parse.y (resolve_qualified_expression_name):  If creating a
9885         COMPOUND_EXPR, set it's type correctly.
9886
9887 2001-08-30  Per Bothner  <per@bothner.com>
9888
9889         * jcf-io.c (open_class):  Set filename field.
9890
9891         * jcf-parse,c (parse_class_file):  Set current_function_decl
9892         for better error message when Code attribute is missing.
9893
9894         * lang.c (put_decl_node, lang_print_error):  Re-arrange for
9895         better diagnostics, especially for constructors.
9896
9897 2001-08-30  Per Bothner  <per@bothner.com>
9898
9899         * jcf-write.c (generate_classfile):  Don't write ConstantValue
9900         attribute if field is not final, for compatibility with jdk.
9901
9902         * jcf-write.c (generate_classfile):  Convert ConstantValue values
9903         to correct type.  Work-around for front-end bug.
9904         * class.c (set_constant_value):  Error if constant has wrong type.
9905
9906 2001-08-30  Per Bothner  <per@bothner.com>
9907
9908         * jcf-dump.c (print_constant):  Fix fencepost error so "Float" and
9909         "Double" are printed at verbosity 1.
9910
9911         * jcf-dump.c (main):  Disable flag_print_attributes if --javap.
9912
9913         * jcf-dump.c (SPECIAL_IINC):  Remove unneeded casts to long.
9914
9915 2001-08-30  Alexandre Petit-Bianco  <apbianco@redhat.com>
9916
9917         * parse.y (patch_assignment): Don't verify final re-assignment here.
9918         (java_complete_lhs): Verify assignments to finals calling
9919         patch_assignment. Verify re-assignments to finals before calling
9920         patch_assignment.
9921
9922 2001-08-29  Alexandre Petit-Bianco  <apbianco@redhat.com>
9923
9924         * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
9925         Fixes PR java/1413
9926
9927 2001-08-28  Alexandre Petit-Bianco  <apbianco@redhat.com>
9928
9929         * lex.c (java_lex): new local found_hex_digits. Set and then used
9930         in test to reject invalid hexadecimal numbers.
9931         * parse.y (java_complete_tree): Prevent unwanted cast with
9932         initialized floating point finals.
9933         (patch_binop): Emit a warning when detecting a division by zero,
9934         mark result not constant, don't simplify non integer division.
9935
9936 2001-08-28  Per Bothner  <per@bothner.com>
9937
9938         * jcf-write.c  (generate_bytecode_insns):  For increments and
9939         decrements just recurse to push constant.  Improvement on Mark's patch.
9940
9941 2001-08-28  Mark Mitchell  <mark@codesourcery.com>
9942
9943         * jcf-write.c (generate_bytecode_insns): Generate an integer to
9944         real conversion for increments and decrements of reals.
9945
9946 2001-08-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
9947
9948         * parse.y (resolve_qualified_expression_name): Handle unresolved
9949         qualified expressions, prevent numerical qualifiers, fixed typo.
9950         Fixes PR java/4141
9951
9952 2001-08-24  Alexandre Petit-Bianco  <apbianco@redhat.com>
9953
9954         * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
9955         don't report anything but deprecated class when marked so. Handle
9956         VAR_DECL.
9957         (patch_method_invocation): Check deprecation on methods and types.
9958         (patch_binop): code becomes an enum tree_code, added default: to
9959         switch to handle that. Detect division by zero, try to fold and
9960         return before using a subroutine.
9961
9962 2001-08-23  Alexandre Petit-Bianco  <apbianco@redhat.com>
9963
9964         * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
9965         file smaller than 4 bytes.
9966         * parse.y (check_inner_circular_reference): New function.
9967         (check_circular_reference): Likewise.
9968         (array_initializer:): Accept {,}.
9969         (java_check_circular_reference): Rewritten using
9970         check_circular_reference and check_inner_circular_reference.
9971         (java_complete_expand_method): Unconditionally save and restore
9972         the unpurged exception list.
9973         (build_dot_class_method_invocation): Unmangle signature parameter.
9974
9975 2001-08-21  Tom Tromey  <tromey@redhat.com>
9976
9977         * decl.c (init_decl_processing): Add `throws' field to method
9978         descriptor.
9979         * class.c (make_method_value): Compute `throws' field for method.
9980
9981 2001-08-22  Alexandre Petit-Bianco  <apbianco@redhat.com>
9982
9983         * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
9984         circularity is detected.
9985         (ctors_unchecked_throws_clause_p): Fixed leading comment.
9986
9987 2001-08-17  Richard Henderson  <rth@redhat.com>
9988
9989         * class.c (emit_register_classes): Add align parameter to
9990         call to assemble_integer.
9991
9992 2001-08-16  Alexandre Petit-Bianco  <apbianco@redhat.com>
9993
9994         * jcf-parse.c (load_class): New locals saved and class_loaded. If
9995         loading a class_or_name fails, try considering an innerclass name
9996         and load the enclosing context.
9997         * parse.y (resolve_inner_class): New function.
9998         (find_as_inner_class): Added leading comment.
9999         (register_incomplete_type): Keep the current context as enclosing
10000         context for JDEP_FIELD dependencies.
10001         (do_resolve_class): Locals new_class_decl and super initialized to
10002         NULL. Call resolve_inner_class, explore the enclosing context
10003         superclass if necessary.
10004         Fixes PR java/4007
10005
10006 2001-08-16  Tom Tromey  <tromey@redhat.com>
10007
10008         * jcf-dump.c (main): Updated for change to jcf_path_seal.
10009         * gjavah.c (main): Updated for change to jcf_path_seal.
10010         * lang.c (version_flag): New global.
10011         (java_decode_option): Recognize `-version'.
10012         (java_init): Update for change to jcf_path_seal.
10013         * jcf.h (jcf_path_seal): Added `print' argument.
10014         * jcf-path.c (jcf_path_seal): Added `print' argument.
10015
10016 2001-08-13  Zack Weinberg  <zackw@panix.com>
10017
10018         * Make-lang.in (java/decl.o): Update dependencies.
10019         * decl.c: Include libfuncs.h, don't include toplev.h.
10020
10021 2001-08-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
10022
10023         * decl.c (init_decl_processing): exception_type_node,
10024         class_not_found_type_node, and no_class_def_found_type_node
10025         initialized. predef_filenames augmented accordingly.
10026         instinit_identifier_node initialized.
10027         * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
10028         * java-tree.h (enum java_tree_index): New entries
10029         JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
10030         JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
10031         (exception_type_node): New macro.
10032         (class_not_found_type_node): Likewise.
10033         (no_class_def_found_type_node): Likewise.
10034         (instinit_identifier_node): Likewise.
10035         (PREDEF_FILENAMES_SIZE): Adjusted.
10036         (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
10037         (struct lang_type): Fixed typo in bitfield name.
10038         (DECL_INSTINIT_P): New macro.
10039         (ID_INSTINIT_P): Likewise.
10040         * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
10041         attribute.
10042         * parse.y (encapsulate_with_try_catch): New function.
10043         (generate_instinit): Likewise.
10044         (build_instinit_invocation): Likewise.
10045         (ctors_unchecked_throws_clause_p): Likewise.
10046         (add_instance_initializer): Deleted.
10047         (build_instance_initializer): Likewise.
10048         (in_instance_initializer): Likewise.
10049         (check_method_redefinition): instinit$ not to be verified.
10050         (java_complete_expand_methods): Generate instinit$, simplified code.
10051         (build_dot_class_method): Eliminated unnecessary locals. Use
10052         encapsulate_with_try_catch, removed unnecessary code.
10053         (fix_constructors): New local iii. Use build_instinit_invocation.
10054         (patch_method_invocation): Added comment.
10055         (maybe_use_access_method): Don't consider instinit$.
10056         (find_applicable_accessible_methods_list): Shorten the search for
10057         instinit$ too.
10058         (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
10059         (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
10060         (patch_throw_statement): Likewise. Fixed typo.
10061
10062 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
10063
10064         Revert:
10065         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10066         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10067         ASM_FINAL_SPEC.
10068         (lang_specific_pre_link): Use set_input to set input_filename.
10069         Append `main' here.
10070         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10071         (main): Fix definition.
10072         Strip `main' from classname.
10073         Fixes PR java/227.
10074
10075 2001-08-11  Zack Weinberg  <zackw@panix.com>
10076
10077         * lex.h: Don't include setjmp.h.  Don't define
10078         SET_FLOAT_HANDLER or prototype set_float_handler.
10079
10080 2001-08-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
10081
10082         * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
10083         `poplevel' in the right order.
10084
10085 2001-08-09  Richard Henderson  <rth@redhat.com>
10086
10087         * Make-lang.in (class.o): Depend on TARGET_H.
10088         * class.c (emit_register_classes): Use target hooks instead of
10089         assemble_constructor and assemble_destructor.
10090
10091 2001-08-08  Alexandre Petit-Bianco  <apbianco@redhat.com>
10092
10093         * check-init.c (flags.h): Include
10094         (check_init): Don't report uninitialized static class
10095         initialization flags, don't free bit index when doing static class
10096         initialization optimization.
10097         (check_for_initialization): Return type changed to `unsigned int.'
10098         (attach_initialized_static_class): New function.
10099         * class.c (add_method_1): Create the initialized static class
10100         table if necessary.
10101         (finish_class): Always emit deferred inline methods.
10102         * decl.c (emit_init_test_initialization): Moved to expr.c
10103         (complete_start_java_method): Don't traverse
10104         DECL_FUNCTION_INIT_TEST_TABLE.
10105         (lang_mark_tree): Mark hash tables in function decls.
10106         * expr.c (emit_init_test_initialization): Moved from decl.c.
10107         (build_class_init): Create LAG_DECL_SPECIFIC for the static class
10108         initialization flag, set DECL_CONTEXT and
10109         LOCAL_CLASS_INITIALIZATION_FLAG.
10110         (java_lang_expand_expr): Emit initialization code for static class
10111         initialized flags when entering block, if necessary.
10112         * gcj.texi (-fno-optimize-static-class-initialization): Documented.
10113         * java-tree.h (flag_optimize_sci): New global variable declaration.
10114         (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
10115         (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
10116         (LOCAL_FINAL_P): Fixed typo in comment.
10117         (FINAL_VARIABLE_P): Likewise.
10118         (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
10119         (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
10120         (struct lang_decl): New fields `ict', `smic' and `cif.'
10121         (check_for_initialization): New returned value for global.
10122         (attach_initialized_static_class): New global function.
10123         (STATIC_CLASS_INIT_OPT_P): New macro.
10124         * lang-options.h (-fno-optimize-static-class-initialization): New flag.
10125         * lang.c (java_decode_option): Handle
10126         `-fno-optimize-static-class-initialization'
10127         * parse.y (start_complete_expand_method): New function.
10128         (java_expand_method_bodies): Likewise.
10129         (attach_init_test_initialization_flags): Likewise.
10130         (adjust_init_test_initialization): Likewise.
10131         (emit_test_initialization): Likewise.
10132         (java_complete_expand_methods): Nullify abstract and native method
10133         bodies.
10134         (java_complete_expand_method): New locals `fbody', `block_body'
10135         and `exception_copy.' Reorganized: directly return on empty method
10136         bodies, call `start_complete_expand_method', remember definitely
10137         initialized static class in function, don't expand method bodies.
10138         (java_expand_classes): Call `java_expand_method_bodies' before
10139         `finish_class' when compiling to native.
10140         (resolve_expression_name): Use `orig' after building outer class
10141         field access.
10142         (patch_invoke): Remember static method invocations.
10143
10144 2001-08-06  Richard Henderson  <rth@redhat.com>
10145
10146         * class.c (emit_register_classes): Pass a symbol_ref and priority
10147         to assemble_constructor.
10148
10149 2001-08-02  Alexandre Petit-Bianco  <apbianco@redhat.com>
10150
10151         * java-tree.h (all_class_filename): New macro.
10152         (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
10153         (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
10154         newly created IDENTIFIER_NODE to `all_class_filename.'
10155
10156 2001-08-01  Jeff Sturm  <jsturm@one-point.com>
10157
10158         * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
10159         Use ggc_add_tree_root to register roots.
10160
10161 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
10162
10163         * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
10164         second operand calling check_init.
10165         * decl.c (complete_start_java_method): Swaped second and third
10166         arguments while creating WITH_CLEANUP_EXPR node.
10167         * jcf-write.c (generate_bytecode_insns): Use second operand
10168         instead of third when handling WITH_CLEANUP_EXPR.
10169         * parse.y (java_complete_lhs): Expand second operand of
10170         WITH_CLEANUP_EXPR nodes.
10171         (patch_synchronized_statement): Swaped second and third arguments
10172         while creating WITH_CLEANUP_EXPR node.
10173
10174 2001-07-18  Alexandre Petit-Bianco  <apbianco@redhat.com>
10175
10176         * parse.y (create_interface): Avoid cyclic inheritance report when
10177         syntax error encountered during class definition.
10178         Fixes PR java/2956
10179
10180 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10181
10182         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10183         ASM_FINAL_SPEC.
10184         (lang_specific_pre_link): Use set_input to set input_filename.
10185         Append `main' here.
10186         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10187         (main): Fix definition.
10188         Strip `main' from classname.
10189         Fixes PR java/227.
10190
10191 2001-07-18  Tom Tromey  <tromey@redhat.com>
10192
10193         For PR java/2812:
10194         * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
10195         * lex.c (java_new_lexer): Use ICONV_CONST.
10196         (java_read_char): Likewise.
10197         * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
10198         (jv-scan$(exeext)): Likewise.
10199
10200 2001-07-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
10201
10202         * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
10203         * parse.y (check_class_interface_creation): Allow `private' if the
10204         enclosing is not an interface.
10205         (create_interface): Interface tagged public if the enclosing
10206         context is an interface.
10207         (create_class): Class tagged public if the enclosing context
10208         is an interface.
10209         Fixes PR java/2959
10210
10211 2001-07-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
10212
10213         * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
10214         Fixes PR java/2665
10215
10216 2001-07-14  Tim Josling  <tej@melbpc.org.au>
10217
10218         * check-init.c (check_init): Remove references to EXPON_EXPR.
10219
10220 2001-07-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
10221
10222         * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
10223         TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
10224         Fixes PR java/3602
10225
10226 2001-07-13  Tom Tromey  <tromey@redhat.com>
10227
10228         * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
10229         invocation.
10230
10231 2001-07-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
10232
10233         * parse.y (patch_method_invocation): Don't override primary if one
10234         is already provided, but let this$<n> be built. Fixed comment.
10235
10236 2001-07-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
10237
10238         * parse.y (empty_statement:): Report empty statement error only
10239         when found at class declaration level.
10240         Fixes PR java/3635
10241
10242 2001-07-12  Tom Tromey  <tromey@redhat.com>
10243
10244         * expr.c (expand_load_internal): New function.
10245         (LOAD_INTERNAL): Use it.
10246
10247 2001-07-11  Alexandre Petit-Bianco  <apbianco@redhat.com>
10248
10249         * parse.y (verify_constructor_super): Compare anonymous class ctor
10250         args with `valid_method_invocation_conversion_p.'
10251         Fixes PR java/3285
10252
10253 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
10254
10255         * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
10256         `-fsyntax-only.' Fixes PR java/3248
10257
10258 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
10259
10260         * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
10261
10262 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
10263
10264         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
10265         current function is static. Fixes PR java/1970
10266
10267 2001-07-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
10268
10269         * parse.y (patch_method_invocation): Add enclosing context to ctor
10270         calls if necessary. Fixes PR java/2953
10271
10272 2001-07-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
10273
10274         * parse.y (resolve_package): Abort if qualified expression member
10275         isn't right.
10276         (qualify_ambiguous_name): Don't qualify as type if `this' in use.
10277         Fixes PR java/1391
10278
10279 2001-07-07  Zack Weinberg  <zackw@stanford.edu>
10280
10281         * verify.c: Don't use // comments.
10282
10283 2001-07-05  Tom Tromey  <tromey@redhat.com>
10284
10285         * lang.c (flag_assume_compiled): Removed.
10286         * java-tree.h (flag_assume_compiled): Removed.
10287         * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
10288         -fhash-synchronization, -fuse-divide-subroutine,
10289         -fcheck-references, -femit-class-file, -femit-class-files,
10290         -fassume-compiled.  Updated --encoding information.  Changed
10291         -foutput-class-dir to `-d'.
10292
10293 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
10294
10295         * jcf-parse.c (parse_class_file): Add lineno parameter to
10296         debug_start_source_file call.
10297
10298 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
10299
10300         * gcj.texi: Use gpl.texi.
10301         * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
10302         dependencies and use doc/include in search path.
10303
10304 2001-07-03  Jeff Sturm  <jsturm@one-point.com>
10305
10306         * parse.y (fix_constructors): Test if a CALL_EXPR invokes
10307         `this'.  If so, don't build instance initializers.
10308
10309 2001-07-03  Alexandre Petit-Bianco  <apbianco@redhat.com>
10310
10311         * parse.y (resolve_expression_name): Improved error message for
10312         inner class cases. Fixes PR java/1958
10313
10314 2001-06-28  Gabriel Dos Reis  <gdr@codesourcery.com>
10315
10316         * lang.c: #include diagnostic.h
10317         (lang_print_error): Add a `diagnostic_context *' parameter.
10318         (java_dummy_print): Likewise.
10319         * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
10320
10321 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
10322
10323         * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
10324         * jcf.h (typedef struct JCF): New bitfield `finished.'
10325         (JCF_FINISH): Set `finished.'
10326         (JCF_ZERO): Reset `finished.'
10327         Fixes PR java/2633
10328
10329 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
10330
10331         * parse.y (class_body_declaration:): Don't install empty instance
10332         initializers.
10333         Fixes PR java/1314
10334
10335 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
10336
10337         * class.c (set_super_info): Call `set_class_decl_access_flags.'
10338         (set_class_decl_access_flags): New function.
10339         * java-tree.h (set_class_decl_access_flags): New prototype.
10340         * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
10341         (parse_class_file): New local `decl_max_locals.' Take wide types
10342         into account to compute DECL_MAX_LOCALS.
10343         * parse.y (type_import_on_demand_declaration:): Ignore duplicate
10344         imports on demand.
10345
10346 2001-06-22  Jan van Male  <jan.vanmale@fenk.wau.nl>
10347
10348         * zipfile.h: Use GCC_JCF_H instead of JCF_H.
10349
10350 2001-06-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
10351
10352         * class.c (java_hash_tree_node): Fixed indentation in leading comment.
10353         * parse.y (do_resolve_class): Moved comments out to leading comment
10354         section. Removed local `start', New local `_ht' and
10355         `circularity_hash.'  Record `enclosing' in hash table and search
10356         it to detect circularity.  Use `enclosing' as an argument to
10357         `lookup_cl.' Free the hash table when done.
10358
10359 2001-06-19  Tom Tromey  <tromey@redhat.com>
10360
10361         * lex.c (java_read_char): Disallow invalid and overlong
10362         sequences.  Fixes PR java/2319.
10363
10364 2001-06-05  Jeff Sturm  <jsturm@one-point.com>
10365
10366         * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
10367
10368 2001-06-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
10369
10370         * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
10371         arguments accordingly.
10372
10373 2001-06-02  Joseph S. Myers  <jsm28@cam.ac.uk>
10374
10375         * gcj.texi: Move contents to just after title page.
10376
10377 2001-06-01  Alexandre Petit-Bianco  <apbianco@redhat.com>
10378
10379         * parse.y (type_literals:): Use `build_incomplete_class_ref' with
10380         builtin type.
10381         (patch_incomplete_class_ref): Build the class ref, build the class
10382         init if necessary, complete the tree.
10383         Fixes PR java/2605
10384
10385 2001-05-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
10386
10387         * parse.y (lookup_field_wrapper): Test `name' code.
10388         (resolve_qualified_expression_name): Test `qual_wfl' code.
10389         (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
10390         handle `qual_wfl' by code.
10391         (maybe_build_primttype_type_ref): Test `wfl' code.
10392
10393 2001-05-23  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
10394
10395         * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
10396         fdl.texi.
10397         (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls.  Create
10398         the dvi file in the java directory.
10399
10400 2001-05-25  Sam TH  <sam@uchicago.edu>
10401
10402         * gen-table.pl javaop.h jcf.h lex.h,
10403         parse.h: Fix header include guards.
10404
10405 2001-05-23  Joseph S. Myers  <jsm28@cam.ac.uk>
10406
10407         * jv-scan.c (version): Update copyright year.
10408
10409 2001-05-21  Per Bothner  <per@bothner.com>
10410
10411         * jcf-parse.c (read_class):  If class is from .class or .zip file
10412         and it's already been read, don't push/pop parser context.
10413
10414 2001-05-18  Per Bothner  <per@bothner.com>
10415
10416         * jvspec.c (lang_specific_pre_link):  Re-arrange the linker
10417         command line so the jvgenmain-generated main program comes first.
10418
10419 2001-05-15  Tom Tromey  <tromey@redhat.com>
10420
10421         * class.c (build_utf8_ref): Don't generate identifier based on
10422         utf8const contents.
10423
10424 2001-05-12  Richard Henderson  <rth@redhat.com>
10425
10426         * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
10427         * expr.c (java_lang_expand_expr): Expand it.
10428         (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
10429         calling build_exception_object_ref.
10430         * parse.y (catch_clause_parameter): Likewise.
10431         (build_dot_class_method): Likewise.
10432         (try_reference_assignconv): Likewise.
10433         * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
10434         * jcf-write.c (generate_bytecode_insns): Likewise.
10435
10436 2001-05-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
10437
10438         * parse.y (build_unresolved_array_type): Set
10439         EXPR_WFL_QUALIFICATION on the newly created wfl.
10440         Fixes PR java/2538. Fixes PR java/2535.
10441
10442 2001-05-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
10443
10444         * parse.y (fix_constructors): Removed unnecessary assignment to
10445         local. Moved assignment to `this$<n>', fixed comments and
10446         indentation.
10447         (build_wfl_wrap): Fixed indentation.
10448         Fixes PR java/2598, java/2579 and java/2658.
10449
10450 2001-05-03  Mo DeJong  <mdejong@redhat.com>
10451
10452         * lex.c (java_new_lexer): Call iconv_close on temp handle used to
10453         check for byte swap.
10454
10455 2000-05-02  Jeff Sturm  <jsturm@one-point.com>
10456
10457         * expr.c (build_class_init): Move MODIFY_EXPR
10458         outside of COND_EXPR.  Remove variable `call'.
10459
10460 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10461
10462         * decl.c: NULL_PTR -> NULL.
10463         * jcf-write.c: Likewise.
10464
10465 2001-05-01  Tom Tromey  <tromey@redhat.com>
10466
10467         * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
10468         (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
10469         * gcj.texi: Updated copyright text.  Include fdl.texi.
10470         (Top): Link to new node.
10471
10472 2001-05-01  Per Bothner  <per@bothner.com>
10473
10474         * parse.h (REGISTER_IMPORT):  Use tree_cons instead of chainon.
10475
10476 2001-05-01  Per Bothner  <per@bothner.com>
10477
10478         * parse.y (java_pop_parser_context):  The TREE_VALUE of a link in the
10479         import_list contains the name, not the TREE_PURPOSE.
10480
10481 2001-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10482
10483         * jcf-io.c (read_zip_member): Cast to long in comparison with
10484         signed value.
10485
10486         * jvspec.c (lang_specific_driver): Initialize variables.
10487
10488         * mangle.c (find_compression_record_match): Likewise.
10489
10490         * typeck.c (build_null_signature): Provide static prototype.  Mark
10491         parameter with ATTRIBUTE_UNUSED.
10492
10493         * verify.c (verify_jvm_instructions): Initialize variable.
10494
10495 2001-04-27  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
10496
10497         * parse.y (do_resolve_class): Check for cyclic inheritance during
10498         inner class resolution.
10499
10500 2001-04-27  Per Bothner  <per@bothner.com>
10501
10502         * parse.y (java_expand_classes):  Don't change ctxp_for_generation
10503         while iterating, since that could cause gc to lose stuff.
10504
10505 2001-04-26  Per Bothner  <per@bothner.com>
10506
10507         Fix method search wrt scope of inner classes to match JLS2.
10508         * typeck.c (build_null_signature):  New static function.
10509         (has_method):  New function.  Uses build_null_signature and lookup_do.
10510         * java-tree.h (has_method):  New declaration.
10511         * parse.y (find_applicable_accessible_methods_list):  Do not search
10512         context of inner classes here.
10513         (patch_method_invocation):  Search scope, ie. current and outer clases,
10514         for method matching simple name, to find class.
10515
10516 2001-04-26  Per Bothner  <per@bothner.com>
10517
10518         * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
10519         Fix thinko:  If a single case, use if_icmpeq, not ifeq.
10520
10521         * constants.c (find_methodref_with_class_index):  New function.
10522         (find_methodref_index):  Use find_methodref_with_class_index.
10523         * java-tree.h (find_methodref_with_class_index):  New declaration.
10524         * jcf-write.c (generate_bytecode_insns case CALL_EXPR):  Don't change
10525         DECL_CONTEXT, instead use new find_methodref_with_class_index function.
10526         If context changed from interface to class, don't use invokeinterface.
10527
10528 2001-04-25  Per Bothner  <per@bothner.com>
10529
10530         * verify.c (verify_jvm_instructions):  For field instructions,
10531         check that field index is valid.  For invoke instructions, check that
10532         method index is valid.
10533
10534 2001-04-25  Alexandre Oliva  <aoliva@redhat.com>
10535
10536         * config-lang.in (target_libs): Copy from $libgcj_saved.
10537
10538 2001-04-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
10539
10540         * decl.c (init_decl_processing): Add new class "protectionDomain"
10541         field.
10542         * class.c (make_class_data): Set initial value for "protectionDomain".
10543
10544 2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10545
10546         * jvspec.c (lang_specific_driver): Fix memory allocation
10547         deficit, by using concat in lieu of xmalloc/sprintf.
10548
10549 2001-04-20  Per Bothner  <per@bothner.com>
10550
10551         Fixes to compile multiple .class files at once.
10552         * decl.c (init_decl_processing):  Don't set CLASS_LOADED_P.
10553         * java-tree.h (CLASS_PARSED_P):  New macro.
10554         (CLASS_LOADED_P):  Re-define to use TYPE_SIZE and CLASS_PARSED_P.
10555         * jcf-parse.c (jcf_parse_source):  Inline into read_class.
10556         (read_class):  Avoid some code duplication.
10557         Don't call JCF_FINISH for a .class file - might be needed later.
10558         (jcf_parse):  Don't call layout_class here.  Check/set CLASS_PARSED_P
10559         rather than CLASS_LOADED_P, since latter implies class laid out.
10560         (yyparse):  Do layout_class and JCF_FINISh here instead, in pass 2.
10561         * parse.y:  Don't need to set CLASS_LOADED_P for array types.
10562
10563 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10564
10565         * Make-lang.in (java/boehm.o): Depend on toplev.h.
10566
10567         * boehm.c: Include toplev.h.
10568
10569 2001-04-06  Tom Tromey  <tromey@redhat.com>
10570             Alexandre Petit-Bianco  <apbianco@redhat.com>
10571
10572         Fix for PR gcj/1404 and PR gcj/2332:
10573         * parse.y (build_array_from_name): If we use the type_wfl then
10574         accumulate dimensions from the original type as well.
10575         (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
10576
10577 2001-04-06  Tom Tromey  <tromey@redhat.com>
10578
10579         * parse.y (analyze_clinit_body): Return true if the second operand
10580         of a METHOD_EXPR is nonzero.
10581
10582 2001-04-06  Tom Tromey  <tromey@redhat.com>
10583
10584         * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
10585         directory.
10586         ($(srcdir)/java/parse.c): Likewise.
10587
10588 2001-04-05  Alexandre Petit-Bianco  <apbianco@redhat.com>
10589
10590         * gcj.texi: Use `which-gcj' instead of `which-g77.'
10591         (version-gcc): Initialized.
10592         (which-gcj): Likewise.
10593
10594 2001-04-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
10595
10596         * java-tree.h (struct lang_decl): New macro
10597         `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
10598         * parse.y (build_instance_initializer): New function.
10599         (add_instance_initializer): Use it.
10600         (java_fix_constructors): Set `current_class' before fix pass.
10601         (fix_constructors): Just return if already fixed. Move `super()'
10602         invocation ahead. Use `build_instance_initializer.'
10603         Fixes PR java/1315.
10604
10605 2001-04-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
10606
10607         * parse.y (resolve_qualified_expression_name): Pass field's
10608         DECL_CONTEXT to `not_accessible_p.'
10609         (not_accessible_p): Changed parameters order in `inherits_from_p'
10610         invocation.
10611
10612 2001-03-27  Andrew Haley  <aph@cambridge.redhat.com>
10613
10614         * lang-options.h: Add flag_check_references.
10615
10616 2001-04-04  Per Bothner  <per@bothner.com>
10617
10618         * java-tree.h (CONSTANT_VALUE_P):  New macro.
10619         * jcf-write.c (generate_classfile):  Use CONSTANT_VALUE_P.
10620         * parse.y (maybe_build_class_init_for_field):  New static function.
10621         (resolve_expression_name, resolve_field_access):  Use
10622         maybe_build_class_init_for_field instead of build_class_init
10623         This does not do the init if the field is compile-time-constant.
10624         (resolve_field_access):  Simplify.
10625
10626         * parse.y (fold_constant_for_init):  Merge test into switch.
10627
10628 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
10629
10630         * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
10631         on gansidecl.h.
10632         * buffer.c, jvgenmain.c: Don't include gansidecl.h.
10633
10634 2001-04-02  Zack Weinberg  <zackw@stanford.edu>
10635
10636         * expr.c (pop_type_0): Save the result of the first
10637         lang_printable_name call in a scratch buffer, so it
10638         won't be clobbered by the second call.
10639
10640 2001-03-30  Alexandre Petit-Bianco  <apbianco@redhat.com>
10641
10642         * parse-scan.y (array_type:): Rewritten.
10643         (type_declaration:): `empty_statement' replaces `SC_TK.'
10644         (class_member_declaration:): `empty statement' added.
10645         (method_body:): Simplified.
10646         (static_initializer:): Likewise.
10647         (primary_no_new_array:): Use `type_literals.'
10648         (type_literals:): New rule.
10649         (dims:): Set and update `bracket_count.'
10650         Fixes PR java/1074. Fixes PR java/2412.
10651
10652 2001-03-28  Hans Boehm  <boehm@acm.org>
10653
10654         * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
10655         (get_boehm_type_descriptor): Set type on returned value to be a
10656         pointer length integer.
10657
10658 2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10659
10660         * expr.c (pop_type_0): Call `concat' rather than building the
10661         string manually.
10662         (pop_type): Add format specifier in call to `error'.
10663
10664         * parse.y (patch_method_invocation): Avoid casting away
10665         const-ness.
10666
10667 2001-03-28  Jeffrey Oldham  <oldham@codesourcery.com>
10668
10669         * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
10670
10671 2001-03-28  Richard Henderson  <rth@redhat.com>
10672
10673         IA-64 ABI Exception Handling:
10674         * Make-lang.in (except.o): Don't depend on eh-common.h.
10675         * check-init.c (check_init): Handle EXC_PTR_EXPR.
10676         * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
10677         [soft_exceptioninfo_call_node]: Remove.
10678         [eh_personality_libfunc, lang_eh_runtime_type]: New.
10679         (end_java_method): No emit_handlers.
10680         * except.c (java_set_exception_lang_code): Remove.
10681         (method_init_exceptions): Don't call it.
10682         (prepare_eh_table_type): No CATCH_ALL_TYPE.
10683         (build_exception_object_ref): New.
10684         (expand_end_java_handler): Update for except.h name changes.
10685         (emit_handlers, expand_resume_after_catch): Remove.
10686         * expr.c (java_lang_expand_expr): Update for except.h name changes.
10687         (process_jvm_instruction): Use build_exception_object_ref.
10688         * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
10689         (soft_exceptioninfo_call_node): Remove.
10690         (build_exception_object_ref): Declare.
10691         * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
10692         soft_exceptioninfo_call_node.  Move processing ...
10693         [EXC_PTR_EXPR]: ... here.
10694         * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
10695         * parse.y (catch_clause_parameter): Use build_exception_object_ref.
10696         (source_end_java_method): No java_set_exception_lang_code or
10697         emit_handlers.
10698         (build_dot_class_method): Use build_exception_object_ref.
10699         (try_reference_assignconv): Check EXC_PTR_EXPR not
10700         soft_exceptioninfo_call_node.
10701
10702 2001-03-28  Richard Henderson  <rth@redhat.com>
10703
10704         * java-tree.h (throw_node): Define as a single member of
10705         java_global_trees instead of a separate array.
10706         (JTI_THROW_NODE): New.
10707         * decl.c (throw_node): Don't declare.
10708         (init_decl_processing): Init a scalar throw_node.
10709         Don't register it for gc.
10710         * check-init.c (check_init): Reference scalar throw_node.
10711         * expr.c (build_java_athrow): Likewise.
10712         * jcf-write.c (generate_bytecode_insns): Likewise.
10713         * parse.h (BUILD_THROW): Likewise.
10714
10715 2001-03-28  Richard Henderson  <rth@redhat.com>
10716
10717         * decl.c (end_java_method): Do not save and restore
10718         flag_non_call_exceptions.
10719         * parse.y (source_end_java_method): Likewise.
10720         * lang.c (flag_exceptions): Don't declare.
10721         (java_init_options): Set flag_non_call_exceptions.  Set
10722         flag_exceptions here ...
10723         (java_init): ... not here.
10724
10725 2001-03-27  Richard Henderson  <rth@redhat.com>
10726
10727         * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
10728         exceptions_via_longjmp.
10729
10730         * lang.c (flag_new_exceptions): Don't declare it.
10731         (java_init_options): Or set it.
10732
10733 2001-03-27  Richard Henderson  <rth@redhat.com>
10734
10735         * decl.c (end_java_method): Rename asynchronous_exceptions to
10736         flag_non_call_exceptions.
10737         * parse.y (source_end_java_method): Likewise.
10738
10739 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10740
10741         * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
10742
10743 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
10744
10745         * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
10746
10747 2001-03-26  Alexandre Petit-Bianco  <apbianco@redhat.com>
10748
10749         * parse.y (find_as_inner_class): Follow current package
10750         indications not to mistakingly load an unrelated class.
10751
10752 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10753
10754         * constants.c (PUTN): Use memcpy, not bcopy.
10755
10756         * lex.c (java_read_char): Use memmove, not bcopy.
10757
10758         * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
10759
10760 2001-03-23  Per Bothner  <per@bothner.com>
10761
10762         * verify.c (verify_jvm_instructions):  Replace 3 pop_type by POP_TYPE
10763         macro for better error pin-pointing.
10764         * java-tree.h:  Fix typo in comment.
10765
10766         * jcf-write.c (generate_bytecode_insns):  Changes to TRY_FINALLY_EXPR.
10767         Don't include jsr/goto in exception range.
10768         Check if start and end of exception range are the same (also TRY_EXPR).
10769         Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
10770         However, do emit the following goto even if try_block is empty.
10771         Defer freeing exception_decl until after the finalizer, to make
10772         sure the local isn't reused in the finalizer.  Fixes PR java/1208.
10773
10774         * parse.y (java_complete_lhs):  If the try-clause is empty, just
10775         return the finally-clause and vice versa.
10776
10777 2001-03-23  Alexandre Petit-Bianco  <apbianco@redhat.com>
10778
10779         * gcj.texi (Input Options): documented the check for attribute
10780         `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
10781         * java-tree.h (flag_force_classes_archive_check): Declared extern.
10782         * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
10783         (jcf_parse): Check for the right classes archive if necessary.
10784         * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
10785         (jcf_parse_fields): Fixed indentation.
10786         * jcf-write.c (append_gcj_attribute): New function.
10787         (generate_classfile): Compute the attribute count, invoke
10788         `append_gcj_attribute'.
10789         * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
10790         turned into bit-fields. New bit-field `right_zip.'
10791         (JCF_ZERO): Set `right_zip' to zero.
10792         * lang-options.h (-fforce-classes-archive-check): Added flag.
10793         * lang.c (flag_force_classes_archive_check): New flag.
10794         (lang_f_options): New entry `force-classes-archive-check.'
10795         Fixes PR java/1213.
10796
10797 2001-02-07  Andrew Haley  <aph@redhat.com>
10798
10799         * gcj.texi (Configure-time Options): Add -fcheck-references.
10800         * expr.c (build_java_indirect_ref): New function.
10801         (java_check_reference): New function.
10802         (build_java_array_length_access): Use build_java_indirect_ref to
10803         check for null references.
10804         (build_java_arrayaccess): Likewise.
10805         (build_get_class): Likewise.
10806         (build_field_ref): Likewise.
10807         (invoke_build_dtable): Likewise.
10808         (build_invokeinterface): Likewise.
10809         * lang.c (lang_f_options): Add flag_check_references.
10810         * jvspec.c (jvgenmain_spec): Add flag_check_references.
10811         * java-tree.h (flag_check_references): New variable.
10812         * lang.c (flag_check_references): Likewise.
10813         * parse.y (patch_invoke): Use java_check_reference.
10814         (patch_assignment): Allow for extra nesting in
10815         _Jv_CheckArrayStore.
10816
10817 2001-03-23  Bryce McKinlay  <bryce@albatross.co.nz>
10818
10819         * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
10820         * lex.c (cxx_keywords): Likewise.
10821
10822 2001-03-21  Alexandre Petit-Bianco  <apbianco@redhat.com>
10823
10824         * parse.y (qualify_ambiguous_name): Broaden `length'
10825         recognition. Help MODIFY_EXPR be resolved as expression names.
10826         Fixes PR java/2066. Fixes PR java/2400.
10827
10828 2001-03-21  Bryce McKinlay  <bryce@albatross.co.nz>
10829
10830         * gjavah.c (process_file): Mark interface definitions with
10831         "__attribute__ ((java_interface))".
10832
10833 2001-03-21  Alexandre Petit-Bianco  <apbianco@redhat.com>
10834
10835         * class.c (layout_class): Fixed push_super_field's second
10836         argument. Fixes PR java/2333.
10837         (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
10838         too early to lay innerclasses out.
10839
10840 2001-03-20  Tom Tromey  <tromey@redhat.com>
10841             Alexandre Petit-Bianco <apbianco@redhat.com>
10842
10843         * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
10844         inside an array reference. Insertion of the array store check
10845         rewritten. Fixes PR java/2299.
10846
10847 2001-03-20  Tom Tromey  <tromey@redhat.com>
10848
10849         * lex.c (java_read_unicode): Only accept leading `u's.
10850
10851 2001-03-20  Tom Tromey  <tromey@redhat.com>
10852
10853         * jcf-parse.c (read_class): Initialize `class'.
10854
10855 2001-03-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
10856
10857         * jcf_parse.c (jcf_parse): Eliminate unused variable.
10858
10859 2001-03-19  Mark Mitchell  <mark@codesourcery.com>
10860
10861         * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
10862         (layout_class): Likewise.
10863         (layout_class_method): Likewise.
10864         (emit_register_classes): Likewise.
10865         * decl.c (builtin_function): Likewise.
10866         (give_name_to_locals): Likewise.
10867
10868 2001-03-19  Per Bothner  <per@bothner.com>
10869
10870         * jcf-parse.c (load_inner_classes):  Check CLASS_LOADED_P
10871         before trying to load an inner class.
10872
10873         Fixes to process to command-line .class files in two passes.
10874         * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P):  New flags.
10875         (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P):  Rename to ..
10876         (CLASS_FROM_CURRENTLY_COMPILED_P):  ... because it is more general now.
10877         * class.c (is_compiled_class):  Fix for renamed flag.
10878         * parse.y (maybe_create_class_interface_decl):  Likewise.
10879         * jcf-parse.c (yyparse):  Also set if compiling .class files.
10880         * jcf-parse.c (read_class);  Read current_class.
10881         (jcf_parse):  Make static.
10882         (load_inner_classes):  New function, with code moved from jcf_parse,
10883         because we need to inner classes after the command-line files are read.
10884         (yyparse):  Set finput to NULL when it doesn't need to be closed.
10885         Reduce use of main_jcf (basically only for archive) and
10886         use finput instead of main_jcf->read_state.
10887         Inline jcf_figure_file_type into yyparse.
10888         Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
10889         Defer load_inner_classes and parse_class_file to a second pass,
10890         after we've correctly mapped command-line .clas fiels to classes.
10891         (jcf_figure_file_type):  Removed.
10892         * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE):  Removed flags.
10893         (JCF_ZERO):  Also clear zipd field.
10894         * zipfile.h:  Conditionalize on JCF_H insread of JCF_ZIP.
10895
10896 2001-03-18  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
10897
10898         * jcf-parse.c (yyparse): Change ch from char * to char.
10899
10900 2001-03-19  Per Bothner  <per@bothner.com>
10901
10902         * jvspec.c (lang_specific_driver):  Check for .zip and .jar files.
10903         Add constructed filelist-file at end, following -xjava.  Thus any .o
10904         and library files are not affected by the -xjava.  Also wrap
10905         explicit @FILE with -xjava and -xnone.
10906
10907 2001-03-19  Andrew Haley  <aph@cambridge.redhat.com>
10908
10909         * class.c (build_static_field_ref): Call make_decl_rtl() after
10910         setting the DECL_EXTERNAL flag.
10911
10912 2001-03-17  Per Bothner  <per@bothner.com>
10913
10914         * decl.c (clear_binding_level):  Fix initializer (broke 03-15).
10915
10916         * jcf-write.c (generate_bytecode_insns):  Handle emitting iinc
10917         when result is is needed (target is STACK_TARGET).
10918
10919         * parse.h (JDEP_SOLV):  Removed.
10920         * parse.y (register_incomplete_type):  Use JDEP_TO_RESOLVE instead.
10921
10922         * parse.y (incomplete_class_list): Removed.
10923         (obtain_incomplete_type): Don't use or set incomplete_class_list.
10924         It doesn't work if resolve_class changes the name of an array type
10925         that is on the list and then someone else looks for the modified name.
10926         Also, seems liable to break when compiling multiple source files at
10927         once.  So the simplest is to just remove incomplete_class_list -
10928         it is only a minor space win and it is not even clear it saves time.
10929
10930         * parse.y (resolve_class):  Remove unneeded promote_type.
10931
10932 2001-03-15  Per Bothner  <per@bothner.com>
10933
10934         * java-tree.h (BLOCK_IS_IMPLICIT):  New flag.
10935         * parse.h (BLOCK_EXPR_ORIGIN):  Removed macro.
10936         * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
10937         Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
10938
10939         * jcf-parse.c (yyparse):  Set/reset input_filename for source file.
10940         * parse.y (java_expand_classes):  Likewise.
10941
10942         * parse.y (expand_start_java_method):  Was only called once and had a
10943         misleading name, so inline in caller java_complete_expand_method.
10944         (enter_a_block):  Likewise inline in enter_block and remove.
10945
10946         Remove junk from when gcc/java was created (by copying from C/C++).
10947         * decl.c (keep_next_level_flag, keep_next_if_subblocks):  Remove.
10948         (struct binding_level):  Remove fields keep, keep_if_subblocks,
10949         more_cleanups_ok, have_cleanups (which have never been used).
10950         (pushlevel, poplevel):  Remove related useless code.
10951
10952         * class.c (make_class_data):  The class_dtable_decl (i.e. the
10953         vtable for Class) should be external, except when compiling Class.
10954
10955         * jvspec.c (lang_specific_driver):  Fix -C handling.
10956         Check -save-temps to see if temp @FILE should be deleted.
10957         Follow-up to/fix for February 16 patch.
10958
10959         * verify.c (verify_jvm_instructions):  Better error msgs for dup.
10960         (type_stack_dup):  Remove no-longer neded error check.
10961
10962 2001-03-15  Bryce McKinlay  <bryce@albatross.co.nz>
10963
10964         * mangle.c (mangle_record_type): Rename 'from_pointer' argument
10965         to 'for_pointer'. If this type is for a pointer (argument) mangling,
10966         don't surround the element with 'N..E' if the type name is
10967         unqualified.
10968
10969 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
10970
10971         * class.c (build_static_field_ref): Use COPY_DECL_RTL,
10972         DECL_RTL_SET_P, etc.
10973         (make_method_value): Likewise.
10974         (get_dispatch_table): Likewise.
10975
10976         * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
10977
10978 2001-03-07  Tom Tromey  <tromey@redhat.com>
10979
10980         * config-lang.in (lang_requires): Define.
10981
10982 2001-03-07  Brad Lucier  <lucier@math.purdue.edu>
10983
10984         * typeck.c (convert): Check flag_unsafe_math_optimizations,
10985         not flag_fast_math.
10986
10987 2001-03-05  Per Bothner  <per@bothner.com>
10988
10989         Fix a problem where rest_of_decl_compilation applied to
10990         class_dtable_decl causes problems because it was done too early,
10991         before output file was opened.
10992         * decl.c (init_decl_processing):  Remove init of class_dtable_decl.
10993         * class.c (class_dtable_decl):  Add macro - element of class_roots.
10994         (make_class_data):  Define class_dtable_decl.
10995         * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl):  Removed.
10996
10997 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
10998
10999         * java/class.c, java/decl.c, java/java-tree.h: Replace all
11000         uses of 'boolean' with 'bool'.
11001
11002 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
11003
11004         * lang-specs.h: Add zero initializer for cpp_spec field to all
11005         array elements.
11006
11007 2001-02-16  Per Bothner  <per@bothner.com>
11008
11009         Handle compiling multiple input files at once, and @FILE syntax.
11010         * gcj.texi:  Updated documentation to match.
11011         * java-tree.h (flag_filelist_file, init_src_parse):  New declarations.
11012         * jcf-parse.c (parse_source_file):  Split into ...
11013         (parse_source_file_1):  New function - and:
11014         (parse_source_file_2):  New function.
11015         (yyparse):  On -ffilelist-file, open and scan named file.
11016         On first pass over files, only do parse_source_file_1.
11017         A new second pass calls parse_source_file_2 for each file to compile.
11018         (init_jcf_parse):  Call init_src_parse.
11019         * jvspec.c (INDIRECT_FILE_ARG):  New flag.
11020         (lang_specific_driver):  Support @FILELIST-FILE syntax, as well
11021         as multiple input file combined in one compilation.
11022         * lang-options.h:  Add -ffilelist-file
11023         * lang.c (flag_filelist_file):  New flag variable.
11024         (lang_f_options):  Handle -ffilelist-file.
11025         * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
11026         * parse.h (struct parse_ctxt):  Remove fields incomplete_class and
11027         gclass_list - use global fields of src_parse_roots instead.
11028         * parse.y (src_parse_roots):  New array.
11029         (incomplete_class_list, gclass_list):  New macros.
11030         (push_parser_context, java_pop_parser_context,
11031         java_parser_context_resume):  Don't fiddle with deleted fields.
11032         (various):  Use incomplete_class gclass_list and global macros
11033         instead of parse_ctxt fields - the lists are global.
11034         (init_src_parse):  New function.
11035
11036 2001-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11037
11038         * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
11039
11040 2001-02-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
11041
11042         * parse.y (check_inner_class_access): Moved declaration of local
11043         `enclosing_decl_type' to the right location.
11044
11045 2001-02-19  Bryce McKinlay  <bryce@albatross.co.nz>
11046
11047         * parse.y (parser_check_super_interface): Don't call
11048         check_pkg_class_access for an inner interface.
11049         (parser_check_super): Don't call check_pkg_class_access for inner
11050         class.
11051         (do_resolve_class): Simplify enclosing type loop. Don't call
11052         check_pkg_class_access if CL and DECL are not set.
11053         (find_in_imports_on_demand): Set DECL if class_type needed to be
11054         loaded. Don't call check_pkg_class_access for an inner class.
11055         (check_inner_class_access): Rewritten to implement member access
11056         rules as per spec 6.6.1.
11057         (check_pkg_class_access): Handle the empty package correctly.
11058         (in_same_package): New function. Determine if two classes are in the
11059         same package.
11060
11061 2001-02-18  Bryce McKinlay  <bryce@albatross.co.nz>
11062
11063         * typeck.c (build_java_array_type): Don't try to poke a public `clone'
11064         method into array types.
11065         * parse.y (patch_method_invocation): Bypass access check on clone call
11066         to array instance.
11067
11068 2001-02-15  Alexandre Petit-Bianco  <apbianco@redhat.com>
11069
11070         * expr.c (build_instanceof): Check for arrays when trying fold to
11071         false.
11072
11073 2001-02-15  Jim Meyering  <meyering@lucent.com>
11074
11075         * Make-lang.in (java.install-common): Depend on `installdirs'.
11076         (java.install-info): Likewise.
11077
11078 2001-02-15  Bryce McKinlay  <bryce@albatross.co.nz>
11079
11080         * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
11081
11082 2001-02-14  Tom Tromey  <tromey@redhat.com>
11083             Alexandre Petit-Bianco  <apbianco@cygnus.com>
11084
11085         Fix for PR java/1261.
11086         * typeck.c (build_java_array_type): Add public `clone' method to
11087         arrays.
11088         * parse.y (resolve_qualified_expression_name): Use current_class
11089         when checking for inaccessibility.
11090         (patch_method_invocation): Fixed error message when accessibility
11091         denied.  Added `from_super' argument.
11092
11093 2001-02-14  Alexandre Petit-Bianco  <apbianco@redhat.com>
11094
11095         * parse.y (resolve_class): Don't build a fake decl. Use the one
11096         already built.
11097         * typeck.c (build_java_array_type): Build and assign decl to array
11098         type.
11099
11100 2001-02-14  Alexandre Petit-Bianco  <apbianco@redhat.com>
11101
11102         * parse.y (not_accessible_p): Changed leading comment. Added extra
11103         `where' argument. Use it to enforce protected access rules.
11104         (resolve_qualified_expression_name): Added extra argument to
11105         not_accessible_p.
11106         (patch_method_invocation): Use argument `primary' to provide
11107         not_accessible_p with an extra argument.
11108         (lookup_method_invoke): Added extra argument to not_accessible_p.
11109         (search_applicable_method_list): Likewise.
11110
11111 2001-02-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
11112
11113         * parse.y (resolve_qualified_expression_name): Try to resolve as
11114         an inner class access only if `decl' is a TYPE_DECL.
11115
11116 2001-02-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11117
11118         * decl.c (classdollar_identifier_node): Initialize.
11119         * java-tree.h (enum java_tree_index): New entry
11120         `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
11121         (classdollar_identifier_node): New macro.
11122         (ID_CLASSDOLLAR_P): Likewise.
11123         * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
11124         (build_dot_class_method_invocation): Likewise.
11125         (find_applicable_accessible_methods_list): `class$' can't be
11126         inherited.
11127
11128 2001-02-09  Raja R Harinath  <harinath@cs.umn.edu>
11129
11130         * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
11131
11132 2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
11133
11134         * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
11135         * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
11136         gone.
11137
11138 2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
11139
11140         * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
11141         outside of the `__U' sequence too.
11142         (unicode_mangling_length): Count `_' or `U' outside of the `__U'
11143         sequence too.
11144
11145 2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
11146
11147         * jvgenmain.c (error): Reversed 2001-02-01 deletion.
11148
11149 2001-02-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11150
11151         * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
11152         (JVGENMAIN_OBJS): Likewise.
11153         * java-tree.h (append_gpp_mangled_name): New prototype.
11154         * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
11155         Removed cast calling `gcc_add_root.'
11156         * jvgenmain.c (mangle_obstack): New global, initialized.
11157         (main): Use it.
11158         (do_mangle_class): Constify local `ptr.'
11159         Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
11160         append_gpp_mangle_name and update `count' if necessary.
11161         Use `mangle_obstack.'
11162         * mangle.c (append_unicode_mangled_name): Removed.
11163         (append_gpp_mangled_name): Likewise.
11164         (unicode_mangling_length): Likewise.
11165         (mangle_member_name): Return type set to `void.'
11166         (mangle_field_decl): Don't append `U' in escaped names.
11167         (mangle_method_decl): Likewise.
11168         (mangle_member_name): Just use `append_gpp_mangled_name.'
11169         * mangle_name.c: New file.
11170
11171 2001-02-07  Per Bothner  <per@bothner.com>
11172
11173         * check-init.c (check_init):  Fix TRY_FINALLY_EXPR logic.
11174
11175         * check-init.c (check_init):  Don't call done_alternative after
11176         processing loop code, as a LOOP_EXPR never terminates normally.
11177
11178 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11179
11180         * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
11181
11182 2001-02-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11183
11184         * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
11185         DECLs.
11186
11187 2001-02-06  Tom Tromey  <tromey@redhat.com>
11188
11189         * lex.c (java_new_lexer): Longer error message.
11190
11191 2001-02-05  Jeff Sturm  <jeff.sturm@commerceone.com>
11192             Alexandre Petit-Bianco  <apbianco@cygnus.com>
11193
11194         * typeck.c (build_prim_array_type): Added leading comment.
11195         (build_java_array_type): Moved locals out of
11196         block. Always create the `data' field, fixed alignment to match
11197         C++.
11198
11199 2001-02-04  Tom Tromey  <tromey@redhat.com>
11200
11201         * expr.c (java_lang_expand_expr): Don't bother recomputing
11202         `length'.  Use rest_of_decl_compilation, not make_decl_rtl.
11203         Fixes PR java/1866.
11204
11205 2001-02-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11206
11207         * parse.y (process_imports): Save the original name of the import
11208         for better error report.
11209
11210 2001-02-04  Bryce McKinlay  <bryce@albatross.co.nz>
11211
11212         * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
11213         of macros used when compiling jvspec.c.
11214         * jvspec.c (lang_specific_driver): Link with the shared
11215         libgcc by default.
11216
11217 2001-02-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11218
11219         * check-init.c (check_init): Call internal_error instead of fatal.
11220         * expr.c (java_lang_expand_expr): Likewise.
11221         * jcf-parse.c (get_constant): Likewise.
11222         * mangle.c (java_mangle_decl): Likewise.
11223         * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
11224         (operator_string): Likewise.
11225         * check-init.c (check_init): Call abort instead of fatal.
11226         * class.c (build_class_ref): Likewise.
11227         * constants.c (write_constant_pool): Likewise.
11228         * decl.c (start_java_method): Likewise.
11229         * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
11230         (java_stack_dup, encode_newarray_type): Likewise.
11231         (build_java_array_length_access): Likewise.
11232         (build_java_check_indexed_type, expand_java_pushc): Likewise.
11233         (build_java_soft_divmod, build_invokeinterface): Likewise.
11234         * java-tree.h (INNER_CLASS_P): Likewise.
11235         * jcf-parse.c (parse_signature, get_name_constant): Likewise.
11236         (give_name_to_class, get_class_constant): Likewise.
11237         * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
11238         (find_constant_index, generate_bytecode_conditional): Likewise.
11239         (generate_bytecode_insns, perform_relocations): Likewise.
11240         * lex.c (java_unget_unicode, java_lex): Likewise.
11241         * mangle.c (mangle_type, mangle_record_type): Likewise.
11242         (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
11243         (finish_mangling): Likewise.
11244         * parse.h (MARK_FINAL_PARMS): Likewise.
11245         * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
11246         (obtain_incomplete_type, java_complete_class): Likewise.
11247         (java_check_regular_methods, java_complete_expand_method): Likewise.
11248         (cut_identifier_in_qualified, check_deprecation): Likewise.
11249         (patch_invoke, find_applicable_accessible_methods_list): Likewise.
11250         (java_complete_lhs, lookup_name_in_blocks): Likewise.
11251         (check_final_variable_indirect_assignment, build_unaryop): Likewise.
11252         * typeck.c (set_local_type, parse_signature_type): Likewise.
11253         (parse_signature_string, build_java_signature): Likewise;
11254         (set_java_signature): Likewise.
11255         * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
11256         * class.c (add_method): Call fatal_error instead of fatal.
11257         (build_static_field_ref): Likewise.
11258         * expr.c (build_known_method_ref, expand_invoke): Likewise.
11259         * jcf-parse.c (get_constant, jcf_parse): Likewise.
11260         * lex.c (java_new_new_lexer): Likewise.
11261         * jv-scan.c (main): Likewise.
11262         (fatal_error): Renamed from fatal.
11263         * jcf-parse.c (yyparse): Call fatal_io_error instead of
11264         pfatal_with_name.
11265         * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
11266         (yyparse): Likewise.
11267         * jcf-write.c (make_class_file_name, write_classfile): Likewise.
11268         * lex.c (java_get_line_col): Likewise.
11269         * jcf-parse.c (load_class): Make errors non-fatal.
11270         * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
11271
11272 2001-02-01  Bryce McKinlay  <bryce@albatross.co.nz>
11273
11274         * jvgenmain.c (class_mangling_suffix): Remove unused string.
11275         (error): Remove unused function.
11276         (main): Don't use "__attribute__ alias" on generated class symbol.
11277
11278 2001-01-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11279
11280         * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
11281         argument.
11282         * parse.y (finish_method_declaration): Code accounting for WFLed
11283         method DECL_NAMEs deleted.
11284         (check_abstract_method_definitions): Likewise.
11285         (resolve_type_during_patch): Layout resolved type.
11286         * typeck.c (lookup_do): Removed unused local.
11287
11288 2001-01-30  Bryce McKinlay  <bryce@albatross.co.nz>
11289
11290         * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
11291         * decl.c (init_decl_processing): Use integer_minus_one_node, not
11292         integer_negative_one_node.
11293         * expr.c (build_java_binop): Likewise.
11294
11295 2001-01-24  Jeff Sturm  <jeff.sturm@commerceone.com>
11296
11297         * zextract.c (read_zip_archive): Read file_offset before writing
11298         zipd and consequently clobbering the header contents.
11299
11300 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11301
11302         * Make-lang.in: Remove all dependencies on defaults.h.
11303         * decl.c: Don't include defaults.h.
11304         * expr.c: Likewise.
11305         * parse.y: Likewise.
11306
11307 2001-01-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11308
11309         * ChangeLog (2001-01-21): Fixed typo.
11310         * class.c (layout_class_method): Code accounting for WFLed
11311         method DECL_NAMEs deleted.
11312         * constant.c (find_methodref_index): Likewise.
11313         * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
11314         * java-tree.h (DECL_FUNCTION_WFL): New macro.
11315         (struct lang_decl): New field `wfl'.
11316         (java_get_real_method_name): Prototype deleted.
11317         * mangle.c (mangle_method_decl): Code accounting for WFLed
11318         method DECL_NAMEs deleted.
11319         * parse.h (GET_METHOD_NAME): Macro deleted.
11320         * parse.y (reset_method_name): Deleted.
11321         (method_header): Set DECL_FUNCTION_WFL.
11322         (check_abstract_method_header): Code accounting for WFLed method
11323         DECL_NAMEs deleted.
11324         (java_get_real_method_name): Deleted.
11325         (check_method_redefinition): Code accounting for WFLed method
11326         DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
11327         (java_check_regular_methods): Likewise.
11328         (java_check_abstract_methods): Likewise.
11329         (java_expand_classes): Don't call `reset_method_name.'
11330         (search_applicable_method_list): Use DECL_NAMEs instead of
11331         GET_METHOD_NAME.
11332         * typeck.c (lookup_do): Code accounting for WFLed method
11333         DECL_NAMEs deleted.
11334
11335 2001-01-25  Richard Earnshaw  <rearnsha@arm.com>
11336
11337         * lex.c (java_read_char): Check for EOF from getc first.
11338
11339 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11340
11341         * class.c (layout_class): Don't lay the superclass out if it's
11342         already being laid out.
11343         * jcf-parse.c (handle_innerclass_attribute): New function.
11344         (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
11345         handle_innerclasses_attribute.
11346         (jcf_parse): Don't load an innerclasses if it's already being
11347         laid out.
11348         * jcf-write.c (append_innerclass_attribute_entry): Static
11349         `anonymous_name' and its initialization deleted. `ocii' and `ini'
11350         to be zero for anonymous classes.
11351
11352 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11353
11354         * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
11355         necessary.
11356         * jcf-parse.c (set_source_filename): Use
11357         MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
11358
11359 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11360
11361         * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
11362         gets a unique asm name.
11363
11364 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11365
11366         * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
11367         (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
11368         if necessary.
11369         (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
11370         * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
11371         * parse.y (lookup_package_type_and_set_next): Deleted.
11372         (resolve_package): Removed unnecessary code.
11373         (find_applicable_accessible_methods_list): `finit$' can't be
11374         inherited.
11375         * verify.c (pop_argument_types): Added missing prototype.
11376
11377 2001-01-23  Bryce McKinlay  <bryce@albatross.co.nz>
11378
11379         * config-lang.in: Disable java by default.
11380
11381 2001-01-23  Tom Tromey  <tromey@redhat.com>
11382
11383         * gcj.texi (Copying): New node.
11384         Added copyright information.
11385
11386 2001-01-21  Per Bothner  <per@bothner.com>
11387
11388         Various fixes to allow compiling a compressed .jar/.zip archive.
11389         * zipfile.h (struct ZipFileCache):  Replace by struct ZipFile.
11390         (struct ZipFile):  Add fields name and next (from  ZipFileCache).
11391         (struct ZipDirectory):  New field zipf points to owning ZipFile.
11392         * jcf.h (struct ZipDirectory):  Add forward declaration.
11393         (struct JCF):   Declare zipd field to have type struct ZipDirectory.
11394         Remove seen_in_zip and zip_offset fields.
11395         (JCF_SEEN_IN_ZIP):  New macro.
11396         * zextract.c (read_zip_archive):  Set ZipDirectory's zipf field.
11397         * jcf-io.c:  Change all ZipFileCache to ZipFile.
11398         (read_zip_member):  New function.
11399         (open_in_zip):  Call read_zip_member.
11400         * jcf-parse.c (find_in_current_zip):  Remove function.
11401         (read_class):  Merge in find_in_current_zip functionality.
11402         Call read_zip_member if needed.
11403         (parse_zip_file_entries):  Use read_zip_member.
11404         (process_zip_dir):  Update for removed and added JCF fields.
11405         (jcf_figure_file_type):  Re-use, don't copy initial ZipFile struct.
11406
11407 2001-01-21  Per Bothner  <per@bothner.com>
11408
11409         Minor optimization of static ggc roots.
11410         * jcf-parse.c (parse_roots):  New static field.
11411         (current_field, current_method, current_file_list):  Replace by macros
11412         naming fields of parse_roots.
11413         (init_jcf_parse):  Combine 3 ggc_add_tree_root calls to 1.
11414         * class.c (class_roots):  New static field.
11415         (registered_class, fields_ident, info_ident, class_list):
11416         New macros naming fields of parse_roots.
11417         (build_static_field_ref):  Don't register roots here.
11418         (layout_class):  Static field list replaced by macro class_list.
11419         (init_class_processing):  Call ggc_add_tree_root for 4 roots.
11420         Initialize fields_ident and info_ident here.
11421
11422 2001-01-21  Per Bothner  <per@bothner.com>
11423
11424         * jcf-parse.c (ggc_mark_jcf):  New function.
11425         (init_jcf_parse):  Register current_jcf as ggc root.
11426
11427 2001-01-21  Per Bothner  <per@bothner.com>
11428
11429         * lang.c (put_decl_node):  Print method's name.
11430
11431 2001-01-21  Per Bothner  <per@bothner.com>
11432
11433         * verify.c (VERIFICATION_ERROR_WITH_INDEX):  New macro.
11434         (verify_jvm_instructions):  Use it, for better error messages on loads.
11435
11436 2001-01-21  Per Bothner  <per@bothner.com>
11437
11438         * verify.c (merge_type_state):  Still may have to merge even if
11439         LABEL_VERIFIED (label).
11440
11441 2001-01-21  Per Bothner  <per@bothner.com>
11442
11443         * parse.y (method_header):  Don't set the DECL_NAME of a FUNCTION_DECL
11444         to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
11445
11446 2001-01-19  Per Bothner  <per@bothner.com>
11447
11448         * expr.c (pop_type_0):  Only return object_ptr_type_node on mismatch
11449         if expeting an interface type.  Refines Tom's change of 2000-09-12.
11450
11451 2001-01-18  Per Bothner  <per@bothner.com>
11452
11453         * gcj.texi (Input Options): Mention .java files.
11454
11455 2001-01-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11456
11457         * lang-options.h (-Wunsupported-jdk11): Removed.
11458         * lang.c (flag_not_overriding): Deleted.
11459         (flag_static_local_jdk1_1): Likewise.
11460         (lang_W_options): Removed "unsupported-jdk11" entry.
11461         * parse.y (java_check_methods): Removed dead code.
11462
11463 2001-01-17  Tom Tromey  <tromey@redhat.com>
11464
11465         Changes suggested by Per Bothner:
11466         * gcj.texi (Input Options): Don't mention input files.
11467         (Code Generation): Updated --main information.
11468         (Invoking jcf-dump): Mention that --javap is incomplete.
11469         From Alexandre Petit-Bianco:
11470         (Warnings): Don't mention -Wunsupported-jdk11.
11471         My stuff:
11472         (Compatibility): Mention JDK 1.2-ness of libraries.
11473         (Resources): Mention resources used when writing gcj.
11474
11475 2001-01-17  Tom Tromey  <tromey@redhat.com>
11476
11477         * gcj.texi: New file.
11478         * Make-lang.in ($(srcdir)/java/gcj.info): New target.
11479         (java.info): Depend on gcj.info.
11480         (java/gcj.dvi): New target.
11481         (java.dvi): Depend on gcj.dvi.
11482         (java.install-info): Wrote.
11483
11484 2001-01-16  Jeff Sturm  <jeff.sturm@appnet.com>
11485
11486         * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
11487         having called make_decl_rtl.
11488
11489 2001-01-14  Per Bothner  <per@bothner.com>
11490
11491         Various patches to emit better messages on verification errors.
11492         * expr.c (push_type_0):  Return error indication on stack overflow,
11493         instead of callinfg fatal.
11494         (push_type):  Now just call push_type_0 (nd fatal on overflow).
11495         (pop_type_0):  Return detailed error message (in a char** argument).
11496         (pop_type):  If pop_type_0 fails, print error message.
11497         (pop_argument_types):  Moved to verify.c.
11498         * verify.c (pop_argument_types):  Moved from expr.c.
11499         Return a (possible) error message, rather than void.
11500         (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING):  New macros.
11501         (verify_jvm_instruction):  Use new macros, improving error messages.
11502         For case OPCODE_astore use object_ptr_type_node.
11503         * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED):  New macros.
11504         (pop_type_0, push_type_0, pop_argument_types):  Update accordingly.
11505
11506         * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
11507         constant, return body without wrapper.  (Improves constant folding.)
11508         * lex.c (build_wfl_node):  Clear TREE_TYPE from returned node.
11509
11510 2001-01-13  Per Bothner  <per@bothner.com>
11511
11512         * expr.c (expand_java_field_op):  Assigning to a final field outside
11513         an initializer does not violate JVM spec, so should be warning, not
11514         error.  (Sun's verifier does not complain - though MicroSoft's does.)
11515
11516 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
11517
11518         * gjavah.c (version), jcf-dump.c (version): Update copyright year
11519         to 2001.
11520
11521 2001-01-11  Bryce McKinlay  <bryce@albatross.co.nz>
11522
11523         * parse.y (resolve_expression_name): Permit instance variables from
11524         enclosing context in super constructor call.
11525         (resolve_qualified_expression_name): Permit enclosing class's qualified
11526         "this" in super constructor call.
11527
11528 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
11529
11530         * class.c (build_utf8_ref): Remove last argument in call to
11531         make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
11532         (build_class_ref): Likewise.
11533         (build_static_field_ref): Likewise.
11534         (get_dispatch_table): Likewise.
11535         (layout_class_method): Likewise.
11536         (emit_register_classes): Likewise.
11537         * constants.c (build_constant_data_ref): Likewise.
11538         * decl.c (builtin_function): Likewise.
11539         (create_primitive_vtable): Likewise.
11540         * expr.c (build_known_method_def): Likewise.
11541         (build_jni_stub): Likewise.
11542         (java_lang_expand_expr): Likewise.
11543
11544 2001-01-10  Tom Tromey  <tromey@redhat.com>
11545
11546         * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
11547
11548 2001-01-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11549
11550         * java-tree.h (lang_printable_name_wls): New prototype.
11551         * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
11552         rather than `current_class' to print type name. Don't prepend type
11553         names when printing constructor names.
11554         (lang_printable_name_wls): New function.
11555         * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
11556         `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
11557         * parse.y (patch_method_invocation): Message tuned for constructors.
11558         (not_accessible_p): Grant `private' access from within
11559         enclosing contexts.
11560
11561 2001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11562
11563         All files with updated copyright when applicable.
11564         * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
11565         * class.c (mangle_class_field): Function removed.
11566         (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
11567         (utf8_cmp, cxx_keyword_p): Moved to lex.c.
11568         (build_class_ref): Call `java_mangle_class_field' instead of
11569         `mangle_class_field.'
11570         (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
11571         (layout_class): Call `java_mangle_decl' instead of
11572         `mangle_static_field.'
11573         (cxx_keywords): Initialized static array moved to `lex.c.'
11574         (layout_class_method): Changed leading comment. Simplified to
11575         call `java_mangle_decl.' Local `ptr' moved in for loop body.
11576         * decl.c (lang_mark_tree): Mark field `package_list.'
11577         * java-tree.h (TYPE_PACKAGE_LIST): New macro.
11578         (struct lang_type): New field `package_list.'
11579         (unicode_mangling_length): Prototype removed.
11580         (append_gpp_mangled_name, append_gpp_mangled_classtype,
11581         emit_unicode_mangled_name): Likewise.
11582         (cxx_keyword_p): New prototype.
11583         (java_mangle_decl, java_mangle_class_field,
11584         java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
11585         * jcf-parse.c (jcf_parse_source): Constify `file' argument to
11586         `build_expr_wfl.'
11587         * jvgenmain.c (main_method_prefix): Global variable removed.
11588         (main_method_suffix): Likewise.
11589         (do_mangle_classname): New function.
11590         (main): Call it. Format changed to accommodate new mangling scheme.
11591         * lex.c: (utf8_cmp): Conditionally prototyped.
11592         (cxx_keywords): Moved from class.c, conditionally defined.
11593         (utf8_cmp, cxx_keyword_p): Likewise.
11594         * mangle.c (obstack.h, ggc.h): Included.
11595         (mangle_field_decl): New function.
11596         (mangle_method_decl, mangle_type, mangle_pointer_type,
11597         mangle_array_type, mangle_record_type,
11598         find_compression_pointer_match, find_compression_array_match,
11599         find_compression_record_match,
11600         find_compression_array_template_match, set_type_package_list,
11601         entry_match_pointer_p, emit_compression_string, init_mangling,
11602         finish_mangling, compression_table_add, mangle_member_name): Likewise.
11603         (mangle_obstack): New global.
11604         (MANGLE_RAW_STRING): New macro.
11605         (unicode_mangling_length): Turned static.
11606         (append_unicode_mangled_name): Renamed from
11607         `emit_unicode_mangled_name.'  Turned static. `mangle_obstack'
11608         replaces `obstack', removed from the parameter list.
11609         (append_gpp_mangled_name): Turned static. `mangle_obstack'
11610         replaces parameter `obstack', removed from the parameter list. Call
11611         `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
11612         (append_gpp_mangled_classtype): Removed.
11613         (compression_table, compression_next): New static variables.
11614         * parse.y (temporary_obstack): Extern declaration removed.
11615
11616 2001-01-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11617
11618         * parse.y (patch_binop): Compute missing type in error situations.
11619
11620 2001-01-05  Bryce McKinlay  <bryce@albatross.co.nz>
11621
11622         * class.c (make_class_data): Push initial value for "arrayclass".
11623         * decl.c (init_decl_processing): Add new class field "arrayclass".
11624
11625 2001-01-05  Bryce McKinlay  <bryce@albatross.co.nz>
11626
11627         From patha@softlab.ericsson.se:
11628         * parse.y (switch_label): Use build, not build1, to construct
11629         DEFAULT_EXPR.
11630
11631 2001-01-04  Neil Booth  <neil@daikokuya.demon.co.uk>
11632
11633         * lang.c (lang_decode_option): Change -MA to -MP.
11634         * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
11635         Update to new prototype; do quote targets.
11636         (jcf_dependency_write): Update.
11637
11638 2000-12-22  Bryce McKinlay  <bryce@albatross.co.nz>
11639
11640         Shorten primitive array allocation path:
11641         * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
11642         to create new primitive arrays.
11643         * expr.c (build_newarray): If generating native code, call
11644         soft_newarray_node with a reference to the primitive TYPE identifier
11645         instead of type_value.
11646
11647 2000-12-17  Bryce McKinlay  <bryce@albatross.co.nz>
11648
11649         Fix for PRs gcj/312 and gcj/253:
11650         * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
11651         dest if they arn't already.
11652         * class.c (layout_class): Call maybe_layout_super_class on
11653         superinterfaces also, but only if compiling from bytecode.
11654
11655         Fix for PR gcj/373:
11656         * parse.y (create_class): Set ACC_STATIC if class is declared in an
11657         interface.
11658
11659 2000-12-15  Tom Tromey  <tromey@redhat.com>
11660
11661         * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
11662         set.
11663
11664 2000-12-14  Andrew Haley  <aph@redhat.com>
11665
11666         * boehm.c (mark_reference_fields): Change test to correctly detect
11667         bitmap overflow.
11668
11669 2000-12-15  Andreas Jaeger  <aj@suse.de>
11670
11671         * config-lang.in (lang_dirs): Added.
11672
11673 2000-12-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11674
11675         * parse.y (end_artificial_method_body): Fixed undefined behavior.
11676         Credits go to rth for finding it.
11677
11678 2000-12-13  Mike Stump  <mrs@wrs.com>
11679
11680         * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
11681
11682 2000-11-07  Tom Tromey  <tromey@cygnus.com>
11683
11684         * Make-lang.in (JAVA_LEX_C): Added chartables.h.
11685         * lex.c (java_ignorable_control_p): Removed.
11686         (java_letter_or_digit_p): Removed.
11687         (java_start_char_p): New function.
11688         (java_read_char): Return `int', not `unicode_t'.  Changed
11689         callers.
11690         (java_read_unicode): Likewise.
11691         (java_read_unicode_collapsing_terminators): Likewise.
11692         (java_get_unicode): Likewise.
11693         (java_new_lexer): Initialize hit_eof.
11694         (java_parse_end_comment): Take `int' argument.
11695         (java_parse_doc_section): Likewise.
11696         (java_parse_escape_sequence): Don't allow backlash-newline.
11697         Return `int'.
11698         * lex.h (JAVA_DIGIT_P): Removed.
11699         (_JAVA_LETTER_OR_DIGIT_P): Removed.
11700         (_JAVA_IDENTIFIER_IGNORABLE): Removed.
11701         (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
11702         (JAVA_PART_CHAR_P): New macro.
11703         (UEOF): Now -1.
11704         (JAVA_CHAR_ERROR): Now -2.
11705         (java_lexer): New field `hit_eof'.
11706         * chartables.h: New file.
11707         * gen-table.pl: new file.
11708
11709 2000-11-20  Tom Tromey  <tromey@cygnus.com>
11710             Alexandre Petit-Bianco  <apbianco@cygnus.com>
11711
11712         * parse.y (java_complete_lhs): Only allow compound assignment of
11713         reference type if type is String.
11714
11715 2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11716
11717         * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
11718         jcf-path.c: Likewise.
11719
11720 2000-12-09  Anthony Green  <green@redhat.com>
11721
11722         * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
11723         filestart and filename_length as int values.
11724
11725 2000-12-07  Mo DeJong  <mdejong@redhat.com>
11726
11727         * jcf-io.c (find_class): Correct the logic that tests to see if a
11728         .java file is newer than its .class file. The compiler was
11729         incorrectly printing a warning when file mod times were equal.
11730
11731 2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
11732
11733         * jvgenmain.c: Use ISPRINT not isascii.
11734
11735 2000-12-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11736
11737         * parse.y (end_artificial_method_body): Fixed typo.
11738
11739 2000-12-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11740
11741         * parse.y (patch_method_invocation): Pick the correct enclosing
11742         context when creating inner class instances.
11743         Fixes gcj/332.
11744
11745 2000-11-26  Joseph S. Myers  <jsm28@cam.ac.uk>
11746
11747         * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
11748         Update copyright year to 2000.
11749
11750 2000-11-23  Anthony Green  <green@redhat.com>
11751
11752         * jcf-parse.c (init_jcf_parse): Register current_file_list root.
11753         Move current_file_list out of yyparse and make it static.
11754
11755         * expr.c: Declare quick_stack and tree_list_free_list as static
11756         (init_expr_processing): Register quick_stack and
11757         tree_list_free_list roots.
11758
11759 2000-11-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11760
11761         * parse.y (build_outer_field_access): New local `decl_ctx', use
11762         it. Check for field's context and current class immediate outer
11763         context inheritance.
11764         (outer_field_access_p): Consider fields inherited from the last
11765         enclosing context.
11766         (build_access_to_thisn): Stop at the last enclosing context if
11767         necessary.
11768         Fixes gcj/367.
11769
11770 2000-11-23  J"orn Rennecke <amylaar@redhat.com>
11771
11772         * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
11773
11774 2000-11-22  Bryce McKinlay  <bryce@albatross.co.nz>
11775
11776         * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
11777         scratch buffer.
11778
11779 2000-11-20  Tom Tromey  <tromey@cygnus.com>
11780
11781         * jv-scan.c (help): Document --complexity.
11782         (options): Added --complexity.
11783         (flag_complexity): New global.
11784         (main): Call `report'.
11785         * parse-scan.y (complexity): New global.
11786         (if_then_statement, if_then_else_statement,
11787         if_then_else_statement_nsi, switch_block_statement_group,
11788         while_expression, do_statement, for_begin, continue_statement,
11789         throw_statement, catch_clause, finally, method_invocation,
11790         conditional_and_expression, conditional_or_expression,
11791         conditional_expression): Update complexity.
11792         (reset_report): Reset complexity.
11793         (report): New function.
11794
11795 2000-11-20  Tom Tromey  <tromey@cygnus.com>
11796
11797         * lex.c (yylex): Added STRICT_TK case.
11798         * parse.y (STRICT_TK): Added.
11799         * parse-scan.y (STRICT_TK): Added.
11800         * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
11801         `;'.  Use 4, not 3, with -k option.  Correctly rename resulting
11802         file.
11803         * keyword.h: Rebuilt.
11804         * keyword.gperf (strictfp): Added.
11805
11806 2000-11-20  Tom Tromey  <tromey@cygnus.com>
11807
11808         * lex.c (yylex): Recognize floating point constants with leading
11809         0.
11810
11811 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11812
11813         * java-tree.h (cyclic_inheritance_report): Constify.
11814         * parse.y (cyclic_inheritance_report): Likewise.
11815
11816 2000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
11817
11818         * parse.y (goal): Remove call to ggc_add_string_root.
11819
11820 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
11821
11822         * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
11823         Create string in scratch buffer, then pass to build_string.
11824
11825 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
11826
11827         * parse.y (issue_warning_error_from_context): Add
11828         ATTRIBUTE_PRINTF.
11829
11830 2000-11-11  Anthony Green  <green@redhat.com>
11831
11832         * jcf-parse.c (process_zip_dir): Add finput parameter.
11833         (jcf_figure_file_type): Call process_zip_dir with appropriate
11834         argument.
11835
11836 2000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11837
11838         * decl.c (copy_lang_decl): Use memcpy, not bcopy.
11839         * jcf-parse.c (jcf_figure_file_type): Likewise.
11840
11841 2000-11-09  Joseph S. Myers  <jsm28@cam.ac.uk>
11842
11843         * parse.y (create_new_parser_context): Use memset () instead of
11844         bzero ().
11845
11846 2000-11-08  Tom Tromey  <tromey@cygnus.com>
11847
11848         * gjavah.c (process_file): Only include gcj/cni.h when generating
11849         CNI stubs.
11850
11851 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
11852
11853         * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
11854         (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
11855         instead of bzero ().
11856
11857 2000-11-05  Tom Tromey  <tromey@cygnus.com>
11858
11859         * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
11860         * lex.c (IS_ZERO): New define.
11861         (java_perform_atof): Error on floating point underflow.
11862
11863 2000-11-04  Tom Tromey  <tromey@cygnus.com>
11864
11865         * lex.c (java_parse_escape_sequence): Only read two octal
11866         characters if the first one is greater than 3.  Don't allow
11867         "octal" numbers to include the digits 8 or 9.
11868
11869 2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
11870
11871         * Make-lang.in (java.distdir): Remove.
11872
11873 2000-11-03  Tom Tromey  <tromey@cygnus.com>
11874
11875         * Make-lang.in (java.dvi): New target.
11876         Partial fix for PR other/567.
11877
11878         * lang-options.h: Mention -Wout-of-date.
11879         * jcf-dump.c (flag_newer): New global.
11880         * gjavah.c (flag_newer): New global.
11881         * jcf-io.c (find_class): Only warn when flag_newer set.
11882         * lang.c (flag_newer): New global.
11883         (struct string_option): New declaration.
11884         (lang_W_options): New global.
11885         (process_option_with_no): New function.
11886         (lang_decode_option): Use it.
11887
11888         * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
11889         * gjavah.c (cxx_keyword_subst): Handle any number of trailing
11890         `$'.
11891
11892         * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
11893         (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
11894         * lex.c (java_read_unicode): Removed `term_context' argument.
11895         Recognize any number of `u' in `\u'.
11896         (java_read_unicode_collapsing_terminators): New function.
11897         (java_get_unicode): Use it.
11898         (java_lineterminator): Removed.
11899         (yylex): Produce error if character literal is newline or single
11900         quote.  Return if eof found in middle of `//' comment.  EOF in
11901         `//' comment is only an error if pedantic.
11902         (java_ignorable_control_p): New function.
11903         (java_parse_end_comment): Return if eof found in middle of
11904         comment.
11905         Include flags.h.
11906         * jv-scan.c (pedantic): New global.
11907
11908 2000-10-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11909
11910         * parse.y (outer_field_access_p): Inherited fields aren't
11911         consider outer fields.
11912         (maybe_build_thisn_access_method): Use
11913         PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
11914         (resolve_expression_name): Trigger an error if a static field
11915         is being accessed as an outer field.
11916
11917 2000-10-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11918
11919         * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
11920         Fixes gcj/365.
11921
11922 2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
11923
11924         * Make-lang.in: Move all build rules here from Makefile.in,
11925         adapt to new context.  Wrap all rules that change the current
11926         directory in parentheses.  Expunge all references to $(P).
11927         When one command depends on another and they're run all at
11928         once, use && to separate them, not ;.  Add OUTPUT_OPTION to
11929         all object-file generation rules.  Delete obsolete variables.
11930
11931         * Makefile.in: Delete.
11932         * config-lang.in: Delete outputs= line.
11933
11934 2000-10-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11935
11936         * parse.y (patch_method_invocation): NULLify this_arg when already
11937         inserted.
11938         (maybe_use_access_method): Handle call to methods unrelated to the
11939         current class. Fixed comment.
11940         Fixes gcj/361.
11941
11942 2000-10-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11943
11944         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
11945         scope.
11946
11947 2000-10-24  Tom Tromey  <tromey@cygnus.com>
11948
11949         * lex.c (java_new_lexer): Initialize new fields.  Work around
11950         broken iconv() implementations.
11951         (java_read_char): Swap bytes if required.  Use fallback decoder if
11952         required.
11953         (byteswap_init, need_byteswap): New globals.
11954         (java_destroy_lexer): Only close iconv handle if it is in use.
11955         * lex.h (java_lexer): New fields read_anything, byte_swap,
11956         use_fallback.
11957         Made out_buffer unsigned.
11958
11959 2000-10-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11960
11961         * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
11962         where an enclosing context can be set on the jdep.
11963         (do_resolve_class): Fixed identation.
11964
11965 2000-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11966
11967         * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
11968
11969         * jcf-reader.c (peek_attribute, skip_attribute): Only define
11970         when requested.
11971
11972         * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
11973
11974         * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
11975
11976 2000-10-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11977
11978         * jcf-write.c (OP1): Update `last_bc'.
11979         (struct jcf_block): Fixed indentation and typo in comments.  New
11980         field `last_bc'.
11981         (generate_bytecode_insns): Insert `nop' if `jsr' immediately
11982         follows `monitorenter'.
11983         * parse.y (patch_synchronized_statement): New local `tmp'. Call
11984         `patch_string'.
11985         Fixes gcj/232.
11986
11987 2000-10-16  Tom Tromey  <tromey@cygnus.com>
11988
11989         * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
11990         * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
11991         * lang-options.h: Added -MA, -MT, -MF..
11992         * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
11993         (DEPEND_TARGET_SET): New macro.
11994         (DEPEND_FILE_ALREADY_SET): Likewise.
11995         (init_parse): Handle new flags.
11996         * jcf.h (jcf_dependency_print_dummies): Declare.
11997         * Make-lang.in (s-java): Added mkdeps.o.
11998         * Makefile.in (BACKEND): Added mkdeps.o.
11999         (../gcjh$(exeext)): Added mkdeps.o.
12000         (../jcf-dump$(exeext)): Added mkdeps.o.
12001         * jcf-depend.c: Include mkdeps.h.
12002         (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
12003         add_entry): Removed.
12004         (jcf_dependency_reset): Rewrote.
12005         (dependencies): New global.
12006         (jcf_dependency_set_target): Rewrote.
12007         (jcf_dependency_add_target): Likewise.
12008         (jcf_dependency_add_file): Likewise.
12009         (munge): Removed.
12010         (print_ents): Removed.
12011         (jcf_dependency_write): Rewrote.
12012         (print_dummies): New global.
12013         (jcf_dependency_print_dummies): New function
12014         (jcf_dependency_write): Call deps_dummy_targets if required.
12015
12016 2000-10-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12017
12018         * gjavah.c (add_class_decl): Removed unused variables `tname',
12019         `tlen' and `name_index'.
12020         * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
12021         * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
12022         in `wfl_operator' with value.
12023         (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
12024         (jcf_figure_file_type): Fixed identation.
12025         * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
12026         * parse.y (analyze_clinit_body): New function.
12027         (static_initializer:): Reset `current_static_block'.
12028         (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
12029         `wfl_operator' with new value.
12030         (lookup_cl): Use EXPR_WFL_FILENAME.
12031         (maybe_yank_clinit): Handle bogus <clinit> bodies, call
12032         analyze_clinit_body.
12033         (build_outer_field_access): Access to this$<n> built from
12034         current_class, not its outer context.
12035         (build_access_to_thisn): Fixed leading comment. Tidied things up.
12036         (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
12037         (patch_method_invocation): Use `is_static_flag' when already
12038         initialized.
12039         (patch_newarray): Removed assignment in ternary operator.
12040
12041 2000-10-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12042
12043         * except.c (free_eh_ranges): Don't free `whole_range'.
12044
12045 2000-10-15  Anthony Green  <green@redhat.com>
12046
12047         * decl.c (init_decl_processing): Call init_class_processing before
12048         anything else.
12049
12050 2000-10-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12051
12052         * check-init.c (check_init): Fixed leading comment. Use
12053         LOCAL_FINAL_P.
12054         * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12055         (give_name_to_locals): Likewise.
12056         (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
12057         fields in lang_decl_var.
12058         * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
12059         DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
12060         (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
12061         (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
12062         DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
12063         (LOCAL_FINAL): Rewritten.
12064         (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
12065         MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
12066         (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
12067         `init_final' fields.
12068         (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
12069         `final_uid', `final_liic', `final_ierr' and `local_final' fields.
12070         (TYPE_HAS_FINAL_VARIABLE): New macro.
12071         (struct lang_type): Added `afv' field.
12072         * parse.y (check_static_final_variable_assignment_flag): New function.
12073         (reset_static_final_variable_assignment_flag): Likewise.
12074         (check_final_variable_local_assignment_flag): Likewise.
12075         (reset_final_variable_local_assignment_flag): Likewise.
12076         (check_final_variable_indirect_assignment): Likewise.
12077         (check_final_variable_global_assignment_flag): Likewise.
12078         (add_inner_class_fields): Use LOCAL_FINAL_P.
12079         (register_fields): Handle local finals and final variables.
12080         (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
12081         (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12082         (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
12083         on local finals.
12084         (java_complete_expand_methods): Loop to set
12085         TYPE_HAS_FINAL_VARIABLE. Call
12086         `reset_final_variable_local_assignment_flag' and
12087         `check_final_variable_local_assignment_flag' accordingly before
12088         and after constructor expansion. Call
12089         `reset_static_final_variable_assignment_flag'
12090         before expanding <clinit> and after call
12091         `check_static_final_variable_assignment_flag' if the
12092         current_class isn't an interface. After all methods have been
12093         expanded, call `check_final_variable_global_assignment_flag' and
12094         `check_static_final_variable_assignment_flag' if the current class
12095         is an interface.
12096         (maybe_yank_clinit): Fixed typo in comment.
12097         (build_outer_field_access_methods): Removed old sanity check. Use
12098         FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12099         Don't create access methods for finals.
12100         (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
12101         (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
12102         existing DECL_INIT has been processed.
12103         (java_complete_lhs): Likewise.
12104         (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
12105         Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
12106         logic.
12107         (patch_assignment): Use LOCAL_FINAL_P.
12108         (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
12109         DECL_INITIAL is nullified.
12110         Fixes gcj/163.
12111
12112 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12113
12114         * Make-lang.in (parse.c, parse-scan.c): Create atomically.
12115
12116         * Makefile.in (parse.c, parse-scan.c): Likewise.
12117
12118 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
12119
12120         * class.c (temporary_obstack): Remove.
12121         (make_class): Don't mess with obstascks.
12122         (push_class): Likewise.
12123         (set_super_info): Likewise.
12124         (add_method_1): Likewise.
12125         (add_method): Likewise.
12126         (add_field): Likewise.
12127         (build_utf8_ref): Likewise.
12128         (build_class_ref): Likewise.
12129         (build_static_field_ref): Likewise.
12130         (finish_class): Likewise.
12131         (push_super_field): Likewise.
12132         (layout_class): Likewise.
12133         (layout_class_methods): Likewise.
12134         (init_class_processing): Likewise.
12135         * constants.c (get_tag_node): Likewise.
12136         (build_constant_data_ref): Likewise.
12137         * decl.c (ggc_p): Remove.
12138         (copy_lang_decl): Use ggc_alloc.
12139         (complete_start_java_method): Don't mess with obstacks.
12140         (start_java_method): Likewise.
12141         (end_java_method): Likewise.
12142         * except.c (link_handler): Use xmalloc.
12143         (free_eh_ranges): New function.
12144         (method_init_exceptions): Use it.
12145         (add_handler): Use xmalloc.
12146         (expand_start_java_handler): Don't mess with obstacks.
12147         (prepare_eh_table_type): Likewise.
12148         (expand_end_java_handler): Likewise.
12149         * expr.c (push_value): Likewise.
12150         (create_label_decl): Likewise.
12151         (build_jni_stub): Likewise.
12152         (java_lang_expand_expr): Likewise.
12153         (note_instructions): Use xrealloc.
12154         (java_push_constant_from_pool): Don't mess with obstacks.
12155         (process_jvm_instruction): Likewise.
12156         * java-tree.h (cyclic_inheritance_report): Remove duplicate
12157         declaration.
12158         * jcf-parse.c (get_constant): Don't mess with obstacks.
12159         (read_class): Likewise.
12160         (jcf_parse): Likewise.
12161         * lex.c (expression_obstack): Remove.
12162         (java_lex): Don't use obstack_free.
12163         * parse.h (exit_java_complete_class): Don't mess with obstacks.
12164         (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
12165         (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
12166         (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
12167         * parse.y (gaol): Add more GC roots.
12168         (add_inner_class_fields): Adjust calls to MANGLE_* macros.
12169         (lookup_field_wrapper): Likewise.
12170         (obtain_incomplete_type): Don't mess with obstacks.
12171         (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
12172         macros.
12173         (craft_constructor): Don't mess with obstacks.
12174         (safe_layout_class): Likewise.
12175         (java_complete_class): Likewise.
12176         (source_end_java_method): Likewise.
12177         (build_outer_field_access_methods): Likewise.
12178         (build_outer_method_access_method): Likewise.
12179         (maybe_build_thisn_access_method): Likewise.
12180         (build_dot_class_method_invocation): Likewise.
12181         (java_complete_tree): Likewise.
12182         (java_complete_lhs): Likewise.
12183         (do_merge_string_cste): Likewise.
12184         (patch_string_cst): Likewise.
12185         (array_constructor_check_entry): Likewise.
12186         * typeck.c (build_java_array_type): Likewise.
12187         (parse_signature_string): Likewise.
12188         (build_java_signature): Likewise.
12189
12190 2000-10-12  Tom Tromey  <tromey@cygnus.com>
12191
12192         Fix for PR gcj/356:
12193         * gjavah.c (add_class_decl): Don't special-case inner classes.
12194         (add_namelet): Likewise.
12195
12196 2000-10-11  Rodney Brown  <RodneyBrown@mynd.com>
12197
12198         * java-tree.h: Constify current_encoding.
12199         * lang.c: Constify current_encoding.
12200
12201 2000-10-10  Jeff Sturm  <jeff.sturm@appnet.com>
12202
12203         * jvgenmain.c (class_mangling_suffix): Omit `.'.
12204         (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
12205
12206 2000-10-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12207
12208         * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
12209         patch. Fixes gcj/340.
12210
12211 2000-10-10  Tom Tromey  <tromey@cygnus.com>
12212
12213         * lex.c (java_new_lexer): Initialize out_first and out_last
12214         fields.
12215         * lex.h (java_lexer): Added out_buffer, out_first, out_last.
12216
12217 2000-10-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12218
12219         * parse.y (pop_current_osb): New function.
12220         (array_type:): Use `dims:', changed actions
12221         accordingly. Suggested by Anthony Green.
12222         (array_creation_expression:): Used pop_current_osb.
12223         (cast_expression:): Likewise.
12224         (search_applicable_method_list): Fixed indentation.
12225
12226 2000-10-08  Anthony Green  <green@redhat.com>
12227
12228         * parse.y (array_type_literal): Remove production.
12229         (type_literals): Refer to array_type, not array_type_literal.
12230
12231 2000-10-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12232
12233         Patch contributed by Corey Minyard.
12234         * decl.c (check_local_named_variable): New function.
12235         (tree check_local_unnamed_variable): Likewise.
12236         (find_local_variable): Splitted. Call check_local_{un}named_variable.
12237
12238 2000-10-07  Anthony Green  <green@redhat.com>
12239
12240         * class.c (layout_class): Handle case where superclass can't be
12241         layed out yet.
12242
12243 2000-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
12244
12245         * Makefile.in (keyword.h): Refer to GNU FTP site for updated
12246         gperf.
12247
12248 2000-10-05  Tom Tromey  <tromey@cygnus.com>
12249
12250         * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
12251         * jvgenmain.c (class_mangling_prefix): Removed.
12252         (class_mangling_suffix): New global.
12253         (main): Use it.
12254         * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
12255         `$'.
12256         (print_method_info): Handle overrides for static and final
12257         methods.
12258         (process_file): Generate declaration for class object field.
12259         * class.c (cxx_keywords): New array.
12260         (utf8_cmp): New function.
12261         (cxx_keyword_p): New function.
12262         (layout_class_method): Mangle C++ keywords by appending `$'.
12263         (mangle_field): New function.
12264         (mangle_class_field): Use mangle_field.  Mangle class name as
12265         `class$'.
12266         (mangle_static_field): Use mangle_field.
12267
12268 2000-10-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12269
12270         * decl.c (find_local_variable): Removed uncessary type check and
12271         fixed range check typo. From Corey Minyard.
12272
12273 2000-09-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12274
12275         * decl.c (give_name_to_locals): New local `code_offset'. Call
12276         `maybe_adjust_start_pc'.
12277         * expr.c (note_instructions): New function.
12278         (expand_byte_code): Don't collect insn starts here.
12279         (peek_opcode_at_pc): New function.
12280         (maybe_adjust_start_pc): Likewise.
12281         * java-tree.h (maybe_adjust_start_pc): Declare.
12282         (note_instructions): Likewise.
12283         * jcf-parse.c (parse_class_file): Call `note_instructions'.
12284
12285 2000-09-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12286
12287         * parse.y (field_access:): Fixed indentation.
12288         (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
12289
12290 2000-09-07  Tom Tromey  <tromey@cygnus.com>
12291
12292         Fix for PR gcj/307:
12293         * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
12294         JPRIMITIVE_TYPE_P, for arithmetic operators.
12295         (patch_method_invocation): Indentation fix.
12296         (try_builtin_assignconv): Handle boolean specially.  Fixed typo.
12297         (valid_builtin_assignconv_identity_widening_p): Handle boolean.
12298         (do_unary_numeric_promotion): Cleaned up code.
12299         (valid_cast_to_p): Handle boolean correctly.
12300
12301 2000-09-27  Tom Tromey  <tromey@cygnus.com>
12302
12303         * lex.c (java_read_unicode): Reset bs_count when finished with
12304         `\u' sequence.
12305
12306 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
12307
12308         Convert to GC.
12309         * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
12310         * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
12311         (typeck.o): Depend on ggc.h.
12312         * class.c (add_method_1): Use GC functions for allocation.
12313         (init_class_processing): Register roots.
12314         * decl.c (ggc_p): Set to 1.
12315         (pending_local_decls): Make it static.
12316         (push_jvm_slot): Use GC functions for allocation.
12317         (init_decl_processing): Register roots.
12318         (give_name_to_locals): Use GC functions for allocation.
12319         (lang_mark_tree): New function.
12320         * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
12321         functions for allocation.
12322         * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
12323         * lex.c (java_lex): Use build_string, rather than replicating it
12324         inline.
12325         * parse.y (goal): Add more roots.
12326         (mark_parser_ctxt): New function.
12327         * typeck.c: Include ggc.h.
12328
12329 2000-09-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12330
12331         * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
12332         contains something else than MODIFY_EXPR.
12333
12334 2000-09-23  Mark Mitchell  <mark@codesourcery.com>
12335
12336         * Make-lang.in (JAVA_SRCS): Include java-tree.h.
12337         * Makefile.in (parse.o): Depend on ggc.h.
12338         (class.o): Likewise.
12339         (constants.o): Likewise.
12340         (decl.o): Likewise.
12341         (expr.o): Likewise.
12342         (jcf-parse.o): Likewise.
12343         (jcf-write.o): Likewise.
12344         (mangle.o): Likewise.
12345         * class.c: Include ggc.h.
12346         (build_static_field_ref): Register GC roots.
12347         (layout_class): Likewise.
12348         (init_class_processing): Likewise.
12349         * constants.c: Include ggc.h.
12350         (current_constant_pool_data_ref): Remove.
12351         (tag_nodes): Move it to ...
12352         (get_tag_node): ... here.  Register GC roots.
12353         * decl.c: Include ggc.h.  Remove many global tree definitions.
12354         (throw_node): Define.
12355         (java_global_trees): Likewise.
12356         (predef_filenames): Make the size a constant.
12357         (init_decl_processing): Adjust accordingly.
12358         (init_decl_processing): Call init_jcf_parse.  Register GC roots.
12359         * expr.c: Include ggc.h.
12360         (init_expr_processing): Register GC roots.
12361         (build_invokeinterface): Likewise.
12362         * java-tree.h: Replace extern tree declarations with macros.
12363         (java_global_trees): New variable.
12364         (java_tree_index): New enumeration.
12365         (init_jcf_parse): Declare.
12366         * jcf-parse.c: Include ggc.h.
12367         (current_class): Remove declaration.
12368         (main_class): Likewise.
12369         (all_class_list): Likewise.
12370         (predefined_filename_p): Adjust for constant size of
12371         predef_filenames.
12372         (init_jcf_parse): New function.
12373         * jcf-write.c: Include ggc.h.
12374         (generate_classfile): Register GC roots.
12375         (append_synthetic_attribute): Likewise.
12376         (append_innerclass_attribute_entry): Likewise.
12377         * lang.c: Include ggc.h.
12378         (lang_print_error): Register GC roots.
12379         * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
12380         with macros.
12381         * parse.y: Include ggc.h.
12382         (wfl_operator): Remove.
12383         (goal): Register GC roots.
12384         (java_pop_parser_context): Adjust for new field names.
12385         (java_parser_context_save_global): Likewse.
12386         (java_parser_context_restore_global): Likewise.
12387         (java_parser_context_suspend): Likewise.
12388         (java_parser_context_resume): Likewise.
12389         (verify_constructor_circularity): Register GC roots.
12390         (lookup_cl): Likewise.
12391         (java_reorder_fields): Likewise.
12392         (build_current_this): Likewise.
12393         (class_in_current_package): Likewise.
12394         (argument_types_convertible): Likewise.
12395         (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
12396
12397 2000-09-14  Tom Tromey  <tromey@cygnus.com>
12398
12399         * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
12400
12401 2000-09-13  Tom Tromey  <tromey@cygnus.com>
12402
12403         * jcf-parse.c: Include <locale.h>.
12404         * jv-scan.c: Include <locale.h>.
12405
12406 2000-09-12  Tom Tromey  <tromey@cygnus.com>
12407
12408         * expr.c (pop_type_0): Return `Object' if trying to merge two
12409         interface types.
12410         * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
12411         interface types; `Object' is always a valid supertype.
12412
12413 2000-09-12  Tom Tromey  <tromey@cygnus.com>
12414
12415         Fix for PR gcj/33:
12416         * jv-scan.c (help): Document --encoding.
12417         (options): Added `encoding' entry.
12418         (OPT_ENCODING): New define.
12419         (main): Handle --encoding.
12420         Include <langinfo.h> if nl_langinfo exists.
12421         * lang-options.h: Document --classpath, --CLASSPATH, --main, and
12422         --encoding.
12423         * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
12424         (parse_source_file): Correctly call java_init_lex.  Added `finput'
12425         argument.  Use nl_langinfo to determine default encoding.
12426         * java-tree.h (current_encoding): Declare.
12427         * parse.y (java_parser_context_restore_global): Don't restore
12428         `finput'.
12429         (java_parser_context_save_global): Don't set `finput' field.
12430         (java_pop_parser_context): Don't restore `finput'.  Free old lexer
12431         if required.
12432         * lang.c (current_encoding): New global.
12433         (lang_decode_option): Recognize `-fencoding='.
12434         (finish_parse): Don't close finput.
12435         * parse.h (struct parser_ctxt): Removed `finput' and
12436         `unget_utf8_value' fields.  Added `lexer' field.
12437         (java_init_lex): Fixed declaration.
12438         * lex.c (java_new_lexer): New function.
12439         (java_destroy_lexer): Likewise.
12440         (java_read_char): Added `lex' argument.  Handle iconv case.
12441         (java_read_unicode): Added `lex' argument.  Count backslashes in
12442         lexer structure.
12443         (java_init_lex): Added `finput' and `encoding' arguments.  Set
12444         `lexer' field in ctxp.
12445         (BAD_UTF8_VALUE): Removed.
12446         (java_lex): Handle seeing UEOF in the middle of a string literal.
12447         * lex.h: Include <iconv.h> if HAVE_ICONV defined.
12448         (java_lexer): New structure.
12449         (UNGETC): Removed.
12450         (GETC): Removed.
12451         (DEFAULT_ENCODING): New define.
12452         (java_destroy_lexer): Declare.
12453
12454 2000-09-12  Tom Tromey  <tromey@cygnus.com>
12455
12456         Fix for PR gcj/343:
12457         * lex.c (java_init_lex): Initialize java_io_serializable.
12458         * parse.y (java_io_serializable): New global.
12459         (valid_ref_assignconv_cast_p): An array can be cast to
12460         serializable.
12461
12462 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
12463
12464         * decl.c, expr.c: Include defaults.h if not already included.
12465         Don't define the *_TYPE_SIZE macros.
12466
12467 2000-09-09  Geoffrey Keating  <geoffk@cygnus.com>
12468
12469         * typeck.c (build_java_array_type): Correct first parameter
12470         in ADJUST_FIELD_ALIGN invocation.
12471
12472 2000-09-06  Tom Tromey  <tromey@cygnus.com>
12473
12474         * lang-specs.h: Also recognize `-femit-class-files'.
12475
12476 2000-09-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12477
12478         * verify.c (merge_types): Load the types to merge if necessary.
12479
12480 2000-09-02  Anthony Green  <green@redhat.com>
12481
12482         * jcf-io.c: Include zlib.h.
12483         (open_in_zip): Read compressed class file archives.
12484         * zipfile.h (ZipDirectory): Add uncompressed_size and
12485         compression_method fields.
12486         * zextract.c (read_zip_archive): Collect file compression info.
12487
12488 2000-08-15  Bryce McKinlay  <bryce@albatross.co.nz>
12489
12490         * parse.y (do_resolve_class): Also explore superclasses of
12491         intermediate enclosing contexts when searching for inner classes.
12492
12493 2000-08-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12494
12495         * parse.y (variable_declarator_id:): Better error message.
12496         (expression_statement:): Use YYNOT_TWICE.
12497         (cast_expression:): Likewise.
12498         (assignment:): Likewise.
12499
12500 2000-08-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12501
12502         * parse.y (do_merge_string_cste): New locals. Create new
12503         STRING_CSTs each time, use memcpy. Fixes gcj/311.
12504
12505 2000-08-07  Hans Boehm  <boehm@acm.org>
12506
12507         * boehm.c (mark_reference_fields): Set marking bits for all words in
12508         a multiple-word record.
12509         (get_boehm_type_descriptor): Use the procedure marking descriptor for
12510         java.lang.Class.
12511
12512 2000-08-31  Mike Stump  <mrs@wrs.com>
12513
12514         * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
12515         jcf-dump$(exeext)): Make parallel safe.
12516
12517 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
12518
12519         * jcf-parse.c (set_source_filename): Constify a char *.
12520         * jcf-write.c (append_innerclasses_attribute,
12521         make_class_file_name): Constify a char *.  Don't recycle a
12522         variable for an unrelated purpose.
12523         * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
12524         (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
12525
12526 2000-08-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12527
12528         * expr.c (can_widen_reference_to): Fixed indentation.
12529         * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
12530         * parse.y: `finit$' replaces `$finit$' in comments.
12531         (try_builtin_assignconv): Fixed leading comment.
12532
12533 2000-08-25  Greg McGary  <greg@mcgary.org>
12534
12535         * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
12536
12537 2000-08-24  Greg McGary  <greg@mcgary.org>
12538
12539         * lang.c (lang_decode_option): Use ARRAY_SIZE.
12540         * parse.y (BINOP_LOOKUP): Likewise.
12541
12542 2000-08-22  Andrew Haley  <aph@cygnus.com>
12543
12544         * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
12545         sign extending. Fixes gcj/321.
12546         * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
12547         combining to make a jlong. Fixes gcj/321.
12548
12549 2000-08-21  Nix  <nix@esperi.demon.co.uk>
12550
12551         * lang-specs.h: Do not process -o or run the assembler if
12552         -fsyntax-only.
12553
12554 2000-08-16  Andrew Haley  <aph@cygnus.com>
12555
12556         * typeck.c (build_java_array_type): Rewrite code to do array
12557         alignment.  Take into account back-end macros when aligning array
12558         data.  Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
12559         user to set alignment. Fixes gcj/252 and 160.
12560
12561 2000-08-09  Tom Tromey  <tromey@cygnus.com>
12562
12563         * parse.y (check_abstract_method_definitions): Now return `int'.
12564         Check implemented interfaces.  Fixes PR gcj/305.
12565
12566         * parse.y (patch_switch_statement): Disallow `long' in switch
12567         expressions.  Fixes PR gcj/310.
12568
12569 2000-08-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12570
12571         * decl.c (finit_leg_identifier_node): New global.
12572         (init_decl_processing): Use `finit$' to initialize
12573         finit_identifier_node. Use `$finit$' to initialize
12574         finit_leg_identifier_node.
12575         * expr.c (expand_java_field_op): Use ID_FINIT_P.
12576         * java-tree.h (finit_identifier_node): Changed attached comment.
12577         (finit_leg_identifier_node): New declaration.
12578         (ID_FINIT_P): Take finit_identifier_node and
12579         finit_leg_identifier_node into account. This is a backward
12580         compatibility hack.
12581
12582 2000-08-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12583
12584         * jcf-write.c (generate_bytecode_conditional): Re-installed lost
12585         Jan 6 2000 patch.
12586         (generate_bytecode_insns): Check `nargs' before emitting it.
12587         * verify.c (merge_type_state): Fixed typo.
12588         * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
12589         generate_bytecode_{conditional,insns}.
12590
12591 2000-08-13  Anthony Green  <green@redhat.com>
12592
12593         * check-init.c (check_init): Add case for BIT_FIELD_REF (required
12594         for -pg builds).
12595
12596 2000-08-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12597
12598         * class.c (maybe_layout_super_class): Fixed indentation.
12599         * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
12600         (java_check_methods): New function declaration.
12601         * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
12602         instead of `str_ptr'.
12603         * jcf-write.c (generate_bytecode_insns): Emit number the of args
12604         of a `invokeinterface' at the right time.
12605         * parse.h (WFL_STRIP_BRACKET): New macro.
12606         (SET_TYPE_FOR_RESOLUTION): Use it.
12607         * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
12608         (check_class_interface_creation): Don't check for cross package
12609         innerclass name clashes.
12610         (method_header): Behave properly if MDECL is `error_mark_node'.
12611         (method_declarator): Return `error_mark_node' if bogus current
12612         class.
12613         (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
12614         (resolve_and_layout): New local `decl_type', set and used. Call
12615         java_check_methods.
12616         (java_check_methods): New method.
12617         (java_layout_classes): Use it.
12618         (resolve_qualified_expression_name): No EH check necessary in
12619         access$<n>.
12620         (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
12621         `case' statement.
12622         (patch_assignment): Set DECL_INITIAL on integral final local.
12623
12624 2000-08-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12625
12626         * java-tree.h (flag_extraneous_semicolon): New extern.
12627         * lang-options.h: (-Wextraneous-semicolon): New option.
12628         * lang.c (flag_redundant): Fixed typo in leading comment.
12629         (flag_extraneous_semicolon): New global.
12630         (lang_decode_option): Set `flag_extraneous_semicolon' when
12631         -Wall. Decode `-Wextraneous-semicolon'.
12632         * parse.y (type_declaration:): Removed `SC_TK' hack, added
12633         `empty_statement' rule.
12634         (class_body_declaration): Likewise.
12635         (method_body:): Accept `;' as a method body.
12636         (static_initializer:): Removed `SC_TK' hack.
12637         (constructor_block_end:): Likewise.
12638         (empty_statement:): Report deprecated empty declaration. Fixes
12639         gcj/295
12640
12641 2000-08-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12642
12643         * parse.y (build_dot_class_method_invocation): Changed parameter
12644         name to `type'. Build signature from `type' and convert it to a
12645         STRING_CST if it's an array.
12646         (patch_incomplete_class_ref): `build_dot_class_method_invocation'
12647         to use `ref_type' directly.
12648
12649 2000-08-06  Ovidiu Predescu  <ovidiu@cup.hp.com>
12650
12651         * lang-options.h: Added a comma after the last element to avoid
12652         syntax errors when other languages define additional options.
12653
12654 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
12655
12656         * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
12657         * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
12658         (jc1): Link with $(BACKEND).
12659         (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
12660
12661 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
12662
12663         * jvspec.c: Adjust type of second argument to
12664         lang_specific_driver, and update code as necessary.
12665
12666         * class.c (build_dtable_decl): Initialize dummy.
12667
12668 2000-08-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12669
12670         * parse.y (maybe_yank_clinit): When generating bytecode: non empty
12671         method bodies not to rule out discarding `<clinit>'; don't use
12672         <clinit> to initialize static fields with constant initializers.
12673
12674 2000-08-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12675
12676         * gjavah.c (print_method_info): Added `synth' parameter. Skip
12677         synthetic methods.
12678         (method_synthetic): New global.
12679         (HANDLE_METHOD): Recognize synthetic method and tell
12680         `print_method_info' about it.
12681         (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
12682         processing a synthetic method.
12683         * jcf-reader.c (skip_attribute): New function.
12684         ( skip_attribute): Likewise.
12685
12686 2000-08-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12687
12688         * parse.y (build_outer_field_access): Fixed comments.
12689         (fix_constructors): Emit the initialization of this$<n> before
12690         calling $finit$.
12691         (resolve_qualified_expression_name): Build an access to `decl' if
12692         necessary.
12693
12694 2000-07-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12695
12696         * parse-scan.y (curent_class): Non longer const.
12697         (inner_qualifier, inner_qualifier_length): Deleted.
12698         (current_class_length): New global.
12699         (bracket_count): Fixed typo in leading comment.
12700         (anonymous_count): New global.
12701         (class_instance_creation_expression:): Handle anonymous classes.
12702         (anonymous_class_creation:): New rule.
12703         (push_class_context): Rewritten.
12704         (pop_class_context): Likewise.
12705         (INNER_QUALIFIER): Macro deleted.
12706         (report_class_declaration): call `push_class_context' when
12707         entering the function. `fprintf' format modified not to use
12708         INNER_QUALIFIER.
12709         (report_class_declaration): Assign `package_name' and
12710         `current_class' to NULL separately.
12711
12712 2000-07-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12713
12714         * expr.c (build_invokeinterface): Call layout_class_methods on
12715         target interface.
12716
12717 2000-07-27  Tom Tromey  <tromey@cygnus.com>
12718             Anthony Green  <green@cygnus.com>
12719             Alexandre Petit-Bianco  <apbianco@cygnus.com>
12720
12721         * class.c (make_class_data): Create vtable for abstract classes.
12722         (get_dispatch_table): Changed to cope with abstract classes.
12723
12724 2000-07-27  Tom Tromey  <tromey@cygnus.com>
12725
12726         * parse.y (patch_method_invocation): Don't reverse the argument
12727         list when dealing with anonymous class constructors. Fixed typo in
12728         comment.
12729
12730 2000-07-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12731
12732         * parse.y (build_alias_initializer_parameter_list): Reverse
12733         crafted list when building aliases for anonymous class
12734         constructors.
12735
12736 2000-07-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12737
12738         * parse.y (jdep_resolve_class): Don't bother checking potential
12739         innerclass access if `decl' is NULL.
12740         (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
12741         WFL.
12742
12743 2000-07-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12744
12745         * parse.c: Remove (again.)
12746
12747 2000-07-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12748
12749         * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
12750         * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
12751         outside the `if' statement, alias to innerclass removed, `decl'
12752         used to mark the class complete.
12753
12754 2000-07-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12755
12756         * parse.y (simple_name:): Fixed typo in error message.
12757
12758 2000-07-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12759
12760         * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
12761         or its first operand can be error marks.
12762
12763 2000-07-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12764
12765         * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
12766         * parse.y (method_header): Likewise.
12767
12768 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12769
12770         * parse.y (process_imports): Consider that one might be trying to
12771         import an innerclass. Fixes gcj/254
12772
12773 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12774
12775         * parse.y (find_as_inner_class): Handle the case where the
12776         enclosing context of an innerclass has been loaded as bytecode.
12777
12778 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12779
12780         * parse.y (simple_name:): Reject `$' in type names.
12781         (resolve_type_during_patch): Use `type' as a second
12782         argument to resolve_no_layout. Fixes gcj/257.
12783
12784 2000-07-18  Bryce McKinlay  <bryce@albatross.co.nz>
12785
12786         * parse.y (find_most_specific_methods_list): Select the only
12787         non-abstract method even if max has been set.
12788         Fixes gcj/285, gcj/298.
12789
12790 2000-07-18  Jeff Sturm  <jeff.sturm@appnet.com>
12791
12792         * lang-specs.h: Added %(jc1) to java compiler options.
12793
12794 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
12795
12796         * .cvsignore: New file.
12797
12798 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12799
12800         * parse.y (not_accessible_p): Access granted to innerclasses
12801         (indirectly) extending the reference type. Fixes gcj/249.
12802
12803 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12804
12805         * parse.y (patch_method_invocation): Fixed comment.
12806         (maybe_use_access_method): Build this$<n>s to the context of the
12807         target method, or a type that extends it. Fixes gcj/242.
12808
12809 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
12810
12811         * parse.c: Remove.
12812
12813 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12814
12815         * parse.y (fold_constant_for_init): Avoid bullish conversion.
12816
12817 2000-07-13  Tom Tromey  <tromey@cygnus.com>
12818
12819         * lang-specs.h: Added %{I*}.
12820
12821 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
12822
12823         * lang-specs.h: Use the new named specs.  Remove unnecessary braces.
12824
12825 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
12826
12827         * parse-scan.c: Remove.
12828
12829 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12830
12831         * class.c (set_super_info): Handled protected inner classes.
12832         (common_enclosing_context_p): Bail early if arguments aren't both
12833         inner classes.
12834         (get_access_flags_from_decl): Handle private and protected inner
12835         classes.
12836         * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
12837         (CLASS_PROTECTED): Likewise.
12838         (struct lang_type): New bitfield `poic'.
12839         * parse.y (jdep_resolve_class): Call check_inner_class_access on
12840         inner classes only.
12841         (check_inner_class_access): Renamed arguments, added
12842         comments. Handles protected inner classes (fixes gcj/225)
12843         (not_accessible_p): Fixed comments. Avoid handling inner classes.
12844
12845 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12846
12847         * parse.y (resolve_qualified_expression_name): Verify qualified
12848         access to `this'. Fixes gcj/239.
12849
12850 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12851
12852         * jcf-write.c (generate_classfile): Don't install ConstantValue
12853         for null pointers.
12854
12855 2000-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12856
12857         * parse.y (resolve_qualified_expression_name): Handle inner class
12858         access. Fixes gcj/256.
12859
12860 2000-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12861
12862         * jcf-write.c (generate_classfile): Properly install the
12863         ConstantValue attribute and the initial value constant pool index
12864         on string constants.
12865         * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
12866         class files.
12867
12868 2000-07-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12869
12870         * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
12871         construct.
12872         * parse.y (find_as_inner_class): Fixed typo.
12873         (do_resolve_class): Explore enclosing contexts when searching for
12874         innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
12875         (check_inner_class_access): Check `decl' which can be null in case
12876         of previous errors.
12877
12878 2000-07-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12879
12880         * java-tree.h (java_debug_context): Declared `extern'.
12881         (safe_layout_class): Likewise.
12882         * parse.y (resolve_field_access): Field must be `static' in order
12883         to be replaced by its initial value. Added comments.
12884         (find_applicable_accessible_methods_list): Fixed typo.
12885         (find_most_specific_methods_list): Methods found in innerclasses
12886         take over methods founds in the enclosing contexts.
12887         (java_complete_tree): Loosen restrictions on the type of DECLs
12888         that can be replaced by their initialization values.
12889         (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
12890
12891 2000-07-05  Tom Tromey  <tromey@cygnus.com>
12892
12893         * Make-lang.in (PARSE_DIR): New macro.
12894         (PARSE_RELDIR): Likewise.
12895         (PARSE_C): Likewise.
12896         (PARSE_SCAN_C): Likewise.
12897         ($(PARSE_C)): New target.
12898         ($(PARSE_SCAN_C)): Likewise.
12899         (SET_BISON): New macro.
12900         (BISONFLAGS): Likewise.
12901         (JAVABISONFLAGS): Likewise.
12902
12903 2000-07-02  Bryce McKinlay  <bryce@albatross.co.nz>
12904
12905         * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
12906         argument on the first pass for CNI as well as JNI.
12907         (print_method_info): Set up method name on the first pass only.
12908
12909 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12910
12911         * parse.y (parser_qualified_classname): Removed parameter
12912         `is_static'.
12913         (create_interface): Removed first passed parameter to
12914         parser_qualified_classname.
12915         (create_class): Likewise. Don't install alias on static
12916         innerclasses. Fixes gcj/275.
12917
12918 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12919
12920         * parse.y (maybe_generate_pre_expand_clinit): Don't build a
12921         debugable statement with empty_stmt_node. Fixes gcj/272
12922
12923 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12924
12925         * expr.c (build_instanceof): Layout type after it's loaded. Fixes
12926         gcj/271.
12927
12928 2000-06-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12929
12930         * jcf-write.c (push_long_const): Appropriately cast short negative
12931         constant to jword.
12932
12933 2000-06-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12934
12935         * parse.y (verify_constructor_super): Use loop variable
12936         `m_arg_type' initialized with `mdecl_arg_type'.
12937
12938 2000-06-29  Tom Tromey  <tromey@cygnus.com>
12939
12940         * parse.y (resolve_field_access): Handle case where `type_found'
12941         is NULL.
12942
12943 2000-06-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12944
12945         * expr.c (lookup_field): The same field can be found through two
12946         different interface. Don't declare it ambiguous in that case.
12947
12948 2000-06-27  Tom Tromey  <tromey@cygnus.com>
12949
12950         * lex.c (java_lineterminator): Don't recognize \r after \n.  If \r
12951         follows \r, then unget it at a lower level.
12952
12953 2000-06-26  Tom Tromey  <tromey@cygnus.com>
12954
12955         * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
12956         java_complete_tree.
12957
12958 2000-06-25  Tom Tromey  <tromey@cygnus.com>
12959
12960         * parse.y (for_statement): Wrap expression in a WFL if it is a
12961         constant.  For PR gcj/268.
12962
12963 2000-06-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12964
12965         * parse.y (do_resolve_class): Minor optimiztion in the package
12966         list search. Removed unnecessary test and return statement.
12967         (valid_ref_assignconv_cast_p): Order of arguments to
12968         enclosing_context_p fixed.
12969
12970 2000-06-24  Tom Tromey  <tromey@cygnus.com>
12971
12972         * expr.c (lookup_field): Print error and return error_mark_node if
12973         field reference is ambiguous.
12974
12975         * parse.y (check_abstract_method_definitions): Also check if
12976         `other_method' is abstract.
12977
12978 2000-06-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12979
12980         * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
12981         classes.
12982         * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
12983         (struct lang_type): New field `pic'.
12984         (CLASS_PRIVATE): New macro.
12985         * parse.y (check_inner_class_access): New function.
12986         (jdep_resolve_class): Call it.
12987
12988 2000-06-23  Tom Tromey  <tromey@cygnus.com>
12989
12990         * parse.y (patch_incomplete_class_ref): Initialize the returned
12991         class.  For PR gcj/260.
12992
12993 2000-06-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12994
12995         * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
12996
12997 2000-06-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12998
12999         * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13000         Java specific checks.
13001         * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
13002         screened by DECL_P.
13003         * java-tree.def (CASE_EXPR): Marked 'e'.
13004         (DEFAULT_EXPR): Likewise.
13005         * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
13006         screened by DECL_P.
13007         * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13008         Java specific checks.
13009         (generate_bytecode_insns): Test try_block for BLOCK before using
13010         BLOCK_EXPR_BODY.
13011         * parse.y (build_wfl_wrap): Added `location' argument. Set
13012         EXPR_WFL_LINECOL accordingly.
13013         (dim_expr:): Wrap constants with WFLs.
13014         (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
13015         (resolve_package): Check for `stmt' not being a BLOCK before
13016         building a debuggable statement with it.
13017         (make_qualified_primary): Added extra parameter to build_wfl_wrap
13018         invocation.
13019         (resolve_field_access): Make sure `decl' is a DECL before treating
13020         it as such.
13021         (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
13022         IDENTIFIER_NODE before treating it as such.
13023         (patch_new_array_init): Make sure `elt' is a TREE_LIST before
13024         treating it as such.
13025         (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
13026         to be applied only on non array types.
13027
13028 2000-06-16  Per Bothner  <per@bothner.com>
13029
13030         * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN):  Don't
13031         define in terms of DECL_RESULT, as that fails when --enable-checking.
13032
13033 2000-06-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13034
13035         * jcf-write.c (CHECK_PUT): Add static prototype.  Make pointer
13036         types the same in comparison.
13037         (CHECK_OP): Add static prototype.
13038
13039 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
13040
13041         * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
13042         * parse.y (java_complete_class): Set DECL_USER_ALIGN.
13043         * parse.c: Rebuilt.
13044
13045 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13046
13047         * decl.c (create_primitive_vtable): Prototype.
13048
13049         * jcf-write.c (generate_bytecode_insns): Initialize variable
13050         `saved_context'.
13051
13052         * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
13053
13054 2000-06-09  Bryce McKinlay  <bryce@albatross.co.nz>
13055
13056         * parse.y (find_applicable_accessible_methods_list): Use a hashtable
13057         to track searched classes, and do not search the same class more than
13058         once. Call find_applicable_accessible_methods_list on immediate
13059         superclass, instead of search_applicable_method_list on all ancestors.
13060         Fix for PR gcj/238.
13061
13062 2000-06-09  Bryce McKinlay  <bryce@albatross.co.nz>
13063
13064         * parse.y (register_fields): Permit static fields in inner classes
13065         if they are final. Fix for PR gcj/255.
13066
13067 2000-06-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13068
13069         * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
13070         * parse.y (find_in_imports): Returned type changed to void,
13071         leading comment fixed.
13072         (register_package): New function.
13073         (qualify_and_find): Likewise.
13074         (package_declaration:): Use `register_package'.
13075         (single_type_import_declaration:): Removed local variable
13076         `node'. Added missing `;' for consistency.
13077         (type_import_on_demand_declaration:): Use `chainon' to link new
13078         entries.
13079         (lookup_field_wrapper): Lookup local variables defined in outer
13080         contexts first.
13081         (java_complete_class): Don't reverse the list of imported on demand.
13082         (do_resolve_class): Reorganized. Removed local variable
13083         `original_name'. Call `qualify_and_find' with the current package
13084         name, invoke `find_in_imports_on_demand' right after. Call
13085         `qualify_and_find' with the packages we've seen so far. Fixed
13086         operations numbering in comments.
13087         (java_expand_class): Don't reverse `package_list'.
13088         (find_most_specific_methods_list): New local variables `abstract'
13089         and `candidates'. Use them to pick the right method.
13090
13091 2000-06-06  Tom Tromey  <tromey@ferrule.cygnus.com>
13092
13093         * parse.y (check_modifiers_consistency): Don't subtract out
13094         `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
13095
13096 2000-06-04  Philipp Thomas  <pthomas@suse.de>
13097
13098         * Makefile.in (INTLLIBS): New.
13099         (LIBS): Add above.
13100         (DEPLIBS): Ditto.
13101
13102 2000-06-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13103
13104         * class.c (get_dispatch_table): Build the vtable dummy entry list
13105         element with a null purpose. Fixed leading comment.
13106         (build_dtable_decl): Build an accurate dtable type when appropriate
13107         and use it.
13108
13109 2000-06-02  Richard Henderson  <rth@cygnus.com>
13110
13111         * lang.c (lang_get_alias_set): New.
13112
13113 2000-05-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13114
13115         * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
13116         before using it as the accessed field.
13117
13118 2000-05-31  Tom Tromey  <tromey@cygnus.com>
13119
13120         * java-tree.h (boolean_array_vtable, byte_array_vtable,
13121         char_array_vtable, short_array_vtable, int_array_vtable,
13122         long_array_vtable, float_array_vtable, double_array_vtable):
13123         Declare.
13124         * expr.c (get_primitive_array_vtable): New function.
13125         (create_primitive_vtable): New function.
13126         (java_lang_expand_expr): Enable code to statically generate
13127         arrays.
13128         * decl.c (init_decl_processing): Create primitive vtables.
13129         (boolean_array_vtable, byte_array_vtable, char_array_vtable,
13130         short_array_vtable, int_array_vtable, long_array_vtable,
13131         float_array_vtable, double_array_vtable): Define.
13132
13133 2000-05-26  Zack Weinberg  <zack@wolery.cumb.org>
13134
13135         * java/parse.y (find_applicable_accessible_methods_list):
13136         Don't add an uninitialized value to the list.
13137
13138 2000-05-25  Tom Tromey  <tromey@cygnus.com>
13139
13140         * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
13141         when trying to see if field's class should be initialized.  Always
13142         initialize field's declaring class, not qualified class.
13143         For PR gcj/162.
13144
13145         * parse.y (array_constructor_check_entry): Pass `wfl_value', not
13146         `wfl_operator', to maybe_build_primttype_type_ref.
13147         Fixes PR gcj/235.
13148
13149 2000-05-23  Bryce McKinlay  <bryce@albatross.co.nz>
13150
13151         * parse.y (patch_method_invocation): Don't try to lookup methods
13152         in primitive types.
13153
13154 2000-05-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13155
13156         * parse.y (resolve_field_access): Call the appropriate <clinit>
13157         before accessing the length of a static array. Craft a decl for
13158         the field while its time. Fixes PR gcj/129.
13159
13160 2000-05-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13161
13162         * parse.y (resolve_package): Correctly set `*next' (was off by
13163         one.)
13164         (resolve_qualified_expression_name): Fixed comment.
13165
13166 2000-04-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13167
13168         * jcf-parse.c (jcf_parse_source): Reset current_class and
13169         current_function_decl to NULL before parsing a new file.
13170
13171 2000-04-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13172
13173         * parse.y (block_end:): If the collected block doesn't feature a
13174         statement, insert an empty statement.
13175
13176 2000-04-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13177
13178         * parse.y (maybe_yank_clinit): New function.
13179         (maybe_generate_pre_expand_clinit): Always link <clinit> at the
13180         end of the list of methods belonging to a class.
13181         (java_complete_expand_method): Check whether <clinit> is really
13182         necessary and expand it accordingly.
13183
13184 2000-04-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13185
13186         * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
13187         processed by the method's switch statement.
13188
13189 2000-05-19  Tom Tromey  <tromey@cygnus.com>
13190
13191         * java-tree.h: Added init state enum.
13192         * decl.c (emit_init_test_initialization): Initialize class
13193         initialization check variable by looking at class' state.
13194
13195 2000-05-19  Tom Tromey  <tromey@cygnus.com>
13196
13197         * java-tree.h (build_instanceof): Declare.
13198         (build_get_class): Declare.
13199         * parse.y (patch_binop): Use build_instanceof.
13200         * expr.c (build_instanceof): New function.  If class is final,
13201         don't make a function call.
13202         (expand_java_INSTANCEOF): Use it.
13203         (build_get_class): New function.
13204
13205 2000-05-18  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13206
13207         * jcf-write.c (generate_classfile): Scan the source_file for
13208         slashes with the right pointer variable.
13209
13210 2000-05-17  Andrew Cagney  <cagney@b1.cygnus.com>
13211
13212         * lang.c (lang_decode_option): Update -Wunused flags by calling
13213         set_Wunused.
13214         * decl.c (poplevel): Replace warn_unused with warn_unused_label.
13215
13216 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
13217
13218         * check_init.c (check_init): Constify local char *.
13219         * class.c (push_class): Constify local char *.
13220         * java_tree.h: Update prototypes.
13221         * jcf-io.c (open_class): Constify filename parameter and
13222         return value.
13223         (find_class): Remove redundant string copy.  Cast return from
13224         open_class.
13225         * jcf-parse.c (read_class, parse_class_file, yyparse):
13226         Constify local char *.
13227         * jcf-write.c (generate_bytecode_insns, generate_classfile):
13228         Constify local char *.
13229         * jcf.h (JCF): Constify filename and classname.
13230         (JCF_FINISH): Cast args to FREE to char * when appropriate.
13231         * lang.c (init_parse): Constify parameter and return value.
13232         * lex.c (java_get_line_col): Constify filename parameter.
13233         * parse.h: Constify parser_ctxt.filename.  Update prototypes.
13234         * parse.y (java_parser_context_suspend,
13235         issue_warning_error_from_context, safe_layout_class): Constify
13236         local char *.
13237         * parse.c: Regenerate.
13238
13239 2000-05-08  Tom Tromey  <tromey@cygnus.com>
13240
13241         * expr.c (build_jni_stub): Cache the result of
13242         _Jv_LookupJNIMethod.
13243
13244 2000-05-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13245
13246         * decl.c (predef_filenames_size): Now 7.
13247         (predef_filenames): New seventh entry.
13248
13249 2000-05-04  Tom Tromey  <tromey@cygnus.com>
13250
13251         * boehm.c (mark_reference_fields): Don't mark RawData fields.
13252         Keep track of when we've seen a reference field after a
13253         non-reference field.
13254         (get_boehm_type_descriptor): Handle case where we see
13255         non-reference fields but no trailing reference field.
13256         * decl.c (rawdata_ptr_type_node): Define.
13257         (init_decl_processing): Initialize rawdata_ptr_type_node.
13258         * java-tree.h (rawdata_ptr_type_node): Declare.
13259
13260 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13261
13262         * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
13263         specifiers in calls to fprintf.
13264
13265 2000-05-03  Andrew Haley  <aph@cygnus.com>
13266
13267         * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
13268
13269         * javaop.h (WORD_TO_INT): New function.
13270         (IMMEDIATE_s4): Use WORD_TO_INT.
13271         * jcf.h (JPOOL_INT): Ditto.
13272
13273         * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
13274         separator.
13275
13276 2000-04-19  Tom Tromey  <tromey@cygnus.com>
13277
13278         * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
13279         on native function.
13280         * jcf-parse.c (parse_class_file): Call build_jni_stub for native
13281         JNI methods.
13282         * expr.c (build_jni_stub): New function.
13283         * lang-specs.h: -fjni and -femit-class-file are incompatible.
13284         * parse.c: Rebuilt.
13285         * parse.y (java_complete_expand_methods): Expand a native method
13286         and call build_jni_stub if -fjni given.
13287         * lang-options.h: Document -fjni.
13288         * lang.c (flag_jni): New global.
13289         (lang_f_options): Added `jni' entry.
13290         * java-tree.h (soft_lookupjnimethod_node,
13291         soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
13292         Declare.
13293         (flag_jni): Declare.
13294         (build_jni_stub): Declare.
13295         (struct lang_decl): Added `native' flag.
13296         (METHOD_NATIVE): Redefined to use `native' field of lang specific
13297         structure.
13298         * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
13299         soft_jnipopsystemframe_node): New globals.
13300         (init_decl_processing): Set them.  _Jv_InitClass only takes one
13301         argument.
13302
13303         * java-tree.def: Put into `C' mode.
13304
13305 2000-04-27  Tom Tromey  <tromey@cygnus.com>
13306
13307         Fix for PR gcj/2:
13308         * expr.c (expand_invoke): Generate check to see if object pointer
13309         is null in nonvirtual invocation case.
13310         * java-tree.h (soft_nullpointer_node): Declare.
13311         * decl.c (soft_nullpointer_node): New global.
13312         (init_decl_processing): Initialize soft_nullpointer_node.
13313         * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13314         or `private' methods.
13315         (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13316
13317 2000-04-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13318
13319         * decl.c (complete_start_java_method): Don't call _Jv_InitClass
13320         from <clinit>
13321
13322 2000-04-26  Tom Tromey  <tromey@cygnus.com>
13323
13324         * zextract.c (find_zip_file_start): New function.
13325         (read_zip_archive): Use it.
13326
13327 2000-04-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13328
13329         * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
13330
13331 2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13332
13333         * class.c (common_enclosing_context_p): New function.
13334         * java-tree.h (common_enclosing_context_p): Added prototype.
13335         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
13336         classes sharing an outer context with the current instance.
13337         * parse.y (build_access_to_thisn): Fixed leading comment.
13338         (verify_constructor_super): New local `supper_inner'. Skip
13339         enclosing context argument in the case of inner class constructors.
13340         (patch_method_invocation): Insert proper context as second
13341         parameter to pure inner class constructor super invocations.
13342
13343 2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13344
13345         * parse.y (end_class_declaration): Reset the interface number
13346         counter.
13347
13348 2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13349
13350         * parse.y (source_start_java_method): Deleted unnecessary code.
13351         (patch_method_invocation): Fixed comment.
13352
13353 2000-04-24  Robert Lipe <robertlipe@usa.net>
13354
13355         * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
13356
13357 2000-04-23  Tom Tromey  <tromey@cygnus.com>
13358
13359         * boehm.c (mark_reference_fields): Use int_byte_position.
13360
13361 2000-04-22  Tom Tromey  <tromey@cygnus.com>
13362
13363         * boehm.c (mark_reference_fields): Only call byte_position on
13364         non-static fields.
13365
13366 2000-04-22  Tom Tromey  <tromey@cygnus.com>
13367
13368         * boehm.c (mark_reference_fields): Added `last_view_index'
13369         argument.  Use DECL_FIELD_OFFSET to determine field's offset.
13370
13371 2000-04-20  Mo DeJong  <mdejong@cygnus.com>
13372
13373         * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
13374         * parse.y (check_class_interface_creation): Fixed comments. Select
13375         permitted modifiers for (inner) interfaces. Changed error message
13376         to report rejected modifiers used with local classes.
13377
13378 2000-04-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13379
13380         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
13381         of directly inherited type considered in scope.
13382         * parse.y (do_resolve_class): Search inherited classes for inner
13383         classes.
13384
13385 2000-04-20  Tom Tromey  <tromey@cygnus.com>
13386
13387         * parse.y (not_accessible_p): Use member's class, not current
13388         class, when doing inheritance check for protected reference.
13389         Fixes PR gcj/124.
13390
13391 2000-04-20  Jason Schroeder  <shrode@subnature.com>
13392
13393         * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
13394
13395 2000-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13396
13397         * parse.y (lookup_field_wrapper): Search for final local aliases.
13398         (resolve_expression_name): Let lookup_field_wrapper search for
13399         final local aliases. Force the value of `name' if one is found.
13400         (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
13401         an expression name. Fixed comments.
13402
13403 2000-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13404
13405         * parse.y (yyerror): `msg' can be null, don't use it in that case.
13406
13407 2000-04-19  Tom Tromey  <tromey@cygnus.com>
13408
13409         * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
13410
13411 2000-04-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13412
13413         * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
13414
13415 2000-04-18  Tom Tromey  <tromey@cygnus.com>
13416
13417         PR gcj/211:
13418         * gjavah.c (utf8_cmp): Changed return value.
13419         (cxx_keyword_subst): Handle all C++ keywords.  Allocate new return
13420         result.
13421         (cxx_keywords): New global.
13422         (get_field_name): Handle new result of cxx_keyword_subst.
13423         (print_method_info): Likewise.
13424
13425 2000-04-17  Bryce McKinlay  <bryce@albatross.co.nz>
13426
13427         * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
13428         with a newline, for CNI.
13429         (print_stub_or_jni): Print a space or newline before method name for
13430         CNI as well as JNI.
13431         (print_cxx_classname): Don't write leading "::" in CNI stub method.
13432         (process_file): Include gcj/cni.h if generating CNI stubs.
13433
13434 2000-04-16  Tom Tromey  <tromey@cygnus.com>
13435
13436         * gjavah.c (decompile_method): Use print_field_name.
13437         Fixes PR gcj/205.
13438
13439 2000-04-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13440
13441         * parse.y (java_expand_classes): Reverse the package list once.
13442         (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
13443         reduction.
13444         (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
13445         the `==' and `!=' operators.
13446
13447 2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13448
13449         * jcf-write.c (generate_bytecode_insns): At invocation time,
13450         always relate an interface method to the type of its selector.
13451
13452 2000-04-05  Tom Tromey  <tromey@cygnus.com>
13453
13454         Fix for PR gcj/2:
13455         * expr.c (expand_invoke): Generate check to see if object pointer
13456         is null in nonvirtual invocation case.
13457         * java-tree.h (soft_nullpointer_node): Declare.
13458         * decl.c (soft_nullpointer_node): New global.
13459         (init_decl_processing): Initialize soft_nullpointer_node.
13460         * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13461         or `private' methods.
13462         (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13463
13464 2000-04-05  Tom Tromey  <tromey@cygnus.com>
13465
13466         Fix for PR gcj/140:
13467         * parse.y (check_final_assignment): Recognize assignments to the
13468         `length' field of an array when generating class files.
13469
13470 2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13471
13472         * class.c (decl_hash): Prototype removed.
13473         (decl_compare): Likewise.
13474
13475 2000-04-05  Tom Tromey  <tromey@cygnus.com>
13476
13477         * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
13478         * parse.y (check_modifiers_consistency): Check for final/volatile
13479         clash.  Fixes PR gcj/164.
13480
13481 2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13482
13483         * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
13484         made global.
13485         (java_hash_compare_tree_node): Renamed from `decl_compare, made
13486         global.
13487         (add_method_1): Use `java_hash_hash_tree_node' and
13488         `java_hash_compare_tree_node'.
13489         * java-tree.h: (java_hash_hash_tree_node): Prototyped.
13490         (java_hash_compare_tree_node): Likewise.
13491         * parse.y (find_applicable_accessible_methods_list): Create,
13492         delete and use a hash table to remember already searched interfaces.
13493
13494 2000-04-03  Matt Welsh  <mdw@cs.berkeley.edu>
13495
13496         * jcf-depend.c (add_entry): Fixed bug where list was always replaced
13497         with latest entry.
13498
13499 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13500
13501         * boehm.c (mark_reference_fields, set_bit): Prototype.
13502         (set_bit): Un-ANSI-fy definition.
13503
13504         * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
13505         Prototype.
13506
13507         * decl.c (emit_init_test_initialization): Likewise.
13508
13509         * gjavah.c (jni_print_char): Likewise.
13510
13511         * parse.y (create_new_parser_context): Likewise.
13512
13513 2000-03-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13514
13515         * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
13516         patch missing hunk. Fixed indentation.
13517
13518 2000-03-30  Tom Tromey  <tromey@cygnus.com>
13519
13520         * gjavah.c (D_NAN_MASK): Only define as word-reversed when
13521         HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
13522
13523 2000-03-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13524
13525         * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13526         when negative *before* using it as an array index.
13527         * ChangeLog: Fixed typo.
13528
13529 2000-03-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13530
13531         * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13532         to 0 when it reaches -1.
13533
13534 2000-03-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13535
13536         * jcf-parse.c (get_constant): Properly cast `num' during the
13537         invocation of `add_double'.
13538         * jcf-write.c (push_long_const): Properly cast `lo' before
13539         comparing it to short bounds.
13540         * parse-scan.y (interface_declaration:): Rule re-arrange so that
13541         `interface_body:' is reduced after the current interface is
13542         pushed.
13543
13544 2000-03-26  Tom Tromey  <tromey@cygnus.com>
13545
13546         * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
13547         Java-specific `-f' option.
13548
13549 2000-03-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13550
13551         * decl.c (init_decl_processing): Only call initialize_sizetypes once.
13552         Adjust order of making types.
13553         Make bitsize_*_node values.
13554
13555 2000-03-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13556
13557         * class.c (make_field_value): Use byte_position.
13558         * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
13559         (java_array_data_offset): Likewise.
13560         * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
13561         bzero call.
13562
13563 2000-03-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13564
13565         * parse.y (check_abstract_method_definitions): New local
13566         `end_type_reached'. Make sure we also consider `end_type'.
13567         (java_check_abstract_method_definitions): Make sure we eventually
13568         consider `java.lang.Object'.
13569         (maybe_use_access_method): Don't use access method if not in the
13570         context of a pure inner class or if the method's context is right.
13571         (find_applicable_accessible_methods_list): New static flag
13572         `object_done'. Don't search abstract classes as interfaces. Fixed
13573         indentation. Fixed the `java.lang.Object' only search. Search
13574         class interface(s) first, then fully search enclosing contexts.
13575         (find_most_specific_methods_list): Pick the closest candidate when
13576         they're all abstract.
13577
13578 2000-03-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13579
13580         * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13581         properly initialize `finished_label'. Don't emit gotos for empty
13582         try statements.
13583
13584 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13585
13586         * except.c (emit_handlers): Clear catch_clauses_last.
13587
13588 2000-03-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13589
13590         * parse.y (check_method_types_complete): New function.
13591         (create_class): Reset anonymous class counter only when seeing an
13592         non inner classe.
13593         (java_complete_class): JDEP_METHOD: Don't recompute signature
13594         if incomplete.
13595
13596 2000-03-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13597
13598         * class.c (build_static_ref): Fixed indentation in comment.
13599         * java-tree.def (TRY_EXPR): Fixed typo in name.
13600         (CLASS_LITERAL): Likewise.
13601         * java-tree.h: (TYPE_DOT_CLASS): New macro.
13602         (struct lang_type): New field `dot_class'.
13603         * jcf-write.c (generate_bytecode_insns): Fixed error message.
13604         (generate_classfile): Method `class$' is synthetic.
13605         * parse.y (build_do_class_method): New function.
13606         (build_dot_class_method_invocation): Likewise.
13607         (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
13608         (resolve_qualified_expression_name): Handle CLASS_LITERAL.
13609         (qualify_ambiguous_name): Likewise.
13610         (patch_incomplete_class_ref): Invoke synthetic method if necessary.
13611         (build_try_statement): Fixed leading comment.
13612
13613 2000-03-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13614
13615         * class.c (make_field_value): Properly handle sizes.
13616         (get_dispatch_vector): Use tree_low_cst and host_integerp.
13617         (layout_class_method): Count using trees.
13618         * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
13619         * expr.c (java_array_data_offset): Use int_bit_position.
13620         (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
13621         (build_invokevirtual): Use tree_low_cst and do computations with trees.
13622
13623 2000-03-16  Tom Tromey  <tromey@cygnus.com>
13624
13625         * lang.c (flag_hash_synchronization): New global.
13626         (lang_f_options): Added `hash-synchronization'.
13627         * lang-options.h: Mention -fhash-synchronization.
13628         * java-tree.h (flag_hash_synchronization): Declare.
13629         * expr.c (java_lang_expand_expr): Only push `sync_info' value when
13630         hash table synchronization is disabled.
13631         * decl.c (init_decl_processing): Only push `sync_info' value when
13632         hash table synchronization is disabled.
13633         * class.c (make_class_data): Only push `sync_info' field when hash
13634         table synchronization is disabled.  Removed dead code.
13635
13636 2000-03-16  Tom Tromey  <tromey@cygnus.com>
13637
13638         * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
13639
13640 2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13641
13642         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
13643         classes.
13644         * parse.y (patch_method_invocation): Handle anonymous classes
13645         creation in static context.
13646
13647 2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13648
13649         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
13650         * parse.y (resolve_qualified_expression_name): Use it.
13651         (patch_method_invocation): Likewise.
13652
13653 2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13654
13655         * parse.y (register_incomplete_type): JDEP_ENCLOSING set
13656         depending on the type of dependency which dictates what the
13657         current class is.
13658         (unresolved_type_p): Resolved types limited to the current class.
13659
13660 2000-03-15  Tom Tromey  <tromey@cygnus.com>
13661
13662         * decl.c (init_decl_processing): Set type of `sync_info' to be
13663         pointer to Object.
13664
13665         * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
13666         Correctly compute bit number for current slot.  Zero `high' and
13667         `low' in DS_LENGTH case.  Don't skip inherited fields.  Use
13668         mark_reference_fields.
13669         (mark_reference_fields): New function.
13670
13671 2000-03-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13672
13673         * parse.y (register_incomplete_type): Fixed initialization of
13674         JDEP_ENCLOSING.
13675
13676 2000-02-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13677
13678         * parse-scan.y (inner_qualifier, inner_qualifier_length): New
13679         static globals.
13680         (push_class_context, pop_class_context): New function.
13681         (class_body:): Call pop_class_context.
13682         (interface_body:): Likewise.
13683         (INNER_QUALIFIER): New macro.
13684         (report_class_declaration): Changed output format and use
13685         INNER_QUALIFIER. Call push_class_context.
13686
13687 2000-02-14  Andrew Haley  <aph@cygnus.com>
13688
13689         * check-init.c (check_init): Add new cases for unary and binary
13690         tree nodes.
13691
13692 2000-03-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13693
13694         * parse.y (resolve_package): Set `next' once a type name has been
13695         progressively discovered.
13696         (resolve_qualified_expression_name): Propagate resolution only if
13697         there are remaining qualifiers. Take into account `q' might have
13698         been cleared after re-qualification.
13699         * parse.y (patch_method_invocation): New local `resolved'.
13700         Section dealing with qualified expression rewritten to use
13701         resolve_field_access.
13702
13703 2000-03-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13704
13705         * parse.h (PUSH_CPC): Fixed indentation.
13706         (DEBUG_CPC): New macro.
13707         (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
13708         SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
13709         * parse.y (class_body_declaration:): Use
13710         SET_CPC_INSTANCE_INITIALIZER_STMT.
13711         (method_declaration:): Check for null current_function_decl.
13712         (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
13713         (java_parser_context_pop_initialized_field): Better handling of
13714         empty lists.
13715         (maybe_make_nested_class_name): Mark nested class name as
13716         qualified when necessary.
13717         (end_class_declaration): Don't call java_parse_context_resume when
13718         one or more error occurred.
13719         (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
13720         (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
13721         SET_CPC_INITIALIZER_STMT.
13722         (method_header): Check for inner classes declaring static methods.
13723         (resolve_qualified_expression_name): Handle situation where `this'
13724         is implied.
13725
13726 2000-03-13  Hans Boehm <boehm@acm.org>
13727
13728         * typeck.c (build_prim_array_type): Correctly set the high word too.
13729
13730 2000-03-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13731
13732         * parse.y (java_complete_expand_methods): Leave <clinit> out of
13733         ordinary methods.
13734         (maybe_generate_pre_expand_clinit): Put <clinit> at the end of the
13735         list of methods for interfaces.
13736
13737 2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13738
13739         * parse.y (qualify_ambiguous_name): Properly handle expressions
13740         using `null'.
13741
13742 2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13743
13744         * parse.y (check_final_assignment): Extended to process
13745         COMPOUND_EXPR.
13746         (patch_assignment): Have check_final_assignment called only once.
13747
13748 2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13749
13750         * java-tree.h (IS_INIT_CHECKED): New flag.
13751         * check-init.c (check_init): Test and set IS_INIT_CHECKED.
13752         * parse.y (patch_string): Call force_evaluation_order on the
13753         completed string concatenation tree.
13754         * expr.c (force_evaluation_order): Call force_evaluation_order on
13755         function's arguments too.
13756
13757 2000-03-06  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13758
13759         * decl.c (emit_init_test_initialization): Mark KEY as unused.
13760         * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13761         (build_anewarray): Likewise.
13762         * parse.y (patch_newarray): Likewise.
13763         * parse.c: Regenerated.
13764
13765 2000-03-06  Bryce McKinlay  <bryce@albatross.co.nz>
13766
13767         * decl.c (init_decl_processing): Added new class fields `depth',
13768         `ancestors', and `idt' to class_type_node. Use
13769         _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
13770         * class.c (make_class_data): Push initial values for new fields.
13771         * java-tree.h: Updated prototype for `build_invokeinterface'.
13772         * expr.c (build_invokeinterface): Changed parameters to accept
13773         `method' tree. Calculate index of `method' in its declaring
13774         interface. Build call to _Jv_LookupInterfaceMethodIdx.
13775         (expand_invoke): Call `build_invokeinterface' with new parameters.
13776         * parse.y (patch_invoke): Call `build_invokeinterface' with new
13777         parameters.
13778
13779 2000-03-06  Bryce McKinlay <bryce@albatross.co.nz>
13780
13781         * typeck.c (lookup_do): Search superinterfaces first
13782         when looking up an interface method. From Godmar Back
13783         <gback@cs.utah.edu>
13784
13785 2000-03-06  Tom Tromey  <tromey@cygnus.com>
13786
13787         * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
13788
13789 2000-03-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13790
13791         * java-tree.h (lookup_argument_method2): Declared.
13792         (safe_layout_class): Prototype moved from parse.h.
13793         * parse.h (safe_layout_class): Prototype moved to java-tree.h.
13794         * parse.y (java_check_regular_methods): Local `super_class' gone.
13795         Call lookup_argument_method2 instead of lookup_argument_method.
13796         Perform modifier match for methods found declared in implemented
13797         interfaces. Fixed indentation problem. Overriding/hiding error
13798         report to take place only for methods found in classes.
13799         * typeck.c (lookup_argument_method): Changed leading
13800         comment. Re-written by calling lookup_do.
13801         (lookup_argument_method2): New function.
13802         (lookup_java_method): Re-written by calling lookup_do.
13803         (lookup_do): New function.
13804
13805 2000-03-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13806
13807         * check-init.c (check_init): Removed dead code. Handle (blank)
13808         final variables.
13809         * parse.y (declare_local_variables): New local `final_p', set it
13810         and use it to initialize LOCAL_FINAL.
13811         (check_final_assignment): Only check FIELD_DECLs.
13812
13813 2000-02-17  Tom Tromey  <tromey@cygnus.com>
13814
13815         * Makefile.in (JAVA_OBJS): Added boehm.o.
13816         (boehm.o): New target.
13817         * Make-lang.in (JAVA_SRCS): Added boehm.c.
13818         * java-tree.h (flag_use_boehm_gc): Declare.
13819         (get_boehm_type_descriptor): Declare.
13820         * lang.c (lang_f_options): Added `use-boehm-gc'.
13821         (flag_use_boehm_gc): New global.
13822         * lang-options.h: Added -fuse-boehm-gc.
13823         * boehm.c: New file.
13824         * class.c (get_dispatch_table): If class uses a Boehm type
13825         descriptor, put it in the vtable.
13826         (make_class_data): Removed dead code.
13827
13828 2000-03-03  Per Bothner  <per@bothner.com>
13829
13830         * decl.c (init_decl_processing):  Initialize sizetype properly.
13831
13832 2000-03-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13833
13834         * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
13835         (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
13836         * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13837         * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
13838         (jcf_parse): New local `current'. Load innerclasses seen in outer
13839         context being processed.
13840         * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13841         * jcf-write.c (append_innerclasses_attribute): New function.
13842         (append_innerclasses_attribute_entry): Likewise.
13843         (get_access_flags): Handle static classes. Set anonymous and local
13844         classes to be private.
13845         (generate_classfile): Attribute count adjusted. Call
13846         append_innerclasses_attribute.
13847         * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
13848         PURE_INNER_CLASS_TYPE_P.
13849         * parse.y (parser_qualified_classname): New parameter `is_static',
13850         produce non qualified name accordingly.
13851         (block_statement:): Set LOCAL_CLASS_P when declaring local class.
13852         (create_interface): Added argument to parser_qualified_classname.
13853         (create_class): Added argument to parser_qualified_classname. Setup
13854         alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
13855         (add_inner_class_fields): Fixed indentation.
13856         (method_declarator): Use PURE_INNER_CLASS_DECP_P.
13857         (method_declarator): Fixed typo in comment.
13858         (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
13859         (build_current_thisn): Likewise.
13860         (patch_method_invocation): Likewise.
13861
13862 2000-03-01  Martin von Löwis  <loewis@informatik.hu-berlin.de>
13863
13864         * decl.c (current_function_decl): Move to toplev.c.
13865
13866 2000-02-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13867
13868         * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
13869         (DECL_BIT_INDEX): Use underlying representation.
13870         * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
13871
13872 2000-02-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13873
13874         * expr.c (build_java_ret): Pass proper type to size_binop.
13875
13876 2000-02-25  Anthony Green  <green@cygnus.com>
13877
13878         * expr.c (build_class_init): Mark the decl to be ignored by
13879         check_init.
13880         * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
13881         * check-init.c: Move DECL_BIT_INDEX to java-tree.h
13882         * class.c (init_test_hash_newfunc): New function.
13883         (decl_hash): New function.
13884         (decl_compare): New function.
13885         * decl.c (emit_init_test_initialization): New function.
13886         (complete_start_java_method): Traverse the init test hashtable,
13887         calling emit_init_test_initialization.
13888         (always_initialize_class_p): Define.
13889         * expr.c (build_class_init): Use initialization tests when
13890         emitting class initialization code.
13891         (always_initialize_class_p): Declare.
13892         * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
13893         1.
13894         * java-tree.h: Include hash.h.
13895         (DECL_FUNCTION_INIT_TEST_TABLE): Define.
13896         (struct lang_decl): Add init_test_table field.
13897         (init_test_hash_entry): Define.
13898
13899 2000-02-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13900
13901         * gjavah.c (main): Avoid using `argi' to report unimplemented
13902         options.
13903
13904 2000-02-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13905
13906         * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13907         initialize locals to avoid warnings. Local `exception_type' moved
13908         into if statement.
13909
13910 2000-02-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13911
13912         * parse.y (resolve_expression_name): Use `orig' as a second
13913         argument to resolve_field_access.
13914         (resolve_field_access): Removed unnecessary code when dealing with
13915         static fields.
13916
13917 2000-02-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13918
13919         * class.c (push_super_field): Don't push the field twice.
13920         * jcf-parse.c (parse_source_file): Call java_reorder_fields.
13921         * parse.h (java_reorder_fields): Prototyped.
13922         * parse.y (java_reorder_fields): New function.
13923         (java_layout_class): Simplified not to worry about re-ordering.
13924
13925 2000-02-23  Tom Tromey  <tromey@cygnus.com>
13926
13927         * gjavah.c (print_name): In JNI case, correctly quote string.
13928         (print_method_info): Don't handle overrides in JNI mode.
13929
13930 2000-02-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13931
13932         * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
13933         value type set to `boolean_type_node'.
13934
13935 2000-01-18  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
13936
13937         * jcf-dump.c (main): Test for correct condition after
13938         output file creation.
13939
13940 2000-02-19  Anthony Green  <green@cygnus.com>
13941
13942         * jcf-depend.c (add_entry): Fix test for first list entry.
13943
13944 2000-02-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13945
13946         * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
13947         * constants.c (build_constants_constructor): Likewise.
13948
13949 2000-02-19  Anthony Green  <green@cygnus.com>
13950
13951         * jcf-depend.c (add_entry): Add entries to the end of the list.
13952
13953 1999-11-03  Pekka Nikander  <pekka.nikander@hut.fi>
13954
13955         * decl.c (INT_TYPE_SIZE): Define if necessary.
13956         (expand_java_return): Handle the case of a native integer smaller
13957         than a JVM integer.
13958
13959 2000-02-18  Martin von Löwis  <loewis@informatik.hu-berlin.de>
13960
13961         * gjavah.c (help): Use GCCBUGURL.
13962         * jv-scan.c (help): Likewise.
13963         * jcf-dump.c (help): Likewise.
13964
13965 2000-02-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13966
13967         * jcf-write.c (generate_bytecode_insns): Don't generate empty
13968         `finally' clauses.
13969
13970 2000-02-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13971
13972         * jcf-parse.c (load_class): Call `fatal' if no file containing
13973         the target class are found.
13974
13975 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
13976
13977         * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
13978         lex.c, lex.h, and PARSE_H to...
13979         (parse.o, parse-scan.o): ...here, respectively.
13980
13981         * lex.c: Split out code that may trigger SIGFPE from yylex()
13982         to its own function.
13983         * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
13984
13985 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13986
13987         * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
13988
13989 2000-02-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13990
13991         * parse.y (outer_field_access_p): Stop in time when outer contexts
13992         are exhausted.
13993         (resolve_qualified_expression_name): Properly qualify *everything*
13994         after a package.type to be resoled as expression names.
13995         (find_applicable_accessible_methods_list): Save/restore `class' to
13996         isolate it from a possible outer context search.
13997
13998 2000-02-15  Tom Tromey  <tromey@cygnus.com>
13999
14000         * gjavah.c (jni_print_char): New function.
14001         (print_full_cxx_name): Use it.
14002         (decode_signature_piece): Likewise.
14003         (print_cxx_classname): Likewise.
14004
14005 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14006
14007         * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
14008         version.o.
14009         (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
14010
14011         * gjavah.c: Include version.h.
14012
14013         * jcf-dump.c: Likewise.
14014
14015         * jv-scan.c: Likewise.
14016
14017 2000-02-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14018
14019         * parse.y (outer_field_access_fix): First parameter now a tree
14020         node. Check for assignment to final. First argument to
14021         build_outer_field_access_fix modified to accommodate prototype.
14022         (build_outer_field_access): Don't check for assignment to final
14023         here.
14024         (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
14025         possibly returned by outer_field_access_fix. Changed
14026         outer_field_access_fix's first argument.
14027         (check_final_assignment): $finit$'s context is OK.
14028         (patch_unaryop): Use node instead of its line/column value when
14029         calling outer_field_access_fix.
14030
14031 2000-02-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14032
14033         * parse.y (interface_declaration:): No longer tagged
14034         <node>. Re-installed default action.
14035         (class_member_declaration:): Handle inner interfaces.
14036         (interface_member_declaration): Handle inner interfaces and
14037         classes.
14038         (create_interface): Push error if one seen. Suspend parsing
14039         context when processing an inner interface.
14040         (register_fields): Inner class static field limitations not to
14041         apply to inner interfaces.
14042
14043 2000-02-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14044
14045         * jcf-parse.c (load_class): Update `java_error_count' when a
14046         class' file can't be found.
14047         (parse.y): Avoid (byte)code generation when errors seen.
14048
14049 2000-02-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14050
14051         * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
14052         decodes a valid node.
14053         (patch_binop): Handle TRUNC_DIV_EXPR.
14054
14055 2000-02-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14056
14057         * parse.y (resolve_package): New local `acc'. Try to progressively
14058         build and guess a package and type name.
14059
14060 2000-02-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14061
14062         * parse.y (find_applicable_accessible_methods_list): Load and
14063         layout the search class if necessary.
14064         (java_complete_tree): Keep to original type of the folded initial
14065         value.
14066
14067 2000-02-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14068
14069         * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
14070         Generate error message if circularity is detected. New static
14071         local `list'.
14072         * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro.  *
14073         * jcf-write.c (generate_bytecode_insns): Very simply handle
14074         SAVE_EXPR.
14075         * parse.y (java_check_circular_reference): Use
14076         `cyclic_inheritance_report' during report, if necessary.
14077         (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
14078         walking NEW_ARRAY_INIT twice.
14079
14080 2000-02-09  Tom Tromey  <tromey@cygnus.com>
14081
14082         * parse.y (check_class_interface_creation): Allow inner classes to
14083         be `private' or `protected', check modifiers' consistency. Prevent
14084         block local classes from bearing any modifiers.
14085
14086 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14087
14088         * except.c (check_start_handlers): Re-add prototype lost in last
14089         patch.
14090         (maybe_start_try): Remove excess argument to `check_start_handlers'.
14091
14092 2000-02-09  Andrew Haley  <aph@cygnus.com>
14093
14094         * decl.c (clear_binding_level): Remove excess initializer.
14095         (maybe_poplevels): Remove unused variable.
14096         (force_poplevels): Ditto.
14097         (struct binding_level): Add comment.
14098
14099 2000-02-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14100
14101         * jcf-write.c (generate_classfile): Don't consider
14102         pre-initialization with reference value (use <clinit> instead.)
14103         * parse.y (java_fix_constructors): No generated constructor for
14104         interfaces.
14105         (build_outer_field_access): Removed debug message.
14106         (outer_field_expanded_access_p): Adapted to bytecode generation.
14107         (build_outer_field_access_method): Use fix_method_argument_names.
14108         (build_outer_method_access_method): Fixed indentation. Added
14109         comment. Handle access method generation for static and also void
14110         methods.
14111         (build_access_to_thisn): Inserted debug message.
14112         (maybe_build_thisn_access_method): Use fix_method_argument_names.
14113         (resolve_qualified_expression_name): Fixed comment.
14114         (not_accessible_p): Adapted to bytecode generation. Added comment.
14115         (patch_method_invocation): Added comment.
14116         (maybe_use_access_method): Fixed leading comment. Handle static
14117         methods.
14118         (java_complete_lhs): Don't shortcut handling of initialized upon
14119         declaration String type static fields when generating bytecode.
14120         (patch_unaryop): Handle outer field access when generating
14121         bytecode.
14122
14123 2000-02-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14124
14125         * java-tree.h (FIELD_THISN): New macro.
14126         * jcf-write.c (append_synthetic_attribute): New function.
14127         (generate_classfile): Set "Synthetic" attribute on this$<n>,
14128         val$<name> fields, access$<n> and $finit$ methods. Fixed indentation.
14129         * parse.y (add_inner_class_fields): Set FIELD_THISN for created
14130         this$<n> fields.
14131         (build_outer_field_access): Turned on access functions usage and
14132         generation when compiling to bytecode.
14133         (maybe_use_access_method): Likewise.
14134
14135 2000-01-25  Andrew Haley  <aph@cygnus.com>
14136
14137         * java-except.h (struct eh_range): Add `expanded' field.
14138         (maybe_start_try): Add end_pc arg.
14139         (maybe_end_try): Ditto.
14140         * java-tree.h (force_poplevels): new function.
14141         * expr.c (expand_byte_code): Don't call maybe_start_try or
14142         maybe_end_try.
14143         * except.c (add_handler): Reset expanded.
14144         (expand_start_java_handler): Set expanded.
14145         (check_start_handlers): Don't expand a start handler that's
14146         already been expanded.
14147         (maybe_start_try): Add end_pc arg.  Only expand a handler which
14148         ends after end_pc.
14149         (expand_end_java_handler): call force_poplevels.
14150         (force_poplevels): new function.
14151         * decl.c (binding_level): Add start_pc of binding level.
14152         (maybe_pushlevels): Call maybe_start_try when pushing binding
14153         levels.
14154         (maybe_poplevels): Call maybe_end_try when popping binding levels.
14155         (LARGEST_PC): Define.
14156         (clear_binding_level): Use LARGEST_PC.
14157
14158         * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
14159         * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
14160         (binding_depth, is_class_level, current_pc): new variables.
14161         (struct binding_level): ditto.
14162         (indent): new function.
14163         (push_jvm_slot): add debugging info.
14164         (maybe_pushlevels): ditto.
14165         (maybe_poplevels): ditto.
14166         (pushlevel): ditto.
14167         (poplevel): ditto.
14168         (start_java_method): ditto.
14169         (give_name_to_locals): comment only.
14170         * except.c (binding_depth, is_class_level, current_pc):
14171         new variables.
14172         (expand_start_java_handler): add debugging info.
14173         (expand_end_java_handler): ditto.
14174
14175 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14176
14177         * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
14178         (print_name_for_stub_or_jni, process_file): Constify a char*.
14179
14180 2000-02-03  Tom Tromey  <tromey@cygnus.com>
14181
14182         * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
14183
14184 2000-01-31  Scott Bambrough  <scottb@netwinder.org>
14185
14186         * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
14187         assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
14188         defined to be 1.
14189
14190 2000-02-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14191
14192         * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
14193         * java-tree.h (TYPE_II_STMT_LIST): New macro.
14194         (struct lang_type): New field `ii_block'.
14195         * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
14196         CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
14197         * parse.h (struct parser_ctxt): New field `instance_initializers'.
14198         (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
14199         CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
14200         CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
14201         macros.
14202         * parse.y (add_instance_initializer): New function.
14203         (in_instance_initializer): New static global.
14204         (class_body_declaration:): Link instance initializer block.
14205         (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
14206         (array_creation_expression:): Remove unused local.
14207         (java_parser_context_push_initialized_field): Fixed leading
14208         comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
14209         CPC_INSTANCE_INITIALIZER_LIST.
14210         (java_parser_context_pop_initialized_field): Likewise.
14211         (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
14212         (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
14213         CPC_INITIALIZER_STMT.
14214         (fix_constructors): New local `class_type'. Use it. Call
14215         add_instance_initializer.
14216         (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
14217         (patch_return): Forbid return in instance initializers.
14218         (patch_throw_statement): Enforce exception handling in the context
14219         of instance initializers.
14220
14221 2000-02-03  Tom Tromey  <tromey@cygnus.com>
14222
14223         * Make-lang.in (java.mostlyclean): Remove executables in
14224         `mostlyclean'.
14225
14226 2000-01-31  Scott Bambrough  <scottb@netwinder.org>
14227
14228         * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
14229         HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
14230         (java_float_finite): Convert to use union Word from javaop.h.
14231         (java_double_finite): Convert to use union DWord from javaop.h.
14232
14233 2000-02-02  Tom Tromey  <tromey@cygnus.com>
14234
14235         * gjavah.c (options): Added `jni' entry.
14236         (help): Document -jni.
14237         (flag_jni): New global.
14238         (process_file): Handle JNI output.  Don't print text from
14239         -prepend, -add, etc, when generating stubs.  Only remove `.class'
14240         suffix if it actually exists.
14241         (main): Create a `.c' file when run with `--jni --stubs'.  Create
14242         correct output file name with `--jni'.
14243         (print_include): Mangle header name differently in JNI case.
14244         (HANDLE_METHOD): In JNI mode, call print_method_info to generate
14245         method list.
14246         (print_method_info): Handle JNI case.  Put signature info into
14247         method name.  Handle case when STREAM is NULL.
14248         (print_name_for_stub_or_jni): New function.
14249         (print_stub_or_jni): Renamed from `print_stub'.  Handle JNI.
14250         (print_cxx_classname): Handle JNI.
14251         (print_full_cxx_name): Likewise.
14252         (decode_signature_piece): Likewise.
14253         (overloaded_jni_method_exists_p): New function.
14254         (struct method_name): Added `signature' and `sig_length' fields.
14255         (HANDLE_END_FIELD): Do nothing in JNI mode.
14256
14257 2000-02-02  Tom Tromey  <tromey@cygnus.com>
14258
14259         * jv-scan.c: Include version.c, <getopt.h>.
14260         (LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
14261         (options): New array.
14262         (usage): New function.
14263         (version): New function.
14264         (main): Use getopt_long to parse command line.
14265         * jcf-dump.c: Include version.c, <getopt.h>.
14266         (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
14267         OPT_JAVAP): New macros.
14268         (options): New array.
14269         (usage): Return `void'.  Changed message.
14270         (help): New function.
14271         (version): New function.
14272         (main): Use getopt_long_only to parse command line.
14273         * gjavah.c: Include <getopt.h>.
14274         (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
14275         OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
14276         OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
14277         (options): New array.
14278         (java_no_argument): Removed.
14279         (help): Updated with missing options.
14280         (main): Use getopt_long_only to parse command line.
14281         (usage): Changed message.
14282
14283 2000-02-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14284
14285         * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
14286         * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
14287         ANONYMOUS_ARRAY_INITIALIZER): New access macros.
14288         * parse.y (array_creation_expression:): Handle anonymous arrays.
14289         (build_array_from_name): Don't set `ret_name' if null.
14290         (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
14291         (qualify_ambiguous_name): Likewise.
14292         (java_complete_expand_class): Likewise.
14293
14294 2000-02-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14295
14296         * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
14297         * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
14298         (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
14299         (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
14300         (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
14301         AIPL_FUNCTION_COMPLETED_INVOCATION.
14302         (AIPL_FUNCTION_CTOR_INVOCATION): Replaces
14303         AIPL_FUNCTION_INVOCATION_READY.
14304         (AIPL_FUNCTION_DECLARATION): New enum entry.
14305         * parse.y (reorder_static_initialized): New function.
14306         (java_parser_context_pop_initialized_field): Use it.
14307         (add_inner_class_fields): Use
14308         MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
14309         augmented. Install marker after last alias initializer, if any.
14310         (generate_finit): Fixed typo. Don't try to retain only the used
14311         fields.
14312         (method_header): Compute and set DECL_FUNCTION_NAP.
14313         (method_declarator): Fixed comment. Insert alias initializer in
14314         parameter list.
14315         (build_alias_initializer_parameter_list): Fixed leading
14316         comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
14317         replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
14318         (java_complete_expand_class): Code to retain only used aliases
14319         removed.
14320         (java_complete_expand_methods): New local `first_decl'. Generate
14321         $finit$ first, then expand the constructors, regular methods and
14322         <clinit>.
14323         (java_complete_expand_method): Don't report error on missing
14324         return statement if previously detected bogus.
14325         (fix_constructors): Don't patch constructor parameters list.
14326         (patch_method_invocation): Use new AIPL enum values. Reverse
14327         alias initializer list for anonymous classes.
14328
14329 2000-01-30  Anthony Green  <green@redhat.com>
14330
14331         * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
14332         determine how many stack slots to pop.
14333
14334 2000-01-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14335
14336         * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
14337         error handling/recovery.
14338         * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
14339
14340 2000-01-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14341
14342         * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
14343         FIELD_LOCAL_ALIAS_USED): New macros.
14344         (DECL_FUNCTION_NAP): New macro.
14345         (struct lang_decl): New field `nap'.
14346         (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
14347         (struct lang_type): New fields `finit_stmt_list' and
14348         `clinit_stmt_list'.
14349         (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
14350         * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
14351         (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
14352         UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
14353         (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
14354         AIPL_FUNCTION_INVOCATION_READY): New enum fields.
14355         (BUILD_THROW): Macro line separator re-indented.
14356         * parse.y (end_class_declaration): New function.
14357         (maybe_generate_pre_expand_clinit): New name for
14358         java_pre_expand_clinit. Create <clinit> off TYPE_CLINIT_STMT_LIST,
14359         pre-expand static fields.
14360         (maybe_generate_clinit): Function deleted.
14361         (check_for_static_method_reference): Prototype's parameter list
14362         indented.
14363         (generate_finit): New name for maybe_generate_finit. Changed
14364         leading comment. Function rewritten to use
14365         TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
14366         (build_alias_initializer_parameter_list): New function.
14367         (java_parser_context_pop_initialized_field): Likewise.
14368         (add_inner_class_fields): Likewise.
14369         (type_declaration:): Call end_class_declaration.
14370         (class_member_declaration:): Likewise.
14371         (formal_parameter_list:): Fixed typos.
14372         (formal_parameter:): Use ARG_FINAL_P to mark created tree list
14373         element. Improved error handling.
14374         (block_statement:): Call end_class_declaration.
14375         (anonymous_class_creation:): Likewise.
14376         (create_anonymous_class): Fixed comments.
14377         (create_class): Call add_inner_class_fields.
14378         (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
14379         (method_header): Use MARK_FINAL_PARMS.
14380         (finish_method_declaration): Use UNMARK_FINAL_PARMS.
14381         (method_declarator): Propagate final argument flag.
14382         (craft_constructor): New local `artificial'. Call
14383         build_alias_initializer_parameter_list. Use
14384         CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
14385         (source_start_java_method): Mark parm decls with LOCAL_FINAL if
14386         necessary.
14387         (complete_expand_class): Get rid of unused outer context local
14388         alias fields.
14389         (java_complete_expand_methods): Fixed leading
14390         comment. Generate/pre-expand <clinit> first. Changed method
14391         expansion order to regular, $finit$, constructors, <clinit>.
14392         (java_complete_expand_method): Set current_function_decl.
14393         (fix_constructors): Fix constructor parameter list to account for
14394         outer context local alias initializers.
14395         (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14396         (resolve_expression_name): Lookup outer context local aliases. New
14397         local `access', use it.
14398         (patch_method_invocation): Patch inner class ctor invocation with
14399         outer context local aliases initialization values. $finit$
14400         invocation patching now includes things generated with
14401         build_alias_initializer_parameter_list.
14402         (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14403         (build_super_invocation): Likewise.
14404         (patch_assignment): Changed comment.
14405
14406 2000-01-27  Andrew Haley  <aph@cygnus.com>
14407
14408         * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
14409         (emit_if): Ditto.
14410         (emit_jsr): Ditto.
14411
14412 2000-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14413
14414         * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
14415         concatenation.
14416         (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.
14417
14418         * parse.y (register_fields): Don't pass a format specifier to
14419         OBSOLETE_MODIFIER_WARNING.
14420         (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
14421         instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
14422         specifier.
14423         (check_modifiers): Change function into a macro.
14424         (check_class_interface_creation): Pass a literal format string.
14425
14426 2000-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14427
14428         * buffer.h: PROTO -> PARAMS.
14429         * check-init.c: Likewise.
14430         * class.c: Likewise.
14431         * constants.c: Likewise.
14432         * convert.h: Likewise.
14433         * decl.c: Likewise.
14434         * except.c: Likewise.
14435         * expr.c: Likewise.
14436         * gjavah.c: Likewise.
14437         * java-except.h: Likewise.
14438         * java-tree.h: Likewise.
14439         * jcf-depend.c: Likewise.
14440         * jcf-dump.c: Likewise.
14441         * jcf-parse.c: Likewise.
14442         * jcf-path.c: Likewise.
14443         * jcf-reader.c: Likewise.
14444         * jcf-write.c: Likewise.
14445         * jcf.h: Likewise.
14446         * jv-scan.c: Likewise.
14447         * jvgenmain.c: Likewise.
14448         * jvspec.c: Likewise.
14449         * lang.c: Likewise.
14450         * lex.c: Likewise.
14451         * lex.h: Likewise.
14452         * parse-scan.y: Likewise.
14453         * parse.h: Likewise.
14454         * parse.y: Likewise.
14455         * typeck.c: Likewise.
14456         * verify.c: Likewise.
14457         * xref.c: Likewise.
14458         * xref.h: Likewise.
14459         * zextract.c: Likewise.
14460         * zipfile.h: Likewise.
14461
14462 2000-01-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14463
14464         * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14465         (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
14466         * constants.c (build_constant_data_ref): Check for cached
14467         current_constant_pool_data_ref. Cache current_constant_pool_data_ref
14468         in TYPE_CPOOL_DATE_REF.
14469         * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
14470         MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
14471         (struct lang_type): New fields `cpool' and `cpool_data_ref'.
14472         (LOCAL_FINAL): New macro.
14473         * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
14474         constant pool -- don't try to reuse.
14475         (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
14476         TYPE_LANG_SPECIFIC.
14477         (find_in_current_zip): Use TYPE_JCF.
14478         * parse.h (java_check_final): Prototype removed.
14479         * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
14480         (maybe_create_class_interface_decl,
14481         check_class_interface_creation): Likewise.
14482         (java_expand_finals): Function removed.
14483         (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
14484         (block_statement:): Fixed comment.
14485         (anonymous_class_creation:): Likewise.
14486         (check_class_interface_creation): Reversed Jan 12, 2000 extra
14487         argument patch.
14488         (check_class_interface_creation): Loosened error report on (inner)
14489         public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
14490         (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
14491         (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
14492         argument patch.
14493         (create_interface): Likewise.
14494         (anonymous_class_counter): New static global.
14495         (create_anonymous_class): Reversed Jan 12, 2000 extra argument
14496         patch. Fixed comments.
14497         (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
14498         anonymous_class_counter when declaring a toplevel class.
14499         (craft_constructor): Fixed constructor name when handling
14500         anonymous classes. Anonymous class constructors to feature hidden
14501         this$<n> parameter.
14502         (java_fix_constructors): Added comment.
14503         (java_check_final): Function removed.
14504         (java_complete_expand_methods): Fixed comment. Don't generate
14505         class data, save its outgoing constant pool instead.
14506         (verify_constructor_super): Skip anonymous class constructor
14507         hidden this$<n> parameter.
14508         (java_expand_classes): New local `saved_ctxp'. Removed call to
14509         java_expand_finals and java_check_final. Expand anonymous class
14510         constructors. Generate class data.
14511         (build_super_invocation): Skip anonymous class hidden this$<n>
14512         parameter.
14513         * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
14514         MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14515         (set_java_signature): Likewise.
14516
14517 2000-01-18  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
14518
14519         * gjavah.c: Delete ACC_VISIBILITY define.
14520         * jcf.h: Add ACC_VISIBILITY define.
14521         * parse.y: final: rule tagged <value>.
14522         (java_check_regular_methods): Use ACC_VISIBILITY define for
14523         default package access check.
14524         (local_variable_declaration_statement): Use final: rule.
14525
14526 2000-01-17  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
14527
14528         * parse.y (format_parameter:): Use final: rule instead of modifiers:.
14529         (final:): New rule.
14530
14531 2000-01-17  Tom Tromey  <tromey@cygnus.com>
14532
14533         * gjavah.c (print_field_info): Allow non-static final fields.
14534
14535 2000-01-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14536
14537         * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
14538         * parse.y (patch_anonymous_class): New function.
14539         (create_anonymous_class): Register incomplete type when the
14540         class/interface to extends/implement isn't known yet.
14541         (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
14542         (verify_constructor_super): Tuned error message.
14543
14544 2000-01-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14545
14546         * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
14547         (ANONYMOUS_CLASS_P): New macro.
14548         (TYPE_SIGNATURE, TYPE_JCF): New macros.
14549         (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
14550         * parse.y (create_class): Added leading argument.
14551         (maybe_create_class_interface_decl,
14552         check_class_interface_creation): Likewise.
14553         (craft_constructor): New function.
14554         (verify_constructor_super): Added argument in prototype.
14555         (class_declaration:): Inserted leading argument.
14556         (for_begin:): Use FOR_LOOP_P.
14557         (anonymous_class_creation): Create WFL of the anonymous class to
14558         instantiate. Call build_new_invocation. Added comments.
14559         (check_class_interface_creation): Handle parameter `anonymous' in
14560         verbose mode class creation announce.
14561         (link_nested_class_to_enclosing): Exclude anonymous classes.
14562         (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
14563         anonymous class, even though they appear to have an enclosing
14564         context.
14565         (create_interface): Pass extra argument to
14566         check_class_interface_creation.
14567         (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
14568         (create_class): Call check_class_interface_creation and
14569         maybe_create_class_interface_decl with extra new argument. Don't
14570         add private this$<n> to anonymous classes.
14571         (method_declarator): Insert hidden this$<n> to anonymous class
14572         constructors.
14573         (java_fix_constructors): Deleted code creating default
14574         constructor. Call craft_constructor instead.
14575         (java_check_regular_methods): Set `saw_constructor' to 1 for
14576         anonymous classes.
14577         (fix_constructors): Pass extra argument to verify_constructor_super.
14578         (verify_constructor_super): New local `sdecl', use it. Search for
14579         matching constructor (possibly featuring arguments) in super
14580         class.
14581         (lookup_method_invoke): Craft constructor according to arguments
14582         list when dealing with anonymous class constructors.
14583         (build_super_invocation): Pass arguments to anonymous class super
14584         constructors.
14585         (search_loop): Use FOR_LOOP_P.
14586         (labeled_block_contains_loop_p): Likewise.
14587
14588 2000-01-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14589
14590         * class.c (set_super_info): Set CLASS_STATIC when appropriate.
14591         (enclosing_context_p): New function.
14592         (get_access_flags_from_decl): Handle CLASS_STATIC.
14593         (maybe_layout_super_class): Extra first argument passed to
14594         do_resolve_class.
14595         (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
14596         ID_INIT_P.
14597         * decl.c (access0_identifier_node): New global.
14598         (init_decl_processing): access0_identifier_node initialized.
14599         (pushdecl): Set DECL_CONTEXT only on non type decls.
14600         * expr.c (lookup_field): Lookup inner class fields in enclosing
14601         contexts.
14602         (expand_invoke): Use ID_INIT_P.
14603         (expand_java_field_op): Use DECL_CLINIT_P.
14604         * java-tree.def (CLASS_LITERAL): New tree code.
14605         * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
14606         DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
14607         (struct lang_decl): New field `inner_access'.
14608         (enclosing_context_p): Prototyped.
14609         (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
14610         ID_CLINIT_P): New macros.
14611         (CLASS_STATIC): New macro.
14612         (CLASS_ACCESS0_GENERATED_P): New macro.
14613         (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
14614         TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
14615         INNER_CLASS_P): New macros.
14616         (DECL_INNER_CLASS_LIST): New macro.
14617         * jcf-parse.c (yyparse): Avoid the use of ANSI string
14618         concatenation.
14619         * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14620         the shift value to int. Fixed typo in comment.
14621         * lex.c (inst_id, wpv_id): Initialize.
14622         * mangle.c (unicode_mangling_length): Take `$' into account.
14623         * parse.h (DRECOVER, RECOVER): Terminate properly.
14624         (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
14625         (typedef struct _jdep): New field `enclosing'.
14626         (JDEP_ENCLOSING): New macro.
14627         (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
14628         (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
14629         (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
14630         GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
14631         GET_ENCLOSING_CPC_CONTEXT): New macros.
14632         (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.
14633         (do_resolve_class): Added extra argument in prototype.
14634         * parse.y (resolve_class): Added extra argument in prototype.
14635         (maybe_create_class_interface_decl): Likewise.
14636         (maybe_use_access_method, build_wfl_wrap): New functions.
14637         (java_complete_expand_classes, java_complete_expand_class):
14638         Likewise.
14639         (java_parser_context_push_initialized_field,
14640         java_parser_context_suspend, java_parser_context_resume):
14641         Likewise.
14642         (maybe_make_nested_class_name, make_nested_class_name,
14643         set_nested_class_simple_name_value,
14644         link_nested_class_to_enclosing, find_as_inner_class,
14645         find_as_inner_class_do, check_inner_class_redefinition,
14646         build_thisn_assign, build_current_thisn, build_access_to_thisn,
14647         maybe_build_thisn_access_method, build_outer_field_access,
14648         build_outer_field_access_methods, build_outer_field_access_expr,
14649         build_outer_method_access_method, build_new_access_id,
14650         build_outer_field_access_method, outer_field_access_p,
14651         outer_field_expanded_access_p, outer_field_access_fix,
14652         build_incomplete_class_ref, patch_incomplete_class_ref,
14653         create_anonymous_class): Likewise.
14654         (inst_id, wpv_id): New static global variables.
14655         (synchronized:): New rule, tagged <node>.
14656         (type_declaration:): No longer tagged <node>. Call POP_CPC in sub
14657         rules.
14658         (anonymous_class_creation:): New rule, tagged <node>.
14659         (NEW_TK): Tagged <node>.
14660         (type_literals, array_type_literal): New rules, tagged <node>.
14661         (class_declaration:): Removed action when reducing by class_body:
14662         (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
14663         using GET_CPC in sub-rules.
14664         (class_member_declaration): Handle inner classes.
14665         (method_declaration): When reducing method_header:, reset
14666         current_function_decl when appropriate.
14667         (method_declarator:): Set the number of formal parameter to 0 for
14668         method declared without arguments.
14669         (constructor_declarator:): Likewise.
14670         (static_initializer:): List of elements kept in a list.
14671         (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
14672         use of the keyword `static' for type declarations.
14673         (block_statement:): Handle inner class declarations.
14674         (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
14675         type qualified `this'.
14676         (class_instance_creation_expression): Use anonymous_class_creation:
14677         to handle inner class instances creation. Handle qualified `new'.
14678         (something_dot_new): Added appropriate actions.
14679         (create_new_parser_context): New function.
14680         (java_push_parser_context, java_parser_context_save_global,
14681         java_parser_context_suspend): Use create_new_parser_context.
14682         (check_modifiers): Changed leading comment.
14683         (check_class_interface_creation): Handle interclasses.
14684         (add_superinterfaces): Fixed comment.
14685         (create_interface): Build qualified name from the raw_name instead
14686         of its matching WFL. Push the initialized fields list. raw_name added
14687         as an extra argument to maybe_create_class_interface_decl.
14688         (create_class): Build qualified name from the raw_name instead of
14689         its matching WFL. Removed assignment to current_parsed_class_un.
14690         Call PUSH_ERROR before returning an error. Suspend the current
14691         parser context when processing an inner class. Push the
14692         initialized fields list. raw_name added as an extra argument to
14693         maybe_create_class_interface_decl. Add the private this$<n>
14694         field.
14695         (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
14696         (register_fields): Get the class type from GET_CPC and handle
14697         previous errors.  Added code to handle the creation of static
14698         fields in inner classes. Initialized fields initialization
14699         statements kept in a list of lists.
14700         (maybe_generate_finit): Initialized fields initialization
14701         statements kept in a list of lists. Use GET_CPC.
14702         (maybe_generate_clinit): Likewise.
14703         (method_header): Use GET_CPC and GET_CPC_UN.
14704         (parser_qualified_classname): Handle inner classes.
14705         (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
14706         (java_fix_constructors): Hide pointer to enclosing context
14707         instance in constructor list when dealing with inner classes.
14708         (jdep_resolve_class): Call resolve_class with extra first argument
14709         JDEP_ENCLOSING.
14710         (resolve_class): Add enclosing context as a first extra argument
14711         to do_resolve_class.
14712         (do_resolve_class): Call find_as_inner_class. Handle WFLs
14713         properly.
14714         (resolve_no_layout): Extra argument added to resolve_class
14715         invocation.
14716         (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
14717         (java_get_real_method_name): Use GET_CPC_UN.
14718         (check_abstract_method_definitions): Use DECL_CLINIT_P.
14719         (java_check_abstract_methods): Handle static method declared in
14720         inner classes by an error.
14721         (java_check_regular_methods): Use DECL_CLINIT_P.
14722         (source_start_java_method): Also set DECL_MAX_LOCALS.
14723         (create_artificial_method): Call java_parser_context_save_global
14724         and java_parser_context_restore_global instead of saving/restoring
14725         the context by hand.
14726         (expand_start_java_method): Improved verbose mode message.
14727         (java_complete_expand_methods): Fixed leading comment. Use
14728         DECL_CLINIT_P.
14729         (fix_constructors): Added assignment to this$<n> if necessary.
14730         (java_expand_classes): Call java_complete_expand_classes instead
14731         of java_complete_expand_methods.
14732         (make_qualified_primary): Simplified.
14733         (merge_qualified_name): Optimized for missing left or right parts.
14734         (resolve_expression_name): Handle access to outer class fields from
14735         interclasses.
14736         (resolve_qualified_expression_name): New macro
14737         RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
14738         classes. Report error on non appropriate qualification of
14739         `new'. Handle qualified `this'.
14740         (not_accessible_p): Allow access to outer class private fields from
14741         inner classes.
14742         (patch_method_invocation): Handle method invocations through
14743         access methods and inner class constructor invocations.
14744         (find_applicable_accessible_methods_list): Search enclosing
14745         contexts of an inner class.
14746         (search_applicable_methods_list): Fixed typo.
14747         (argument_types_convertible): Handle inner class constructors'
14748         hidden outer context reference argument.
14749         (qualify_ambiguous_name): Handle qualified `this'.
14750         (java_complete_lhs): Handle use of field accessed through
14751         artificial access methods in various cases of assignments. Handle
14752         CLASS_LITERAL node.
14753         (check_final_assignment): Use DECL_CLINIT_P.
14754         (valid_ref_assignconv_cast_p): Handle the destination being an
14755         enclosing context of the source.
14756         (patch_unaryop): Handle use of field accessed through artificial
14757         access methods.
14758         (patch_return): Use DECL_CLINIT_P.
14759         (patch_throw_statement): Use DECL_CLINIT_P.
14760         (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
14761         * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
14762         ID_INIT_P.
14763
14764 2000-01-16  Anthony Green  <green@cygnus.com>
14765
14766         * parse.y (build_string_concatenation): Only use
14767         StringBuffer(String) shortcut if String arg is constant.
14768
14769 2000-01-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14770
14771         * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14772         the shift value to int. Fixed typo in comment.
14773
14774 2000-01-11  Mumit Khan  <khan@xraylith.wisc.edu>
14775
14776         * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
14777         * jcf-write.c: Likewise.
14778         * parse.y: Likewise.
14779         * parse.c: Regenerate.
14780
14781 2000-01-09  Anthony Green  <green@cygnus.com>
14782
14783         * jcf-write.c (generate_bytecode_insns): Emit invokeinterface
14784         bytecodes in the correct order.
14785
14786 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14787
14788         * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
14789
14790 2000-01-06  Anthony Green  <green@cygnus.com>
14791
14792         * expr.c (java_lang_expand_expr): Switch to permanent obstack
14793         before building constant array decl.
14794
14795 2000-01-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14796
14797         * jcf-write.c (generate_bytecode_conditional): Fixed indentation in
14798         method invocation and typo in conditional expression.
14799         (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
14800         the appropriate NOTE_POP.
14801         * parse.y (patch_binop): Shift value mask to feature the right
14802         type.
14803
14804 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14805
14806         * class.c (assume_compiled, assume_compiled_node): Add static
14807         prototype.
14808         (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
14809
14810         * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
14811
14812         * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
14813
14814         * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
14815         to `__modifier' to avoid stringifying it.
14816
14817         * parse.y (verify_constructor_circularity): Don't call a variadic
14818         function with a non-literal format string.
14819         (java_check_abstract_methods): Move unreachable code inside
14820         `continue' statement.
14821         (lookup_method_invoke): Call xstrdup, not strdup.
14822
14823         * expr.c (expand_java_field_op): Avoid the use of ANSI string
14824         concatenation.
14825
14826         * jcf-parse.c (yyparse): Likewise.
14827
14828         * jv-scan.c (main): Likewise.
14829
14830 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14831
14832         * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
14833         ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
14834         ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
14835         concatenation.
14836
14837         * parse.y (synchronized, variable_redefinition_error,
14838         check_class_interface_creation, create_interface, create_class,
14839         method_header, finish_method_declaration,
14840         check_modifiers_consistency, method_declarator,
14841         complete_class_report_errors, check_abstract_method_definitions,
14842         java_check_regular_methods, check_throws_clauses,
14843         java_check_abstract_methods, read_import_dir,
14844         check_pkg_class_access, declare_local_variables, fix_constructors,
14845         cut_identifier_in_qualified, resolve_expression_name,
14846         resolve_qualified_expression_name, patch_method_invocation,
14847         java_complete_lhs, patch_assignment, try_builtin_assignconv,
14848         patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
14849         patch_exit_expr, patch_exit_expr, patch_switch_statement,
14850         patch_try_statement, patch_synchronized_statement,
14851         patch_throw_statement, check_thrown_exceptions,
14852         patch_conditional_expr): Likewise.
14853
14854 1999-12-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14855
14856         * Makefile.in (LIBDEPS): Added gcc's errors.o
14857         (../jcf-dump$(exeext):): Link with gcc's errors.o
14858         (../gcjh$(exeext):): Likewise.
14859         * expr.c (expand_java_NEW): Layout the entire target type instead of
14860         laying out its methods only.
14861         (lookup_field): Layout the class after having loaded it.
14862         * java-tree.h (java_debug_context): Declared.
14863         * jcf-io.c (toplev.h): Included.
14864         (find_class): Removed assignment to jcf's outofsynch
14865         field. Force source file to be read if newer than its matching
14866         class file. Tweaked debug messages.
14867         * jcf-parse.c (jcf_out_of_synch): Deleted.
14868         (read_class): Call to jcf_out_of_synch removed.
14869         * jcf.h (typedef struct JCF): Field `outofsynch' deleted.
14870         (jcf_out_of_synch): Prototype deleted.
14871         * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
14872         `deprecated' and `class_err': integer turned into bit-fields.
14873         New bit-fields `saved_data_ctx' and `saved_data'. Fixed comments.
14874         * parse.y (package_list): New global.
14875         (package_declaration:): Record newly parsed package name.
14876         (extra_ctxp_pushed_p): Static global deleted.
14877         (java_parser_context_save_global): Create buffer context for the
14878         purpose of saving globals, if necessary.
14879         (java_parser_context_restore_global): Pop context pushed for the
14880         purpose of saving globals, if necessary.
14881         (java_debug_context_do): New prototype and function.
14882         (java_debug_context): Likewise.
14883         (do_resolve_class): Use already parsed package names to qualify
14884         and lookup class candidate.
14885         (java_pre_expand_clinit): Removed unnecessary local variable.
14886
14887 1999-12-17  Tom Tromey  <tromey@cygnus.com>
14888
14889         * gjavah.c (decode_signature_piece): Print "::" in JArray<>.  This
14890         fixes PR gcj/119.
14891         (process_file): Use `\n\' at end of each line in string.
14892
14893 1999-12-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14894
14895         * expr.c (expand_invoke): Layout the loaded class before
14896         attempting to use it.
14897         (expand_java_field_op): Allow final field assignments to take
14898         place in $finit$.
14899         * typeck.c (convert): Return error_mark_node if expr is null.
14900
14901 1999-12-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14902
14903         * class.c (class_depth): Return -1 if the class doesn't load
14904         properly.
14905         * expr.c (can_widen_reference_to): Check for errors during depth
14906         computation and return 0 accordingly.
14907         * jcf-parse.c (parse_source_file): Call java_fix_constructors to
14908         create default constructors and add an other error check.
14909         * parse.h (java_fix_constructors): Prototyped.
14910         * parse.y (java_pre_expand_clinit): Likewise.
14911         (build_super_invocation): Re-prototyped to feature one argument.
14912         (java_check_circular_reference): Directly use `current'.
14913         (java_fix_constructors): New function.
14914         (java_check_regular_methods): Don't create default constructors
14915         here, but abort if none were found.
14916         (java_complete_expand_methods): Pre-process <clinit> calling
14917         java_pre_expand_clinit.
14918         (java_pre_expand_clinit): New function.
14919         (fix_constructors): build_super_invocation invoked with the
14920         current method declaration as an argument.
14921         (build_super_invocation): Use the context of the processed method
14922         decl argument instead of current_class.
14923         * typeck.c (lookup_java_method): Take WFLs in method names into
14924         account.
14925
14926 1999-12-14  Per Bothner  <per@bothner.com>
14927
14928         * class.c (make_class_data): flag_keep_inline_functions to keep
14929         private methods in the method array.
14930
14931 1999-12-15  Anthony Green  <green@cygnus.com>
14932
14933         * check-init.c (check_init): Take into account both types of
14934         `throw's when checking for uninitialized variables.
14935
14936 1999-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14937
14938         * parse.y (java_complete_lhs): Force conversion of array
14939         dimensions to int_type_node, that's what runtime's ABI expects.
14940
14941 1999-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14942
14943         * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
14944         operand of a WFL, until the Java front-end gets fixed with regard
14945         to Mark Mitchell's gcc/tree.h patch (1999-12-04.)
14946
14947 1999-12-10  Andrew Haley  <aph@cygnus.com>
14948
14949         * parse.h (BUILD_THROW): Add support for sjlj-exceptions.
14950         decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
14951         expr.c (build_java_athrow): Add support for sjlj-exceptions.
14952         java-tree.h: Ditto.
14953         jcf-write.c: Ditto.
14954
14955 1999-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14956
14957         * expr.c (java_lang_expand_expr): Switch to permanent obstack
14958         before calling expand_eh_region_start and expand_start_all_catch.
14959         * except.c (expand_start_java_handler): Switch to permanent
14960         obstack before calling expand_eh_region_start.
14961         (expand_end_java_handler): Switch to permanent obstack before
14962         calling expand_start_all_catch.
14963
14964 1999-12-5  Anthony Green  <green@cygnus.com>
14965
14966         * decl.c (init_decl_processing): Mark throw_node as a noreturn
14967         function with side effects.
14968         (init_decl_processing): Mark all memory allocating DECLs with
14969         DECL_IS_MALLOC.
14970
14971 1999-12-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14972
14973         * except.c (expand_end_java_handler): Call
14974         expand_resume_after_catch and end_catch_handler.
14975
14976 1999-11-30  Anthony Green  <green@cygnus.com>
14977
14978         * verify.c (verify_jvm_instructions): Create new return label
14979         chain if non existent (don't rely on the verified state of the jsr
14980         target.)
14981
14982 1999-11-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14983
14984         * jcf-write.c (generate_bytecode_insns): Fixed indentation for
14985         COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
14986
14987         * parse.y (patch_assignment): Removed bogus final class test on
14988         lhs when checking on whether to emit an ArrayStoreException runtime
14989         check.
14990         * expr.c (expand_java_arraystore): Likewise.
14991
14992 1999-11-28 Anthony Green <green@cygnus.com>
14993
14994         * decl.c (find_local_variable): Reuse single slot decls when
14995           appropriate.
14996
14997 1999-11-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14998
14999         * jcf-parse.c (saw_java_source): Global variable removed.
15000         (read_class): Don't use `saw_java_source'. Added extra braces.
15001         (yyparse): Code setting `saw_java_source' removed.
15002
15003 1999-11-24  Mark Mitchell  <mark@codesourcery.com>
15004
15005         * except.c (emit_handlers): Zero catch_clauses after emitting them.
15006
15007 1999-11-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15008
15009         * verify.c (merge_type_state): Non verified subroutines being
15010         considered more than once to trigger passive type merge.
15011
15012 1999-11-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15013
15014         * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
15015         in case of error. Error message tuned.
15016
15017 1999-11-21  Anthony Green  <green@cygnus.com>
15018
15019         * constants.c (find_methodref_index): Unwrap method names before
15020         inserting them in the constant pool.
15021
15022         * jcf-parse.c (jcf_parse): Display `interface' when appropriate.
15023
15024         * class.c (assume_compiled_node): New typedef.
15025         (assume_compiled_tree): New static data.
15026         (find_assume_compiled_node): New function.
15027         (add_assume_compiled): New function.
15028         (assume_compiled): New function.
15029         * class.c (make_class_data): Use assume_compiled.
15030         (is_compiled_class): Use assume_compiled.
15031
15032         * java-tree.h (add_assume_compiled): Declare.
15033
15034         * lang.c (lang_decode_option): Parse new options.
15035
15036 1999-11-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15037
15038         * class.c (layout_class): Always convert TYPE_SIZE_UNIT to
15039         int_type_node: that's what `_Jv_AllocObject' expects.
15040
15041 1999-11-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15042
15043         * parse.y (lookup_method_invoke): Use lang_printable_name to
15044         reliably build the type name during error report. Fixes PR gcj/97.
15045
15046 1999-11-09  Tom Tromey  <tromey@cygnus.com>
15047
15048         * jcf-path.c: Include <sys/stat.h>.
15049         (jcf_path_init): Search for libjava.zip.  Fixes PR gcj/84.
15050         (DIR_UP): New macro.
15051
15052 1999-11-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15053
15054         * parse.y (source_end_java_method): Resume permanent allocation,
15055         reversing Apr 27 1998 patch.
15056         (patch_string_cst): Pop obstacks after having pushed the permanent
15057         ones.
15058
15059 1999-11-05  Tom Tromey  <tromey@cygnus.com>
15060
15061         * class.c (finish_class): Emit inlined methods if any native
15062         methods exist in the class.  Fixes PR gcj/85.
15063
15064 1999-11-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15065
15066         * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
15067         (qualify_ambiguous_name): Likewise.
15068
15069 1999-11-03  Godmar Back <gback@cs.utah.edu>
15070
15071         * typeck.c: (lookup_java_method):  search all inherited
15072         interfaces when looking up interface method.
15073
15074 1999-11-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15075
15076         * parse.y (method_header:): Issue error message for rule `type
15077         error'.
15078         (synchronized:): Error report when not using synchronized.
15079
15080 1999-11-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15081
15082         * parse.y (resolve_qualified_expression_name): Prevent `this' from
15083         being used before the superclass constructor has been called.
15084         (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
15085         instead of `CALL_THIS_CONSTRUCTOR_P'.
15086
15087 1999-10-30  Todd T. Fries <todd@lighthouse.fries.net>
15088
15089         * check-init.c: Fix typo in comment.
15090
15091 1999-10-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15092
15093         * class.c (add_method_1): Set DECL_INLINE to 1 for private, static
15094         and final method.
15095
15096 1999-10-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15097
15098         * parse.y (expression_statement:): Call function to report
15099         improper invocation of a constructor.
15100         (parse_ctor_invocation_error): New function.
15101
15102 1999-10-26  Mark Mitchell  <mark@codesourcery.com>
15103
15104         * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
15105         remember_end_note.
15106
15107 1999-10-21  Tom Tromey  <tromey@cygnus.com>
15108
15109         * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
15110         in generated `main'.
15111
15112 1999-10-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15113
15114         * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
15115         (qualify_ambiguous_name): Likewise.
15116
15117 1999-10-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15118
15119         * parse.y (java_complete_tree): fold_constant_for_init to work on
15120         permanent_obstack.
15121         (java_complete_lhs): Likewise.
15122         (array_constructor_check_entry): Complete an initializer element
15123         on permanent_obstack.
15124
15125 1999-10-19  Tom Tromey  <tromey@cygnus.com>
15126
15127         * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
15128         From Mike Moreton <mike@pillim.demon.co.uk>.
15129
15130 1999-10-15  Greg McGary  <gkm@gnu.org>
15131
15132         * java-tree.h (flag_bounds_check): Remove extern decl.
15133         * lang.c (flag_bounds_check): Remove global variable.
15134         (lang_f_options): Remove "bounds-check" entry.
15135         (lang_init_options): Default flag_bounds_check to "on".
15136
15137 1999-10-14  Tom Tromey  <tromey@cygnus.com>
15138
15139         * jvgenmain.c (usage): New function.
15140         (main): Use it.  Also, handle `-D' options.
15141         * jvspec.c (lang_specific_driver): Recognize -D.
15142         (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.
15143
15144         * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
15145
15146 1999-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15147
15148         * jcf-dump.c (print_constant, disassemble_method): Don't call a
15149         variadic function with a non-literal format string.
15150
15151         * parse-scan.y (report_main_declaration): Likewise.
15152
15153         * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.
15154
15155         * parse.y (read_import_dir, patch_assignment, patch_binop,
15156         patch_array_ref): Likewise.
15157
15158         * typeck.c (build_java_array_type): Likewise.
15159
15160         * verify.c (verify_jvm_instructions): Likewise.
15161
15162 1999-10-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15163
15164         * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
15165
15166 1999-10-07  Anthony Green  <green@cygnus.com>
15167
15168         * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases
15169         where CHECK_PUT may fail for valid reasons.
15170
15171         * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3,
15172         UNSAFE_PUTN): New macros.
15173
15174 1999-10-04  Tom Tromey  <tromey@cygnus.com>
15175
15176         * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
15177         well.  Fixes Java PR gcj/59.
15178         * parse-scan.y (yyerror): Report errors.
15179
15180 1999-09-24  Glenn Chambers  <GChambers@provsol.com>
15181
15182         * decl.c (insert_block): Remove unconditional `abort'.
15183
15184 1999-09-24  Bernd Schmidt  <bernds@cygnus.co.uk>
15185
15186         * decl.c (builtin_function): No longer static.  New arg CLASS.  Arg
15187         FUNCTION_CODE now of type int.  All callers changed.
15188         Set the builtin's DECL_BUILT_IN_CLASS.
15189
15190 1999-09-23  Tom Tromey  <tromey@cygnus.com>
15191
15192         * jvspec.c (lang_specific_driver): Don't read spec file if
15193         -fsyntax-only given.
15194
15195 1999-09-22  Tom Tromey  <tromey@cygnus.com>
15196
15197         * lang-specs.h: Added `%(jc1)' to the jc1 spec.
15198
15199         * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
15200         (WORDS_TO_LONG): Likewise.
15201         (WORDS_TO_DOUBLE): Likewise.
15202
15203 1999-09-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15204
15205         * jcf-write.c (RELOCATION_VALUE_0): New macro.
15206         (RELOCATION_VALUE_1): Likewise.
15207         (emit_iinc, emit_reloc, push_constant1, push_constant2,
15208         push_in_const, push_long_const): Prototyped.
15209         (push_constant1): Argument `index' is of type HOST_WIDE_INT.
15210         (push_constant2): Likewise.
15211         (push_int_const): Cast find_constant1's integer arguments to `jword'.
15212         (find_constant_wide): Cast find_constant2's integer arguments to
15213         `jword'.
15214         (find_constant_index): Cast find_constant2's and find_constant2's
15215         integer arguments to `jword'.
15216         (emit_pop): Argument `value' is of type HOST_WIDE_INT.
15217         (emit_switch_reloc): Use RELOCATION_VALUE_0.
15218         (emit_if): Use RELOCATION_VALUE_1.
15219         (emit_goto): Likewise.
15220         (emit_jsr): Likewise.
15221         (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
15222         argument to push_long_const to HOST_WIDE_INT.
15223
15224 1999-09-15  Andreas Schwab  <schwab@suse.de>
15225
15226         * Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
15227
15228 1999-09-20  Nick Clifton  <nickc@cygnus.com>
15229
15230         * lang.c (lang_decode_option): Extend comment.
15231
15232 1999-09-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15233
15234         * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
15235         instead of fndecl.
15236
15237 1999-09-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15238
15239         * gjavah.c (get_field_name, print_method_info, print_include,
15240         add_namelet): Use xmalloc, not malloc.
15241
15242         * jcf-depend.c (add_entry): Likewise.  Use xstrdup, not strdup.
15243         (munge): Use xrealloc, not realloc, trust xrealloc to handle a
15244         NULL pointer.
15245
15246         * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
15247
15248         * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
15249
15250         * jcf-path.c (add_entry): Likewise.
15251
15252         * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
15253
15254         * jv-scan.c (xmalloc): Remove definition.
15255
15256         * jvgenmain.c (xmalloc): Likewise.
15257
15258         * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
15259
15260         * lex.c (java_store_unicode): Use xrealloc, not realloc.
15261
15262         * parse-scan.y: Use concat, not of xmalloc/assign/strcpy.  Use
15263         concat, not xmalloc/sprintf.
15264         (java_push_parser_context): Use xcalloc, not xmalloc/bzero.
15265         (xstrdup): Remove definition.
15266
15267         * parse.y (duplicate_declaration_error_p,
15268         constructor_circularity_msg, verify_constructor_circularity,
15269         check_abstract_method_definitions, java_check_regular_methods,
15270         java_check_abstract_methods, patch_method_invocation,
15271         check_for_static_method_reference, patch_assignment, patch_binop,
15272         patch_cast, array_constructor_check_entry, patch_return,
15273         patch_conditional_expr): Use xstrdup, not strdup.
15274
15275         * zextract.c (ALLOC): Use xmalloc, not malloc.
15276
15277 1999-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15278
15279         * Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
15280
15281         * jvspec.c: Include gcc.h.  Don't include gansidecl.h.
15282         (do_spec, lang_specific_pre_link, lang_specific_driver,
15283         input_filename, input_filename_length): Don't declare.
15284         (main_class_name, jvgenmain_spec, lang_specific_driver):
15285         Constify a char*.
15286         (lang_specific_driver): All calls to the function pointer
15287         parameter now explicitly call `fatal'.
15288
15289 1999-09-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15290
15291         * parse.y (find_applicable_accessible_methods_list): Search
15292         abstract classes as interfaces.
15293
15294 1999-09-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15295
15296         * class.c (finish_class): We're now outside a valid method
15297         declaration. Tell the rest of gcc so.
15298
15299 1999-09-08  Bruce Korb  autogen@linuxbox.com
15300
15301         * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
15302
15303 1999-09-07  Tom Tromey  <tromey@cygnus.com>
15304
15305         * gjavah.c (add_class_decl): Generate include for gcj/array.h, not
15306         java-array.h.
15307         (decode_signature_piece): Don't emit "::" in JArray<>.
15308         (print_namelet): Only print trailing `;' when printing a class.
15309
15310 1999-09-10  Bernd Schmidt  <bernds@cygnus.co.uk>
15311
15312         * java-tree.h: Delete declarations for all tree nodes now moved to
15313         global_trees.
15314         * decl.c: Delete their definitions.
15315
15316 1999-09-04  Mark Mitchell  <mark@codesourcery.com>
15317
15318         * Make-lang.in (jc1): Depend on ggc-callbacks.o.
15319         * Makefile.in (OBJS): Add ggc-callbacks.o.
15320         (OBJDEPS): Likewise.
15321
15322 1999-09-03  Tom Tromey  <tromey@cygnus.com>
15323
15324         * parse.y (strip_out_static_field_access_decl): Return operand if
15325         it satisfies JDECL_P.
15326
15327 1999-09-02  Tom Tromey  <tromey@cygnus.com>
15328
15329         * gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
15330         Handle nested arrays, like `[[I'.
15331
15332 1999-09-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15333
15334         * class.c (finish_class): Remove unused parameter, all callers
15335         changed.
15336
15337         * expr.c (build_java_athrow): Change return type to void.
15338         (java_lang_expand_expr): Make sure each case in switch returns a
15339         value.
15340
15341         * java-tree.h (finish_class): Fix prototype to take void args.
15342
15343         * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
15344         (main): Issue return from main, not exit.
15345
15346         * jcf-parse.c (parse_class_file): Fix call to `finish_class'.
15347
15348         * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.
15349
15350         * jv-scan.c (main): Issue return from main, not exit.
15351
15352         * parse.y (check_abstract_method_definitions,
15353         java_check_abstract_method_definitions): Add static prototypes.
15354         (java_complete_expand_methods): Fix call to `finish_class'.
15355
15356         * verify.c (verify_jvm_instructions): Initialize variables `oldpc'
15357         and `prevpc'.
15358
15359 1999-08-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15360
15361         * lang.c (language_string): Constify.
15362
15363 1999-08-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15364
15365         * Makefile.in (LIBS): Fix definition so we link with $(CLIB).
15366         Remove hacks for stuff which comes from libiberty.
15367
15368         * Make-lang.in: Likewise.
15369
15370 1999-08-30  Hans-Peter Nilsson  <hp@axis.se>
15371
15372         * Makefile.in (xref.o): Depend on xref.c explicitly.
15373
15374 1999-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15375
15376         * java-tree.h (lang_printable_name): Constify a char*.
15377
15378         * lang.c (lang_printable_name): Likewise.
15379
15380 1999-08-27  Jeffrey A Law  (law@cygnus.com)
15381
15382         * gjavah.c, jcf-write.c, verify.c: Do not use C++ style
15383         comments in C code.
15384
15385 1999-08-26  Tom Tromey  <tromey@cygnus.com>
15386
15387         * gjavah.c (print_cxx_classname): Print "::" before qualified
15388         name.
15389
15390 1999-08-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15391
15392         * parse.y (lookup_cl): Changed leading comment. Now does its best
15393         to set the column number.
15394         (qualify_ambiguous_name): Take WFL wrappers into account.
15395
15396 1999-08-25  Gregg Townsend  <gmt@cs.arizona.edu>
15397
15398         * verify.c (verify_jvm_instructions): Don't check instruction
15399         validity beyond end of method.
15400
15401 1999-08-25  Tom Tromey  <tromey@cygnus.com>
15402
15403         * jvspec.c (lang_specific_driver): Correctly handle --help again.
15404
15405 1999-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15406
15407         * gjavah.c (print_name, print_base_classname, utf8_cmp,
15408         cxx_keyword_subst, generate_access, name_is_method_p,
15409         get_field_name, print_field_name, super_class_name, print_include,
15410         decode_signature_piece, print_class_decls, usage, help,
15411         java_no_argument, version, add_namelet, print_namelet): Add static
15412         prototype.
15413         (print_base_classname, utf8_cmp, cxx_keyword_subst,
15414         name_is_method_p): Constify a char*.
15415         (get_field_name): Likewise.  Prefer xstrdup over malloc/strcpy.
15416         Provide a final else clause in an if-else-if.
15417         (print_field_info): Add missing final arg in function call to
15418         `print_field_name'.
15419         (print_method_info, decompile_method, decode_signature_piece,
15420         print_c_decl, print_full_cxx_name, print_stub,
15421         print_mangled_classname, super_class_name, print_include,
15422         add_namelet, add_class_decl, print_class_decls, process_file,
15423         help): Constify a char*.
15424
15425         * jcf-write.c (jcf_handler, push_constant1, push_constant2,
15426         push_int_const, find_constant_wide, find_constant_index,
15427         push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
15428         emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
15429         emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
15430         emit_if, emit_goto, emit_jsr, call_cleanups,
15431         make_class_file_name): Add static prototypes.
15432         (generate_bytecode_return, generate_bytecode_insns): Pass a
15433         NULL_PTR, not a NULL_TREE.
15434
15435         * jv-scan.c: Include "jcf.h".
15436         (main): Declare using DEFUN macro.
15437
15438         * jvspec.c (find_spec_file, lang_specific_pre_link,
15439         lang_specific_driver): Add prototypes.
15440         (find_spec_file): Constify a char*.
15441
15442         * keyword.gperf (hash, java_keyword): Add prototypes.
15443
15444         * lang.c (lang_print_error): Add static prototype.
15445         (lang_init): Prefer memcpy over bcopy to avoid casts.
15446
15447         * lex.c (yylex): Add static prototype.
15448
15449         * parse-scan.y: Include "lex.c" earlier.
15450
15451         * parse.h: Remove redundant declaration for `yylex'.
15452
15453         * parse.y (java_decl_equiv, binop_compound_p, search_loop,
15454         labeled_block_contains_loop_p): Add static prototypes.
15455         (not_accessible_p): Make static to match prototype.
15456
15457         * verify.c (start_pc_cmp): Don't needlessly cast away const.
15458
15459 1999-08-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15460
15461         * parse.y (check_method_redefinition): Changed leading comment.
15462         (check_abstract_method_definitions): New function.
15463         (java_check_abstract_method_definitions): New function.
15464         (java_check_regular_methods): Call it.
15465         (verify_constructor_super): Fixed indentation.
15466         (lookup_method_invoke): Likewise.
15467
15468 1999-08-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15469
15470         * parse.y (method_header): Return a null pointer if the current
15471         class node is null.
15472         (finish_method_declaration): Return if the current function decl
15473         is null.
15474         (source_start_java_method): Likewise.
15475         (java_method_add_stmt): Likewise.
15476
15477 1999-08-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15478
15479         * class.c (emit_register_class): Removed unnecessary call to
15480         start_sequence.
15481         * parse.y (labeled_block_contains_loop_p): Removed unused local
15482         variable.
15483
15484 1999-08-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15485
15486         * parse.y (java_refold): Added prototype.
15487
15488 1999-08-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15489
15490         * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
15491         (java_stabilize_reference): Removed unnecessary `else'.
15492         (java_complete_lhs): Set flag to remember boolean. Call
15493         java_refold. Added comments.
15494         (java_decl_equiv): New function.
15495         (binop_compound_p): Likewise.
15496         (java_refold): Likewise.
15497         (patch_unaryop): Striped static field access assigned to decl and
15498         op. Changed promotion scheme for ++/-- operators.
15499         (search_loop): New function.
15500         (labeled_block_contains_loop_p): Likewise.
15501         (patch_loop_statement): Call labeled_block_contains_loop_p. Added
15502         comment.
15503         (patch_bc_statement): Call search_loop. Fixed comment.
15504
15505 1999-08-14  Anthony Green  <green@cygnus.com>
15506
15507         * expr.c (java_lang_expand_expr): Mark static array data as
15508         referenced.
15509
15510 1999-08-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15511
15512         * jvgenmain.c (main): NUL-terminate name_obstack.
15513
15514 1999-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15515
15516         * check-init.c (check_bool2_init, done_alternative): Add static
15517         prototypes.
15518
15519         * class.c (add_interface_do, maybe_layout_super_class): Likewise.
15520         (add_method, build_utf8_ref, build_class_ref,
15521         append_gpp_mangled_type, layout_class_method): Constify a char*.
15522
15523         * decl.c (push_promoted_type, make_binding_level): Add static
15524         prototypes.
15525         (push_promoted_type, pushdecl): Constify a char*.
15526
15527         * except.c (find_handler_in_range, link_handler,
15528         check_start_handlers): Add static prototypes.
15529
15530         * expr.c (process_jvm_instruction): Constify a char*.
15531
15532         * gjavah.c (main): Constify a char*.
15533
15534         * java-tree.h (verify_jvm_instructions, process_jvm_instruction):
15535         Constify a char*.
15536
15537         * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
15538         static prototypes.
15539         (add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
15540         munge, print_ents): Constify a char*.
15541
15542         * jcf-dump.c (disassemble_method): Constify a char*.
15543         (print_constant_pool, print_exception_table): Add static prototypes.
15544         (print_constant, print_exception_table, main, disassemble_method):
15545         Constify a char*.
15546
15547         * jcf-io.c (find_classfile, find_class): Likewise.
15548
15549         * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
15550         (set_source_filename, predefined_filename_p): Add static prototypes.
15551         (set_source_filename, get_constant, get_class_constant,
15552         find_in_current_zip): Constify a char*.
15553
15554         * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
15555         static prototypes.
15556         (add_entry, add_path, jcf_path_classpath_arg,
15557         jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15558
15559         * jcf-reader.c (get_attribute, jcf_parse_preamble,
15560         jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
15561         jcf_parse_one_method, jcf_parse_methods,
15562         jcf_parse_final_attributes): Add static prototypes.
15563         (get_attribute): Constify a char*.
15564
15565         * jcf.h (find_class, find_classfile, jcf_dependency_set_target,
15566         jcf_dependency_add_target, jcf_path_classpath_arg,
15567         jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15568
15569         * jv-scan.c (main): Constify a char*.
15570         (gcc_obstack_init): Add prototype arguments.
15571
15572         * jvgenmain.c (gcc_obstack_init): Likewise.
15573         (main): Constify a char*.
15574
15575         * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
15576         static prototypes.
15577         (put_decl_string, lang_print_error): Constify a char*.
15578         (lang_init): Remove redundant extern prototype.
15579
15580         * mangle.c (emit_unicode_mangled_name): Constify a char*.
15581
15582         * typeck.c (convert_ieee_real_to_integer, parse_signature_type):
15583         Add static prototypes.
15584         (get_type_from_signature): Constify a char*.
15585
15586         * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
15587         Add static prototypes.
15588         (start_pc_cmp): Prefer PTR over GENERIC_PTR.
15589         (verify_jvm_instructions): Constify a char*.
15590
15591         * xref.c (xref_flag_value): Likewise.
15592
15593         * xref.h (xref_flag_value): Likewise.
15594
15595         * zextract.c (makeword, makelong): Add static prototypes.
15596         (makeword, makelong): Constify a uch*.
15597
15598 1999-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15599
15600         * lang.c (java_dummy_print): Constify a char*.
15601         (lang_print_error): Likewise.
15602         (lang_init): Remove redundant prototype for `print_error_function'.
15603         (lang_init_source): Likewise.
15604         (lang_identify): Constify a char*.
15605
15606 1999-08-09  Tom Tromey  <tromey@cygnus.com>
15607
15608         * javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
15609         (WORDS_TO_LONG): Likewise.
15610         (WORDS_TO_DOUBLE): Likewise.
15611
15612 1999-08-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15613
15614         * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).
15615
15616         * expr.c (java_stack_pop, java_array_data_offset,
15617         build_java_throw_out_of_bounds_exception, case_identity,
15618         build_java_check_indexed_type): Add static prototypes.
15619         (linenumber_table, expand_invoke, expand_java_field_op,
15620         build_primtype_type_ref, expand_byte_code): Constify a char*.
15621
15622         * java-tree.h (build_primtype_type_ref, linenumber_table):
15623         Constify a char*.
15624         (java_lang_expand_expr): Add prototype.
15625
15626         * lang.c: Include rtl.h and expr.h.  Remove extern prototype for
15627         `java_lang_expand_expr'.
15628
15629         * lex.c (java_lex_error): Constify a char*.
15630         (java_get_unicode, java_read_char, java_allocate_new_line,
15631         java_unget_unicode, java_sneak_unicode): Prototype.
15632
15633         * parse-scan.y (current_class, package_name, method_declarator,
15634         report_class_declaration, yyerror): Constify a char*.
15635
15636         * parse.h (java_report_errors): Prototype.
15637         (yyerror): Constify a char*.
15638
15639         * parse.y (classitf_redefinition_error, check_modifiers,
15640         parse_jdk1_1_error, lookup_package_type,
15641         lookup_package_type_and_set_next, get_printable_method_name,
15642         purify_type_name): Constify a char*.
15643         (build_super_invocation, maybe_generate_finit,
15644         verify_constructor_super, parser_add_interface,
15645         add_superinterfaces, jdep_resolve_class, note_possible_classname,
15646         java_complete_expand_methods, java_expand_finals,
15647         cut_identifier_in_qualified, java_stabilize_reference,
15648         do_unary_numeric_promotion, operator_string, do_merge_string_cste,
15649         merge_string_cste): Prototype.
15650         (single_type_import_declaration, yyerror,
15651         variable_redefinition_error, build_array_from_name,
15652         build_unresolved_array_type, check_class_interface_creation,
15653         resolve_class, complete_class_report_errors,
15654         note_possible_classname, read_import_dir,
15655         find_in_imports_on_demand, resolve_package, fix_constructors,
15656         check_deprecation, lookup_method_invoke,
15657         maybe_build_primttype_type_ref, array_constructor_check_entry):
15658         Constify a char*.
15659         (java_complete_expand_methods, java_expand_finals): Make static.
15660         (convert_narrow): Remove static prototype.
15661
15662 1999-08-03  J"orn Rennecke <amylaar@cygnus.co.uk>
15663
15664         * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.
15665
15666 1999-08-02  Richard Henderson  <rth@cygnus.com>
15667
15668         * decl.c: Include defaults.h instead of expr.h.
15669         * parse.y: Likewise.
15670
15671 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
15672
15673         * java/decl.c (start_java_method): Change all uses of
15674         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
15675         Ensure expr.h is included.
15676         * java/expr.c (pop_arguments): Ditto.
15677         * java/parse.y (expand_start_java_method): Ditto.
15678
15679 1999-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15680
15681         * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
15682
15683 1999-07-31  Bernd Schmidt  <bernds@cygnus.co.uk>
15684
15685         * decl.c: Include "function.h".
15686         * except.c: Likewise.
15687         * parse.y: Likewise.
15688         * Makefile.in: Update dependencies.
15689
15690 1999-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15691
15692         * expr.c (build_java_soft_divmod): Provide a default case in switch.
15693         (java_lang_expand_expr): Mark parameters `target', `tmode' and
15694         `modifier' with ATTRIBUTE_UNUSED.
15695
15696         * gjavah.c (process_file): Add braces around ambiguous `else'.
15697
15698         * jcf-dump.c (print_access_flags, localvar_free): Change return
15699         type to void.
15700
15701         * parse.y (java_complete_expand_method): Initialize variable
15702         `exception_copy'.
15703         (resolve_qualified_expression_name): Likewise for `field_decl'.
15704         (patch_method_invocation): Likewise for `class_to_search'.
15705         (qualify_ambiguous_name): Likewise for `name' and `ptr_type'.
15706         (patch_assignment): Likewise for `lhs_type'.
15707
15708         * verify.c (verify_jvm_instructions): Remove unused variable
15709         `caller'.
15710
15711 1999-07-25  Richard Henderson  <rth@cygnus.com>
15712
15713         * decl.c (va_list_type_node): New.
15714
15715 1999-07-25  Anthony Green  <green@cygnus.com>
15716
15717         * gjavah.c (print_stub): New function.
15718         (METHOD_IS_NATIVE): New macro.
15719         (print_mangled_classname): Make static.
15720         (HANDLE_END_FIELD): Don't emit fields during stub generation.
15721         (process_file): Perform stub generation.
15722         (HANDLE_METHOD): Don't emit class decls during stub
15723         generation.
15724         (HANDLE_END_METHOD): Take into account stub generation.
15725         (print_method_info): Handle stub generation.
15726         (print_stub): New function.
15727         (print_cxx_classname): Make signature consistant with others.
15728         (help): Describe -stubs option.
15729         (main): Create stub file.
15730         (version): Use version.c.
15731         (print_full_cxx_name): New function.
15732         (print_c_decl): Use print_full_cxx_name.
15733
15734 1999-07-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15735
15736         * check-init.c (check_init): Handle MAX_EXPR.
15737
15738 1999-07-15  Andrew Haley  <aph@cygnus.com>
15739
15740         * lang.c (flag_use_divide_subroutine): New variable.
15741         * typeck.c: (convert_ieee_real_to_integer): Bounds check
15742         fp-to-integer conversion.
15743         (convert): Call convert_ieee_real_to_integer when flag_fast_math
15744         is not set.
15745
15746         * expr.c (build_java_soft_divmod): New function.
15747         (build_java_binop): Call build_java_soft_divmod if
15748         flag_use_divide_subroutine is set.
15749         * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15750         soft_lrem_node: new builtin functions.
15751         (init_decl_processing) Initialize the new builtins.
15752         * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15753         soft_lrem_node: new builtin functions.
15754         (build_java_soft_divmod): New function.
15755         * parse.y: Call build_java_soft_divmod if
15756         flag_use_divide_subroutine is set.
15757         * parse.c: Rebuilt.
15758
15759         * jvspec.c (lang_specific_driver): Always allow an extra arg (for
15760         a --specs= arg) even if not linking.
15761         * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
15762         -fuse-divide-subroutine
15763
15764 1999-07-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15765
15766         * parse.y (resolve_and_layout): Check methods only once.
15767         (resolve_qualified_expression_name): Verify thrown exceptions
15768         compatibility.
15769         (check_thrown_exceptions): Reject exceptions thrown in
15770         initializer. Error message tuned.
15771
15772 1999-07-14  Andrew Haley  <aph@cygnus.com>
15773
15774         * expr.c (expand_expr): Do not return the last statement in a
15775         block as the block's value.
15776
15777 1999-07-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15778
15779         * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
15780         CALL_EXPR, to avoid order of evaluation changes.
15781
15782 1999-07-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15783
15784         * parse.y (qualify_ambiguous_name): Do not use
15785         IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
15786
15787 1999-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15788
15789         * check-init.c (check_init): Handle MAX_EXPR.
15790         * expr.c (force_evaluation_order): Force method call arguments to
15791         be evaluated in left-to-right order.
15792         * parse.y (qualify_ambiguous_name): Loop again to qualify
15793         NEW_ARRAY_EXPR properly.
15794
15795 1999-06-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15796
15797         * parse.y (patch_invoke): Resolve unresolved invoked method
15798         returned type.
15799         (qualify_ambiguous_name): STRING_CST to qualify expression for
15800         type name resolution.
15801
15802 1999-06-24  Andrew Haley  <aph@cygnus.com>
15803
15804         * class.c (finish_class): Whenever a deferred method is
15805         output, rescan the list of methods to see if a new candidate for
15806         output can be found.
15807
15808 1999-06-28  Tom Tromey  <tromey@cygnus.com>
15809
15810         * jvspec.c (lang_specific_driver): Recognize --help.
15811
15812 1999-06-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15813
15814         * parse.y (resolve_package): Fixed bogus return statement.
15815         (patch_method_invocation): Resolve method invocation beginning with
15816         a package name qualifier.
15817
15818 1999-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15819
15820         * Make-lang.in (java.stage1): Depend on stage1-start.
15821         (java.stage2): Likewise for stage2-start.
15822         (java.stage3): Likewise for stage3-start.
15823         (java.stage4): Likewise for stage4-start.
15824
15825 1999-06-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15826
15827         * parse.y (java_complete_lhs): When doing cross referencing, don't
15828         try to keep file location on a WFL expanded as a CALL_EXPR.
15829
15830 1999-06-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15831
15832         * parse.y (finish_method_declaration): Insert a RETURN_EXPR when
15833         compiling to class file a void method with an empty method body.
15834         As a side effect, the bytecode backend will generate the
15835         appropriate `return' instruction.
15836
15837 1999-06-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15838
15839         * parse.y (lookup_package_type_and_set_next): New function prototype.
15840         (resolve_package): Search current and imported packages.
15841         (lookup_package_type_and_set_next): New function.
15842
15843 1999-06-22  Andrew Haley  <aph@cygnus.com>
15844
15845         * verify.c (verify_jvm_instructions): Check for pending blocks
15846         before invalid PC test and opcode switch, not after.
15847
15848 1999-06-21  Andrew Haley  <aph@cygnus.com>
15849
15850         * except.c (find_handler_in_range): The upper limit for exception
15851         ranges is exclusive, not inclusive: (start <= pc < end).
15852         (link_handler): find child pointer which points to outer by
15853         searching sibling list: previous code incorrectly assumed that
15854         outer->outer->first_child must point to outer.
15855         * verify.c (verify_jvm_instructions): FIXME added to code for
15856         `athrow'.
15857         (verify_jvm_instructions): Do not assume that the last block
15858         processed in a subroutine is a block which ends with a `ret'
15859         instruction.  With some control flows it is possible that the last
15860         block ends with an `athrow'.
15861
15862 1999-06-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15863
15864         * parse.y (qualify_ambiguous_name): Reorganized the post
15865         evaluation of non WFL leading expression nodes.
15866
15867 1999-06-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15868
15869         * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
15870         CONVERT_EXPR.
15871
15872 1999-06-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15873
15874         * parse.y (qualify_ambiguous_name): Handle qualified expression
15875         beginning with a STRING_CST.
15876
15877 1999-06-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15878
15879         * parse.y (register_fields): Set DECL_INITIAL on both
15880         pre-initialized static and public fields.
15881         (resolve_field_access): Static field access expressions to always
15882         use pointer types.
15883         (qualify_ambiguous_name): Work out buried CALL_EXPR for proper
15884         qualification. CONVERT_EXPR to be resolved as an expression name.
15885         (java_complete_lhs): Identify and access qualified final
15886         initialized field in switch statement case expression.
15887         (fold_constant_for_init): Pre-initialized field decl constant to
15888         be folded.
15889
15890 1999-06-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15891
15892         * parse.y (note_possible_classname): Mark returned node with
15893         QUALIFIED_P only if the original class name contained a '/'.
15894
15895 1999-06-05  Anthony Green  <green@cygnus.com>
15896
15897         * Make-lang.in (gcjh): More parallel build fixes.
15898
15899 1999-06-03  Mike Stump  <mrs@wrs.com>
15900
15901         * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds.
15902
15903 1999-06-02  Anthony Green  <green@cygnus.com>
15904
15905         * except.c (link_handler): Chain exception handlers in order.
15906
15907 1999-06-02  Anthony Green  <green@cygnus.com>
15908
15909         * expr.c (expand_byte_code): Fill unreachable bytecode regions
15910         with nops and process as usual in order to always set correct EH
15911         ranges.  Emit detailed warnings about unreachable bytecodes.
15912
15913 1999-06-02  Anthony Green  <green@cygnus.com>
15914
15915         * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as
15916         constant.
15917
15918 1999-05-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15919
15920         * parse.y (lookup_field_wrapper): Unified returned value to NULL
15921           or the searched field decl.
15922
15923 1999-05-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15924
15925         * parse.y (fold_constant_for_init): Convert numerical constant
15926         values to the type of the assigned field.
15927
15928 1999-05-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15929
15930         * expr.c (lookup_field): Relaxed the test on class loading error
15931         detection.
15932         * parse.y (fold_constant_for_init): Enabeled old code.
15933
15934 1999-05-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15935
15936         * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
15937         decide the validity of the cast of a java.lang.Cloneable reference
15938         to an array.
15939         (patch_conditional_expr): Fixed first argument passed to
15940         binary_numeric_promotion.
15941
15942 1999-05-26  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15943
15944         * parse.y (qualify_ambiguous_name): Take into account that a
15945         CONVERT_EXPR might specify a type as a WFL.
15946
15947 1999-05-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15948
15949         * parse.y (patch_assignment): Save the rhs before using it as an
15950         argument to _Jv_CheckArrayStore.
15951
15952 1999-05-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15953
15954         * lex.c (java_parse_doc_section): Fixed `tag' buffer size.
15955
15956 1999-05-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15957
15958         * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
15959         floating point literal only when the exponent indicator has been
15960         parsed.
15961
15962 1999-05-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15963
15964         * parse.y (formal_parameter:): Construct argument tree list
15965         element even if a yet unsupported final parameter was encountered.
15966
15967 1999-05-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15968
15969         * parse.y (finish_method_declaration): Issue errors for native or
15970         abstract methods declared with a method body, as well as for non
15971         native or non abstract methods with no method body.
15972
15973 1999-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15974
15975         * class.c (build_utf8_ref): Initialize variable `field'.
15976
15977         * decl.c (init_decl_processing): Initialize variable `field'.
15978
15979         * expr.c (build_known_method_ref): Mark parameters `method_type',
15980         `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
15981         (process_jvm_instruction): Likewise for parameter `length'.
15982
15983         * jvspec.c (lang_specific_driver): Mark variables `saw_math',
15984         `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
15985         ATTRIBUTE_UNUSED.
15986
15987         * parse.y (maybe_generate_clinit): Remove unused variable
15988         `has_non_primitive_fields'.
15989         (find_in_imports_on_demand): Initialize variables `node_to_use'
15990         and `cl'.
15991         (patch_binop): Likewise for variable `prom_type'.
15992         (patch_unaryop): Likewise for variable `prom_type'.
15993
15994         * verify.c (verify_jvm_instructions): Likewise for variable `last'.
15995
15996         * xref.c (xref_table): Add missing initializer.
15997
15998 1999-05-14  Tom Tromey  <tromey@cygnus.com>
15999
16000         * java-except.h (struct eh_range): Removed unused `next' member.
16001         * verify.c (verify_jvm_instructions): Call check_nested_ranges
16002         after adding all exception handlers.  Sort exception ranges in
16003         order of start PC.
16004         (struct pc_index): New structure.
16005         (start_pc_cmp): New function.
16006         * except.c (add_handler): Return `void'.  Don't call link_handler;
16007         instead construct an ordinary linked list and do range
16008         coalescing.
16009         (check_nested_ranges): New function.
16010         (link_handler): Changed interface to allow merging of eh_ranges.
16011         Split overlapping ranges.  Return `void'.
16012
16013 1999-05-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16014
16015         * parse.y (constructor_block_end:): New rule, tagged <node>.
16016         (constructor_body:): Use `constructor_block_end' instead of
16017         `block_end'.
16018
16019 1999-05-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16020
16021         * parse.y (statement_nsi:): Pop `for' statement block.
16022         (java_complete_lhs): Labeled blocks containing no statement are
16023         marked as completing normally.
16024
16025 1999-05-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16026
16027         * xref.c (xref_set_current_fp): New function, defined.
16028         * xref.h (xref_set_current_fp): New function, prototyped.
16029
16030 1999-05-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16031
16032         * check-init.c (check_init): Take into account that
16033         LABELED_BLOCK_STMT can be empty.
16034
16035 1999-05-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16036
16037         * parse.y (java_check_regular_methods): Warning check on not
16038         overriding methods with default access in other packages does not
16039         apply to `<clinit>'.
16040         (java_complete_lhs): If block body is an empty_stmt_node, replace
16041         it by NULL_TREE. This prevents gcc from generating an irrelevant
16042         warning.
16043
16044 1999-05-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16045
16046         * check-init.c (check_init): Removed code accepting to see things
16047         falling through default:, when doing xrefs.
16048         * java-tree.h (do_not_fold): New global variable, declared.
16049         * parse.y (do_not_fold): New global variable, defined.
16050         (java_complete_expand_method): Set `do_not_fold' to the value of
16051         `flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
16052         and reinstall them after them have been purged; do not check for
16053         initializations; do not issue missing return errors.
16054         (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
16055         when doing xrefs.
16056         (patch_binop): Skip the fold part when doing xrefs.
16057         (build_string_concatenation): Skip the concatenation part when
16058         doing xrefs.
16059         (patch_synchronized_statement): Do not generate a try-finally when
16060         doing xrefs.
16061         (patch_throw_statement): When doing xrefs, do not call BUILD_THROW
16062         and keep the location where the throw was seen.
16063         * typeck.c (convert): When `do_not_fold' is set, do not attempt
16064         any treatment on the converted node an simply return a NOP_EXPR of
16065         the targeted type.
16066         * xref.c (xref_get_data): New function, defined.
16067         * xref.h (xref_get_data): New function, declared.
16068         (XREF_GET_DATA): Use xref_get_data.
16069
16070 1999-05-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16071
16072         * gjavah.c (print_include): Cast the result of `strlen' to int
16073         when comparing against a signed value.
16074         (add_namelet): Likewise.
16075
16076 1999-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16077
16078         * expr.c (expand_invoke): Mark parameter `nargs' with
16079         ATTRIBUTE_UNUSED.
16080         (PRE_LOOKUP_SWITCH): Likewise for variable `match'.
16081
16082         * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with
16083         ATTRIBUTE_UNUSED.
16084
16085         * jcf-reader.c (get_attribute): Cast a value to long
16086         when comparing against a signed expression.  Likewise.
16087
16088         * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or
16089         HOST_BITS_PER_CHAR.
16090
16091 1999-05-11  Andrew Haley  <aph@cygnus.com>
16092
16093         * parse.y (source_end_java_method): If the current method contains
16094         any exception handlers, force asynchronous_exceptions: this is
16095         necessary because signal handlers in libjava may throw exceptions.
16096         * decl.c (end_java_method): Ditto.
16097
16098 1999-05-11  Tom Tromey  <tromey@cygnus.com>
16099
16100         * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x
16101         flags.
16102         * jvspec.c (THREAD_NAME): Removed.
16103         (GC_NAME): Likewise.
16104         (MATHLIB): Likewise.
16105         (WITHLIBC): Likewise.
16106         (GCLIB): Likewise.
16107         (THREADLIB): Likewise.
16108         (MATH_LIBRARY): Likewise.
16109         (lang_specific_driver): Don't add `-l' options to command line.
16110         Instead, add a single --specs option.  Recognize `-L' options and
16111         use them to search for spec file.
16112         (find_spec_file): New function.
16113         (SPEC_FILE): New define.
16114
16115 1999-05-11  Dave Brolley  <brolley@cygnus.com>
16116
16117         * lang-options.h: -MD, -MMD, -M and -MM not needed here for
16118         cpplib-enabled build.
16119
16120 1999-05-05  Per Bothner  <bothner@cygnus.com>
16121
16122         * class.c (make_field_value):  DECL_INITIAL may be a string literal;
16123         temporarily zero it while calling rest_of_decl_compilation.
16124
16125         * java-tree.h (string_ptr_type_node):  Add declaration.
16126         * decl.c:  Define and initialize string_ptr_type_node.
16127         * parse.y (patch_string_cst):  Use string_ptr_type_node.
16128
16129         * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P):  Removed.
16130         * parse.y (for_statement):  Now unconditionally exit_block.
16131         (finish_labeled_statement):  No longer exit_block if for-loop.
16132         (patch_loop_statement):  Check harder if the loop is already labeled.
16133
16134         * parse.y (patch_initialized_static_field):  Removed function.
16135         (maybe_generate_clinit):  Removed special handling for interfaces.
16136         (java_complete_expand_methods):  Do a preliminary java_complete_tree
16137         on <clinit> to determine if it can be removed.
16138         (java_complete_expand_method):  Remove special handling for <clinit>.
16139         (java_complete_lhs):  For BLOCK and EXPR_WITH_FILE_LOCATION
16140         optimize if we get back empty_stmt_node.
16141         For MODIFY_EXPR, re-do checking of static initializers.
16142         (fold_constant_for_init):  Don't return immediate if VAR_DECL.
16143         For VAR_DECL, pass correct context.
16144
16145         * verify.c (verify_jvm_instructions):  Better error messages.
16146
16147 1999-05-03  Tom Tromey  <tromey@cygnus.com>
16148
16149         * parse-scan.y (interface_declaration): Call
16150         report_class_declaration for interfaces.
16151
16152 1999-04-30 20:54 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
16153
16154         * Makefile.in: Remove -v from bison command lines.
16155
16156 1999-04-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16157
16158         * check-init.c (check_init): Exclude a case of error when doing
16159         xrefs.
16160         * class.c (layout_class_method): Don't generate the error message
16161         twice when compiling from source.
16162         * lang-options.h: Added `-Wredundant-modifers' and
16163         `-Wunusupported-jdk11' flags and help text.
16164         * lang.c (lang_decode_option): Added support for
16165         `-Wunsupported-jdk11' and `-Wredundant-modifiers'.
16166         flag_static_local_jdk11 and flag_redundant set accordingly.
16167         * lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
16168         * parse.h (EXPR_WFL_ADD_COL): New macro.
16169         (DECL_END_SOURCE_LINE): Likewise.
16170         (DECL_INHERITED_SOURCE_LINE): Likewise.
16171         * parse.y (static_ref_err): New function, prototyped.
16172         (CCB_TK): Now tagged <operator>.
16173         (class_body:): Remember the location of the closing '}' of a class
16174         definition when doing xrefs.
16175         (block:): Likewise.
16176         (block_end:): Likewise.
16177         (create_class): Remember the location of the inherited class
16178         identifier when doing xrefs.
16179         (register_fields): Added test on first operand of `init' before
16180         testing it TREE_CODE.
16181         (method_header): Store the location of the class identifier in the
16182         class decl when doing xrefs.
16183         (finish_method_declaration): Don't combine first/last method line
16184         when doing xref.
16185         (java_check_regular_methods): Warning check on not overriding
16186         methods with default access on other packages move before check on
16187         static methods. Initialization of `aflags' also moved up.
16188         (resolve_expression_name): Call static_ref_err to report the error.
16189         (static_ref_err): New function, implemented.
16190         (resolve_field_access): Returned simplified static field access
16191         when doing xrefs.
16192         (resolve_qualified_expression_name): Check for illegal use of
16193         static fields in a non static context. Call static_ref_err to
16194         report error in various places.
16195         (java_complete_tree): Do not fold initialized static fields when
16196         doing xrefs.
16197         (java_complete_lhs): Likewise.
16198
16199 1999-04-29  Anthony Green  <green@cygnus.com>
16200
16201         * expr.c (generate_name): Use ASM_GENERATE_INTERNAL_LABEL to
16202         create internal labels.
16203         (lookup_label): Ditto.
16204
16205 1999-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16206
16207         * class.c (layout_class_method): Generate <clinit>'s rtl for
16208         interfaces.
16209         * decl.c (complete_start_java_method): Don't call _Jv_InitClass
16210         for interfaces' <clinit>.
16211         * expr.c (lookup_field): Search for fields in interfaces.
16212         (expand_invoke): Fixed indentation.
16213         (expand_java_field_op): Likewise. Use IS_CLINIT.
16214         * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed.
16215         (IS_CLINIT): New macro.
16216         * parse.y (type_declaration:): Call maybe_generate_clinit after an
16217         interface was parsed.
16218         (maybe_generate_clinit): Don't generate if the current class is an
16219         interface with only fields of primitive types.
16220         (reset_method_name): Use IS_CLINIT.
16221         (java_complete_expand_method): Expand <clinit> when it exists for
16222         interfaces. Use IS_CLINIT.
16223         (resolve_expression_name): Use DECL_CONTEXT instead of
16224         current_class to build static field references.
16225         (java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on
16226         ARRAY_REF when doing xreferencing.
16227         (check_final_assignment): Fixed typo in leading comment. Use
16228         IS_CLINIT.
16229         (patch_array_ref): Don't fully expand array references when
16230         xreferencing.
16231         (patch_return): Use IS_CLINIT.
16232         (patch_throw_statement): Likewise.
16233
16234 1999-04-22  Tom Tromey  <tromey@cygnus.com>
16235
16236         * Make-lang.in (JAVA_SRCS): Added check-init.c.
16237
16238 1999-04-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16239
16240         * decl.c (predef_filenames, predef_filenames_size): New globals
16241         (init_decl_processing): predef_filenames and predef_filenames_size
16242         initialized.
16243         * java-tree.h (predef_filenames, predef_filenames_size): Declared
16244         extern.
16245         * jcf-parse.c (predefined_filename_p): New function.
16246         (yyparse): Check that files on the command line are specified only
16247         once and issue a warning otherwise.
16248         * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro.
16249         * parse.y (source_end_java_method): Nullify NOP method bodies, to
16250         avoid a gcc warning with -W -Wall turned on.
16251         (java_expand_classes): Abort if errors were encountered.
16252         (java_complete_lhs): If the cross reference flag is set, wrap
16253         field DECL node around a WFL when resolving expression name.
16254
16255 1999-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16256
16257         * lang.c (lang_decode_option): Fixed returned value when parsing
16258         `-fxref=...' and `-Wall'.
16259         * parse.y (source_end_java_method): Do not generate code when
16260         flag_emit_xref is set.
16261         (resolve_expression_name): Do not build static field access when
16262         flag_emit_xref is set.
16263         (resolve_field_access): No special treatment on `length' when
16264         flag_emit_xref is set. Do not build qualified static field access
16265         when flag_emit_xref is set.
16266         (patch_invoke): Keep the method DECL as operand 0 of the CALL_EXPR
16267         when flag_emit_xref is set.
16268         (patch_assignment): Do not generate array store runtime check when
16269         flag_emit_xref is set.
16270         * xref.c (xref_flag_value): Fixed function declaration
16271         indentation.
16272         (xset_set_data): New function.
16273         * xref.h (xref_set_data): Added prototype for new function.
16274         (typedef struct xref_flag_table): New field data.
16275         (XREF_GET_DATA): New macro.
16276
16277 1999-04-19  Tom Tromey  <tromey@cygnus.com>
16278
16279         * xref.h (enum): Removed trailing comma.
16280
16281         * parse.y (resolve_qualified_expression_name): Added missing
16282         `break'.
16283
16284 1999-04-15  Anthony Green  <green@cygnus.com>
16285
16286         * gjavah.c: New prototypes for java_float_finite and
16287         java_double_finite.
16288
16289 1999-04-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16290
16291         * parse.y (patch_unaryop): Fixed ++/-- operator check on array
16292         references.
16293
16294 1999-04-06  Jeffrey A Law  (law@cygnus.com)
16295
16296         * Makefile.in (TREE_H): Add tree-check.h.
16297         (RTL_H): Add genrtl.h.
16298
16299 1999-04-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16300
16301         * parse.y (patch_assignment): Added ArrayStoreException runtime
16302         check.
16303
16304 1999-04-06  Per Bothner  <bothner@cygnus.com>
16305
16306         * expr.c (pop_type_0):  New function.
16307         (pop_type):  Use pop_type_0.
16308         * java-tree.h (pop_type_0):  New declaration.
16309         * verify.c (verify_jvm_instructions):  Check return instructions.
16310
16311         * parse.y (patch_binop):  Don't fold if non-constant and emiting
16312         class files.
16313
16314 1999-04-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16315
16316         * Makefile.in (gjavah.o): Depend on $(JAVA_TREE_H).
16317
16318         * gjavah.c: Include math.h earlier.  Include tree.h/java-tree.h.
16319         (main_jcf): Don't define.
16320         (process_file): Don't set `main_jcf'.
16321
16322         * java-tree.h (main_jcf): Don't declare.
16323
16324         * jcf-parse.c (main_jcf): Add static definition.
16325
16326         * lang.c (main_jcf): Don't define.
16327
16328 1999-04-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16329
16330         * class.c (add_method_1): Cast the argument of `bzero' to PTR.
16331
16332         * decl.c (copy_lang_decl): Likewise for `bcopy'.
16333
16334         * jcf-depend.c: Include "config.h", not <config.h>.
16335
16336         * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
16337         `bcopy' to PTR.
16338
16339         * jcf-path.c: Include "config.h", not <config.h>.
16340
16341         * lex.c: Don't include various system header files.
16342         (java_init_lex): Cast the argument of `bzero' to PTR
16343
16344         * parse-scan.y (java_push_parser_context): Likewise.
16345
16346         * parse.y (java_push_parser_context): Likewise.
16347         (patch_bc_statement): Match format specifier to variable argument.
16348
16349         * xref.c: Don't include <stdio.h>.
16350
16351 1999-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16352
16353         * parse.y (struct parser_ctxt *ctxp): Now global.
16354         (declare_local_variables): Use WFL compound value for the
16355         declaration source line value, when doing cross-referencing.
16356
16357 1999-03-31  Tom Tromey  <tromey@cygnus.com>
16358
16359         * gjavah.c (print_field_info): Allow constants of other types.
16360         (print_include): Generate include when new name is proper prefix
16361         of already printed name.
16362         (add_namelet): Likewise.
16363         (cxx_keyword_subst): New function.
16364         (print_method_info): Use it.
16365         (print_field_name): New function.
16366         (get_field_name): New function.
16367         (print_field_info): Use get_field_name and print_field_name.
16368
16369 1999-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16370
16371         * Makefile.in (keyword.h): Generate using gperf language 'C', not
16372         'KR-C', so gperf uses the `const' keyword on strings.
16373
16374         * keyword.gperf (java_keyword): Const-ify a char*.
16375
16376 1999-03-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16377
16378         * parse.y (patch_bc_statement): Fixed identation and a bogus
16379         `printf' format.
16380
16381 1999-03-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16382
16383         * parse.y (patch_assignment): Allow static variables in other
16384         classes to be assigned.
16385
16386 1999-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16387
16388         * class.c (maybe_add_interface): Remove unused variable
16389         `interface_binfo'.
16390         (make_class_data): Use = for assignment, not ==.  Likewise.
16391         (emit_register_classes): Remove unused variable `decl'.
16392
16393         * lex.c: Fix comment so as not to contain an embedded `/*'.
16394
16395         * verify.c (verify_jvm_instructions): Remove unused variable
16396         `self_type'.
16397
16398 1999-03-27  Per Bothner  <bothner@cygnus.com>
16399
16400         * parse.y (complete_loop_body):  Rename to finish_loop_body.
16401         (complete_labeled_statement):  Rename to finish_labeled_statement.
16402         (complete_for_loop):  Rename to finish_for_loop.
16403         (complete_method_declaration):  Rename to finish_method_declaration.
16404
16405         * java-tree.h (continue_identifier_node):  New global node.
16406         * decl.c:  Define and initialize continue_identifier_node.
16407         * parse.y (generate_labeled_block):  Remove - no longer needed.
16408         (build_loop_body):  Use continue_identifier_node for continue block.
16409         (finish_labeled_statement):  Also do pop_labeled_block actions.
16410         (java_complete_lhs):  POP_LOOP even if error.
16411         (build_labeled_block):  Special handling for continue_identifier_node.
16412         (patch_loop_statement):  Re-organize.
16413         (patch_bc_statement):  Re-write.
16414
16415 1999-03-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16416
16417         * parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count
16418         using a WFL compound value.
16419         * parse.y (xref.h): Include.
16420         (maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the
16421         WFL compound value.
16422         (register_fields): Set WFL compound value to lineno if doing
16423         xrefs.
16424         (java_complete_expand_method): Call expand_xref if flag_emit_xref
16425         is set.
16426         * xref.c (system.h, jcf.h, parse.h, obstack.h): Include.
16427         * xref.h (expand_xref): Prototype renamed from xref_generate.
16428
16429 1999-03-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16430
16431         * parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK.
16432         (GET_CURRENT_BLOCK): New macro.
16433         * parse.y (current_static_block): New global variable.
16434         (method_body:): Define action.
16435         (complete_method_declaration): Set current_function_decl to NULL
16436         when work on the current method is done.
16437         (declare_local_variables): Use GET_CURRENT_BLOCK.
16438         (java_method_add_stmt): Likewise.
16439         (java_complete_expand_method): Disable the use of `this' when
16440         expanding <clinit>.
16441         (enter_a_block): If no current method exist, use
16442         current_static_block to link static initializer blocks.
16443         (exit_block): Rewritten to use current_static_block when no current
16444         method decl exists.
16445         (lookup_name_in_blocks): Use GET_CURRENT_BLOCK.
16446         (patch_return): Forbid the use of `return' in static initializers.
16447         (patch_throw_statement): Fixed indentation. Issue specific error
16448         for uncaught thrown checked exception in static initializer
16449         blocks. Removed FIXME.
16450
16451 1999-03-25  Zack Weinberg  <zack@rabi.columbia.edu>
16452
16453         * java/Make-lang.in: Remove all references to gcj.o/gcj.c.
16454         Link gcj from gcc.o.
16455
16456 1999-03-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16457
16458         * parse.y (find_applicable_accessible_methods_list): When dealing
16459         with interface: ensure that a given interface or java.lang.Object
16460         are searched only once.
16461
16462 1999-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16463
16464         * gjavah.c (print_c_decl): Remove unused argument `flags'.
16465
16466         * jcf-dump.c (print_access_flags): Add braces around if-else.
16467
16468         * jvspec.c (lang_specific_driver): Wrap variable `len' in macro
16469         COMBINE_INPUTS.
16470
16471         * lex.c (build_wfl_node): Add static prototype.
16472
16473         * lex.h (build_wfl_node): Remove static prototype.
16474
16475         * parse.y: Include lex.c early enough to declare everything needed.
16476         Ensure calls to `build_wfl_node' pass the proper arguments.
16477         (create_class): Remove unused variable `super_decl'.
16478         (get_printable_method_name): Initialize variable `name'.
16479
16480 1999-03-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16481
16482         * Changelog: Fixed 1999-03-22 typos.
16483         * lang.c (lang_decode_option): Fixed typo in error string in the
16484         XARG section.
16485
16486 1999-03-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16487
16488         * Makefile.in (JAVA_OBJS): Added entry xref.o.
16489         (xref.o): New rule.
16490         * java-tree.h (flag_emit_xref): Declared extern.
16491         * lang.c (xref.h): Included.
16492         (flag_emit_xref): New global variable.
16493         (lang_decode_option): Added support for -fxref.
16494         * xref.c: Created.
16495         * xref.h: Likewise.
16496
16497 1999-03-21  Manfred Hollstein  <manfred@s-direktnet.de>
16498
16499         * Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be
16500         linked with.
16501
16502 1999-03-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16503
16504         * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
16505         $(srcdir)/../system.h and $(JAVA_TREE_H).
16506         (jcf-io.o): Depend on $(JAVA_TREE_H).
16507         (mangle.o): Likewise.
16508
16509         * check-init.c (check_cond_init): Add static prototype.
16510
16511         * class.c (build_java_method_type, hashUtf8String,
16512         make_field_value, get_dispatch_vector, get_dispatch_table,
16513         append_gpp_mangled_type, mangle_static_field): Likewise.
16514         (strLengthUtf8): Hide unused definition.
16515         (hashUtf8String): Const-ify.
16516         (make_field_value): Un-ANSI-fy.
16517
16518         * constants.c: Move inclusion of jcf.h above java-tree.h.
16519         (set_constant_entry, find_class_or_string_constant,
16520         find_name_and_type_constant, get_tag_node,
16521         build_constant_data_ref): Add static prototype.
16522
16523         * decl.c (push_jvm_slot, builtin_function,
16524         lookup_name_current_level): Likewise.
16525         (builtin_function): Const-ify.
16526
16527         * except.c (expand_start_java_handler, expand_end_java_handler):
16528         Add static prototype.
16529
16530         * expr.c (flush_quick_stack, push_value, pop_value,
16531         java_stack_swap, java_stack_dup, build_java_athrow,
16532         build_java_jsr, build_java_ret, expand_java_multianewarray,
16533         expand_java_arraystore, expand_java_arrayload,
16534         expand_java_array_length, build_java_monitor, expand_java_pushc,
16535         expand_java_return, expand_java_NEW, expand_java_INSTANCEOF,
16536         expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label,
16537         expand_compare, expand_test, expand_cond, expand_java_goto,
16538         expand_java_call, expand_java_ret, pop_arguments, expand_invoke,
16539         expand_java_field_op, java_push_constant_from_pool): Likewise.
16540
16541         (decode_newarray_type, expand_iinc): Un-ANSI-fy.
16542         (build_java_arraynull_check): Mark parameters `node' and `type'
16543         with ATTRIBUTE_UNUSED.
16544         (note_label): Likewise for parameter `current_pc'.
16545         (expand_java_call, expand_java_ret): Hide unused definition.
16546
16547         * java-tree.h (make_class, build_constants_constructor,
16548         java_set_exception_lang_code, pop_labeled_block, emit_handlers,
16549         init_outgoing_cpool, register_class, emit_register_classes,
16550         java_layout_seen_class_methods): Prototype.
16551         (unicode_mangling_length): Const-ify.
16552         (append_gpp_mangled_name, append_gpp_mangled_classtype,
16553         emit_unicode_mangled_name, format_int, format_uint,
16554         jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
16555         jcf_print_utf8_replace, open_class): Prototype.
16556
16557         * jcf-dump.c: Include "config.h", not <config.h>.  Don't include
16558         <stdio.h>.  Include tree.h/java-tree.h.
16559         (utf8_equal_string usage, process_class): Add static prototype.
16560         (open_class): Don't prototype this here.
16561         (utf8_equal_string): Match arguments to format specifiers.
16562         (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
16563         TABLE_SWITCH, disassemble_method): Likewise.
16564
16565         * jcf-io.c: Include tree.h/java-tree.h.
16566         (open_class, find_classfile, jcf_print_utf8,
16567         jcf_print_utf8_replace): Const-ify.
16568
16569         * jcf-parse.c (parse_zip_file_entries, process_zip_dir,
16570         parse_class_file): Add static prototype.
16571         (find_in_current_zip): Match definition to existing static
16572         prototype.
16573
16574         * jcf-write.c: Include jcf.h before tree.h/java-tree.h.
16575         (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label,
16576         finish_jcf_block, define_jcf_label, get_jcf_label_here,
16577         put_linenumber, localvar_alloc, localvar_free, get_access_flags,
16578         write_chunks, adjust_typed_op, generate_bytecode_conditional,
16579         generate_bytecode_return, perform_relocations, init_jcf_state,
16580         init_jcf_method, release_jcf_state, generate_classfile):
16581         Add static prototype.
16582         (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED.
16583         (make_class_file_name): Const-ify.
16584
16585         * jcf.h (find_classfile): Const-ify.
16586
16587         * jv-scan.c (reset_report): Remove prototype.
16588
16589         * jvgenmain.c: Include jcf.h/tree.h/java-tree.h.
16590         (error): Rewrite to allow varargs.
16591
16592         * lang.c (lang_f_options): Const-ify.
16593
16594         * lex.c (java_parse_escape_sequence): Add static prototype.
16595         (java_allocate_new_line): Match definition to existing static
16596         prototype.
16597
16598         * mangle.c Include tree.h/java-tree.h.
16599         (unicode_mangling_length, emit_unicode_mangled_name,
16600         append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
16601
16602         * parse.h (jdep_code): Remove trailing comma in enumeration.
16603         (java_get_line_col): Move prototype outside of !JC1_LITE test.
16604         (reset_report): Add prototype.
16605
16606         * verify.c (push_pending_label, merge_types): Add static
16607         prototypes.
16608
16609         * zipfile.h (opendir_in_zip, open_in_zip): Prototype.
16610
16611 1999-03-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16612
16613         * parse.y (find_applicable_accessible_methods_list): Extend the
16614         search to superinterfaces when relevant.
16615         (search_applicable_methods_list): New function.
16616
16617 1999-03-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16618
16619         * class.c (unmangle_classname): Implemented stricter testing
16620         before setting the QUALIFIED_P flag on an identifier.
16621
16622 1999-03-16  Per Bothner  <bothner@cygnus.com>
16623
16624         * parse.y (java_complete_lhs):  Call force_evaluation_order
16625         after patch_newarray.
16626         (patch_binop):  Don't call fold if there are side effects.
16627
16628 1999-03-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16629
16630         * parse.y (java_stabilize_reference): Use save_expr instead of
16631         building a SAVE_EXPR node.
16632         (java_complete_lhs): Patch the resulting string of the `+='
16633         operator (if necessary) and complete the RHS after having built
16634         the cast.
16635
16636 1999-03-15  Per Bothner  <bothner@cygnus.com>
16637
16638         * class.c (make_class):  Don't set CLASS_P here (because
16639         this function is also called by build_java_array_type).
16640         (push_class):  Set CLASS_P here instead.
16641         * parse.h (TYPE_CLASS_P):  Check for TYPE_ARRAY_P is redundant.
16642
16643         * jcf-dump.c (print_access_flags):  Take extra parameter to indicate
16644         context.  If the context is class, perfer "super" over "synchronized".
16645         * jcf-write.c (generate_classfile):  Don't add ACC_SUPER if interface.
16646
16647         * parse.y (create_class):  Don't call parser_check_super here;
16648         it is not robust.  Always wait until later.
16649
16650         * parse.y (method_header):  For interfaces, set ACC_ABSTRACT (to
16651         match what JDK 1.2 does), but don't set ACC_PUBLIC.
16652
16653 1999-03-13  Per Bothner  <bothner@cygnus.com>
16654
16655         * lex.c (java_read_char):  UNGET invalid non-initial utf8 character.
16656         * lex.h (UNGETC):  Change misleading macro.
16657
16658 1999-03-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16659
16660         * parse.y (java_stabilize_reference): Return NODE when patching a
16661         COMPOUND_EXPR.
16662         (java_complete_lhs): Put parenthesis around truth values.
16663
16664 1999-03-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16665
16666         * class.c (layout_class_method): Don't make rtl for interface
16667         methods.
16668         * parse.h (GET_TYPE_NAME): New macro.
16669         * parse.y (if_then_statement:): Fixed indentation.
16670         (if_then_else_statement:): Likewise.
16671         (for_statement:): Fixed spacing.
16672         (try_statement:): Fixed indentation.
16673         (create_interface): Don't force interfaces to be abstract.
16674         (method_header): Abstract methods are OK in interfaces.
16675         (declare_local_variables): Fixed typo in comment.
16676         (java_complete_expand_method): Fixed indentation.
16677         (resolve_qualified_expression_name): Use GET_TYPE_NAME to report
16678         non accessible fields.
16679         (java_stabilize_reference): New function.
16680         (java_complete_lhs): Fixed indentation. Use
16681         java_stabilize_reference in compound assignment. Insert the
16682         cast. If not processing `+' fix string constants before processing
16683         binop.
16684
16685 1999-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16686
16687         * constants.c (find_class_or_string_constant): Cast variable `j'
16688         to a `jword' when comparing against one.
16689
16690         * expr.c (java_lang_expand_expr): Remove unused variables
16691         `has_finally_p' and `op0'.
16692
16693         * gjavah.c (print_field_info): Cast a value to jint when comparing
16694         against one.  Likewise for a jlong.
16695         (add_namelet): Likewise cast a `sizeof' to an int when comparing
16696         against a signed quantity.
16697
16698         * jcf-dump.c (print_signature_type): Remove unused variable `digit'.
16699         (print_signature): Don't needlessly dereference variable `str'
16700
16701         * jcf-reader.c (get_attribute): Mark variables `max_stack' and
16702         `max_locals' with ATTRIBUTE_UNUSED.
16703         (jcf_parse_class): Likewise for variable `index'.
16704
16705         * parse.h (reverse_jdep_list): Remove static prototype.
16706
16707         * parse.y (build_jump_to_finally): Remove prototype and definition.
16708         (reverse_jdep_list): Add static prototype.
16709
16710         * typeck.c (convert_ieee_real_to_integer): Remove unused variables
16711         `assignment' and `expr_decl'.
16712
16713         * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'.
16714
16715 1999-03-12  Andrew Haley  <aph@cygnus.com>
16716
16717         * jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes;
16718         we'll need a directory separator and a null character.
16719
16720 1999-03-10  Per Bothner  <bothner@cygnus.com>
16721
16722         * jcf-write.c (generate_bytecode_insns):  Handle __builtin_fmod, for %.
16723
16724 Tue Mar  9 11:52:08 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16725
16726         * parse.y (method_header): Don't set ACC_ABSTRACT flags on
16727         interfaces.
16728
16729 1999-03-05  Per Bothner  <bothner@cygnus.com>
16730
16731         * lex.c (java_parse_end_comment):  Take extra parameter (next char).
16732
16733         * class.c (build_utf8_ref):  Fix possible name class/ambiguity.
16734
16735         * class.c (layout_class_method):  A static method in a base class
16736         is never overridden, so treat it like it doesn't exist.
16737         However, do complain about private non-static method overriding
16738         public static method.
16739
16740         * parse.y:  Don't set unused INITIALIZED_P flag.
16741         * java-tree.h (INITIALIZED_P):  Removed no-longer needed flag.
16742
16743         * parse.y (find_expr_with_wfl):  Optimize tail-calls.
16744         (build_array_from_name):  Re-order &index[string] to &string[index].
16745
16746         * parse.y (java_complete_lhs):  Don't call patch_assignment if rhs is
16747         error_mark (it might catch more errors, but it is more likely to lose).
16748
16749 1999-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16750
16751         * Makefile.in (jcf-parse.o): Depend on $(PARSE_H).
16752         (parse-scan.o): Depend on toplev.h.
16753
16754         * class.c (make_method_value): Add prototype.  Make it static.
16755         Remove unused second argument, caller changed.
16756
16757         * expr.c (java_lang_expand_expr): Remove unused variable
16758         `return_label'.
16759
16760         * java-tree.h: Don't prototype find_in_current_zip.
16761         Add prototypes for verify_constant_pool, start_java_method,
16762         end_java_method, give_name_to_locals, expand_byte_code,
16763         open_in_zip, set_constant_value, find_constant1, find_constant2,
16764         find_utf8_constant, find_string_constant, find_class_constant,
16765         find_fieldref_index, find_methodref_index, write_constant_pool,
16766         count_constant_pool_bytes and encode_newarray_type.
16767
16768         * jcf-dump.c: Remove unused variable `LONG_temp'.
16769
16770         * jcf-parse.c: Include parse.h.
16771         (jcf_parse_source): Remove unused parameter, all callers changed.
16772         (jcf_figure_file_type): Add static prototype.
16773         (find_in_current_zip): Likewise.  Also remove unused parameter,
16774         all callers changed.
16775         (read_class): Initialize variable `saved_pos'.
16776
16777         * jcf-reader.c (jcf_parse_preamble): Mark variables
16778         `minor_version' and `major_version' with ATTRIBUTE_UNUSED.
16779
16780         * lex.c (java_is_eol): Wrap prototype and definition in !JC1_LITE.
16781         (java_init_lex): Wrap variable `java_lang_imported' in !JC1_LITE.
16782         (java_parse_doc_section): Initialize variable `seen_star'.
16783         (java_lex): Wrap variable `number_beginning' in !JC1_LITE.
16784         (java_lex_error): Mark parameters `msg' and `forward' with
16785         ATTRIBUTE_UNUSED.
16786         (java_get_line_col): Mark parameters `filename' and `line' with
16787         ATTRIBUTE_UNUSED.
16788
16789         * parse-scan.y: Include toplev.h.
16790         (yyerror): Mark parameter `msg' with ATTRIBUTE_UNUSED.
16791
16792         * parse.h: use `struct JCF', not plain `JCF'.
16793         (java_parser_context_save_global, java_expand_classes
16794         java_parser_context_restore_global, java_parse): Add prototypes.
16795
16796         * typeck.c (convert_ieee_real_to_integer): Remove unused variable
16797         `node'.
16798
16799 1999-02-24  Per Bothner  <bothner@deneb.cygnus.com>
16800
16801         *  check-init.c (check_init):  COPYN takes word count, not bit count.
16802
16803 1999-02-26  Per Bothner  <bothner@cygnus.com>
16804
16805         * typeck.c (convert_ieee_real_to_integer):  Use save_expr instead of
16806         explicit build_decl.  (Avoids crash in reload when optimizing.)
16807
16808 1999-02-25  Per Bothner  <bothner@cygnus.com>
16809
16810         * decl.c (complete_start_java_method):  Handle synchronized method
16811         even when compiling from bytecode.
16812
16813 1999-02-26  Tom Tromey  <tromey@cygnus.com>
16814
16815         * gjavah.c (add_class_decl): Only generate `#include' if outer
16816         class is not the name of the class we are processing.  Correctly
16817         append `.h' in #include.
16818         (process_file): Clean up newlines around generated `#include's.
16819         (decode_signature_piece): Correctly handle inner classes.
16820         (struct include): New structure.
16821         (all_includes): New global.
16822         (print_include): New function.
16823         (add_class_decl): Use it.
16824         (process_file): Likewise.
16825         (add_class_decl): Generate include for java-array.h if array
16826         seen.
16827         (process_file): Don't generate java-array.h include.
16828
16829         * gjavah.c (add_namelet): Check for standard package names here.
16830         (add_class_decl): Don't check for standard package names here.
16831
16832 1999-02-25  Tom Tromey  <tromey@cygnus.com>
16833
16834         * parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
16835         When reading a zip file, only use strncmp if both strings are
16836         bigger than the buffer length.  Initialize `k' when looping
16837         through zip file.
16838
16839 1999-02-24  Tom Tromey  <tromey@cygnus.com>
16840
16841         * gjavah.c (struct namelet): New structure.
16842         (add_namelet): New function.
16843         (print_namelet): New function.
16844         (print_class_decls): Use add_namelet and print_namelet to generate
16845         namespaces and not classes.
16846         (method_printed): New global.
16847         (HANDLE_END_METHOD): Examine method_printed.
16848         (print_method_info): Set method_printed when required.  Print
16849         error if function to be ignored is marked virtual.  Handle $finit$
16850         method.
16851         (METHOD_IS_FINAL): New macro.
16852         (print_field_info): Use it.
16853         (HANDLE_METHOD): Clear method_printed.
16854         (method_pass): New global.
16855         (HANDLE_END_FIELD): Call add_class_decl on the first pass.
16856         (process_file): Do two passes over both fields and methods.
16857         (HANDLE_METHOD): Examine method_pass.
16858         (root): New global.
16859         (add_class_decl): New function.
16860         (print_class_decls): Don't scan over entire constant pool.
16861
16862 1999-02-23  Tom Tromey  <tromey@cygnus.com>
16863
16864         * jvspec.c (lang_specific_driver): Recognize -fsyntax-only and
16865         disable linking in that case.
16866
16867 1999-02-20  Tom Tromey  <tromey@cygnus.com>
16868
16869         * jcf.h (UTF8_GET): Mask first byte of 3-byte encoding with 0x0f,
16870         not 0x1f.
16871
16872 1999-02-21  Per Bothner  <bothner@cygnus.com>
16873
16874         * decl.c (build_result_decl), java-tree.h:  New method.
16875         (complete_start_java_method):  Handle synchronized methods.
16876         Don't build DECL_RESULT here.  (Ordering dependency problem.)
16877         (start_java_method):  Call build_result_decl here instead  ...
16878         * parse.y (java_complete_expand_method):  ... and here.
16879         (expand_start_java_method): Don't call complete_start_java_method here.
16880         (java_complete_expand_method):  Call it here instead.
16881         * parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT):  Moved to ..
16882         * java-tree.h:  ... here.
16883
16884         * expr.c (force_evaluation_order):  Fix typo, don't handle ARRAY_REF.
16885         * parse.y (java_complete_lhs):  Don't call force_evaluation_order
16886         for ARRAY_REF - it doesn't work when array bounds are checked.
16887         (patch_array_ref):  Handle it here instead.
16888
16889         * jcf-write.c (generate_classfile):  Emit "Exceptions" attribute.
16890
16891 1999-02-19  Per Bothner  <bothner@cygnus.com>
16892
16893         Force left-to-right evaluation of binary operations etc.
16894         * expr.c (force_evaluation_order), java-tree.h:  New function.
16895         * parse.y (java_complete_lhs):  Pass binary operations, procedure
16896         calls, and ARRAY_REFs to force_evaluation_order.
16897         (various):  Set TREE_SIDE_EFFECTS more carefully.
16898
16899         Tolerate random (non-UTF8) encoding in comments without complaining.
16900         * lex.c (java_read_char):  Return 0xFFFE if bad UTF8 encoding.
16901         (java_is_eol):  Handle '\r' followed by '\n' instead of vice versa.
16902
16903         * parse.y (resolve_qualified_expression_name):  Handle error_mark.
16904         (java_complete_node case EXPR_WITH_FILE_LOCATION):  Likewise.
16905
16906         * parse.y (java_complete_lhs):  Ignore an empty statement in a
16907         COMPOUND_EXPR.  Don't complain about empty statement after return.
16908
16909 1999-02-19  Per Bothner  <bothner@cygnus.com>
16910
16911         * parse.y (obtain_incomplete_type):  Don't wrap unknown types
16912         in TREE_LIST - just chain the POINTER_TYPEs together.
16913         (resolve_class):  If type already resolved, return decl.
16914         After resolving, update TREE_TYPE(class_type), and name (if array).
16915         * parse.h (do_resolve_class), parse.y:  Make non-static.
16916         * class.c (maybe_layout_super_class):  Take this_class argument.
16917         Do do_resolve_class if necessary.
16918         (layout_class, layout_class_methods): Adjust calls appropriately.
16919         * parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
16920         JDEP_RESOLVED_P):  Redefined for new TREE_LIST-less convention.
16921         * typeck.c (build_java_array_type):  Don't call layout_class.
16922
16923 1999-02-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16924
16925         * parse.y (check_pkg_class_access): Allow private class access
16926         within the same package.
16927         (strip_out_static_field_access_decl): New function.
16928         (patch_unaryop): Call strip_out_static_field_access_decl on ++/--
16929         operator argument before testing its nature.
16930
16931 1999-02-03  Per Bothner  <bothner@cygnus.com>
16932
16933         * java-tree.def (FINALLY_EXPR):  Removed.  (Now uses TRY_FINALLY_EXPR.)
16934         (TRY_EXPR):  Simplify - it no longer has a finally clause.
16935         * check-init.c (check_init):  Handle TRY_FINALLY_EXPR.
16936         Simpler handling of TRY_EXPR, which no longer has a finally clause.
16937         * expr.c (java_lang_expand_expr):  Likewise.
16938         * java-tree.h (CATCH_EXPR_GET_EXPR):  Removed - no longer needed.
16939         * parse.h (java_get_catch_block), parse.y:  Removed - no longer needed.
16940         * parse.y (java_complete_lhs):  Add support for TRY_FIANLLY_EXPR.
16941         (build_try_statement):  Remove finally parameter and handling.
16942         (build_try_finally_statement):  New function.
16943         (patch_try_statement):   No longer need to support finally clause.
16944         (try_statement):  Update grammar action rules.
16945         * jcf-write.c (generate_bytecode_insns):  Handle TRY_FINALLY_EXPR.
16946         Simpler handling of TRY_EXPR, which no longer has a finally clause.
16947
16948 1998-11-26  Andrew Haley  <aph@viagra.cygnus.co.uk>
16949
16950         * jcf-parse.c (get_constant): Add braces around computation of 'd'
16951         when REAL_ARITHMETIC is not defined.  [Oct 26 fix got overwritten -PB]
16952
16953 1999-02-17  Andrew Haley  <aph@cygnus.com>
16954
16955         * class.c (build_utf8_ref): Back out broken patch which was
16956         intended to to output signatures using '.' as a separator.
16957
16958         * class.c (make_class_data): Output signatures using '.' as a
16959         separator, rather than '/'.
16960         (mangled_classname): Likewise.
16961         (make_field_value): Likewise.
16962         (make_method_value): Likewise.
16963         * constants.c (alloc_class_constant): Likewise.
16964         * expr.c (build_invokeinterface): Likewise.
16965
16966 1999-02-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16967
16968         * parse.y (valid_builtin_assignconv_identity_widening_p): Got rid
16969         of an ancient workaround.
16970
16971 1999-02-10  Jeffrey A Law  (law@cygnus.com)
16972
16973         * jvspec.c (xmalloc): Kill the prototype.  It does not belong
16974         here anymore.
16975
16976 1999-02-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16977
16978         * lex.c (yylex): Encode \0 as UTF8.
16979
16980 1999-02-10  Tom Tromey  <tromey@cygnus.com>
16981
16982         * jvspec.c (lang_specific_driver): Use libgcj, not libjava.
16983         * Makefile.in (jcf-path.o): Define LIBGCJ_ZIP_FILE.
16984         (libgcj_zip): Renamed.
16985         * jcf-path.c (add_entry): Use LIBGCJ_ZIP_FILE, not
16986         LIBJAVA_ZIP_FILE.
16987         (jcf_path_init): Use LIBGCJ_ZIP_FILE.
16988
16989         * jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
16990         (GC_NAME): Renamed -lgc to -lgcjgc.
16991
16992 1999-02-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
16993
16994         * lex.c (java_lang_cloneable): Initialize.
16995         * parse.y (java_lang_cloneable): New static variable.
16996         (qualify_ambiguous_name): Take CONVERT_EXPR into account when
16997         doing one more qualification round.
16998         (valid_ref_assignconv_cast_p): Reject null source or
16999         destination. Allow an array to be cast into java.lang.Cloneable.
17000         (patch_cast): Swapped two first arguments to first call to
17001         valid_ref_assignconv_cast_p.
17002
17003 1999-02-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17004
17005         * parse.h: DECL_P renamed JDECL_P.
17006         * parse.y: DECL_P replaced by JDECL_P.
17007         (build_array_from_name): Always use pointer's type.
17008         (patch_bc_statement): Extra code to search continue target in a
17009         for loop. Fixed comments. Continue target is current loop when
17010         unlabeled.
17011
17012 1999-02-05  Andrew Haley  <aph@cygnus.com>
17013
17014         * class.c (make_class_data): The superclass of an interface should
17015         be null, not class Object.
17016
17017         * lex.c (java_lex): Sign extend hex literals.
17018
17019 1999-02-04  Andrew Haley  <aph@cygnus.com>
17020
17021         * class.c (build_utf8_ref): Output signatures using '.' as a
17022         separator, rather than '/'.
17023         (make_class_data): Likewise.
17024
17025 1999-02-03  Marc Espie <Marc.Espie@liafa.jussieu.fr>
17026
17027         * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
17028         mkstemp.o.  Get them from libiberty now.
17029
17030 1999-02-02  Jeffrey A Law  (law@cygnus.com)
17031
17032         * jcf-io.c: Do not include sys/stat.h or sys/wait.h
17033
17034 1999-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17035
17036         * jvspec.c (xmalloc): Fix the prototype to match the one obtained
17037         from libiberty.h
17038
17039 1999-02-02  Per Bothner  <bothner@cygnus.com>
17040
17041         Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'.
17042         * jcf-write.c (generate_bytecode_return):  New function.
17043         (generate_bytecode_insns):  Use it, for RETURN_EXPR.
17044
17045         * jcf-write.c (generate_bytecode_insns):  For REAL_CST that is 0 or 1,
17046         generate special [fd]const_[01] instructions.
17047
17048         * jcf-parse.c (yyparse):  Don't emit_register_classes if -fsyntax-only.
17049
17050         * verify.c (verify_jvm_instructions):  Do INVALIDATE_PC after
17051         handling OPCODE_lookupswitch or OPCODE_tableswitch.
17052
17053 1999-02-01  Per Bothner  <bothner@cygnus.com>
17054
17055         * parse.y (patch_method_invocation):  Handle calling static methods,
17056         even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS).
17057
17058         * parse.y (java_complete_lhs):  Don't complain about unreachable
17059         exit condition in a do-while statement.
17060
17061 1999-01-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17062
17063         * lex.c (java_read_char): Fixed utf8 decoding.
17064         (java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
17065         range.
17066         * parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
17067         comments. Local variable `all_primitive' is gone. Broadened
17068         acceptance of `0' to floating point targets. `long' can now be
17069         widened to `double' or `float'.
17070         (valid_method_invocation_conversion_p): Added leading
17071         comment. Fixed tabulation.
17072         (build_string_concatenation): Optimize out left or right empty
17073         string constants.
17074
17075 1999-01-28  Per Bothner  <bothner@cygnus.com>
17076
17077         * jcf-write.c (localvar_alloc):  Only emit entry for
17078         LocalVariableTable if debug_info_level > DINFO_LEVEL_TERSE.
17079         (generate_bytecode_insns):  Only call put_linenumber if
17080         debug_info_level > DINFO_LEVEL_NONE.
17081         * jvspec.c (lang_specific_driver):  If no -O* or -g* option
17082         is specified, add -g1 (for compatibility wih javac).
17083
17084 1999-01-28  Hans-Peter Nilsson  <hp@axis.se>
17085
17086         * java/Makefile.in: Add missing dependencies for jcf-dump.o,
17087         gjavah.o, check-init.o, jv-scan.o
17088
17089 1999-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17090
17091         * Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
17092
17093         * gjavah.c: Include config.h and system.h.
17094
17095         * javaop.h (inline): Don't define, its handled by system.h.
17096         (WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these
17097         from `inline' to `static inline'.
17098
17099         * jcf.h (inline): Don't define, its handled by system.h.
17100
17101         * lex.c (inline): Likewise.
17102
17103 1999-01-31  Zack Weinberg  <zack@rabi.columbia.edu>
17104
17105         * lang-specs.h: Map -Qn to -fno-ident.
17106
17107 1999-01-29  Richard Henderson  <rth@cygnus.com>
17108
17109         * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo.
17110
17111 1999-01-29  Tom Tromey  <tromey@cygnus.com>
17112
17113         * parse.h (BUILD_APPEND): If ARG is a non-String object reference,
17114         then cast it to Object before calling `append' method.
17115
17116 1999-01-28  Per Bothner  <bothner@cygnus.com>
17117
17118         * check-init.c (check_bool2_init, check_bool_init, check_init):
17119         Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
17120         * jcf-write.c (generate_bytecode_insns):  Likewise.
17121
17122 1999-01-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17123
17124         * jcf-parse.c (jcf_parse): Don't parse the same class file twice.
17125         * parse.y (patch_cast): Allow a boolean to be cast into a
17126         boolean.
17127
17128 1999-01-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17129
17130         * parse.y: (class_declaration:): Fixed indentation.
17131         (class_member_declaration:): Extra `;' after field declaration now
17132         accepted.
17133         (interface_declaration:): Removed debug messages in error reports.
17134         (patch_binop): Nodes created and returned inherit the orignal
17135         node's COMPOUND_ASSIGN_P flag value.
17136         (patch_cast): Fix cast from char to floating point.
17137
17138 1999-01-25  Andrew Haley  <aph@cygnus.com>
17139
17140         * except.c, java-except.h (expand_resume_after_catch): new
17141         function.
17142         * expr.c (java_lang_expand_expr): call expand_resume_after_catch
17143         to branch back to main flow of control after a catch block.
17144
17145 1999-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17146
17147         * Makefile.in (parse.o): Depend on $(CONFIG_H) and
17148         $(srcdir)/../system.h.
17149         (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
17150         (jcf-parse.o): Depend on $(srcdir)/../toplev.h.
17151         (jcf-write.o): Likewise.
17152         (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17153         (mangle.o): Depend on $(srcdir)/../toplev.h.
17154         (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17155         (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17156
17157         * class.c: Include output.h and parse.h.
17158         (mangled_classname): Add the `const' keyword to a char*.
17159         (find_named_method): Hide unused function definition.
17160         (build_utf8_ref): Change type of variable `c' to unsigned char.
17161         Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
17162         (build_class_ref): Add the `const' keyword to a char*.
17163         (layout_class_method): Remove unused variable `buf'.
17164
17165         * decl.c (find_local_variable): Remove unused variable `rtl'.
17166         (pushdecl): Likewise for variables `different_binding_level' and
17167         `oldglobal'.
17168         (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
17169         (maybe_build_cleanup): Likewise for parameter `decl'.
17170
17171         * except.c (expand_start_java_handler): Mark parameter `range'
17172         with ATTRIBUTE_UNUSED.
17173
17174         * expr.c: Include except.h.
17175         (pop_type): Remove unused variable `i'.
17176         (pop_value): Likewise for variables `n_words' and `i'.
17177         (expand_java_arrayload): Likewise for variable `convert'.
17178         (java_lang_expand_expr): Likewise for variables `op0', `type',
17179         `mode', `unsignedp', `node' and `elements'.
17180         (expand_byte_code): Likewise for variables `prev_eh_ranges' and
17181         `eh_ranges'.
17182         (process_jvm_instruction): Add a `const' qualifier to a char*.
17183
17184         * gjavah.c (output_directory): Add the `const' keyword to a char*.
17185         (temp_directory): Likewise.
17186         (print_c_decl): Likewise.
17187         (print_method_info): Likewise.
17188         (decode_signature_piece): Likewise.
17189         (print_mangled_classname): Likewise.
17190
17191         * java-except.h: Provide prototypes for maybe_start_try,
17192         maybe_end_try and add_handler.
17193
17194         * java-tree.h (mangled_classname): Add the `const' keyword to a char*.
17195         (parse_error_context): Likewise.  Also add ATTRIBUTE_PRINTF_2.
17196         (pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
17197         init_expr_processing, push_super_field, init_class_processing,
17198         can_widen_reference_to, class_depth, verify_jvm_instructions,
17199         maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
17200         set_local_type, merge_type_state, push_type, load_type_state,
17201         add_interface, find_in_current_zip, append_gpp_mangled_classtype,
17202         emit_unicode_mangled_name): Add prototypes.
17203
17204         * jcf-dump.c (print_constant): Add the `const' keyword to a char*.
17205         (print_signature_type): Use ISDIGIT, not isdigit.
17206         (print_signature): Remove unused variable `j'.
17207
17208         * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
17209         int when comparing against one.
17210
17211         * jcf-parse.c: Include toplev.h.
17212
17213         * jcf-write.c: Likewise.  Don't include <string.h> or <sys/stat.h>.
17214         (localvar_free): Remove unused variable `i'.
17215         (generate_bytecode_conditional): Likewise for variable `kind'.
17216
17217         * jv-scan.c: Include config.h and system.h.  Remove redundant
17218         OS header and gansidecl.h includes.
17219         (warning): Add the `const' keyword to a char*.  Also add
17220         ATTRIBUTE_PRINTF_1 to the prototype.  Check ANSI_PROTOTYPES, not
17221         __STDC__, when determining whether to use ANSI-isms.
17222         (fatal): Likewise.  Also add ATTRIBUTE_UNUSED.
17223         (xmalloc): Don't redundantly prototype here.
17224         (main): Remove unused parameter `envp'.  Also fix the arguments
17225         passed to function `fatal' to match the format specifier.
17226
17227         * lang.c (java_tree_code_name): Add the `const' keyword to a char*.
17228
17229         * mangle.c: Include toplev.h.
17230         (emit_unicode_mangled_name): Declare parameter `len'.
17231
17232         * parse.y (parse_warning_context): Add the `const' keyword to a
17233         char*.  Also add ATTRIBUTE_PRINTF_2 to the prototype.  Check
17234         `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
17235         (issue_warning_error_from_context): Add the `const' keyword to
17236         a char*.
17237         (parse_error_context): Likewise.  Also check `ANSI_PROTOTYPES'
17238         not `__STDC__' for whether to use ANSI-isms.
17239
17240         * typeck.c (incomplete_type_error): Mark parameters `value' and
17241         `type' with ATTRIBUTE_UNUSED.
17242         (parse_signature_type): Use ISDIGIT, not isdigit.
17243
17244         * verify.c (check_pending_block): Add the `const' keyword to a char*.
17245         (verify_jvm_instructions): Likewise.  Remove unused variables
17246         `field_name' and `default_val'.
17247
17248         * zextract.c: Include config.h and system.h.  Remove redundant
17249         OS header includes.
17250
17251         * zipfile.h: Prototype `read_zip_archive'.
17252
17253 1999-01-21  Andrew Haley  <aph@cygnus.com>
17254
17255         * typeck.c (convert): Allow conversions to void type: some
17256         optimizations in gcc do this.
17257
17258 1999-01-21  Andrew Haley  <aph@cygnus.com>
17259
17260         * typeck.c (convert_ieee_real_to_integer): New function.
17261         (convert): When not using fast-math and using hardware fp, convert
17262         an IEEE NaN to zero.
17263
17264 1999-01-18  Andrew Haley  <aph@cygnus.com>
17265
17266         * parse.y (patch_binop): Do a type conversion from signed to
17267         unsigned and then back to signed when a ">>>" is found.
17268
17269 1999-01-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17270
17271         * java-tree.h: (check_for_initialization): Added prototype.
17272         * lex.c (java_parse_doc_section): `\n' breaks the `*/' string.
17273         * parse.y (do_resolve_class): Removed unused locals.
17274         (read_import_dir): Likewise.
17275         (resolve_qualified_expression_name): Array creation
17276         expressions are valid primary expressions.
17277         (qualify_ambiguous_name): Likewise.
17278         (patch_synchronized_statement): Removed unused local.
17279
17280 1999-01-17  Jeffrey A Law  (law@cygnus.com)
17281
17282         * Makefile.in (zextract.o): Add dependencies.
17283
17284         * Makefile.in: Do not put ^Ls at the start of a line.
17285
17286 1999-01-15  Per Bothner  <bothner@cygnus.com>
17287
17288         * expr.c (process_jvm_instruction):  Coerce to correct Throwable
17289         sub-type the result of the call that gets the exception value.
17290
17291         * parse.y (java_complete_expand_methods):  If flags_syntax_only,
17292         don't call finish_class.
17293
17294         * parse.y (java_check_regular_methods):  If METHOD_PRIVATE,
17295         clear found before continuing.
17296
17297         * verify.c (verify_jvm_instructions):  On an array load, allow
17298         and handle top of stack to be TYPE_NULL.
17299
17300         * gjavah.c (generate_access):  Translate Java package private or
17301         protected access to C++ public, but with a comment.
17302
17303 1999-01-13  Andrew Haley  <aph@cygnus.com>
17304
17305         * expr.c (generate_name): Name prefix changed to avoid clashes
17306         with assembler temp labels.
17307
17308         * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
17309         MODIFY_EXPR.  Without this, code for the assignment may not be
17310         generated at all and the synchronized statement will read an
17311         uninitialized variable.
17312
17313 1999-01-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17314
17315         * class.c (maybe_layout_super_class): Fixed returned value.
17316         * lex.c: Added 1999 to the copyright.
17317         (java_init_lex): Initialize java_lang_imported.
17318         * lex.h: Added 1999 to the copyright.
17319         * parse.h: Added 1999 to the copyright.
17320         (REGISTER_IMPORT): Fixed typo in trailing macro.
17321         (CURRENT_OSB): New macro.
17322         (struct parser_ctxt): New fields osb_depth, osb_limit.
17323         * parse.y (java_lang_id): New global variable.
17324         (type_import_on_demand_declaration): Don't import java.lang.* twice.
17325         (array_creation_expression:): Use CURRENT_OSB.
17326         (dims:): Uses a stack to keep track of array dimensions.
17327         (cast_expression:): Use CURRENT_OSB.
17328         (find_expr_with_wfl): Return NULL if node found doesn't meet the
17329         conditions.
17330         (register_fields): Fixed typos in comment.
17331         (check_method_redefinition): Fixed comment indentation.
17332         (java_check_regular_methods): Set saved found wfl to NULL after
17333         having reinstalled it in the previously found DECL_NAME.
17334
17335 1999-01-10  Richard Henderson  <rth@cygnus.com>
17336
17337         * gjavah.c (java_float_finite): Use a union to do type punning.
17338         (java_double_finite): Likewise.
17339
17340 1999-01-09  Per Bothner  <bothner@cygnus.com>
17341
17342         * parse.y (build_new_array_init):  Don't set EXPR_WFL_LINECOL
17343         on CONSTRUCTOR (since that trashes TREE_CST_RTL).
17344         (patch_new_array_init):  Clear TREE_CONSTANT also if INDIRECT_REF.
17345         (register_fields):  Set TREE_STATIC on NEW_ARRAY_INIT, not on
17346         CONSTRUCTOR (which causes expand_expr to call output_constant_def).
17347         * expr.c (java_lang_expand_expr):  Check TREE_STATIC of NEW_ARRAY_INIT.
17348
17349 1999-01-08  Per Bothner  <bothner@cygnus.com>
17350
17351         * check-init.c (check_init):  If compiling to native, we don't
17352         see THROW_EXPR.  Instead, look for a call to throw_node (_Jv_Throw).
17353
17354 1999-01-08  Tom Tromey  <tromey@cygnus.com>
17355
17356         * parse-scan.y (variable_declarator_id): Set or increment
17357         bracket_count.
17358         (bracket_count): New global.
17359         (formal_parameter): Handle case where bracket pairs trail variable
17360         declarator id.
17361
17362 1999-01-07  Andrew Haley  <aph@viagra.cygnus.co.uk>
17363
17364         * jcf-parse.c (yyparse): variable len changed from a char to an
17365         int to prevent overflow.
17366
17367 1999-01-06  Per Bothner  <bothner@cygnus.com>
17368
17369         * java-tree.h:  Declare read_class.
17370         * jcf-parse.c (read_class):  New function.
17371         (load_class):  Now just call read_class.
17372
17373         * java-tree.h (java_parse_abort_on_error):  Only return if new errors.
17374         * jcf-parse.c (parse_source_file):  Declare save_error_count,
17375         which is needed by java_parse_abort_on_error macro,
17376         * parse.y (java_layout_classes, java_expand_classes):  Likewise.
17377
17378         * parse.y (register_fields):  Set TREE_STATIC flag of NEW_ARRAY_INIT
17379         constructor, if initializing a static field.
17380         (patch_new_array_init):  Set TREE_CONSTANT if it is.
17381         * expr.c (java_lang_expand_expr):  For a static array constructor
17382         of primitive elements, allocate the array itself statically.
17383         Disabled until we can set the vtable field statically.
17384
17385         * check-init.c:  New file.  Checks for definite assignment.
17386         * Makefile.in (JAVA_OBJS):  Add check-init.o.
17387         * parse.y (java_complete_expand_method): Call check_for_initialization.
17388         * parse.h (BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY):  Moved to java-tree.h.
17389
17390 1999-01-06  Graham <grahams@rcp.co.uk>
17391
17392         * parse.y : include system.h instead of including
17393         standard headers directly with the exception of <dirent.h>.
17394
17395 1999-01-06  Per Bothner  <bothner@cygnus.com>
17396
17397         * lex.h:  Moved static function declarations to lex.c,
17398         to shut up some -Wall warnings.
17399         * lex.c:  Static function declarations moved here.
17400         * jcf-dump.c:  Small fixes to shut up -Wall warnings.
17401
17402 1999-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17403
17404         * Make-lang.in ($(GCJ).o): Depend on prefix.h.
17405
17406 1998-12-22  Per Bothner  <bothner@cygnus.com>
17407
17408         * expr.c (process_jvm_instruction):  Do load_type_state after JSR.
17409         * verify.c (verify_jvm_instructions):  Fix off-by-one error.
17410
17411         * jcf-write.c (CHECK_PUT):  Add (void) cast to avoid -Wall warnings.
17412         (localvar_alloc):  Change return type to void,
17413         (emit_unop):  Remove unused variable size.
17414
17415         * jcf-write.c (struct jcf_block):  Add new union.
17416         (PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC):  New macros.
17417         (call_cleanups):  New functions.
17418         (struct jcf_partial):  New fields num_finalizers and return_value_decl.
17419         (generate_bytecode_insns):  Support CLEANUP_POINT_EXPR and
17420         WITH_CLEANUP_EXPR.  Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
17421         * lang.c (lang_init):  Call using_eh_for_cleanups.
17422         * parse.y (java_complete_lhs):  For SYNCHRONIZED_EXPR, defer
17423         completing operands to patch_synchronized_statement.
17424         Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
17425         (patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
17426         WITH_CLEANUP_EXPR instead of TRY_EXPR.
17427
17428 1998-12-20  John F. Carr  <jfc@mit.edu>
17429
17430         * Make-lang.in: Comment out control-Ls; they upset some makes.
17431
17432 1998-12-18  Tom Tromey  <tromey@cygnus.com>
17433
17434         * parse.y (check_class_interface_creation): Use DIR_SEPARATOR
17435         consistently.
17436
17437 1998-12-17  Tom Tromey  <tromey@cygnus.com>
17438
17439         * parse.y (DIR_SEPARATOR): New define.
17440         (check_class_interface_creation): Use it.
17441
17442         * parse-scan.y (report_main_declaration): Recognize
17443         `java.lang.String' in argument to main.
17444
17445 1998-12-16  Per Bothner  <bothner@cygnus.com>
17446
17447         * parse.y (create_interface):  Remove bogus test.
17448
17449 1998-12-16  Per Bothner  <bothner@cygnus.com>
17450
17451         * jcf-parse.c (get_constant):  Set TREE_TYPE for string constants.
17452         (HANDLE_CONSTANTVALUE):  If flag_emit_class_files, call get_constant.
17453
17454 1998-12-16  Tom Tromey  <tromey@cygnus.com>
17455
17456         * parse-scan.y (qualified_name): Use correct sprintf format.
17457
17458 1998-12-15  Tom Tromey  <tromey@cygnus.com>
17459
17460         * gjavah.c (print_field_info): Changed how most negative number is
17461         printed.
17462
17463 1998-12-14  Per Bothner  <bothner@cygnus.com>
17464
17465         * parse.y (fold_constant_for_init):  New function.
17466         (resolve_expression_name):  Don't replace static final
17467         constant-initialized fields by its value.
17468         (java_complete_lhs):  New.  Same as java_complete_tree, except does
17469         not replace static final constant-initialized fields by their values.
17470         (register_fields):  If there is an initializer, set DECL_INITIAL and
17471         MODIFY_EXPR_FROM_INITIALIZATION_P.
17472         (java_complete_tree):  For MODIFY_EXPR, use java_complete_lhs for lhs.
17473         Only call patch_initialized_static_field if
17474         MODIFY_EXPR_FROM_INITIALIZATION_P.
17475         (patch_initialized_static_field):  If not valid constant, clear
17476         DECL_INITIAL.
17477
17478         * parse.y (lookup_field_wrapper):  Fix thinko.
17479
17480         * parse.y (java_complete_tree):  In EXPR_WITH_FILE_LOCATION,
17481         set and restore global lineno.
17482
17483 1998-12-14  Tom Tromey  <tromey@cygnus.com>
17484
17485         * gjavah.c (print_field_info): If value to print is the smallest
17486         value of its size, then print as hex to avoid later warnings from
17487         C++ compiler.
17488
17489 1998-12-14  Tom Tromey  <tromey@cygnus.com>
17490
17491         * gjavah.c (decompile_method): Decompile `return null'.
17492         (process_file): Generate `#pragma interface'.
17493         (method_declared): New global.
17494         (print_method_info): Set it.
17495         (HANDLE_CODE_ATTRIBUTE): Only print it method_declared set.
17496         (print_method_info): Handle abstract methods.
17497
17498 1998-12-13  Per Bothner  <bothner@cygnus.com>
17499
17500         * parse.y (patch_method_invocation):  If class_decl is null
17501         (e.g. an array type), use original type.
17502
17503         * parse.y (check_thrown_exceptions):  Temporary hack to suppress
17504         errors about uncaught exception from clone (of array, specifically).
17505
17506 1998-12-13  Tom Tromey  <tromey@cygnus.com>
17507
17508         * gjavah.c (decompile_method): Handle all types of `return'
17509         opcode.  Decompile `return this' and `return'.
17510         (method_access): New global.
17511         (print_method_info): Set it.
17512         (decompile_method): Don't decompile a synchronized method.
17513
17514 1998-12-13  Tom Tromey  <tromey@cygnus.com>
17515
17516         * jcf-reader.c (jcf_parse_one_method): Recognize
17517         HANDLE_END_METHOD.
17518         * gjavah.c (HANDLE_END_METHOD): New macro.
17519         (HANDLE_CODE_ATTRIBUTE): New macro.
17520         (decompile_method): New function.
17521         (print_method_info): Don't print `;\n' at end of function decl.
17522         Include java-opcodes.h.
17523         (decompiled): New global.
17524
17525 1998-12-12  Per Bothner  <bothner@cygnus.com>
17526
17527         * class.c (build_class_ref):  Handle PRIMTYPE.class if
17528         flag_emit_class_files.
17529         * expr.c (expand_java_field_op):  Don't optimize java.lang.XXX.TYPE
17530         if flag_emit_class_files.
17531         * parse.y (java_complete_tree):  Pre-liminary support for
17532         COMPONENT_REF - only to handle PRIMCLASS.TYPE.
17533
17534         * parse.y (patch_synchronized_statement):   Don't call monitorexit
17535         unless block CAN_COMPLETE_NORMALLY.  Propagate that flag properly.
17536
17537         * java-tree.h (DECL_LOCAL_STATIC_VALUE):  Removed - no longer used.
17538
17539         * zipfile.h (opendir_in_zip):  New declaration.
17540         * jcf-io.c (saw_java_source):  Moved to jcf-parse.c.
17541         (opendir_in_zip):  New function, using code from open_in_zip.
17542         (open_in_zip):  Call opendir_in_zip.
17543         (find_class):  Remove no-longer-used do_class_file parameter,
17544         but add source_ok parameter.  Change logic so if we find a .java file,
17545         we don't look for .class in later classpath emtries.
17546         * jcf-parse.c (load_class):  Pass saw_java_source to find_class.
17547         (jcf_figure_file_type):  Only call open_in_zip if correct magic number.
17548         * gjavah.c: Update call to find_class.
17549         * jcf-dump.c:  Likewise.
17550
17551         * jcf-write.c (put_linenumber):  Handle duplicate line numbers.
17552         (generate_bytecode_insns):  For EXPR_WITH_FILE_LOCATION, do
17553         nothing if body is empty_stmt_node.
17554         Various little fixes so SP gets correctly adjusted.
17555         For NEW_ARRAY_INIT, handle IGNORE_TARGET.
17556         For CALL_EXPR, test if static first.
17557         (generate_classfile):  Ignore fields that are DECL_ARTIFICIAL,
17558         such as the ones we create for Object and Class.
17559         Set and restore current_function_decl.
17560         * parse.y:  Check/set IS_AN_IMPORT_ON_DEMAND_P in read_import_dir.
17561         (note_possible_classname):  New function.
17562         (read_import_entry):  Removed.  Merged with read_import_dir.
17563         (read_import_dir):  Don't call find_class - that only gives us
17564         the first classpath entry having the needed package.
17565         Use the struct buffer data structure from buffer.h.
17566         (read_import_dir, find_in_imports_on_demand):  The remembered
17567         class names now use '.' (not '/') as package separator.
17568
17569         * parse.y (java_complete_expand_methods):  Call write_classfile
17570         here, and not in java_expand_classes (which only gets first class).
17571
17572 1998-12-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17573
17574         * parse.y (<type_declaration>):  Do maybe_generate_clinit last.
17575         (register_fields):  If a static fields has an initializer, just
17576         chain it on ctxp->static_initialized, and handle later.
17577         (java_complete_expand_methods):  Force <clinit> first.
17578         (resolve_expression_name, resolve_field_access):  Just get DECL_INITIAL
17579         - it's already been completed.
17580         (patch_initialized_static_field):  New function.
17581         (java_complete_field):  Call it.
17582
17583 1998-12-12  Per Bothner  <bothner@cygnus.com>
17584
17585         * expr.c (encode_newarray_type, build_new_array):  New functions.
17586         * java-tree.h:  Declare build_new_array.
17587         * jcf-write.c (patch_newarray):  Use build_new_array.
17588
17589         * expr.c (java_lang_expand_exp):  Support NEW_ARRAY_INIT.
17590         * jcf-write.c (generate_bytecode_insns):  Support NEW_ARRAY_INIT.
17591
17592         * parse.y (patch_new_array_init):  Re-organize.
17593         Now is passed the actual array (pointer) type of the value.
17594         Set the type of the CONSTRUCTOR to be an ARRAY_TYPE.
17595         (patch_array_constructor):  Removed - merged into patch_new_array_init.
17596         (java_complete_tree):  Update patch_new_array_init.
17597
17598         * jcf-write.c (find_constant_index):  New function.
17599         (generate_bytecode_insns):  Use find_constant_index.
17600         (generate_classfile):  Use find_constant_index for ConstantValue.
17601
17602 1998-12-11  Tom Tromey  <tromey@cygnus.com>
17603
17604         * expr.c (invoke_build_dtable): Renamed dtable -> vtable.
17605         * decl.c (init_decl_processing): Renamed dtable -> vtable.
17606         * class.c (make_class_data): Renamed dtable -> vtable, and
17607         dtable_method_count -> vtable_method_count.
17608
17609 1998-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17610
17611         * decl.c (long_zero_node, float_zero_node, double_zero_node): New
17612         global variables, initialized.
17613         * java-tree.h (long_zero_node, float_zero_node, double_zero_node):
17614         Declared new global variables.
17615         * lex.c (java_lex): Return long_zero_node, float_zero_node,
17616         double_zero_node, integer_zero_node upon direct matching.
17617         * parse.y (purify_type_name): Added function prototype.
17618         (duplicate_declaration_error_p): Consider new_type as potentially
17619         being a incomplete type. Use purify_type_name on type string.
17620         (method_header): saved_type: unused variable removed. Don't figure
17621         return type if method name is invalid.
17622         (java_complete_tree): Set CAN_COMPLETE_NORMALLY after `node' was
17623         processed by patch_unaryop.
17624         (patch_unaryop): Fixed typo in comment. Re-convert pre/post
17625         increment/decrement node into its original type after binary
17626         numeric promotion on its operands.
17627
17628 1998-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17629
17630         * parse.y (array_initializer:): Array init operand is NULL_TREE
17631         instead of a TREE_LIST of NULL_TREEs when parsing `{}'. `{,}' is
17632         now an error. Fixed indentation problems.
17633         (patch_string): Handle error_mark_node as an argument.
17634         (patch_new_array_init): Fixed indentation problems.
17635         (array_constructor_check_entry): Removed check on null wfl_value.
17636         Return an error if wfl_value's walk returns an error.
17637
17638 1998-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17639
17640         * java-tree.def (NEW_ARRAY_INIT): New Java tree code.
17641         * lex.c (java_lex): Remember column position before advancing one
17642         token. Retain location information on OCB_TK.
17643         * lex.h (typedef struct java_lc): Added new field.
17644         * parse.h (GET_SKIP_TYPE): New macro.
17645         (QUAL_DECL_TYPE): Redefined using GET_SKIP_TYPE.
17646         * parse.y (build_new_array_init, patch_new_array_init,
17647         patch_array_constructor, maybe_build_array_element_wfl,
17648         array_constructor_check_entry): New function prototypes.
17649         (switch_block:): Tagged <node>.
17650         (OCB_TK): Tagged <operator>.
17651         (array_initializer:): Installed actions.
17652         (variable_initializer): Build location information on element if
17653         necessary.
17654         (switch_statement:): Fixed indentation typo.
17655         (switch_block:): Redefined default action.
17656         (java_complete_tree): Handle NEW_ARRAY_INIT in MODIFY_EXPR:.
17657         (patch_assignment): Removed duplicate code.
17658         (maybe_build_array_element_wfl, build_new_array_init,
17659         patch_new_array_init, patch_array_constructor,
17660         array_constructor_check_entry): New functions.
17661
17662 1998-12-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17663
17664         * parse.y (array_initializer): Tagged <node>.
17665         (variable_initializer:): Use default rule.
17666         (array_initializer:): Defined actions.
17667         (variable_initializers:): Likewise.
17668         (resolve_qualified_expression_name): Use DECL_CONTEXT to build
17669         non-static field accesses.
17670         (patch_invoke): Fixed indentation typo.
17671         (java_complete_tree): Likewise.
17672         (build_labeled_block): Changed leading comment. Generate an error
17673         in case of duplicate loop labels.
17674         (patch_conditional_expr): Patch results of string concatenation
17675         operations.
17676
17677 1998-12-06  Per Bothner  <bothner@cygnus.com>
17678
17679         * constants.c (find_methodref_index):  When the class is an interface,
17680         generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
17681
17682         * decl.c (finit_identifier_node):  Use "$finit$", rather than
17683         "<finit>" (which Sun's verifier rejects).
17684         * parse.y (maybe_generate_finit):  Leave out meaningless final flag.
17685         (generate_field_initialization_code):  Removed.
17686         (fix_constructors)  Don't add call to $finit$ here (wrong order).
17687         (patch_method_invocation):  Add $finit$ call here.
17688
17689         * java-tree.h (CALL_USING_SUPER):  New macro.
17690         * parse.y (patch_invoke):  Remove im local variable.
17691         (patch_method_invocation, patch_invoke):  Don't pass super parameter.
17692         (patch_invoke):  Use CALL_USING_SUPER instead of from_super parameter.
17693         (resolve_qualified_expression_name):  Maybe set CALL_USING_SUPER.
17694
17695         * jcf-write.c (get_access_flags):  Fix typo ACC_PUBLIC -> ACC_FINAL.
17696
17697         * parse.y (java_complete_tree):  Don't complain about unreachable
17698         statement if it is empty_stmt_node.
17699
17700         * jcf-write.c (find_constant_wide):  New function.
17701         (push_long_const):  Use find_constant_wide.
17702
17703         * jcf-write.c (generate_bytecode_insn):  Fix bug in switch handling.
17704         (generate_bytecode_insn):  Use correct dup variant for MODIFY_EXPR.
17705         Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
17706         Emit invokeinterface when calling an interface method.
17707         Emit invokespecial also when calling super or private methods.
17708
17709         * jcf-write.c (generate_classfile):  Emit ConstantValue attributes.
17710
17711 1998-12-06  Per Bothner  <bothner@cygnus.com>
17712
17713         * jcf-dump.c (INVOKE):  If invokeinterface, print number of args.
17714
17715 1998-12-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17716
17717         * java-tree.h (java_layout_seen_class_methods): New function
17718         prototype.
17719         (LAYOUT_SEEN_CLASS_METHODS): Macro removed.
17720         * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods.
17721         * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro.
17722         * parse.y (method_declarator:): Defined action.
17723         (issue_warning_error_from_context): input_filename saved, set to
17724         the appropriate value and restored after java_error is called.
17725         (build_unresolved_array_type): Fixed comment.
17726         (register_fields): Use PROMOTE_RECORD_IF_COMPLETE.
17727         (method_header): Deal with return type the same way type are
17728         handled for fields and method's parameters and local variables
17729         types are handled.
17730         (check_method_redefinition): Removed extra CR.
17731         (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE.
17732         (java_layout_seen_class_methods): New function.
17733         (java_layout_classes): Call java_layout_seen_class_methods.
17734
17735 1998-12-03  Per Bothner  <bothner@cygnus.com>
17736
17737         * parse,y (patch_synchronized_statement):  Set CAN_COMPLETE_NORMALLY.
17738
17739 1998-12-03  Per Bothner  <bothner@cygnus.com>
17740
17741         * jcf-dump.c (main):  Fix error message.
17742         * jcf-path.c (add_entry):  Style fix.
17743
17744 1998-12-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17745
17746         * class.c (layout_class_method): Call build_java_argument_signature
17747         on constructors too.
17748         * parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE.
17749         (patch_method_invocation): Define a primary when resolving an
17750         expression name. Augmented comment on code checking illegal `this'
17751         usage. Loosened it test by accepting NEW_CLASS_EXPR.
17752
17753 1998-12-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17754
17755         * class.c (layout_class_method): Don't report error on non-static
17756         overriding static if the method is private.
17757         * java-tree.h (finish_class): Prototype added.
17758         * lex.c (java_get_line_col): Handle col argument -2 value.
17759         * parse.h: All static method declarations moved to parse.y.
17760         * parse.y: Now contains all static method declarations previously
17761         found in parse.h.
17762         (find_expr_with_wfl, missing_return_error,
17763         unreachable_stmt_error): New functions.
17764         (java_get_real_method_name): Identify constructors bearing class
17765         names in source code compiled classes only.
17766         (java_complete_expand_methods): Call missing_return_error.
17767         (invocation_mode): Private methods invoked as static methods.
17768         (java_complete_tree): Call unreachable_stmt_error.
17769
17770 1998-12-01  Tom Tromey  <tromey@cygnus.com>
17771
17772         * Makefile.in (+target): Removed.
17773         (+xmake_file): Likewise.
17774         (+tmake_file): Likewise.
17775         (.NOEXPORT): Removed duplicate.
17776
17777 1998-11-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17778
17779         * Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
17780
17781         * jv-scan.c: Fix xmalloc prototype.  Provide an xmalloc definition.
17782
17783         * jvgenmain.c: Remove the xmalloc prototype, we get it from
17784         libiberty.h.  Provide an xmalloc definition.
17785
17786         * jvspec.c: Remove the xmalloc prototype.
17787
17788         * parse-scan.y: Include config.h and system.h.  Don't include
17789         OS headers or gansidecl.h.  Don't prototype xmalloc/xstrdup.
17790         Provide an xstrdup definition.
17791
17792 1998-11-26  Alexandre Oliva  <oliva@dcc.unicamp.br>
17793
17794         * jcf-path.c (add_entry): Recognize ".jar" too.
17795         * lang-specs.h: Likewise.
17796
17797 1998-11-26  Per Bothner  <bothner@cygnus.com>
17798
17799         * jcf-write.c (generate_bytecode_insns):  In Call_EXPR, handle
17800         soft_monitorenter_node, soft_monitorexit_node, throw_node.
17801
17802         * jcf-write.c (generate_bytecode_insns):
17803         Handle pre/post-increment/decrement of long.
17804
17805         * jcf-write.c (generate_bytecode_insns):
17806         Handle missing exception handler (finally for synchronized).
17807
17808 1998-11-25  Per Bothner  <bothner@cygnus.com>
17809
17810         * java-tree.h (end_params_node):  Declare global.
17811         * decl.c (end_params_node):  New global.
17812         (init_decl_processing, start_java_method):  Use end_params_node for
17813         end of list of parameter types.  Follows correct gcc conventions.
17814         * expr.c (pop_argument_types, pop_arguments):  Likewise.
17815         * lang.c (put_decl_node):  Likewise.
17816         * typeck.c (various places):  Likewise.
17817         * class.y (various places):  Likewise.
17818         * parse.y (various places):  Likewise.
17819
17820         * parse.y (java_complete_tree):  Move CAN_COMPLETE_NORMALLY.
17821         (build_jump_to_finally):  Add missing CAN_COMPLETE_NORMALLY.
17822
17823         * class.c:  Add #include flags.h, remove no-longer needed declaration.
17824
17825         * class.c (layout_class_method):  Remove commented-out code, re-format.
17826         Don't add vtable entry (or index) for private methods.
17827         * expr.c (expand_invoke):  A private method is implicitly final.
17828         * class.c (make_class_data):  If inlining or optimizing,
17829         skip private methods.
17830
17831         * class.c (finish_class):  New function.  Calls existing methods,
17832         but alls emits deferred inline functions.
17833         * jcf-parse.c (parse_class_file):  Call finish_class.
17834         * parse.y (java_complete_expand_methods):  Likewise.
17835
17836         * expr.c (build_java_binop):  Explicit default, to silence -Wall.
17837
17838         * expr.c (CHECK_PC_IN_RANGE):  Add void cast to kill warnings.
17839
17840 1998-11-25  Marc Espie <espie@quatramaran.ens.fr>
17841
17842         * jcf-write.c (generate_bytecode_conditional): Fix typo.
17843
17844 1998-11-24  Per Bothner  <bothner@cygnus.com>
17845
17846         * (generate_classfile): Always write class access flag with
17847         ACC_SUPER set.
17848
17849 1998-11-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17850
17851         * class.c (maybe_layout_super_class): New function.
17852         (layout_class): Reorganized. Loop on class methods dispatched into
17853         a new function. Call maybe_layout_super_class.
17854         (layout_class_methods, layout_class_method): New functions.
17855         * expr.c (expand_java_NEW): Call layout_class_methods on loaded
17856         class.
17857         (expand_invoke): Likewise.
17858         * java-tree.h (all_class_list): New global variable declared.
17859         (layout_class_methods, layout_class_method): New function
17860         prototypes.
17861         (LAYOUT_SEEN_CLASS_METHODS): New macro.
17862         * jcf-parse.c (all_class_list): New global variable.
17863         (load_class): Extended what class_or_name can be. Use parser
17864         context mechanism to save globals before calling jcf_parse.
17865         (jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
17866         is set on the file name.
17867         (jcf_parse): Layout class methods when Object is loaded, otherwise
17868         record class in all_class_list for delayed method layout.
17869         (parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
17870         * lang.c (put_decl_node): Decode <init> into the decl context
17871         class name.
17872         * lex.c (java_allocate_new_line): Use xmalloc.
17873         * parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
17874         pointers, not TREE_LIST elements.
17875         (struct parser_ctxt): Fixed comment indentations, added comments
17876         and reordered some fields.
17877         (java_check_methods): Function prototype removed.
17878         * parse.y (java_push_parser_context): Use xmalloc.
17879         (java_parser_context_restore_global): Pop extra pushed ctxp only
17880         when there's nothing next.
17881         (maybe_create_class_interface_decl): Fixed comment, add new
17882         created class decl to all_class_list.
17883         (method_header): Use GET_REAL_TYPE on argument's types.
17884         (method_declarator): Use GET_REAL_TYPE, change type to the real
17885         type in TREE_LIST dependency node. Build argument list with the
17886         real type.
17887         (create_jdep_list): Use xmalloc. Removed allocation error message.
17888         (obtain_incomplete_type): Fixed leading comment. Broadened
17889         incoming argument meaning.
17890         (register_incomplete_type): Use xmalloc. Removed allocation error
17891         message.
17892         (safe_layout_class): Fixed leading comment.
17893         (jdep_resolve_class): Reversed if statement condition and switch
17894         if and else bodies.
17895         (resolve_and_layout): Fixed leading comment. Broadened incoming
17896         argument meaning.
17897         (complete_class_report_errors): New local variable name, for
17898         clarity. purify_type_name used for all error cases.
17899         (java_get_real_method_name): Stricter check on constructors.
17900         (java_check_regular_methods): Reverse methods list only if not
17901         already laid out. Layout artificial constructor.
17902         (java_check_methods): Deleted.
17903         (source_start_java_method): Obtain incomplete type for patchable
17904         method arguments.
17905         (java_layout_classes): Fixed leading comment. Use
17906         LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
17907         statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
17908         before returning. Fixed comments.
17909         (java_expand_classes): Check for errors up front.
17910         (patch_method_invocation): Class to search is resolved and laid
17911         out.
17912
17913 1998-11-24  Per Bothner  <bothner@cygnus.com>
17914
17915         * expr.c (java_lang_expand_expr):  Add missing emit_queue.
17916
17917         * javaop.h (int8):  Removed - not used.
17918         (jbyte):  Redefine portably with correct signedness.
17919
17920         * jcf-write.c (generate_bytecode_insns):  Don't free sw_state.cases.
17921
17922         * jcf-write.c (generate_bytecode_insns):  Fix typo
17923         OPCODE_getstatic to OPCODE_getfield.
17924
17925         * java-tree.def (CASE_EXPR, DEFAULT_EXPR):  Kind is 'x', not '1'.
17926         * parse.y (java_complete_tree):  For CASE_EXPR and DEFAULT_EXPR,
17927         set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
17928
17929 1998-11-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17930
17931         * jcf-parse.c (jcf_parse_source): Function returned type is
17932         void. Added prototype.
17933         (jcf_parse): Function returned type is void.
17934         (yyparse): Remove call to fclose on the last parsed file.
17935
17936         * java-tree.h (jcf_parse): Changed jcf_parse prototype.
17937
17938 1998-11-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17939
17940         * class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
17941         (layout_class): Cope with methods featuring WFL in decl names.
17942         * decl.c (unqualified_object_id_node): New global variable,
17943         initialized.
17944         (build_decl_no_layout): Removed.
17945         * expr.c (build_primtype_type_ref): Handle Double.
17946         (java_lang_expand_expr): Fixed indentations.
17947         * java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted.
17948         (flag_wall, flag_redundant, flag_not_overriding,
17949         flag_static_local_jdk1_1, unqualified_object_id_node): Global
17950         variable declarations.
17951         (build_decl_no_layout): Removed prototype.
17952         (java_get_real_method_name): Added prototype.
17953         (IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P.
17954         (java_parse_abort_on_error): Macro now just returns.
17955         * jcf-parse.c (jcf_parse_source): Check fclose returned
17956         value. Call emit_register_classes if java_report_errors returns
17957         zero.
17958         * lanc.c (flag_wall, flag_redundant, flag_not_overriding,
17959         flag_static_local_jdk1_1): New integer flags.
17960         (lang_decode_option): New flags set here.
17961         * parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros.
17962         (OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to
17963         the flag_redundant variable.
17964         (SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object
17965         when parsing java.lang.Object class.
17966         (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal
17967         NULL_TREE to build.
17968         (resolve_qualified_expression_name): Fixed indentation.
17969         (patch_array_ref): Changed prototype.
17970         (not_initialized_as_it_should_p): Prototype removed.
17971         (java_report_errors): Added function prototype.
17972         * parse.y (formal_parameter:): Changed error message for not yet
17973         supported final parameters.
17974         (class_type_list:): Set both PURPOSE and VALUE of created
17975         TREE_LIST to be class_type.
17976         (primary_no_new_array:): Handle class literals on primitive types.
17977         (parse_warning_context): Reinstalled correct force_error and
17978         do_warning flags setups.
17979         (java_report_errors): Changed prototype. Return java_error_count
17980         value.
17981         (variable_redefinition_error): Consider treating variable type as
17982         a fake pointer.
17983         (create_interface): Warn about redundant abstract modifier if
17984         flag_redundant is set. Changed error message.
17985         (lookup_field_wrapper): Save/restore globals before/after looking
17986         up field.
17987         (duplicate_declaration_error_p): Consider treating declaration
17988         type as a fake pointer.
17989         (register_fields): Extract real type from dependency node. Check
17990         for duplicate field declaration after type adjustment. Use
17991         DECL_INITIAL to store static final initialized values.
17992         (method_header): Extract real function type from dependency node.
17993         (check_abstract_method_header): Use GET_METHOD_NAME.
17994         (obtain_incomplete_type): Layout fake pointer type.
17995         (safe_layout_class): Don't try to check for methods before layout.
17996         (java_complete_class): Don't check for correct throws clause
17997         elements inheritance here.
17998         (resolve_and_layout): Broadened name parameter meaning.
17999         (reset_method_name): Use GET_METHOD_NAME.
18000         (java_get_real_method_name): New function.
18001         (java_check_regular_methods): Don't check methods in
18002         java.lang.Object.  Verify lineage of throws clause elements. Use
18003         flag_no_overriding in warning report.
18004         (check_throws_clauses): Don't check if class was from
18005         bytecode. Use IS_UNCHECKED_EXCEPTION_P macro.
18006         (java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag.
18007         (declare_local_variables): Use flag_static_local_jdk1_1 to report
18008         warning on unsupported final local variables. Use build_decl
18009         instead of build_decl_no_layout. Get real local variable type from
18010         dependency node.
18011         (source_start_java_method): Get real parameter type from
18012         dependency node. Call build_decl instead of build_decl_no_layout.
18013         (java_layout_classes): Reverse tree and layout type and class as
18014         required. Mark class as loaded when done.
18015         (resolve_field_access): Fixed indentation. Restricted condition
18016         leading to static field access code generation. Set field_type
18017         decl's TREE_TYPE if QUAL_DECL_TYPE not available.
18018         (resolve_qualified_expression_name): Initialize type_found to
18019         null. Handle static field resolved during qualification. Fixed
18020         layout on non primitive field decl types.
18021         (not_accessible_p): Fixed typo in comment.
18022         (patch_method_invocation): Resolve and layout class to search from
18023         type.
18024         (lookup_method_invoke): Keep integer constant 0 as is. Resolve and
18025         layout non primitive type, if necessary. Make method node only to
18026         report errors.
18027         (find_applicable_accessible_methods_list): Consider WFL'ed method
18028         decl names. Fixed indentation.
18029         (argument_types_convertible): Resolve and layout target type if
18030         necessary.
18031         (java_complete_tree): Fixed indentation problems. Rewrote
18032         CALL_EXPR thrown exceptions check. Re-installed further processing
18033         of the assignment in certain cases.
18034         (patch_assignment): Call maybe_build_primttype_type_ref to perform
18035         inlining on class literals.
18036         (valid_builtin_assignconv_identity_widening_p): Cope with constant
18037         0 literal.
18038         (valid_method_invocation_conversion_p): Likewise.
18039         (patch_string): Temporary disable forbidden use of `this' in
18040         explicit constructor invocations when doing string concatenation
18041         within their scope.
18042         (patch_unaryop): Added comment. Reinstalled code to disable
18043         further check on assignment operation with cast expression RHS.
18044         (patch_switch_statement): Fixed indentation.
18045         (build_try_statement): Call build_decl instead of
18046         build_decl_no_layout.
18047         (patch_synchronized_statement): Likewise.
18048         (patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of
18049         IS_UNCHECKED_EXPRESSION_P.
18050         (check_thrown_exceptions_do): Changed leading comment. Resolve and
18051         layout argument exception type.
18052         (purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
18053         of IS_UNCHECKED_EXPRESSION_P.
18054
18055 1998-11-18  Anthony Green  <green@cygnus.com>
18056
18057         * jcf-parse.c (yyparse): Open class file in binary mode.
18058
18059 1998-11-15  Per Bothner  <bothner@cygnus.com>
18060
18061         * jvgenmain.c:  Need to #include "gansidecl.h" (to get PROTO).
18062
18063         * jcf-write.c (perform_relocations):  Move check out one loop.
18064
18065 1998-11-15  Anthony Green  <green@hoser.cygnus.com>
18066
18067         * Make-lang.in: Fix reference to srcdir.
18068         * jv-scan.c: Add missing xmalloc prototype.
18069         * jvgenmain.c: Ditto.
18070
18071 1998-11-15  Per Bothner  <bothner@cygnus.com>
18072
18073         * decl.c (error_mark_node), java-tree.h:  New global.
18074         * parse.y:  Use empty_stmt_node instead of size_zero_node.
18075         (build_if_else_statement):  If missing else, use empty_stmt_node.
18076
18077         * parse.y (not_initialized_as_it_should_p):  Removed, with its callers.
18078         (java_complete_expand_method):  Complain if return is missing.
18079         (java_check_regular_methods):  Comment out incorrect error check.
18080         (not_accessible_p):  Fix incorrect handling of protected methods.
18081         (patch_method_invocation):  Pass correct context to not_accessible_p.
18082         (find_applicable_accessible_methods_list):  Likewise.
18083         (qualify_ambiguous_name):  If ARRAY_REF, it's an expression name.
18084         (java_complete_tree):  For CASE_EXPR and DEFAULT_EXPR, set
18085         TREE_TYPE (to void_type_node);  otherwise expand_expr crashes.
18086         (patch_if_else_statement):  Fix setting of CAN_COMPLETE_NORMALLY.
18087
18088         * jcf-write.c (CHECK_OP, CHECK_PUT):  Add some error checking.
18089         (push_int_const):  Remove reundant NOTE_PUSH.
18090         (generate_bytecode_insns - case STRING_CST):  Do NOTE_PUSH.
18091         (- case SWITCH_EXPR):  Fix code generation bug.
18092         (- case PREDECREMENT_EXPR etc):  Remove redundant NOTE_PUSH.
18093         (generate_classfile):  More robust for abstract methods.
18094
18095 1998-11-15  Anthony Green  <green@cygnus.com>
18096
18097         * Makefile.in: jv-scan and jvgenmain all require libiberty.
18098         * Make-lang.in: Ditto.
18099
18100         * jv-scan.c: Remove xmalloc and xstrdup definitions.
18101         * jvgenmain: Ditto.
18102
18103 1998-11-15  Per Bothner  <bothner@cygnus.com>
18104
18105         * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE):  New macro.
18106
18107         * jcf-io.c (find_class):  Simpler/cleaner structure fixes a bug.
18108
18109 1998-11-14  Per Bothner  <bothner@cygnus.com>
18110
18111         Allow uses of interface types to verify.  This is not really
18112         type-safe, but it matches what Sun does, and is OK as long as
18113         there are appropriate run-time checks.
18114         * verify.c (merge_types):  If merging two interface types,
18115         just set the result to java.lang.Object.
18116         * expr.c (pop_type):  Any interface is matches by java.lang.Object.
18117
18118 1998-11-13  Tom Tromey  <tromey@cygnus.com>
18119
18120         * gjavah.c (main): Handle --output-class-directory argument.
18121         * jvspec.c (lang_specific_driver): Translate `-d' into
18122         -foutput-class-dir.
18123         * jcf.h (jcf_write_base_directory): Declare.
18124         * lang.c (lang_decode_option): Recognize -foutput-class-dir.
18125         * lang-options.h: Mention -foutput-class-dir.
18126         * jcf-write.c (jcf_write_base_directory): New global.
18127         (make_class_file_name): Put generated .class file into `-d'
18128         directory, or into source directory if -d not given.  Function now
18129         static.
18130         (write_classfile): Free class file name.  Handle case where class
18131         file name is NULL.
18132         (DIR_SEPARATOR): New macro.
18133         Include <sys/stat.h>
18134
18135         * Makefile.in (prefix): New macro.
18136
18137 1998-11-12  Per Bothner  <bothner@cygnus.com>
18138
18139         * parse.y (patch_invoke):  Do less if flag_emit_class_files.
18140         * expr.c (build_known_method_ref):  Don't check flag_emit_class_files
18141         here (done in patch_invoke instead).
18142         (case_identity):  Moved here from parse.y.
18143
18144         * java-tree.h (CAN_COMPLETE_NORMALLY):  New macro.
18145         * parse.y (java_complete_tree etc):  Maybe set CAN_COMPLETE_NORMALLY.
18146         * parse.y (java_complete_tree):  Re-order COMPOUND_EXPR in BLOCK
18147         so they can be efficiently scanned without recursion.
18148         Error it ! CAN_COMPLETE_NORMALLY first part of COMPOUND_EXPR.
18149         * expr.c (java_lang_expand_expr):  Expand statements of COMPOUND_EXPR
18150         in BLOCK iteratively, rather than recursively.
18151
18152         * parse.y (do_unary_numeric_promotion):  New function.
18153         (patch_unaryop, patch_binop, patch_array_ref):  Use it.
18154
18155         * parse.y (patch_newarray):  Various fixes.
18156
18157         Re-do handling of switch statements (for proper block scoping).
18158         * parse.y:  Add just a single block for the enture switch block,
18159         but don't create any "case blocks".
18160         (group_of_labels):  Rmeoved unneeded non-terminal.
18161         CASE_EXPR and DEFAULT_EXPR are added to current block.
18162         * expr.c (java_lang_expand_expr):  Inline SWITCH_EXPR here.
18163         Now also need to handle CASE_EXPR and DEFAULT_EXPR.
18164         * java-tree.h (SWITCH_HAS_DEFAULT):  New macro.
18165         * parse.y (wfl_operator, print_int_node): Make non-static.
18166         (java_complete_tree):  CASE_EXPR and DEFAULT_EXPR are now processed
18167         as part of recursive scan of block.
18168         (java_expand_switch ):  Removed - inlined into java_lang_expand_expr.
18169         (patch_switch_statement):  Most tests move dinto java_complete_tree.
18170
18171         * parse.y:  Make various production be non-typed (void).
18172         * parse.y (parse_error):  Merged into issue_warning_error_from_context.
18173         * parse.y (add_stmt_to_compound):  Don't create/change extra node.
18174         (patch_method_invocation_stmt):  Renamed to patch_method_invocation.
18175
18176         * jcf-write.c (struct jcf_handler):  New type.
18177         (struct jcf_switch_state):  New type.
18178         (SWITCH_ALIGN_RELOC, BLOCK_START_RELOC):  New relocation kinds.
18179         (alloc_handler, emit_unop, emit_reloc):  New functions.
18180         (adjust_typed_op):  Add extra parameter ("max type" offset).
18181         (emit_switch_reloc, emit_case-reloc):  New function.
18182         (generate_bytecode_conditional):  Handle REAL_TYPE comparisons.
18183         (generate_bytecode_insns):  Support REAL_CST, switch statements,
18184         exception handling, method calls, object/array creation, and more.
18185
18186         * class.c:  Remove some unused variables.
18187         * constants.c (find_string_constant):  New function.
18188         (count_constant_pool_bytes):  Fix to correctly handle wide constants.
18189         * decl.c (complete_start_java_method):  Don't _Jv_InitClass
18190         if flag_emit_class_files.
18191
18192 1998-11-12  Tom Tromey  <tromey@cygnus.com>
18193
18194         * jcf-io.c (find_class): Added explanatory comment.
18195
18196         * jcf-path.c (add_entry): Look for `.zip' at end of filename.  Add
18197         trailing slash to `.zip' entries.
18198
18199         * jvspec.c (lang_specific_driver): Correctly handle case where
18200         GC_NAME not defined.
18201
18202 1998-11-11  Tom Tromey  <tromey@cygnus.com>
18203
18204         * jvspec.c (GC_NAME): New define.
18205         (lang_specific_driver): Use GC_NAME.  Add GC_NAME to command line
18206         if required.
18207         * Make-lang.in (jvspec.o): Define WITH_GC_<name>.
18208
18209 1998-11-11  Per Bothner  <bothner@cygnus.com>
18210
18211         * jcf-dump.c (TABLE_SWITCH):  Fix typos.
18212
18213 1998-11-11  Tom Tromey  <tromey@cygnus.com>
18214
18215         * jcf-dump.c (main): Correctly recognize `--'-style long options.
18216
18217 1998-11-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18218
18219         * class.c (is_compiled_class): Call safe_layout_class for class
18220         compiled from source.
18221         * conver.h (convert_to_integer, convert_to_real,
18222         convert_to_pointer): Added prototypes.
18223         * decl.c (init_decl_processing): Non longer push the decls of
18224         `methodtable', `constants', `Class', `Field', `dispatchTable'
18225         `jexception' and `Method'.
18226         * expr.c (build_invokeinterface): New function.
18227         (expand_invoke): static variable CLASS_IDENT now in
18228         build_invokeinterface. Use build_invokeinterface.
18229         (expand_java_field_op): Moved code to inline
18230         java.lang.PRIMTYPE.TYPE into a function.
18231         (build_primtype_type_ref): New function.
18232         * java-tree.def (INSTANCEOF_EXPR): New tree code.
18233         * java-tree.h (CLASS_METHOD_CHECKED_P, METHOD_DEPRECATED,
18234         FIELD_DEPRECATED, CLASS_DEPRECATED): New flag macros.
18235         (DECL_CONSTRUCTOR_P): Fixed typo in comment.
18236         (DECL_LOCAL_STATIC_VALUE): New macro.
18237         (build_invokeinterface, build_primtype_type_ref): New function
18238         prototypes.
18239         (java_parse_abort_on_error): Macro rewritten.
18240         * jcf-parse.c (current_method): Add comment to declaration.
18241         (parse_zip_file_entries, process_zip_dir, void parse_source_file):
18242         Function prototypes fixed.
18243         (jcf_parse_source): push/pop parser context. save/restore global.
18244         (parse_source_file): Fixed leading comment. Now take a
18245         IDENTIFIER_NODE as an argument. Doesn't check methods, layout
18246         classes and pop the parser context anymore.
18247         (yyparse): Push parser context, save globals, parse the source
18248         file, restore globals and pop the parser context when processing a
18249         source file.
18250         * jcf.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG define.
18251         * lex.c (java_parse_doc_section): New function.
18252         (java_lex): Call java_parse_doc_section when appropriate. Build an
18253         operator around INSTANCEOF_TK.
18254         * lex.h (java_lineterminator, java_sprint_unicode,
18255         java_unicode_2_utf8, java_lex_error, java_store_unicode):
18256         Prototypes rewritten.
18257         (java_parse_escape_sequence, java_letter_or_digit_p,
18258         java_parse_doc_section, java_parse_end_comment, java_get_unicode,
18259         java_read_unicode, java_store_unicode, java_read_char,
18260         java_allocate_new_line, java_unget_unicode, java_sneak_unicode):
18261         Added function prototypes.
18262         * parse.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG
18263         define.
18264         (JNULLP_TYPE_P, CHECK_METHODS, CHECK_DEPRECATED, REGISTER_IMPORT):
18265         New macros
18266         (struct parser_ctxt): New fields: deprecated,
18267         current_parsed_class_un, gclass_list.
18268         (fix_method_argument_names, issue_warning_error_from_context,
18269         resolve_package, lookup_package_type): New function prototypes.
18270         (resolve_expression_name): Fixed function prototype.
18271         (find_applicable_accessible_methods_list): Fixed indentation, added
18272         extra argument in prototype.
18273         (check_final_assignment, build_null_of_type, check_deprecation,
18274         check_method_redefinition, reset_method_name,
18275         java_check_regular_methods, java_check_abstract_methods,
18276         maybe_build_primttype_type_ref): New function prototype.
18277         * parse.y (conver.h): Include.
18278         (INSTANCEOF_TK): Tagged <operator>.
18279         (single_type_import_declaration): Use REGISTER_IMPORT macro.
18280         (relational_expression:): Build binop for instanceof.
18281         (java_push_parser_context): Remember ctxp->gclass_list across
18282         contexts.
18283         (java_pop_parser_context): Simply return if no context
18284         exists. Remember gclass_list across contexts.
18285         (issue_warning_error_from_context): New function.
18286         (parse_error_context): Don't setup ctxp->elc here. Call
18287         issue_warning_error_from_context instead.
18288         (parse_warning_context): Likewise.
18289         (maybe_create_class_interface_decl): Removed DECL_ARTIFICIAL
18290         setup. Link new class/interface to ctxp->gclass_list.
18291         (add_superinterfaces): Register interface as incomplete if not
18292         loaded.
18293         (create_class): Remember class unqualified name in
18294         ctxp->current_parsed_class_un. Check class deprecation.
18295         (register_fields): Check field deprecation. Remember static final
18296         field value in DECL_LOCAL_STATIC_VALUE. Changed comment in part
18297         processing INIT.
18298         (method_header): New local variable ORIG_ARG. Use unqualified
18299         current class name for check on constructor errors. Promote return
18300         type if of record type. Argument list fix moved in
18301         fix_method_argument_names, called here. Check method deprecation.
18302         (fix_method_argument_names): New function.
18303         (method_declarator): Promote record typed arguments.
18304         (safe_layout_class): Check class methods before layout.
18305         (java_complete_class): Compute field layout when patched.
18306         (do_resolve_class): Try to load class after having it renamed
18307         after the package name.
18308         (get_printable_method_name): Use DECL_CONTEXT.
18309         (reset_method_name): New function.
18310         (check_method_redefinition): Use reset_method_name.
18311         (java_check_regular_methods): New local variable
18312         SAVED_FOUND_WFL. Temporarily reinstall overriding/hiding method
18313         names for error report. Check for compile-time error when method
18314         found has default (package) access.
18315         (java_check_abstract_methods): Now takes an interface DECL node as
18316         an argument. Also reinstall real name on unchecked
18317         overriding/hiding methods for error report.
18318         (java_check_methods): Fixed leading comment. Get classes to verify
18319         from ctxp->gclass_list. Use CHECK_METHODS macro and set
18320         CLASS_METHOD_CHECKED_P on class verification.
18321         (lookup_java_method2): Get real method name if necessary.
18322         (find_in_imports): Don't check package class access here.
18323         (resolve_package, lookup_package_type): New functions.
18324         (java_layout_classes): Fixed leading comment. Take classes to be
18325         laid out from ctxp->gclass_list.
18326         (java_complete_expand_methods): Don't expand native and abstract
18327         methods.
18328         (java_expand_classes): New function.
18329         (resolve_expression_name): Use additional argument ORIG.  Retrieve
18330         values of static final field of primitive types.
18331         (resolve_field_access): Handles static final field of promotive
18332         type.
18333         (resolve_qualified_expression_name): Handle STRING_CST as
18334         primaries and package name resolution. Check deprecation on found
18335         decls. Set where_found and type_found on non static field resolved
18336         during qualification. Layout non primitive field decl types.
18337         (check_deprecation): New function.
18338         (maybe_access_field): Simplified.
18339         (patch_method_invocation_stmt): Local variable CLASS_TYPE
18340         removed. Reverse method's argument when primary is a type. Don't
18341         use CLASS_TYPE to report problems, use IDENTIFIER_WFL
18342         instead. Include abstract class in the list of class searchable
18343         for constructors. Use DECL_CONTEXT of found method for access
18344         checks. Check method deprecation.
18345         (patch_invoke): Pay extra care to NEW_CLASS_EXPR type call when
18346         converting arguments. Handle INVOKE_INTERFACE.
18347         (lookup_method_invoke): Search constructor using existing
18348         infrastructure (don't rely on lookup_java_constructor anymore).
18349         (find_applicable_accessible_methods_list): Extra argument flag
18350         LC. Now include constructor in the search.
18351         (qualify_ambiguous_name): Conditional expression are primaries.
18352         (not_initialized_as_it_should_p): static final are always
18353         initialized.
18354         (java_complete_tree): Pass extra NULL argument to
18355         resolve_expression_name. Stricter test to carry on patching
18356         assignments. New case for INSTANCEOF_EXPR.
18357         (complete_function_arguments): Inline PRIMTYPE.TYPE read access.
18358         (check_final_assignment, maybe_build_primttype_type_ref): New
18359         functions.
18360         (patch_assignment): Detect resolved static finals and carry normal
18361         assignment error check on them. Inline PRIMTYPE.TYPE read access.
18362         (try_builtin_assignconv): Access constant 0 on all primitive
18363         types.
18364         (valid_builtin_assignconv_identity_widening_p): Accept identical
18365         types. Accept all promoted type on int type.
18366         (valid_ref_assignconv_cast_p): Accept a null pointer to be
18367         assigned to a reference.
18368         (valid_method_invocation_conversion_p): Accept to check null
18369         pointers.
18370         (build_binop): Merge declaration and initialization of local
18371         variable BINOP.
18372         (patch_binop): New case for INSTANCEOF_EXPR. NE_EXPR to accept all
18373         numeric types. Improved validity test for qualify operators on
18374         references.
18375         (patch_unaryop): Broadened rejection test for PREDECREMENT_EXPR
18376         and PREINCREMENT_EXPR. Also detect resolved static finals of a
18377         primitive type and issue the appropriate error message.
18378         (resolve_type_during_patch): Mark class loaded when resolved.
18379         (patch_cast): Allow null to be cased to reference types.
18380         (build_null_of_type): New function.
18381         (patch_array_ref): Handle array on references correctly.
18382         (patch_return): Removed unused local variable MODIFY. Force
18383         boolean to be returned as integers. Allows null to be returned by
18384         a function returning a reference.
18385         * typeck.c (convert_to_integer, convert_to_real,
18386         convert_to_pointer): Prototypes moved to convert.h
18387         (lookup_argument_method): Use method real name, if necessary.
18388
18389 1998-10-30  Tom Tromey  <tromey@cygnus.com>
18390
18391         * class.c (build_class_ref): Changed name of primitive classes to
18392         start with `_Jv_'.
18393
18394         * class.c (make_class_data): Renamed fields: nmethods to
18395         method_count, method_count to dtable_method_count.  Always set
18396         `state' field to 0.
18397         * decl.c (init_decl_processing): Likewise.
18398
18399 1998-10-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18400
18401         * class.c (layout_class): Don't mangle <finit>, produce
18402         __finit<class> instead. Don't verify artificial methods.
18403         * decl.c (finit_identifier_node): New declared global.
18404         (init_decl_processing): finit_identifier_node initialized.
18405         * java-tree.def (CONDITIONAL_EXPR): New Java tree code.
18406         * java-tree.h (finit_identifier_node): Declared as extern.
18407         (struct lang_decl): New field called_constructor.
18408         (DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor.
18409         (CLASS_HAS_FINIT_P): New macro.
18410         (CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks
18411         explicit constructor invocation.
18412         (CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P,
18413         CALL_SUPER_CONSTRUCTOR_P): New macros.
18414         (write_classfile): Added prototype.
18415         * jcf-parse.c (jcf_parse_source): Parse and remember for
18416         generation if the file was seen on the command line.
18417         (parse_source_file): Don't write the class file here.
18418         (yyparse): Loop on files rewritten. Set current_jcf.
18419         (parse_zip_file_entries): Parse class file only if it was found.
18420         * lang.c (init_parse): Don't open command line provided filename
18421         here.
18422         (lang_parse): Don't set main_jcf anymore.
18423         * parse.h (ABSTRAC_CHECK): Capitalized arguments.
18424         (JCONSTRUCTOR_CHECK): New macro.
18425         (JBSC_TYPE_P): New macro.
18426         (IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment.
18427         (COMPLETE_CHECK_OP_2): New macro.
18428         (struct parse_ctxt): New field explicit_constructor_p.
18429         (check_class_interface_creation): Fixed prototype indentation.
18430         (patch_method_invocation_stmt): Prototype reflects added argument.
18431         (patch_invoke): Likewise.
18432         (complete_method_declaration, build_super_invocation,
18433         verify_constructor_circularity,
18434         build_this_super_qualified_invocation, get_printable_method_name,
18435         patch_conditional_expr, maybe_generate_finit, fix_constructors,
18436         verify_constructor_super, create_artificial_method,
18437         start_artificial_method_body, end_artificial_method_body,
18438         generate_field_initialization_code): New function prototypes.
18439         * parse.y: Fixed leading comment
18440         (constructor_header:, constructor_body:, block_end:): Rules tagged
18441         <node>.
18442         (type_declaration:): Call maybe_generate_finit.
18443         (method_declaration:): Action for method_body: placed in new
18444         function complete_method_declaration, called here.
18445         (constructor_declaration:): Defined actions. Removed leading
18446         FIXME.
18447         (constructor_header:): New rule with action.
18448         (constructor_body:): Rule rewritten using block_begin: and
18449         block_end:. Defined actions.
18450         (constructor_declarator:, explicit_constructor_invocation:):
18451         Defined actions.
18452         (block:): Use new rules block_begin: block_end:.
18453         (block_begin:, block_end:): New rules and actions.
18454         (block_statements:): Fixed error message for explicit
18455         constructors.
18456         (method_invocation:): Call build_this_super_qualified_invocation
18457         if primary is `this' or `super' was seen.
18458         (conditional_expression:): Action defined.
18459         (extra_ctxp_pushed_p): New static global flag.
18460         (java_parser_context_save_global): Create parser context if
18461         necessary. Use extra_ctxp_pushed_p to remember it.
18462         (java_parser_context_restore_global): Pop extra parser context if
18463         one exists.
18464         (build_array_from_name): Array on primitive types are marked
18465         loaded.
18466         (register_fields): Restore new name in field initializer
18467         expression if type was altered. Non static fields initialized upon
18468         declaration marked initialized.
18469         (maybe_generate_finit): New function.
18470         (maybe_generate_clinit): Use create_artificial_method,
18471         start_artificial_method_body, end_artificial_method_body. Generate
18472         debug info for enclosed initialization statements.
18473         (method_header): Fixed leading comment. Check constructor
18474         flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P
18475         accordingly.
18476         (complete_method_declaration, constructor_circularity_msg,
18477         verify_constructor_circularity): New functions.
18478         (get_printable_method_name): New function.
18479         (check_method_redefinition): Don't rename <finit> methods. Fix
18480         declared constructor names. Error message for
18481         constructors modified.
18482         (java_check_regular_methods): Local variable seen_constructor
18483         renamed saw_constructor. Skip verification on constructors. Create
18484         default constructor with create_artificial_method.
18485         (java_check_methods): Removed unnecessary empty line.
18486         (create_artificial_method, start_artificial_method_body,
18487         end_artificial_method_body): New functions.
18488         (java_layout_classes): Changed leading comment. Reverse fields
18489         list if necessary. Always layout java.lang.Object if being
18490         defined.
18491         (java_complete_expand_methods): Verify constructor circularity.
18492         (java_complete_expand_method): Call fix_constructor on
18493         constructors.  Local variable no_ac_found removed. Restore
18494         bindings if method body expansion failed.
18495         (fix_constructors, verify_constructor_super,
18496         generate_field_initialization_code): New function.
18497         (java_expand_classes): Fixed leading comment. Write class file
18498         here.
18499         (resolve_expression_name): Check for illegal instance variable
18500         usage within the argument scope of an explicit constructor
18501         invocation.
18502         (resolve_qualified_expression_name): Pass extra from_super flag
18503         when invoking patch_method_invocation_stmt. New case for
18504         conditional expression when used as a primary. Check for error
18505         when acquiring super.
18506         (patch_method_invocation_stmt): Added extra argument super. New
18507         local variable is_static_flag. Set class_to_search according to
18508         the nature of the constructor invocation. Don't add `this'
18509         argument when expanding NEW_CLASS_EXPR. Check for illegal method
18510         invocation within the argument scope of explicit constructor
18511         invocation. Set is_static according to is_static_flag. Provide
18512         extra `super' argument to patch_invoke invocation.
18513         (patch_invoke): New argument from_super. Loop on arguments
18514         indentation fixed. Pass from_super to invocation_mode. New switch
18515         case INVOKE_SUPER. Fixed error message in switch default case.
18516         Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node
18517         value.
18518         (invocation_mode): Return INVOKE_SUPER mode when appropriate.
18519         (lookup_method_invoke): Fixed prototypes in candidates list. Error
18520         message takes constructors into account.
18521         (find_applicable_accessible_methods_list): Fixed indentation.
18522         (qualify_ambiguous_name): Take explicit constructor invocation
18523         into account. Deal with a conditional expression as a primary to
18524         a method call.
18525         (java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR
18526         case. Added extra argument to patch_method_invocation_stmt.
18527         Register calls made to explicit constructor `this'. Don't call
18528         save_expr in ARRAY_REF case when emitting class files. Check for
18529         illegal use of this when expanding explicit constructor invocation
18530         arguments.
18531         (complete_function_arguments): Set and reset parser context
18532         explicit_constructor_p field value when appropriate.
18533         (build_super_invocation, build_this_super_qualified_invocation):
18534         New functions.
18535         (patch_assignment): Fixed typo.
18536         (patch_unaryop): Check on final fields occurs only when a decl
18537         exits.
18538         (patch_return): Take constructors into account.
18539         (patch_conditional_expr): New function.
18540         * typeck.c (build_java_signature): Removed unnecessary empty line.
18541
18542 1998-10-28  Jeffrey A Law  (law@cygnus.com)
18543
18544         * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
18545
18546 1998-10-28  Tom Tromey  <tromey@cygnus.com>
18547
18548         * decl.c (init_decl_processing): Renamed fields.
18549         * class.c (make_class_data): Renamed bfsize, nfields, nsfields,
18550         interface_len, msize fields.
18551
18552         * class.c (make_class_data): Removed subclass_head and
18553         subclass_next fields.
18554         * decl.c (init_decl_processing): Removed subclass_head and
18555         subclass_next fields.
18556
18557 1998-10-28  Jeffrey A Law  (law@cygnus.com)
18558
18559         * jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
18560         * mangle.c (emit_unicode_mangled_name): Similarly.
18561
18562 1998-10-26  Nick Clifton  <nickc@cygnus.com>
18563
18564         * jcf-parse.c (get_constant): Place braces around code to compute
18565         'd' when REAL_ARITHMETIC is not defined.
18566
18567 1998-10-25  H.J. Lu  (hjl@gnu.org)
18568
18569         * Make-lang.in (jv-scan$(exeext)): Add stamp-objlist to
18570         dependency.
18571
18572 1998-10-23  Tom Tromey  <tromey@cygnus.com>
18573
18574         * lang-specs.h: `.zip' files are input to jc1.
18575
18576 1998-10-22  Per Bothner  <bothner@cygnus.com>
18577
18578         * jvspecs.c:  Add (but don't enable) support for combining multiple
18579         .class and .java input filenames to a single jc1 invocation.
18580         Add support for -C flag (copile to .class files).
18581         Translate -classpath and -CLASSPATH arguments.
18582         * lang-specs.h:  Don't set %2 spec.
18583
18584 1998-10-22  Tom Tromey  <tromey@cygnus.com>
18585
18586         * jcf-path.c (add_entry): Don't add trailing separator if entry is
18587         a .zip file.
18588         (add_path): Don't add trailing separator to non-empty path
18589         elements.
18590
18591         * lang.c (lang_decode_option): Check for -fclasspath and
18592         -fCLASSPATH before examining other `-f' options.
18593
18594         * java-tree.h (finalize_identifier_node): Don't declare.
18595         * class.c (make_class_data): Don't push "final" field.
18596         * decl.c (init_decl_processing): Don't push "final" field.
18597         (finalize_identifier_node): Removed.
18598         (init_decl_processing): Don't set finalize_identifier_node.
18599
18600         * config-lang.in (stagestuff): Added jcf-dump and jv-scan.
18601
18602 1998-10-11  Anthony Green  <green@cygnus.com>
18603
18604         * Make-lang.in (java): Depend on jcf-dump and jv-scan.
18605         (JV_SCAN_SOURCES): New macro.
18606         (JCF_DUMP_SOURCES): Likewise.
18607         (jcf-dump$(exeext)): New target.
18608         (jv-scan$(exeext)): New target.
18609
18610 1998-10-22  Tom Tromey  <tromey@cygnus.com>
18611
18612         * Makefile.in (LEX): Removed.
18613         (LEXFLAGS): Likewise.
18614         (SET_BISON): New macro.
18615         (BISON): Removed.
18616         ($(PARSE_C)): Use SET_BISON.  Run bison from srcdir to avoid
18617         spurious diffs in parse.c.
18618         ($(PARSE_SCAN_C)): Likewise.
18619         (PARSE_DIR): New macro.
18620         (PARSE_C): Use it.
18621         (PARSE_SCAN_C): Likewise.
18622         (PARSE_RELDIR): New macro.
18623
18624         * jcf-io.c (saw_java_source): Define here, not in jcf-parse.c.
18625
18626         * jcf-io.c (find_class): Use saw_java_source to determine when to
18627         look for `.java' file.
18628         * jcf-parse.c (saw_java_source): New global.
18629         (yyparse): Set it if `.java' file seen.
18630
18631         * Make-lang.in (JAVA_SRCS): Added jcf-path.c.
18632         (GCJH_SOURCES): Likewise.
18633         * Makefile.in (datadir): New macro.
18634         (libjava_zip): Likewise.
18635         (JAVA_OBJS): Added jcf-path.o.
18636         (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18637         (../gcjh$(exeext)): Likewise.
18638         (jcf-path.o): New target.
18639         * java-tree.h (fix_classpath): Removed decl.
18640         * jcf-parse.c (fix_classpath): Removed.
18641         (load_class): Don't call fix_classpath.
18642         * parse.y (read_import_dir): Don't call fix_classpath.
18643         * lex.h: Don't mention classpath.
18644         * lex.c (java_init_lex): Don't initialize classpath.
18645         * jcf-io.c (classpath): Removed global.
18646         (find_class): Use jcf_path iteration functions.  Correctly search
18647         class path for .java file.
18648         (open_in_zip): New argument `is_system'.
18649         * jcf-dump.c (main): Call jcf_path_init.  Recognize all new
18650         classpath-related options.
18651         * lang.c (lang_decode_option): Handle -fclasspath, -fCLASSPATH,
18652         and -I.
18653         (lang_init): Call jcf_path_init.
18654         * lang-options.h: Mention -I, -fclasspath, and -fCLASSPATH.
18655         * lang-specs.h: Handle -I.  Minor cleanup to -M options.
18656         Correctly put braces around second string in each entry.
18657         * gjavah.c (main): Call jcf_path_init.  Recognize all the new
18658         classpath-related options.
18659         (help): Updated for new options.
18660         * jcf.h: Declare functions from jcf-path.c.  Don't mention
18661         `classpath' global.
18662         * jcf-path.c: New file.
18663
18664         * jcf-depend.c: Include jcf.h.
18665
18666         * jcf-write.c (localvar_alloc): Returns `void'.
18667         (localvar_free): Removed unused variable.
18668
18669         * lang.c (OBJECT_SUFFIX): Define if not already defined.
18670         (init_parse): Use OBJECT_SUFFIX, not ".o".
18671
18672 1998-10-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18673
18674         * class.c (emit_register_classes): Renamed from
18675         emit_register_class.
18676         * java-tree.h (emit_register_classes): Prototype renamed from
18677         emit_register_class.
18678         * jcf-parse.c (yyparse): Call emit_register_classes once before
18679         returning.
18680         * parse.y (java_expand_classes): No longer register classes.
18681
18682 1998-10-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18683
18684         * class.c (is_compiled_class): New local variable
18685         seen_in_zip. Identify classes found in currently compiled source
18686         file(s).
18687         * decl.c (complete_start_java_method): Fixed typo.
18688         * java-tree.h (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P,
18689         HAS_BEEN_ALREADY_PARSED_P, IS_A_COMMAND_LINE_FILENAME_P): New macros.
18690         (CLASS_P): Moved around.
18691         (java_parse_abort_on_error): Macro moved from jcf-parse.c
18692         * jcf-parse.c (java_parse_abort_on_error): Macro moved to
18693         java-tree.h
18694         (jcf_parse_source): Changed leading comment. Removed unnecessary
18695         fclose and CLASS_FROM_SOURCE_P marking.
18696         (parse_source_file): New local variables remember_for_generation
18697         and filename. Mark parsed file name identifier node. Removed block
18698         executed when parse_only was null. Set remember_for_generation.
18699         Use it as an argument to java_pop_parser_context.
18700         (yyparse): New local variables several_files, list, next node and
18701         current_file_list. Split ampersand separated file names into
18702         current_file_list. Iterate through the list and parse accordingly.
18703         * parse.h (java_pop_parser_context): New function prototype.
18704         * parse.y (ctxp_for_generation): New static global variable.
18705         (java_pop_parser_context): New argument generate. Link popped ctxp
18706         to ctxp_for_generation list accordingly.
18707         (java_complete_expand_methods): Fixed indentation.
18708         (java_expand_classes): New function.
18709
18710 1998-10-17  Per Bothner  <bothner@cygnus.com>
18711
18712         * Makefile.in:  Link with libiberty.a instead of memmove.o.
18713
18714 1998-10-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18715
18716         * lex.c (setjmp.h): No longer included.
18717         * lex.h (setjmp.h): Included.
18718         * parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
18719         (duplicate_declaration_error_p): Renamed from
18720         duplicate_declaration_error.
18721         (build_array_from_name): New function prototype.
18722         * parse.y (setjmp.h): No longer included.
18723         (variable_declarator_id): Define action.
18724         (build_array_from_name): New function.
18725         (duplicate_declaration_error_p): Renamed from
18726         duplicate_declaration_error.  Fixed leading comment.
18727         (register_fields): Main `for' loop reorganized. Uses
18728         SET_TYPE_FOR_RESOLUTION and build_array_from_name.
18729         (method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
18730         build_array_from_name.
18731         (resolve_class): Set CLASS_LOADED_P on newly build array dimension
18732         types.
18733         (read_import_dir): Don't try to skip `.' and `..'.
18734         (declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
18735         build_array_from_name. Main `for' loop reorganized.
18736         (resolve_qualified_expression_name): When building access to a
18737         field, use the type where the field was found, not its own type.
18738         (maybe_access_field): Use field DECL_CONTEXT if the type where the
18739         field was found is null.
18740         (qualify_ambiguous_name): Sweep through all successive array
18741         dimensions.
18742
18743 1998-10-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18744
18745         * java-tree.h (pop_labeled_block, lang_printable_name,
18746         maybe_add_interface, set_super_info, get_access_flags_from_decl,
18747         interface_of_p, inherits_from_p, fix_classpath,
18748         complete_start_java_method, emit_handlers, init_outgoing_cpool,
18749         make_class_data, register_class, alloc_name_constant): New
18750         function prototypes.
18751         * lang.c (lang_decode_option): Set argc argument unused. Fixed
18752         indentation. Added cast to remove warning.
18753         (lang_printable_name): Set v argument unused.
18754         (lang_print_error): Added argument to lang_printable_name call.
18755         (java_dummy_print, print_lang_decl, print_lang_type,
18756         print_lang_identifier, lang_print_xnode): All argument marked
18757         unused.
18758         * lex.c (java_unget_unicode): Removed unnecessary argument.
18759         (java_allocate_new_line): Unused local variable is gone.
18760         (java_read_char): Added parenthesis in expressions to remove
18761         warnings.  Added final return statement.
18762         (java_read_unicode): Added parenthesis in expression to remove
18763         warning.
18764         (java_parse_end_comment): Fixed java_unget_unicode invocation.
18765         (java_parse_escape_sequence): Likewise.
18766         (java_lex): Unused local variables are gone. Fixed
18767         java_unget_unicode invocation.
18768         * lex.h (set_float_handler): Prototype added when JC1_LITE not
18769         defined.
18770         * parse.h (ERROR_CANT_CONVERT_TO_BOOLEAN): Fixed
18771         lang_printable_name invocation in macro.
18772         (ERROR_CANT_CONVERT_TO_NUMERIC, ERROR_CAST_NEEDED_TO_INTEGRAL):
18773         Likewise.
18774         (duplicate_declaration_error): Suppressed unused argument in
18775         prototype.
18776         (identical_subpath_p): Function declaration is gone.
18777         (patch_invoke): Suppressed unused argument in prototype.
18778         (patch_cast, build_labeled_block, check_thrown_exceptions):
18779         Likewise.
18780         * parse.y (setjmp.h): Included
18781         (toplev.h): Likewise.
18782         (field_declaration:): Suppressed unused local
18783         (label_decl:): Fixed build_labeled_block invocation.
18784         (java_pop_parser_context): Put extra parenthesis around assignment
18785         in if.
18786         (yyerror): Suppressed unused local variables.
18787         (variable_redefinition_error): Fixed lang_printable_name
18788         invocation.
18789         (create_interface): Suppressed unused local variables.
18790         (create_class): Likewise.
18791         (duplicate_declaration_error): Suppressed unused argument. Fixed
18792         lang_printable_name invocation.
18793         (register_fields): Suppressed unused local variable. Fixed
18794         duplicate_declaration_error invocation.
18795         (method_header): Suppressed unused local variable.
18796         (method_declarator, parser_check_super): Likewise.
18797         (java_complete_class): Suppressed unused local variable. Fixed
18798         fatal error message.
18799         (complete_class_report_errors): Added default: in switch.
18800         (java_check_regular_methods): Fixed lang_printable_name
18801         invocations.
18802         (check_throws_clauses): Likewise.
18803         (java_check_abstract_methods): Suppressed unused local
18804         variable. Fixed lang_printable_name invocation.
18805         (read_import_entry): Added supplemental return statement.
18806         (read_import_dir): Suppressed unused local variables.
18807         (check_pkg_class_access, declare_local_variables): Likewise.
18808         (source_start_java_method): Suppressed unused extern variable
18809         declarations
18810         (expand_start_java_method): Suppressed unused extern and local
18811         variable declarations.
18812         (java_complete_expand_methods): Likewise.
18813         (java_complete_expand_method): Suppressed unused local variables.
18814         (make_qualified_name): Likewise.
18815         (resolve_qualified_expression_name): Added default: in
18816         switch. Fixed lang_printable_name invocation.
18817         (class_instance_creation_expression): Added parenthesis around
18818         expressions.
18819         (patch_method_invocation_stmt): Fixed lang_printable_name and
18820         patch_invoke invocations.
18821         (check_for_static_method_reference): Fixed lang_printable_name
18822         invocation.
18823         (patch_invoke): Suppressed unused arguments and local variables.
18824         (lookup_method_invoke): Suppressed unused local variables.
18825         (qualify_ambiguous_name): Added default: in switch.
18826         (identical_subpath_p): Function removed.
18827         (patch_assignment): Suppressed unused local variables. Suppressed
18828         unnecessary if statement. Fixed lang_printable_name invocations.
18829         (try_builtin_assignconv): Fixed lang_printable_name invocations.
18830         (valid_ref_assignconv_cast_p): Parenthesis around
18831         expression. Suppressed unused local variables.
18832         (build_binop): Suppressed unused local variables. fixed
18833         lang_printable_name invocations.
18834         (string_constant_concatenation): Suppressed unused local
18835         variables.
18836         (patch_unaryop): Fixed lang_printable_name invocation.
18837         (patch_cast): Suppressed unnecessary argument. Fixed
18838         lang_printable_name invocation.
18839         (patch_array_ref): Fixed lang_printable_name invocation.
18840         (patch_newarray, patch_return, patch_if_else_statement): Likewise.
18841         (build_labeled_block): Suppressed unused argument.
18842         (generate_labeled_block): Fixed build_labeled_block invocation.
18843         (build_loop_body): Suppressed unused local variables.
18844         (patch_loop_statement): Likewise.
18845         (patch_exit): Fixed lang_printable_name invocation.
18846         (patch_switch_statement): Likewise.
18847         (case_identity): First argument marked unused.
18848         (patch_try_statement): Fixed lang_printable_name invocations.
18849         (patch_synchronized_statement, patch_throw_statement): Likewise.
18850         (check_thrown_exceptions): Fixed check_thrown_exceptions and
18851         lang_printable_name invocations.
18852         (check_thrown_exceptions_do): Suppressed unused argument.
18853
18854 1998-10-14  Tom Tromey  <tromey@cygnus.com>
18855
18856         * jcf-write.c (write_classfile): Add output class file as target.
18857         * lang-options.h: Added -MD, -MMD, -M, and -MM.
18858         * jcf.h: Added declarations for dependency-tracking functions.
18859         * lang-specs.h: Handle -M, -MM, MD, and -MMD.
18860         * lang.c (lang_decode_option): Recognize -MD and -MMD.
18861         (finish_parse): Call jcf_dependency_write.
18862         (dependency_tracking): New global.
18863         (DEPEND_SET_FILE): New define.
18864         (DEPEND_ENABLE): New define.
18865         (init_parse): Enable dependency tracking if required.
18866         Include "flags.h".
18867         * Makefile.in (JAVA_OBJS): Added jcf-depend.o.
18868         (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18869         (../gcjh$(exeext)): Likewise.
18870         (jcf-depend.o): New target.
18871         * Make-lang.in (JAVA_SRCS): Added jcf-depend.c.
18872         (GCJH_SOURCES): Likewise.
18873         * jcf-io.c (open_class): Call jcf_dependency_add_file.  Added
18874         dep_name argument.
18875         (find_classfile): Added dep_name argument.
18876         (find_class): Compute name of dependency.
18877         (open_in_zip): Call jcf_dependency_add_file.
18878         * gjavah.c (output_file): No longer global.
18879         (usage): Don't mention "gjavah".
18880         (help): Likewise.
18881         (java_no_argument): Likewise.
18882         (version): Likewise.
18883         (main): Recognize and handle -M family of options.
18884         (print_mangled_classname): Return is void.
18885         (process_file): Handle case where output is suppressed.
18886         (HANDLE_END_FIELD): Likewise.
18887         (HANDLE_METHOD): Likewise.
18888         * jcf-depend.c: New file.
18889
18890 1998-10-13  Jeffrey A Law  (law@cygnus.com)
18891
18892         * java-tree.def: Add missing newline at EOF.
18893
18894 1998-10-13  Tom Tromey  <tromey@cygnus.com>
18895
18896         * jcf-dump.c (process_class): Use FATAL_EXIT_CODE, not -1.
18897         (main): Likewise.  Exit with SUCCESS_EXIT_CODE at end of
18898         function.
18899         Include <config.h> and "system.h".
18900         (disassemble_method): Undefine RET to avoid clash with
18901         config/i386/i386.h.
18902
18903 1998-10-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
18904
18905         * decl.c (runtime_exception_type_node, error_exception_type_node):
18906         New global variables.
18907         (init_decl_processing): Initialized.
18908         * expr.c (java_lang_expand_expr): Set caught exception type to
18909         null if catch handler argument doesn't exit.
18910         * java-tree.def (SYNCHRONIZED_EXPR, THROW_EXPR): New Java specific
18911         tree codes.
18912         * java-tree.h (runtime_exception_type_node,
18913         error_exception_type_node): Global variables declared.
18914         (DECL_FUNCTION_THROWS): New macro.
18915         (DECL_FUNCTION_BODY): Modified comment.
18916         (DECL_SPECIFIC_COUNT): Likewise.
18917         (struct lang_decl): New field throws_list.
18918         (IS_UNCHECKED_EXPRESSION_P): New macro.
18919         * lex.c (java_lex): Generate location information for THROW_TK.
18920         * parse.h (PUSH_EXCEPTIONS, POP_EXCEPTIONS, IN_TRY_BLOCK_P,
18921         EXCEPTIONS_P): New macros.
18922         (enum jdep_code): New value JDEP_EXCEPTION.
18923         (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT,
18924         BUILD_ASSIGN_EXCEPTION_INFO, BUILD_THROW, SET_WFL_OPERATOR,
18925         PATCH_METHOD_RETURN_ERROR): New macros.
18926         (patch_method_invocation_stmt): Added new argument to prototype.
18927         (patch_synchronized_statement, patch_throw_statement,
18928         check_thrown_exceptions, check_thrown_exceptions_do,
18929         purge_unchecked_exceptions, check_throws_clauses): New function
18930         prototypes.
18931         * parse.y Fixed typo in keyword section.
18932         (throw:): Rule tagged <node>.
18933         (THROW_TK): Keyword tagged <operator>.
18934         (method_header:): Last argument to call to method_header passed
18935         from throws: rule.
18936         (throws:, class_type_list:, throw_statement:,
18937         synchronized_statement:, synchronized:): Defined actions.
18938         (method_header): New local variable current. Register exceptions
18939         from throws clause.
18940         (java_complete_tree): Complete and verify exceptions from throws
18941         clause.
18942         (complete_class_report_errors): Error message on exceptions not
18943         found
18944         (java_check_regular_methods): Fixed typo. Shortcut on private
18945         overriding methods. Changed error message on method
18946         redefinition. Check for throws clause compatibility.
18947         (check_throws_clauses): New function.
18948         (java_check_abstract_methods): Use DECL_NAME for wfl or current
18949         method. Changed error message on method redefinition.
18950         (currently_caught_type_list): New static variable.
18951         (java_complete_expand_methods): Purge unchecked exceptions from
18952         throws clause list. Call PUSH_EXCEPTIONS before walk and
18953         POP_EXCEPTIONS after.
18954         (resolve_qualified_expression_name): Pass new argument as NULL to
18955         patch_method_invocation_stmt.
18956         (patch_method_invocation_stmt): New argument ref_decl. Invoke
18957         PATCH_METHOD_RETURN_ERROR when returning with error. Reverse
18958         argument list when appropriate. Use new argument if non null to
18959         store selected method decl.
18960         (patch_invoke): Convert if necessary args of builtin types before
18961         forming CALL_EXPR. Argument list no longer reversed here.
18962         (invocation_mode): Treat final methods as static methods.
18963         (java_complete_tree): New cases for THROW_EXPR: and
18964         SYNCHRONIZED_EXPR:. Check thrown exceptions when completing
18965         function call.
18966         (complete_function_arguments): No more RECORD_TYPE
18967         conversion. Function parameter nodes no longer saved.
18968         (valid_ref_assignconv_cast_p): Avoid handling null type.
18969         (patch_binop): Fixed null constant reference handling.
18970         (build_try_statement): Use BUILD_ASSIGN_EXCEPTION_INFO and
18971         BUILD_THROW macros.
18972         (patch_try_statement): Fixed comments. Record caught types in
18973         list, push the list, expand try block and pop the list.
18974         (patch_synchronized_statement, patch_throw_statement,
18975         check_thrown_exceptions, check_thrown_exceptions_do,
18976         purge_unchecked_exceptions): New functions.
18977         * typeck.c (lookup_argument_method): Allow WFL in place of method
18978         DECL_NAME during method definition check
18979
18980 1998-10-09  Tom Tromey  <tromey@cygnus.com>
18981
18982         * gjavah.c (decode_signature_piece): New function.
18983         (print_c_decl): Use it.  Added `name_override' argument.
18984         (print_method_info): Use name_override argument to print_c_decl.
18985         (seen_fields): Removed.
18986         (print_field_info): Don't update seen_fields.
18987         (struct method_name): New structure.
18988         (method_name_list): New global.
18989         (print_method_info): Add new method to list of methods.
18990         (name_is_method_p): New function.
18991         (print_field_info): If field name has same name as method, then
18992         change field name.
18993         (process_file): Parse methods before fields.
18994         (field_pass): New global.
18995         (HANDLE_END_FIELD): Take field_pass into account.
18996
18997 1998-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18998
18999         * Makefile.in (keyword.h): Add -L KR-C -F ', 0' flags to gperf.
19000         (keyword.h): Regenerate using gperf 2.7.1 (19981006 egcs).
19001
19002 1998-10-03  Anthony Green  <green@cygnus.com>
19003
19004         * jvspec.c: Fix bug in jvgenmain_spec patch.
19005
19006 1998-10-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19007
19008         * Makefile.in (lang.o:): Install dependency on java-tree.def.
19009         * decl.c (soft_exceptioninfo_call_node): New global variable.
19010         (init_decl_processing): Fixed indentation. soft_badarrayindex_node
19011         takes extra integer argument. soft_exceptioninfo_call_node
19012         initialized.
19013         * except.c (java_set_exception_lang_code): New function
19014         (method_init_exceptions): Called here.
19015         (prepare_eh_table_type): New function.
19016         (expand_end_java_handler): Called here.
19017         * expr.c (build_java_throw_out_of_bounds_exception): Now features
19018         one argument. Modified generation of call to
19019         soft_badarrayindex_node to use new argument.
19020         (build_java_arrayaccess): Pass faulty index value to
19021         build_java_throw_out_of_bounds_exception.
19022         (generate_name): New function.
19023         (java_lang_expand_expr): New local variables node, current,
19024         has_finally_p. Expand TRY_EXPR node.
19025         (process_jvm_instruction): Replace top of the stack with thrown
19026         object reference when entering exception handler.
19027         * java-tree.def (TRY_EXPR, CATCH_EXPR, FINALLY_EXPR): New Java
19028         specific tree codes.
19029         * java-tree.h (soft_exceptioninfo_call_node): Declaration of new
19030         global.
19031         (DECL_SPECIFIC_COUNT): New macro.
19032         (prepare_eh_table_type, java_set_exception_lang_code,
19033         generate_name): New function declarations.
19034         (match_java_method): Declaration deleted.
19035         (FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, CATCH_EXPR_GET_EXPR): New
19036         macros.
19037         * lex.c (TRY_TK, CATCH_TK): Generate location information.
19038         * parse.h (redefinition_error, refine_accessible_methods_list,
19039         can_cast_to_p): Function declaration removed.
19040         (classitf_redefinition_error, variable_redefinition_error,
19041         parse_jdk1_1_error, find_applicable_accessible_methods_list,
19042         find_most_specific_methods_list, argument_types_convertible,
19043         enter_a_block, valid_builtin_assignconv_identity_widening_p,
19044         valid_cast_to_p, valid_method_invocation_conversion_p,
19045         try_reference_assignconv, add_stmt_to_compound,
19046         build_jump_to_finally, build_tree_list, patch_try_statement,
19047         java_get_catch_block): New function declarations.
19048         * parse.y (string_buffer_type): Global variable deleted.
19049         (group_of_labels, catches, catch_clause, catch_clause_parameter,
19050         finally): Rules tagged <node>.
19051         (TRY_TK, CATCH_TK): Token tagged <operator>.
19052         (class_body_declaration:, class_member_declaration:,
19053         formal_parameter:, explicit_constructor_invocation:,
19054         interface_member_declaration:, constant_declaration:,
19055         primary_no_new_array:, class_instance_creation_expression:,
19056         array_creation_expression:): Issue error on unsuported JDK1.1
19057         features.
19058         (try_statement:, catches:, finally:): Define actions.
19059         (catch_clause_parameter): New rule.
19060         (catch_clause:): Use new rule catch_clause_parameter.
19061         (parse_jdk1_1_error): New function.
19062         (redefinition_error): Renamed classitf_redefinition_error.
19063         (variable_redefinition_error): New function.
19064         (check_class_interface_creation): Call
19065         classitf_redefinition_error.
19066         (java_complete_tree): Added error message on JDEP_TYPE: case.
19067         (complete_class_report_errors): Fixed indentation.
19068         (declare_local_variables): Call variable_redefinition_error.
19069         (source_end_java_method): Call java_set_exception_lang_code and
19070         emit_handlers where appropriate.
19071         (java_method_add_stmt): Call add_stmt_to_block.
19072         (add_stmt_to_block): New function.
19073         (lookup_method_invoke): Fixed outside comment. new local variable
19074         candicates.  Call find_applicable_accessible_methods_list and
19075         find_most_specific_methods_list when searching for a
19076         method. Modified error report to list possible candidates when
19077         applicable.
19078         (find_applicable_accessible_methods_list,
19079         find_most_specific_methods_list, argument_types_convertible): New
19080         function.
19081         (refine_accessible_methods_list): Function deleted.
19082         (java_complete_tree): Handle TRY_EXPR. ARRAY_REF handling: save
19083         expr (if applicable) before calling patch_array_ref.
19084         (build_expr_block): Fixed BLOCK_EXPR_BODY assignment.
19085         (enter_block): Fixed comment.
19086         (enter_a_block): New function.
19087         (patch_assignment): Reorganized. Call try_reference_assignconv for
19088         references. Call valid_cast_to_p instead of can_cast_to_p.
19089         (try_reference_assignconv,
19090         valid_builtin_assignconv_identity_widening_p): New functions.
19091         (valid_ref_assignconv_cast_p): Fixed inverted test on CLASS_FINAL.
19092         (valid_cast_to_p, valid_method_invocation_conversion_p): New
19093         functions.
19094         (build_string_concatenation): Don't resolve StringBuffer.
19095         (patch_cast): Fixed inverted arguments.
19096         (patch_array_ref): Code to save array expr deleted. Call
19097         valid_cast_to_p instead of can_cast_to_p.
19098         (generate_labeled_block): Call generate_name.
19099         (build_jump_to_finally, build_try_statement, java_get_catch_block,
19100         patch_try_statement): New functions.
19101         * typeck.c (match_java_method): Function deleted.
19102
19103 1998-10-02  Anthony Green  <green@cygnus.com>
19104
19105         * jvspec.c: jvgenmain_spec uses different temporary file names.
19106
19107 1998-10-02  Anthony Green  <green@cygnus.com>
19108
19109         * jvspec.c (lang_specific_driver): Fail if user specifies
19110         --main= when not linking.
19111
19112 1998-09-28  Tom Tromey  <tromey@cygnus.com>
19113
19114         * class.c (make_class_data): Push value for `thread' field.
19115         * decl.c (init_decl_processing): Added `thread' field to class.
19116
19117         * class.c (add_field): Always make static fields externally
19118         visible.
19119
19120 1998-09-26  Anthony Green  <green@cygnus.com>
19121
19122         * expr.c (build_java_athrow,
19123         build_java_throw_out_of_bounds_exception, expand_invoke,
19124         build_newarray, expand_java_multianewarray, build_java_monitor):
19125         Update comments to reflect _Jv_* function names.
19126
19127 1998-09-25  Per Bothner  <bothner@cygnus.com>
19128
19129         * decl.c (complete_start_java_method):  DECL_RESULT is always promoted.
19130         * decl.c (start_java_method):  Handle PROMOTE_PROTOTYPES target macro.
19131         * parse.y (expand_start_java_method):  Likewise.
19132
19133 1998-09-24  Per Bothner  <bothner@cygnus.com>
19134
19135         * expr.c (pop_arguments):  Handle PROMOTE_PROTOTYPES target macro.
19136
19137         * class.c (push_class):  IDENTIFIER_SIGNATURE_TYPE is now POINTER_TYPE.
19138         (add_field):  No longer need to convert from RECORD_TYPE to pointer,
19139         * expr.c:  Remove no-longer-needed calls to promote_type.
19140         * decl.c (give_name_to_locals):  Liekwise.
19141         * jcf-parse.c (get_class_constant):  Compensate for new signatures.
19142         * parse.y:  Add/remove promote_type calls as appropriate.
19143         * typeck.c (parse_signature_type):  Returns POINTER_TYPE for objects.
19144         (parse_signature_string):  Likewise.
19145         (build_java_array_type):  Fix for now signature convenions.
19146
19147         * lex.c (java_lex):  Fix (from Alex) for JC1_LITE problem.
19148
19149 1998-09-23  Tom Tromey  <tromey@cygnus.com>
19150
19151         * class.c (init_class_processing): libjava function renamed to
19152         _Jv_RegisterClass.
19153
19154 1998-09-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19155
19156         * expr.c (java_lang_expand_expr): New case for SWITCH_EXPR.
19157         * java-tree.def: Fixed DEFTREECODE third argument.
19158         (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
19159         CASE_EXPR, DEFAULT_EXPR): New tree codes for Java.
19160         * java-tree.h: (IS_CRAFTED_STRING_BUFFER_P): New macro.
19161         (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19162         JAVA_THIS_EXPR): Now replaced by tree code definitions.
19163         (CALL_CONSTRUCTOR_P): Now uses NEW_CLASS_EXPR.
19164         * lang.c (java_tree_code_type, java_tree_code_length,
19165         java_tree_code_name): New arrays.
19166         (lang_init): Append Java tree node definitions to Gcc ones.
19167         * lex.c (expression_obstack): Declared as extern when JC1_LITE
19168         defined.
19169         (java_init_lex): Initialize wfl_append, wfl_string_buffer,
19170         wfl_to_string.
19171         (java_lex): Allow declaration of empty string constants. Retain
19172         location information on CASE_TK and DEFAULT_TK.
19173         * parse.h (JFLOAT_TYPE_P, JINTEGRAL_TYPE_P, JNUMERIC_TYPE_P,
19174         JPRIMITIVE_TYPE_P, JSTRING_TYPE_P, JSTRING_P, JREFERENCE_TYPE_P):
19175         Modified to be more robust.
19176         (BUILD_APPEND, BUILD_STRING_BUFFER): New macros.
19177         (build_new_invocation, try_builtin_assignconv,
19178         patch_switch_statement, string_constant_concatenation,
19179         build_string_concatenation, patch_string_cst, patch_string,
19180         java_expand_switch): New function declarations.
19181         * parse.y: Rules related to switch and EH tagged <node>.
19182         (label_id): Set to NULL_TREE
19183         (wfl_string_buffer, wfl_append, wfl_to_string): New static global
19184         tree nodes.
19185         (this_or_super:): Fixed indentation.
19186         (statement:, statement_nsi:, statement_without_trailing_substatement:,
19187         statement_expression:): Removed call to RULE on all sub-rules.
19188         (switch_expression:, switch_labels:): New rules.
19189         (switch_statement:, switch_block:, switch_block_statement_groups:,
19190         switch_block_statement_group:, switch_labels:, switch_label:):
19191         Defined actions.
19192         (throw_statement:, synchronized_statement:, try_statement:):
19193         Defined temporary actions.
19194         (class_instance_creation_expression:): Call
19195         build_new_invocation. Fixed indentation.
19196         (field_access): Fixed indentation.
19197         (method_invocation): Likewise.
19198         (make_qualified_primary): Use THIS_EXPR.
19199         (resolve_qualified_expression_name): Use NEW_CLASS_EXPR. When
19200         resolving from SUPER, set *type_found.
19201         (qualify_ambiguous_name): Use NEW_CLASS_EXPR.
19202         (java_complete_tree): Removed unused local variable `location'. Case
19203         for SWITCH_EXPR, sharing code with LOOP_EXPR. Use NEW_ARRAY_EXPR,
19204         NEW_CLASS_EXPR, UNARY_PLUS_EXPR and THIS_EXPR. New string handling
19205         on MODIFY_EXPR: and all binary operator tree code cases. Removed
19206         STRING_CST: case. default: checks for patchable strings.
19207         (complete_function_arguments): Transform string constant or
19208         crafted StringBuffer if necessary.
19209         (build_method_invocation): Fixed comments.
19210         (build_new_invocation): New function.
19211         (patch_assignment): Call try_builtin_assignconv to figure a valid
19212         assignment conversion between builtin types.
19213         (try_builtin_assignconv): New function.
19214         (build_binop): Use URSHIFT_EXPR directly to call build.
19215         (operator_string): Use UNARY_PLUS_EXPR.
19216         (patch_binop): Use UNARY_PLUS_EXPR. Handle string concatenation
19217         operator.
19218         (do_merge_string_cste, merge_string_cste,
19219         string_constant_concatenation, build_string_concatenation,
19220         patch_string, patch_string_cst): New function.
19221         (build_unary_op): Use UNARY_PLUS_EXPR and CONVERT_EXPR.
19222         (patch_unaryop): Likewise. New test of valid ++/-- operands.
19223         (build_newarray_node): Use NEW_ARRAY_EXPR.
19224         (build_this): Use THIS_EXPR.
19225         (build_return): Enable debug information on return statement.
19226         (build_if_else_statement): Likewise.
19227         (complete_labeled_statement): Fixed related comment.
19228         (build_loop_body): Fixed comment.
19229         (build_bc_statement): Enable debug information on break/continue
19230         statements.
19231         (patch_bc_statement): Fixed typos. Handle SWITCH statement
19232         context.
19233         (patch_switch_statement, case_identity, java_expand_switch): New
19234         functions.
19235
19236 1998-09-21  Per Bothner  <bothner@cygnus.com>
19237
19238         * buffer.h (BUFFER_INIT):  New macro.
19239         * jcf-write.c (struct jcf_partial):  New type.  Put global stuff here.
19240         Pass (struct jcf_partial *state) to most functions.
19241         (jcf_block, jcf_relocation):  New types.
19242         Support labels, branches, conditionals, loops.
19243
19244 1998-09-21  Tom Tromey  <tromey@cygnus.com>
19245
19246         * decl.c (INT_TYPE_SIZE): Define as BITS_PER_WORD if not defined.
19247
19248 1998-09-21  Per Bothner  <bothner@cygnus.com>
19249
19250         * decl.c (integer_type_node):  Make it have INT_TYPE_SIZE.
19251         * verify.c (verify_jvm_instructions):  Use int_type_not (32 bits),
19252         not integer_type_node (INT_TYPE_SIZ bits).
19253
19254         * parse.y (patch_if_else_statement):  Accept promoted_boolean_type_node.
19255
19256         * jcf-reader.c (get_attribute):  New HANDLE_EXCEPTION_TABLE hook.
19257         * jcf-dump.c (print_exception_table):  New function.
19258         (disassemble_method):  Better handling of wide instructions.
19259         Make more robust for bad input.
19260
19261 1998-09-30  Jeffrey A Law  (law@cygnus.com)
19262
19263         * jcf-write.c (OP2, OP4): Use "_i", not "_I" to avoid problems on
19264         FreeBSD.
19265
19266 1998-09-17  Jeffrey A Law  (law@cygnus.com)
19267
19268         * Makefile.in (jcf-dump, jvgenmain): Link in memmove.o too.
19269
19270 1998-09-17  Tom Tromey  <tromey@cygnus.com>
19271
19272         * Makefile.in ($(PARSE_H)): Removed target.
19273
19274 1998-09-17  Jeffrey A Law  (law@cygnus.com)
19275
19276         * Makefile.in (JAVA_OBJS): Add memmove.o
19277         (memmove.o): New target & rules.
19278
19279 1998-09-15  Tom Tromey  <tromey@cygnus.com>
19280
19281         * expr.c (expand_invoke): Don't generate a call to the class init
19282         code.
19283
19284 1998-09-14  Jeffrey A Law  (law@cygnus.com)
19285
19286         * Makefile.in: Add many missing dependencies.
19287         * buffer.c, class.c, constants.c, decl.c: Use system.h and toplev.h
19288         as appropriate.
19289         * except.c, expr.c, jcf-io.c jcf-parse.c, jcf-write.c: Likewise.
19290         * jvgenmain.c lang.c mangle.c typeck.c verify.c: Likewise.
19291
19292 1998-09-11  Per Bothner  <bothner@cygnus.com>
19293
19294         * decl.c (complete_start_java_method):  If method is static (and
19295         not private) call _Jv_InitClass.
19296         * expr.c (expand_invoke):  Don't call build_class_init.
19297
19298         * jvspec.c (jvgenmain_spec):  Fix spec for generated .o file.
19299
19300 1998-09-10  Jeffrey A Law  (law@cygnus.com)
19301
19302         * Make-lang.in (GCJ): Define before using.
19303
19304 1998-09-09  Jeffrey A Law  (law@cygnus.com)
19305
19306         * gjavah.c (java_no_argument): Renamed from no_argument to avoid
19307         losing due to namespace pollution in GNU getopt.h
19308
19309 1998-09-09  Tom Tromey  <tromey@cygnus.com>
19310
19311         * Make-lang.in (java.all.build): Don't mention jvgenmain or gcjh.
19312         (java.all.cross): Likewise.
19313         (java.rest.encap): Likewise.
19314
19315 1998-09-08  Jeffrey A Law  (law@cygnus.com)
19316
19317         * gjavah.c (print_class_decls): Fix thinko in arglist
19318         * jcv-io.c (find_classfile): Similarly.
19319
19320 1998-09-07  Jeffrey A Law  (law@cygnus.com)
19321
19322         * Makefile.in (INCLUDES): Update for recent toplevel gcc changes.
19323
19324 1998-09-05  Tom Tromey  <tromey@cygnus.com>
19325
19326         * Make-lang.in (java.maintainer-clean): Don't remove parse.h.
19327         (java.mostlyclean): Remove parse.c and parse-scan.c, not parse.h.
19328         * Makefile.in (PARSE_C): New macro.
19329         (PARSE_H): Likewise.
19330         (PARSE_SCAN_C): Likewise.
19331         ($(PARSE_C)): Target renamed from parse.c.
19332         ($(PARSE_SCAN_C)): Target renamed from parse-scan.c.
19333         (clean): Remove parse-scan.c as well.
19334         (parse.o): Depend on $(PARSE_C).
19335
19336 1998-09-05  Anthony Green  <green@cygnus.com>
19337
19338         * README, license.terms: Removed.
19339
19340         * Make-lang.in, Makefile.in, class.c, config-lang.in, constants.c,
19341         decl.c, except.c, expr.c, gjavah.c, java-except.h, java-tree.h,
19342         javaop.def, javaop.h, jcf-dump.c, jcf-io.c, jcf-parse.c,
19343         jcf-reader.c, jcf-write.c, jcf.h, jvgenmain.c, jvspec.c,
19344         keyword.gperf, keyword.h, lang-options.h, lang-specs.h, lang.c,
19345         lex.c, lex.h, mangle.c, parse-scan.y, parse.h, parse.y, typeck.c,
19346         verify.c, zextract.c, zipfile.h: Fixed copyright assignment,
19347         and Java trademark attribution.
19348
19349 1998-09-04  Tom Tromey  <tromey@cygnus.com>
19350
19351         * Makefile.in: Use gcjh, not gjavah.
19352         * config-lang.in (stagestuff): Use gcjh, not gjavah.
19353         * Make-lang.in: Changed gjavah to gcjh everywhere.
19354
19355 1998-09-03  Per Bothner  <bothner@cygnus.com>
19356
19357         * gjavah.c:  Support new -prepend -add -append flags.
19358         (print_method_info):  Method is not virtual if class is final.
19359
19360 1998-09-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19361
19362         * jv-scan.c: Fixed copyright assignment.
19363         * keyword.gperf: Likewise.
19364         * keyword.h: Likewise.
19365         * lex.c: Fixed copyright assignment.
19366         (java_lex): Push unicode back when parsing '<'.
19367         * lex.h: Fixed copyright assignment.
19368         * parse-scan.y: Likewise.
19369         * parse.h: Fixed copyright assignment.
19370         (build_debugable_stmt, complete_for_loop): New function prototypes.
19371         * parse.y: Fixed copyright assignment.
19372         (for_statement:): Call complete_for_loop. Set EXIT_EXPR to be
19373         size_zero_node when completing a loop with no exit condition.
19374         (for_statement_nsi:): Define action.
19375         (for_init:, for_update:): Return size_zero_node when empty.
19376         (declare_local_variables): Call build_debugable_stmt.
19377         (build_debugable_stmt): New function.
19378         (build_loop_body): Build debugable statement around loop
19379         condition part.
19380         (complete_loop_body): Take into account the debugable statement
19381         around the EXIT_EXPR.
19382         (complete_loop_body): New function.
19383         (patch_exit_expr): Fixed condition inversion.
19384
19385 1998-09-02  Tom Tromey  <tromey@cygnus.com>
19386
19387         * Make-lang.in (jvspec.o): Use GCC_THREAD_FILE to compute correct
19388         name of thread define.
19389         * jvspec.c (THREAD_NAME): New macro.
19390         (GCLIB): Likewise.
19391         (THREADLIB): Likewise.
19392         (lang_specific_driver): Recognize attempt to link with thread
19393         library or gc library.  Recognize -ljava on command line so it
19394         isn't linked against more than once.
19395
19396 1998-09-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19397
19398         * parse-scan.y (report_main_declaration): Name of the class
19399         containing `main' can be a qualified name.
19400
19401 1998-08-31  Tom Tromey  <tromey@cygnus.com>
19402
19403         * config-lang.in: Changed gjavac to gjc everywhere.
19404         * Make-lang.in: Changed gjavac to gjc everywhere.
19405
19406 1998-08-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19407
19408         * Make-lang.in (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): New variable.
19409         (java.install-common:): Loop over JAVA_TARGET_INDEPENDENT_BIN_TOOLS
19410         and install the files.
19411         * Makefile.in (JAVA_OBJS_LITE): New variable.
19412         (compiler:): Now include jv-scan as a dependency.
19413         (../jv-scan$(exeext), parse-scan.c): New targets.
19414         (../jcf-dump$(exeext)): Was jcf-dump$(exeext) before.
19415         * config-lang.in (compilers): Removed gcj, gjavah from the list.
19416         * jcf-parse.c (parse_source_file): Call java_layout_classes and
19417         check for errors even if parse_only.
19418         * lex.c (java_init_lex): Reorganized and skip parts if JC1_LITE is
19419         defined.
19420         (yylex): New function. Uses java_lex body.
19421         (java_lex): Removed commented out statement. Remove local variable
19422         literal. Use SET_LVAL_NODE_TYPE and SET_LVAL_NODE where
19423         appropriate.  Use macros FLOAT_TYPE_NODE, DOUBLE_TYPE_NODE,
19424         DCONST0, SET_FLOAT_HANDLER, SET_REAL_VALUE_ATOF,
19425         SET_LVAL_NODE_TYPE and GET_TYPE_PRECISION. Don't create STRING_CST
19426         if JC1_LITE is defined. Use BUILD_ID_WFL to build identifiers. Use
19427         SET_MODIFIER_CTX, SET_LVAL_NODE, BUILD_ID_WFL and GET_IDENTIFIER
19428         where appropriate.
19429         (java_lex_error): Empty if JC1_LITE is defined.
19430         (java_get_line_col): Return 0 if JC1_LITE is defined.
19431         * lex.h (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR,
19432         SET_MODIFIER_CTX): Moved into the section containing the macros
19433         conditionally defined by JC1_LITE.
19434         (BUILD_OPERATOR,BUILD_OPERATOR2): Just return the TOKEN
19435         argument if JC1_LITE is defined.
19436         (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, REAL_VALUE_ATOF,
19437         REAL_VALUE_ISINF, REAL_VALUE_ISNAN): Preset to values if JC1_LITE
19438         is defined.
19439         (DCONST0, SET_FLOAT_HANDLER, GET_IDENTIFIER, SET_REAL_VALUE_ATOF,
19440         FLOAT_TYPE, DOUBLE_TYPE, SET_MODIFIER_CTX, GET_TYPE_PRECISION,
19441         SET_LVAL_NODE, SET_LVAL_NODE_TYPE, BUILD_ID_WFL): New macros, set
19442         to different values according to JC1_LITE.
19443         * parse.h (int_fits_type_p, stabilize_reference): Prototype not
19444         declared if JC1_LITE set.
19445         (jdep_code, typedef struct _jdep, typedef struct _jdeplist): Not
19446         defined if JC1_LITE not set.
19447         (struct parser_ctx): Reorganized and skip the jc1 front end part
19448         if JC1_LITE set.
19449         (java_layout_classes): New function definition.
19450         (java_push_parser_context, java_init_lex, yyparse, yylex,
19451         yyerror): Prototype always declared. All other static function
19452         prototypes declared only if JC1_LITE is not set.
19453         * parse.y (yyparse, yylex, yyerror): No longer declared here. Now
19454         declared in parse.h.
19455         (java_layout_classes): New function.
19456         (java_complete_expand_methods): No longer layout the class here.
19457         * parse-scan.y: New file.
19458         * jv-scan.c: New file.
19459
19460 1998-08-25  Tom Tromey  <tromey@cygnus.com>
19461
19462         * gjavah.c (main): Handle -friend option.
19463         (friend_specs): New global.
19464         (generate_access): Handle friend_specs.
19465         (process_file): Likewise.
19466         (MAX_FRIENDS): New macro.
19467         (friend_count): New global.
19468         (print_cxx_classname): Added `prefix' argument.  Ignore arrays.
19469         Changed all callers.
19470
19471 1998-08-24  Per Bothner  <bothner@cygnus.com>
19472
19473         * jcf-dump.c (process_class):  Move JCF_FINISH use to main,
19474         (main):  Handle processing all the entries of a named .zip archive.
19475         * jcf-io.c (jcf_trim_old_input):  New function.
19476         * jcf.h (GET_u2_le,GET_u4_le,JCF_readu2_le,JCF_readu4_le):  New macros.
19477
19478 1998-08-24  Per Bothner  <bothner@cygnus.com>
19479
19480         * lang.c (flag_assume_compiled):  Make default be on.
19481
19482 1998-08-21  Per Bothner  <bothner@cygnus.com>
19483
19484         * jcf-dump.c:  Add bunches of flags to control output more.
19485         (process_class):  New function;  support printing more than one class.
19486         (main): Support new --print-main and --javap flags.
19487         * jcf-reader.c (IGNORE_ATTRIBUTE):  New hook.
19488         * jcf.h (CPOOL_INDEX_IN_RANGE):  New macro.
19489
19490 1998-08-20  Per Bothner  <bothner@cygnus.com>
19491
19492         Change mangling of dispatch table to match C++ vtable (w/thunks).
19493         * class.c (build_dtable_decl), java-tree.h:  New function.
19494         (make_class_data):  Call it.
19495         * decl.c (init_decl_processing):  Likewise.
19496
19497 1998-08-19  Warren Levy  <warrenl@cygnus.com>
19498
19499         * decl.c (init_decl_processing): Use _Jv_NewObjectArray, not
19500         soft_anewarray; adjust args passed.
19501         * expr.c (build_anewarray): Adjust args for soft_anewarray_node to
19502         match _Jv_NewObjectArray.
19503
19504 1998-08-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19505
19506         * decl.c (push_labeled_block, pop_labeled_block): New functions.
19507         * expr.c (loopup_label): Call create_label_decl.
19508         (create_label_decl): New function.
19509         (java_lang_expand_expr): Call expand_start_bindings with argument
19510         set to zero.
19511         * java-tree.h Added space after PROTO in function declarations
19512         when necessary.
19513         (IS_FOR_LOOP_P, IS_BREAK_STMT_P): New macros.
19514         (create_label_decl, push_labeled_block): New function
19515         declarations.
19516         * lex.c (label_id): Initialize.
19517         (SUPER_TK, THIS_TK, RETURN_TK): Merged common actions in final
19518         switch.
19519         * parse.h Added space after PROTO in function declarations when
19520         necessary.
19521         (LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
19522         LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
19523         LOOP_EXPR_BODY_BODY_EXPR, LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P,
19524         PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, PUSH_LOOP, POP_LOOP): New
19525         macros.
19526         (struct parser_ctxt): New fields current_loop,
19527         current_labeled_block.
19528         (build_if_else_statement, patch_if_else_statement,
19529         add_stmt_to_compound, patch_exit_expr, build_labeled_block,
19530         generate_labeled_block, complete_labeled_statement,
19531         build_bc_statement, patch_bc_statement, patch_loop_statement,
19532         build_new_loop, build_loop_body, complete_loop_body): New function
19533         declarations.
19534         * parse.y (java_warning_count): New global variable.
19535         (label_id): New static variable.
19536         (BREAK_TK, CONTINUE_TK): Token tagged <operator>.
19537         (block:): Return size_zero_node when block is empty.
19538         (empty_statement:): Return size_zero_node.
19539         (statement:): Implement supplemental action when for_statement: is
19540         reduced.
19541         (label_decl:): New rule.
19542         (labeled_statement:): Rewritten using label_decl. Actions
19543         implemented.
19544         (labeled_statement_nsi:): Likewise.
19545         (if_then_statement): Actions implemented.
19546         (while_expression): New rule.
19547         (while_statement:): Rewritten using while_expression. Actions
19548         implemented.
19549         (while_statement_nsi:): Likewise.
19550         (do_statement_begin:): New rule.
19551         (do_statement:): Rewritten using do_statement_begin. Actions
19552         implemented.
19553         (for_statement:): Rewritten using for_begin. Actions implemented.
19554         (for_statement_nsi:): Likewise.
19555         (for_header:, for_begin:): New rules.
19556         (for_init:): Actions implemented.
19557         (statement_expression_list:, break_statement:,
19558         continue_statement:): Likewise.
19559         (yyerror): Count number of issued warning(s).
19560         (java_report_errors): Report error(s) and/or warning(s).
19561         (java_complete_class): Use build_java_argument_signature to
19562         recompute completed method signature.
19563         (java_check_regular_methods): New locals method_wfl and aflags.
19564         Use method_wfl instead of lookup_cl during error reports. Fixed
19565         indentation and modified some error messages. Use
19566         lang_printable_name in method instead of the DECL_NAME. New code
19567         to issue warnings on methods not overriding corresponding methods
19568         private to a different package.
19569         (java_method_add_stmt): Call add_stmt_to_compound.
19570         (add_stmt_to_compound): New function.
19571         (java_complete_tree): Handle LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR,
19572         LOOP_EXPR, EXIT_EXPR and COND_EXPR.
19573         (build_if_else_statement, patch_if_else_statement,
19574         build_labeled_block, generate_labeled_block,
19575         complete_labeled_statement, build_new_loop, build_loop_body,
19576         complete_loop_body, patch_loop_statement, build_bc_statement,
19577         patch_bc_statement, patch_exit_expr): New functions.
19578         * typeck.c (build_java_signature): Build argument signature before
19579         enclosing it in between parenthesis.
19580
19581 1998-08-17  Warren Levy  <warrenl@cygnus.com>
19582
19583         * Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in
19584         (JAVA_OBJS): Added reminder comment
19585
19586 1998-08-13  Nick Clifton  <nickc@cygnus.com>
19587
19588         * gjavah.c (D_NAN_MASK): Append LL to the constant to force it to
19589         be interpreted as a long long.
19590
19591 1998-08-13  Warren Levy  <warrenl@cygnus.com>
19592
19593         * decl.c (init_decl_processing): Use _Jv_InitClass, not
19594         soft_initialise_class.  Use _Jv_NewMultiArray, not
19595         soft_multianewarray.  Use _Jv_ThrowBadArrayIndex, not
19596         soft_badarrayindex.  Use _Jv_CheckCast, not soft_checkcast.  Use
19597         _Jv_CheckArrayStore, not soft_checkarraystore.  Use
19598         _Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod.
19599
19600 1998-08-12  Per Bothner  <bothner@cygnus.com>
19601
19602         * decl.c, java-tree.h (this_identifier_node, super_identifier_node,
19603         length_identifier_node):  New global tree node constants.
19604         * parse.y (kw_super, kw_this, kw_length):  Removed globals.
19605         Replace uses by super_identifier_node etc.
19606         * lex.c (kw_super, kw_this, kw_length):  Don't initialize.
19607
19608         * parse.y (resolve_field_access):  Don't special-case ".length" if
19609         flag_emit_class_files.
19610         (patch_array_ref):  Leave as ARRAY_REF if flag_emit_class_files.
19611         * jcf-write.c (generate_bytecode_insns):  Handle ARRAY_REF opcode
19612         and ARRAY.length.
19613
19614 1998-08-11  Per Bothner  <bothner@cygnus.com>
19615
19616         * decl.c (init_decl_processing): Remove unused method_type_node fields.
19617         * class.c (make_method_value):  Remove init for removed fields.
19618
19619         * class.c (layout_class):  Use build_java_argument_signature.
19620         * java-tree.h (TYPE_ARGUMENT_SIGNATURE):  New macro.
19621
19622         * typeck.c (push_java_argument_signature):  Removed.  Merged into ...
19623         (build_java_argument_signature):  Use TYPE_ARGUMENT_SIGNATURE cache.
19624         (build_java_signature):  Don't use push_java_argument_signature.
19625
19626         * typeck.c (lookup_argument_method):  New function.
19627         * parse.y (java_check_regular_methods):  Use lookup_argument_method
19628         instead of lookup_java_method2 followed by lookup_java_method.
19629
19630         * parse.y (check_method_redefinition):  Minor optimization.
19631
19632         * jcf-write.c (generate_bytecode_insns):  Handle RETURN_EXPR,
19633         MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR.
19634
19635 1998-08-10  Tom Tromey  <tromey@cygnus.com>
19636
19637         * Make-lang.in (jc1$(exeext)): Don't depend on c-common.o or
19638         c-pragma.o.
19639
19640         * gjavah.c (java_float_finite): Use K&R-style definition.
19641         (java_double_finite): Likewise.
19642         (generate_access): Now returns void.  Changed all callers.
19643         (last_access_generated): Removed.
19644         (process_file): Only make a single pass over the .class file.
19645
19646 1998-07-29  Per Bothner  <bothner@cygnus.com>
19647
19648         * class.c (get_dispatch_table):  Add extra dummy vtable entry,
19649         for compatibility for G++ (with -fvtable-thunks).
19650         * expr.c (build_invokevirtual):  Add one for extra dummy vtable entry.
19651
19652         * gjavah.c (process_file):  Use public inheritance for super-class.
19653
19654 1998-07-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19655
19656         * lex.c (java_init_lex): Initialize ctxp->package.
19657         * parse.h (struct parser_ctxt): package and package_len replaced
19658         by tree package, an identifier node. Field method_decl_list is
19659         gone. Fixed comments.
19660         (lookup_field_wrapper, merge_qualified_name, not_accessible,
19661         class_in_current_package): New function prototypes.
19662         * parse.y (array_type:): Set class loaded flag on primitive type
19663         arrays.
19664         (package_declaration:): Assign ctxp->package to the
19665         identifier node.
19666         (method_invocation:): Handle invocation of method qualified by
19667         `super'.
19668         (single_type_import_declaration:): Removed ambiguity check.
19669         (java_pop_parser_context): New local variable `next'. Reset and
19670         set IMPORT_CLASSFILE_NAME flags on current and previous import
19671         list.
19672         (java_accstring_lookup): Use new local macro COPY_RETURN.
19673         (lookup_field_wrapper): New function.
19674         (parser_qualified_classname): Use merge_qualified_name.
19675         (parser_check_super_interface): Broaden error message.
19676         (do_resolve_class): Check for qualified class name in the current
19677         compilation unit if appropriate.
19678         (process_imports): Check for already defined classes.
19679         (check_pkg_class_access): Got rid of call to
19680         get_access_flags_from_decl.
19681         (java_complete_expand_methods): Call safe_layout_class based on
19682         the current class size.
19683         (make_qualified_primary): Build a WFL qualification on primary if
19684         none exists.
19685         (merge_qualified_name): New function.
19686         (make_qualified_name): Use merge_qualified_name.
19687         (resolve_expression_name): Use safe_lookup_field.
19688         (resolve_field_access): Got rid of call to get_access_flags_from_decl.
19689         (resolve_qualified_expression_name): Likewise. Check on resolved
19690         element accessibility.
19691         (not_accessible_p, class_in_current_package): New functions.
19692         (maybe_access_field): Got rid of call to get_access_flags_from_decl.
19693         (patch_method_invocation_stmt): Merged common pieces. Check
19694         accessibility of invoked method.
19695         (check_for_static_method_reference): Add returned type in error
19696         message.
19697         (invocation_mode): Get rid of bogus check on PRIVATE methods.
19698         (refine_accessible_methods_list): Merged two conditions in test.
19699         (java_complete_class): Sanity check on stabilize_ref gone.
19700         * zextract.c (read_zip_archive): Cast lseek second argument to long.
19701
19702 1998-07-28  Per Bothner  <bothner@cygnus.com>
19703
19704         * class.c (hashUtf8String):  Fix - use new JavaSoft specification.
19705
19706 1998-07-24  Tom Tromey  <tromey@cygnus.com>
19707
19708         * gjavah.c (F_NAN): Removed.
19709         (F_NAN_MASK): New macro.
19710         (F_POSITIVE_INFINITY): Removed.
19711         (F_NEGATIVE_INFINITY): Likewise.
19712         (java_float_finite): Rewrote.
19713         (D_NAN_MASK): Renamed.
19714         (java_double_finite): Rewrote.
19715         (D_POSITIVE_INFINITY): Removed.
19716         (D_NEGATIVE_INFINITY): Likewise.
19717
19718         * jcf-dump.c (print_constant): [CONSTANT_Double, CONSTANT_Float]
19719         If verbose, print underlying representation of value in hex.
19720
19721 1998-07-24  Per Bothner  <bothner@cygnus.com>
19722
19723         * buffer.h, buffer.c:  New files.
19724         * Makefile.in (JAVA_OBJS):  Add buffer.o.
19725
19726         Support locals variables and writing their debug entries to .class.
19727         * jcf-write.c:  Simplify some by user new buffer type.
19728         (vode_buffer_grow):  Removed.
19729         (struct localvar_info):  New type.
19730         (localsvars, localvartable):  New buffers.
19731         (localvar_alloc, localvar_free):  New functions.
19732         (generate_bytecode_insns):  Handle local variables.
19733         (generate_classfile):  Write LocalVariableTable attribute.
19734
19735 1998-07-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19736
19737         * jcf-io.c (open_in_zip): Check the zipfile magic number.
19738         * zipfile.h (ZIPMAGIC): New macro.
19739
19740 1998-07-24  Tom Tromey  <tromey@cygnus.com>
19741
19742         * Makefile.in (gjavah.o): Updated dependencies.
19743         (jcf-dump.o): Likewise.
19744         (all.indirect): Use ../gjavah.
19745         (../gjavah$(exeext)): Likewise.
19746         (clean): Don't remove gjavah.
19747         (clean): Remove parse.c, not java/parse.c.
19748         * Make-lang.in (java): Added gjavah.
19749         (gjavah$(exeext)): New target.
19750         (GJAVAH_SOURCES): New macro.
19751         (java.all.build): Added gjavah.
19752         (java.all.cross): Likewise.
19753         (java.rest.encap): Likewise.
19754         * config-lang.in (compilers, stagestuff): Added gjavah.
19755
19756 1998-07-23  Tom Tromey  <tromey@cygnus.com>
19757
19758         * gjavah.c (java_float_finite): New function.
19759         (java_double_finite): Likewise.
19760         (F_POSITIVE_INFINITY): New macro.
19761         (F_NEGATIVE_INFINITY): Likewise.
19762         (F_NAN): Likewise.
19763         (D_POSITIVE_INFINITY): Likewise.
19764         (D_NEGATIVE_INFINITY): Likewise.
19765         (D_NAN): Likewise.
19766         (print_field_info): Use java_float_finite and java_double_finite.
19767
19768 1998-07-23  Per Bothner  <bothner@cygnus.com>
19769
19770         * parse.y (method_header):  Name "this" implicit argument.
19771
19772 1998-07-22  Per Bothner  <bothner@cygnus.com>
19773
19774         * jcf-write.c:  Write out LineNumberTable attribute in .class file.
19775         (linenumber_buffer, linenumber_ptr, linenumber_limit):  New statics.
19776         (put_linenumber):  New function.
19777         (generate_bytecode_insns, generate_classfile):  Write line numbers.
19778
19779 1998-07-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19780
19781         * java-tree.h (CALL_EXPR_FROM_PRIMARY_P): Changed in PRIMARY_P.
19782         (lookup_name, build_known_method_ref, build_class_init,
19783         build_invokevirtual, invoke_build_dtable, match_java_method,
19784         build_field_ref, pushdecl_force_head, build_java_binop,
19785         binary_numeric_promotion, build_decl_no_layout,
19786         build_java_arrayaccess, build_newarray, build_anewarray,
19787         build_java_array_length_access, build_java_arraynull_check): New
19788         extern function prototypes.
19789         (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19790         JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in
19791         java-tree.h.
19792         * jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref
19793         to NULL
19794         * jcf.h (jcf_out_of_synch): New extern function prototype.
19795         * parse.h: Static/global function implemented in parse.y
19796         prototyped and declarations moved at the end of the file.
19797         (DECL_P): Check that the argument isn't null.
19798         (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19799         JAVA_THIS_EXPR): No longer defined here. See java-tree.h
19800         (QUAL_DECL_TYPE): New macro.
19801         (PARAMS): Macro definition removed.
19802         * parse.y: (yyparse, yyerror): Use PROTO instead of PARAMS.
19803         (return_statement:): Call build_return.
19804         (field_access:): Call make_qualified_primary in sub rule.
19805         (method_invocation:): Build method invocation and call
19806         make_qualified_primary when processing primaries.
19807         (java_complete_class): Set IDENTIFIER_SIGNATURE_TYPE by calling
19808         get_type_from_signature.
19809         (java_check_regular_method): Extra integer 0 argument when calling
19810         lookup_java_method2.
19811         (lookup_java_interface_method2): Extra method DECL argument when
19812         calling lookup_java_interface_method2.
19813         (java_method_add_stmt): Set TREE_SIDE_EFFECTS on newly created
19814         COMPOUND_EXPR node.
19815         (java_complete_expand_method): Layout current class iff not
19816         already done. Don't process interface's methods.
19817         (java_complete_expand_method): Use super class only if it
19818         exists. Use current class otherwise.
19819         (make_qualified_primary): New function.
19820         (resolve_expression_name): Process qualified expression or
19821         expression from primary the same way.
19822         (resolve_expression_name): Two last arguments to
19823         resolve_field_access are now NULL_TREEs.
19824         (resolve_field_access): New variable is_static. Local field must
19825         be DECLs. is_static computed on field DECLs only. Append code in
19826         where_found to the field access if necessary. Use QUAL_DECL_TYPE
19827         to initialize field_type.
19828         (resolve_qualified_expression_name): New local variable,
19829         previous_call_static and is_static. Handle primaries with function
19830         calls, casts, array references and `this'. `super' now handled as
19831         `(super_class)this'. Use is_static to clarify boolean expressions.
19832         Added code to handle case where a proper handle is required to
19833         access a field. Use QUAL_DECL_TYPE where applicable.
19834         (maybe_access_field): New function.
19835         (patch_method_invocation_stmt): New arguments primary, where,
19836         is_static. Branch of the test on CALL_EXPR_FROM_PRIMARY_P
19837         deleted. Use `where' as a type to search from if specified. Check
19838         for static method reference where forbidden. Append primary or
19839         current_this to the argument list if not calling constructor nor
19840         static methods.
19841         (check_for_static_method_reference): New function.
19842         (patch_invoke): Layout the class on which new is done if
19843         necessary.
19844         (lookup_method_invoke): Changed format to report errors on
19845         methods.
19846         (qualify_ambiguous_name): New local variable this_found. Now
19847         handle things from primaries. Method call are considered
19848         expression names.
19849         (identical_subpath_p): NULL_TREE arguments to breakdown_qualified
19850         changed into NULLs.
19851         (not_initialized_as_it_should_p): Comply with the new DECL_P.
19852         (java_complete_tree): New case fo RETURN_EXPR. Process function
19853         call arguments in separate function.
19854         (complete_function_arguments): New function.
19855         (build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P
19856         anymore.
19857         (patch_assignment): Take the return function slot into account as
19858         a RHS. Distinguish assignment from a return.
19859         (valid_ref_assignconv_cast_p): Use build_java_argument_signature
19860         when checking methods in interfaces.
19861         (resolve_type_during_patch): NULL argument to unresolve_type_p
19862         instead of NULL_TREE.
19863         (patch_newarray): Fixed typo in comment.
19864         (buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL.
19865         (build_return, patch_return): New functions.
19866         * typeck.c (lookup_java_constructor): Fixed typo in comment.
19867
19868 1998-07-21  Per Bothner  <bothner@cygnus.com>
19869
19870         * constants.c (find_name_and_type_constant, find_fieldref_index,
19871         find_methodref_index):  New methods.
19872         * expr.c (build_invoke_non_interface):  If flag_emit_class_files,
19873         just return given method.  Also, rename to build_known_method_ref.
19874         (expand_invoke):  Rename call to build_invoke_non_interface.
19875         * java-tree.h, parse.h:  Update prototype.
19876         * parse.y, decl.c, jcf-parse.c:  Suppress calls to back-end functions
19877         (such as expand_expr_stmt) if flag_emit_class_files.
19878         * jcf-write.c (RESERVE, OP1, OP2, OP4, NOTE_PUSH, NOTE_POP,
19879         STACK_TARGET, IGNORE_TARGET):  New macros.
19880         (code_buffer, code_ptr, code_limit, code_S, code_SP_max):  New globals.
19881         (generate_bytecode_insn):  New function to generate method's bytecode.
19882         (generate_classfile):  Node generate Code attribute for a method.
19883         (code_buffer_grow, push_constant1, push_constant2, push_int_const,
19884         push_long_const, field_op, adjust_typed_op, maybe_wide):
19885         New functions used by generate_bytecode_insn.
19886
19887         * typeck.c (signature_include_return):  Remove variable.
19888         (push_java_argument_signature, build_java_argument_signature):  New.
19889         (build_java_signature):  Use push_java_argument_signature.
19890         * parse.y:  Use build_java_argument_signature instead of fiddling
19891         with signature_include_return.
19892
19893 1998-07-17  Tom Tromey  <tromey@cygnus.com>
19894
19895         * gjavah.c (print_c_decl): Always generate JArray<>* for array
19896         types.
19897
19898         * Makefile.in (all.indirect): Added gjavah$(exeext).
19899         (gjavah$(exeext)): Added $(exeext).
19900         (clean): Likewise.
19901
19902 1998-07-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
19903
19904         * class.c (layout_class): Call to java_layout_parsed_class replace
19905         by safe_layout_class.
19906         * expr.c (build_java_array_length_access): Removed static storage
19907         class in the function definition.
19908         (build_java_arraynull_check): Likewise.
19909         Also fixed typos in two comments.
19910         * lex.c (java_init_lex): Initialize static global kw_length.
19911         (java_lex): Use BUILD_OPERATOR on RETURN_TK.
19912         * lex.h (JAVA_FLOAT_RANGE_ERROR): Add extra argument to
19913         java_lex_error.
19914         (JAVA_INTEGRAL_RANGE_ERROR): Likewise.
19915         * parse.h (resolve_no_layout): New static function declaration.
19916         (get_identifier_in_static): Declaration removed.
19917         (java_layout_parsed_class): Function name declaration changed to
19918         safe_layout_class.
19919         (build_newarray_node, patch_newarray, resolve_type_during_patch,
19920         not_initialized_as_it_should_p, build_this): New static function
19921         declarations.
19922         (pushdecl_force_head, build_java_binop, int_fits_type_p,
19923         binary_numeric_promotion, stabilize_reference,
19924         build_decl_no_layout, build_java_arrayaccess): Extern function
19925         declarations moved into their own section.
19926         (build_newarray, build_anewarray, build_java_array_length_access,
19927         build_java_arraynull_check): New extern function declarations.
19928         (UNARY_PLUS_EXPR): Macro renamed into JAVA_UNARY_PLUS_EXPR.
19929         (JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, JAVA_THIS_EXPR): New
19930         fake tree codes.
19931         (CALL_CONSTRUCTOR_P): New macro.
19932         * parse.y (kw_length): New static global tree node.
19933         (return_statement): Tagged <node>.
19934         (RETURN_TK): Tagged <operator>.
19935         (variable_declarator_id:): Build variable declaration with an
19936         empty initialization value if a syntax error was found in the
19937         initialization part of the variable declaration.
19938         (statement_without_trailing_substatement:): return_statement: now
19939         uses the default rule.
19940         (return_statement:): Temporarily fixed to return NULL_TREE.
19941         (primary_no_new_array:): Call build_this when THIS_TK was parsed.
19942         (class_instance_creation_expression:): Class creation rules now
19943         call build_method_invocation upon reduction.
19944         (array_creation_expression:): Rules call build_newarray_node upon
19945         reduction.
19946         (dim_exprs:): Build a list of dimension expressions.
19947         (dim_expr:): Store location of the OSB_TK in the dimension
19948         expression node.
19949         (method_invocation:): Added a new error rule.
19950         (build_unresolved_array_type): WFL argument may also be an array
19951         on a primitive type. Name of the argument changed to reflect this.
19952         (method_declarator): Insert argument type at the beginning of the
19953         argument type list and later reverse the list.
19954         (unresolved_type_p): Argument 'returned' may be optionally
19955         NULL_TREE.
19956         (java_layout_class_from_source): Function renamed
19957         safe_layout_class.
19958         (resolve_and_layout): Now call resolve_no_layout and
19959         safe_layout_class.
19960         (resolve_no_layout): New function.
19961         (purify_type_name): New function.
19962         (complete_class_report_errors): Call purify_type_name during error
19963         report on a type not found.
19964         (process_imports): error_found local variable doesn't need to be
19965         initialized to zero.
19966         (declare_local_variables): New local type_wfl. Fixed typo in error
19967         message. type_wfl assigned to unresolved type and used to register
19968         incomplete type. Build a WFL around the variable initialization
19969         statement so that debug info can be generated on it.
19970         (source_start_java_method): Reverse argument list after they've
19971         been processed.
19972         (current_this): New static global variable.
19973         (java_complete_expand_methods): Set current_this when appropriate.
19974         (resolve_expression_name): Build correct static and non static
19975         field access bearing a simple name.
19976         (resolve_field_access): Resolve the length field of arrays. Handle
19977         f.m() cases.
19978         (patch_method_invocation_stmt): Set the type of the method
19979         invocation to error_mark_node. This value is later overridden by a
19980         valid type, if any. Don't handle qualified constructor invocation
19981         as qualified method invocation. Call lookup_method_invoke with its
19982         new flag. It's no longer necessary to access the selected method
19983         as the value of a tree list. Handle constructor invocation.
19984         (patch_invoke): Reverse argument list when invoking non interface
19985         methods. Insert call to new as the first argument of the
19986         constructor.
19987         (invocation_mode): Return a INVOKE_STATIC is the invoked method is
19988         defined within a final class. Return INVOKE_STATIC if the invoked
19989         method is a constructor.
19990         (lookup_method_invoke): New lc argument is a flag to indicate a
19991         constructor lookup. Now handle constructor lookup. Choose the most
19992         specific method in case several were matching the invocation
19993         requirements. Return a method decl instead of a tree list featuring
19994         one single method decl element.
19995         (refine_accessible_methods_list): New lc flag argument to
19996         indicate that a constructor is being looked up.
19997         (not_initialized_as_it_should_p): New function.
19998         (java_complete_tree): Now process fake tree codes
19999         JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR and JAVA_THIS_EXPR. Call
20000         save_expr on resolved function call arguments. Case on
20001         UNARY_PLUS_EXPR changed into a case on JAVA_UNARY_PLUS_EXPR.
20002         (patch_assignment): LHS can be a field access expression. When
20003         dealing with reference, lhs_type is the promoted type of the
20004         rhs_type, not the RHS. Use not_initialized_as_it_should_p where
20005         applicable.
20006         (operator_string): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20007         (patch_binop): Use not_initialized_as_it_should_p where
20008         applicable.
20009         (build_unaryop): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20010         (patch_unaryop): Likewise. And use not_initialized_as_it_should_p
20011         where applicable.
20012         (resolve_type_during_patch): New function.
20013         (patch_cast): Call resolve_type_during_patch to resolve type and
20014         report error accordingly.
20015         (patch_array_ref): Use not_initialized_as_it_should_p where
20016         applicable. Array base expression is saved before being
20017         used. Promote the type of an array elements if it contains non
20018         builtin types.
20019         (build_newarray_node, patch_newarray, build_this): New functions.
20020
20021 1998-07-16  Tom Tromey  <tromey@cygnus.com>
20022
20023         * gjavah.c (print_c_decl): UTF8_GET increments pointer; don't
20024         increment it in `for' statement.
20025         (print_field_info): If number is inf or nan, don't print it.
20026         (print_method_info): If method name is `delete', just ignore it.
20027         (print_c_decl): Special-case jstringArray.
20028
20029         * gjavah.c (help): New function.
20030         (no_argument): New function.
20031         (usage): Changed text.
20032         (main): Rewrote argument handling.  Now handles -v, --help,
20033         --version.
20034         (version): New function.
20035         (found_error): New global.
20036         (main): Return found_error.
20037         (generate_access): Set found_error.
20038         (print_c_decl): Likewise.
20039
20040 1998-07-15  Tom Tromey  <tromey@cygnus.com>
20041
20042         * gjavah.c (print_c_decl): Don't print "," when examining field.
20043         Skip type name when looking at "[L" types.
20044         (process_file): Now static.
20045         (generate_access): Now returns int.
20046         (last_access_generated): New global.
20047         (process_file): Clear last_access_generated; make multiple passes
20048         over the class.
20049         (print_field_info): Just return if generate_access returns true.
20050         (print_method_info): Likewise.  Also, allow <init> functions to
20051         pass through.
20052         (print_c_decl): Added is_init argument.  Print constructors
20053         properly.
20054         (print_cxx_classname): Use UTF8_GET to extract characters from
20055         string.
20056         (print_base_classname): New function.
20057         (print_class_decls): New function.
20058         (process_file): Use it.
20059         (utf8_cmp): New function.
20060
20061 1998-07-13  Nick Clifton  <nickc@cygnus.com>
20062
20063         * lang-options.h: Format changed to match changes in gcc/toplev.c
20064         to implement a --help option.
20065
20066 1998-07-10  Brendan Kehoe  <brendan@cygnus.com>
20067
20068         * decl.c (init_decl_processing): Revert change to dtable_type.
20069
20070 1998-07-09  Per Bothner  <bothner@cygnus.com>
20071
20072         * java-tree.h (CLASS_P):  Changed DECL_LANG_FLAG_7 -> TYPE_LANG_FLAG_4.
20073
20074 1998-07-08  Brendan Kehoe  <brendan@cygnus.com>
20075
20076         * decl.c (init_decl_processing): Set CLASS_LOADED_P on dtable_type.
20077
20078         * lang.c (lang_init): Default flag_exceptions to 1, without
20079         checking to see if it's 2 first.
20080
20081 1998-07-08  Jeffrey A Law  (law@cygnus.com)
20082
20083         * constants.c: Include "system.h".
20084         * decl.c: Likewise.
20085         * lang.c (flag_new_exceptions): Get via extern now.
20086         (lang_init_options): New functions.  Turn on flag_new_exceptions.
20087
20088 1998-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20089
20090         * lex.c (java_lex): Return 0 when we see an invalid character in
20091         the input.
20092
20093         * lex.c (java_read_char): Specify extra argument when calling
20094         java_lex_error.
20095         (java_read_unicode, java_parse_end_comment,
20096         java_parse_escape_sequence): Likewise,
20097         (java_lex): Specify extra argument when calling
20098         java_lex_error. Test that IDs are beginning with a legal character
20099         for IDs. Handle invalid characters with an error message and a
20100         call to java_lex_error.
20101         (java_lex_error): Adjust column position by new argument
20102         `forward'. Issue an error even if in the middle of reporting an
20103         other error.
20104
20105 1998-07-07  Brendan Kehoe  <brendan@cygnus.com>
20106
20107         * jcf-io.c (find_class): Zero out BUFFER before we use it, since
20108         we don't explicitly put a null pointer when we're copying it.
20109
20110 1998-07-07  Tom Tromey  <tromey@cygnus.com>
20111
20112         * gjavah.c (print_cxx_classname): New function.
20113         (super_class_name): Likewise.
20114         (print_super_fields): Removed.
20115         (in_super): Removed.
20116         (print_field_info): Never generate #defines.
20117         (print_c_decl): Changed generated types to match JNI.  No longer
20118         print class name before method name.
20119         (print_method_info): Print "static" before static methods.
20120         Print "virtual" before non-final methods.
20121         (usage): Use exit(1), not exit(-1).
20122         (main): Likewise.
20123         (print_field_info): Use %.17g to print a double.
20124         (last_access): New globals.
20125         (process_file): Initialize last_access.
20126         (usage): Now static.
20127         (ACC_VISIBILITY): New define.
20128         (generate_access): New function.
20129         (print_field_info): Call it.
20130         (print_method_info): Likewise.  Also, generate information for all
20131         methods, not just native methods.  Return void.
20132         (print_c_decl): Return void.
20133         (print_field_info): Return void.
20134
20135 1998-07-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20136
20137         * Makefile.in (JAVABISONFLAGS): Specific flag for bison when
20138         processing the jc1 grammar file. Prefix bison functions and
20139         variables with java_.
20140         (parse.c): Dependencies on parse.h and lex.h
20141         * expr.c (build_java_arrayaccess): Function now global.
20142         * java-tree.h: Comment reorganized to carry on previous
20143         classification effort.
20144         (RESOLVE_EXPRESSION_NAME_P, RESOLVE_PACKAGE_NAME_P,
20145         RESOLVE_TYPE_NAME_P): New flags on WFLs.
20146         * jcf-parse.c (parse_source_file): java_parse_source_file renamed
20147         java_parse (new prefix java_ generated by bison).
20148         (java_layout_parsed_class, java_register_parsed_class): Function
20149         call removed.
20150         (yyparse): Removed unnecessary call to init_outgoing_cpool.
20151         * lex.c (static tree wfl_op): Variable deleted.
20152         (java_init_lex): Initialize kw_super and kw_this. Initialize more
20153         ctxp fields to NULL_TREE.
20154         (java_lex): No longer create WFL for operators. Filename caching
20155         mechanism deleted. Call BUILD_OPERATOR for `.', '(', '['. Strings
20156         created as STRING_CST and later expanded. Removed extra argument
20157         to BUILD_OPERATOR and BUILD_OPERATOR2. Build operators for THIS
20158         and SUPER.
20159         (build_wfl_node): Removed code in comments.
20160         * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): No longer build a WFL but
20161         store token and location data in the current bison token.
20162         * parse.h: Removed pre-processor based symbol prefixes hack. Moved
20163         static/extern function declaration at the beginning of the file.
20164         (struct qualification): Data structure definition deleted.
20165         (RESOLVE_CHAIN_REMAINDER): Macro definition deleted.
20166         (qualify_ambiguous_name): Function declaration modified. Function
20167         now returns nothing.
20168         (build_array_ref, patch_array_ref, make_qualified_name,
20169         resolve_qualified_expression_name, maybe_generate_clinit,
20170         resolve_field_access): New static function declarations.
20171         (build_java_arrayaccess): New extern function declaration.
20172         (enum { RESOLVE_EXPRESION_NAME...}): Enum deleted.
20173         (CALL_EXPR_PRIMARY): Macro deleted.
20174         (EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION): New macros.
20175         (struct parser_ctxt): Field initialized_final
20176         removed. non_static_initialized, static_initialized: New fields.
20177         * parse.y (static tree kw_super, static tree kw_this): New global
20178         static.
20179         (%union): tree wfl field of operator member replaced by int
20180         location. WFLs are non longer created for operators.
20181         (OSB_TK, DOT_TK, THIS_TK, SUPER_TK): Tagged <operator>.
20182         (qualified_name:): Now calls make_qualified_name to build the
20183         identifier.
20184         (type_declaration:): Consider generating <clinit> when class
20185         parsing completed.
20186         (variable_declarator:): Directly build an assignment node when the
20187         variable is initialized when declared.
20188         (this_or_super:): Build a WFL and set current location when THIS
20189         or SUPER are parsed.
20190         (expression_statement:): Wrap statement around a WFL.
20191         (primary_no_new_array:): Fixed typo. Changed value returned by
20192         THIS_TK because of its new type (temporary).
20193         (dim_exprs:): Temporary fix because of OSB_TK's new type.
20194         (field_access:): Build qualified name with SUPER.
20195         (method_invocation:): Fixed returned value because of SUPER's new
20196         type.
20197         (array_access:): Use OSB_TK location information.
20198         (post_increment_expression:, post_decrement_expression:,
20199         unary_expression:, pre_increment_expression:,
20200         pre_decrement_expression:, unary_expression_not_plus_minus:,
20201         cast_expression:, multiplicative_expression:,
20202         additive_expression:, shift_expression:, relational_expression:,
20203         equality_expression:, and_expression:, exclusive_or_expression:,
20204         inclusive_or_expression:, conditional_and_expression:,
20205         conditional_or_expression:, assignment:): Use new location/token
20206         information available on operators.
20207         (create_class): Set super_decl_type to NULL_TREE when processing
20208         java.lang.Object.
20209         (register_fields): Field initialization is now a MODIFY_EXPR
20210         node. Chain initialization code to the matching lists (according
20211         to the field declaration modifiers).
20212         (maybe_generate_clinit): New function.
20213         (method_header): Don't set method's DECL_NAME to a WFL when adding
20214         methods to java.lang.Object.
20215         (resolve_and_layout): Now can return NULL_TREE if the type
20216         resolution fails. Otherwise, return the class DECL instead of its
20217         TYPE.
20218         (check_method_redefinition): Don't patch method DECL_NAME if it
20219         belongs to java.lang.Object.
20220         (process_imports): Simply assign error_found to the value returned
20221         by check_pkg_class_access.
20222         (declare_local_variables): Don't use their init statements (if
20223         any) when parsing error were previously found. Reuse MODIFY_EXPR
20224         build during parsing as an init statement.
20225         (java_method_add_stmt): Now return the current method body.
20226         (java_layout_parsed_class, java_register_parsed_class): Functions
20227         removed.
20228         (java_complete_expand_methods): Initialize the constant pool on a
20229         per class basis. Layout the classes before expanding their method
20230         bodies. Don't try expand artificial constructor code if error were
20231         found. Make the classes data and register them if no error were
20232         found.
20233         (java_complete_expand_method): Retrieve an artificial constructor
20234         argument list before entering its body. Assign the top block to
20235         the artificial constructor function body and set types of declared
20236         blocks and compound statements to void. Walk method body if not an
20237         artificial constructor.
20238         (make_qualified_name, cut_identifier_in_qualified): New functions.
20239         (resolve_expression_name): Fixed comments. Save/restore the
20240         current class CLASS_LOADED_P flag value. Build non qualified
20241         static field access and handle qualified expression names.
20242         (resolve_field_access, resolve_qualified_expression_name): New
20243         functions.
20244         (patch_method_invocation_stmt): Use the new expression resolution
20245         scheme, calling resolve_field_access when the function call is
20246         resolved as an expression.
20247         (qualify_ambiguous_name): Function rewritten to work on qualified
20248         expression produced by make_qualified_name.
20249         (java_complete_tree): Promote type when function's argument are
20250         RECORD_TYPEs. While processing the MODIFY_EXPR case: don't patch
20251         the assignment to discover further errors if RHS is a expression
20252         name that fails to evaluate. Declare LHS initialized even though
20253         the assignment failed. Don't use the location variable and removed
20254         extra argument in patch function calls. Now handle the ARRAY_REF
20255         case and build internal string representation when STRING_CSTs are
20256         walked.
20257         (build_method_invocation): Don't wrap function call around a WFL.
20258         (build_assignment): Likewise. Use the operator location
20259         information.
20260         (patch_assignment): Handle array access LHSs. Handle error
20261         provenance, resulting in a better error report.
20262         (build_binop): Use op_location from operator as binop location
20263         information.
20264         (build_unaryop, build_incdec, build_cast): Likewise.
20265         (patch_binop): Extract location information from the node. Fixed
20266         typo in error message.
20267         (patch_unary_op): Extract location information from the node.
20268         (build_array_ref, patch_array_ref): New functions.
20269
20270 1998-07-01  Tom Tromey  <tromey@cygnus.com>
20271
20272         * expr.c (expand_java_INSTANCEOF): Changed calling convention to
20273         match _Jv_IsInstanceOf.
20274         * decl.c (init_decl_processing): Use _Jv_NewArray, not
20275         soft_newarray.  Use _Jv_IsInstanceOf, not soft_instanceof.
20276
20277 1998-06-30  Tom Tromey  <tromey@cygnus.com>
20278
20279         * decl.c (init_decl_processing): Functions are now named
20280         _Jv_MonitorEnter and _Jv_MonitorExit, and return jint.
20281
20282 1998-06-29  Per Bothner  <bothner@cygnus.com>
20283
20284         * java-tree.h (load_class):  Add prototype.
20285         * class.c (is_compiled_class):  Add missing arg to load_class.
20286         * expr.c (expand_java_NEW):  Call load_class.
20287         * parse.y (process_import):  Removed bogus use of void return value.
20288
20289 1998-06-25  Per Bothner  <bothner@cygnus.com>
20290
20291         * decl.c, java-tree.h (soft_athrow_node):  Renamed to soft_node.
20292         Function name is "_Jv_Throw" instead of "soft_athrow".
20293         * decl.c, java-tree.h (soft_new_node):  Renamed to alloc_object_node.
20294         Function name is "_Jv_AllocObject" instead of "soft_new".
20295         Takes an extra parameter (object size).
20296         * expr.c:  Update calls.
20297
20298 1998-06-24  Per Bothner  <bothner@cygnus.com>
20299
20300         * lex.c (java_get_line_col):  Handle end-of-file.
20301         * except.c (expand_end_java_handler):  Handle null type (i.e. finally).
20302
20303 1998-06-24  Andrew MacLeod  <amacleod@cygnus.com>
20304
20305         * lang.c (lang_init): Make -fexceptions the default.
20306         * except.c (maybe_start_try, maybe_end_try): Don't do anything if
20307         exception handling is not turned on.
20308
20309 1998-06-23  Andrew MacLeod  <amacleod@cygnus.com>
20310
20311         * lang.c (flag_new_exceptions): Make this this default.
20312         * decl.c (end_java_method): Call emit_handlers.
20313         * except.c (method_init_exceptions): Set language code and version.
20314         (expand_start_java_handler): Enable exception, and call
20315         expand_eh_region_start.
20316         (expand_end_java_handler): Enable exception, and set up catch blocks.
20317         (emit_handlers): New routine to generate the saved handlers.
20318         * java-except.h (emit_handlers): Add prototype.
20319
20320 1998-06-12  Per Bothner  <bothner@cygnus.com>
20321
20322         We used to have three different representations of the constant pool:
20323         the CPool structure, the tree_constant_pool, and the constructures
20324         used to build the Class object (which may need class and string
20325         constants) in compiled code.  None were appropriate for compiling
20326         to .class files, so I did a major overhaul.
20327
20328         First, the tree_constant_pool array was removed.  Things were
20329         modified to the CPool structure in the JCF could be used.
20330         Second, a "capacity" field was added to the CPool, and functions
20331         written to search for a matching constant, adding one if not found.
20332         The code that generated the Class object was changed to use a CPool.
20333         The actual TREE_LISTs used to build the CONSTRUCTORs used for
20334         the static Class object are now only in build_constants_constructor.
20335         Finally, I wrote code which can generate a .class file (including its
20336         constant pool) from the RECORD_TYPE of a class.  This is a big step
20337         on the way to compiling Java source into .class files.
20338
20339         * jcf-write.c:  New file. Writes out a RECORD_TYPE as a .class file.
20340         * Makefile.in (JAVA_OBJS):  Added jcf-write.o.
20341
20342         * java-tree.h (CPOOL_UTF, CONSTANT_ResolvedFlag,
20343         CONSTANT_ResolvedString, CONSTANT_ResolvedClass):  New macros.
20344         (NAME_AND_TYPE_NAME, NAME_AND_TYPE_SIGNATURE, COMPONENT_REF_NAME,
20345         COMPONENT_REF_NAME_AND_TYPE, COMPONENT_REF_SIGNATURE): Redefined.
20346         (COMPONENT_REF_CLASS):  Replaced by COMPONENT_REF_CLASS_INDEX.
20347         (lang_type):  Removed constant_pool field.
20348         * jcf.h (CPool):  Renamed size to count.  Added field capacity.
20349         (CPOO_COUNT, CPOOL_UINT, CPOOL_USHORT1, CPOOL_USHORT2,
20350         CPOOL_FINISH, CPOOL_INIT, CPOOL_REINIT):  New macros.
20351         Rewrite some of the old JCF_XXX in terms of CPOOL_XXX macros.
20352
20353         * constants.c (current_constant_pool_tags, current_constant_pool_data,
20354         current_constant_pool_length), java-tree.h: Replaced by outgoing_cpool.
20355         * constants.c (build_constants_constructor):  Use new outgoing_cpool.
20356         (set_constant_entry, find_constant1, find_constant2,
20357         find_class_constant, count_constant_pool_bytes, write_constant_pool,
20358         find_utf8_constant, find_class_or_string_constant):  New functions.
20359
20360         * jcf-parse.c (load_class):  Don't save/restore tree-constant_pool.
20361         (get_constant):  Use current_jcf.cpool instead of tree_constant_pool.
20362         (give_name_to_class, get_class_constant):  Likewise.
20363         * jcf-parse.c, java-tree.h (tree_constant_pool):  Removed.
20364         (get_name_and_type_constant, get_ref_constant):  Removed.
20365         * parse.h (parser_ctxt):  Remove field tree_constant_pool.
20366         * parse.y:  Don't save/restore tree_constant_pool.
20367         * verify.c (verify_jvm_instructions):  Update for new approach.
20368         * expr.c (expand_invoke, expand_java_field_op): Likewise.
20369
20370         * lang-options.h:  Added -femit-class-file, -femit-class-files.
20371         * lang.c (flag_emit_class_files), java-tree.h:  New flag.
20372         (lang_f_options):  Added "emit-class-file(s)".
20373
20374         * expr.c (build_java_arrayaccess):  Generate more efficient array
20375         bounds checking, by using unsigned compare.
20376
20377         * expr.c (expand_invoke):  Re-arrange error checks to make more robust.
20378
20379 1998-06-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20380
20381         * parse.h: New comment on the handling of unresolved type
20382         identifiers. JDEPs are now part of the jdep_code enum.
20383         (typedef struct jdep): Now use enum jdep_code or int, depending on
20384         availability. Both are narrowed down to an 8 bits bitfield.
20385         (CALL_EXPR_PRIMARY): Fixed comment.
20386
20387 1998-06-10  Tom Tromey  <tromey@cygnus.com>
20388
20389         * Make-lang.in (java): Added gjavac and jvgenmain.
20390         (java.start.encap): Depend on gjavac.
20391         (java.rest.encap): Depend on jvgenmain.
20392
20393         * Make-lang.in (JAVA_INSTALL_NAME): Name is gjavac, not c++.
20394         (JAVA_CROSS_NAME): Likewise.
20395         (java.all.build): Depend on jvgenmain and gjavac.
20396         (java.all.cross): Depend on jvgenmain and gjavac-cross.
20397         (jvgenmain$(exeext)): New target.
20398         (java.install-common): Wrote.
20399         * config-lang.in (compilers, stagestuff): Added gjavac and
20400         jvgenmain.
20401
20402 1998-06-10  Dave Brolley  <brolley@cygnus.com>
20403
20404         * lang.c (lang_decode_option): New argc/argv interface.
20405
20406 1998-06-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20407
20408         * ChangeLog: Fixed entries not compliant with the Gnu Coding Standard.
20409         * decl.c (build_decl_no_layout): New function.
20410         * expr.c (java_lang_expand_expr): Layout declarations found in
20411         blocks before they're pushed.
20412         * jcf-parse.c (load_class): Save current line when parsing class
20413         file.
20414         (parse_source_file): Register class before expanding their
20415         methods.
20416         * lang.c (put_decl_node): Produce `null' when `void *' is
20417         processed.
20418         * lex.c (static tree wfl_op): New static global, for error report
20419         on casts.
20420         (java_init_lex): wfl_operator and wfl_op initialized
20421         here. Filename caching added for wfl_op. Return wfl_op when `(' is
20422         parsed.
20423         * parse.h (build_unaryop, build_incdec, patch_unaryop, build_cast,
20424         patch_cast, valid_ref_assignconv_cast_p, can_cast_to_p,
20425         build_unresolved_array_type): New static function definitions.
20426         (build_decl_no_layout): New extern function declared.
20427         (OBSOLETE_MODIFIER_WARNING): Report error only if the WFL of the
20428         faulty modifier exists.
20429         (TYPE_INTERFACE_P, TYPE_CLASS_P): New macros.
20430         (ERROR_CAST_NEEDED_TO_INTEGRAL): Error message tuned.
20431         (UNARY_PLUS_EXPR): New fake operator.
20432         (struct parser_ctxt): New field osb_number.
20433         * parse.y (static tree wfl_operator): New static WFL for operator
20434         bound error messages.
20435         (DECR_TK, INCR_TK): Moved.
20436         (OP_TK): Tagged <operator>.
20437         (array_type:): Now call build_unresolved_array_type.
20438         (dim_expr:): Count the number of '[' seen.
20439         (post_increment_expression, post_decrement_expression,
20440         pre_increment_expression, pre_decrement_expression,
20441         unary_expression_not_plus_minus, unary_expression:): Actions are
20442         now building the corresponding unary expressions.
20443         (cast_expression:): Actions are now building cast expressions.
20444         (build_unresolved_array_type): New function.
20445         (create_interface): Reset the number of declared interfaces.
20446         (create_class): Likewise.
20447         (method_header): Methods declared within the scope of an interface
20448         are now implicitly set public and abstract.
20449         (java_complete_class): Variable's and parameter's type are patched
20450         with a promoted type.
20451         (declare_local_variables): Resolved non builtin types are promoted
20452         before being used to build a variable decl. Removed type patch
20453         posted on variable initialization statement.
20454         (source_start_java_method): Use build_decl_no_layout to build the
20455         decl of a parameter of incomplete type.
20456         (java_register_parsed_class): Process interfaces too. Call
20457         rest_of_decl_compilation on each processed class declarations.
20458         (java_complete_expand_methods): Don't attempt to expand things in
20459         interfaces.
20460         (java_complete_tree): Process CONVERT_EXPR, even though it always
20461         has a type. Propagate error_mark_node to node's type too. Promote
20462         method's call argument type and return error_mark_node if
20463         argument's completion didn't work. MODIFY_EXPR can have a WFL as a
20464         RHS. Fixed bug in the handling of bogus RHS of a fixed type. Now
20465         handle unary operator nodes.
20466         (build_assignment): Added comment.
20467         (print_int_node): New function.
20468         (patch_assignment): New second argument. New error handling. Use
20469         print_int_node. Handle references. Use can_cast_to_p to issue
20470         different error message according to the context and check upon
20471         the initialization of the RHS.
20472         (can_cast_to_p, valid_ref_assignconv_cast_p): New functions.
20473         (operator_string): Handle more operators.
20474         (patch_binop): No longer use a function static
20475         wfl_operator. Improved error message on shift distance.
20476         (build_unaryop, build_incdec, build_cast, patch_unaryop,
20477         patch_cast): New functions.
20478
20479 1998-06-05  Per Bothner  <bothner@cygnus.com>
20480
20481         * jvspec.c:  New file.
20482         * Make-lang.in:  New rules to build gjavac from jvspec.c and ../gcc.c.
20483
20484         * java-tree.h (identifier_subst):  Add declaration.
20485
20486 1998-06-04  Tom Tromey  <tromey@cygnus.com>
20487
20488         * jvgenmain.c (main): Generate call to JvRunMain.
20489
20490         * class.c (make_class_data): Push value for "sync_info" field.
20491         * decl.c (init_decl_processing): Push "sync_info" field.
20492
20493 1998-06-03  Per Bothner  <bothner@cygnus.com>
20494
20495         * typeck.c (build_java_array_type):  Set TYPE_NAME to actual
20496         Java (source) name, not signature.
20497         Set TYPE_ALIGN to (at least) that of element_type.
20498
20499 1998-06-02  Per Bothner  <bothner@cygnus.com>
20500
20501         * class.c:  Moved classname-mangling-rekated code to ...
20502         * mangle.c:  ... this new file.
20503         * jvgenmain.c:  New program (needs mangle.c) to generate main program.
20504         * Makefile.in:  Update for above changes.
20505
20506 1998-06-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20507
20508         * expr.c (truthvalue_conversion): Convert integer and floating
20509         point value to their truth value.
20510         * lex.c (java_lex): Handle the `null' literal.
20511         * parse.h (JREFERENCE_TYPE_P, DECL_P): New macros.
20512         (ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
20513         ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED):
20514         New macros.
20515
20516         * parse.y: Reorganization/documentation on token declaration.
20517         (binop_lookup[]): New added new tree codes.
20518         (relational_expression): Build corresponding binary operators.
20519         (equality_expression, conditional_and_expression,
20520         conditional_or_expression): Likewise.
20521         (java_complete_class): Fix crash in debug message.
20522         (java_complete_tree): Check initialization of method call
20523         arguments. Further bogus node evaluation to detect more error
20524         during assignments. Handles more binary operators.
20525         (patch_assignment): Use DECL_P.
20526         (build_binop): Fix crash when using URSHIFT_EXPR, a Java only tree
20527         code.
20528         (operator_string): Handle more case. Compacted source.
20529         (patch_binop): Changed function comment. Checking for
20530         uninitialized first operand takes the compound assignment into
20531         account and uses DECL_P. Checking for uninitialized second operand
20532         delayed to routine's end. Use macros to issue type bound error
20533         messages and issue messages on both operands if their types are
20534         different. Force fixed type into node. Handle all binary
20535         operators.
20536
20537 1998-05-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20538
20539         * java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros.
20540         * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
20541         build operator node and return tokens.
20542         * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
20543         * parse.h (java_complete_tree): Changed returned type in prototype.
20544         (build_method_invocation, build_assignment, patch_assignment,
20545         patch_binop): New static function declarations.
20546         (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
20547         BUILD_EXPR_WFL): New macros.
20548         * parse.y (enum tree_code binop_lookup[]): New static for token to
20549         TREE_CODE lookup.
20550         (%union): Parser union has new sub-structure `operator'.
20551         (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
20552         PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
20553         ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
20554         ASSIGN_ANY_TK): Tokens tagged `operator'.
20555         (EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK,
20556         AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK,
20557         MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK,
20558         REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'.
20559         (assignment_operator:): Rule tagged `operator'.
20560         (expression_statement:): Re-installed default rule.
20561         (method_invocation:): Sub rules call build_method_invocation.
20562         (postfix_expression:): Don't attempt to resolve name here. Just
20563         return an ID.
20564         (multiplicative_expression:): Sub-rules build corresponding binop
20565         expression node.
20566         (additive_expression:, shift_expression:, and_expression:,
20567         exclusive_or_expression:, inclusive_or_expression:): Likewise.
20568         (assignment:): Sub rule invoke build_assignment.
20569         (assignment_operator:): Default rules on sub rules.
20570         (force_error): Added documentation on this variable.
20571         (declare_local_variables): Build initialization calling
20572         build_assignment.
20573         (expand_start_java_method): Removed unused rtx declaration. Mark
20574         arguments as already initialized.
20575         (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
20576         (java_complete_expand_methods): Don't process next method if
20577         completion of the previous one triggered errors.
20578         (java_complete_expand_method): Call source_end_java_method if no
20579         error were found during completion.
20580         (resolve_expression_name): Use IDENTIFIER_LOCAL_VALUE to retrieve
20581         locals declaratilon. Handle names found within a class. Return
20582         error_mark_node when things aren't found.
20583         (patch_method_invocation_stmt): Return error_mark_node on failures.
20584         (patch_invoke): Removed unused local. Return the correct node.
20585         (java_complete_tree): Now returns a value. The BLOCK section binds
20586         local identifiers and the type of a BLOCK is now void. Assign the
20587         result of operand completion on COMPOUND_EXPR. Assign the
20588         encapsulated node of a WFL to the result of its completion, except
20589         when the node is an identifier. Now handle MODIFY_EXPR and several
20590         binary operators. Return error_mark_node on errors.
20591         (build_method_invocation, build_assignment, patch_assignment,
20592         build_binop, operator_string, patch_binop): New functions.
20593         * typeck.c (binary_numeric_promotion): New function.
20594
20595 1998-05-21  Per Bothner  <bothner@cygnus.com>
20596
20597         * class.c (identifier_subst):  New convenience wrapper for ident_subst.
20598         Replace most uses of ident_subst by identifier_subst.
20599
20600         * class.c (push_class_static_dummy_field):  Removed function.
20601         (build_class_ref):  Find Class object decl by looking up "CNAME.class",
20602         instead of looking got "class" static field.  Create that decl here.
20603         (class_identifier_node):  Removed;  no longer needed.
20604         (init_class_processing):  Don't init class_identifier_node.
20605         * jcf-parse.c (jcf_parse):  Don't call push_class_static_dummy_field.
20606         Do nreverse 0 times (instead of twice) for Object and Class.
20607         * parse.y (java_layout_parsed_class): No push_class_static_dummy_field.
20608
20609 1998-05-20  Per Bothner  <bothner@cygnus.com>
20610
20611         * jcf-parse.c (parse_class-file):  Set lino to smallest line number,
20612         while initializing linenumber_count and linenumber_table.
20613         Do it before init_function_start (which calls emit_line_note).
20614         * expr.c (expand_byte_code):  Don't need to clear lineno here.
20615
20616 1998-05-18  Tom Tromey  <tromey@cygnus.com>
20617
20618         * class.c (append_gpp_mangled_type): If `qualifications' is >=9,
20619         then mangle number as _N_.
20620
20621         * class.c (mangle_class_field): New function.
20622         (build_class_ref): Set assembler name of class reference using
20623         mangle_class_field.
20624         (push_class_static_dummy_field): Likewise.
20625
20626 1998-05-17  Michael Tiemann <tiemann@cygnus.com>
20627
20628         * parse.y (source_start_java_method): Use TREE_SET_CODE instead
20629         of assigning to TREE_CODE.  The latter method exploits a feature
20630         of GCC that is not ANSI compliant.
20631
20632 1998-05-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20633
20634         * decl.c (pushdecl_force_head): New function.
20635         (pushlevel): Removed conditional printf.
20636         (complete_start_java_method): Don't enter local variable scope if
20637         function is compiled from source code.
20638         * expr.c: parse.h now included
20639         (java_lang_expand_expr): New function.
20640         * jcf-io.c (find_class): Use SOURCE_FRONTEND_DEBUG instead of
20641         printf. Terminate buffer when doing directories.
20642         * jcf-parse.c (parse_source_file): Call lang_init_source before
20643         parsing and before code generation.
20644         * jcf.h (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally
20645         use printf if the macro is defined.
20646         * lang.c (lang_init): Install lang_expand_expr hook on
20647         java_lang_expand_expr.
20648         (java_dummy_print): New function.
20649         (lang_init_source): New function.
20650         * lex.c (java_lex): Remember location of an opening brace at the
20651         second nesting level.
20652         (java_is_eol): Unget character seen after a CR if it is EOF.
20653         * parse.h: Now includes lex.h
20654         (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally use
20655         printf if the macro is defined.
20656         (expand_start_java_method, build_expr_block, enter_block,
20657         exit_block, lookup_name_in_blocks, maybe_absorb_scoping_blocks):
20658         New static function declarations.
20659         (pushdecl_force_head): New extern function declaration.
20660         (INCOMPLETE_TYPE_P): New macro.
20661         (JDEP_PARM, JDEP_TYPE): New entries in JDEPs enum.
20662         (BLOCK_CHAIN_DECL, BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY,
20663         BLOCK_EXPR_ORIGIN): New macros.
20664         (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
20665         DECL_SOURCE_LINE_LAST): New macros.
20666         (struct parser_ctxt): Removed field current_method_decl, redundant
20667         with the field current_function_decl. Added fields
20668         first_ccb_indent1 and pending_block.
20669         * parse.y (method_body, literal, INT_LIT_TK, FP_LIT_TK,
20670         BOOL_LIT_TK, CHAR_LIT_TK, STRING_LIT_TK, NULL_TK, VOID_TK): Rules
20671         tagged <node>
20672         (SOURCE_FRONTEND_DEBUG): Used as macro accepting varargs.
20673         (compilation_unit:): Cosmetic on sub rule.
20674         (type_declaration:): Cosmetic on sub rules. Added an error rule.
20675         (variable_initializer:): Installed default rule on expression:.
20676         (method_declaration:): method_header: starts a new
20677         method. method_body: installs the function body, absorbs blocks
20678         emitted for temporary variable scopings, pops function's body block
20679         and merges function's last statement lineno in DECL_SOURCE_LINE.
20680         (method_body:): Installed default rules.
20681         (block:): Call enter_block when an opening brace is seen.  Absorb
20682         scoping blocks and call exit_block when a closing brace is seen.
20683         (block_statement:): Cosmetic changes.
20684         (method_invocation:): Create WFL around CALL_EXPR node.
20685         (patch_stage): Added comment around definition.
20686         (method_header): Try to use first_ccb_indent1 as the first line of
20687         the method, so BP debug info are emitted at the first opening
20688         brace of the function. If the function has no body, use the
20689         location of the function's name. Override currently defined method
20690         name with the matching WFL so we can point redefinition errors
20691         using the location where the function's name was declared.
20692         (check_abstract_method_header): Interprets DECL_NAME as an
20693         identifier or as a WFL, accordingly.
20694         (java_complete_class): New cases for JDEP_TYPE and JDEP_PARM.
20695         (check_method_redefinition): Use DECL_NAME as a WFL. Extract
20696         location and name information out of it and reinstall DECL_NAME to
20697         its original identifier node value.
20698         (lookup_cl): Use DECL_SOURCE_LINE_FIRST (first line of the
20699         function's source code).
20700         (read_import_dir): Test the value returned by find_class and issue
20701         a fatal accordingly.
20702         (declare_local_variables): Push a new block for the scope of the
20703         new variable(s) if code has been already generated at that nesting
20704         level. Pinpoint redefinition errors using the variable id
20705         WFLs. Generate initialization code if necessary. If the variable
20706         type is incomplete, register a patch on its decl.
20707         (source_start_java_method): Rewritten. Define a new block for the
20708         function's parameters. Build parameter decl out of function's
20709         arguments and register them for a patch if their types are
20710         incomplete.
20711         (expand_start_java_method): Includes the part of
20712         source_start_java_method that was pushing the parameter decls and
20713         completing the method start code.
20714         (source_end_java_method): Removed call the expand_end_bindings and
20715         poplevel (already taken care of). Reinstall function's arguments
20716         and get function's last line of code before calling
20717         expand_function_end.
20718         (java_method_add_stmt): New comment before the function's
20719         code. Complement the second operand of the current COMPOUND_EXPR
20720         if necessary.
20721         (java_complete_expand_methods): Don't generate debug info on line
20722         zero when expanding a generated constructor.
20723         (java_complete_expand_method): Set start and end line numbers for
20724         a artificially generated constructor to one and manually call
20725         enter_block and exit_block when defining it. For all methods:
20726         expand function's start calling the new expand_start_java_method
20727         and invoke java_complete_tree on the effective method's body, if
20728         any.
20729         (resolve_expression_name): Now use lookup_name_in_blocks to search
20730         local variable decls and print out an error when variables are
20731         undefined.
20732         (patch_method_invocation_stmt): Inserted comment before the
20733         function's code.
20734         (lookup_method_invoke): Chain method's arguments using chainon
20735         with the current arg list as a second argument. Inserted missing
20736         IDENTIFIER_POINTER when reporting an error on methods not found.
20737         (refine_accessible_methods_list): Don't retain constructors.
20738         (patch_arguments): Function removed.
20739         (java_complete_tree): Inserted comment before the function's
20740         code. New case for BLOCKs. Moved the WFL case a bit
20741         further. Complete function's arguments.
20742         (build_expr_block, enter_block, exit_block, lookup_name_in_blocks,
20743         maybe_absorb_scoping_blocks): New functions.
20744
20745 1998-04-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20746
20747         * jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if
20748         previously set.
20749         * jcf-parse.c (parse_source_file, java_error_count): New forward
20750         and extern declarations.
20751         (java_parse_abort_on_error): Macro moved.
20752         (jcf_parse_source): fatal called if fopen fails. Now calls
20753         parse_source_file.
20754         (parse_source_file): New parse_only parameter. Reflects the
20755         elimination of the second pass.
20756         (yyparse): parse_source_file called with argument set to 0.
20757         * jcf.h (JCF_ZERO): Sets java_source to zero.
20758         * lex.c (java_init_lex): pass argument is gone. Function modified
20759         to be called once during the analysis of a file.
20760         (java_unget_unicode): Fixed typo in fatal message.
20761         (java_get_line_col): Likewise.
20762         (java_lval): Likewise. String literals no longer built during
20763         second pass.
20764         * lex.h (JAVA_COLUMN_DELTA): Take the tabulation character into
20765         account.
20766         * parse.h (MODIFIER_WFL): New macro.
20767         (parse_check_super, parser_check_super_interface): Now return int.
20768         (parser_chain_incomplete_item, not_builtin_p,
20769         complete_method_decl): Declarations removed.
20770         (build_method_invocation_stmt, build_invoke): Renamed using the
20771         `patch' instead of `build'
20772         (register-incomplete_type, obtain_incomplete_type,
20773         java_complete_tree, java_complete_expand_method,
20774         unresolved_type_p, create_jdep_list): New function declarations.
20775         (IC_TYPE, IC_DEPEND, DEPEND_DECL, DEPEND_WFL, BEGIN_ONLY_PASS,
20776         END_ONLY_PASS, ELSE_ONLY_PASS): Macro deleted.
20777         (jdep): New typedef on new struct _jdep.
20778         (JDEP_DECL, JDEP_DECL_WFL, JDEP_KIND, JDEP_SOLV, JDEP_WFL,
20779         JDEP_MISC, JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN,
20780         JDEP_TO_REVOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
20781         JDEP_RESOLVED_P): New macros.
20782         (JDEP_NO_PATCH, JDEP_SUPER, JDEP_FIELD, JDEP_METHOD,
20783         JDEP_METHOD_RETURN, JDEP_METHOD_END, JDEP_INTERFACE,
20784         JDEP_VARIABLE): New enum values and jdep kinds.
20785         (jdeplist): New typedef on struct _jdeplist.
20786         (CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, JDEP_INSERT): New
20787         macros.
20788         (CALL_EXPR_PRIMARY): New macro.
20789         (struct parser_ctxt): Fields java_pass, current_method_decl,
20790         method_decl_list deleted. New field jdeplist.
20791         (INCOMPLETE_P): Macro deleted.
20792         * parse.y (single_type_import_declaration:): Removed pass switch.
20793         (type_import_on_demand_declaration): Likewise.
20794         (field_declaration:): Removed pass switch on all sub rules.
20795         (class_declaration:): Call the complete_class_decl removed on
20796         class_body rules.
20797         (method_declaration:): Removed second pass switch. No longer chain
20798         methods decl when method_header reduced.
20799         (method_header:): Sub rules no longer depend on pass switch.
20800         (method_declarator:): Likewise.
20801         (method_body:): Likewise.
20802         (abstract_method_declaration:): Likewise.
20803         (block_statement:): Likewise.
20804         (local_variable_declaration:): Likewise.
20805         (argument_list:): Likewise.
20806         (method_invocation:): Likewise. Call to build_method_invocation_stmt
20807         removed. Partial CLASS_EXPR tree node built instead.
20808         (postfix_expression:): Removed pass switch on all sub rules.
20809         (java_pop_parser_context): Free classd_list content.
20810         (yyerror): Call obstrack_grow0 to finalize error message.
20811         (check_class_interface_creation): Comment modified to reflect new
20812         returned value meaning. Removed second pass switch. Return 1 if an
20813         error was found, 0 otherwise. Adjust pointer on filename if a
20814         leading path separator was found.
20815         (maybe_create_class_interface_decl): Removed first pass switch
20816         when linking the class decl to the class_list. Install a new
20817         jdep_list for the class.
20818         (add_superinterfaces): List of unresolved interfaces is
20819         gone. Unresolved interfaces are directly added to the current
20820         dependencies list.
20821         (create_interface): Second pass shortcut removed.
20822         ctpx->modifier_ctx access through MODIFIER_WFL.
20823         (create_class): Second pass shortcut removed. Call to
20824         register_incomplete_type replaces the call to
20825         parser_chain_incomplete_item.
20826         (complete_class_decl): Function removed.
20827         (duplicate_declaration_error): New way of retrieving redeclared
20828         item type.
20829         (register_fields): Call to lookup_modifier_cl replaced by
20830         MODIFIER_WFL. New way of handling unresolved type, using
20831         unresolved_type_p and obtain_incomplete_type.
20832         register_incomplete_type replaces call to parser_chain_incomplete_item.
20833         (patch_stage): New static global variable.
20834         (method_header): New way of handling unresolved type, using
20835         unresolved_type_p and obtain_incomplete_type. patch_stage used to
20836         indicates that the method decl needs to be patched.
20837         (check_abstract_method_header): Call to lookup_modifier_cl
20838         replaced by MODIFIER_WFL.
20839         (method_declarator): Incomplete argument type are registered
20840         calling register_incomplete_type. Patch on the declared method is
20841         issued in that case.
20842         (unresolved_type_p): New function.
20843         (parser_check_super_interface): New comment to reflect function's
20844         modified returned type (int). Function and has a new argument
20845         this_wfl. Call to parse_error_context uses this_wfl instead of
20846         relying on lookup_cl.
20847         (parser_check_super): Comment reflects function's new returned
20848         type (int). Function returns nonzero value on error.
20849         (create_jdep_list, reverse_jdep_list, obtain_incomplete_type,
20850         register_incomplete_type, jdep_resolve_class): New functions to
20851         handle incomplete types in declarations.
20852         (java_complete_class): Rewritten to work with the new incomplete
20853         type handling scheme.
20854         (complete_class_report_errors): Likewise.
20855         (complete_method_decl): Removed: it jobs is now handled by
20856         java_complete_class.
20857         (do_resolve_class): Class loaded in not already loaded and not
20858         found in Java source code.
20859         (java_check_regular_methods, java_check_abstract_methods): Don't
20860         call complete_method_decl anymore.
20861         (lookup_modifier_cl, not_builtin_p): Functions deleted.
20862         (read_import_dir): Got rid of the pass number dependency.
20863         (declare_local_variables): New handling of unresolved types (patch
20864         issued).
20865         (source_start_java_method): New parameter level. Function called
20866         with level set to 1 when argument types are potentially
20867         unresolved.  Called to complete the job with level set to 2 once
20868         types are complete.
20869         (source_end_java_method): Call to permanent_allocation
20870         removed. Waiting to be replaced by a more suitable obstack
20871         management.
20872         (java_complete_expand_methods, java_complete_expand_method,
20873         java_expand_finals): New functions.
20874         (build_method_invocation_stmt): Renamed
20875         patch_method_invocation_stmt. Extracts function call expression
20876         (wfl) and arguments (args) from CALL_EXPR tree operands.
20877         (build_invoke): Renamed patch_invoke. Fixed typo in fatal
20878         call. Patch the function and argument operand of the CALL_EXPR
20879         tree argument.
20880         (patch_argument, java_complete_tree): New functions.
20881
20882 1998-04-20  Per Bothner  <bothner@cygnus.com>
20883
20884         Recover from missing fields and methods (i.e. error instead of fatal).
20885         * decl.c, java-tree.h (TYPE_identifier_node):  New global constant.
20886         * expr.c (expand_invoke):  Recover from missing method.
20887         (expand_java_field_op):  Recover from missing field.
20888         Inline references to java.lang.{Integer,Char,...}.TYPE.
20889         * typeck.c (get_type_from_signature), java-tree.h:  New function.
20890         * class.c (add_method):  Use get_type_from_signature.
20891         (build_class_ref):  Handle a class that was not found.
20892         * typeck.c (convert):  Handle conversion to pointers (for convenience).
20893         * verify.c (verify_jvm_instructions):  Use get_type_from_signature
20894         instead of lookup_field to handle missing fields.
20895
20896         * jcf-parse.c (process_zip_dir):  Set java_source.
20897
20898 1998-04-20  Brendan Kehoe  <brendan@cygnus.com>
20899
20900         * jcf-parse.c (set_source_filename): Use TYPE_NAME, not DECL_NAME.
20901
20902 1998-04-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
20903
20904         * jcf-parse.c (load_class): Don't change input_filename before
20905         calling jcf_parse_source (but still do it before calling
20906         jcf_parse).
20907         (jcf_parse_source): Assign input_filename after having saved the
20908         parser context.
20909         * lex.c (java_init_lex): Chain a WFL node to the import on demand
20910         list. ctxp->modifier_ctx zeroed according to its new
20911         definition. ctxp->filename initialized. Removed
20912         JAVA_MODIFIER_CTX_UNMARK.
20913         (java_unget_unicode): Update the character based column position.
20914         (java_allocate_new_line): ref_count not used anymore. Always free
20915         ctxp->p_line. Initialize c_line->char_col to 0.
20916         (java_get_unicode): Update the character based column position.
20917         (java_lex): Use ctxp->elc to store current position in source
20918         file, at the beginning of the parsed token. Set modifier_ctx entry
20919         corresponding to the parse modifier to a WFL node. Return a WFL
20920         node when an identifier is parsed.
20921         (java_lex_error): Now uses ctxp->elc to store current position in
20922         source.
20923         (build_wfl_node, java_is_eol, java_get_line_col): New functions.
20924         * lex.h (build_wfl_node): New function definitions.
20925         (struct java_line): ref_count and next fields are gone. New field
20926         char_col.
20927         (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
20928         JAVA_LINE_UNMARK, ID_NAME, ID_CL): Macro definitions deleted.
20929         (JAVA_COLUMN_DELTA): New macro.
20930         (java_lc): New typedef on new struct _java_lc.
20931         * parse.h (lookup_cl, lookup_modifier_cl): Changed returned types.
20932         (parse_error_context, parse_warning_context): Changed prototypes.
20933         (java_get_line_col): Added as an available global function.
20934         (JAVA_MODIFIER_CTX_UNMARK): Macro removed.
20935         (IC_DECL): Replaced by macro IC_TYPE
20936         (DEPEND_WFL): New macro.
20937         (THIS_MODIFIER_ONLY): Now works with WFL and only remembers the first
20938         wrong modifier.
20939         (exit_java_complete_class): Removed a commented out statement.
20940         (struct parser_ctxt): Added comments on fields. modifier_ctx is
20941         now an array of tree nodes. Deleted fields line_list and
20942         e_line. New field elc, to replace e_line.
20943         * parse.y (array_type:): Build WFL node.
20944         (qualified_name:): Build a single WFL node out of two. Retain
20945         the location information of the first node in the resulting node.
20946         (package_declaration:): Use package name as a WFL node
20947         (single_type_import_declaration:): Use imported name as a WFL node.
20948         (type_import_on_demand_declaration:): Use root of the imported
20949         packages as a WFL node.
20950         (field_declaration:): Removed unused local variable cl.
20951         (method_declaration:): Don't call JAVA_MODIFIER_CTX_UNMARK.
20952         (yyerror): New static elc. Removed static error_line, error_pos.
20953         New local code_from_source. Save ctxp->elc into elc at the first
20954         pass. Call java_get_line_col to get a string of the line where
20955         the error occurred.
20956         (debug_line): Removed static function.
20957         (parse_error_context, parse_warning_context): Parameter cl is now
20958         a WFL node. Use its value to initialize ctxp->elc.
20959         (redefinition_error): Parameter cl is now a WFL node.
20960         (parse_add_interface): New parameter wfl. No longer call
20961         lookup_cl, use wfl instead.
20962         (check_class_interface_creation): Parameter cl is now a WFL node.
20963         (maybe_create_class_interface_decl): Likewise.
20964         (add_superinterfaces): New function.
20965         (create_interface): Removed local cl, node, super_decl,
20966         super_decl_type.  Function now uses id as a WFL node. Better
20967         warning/error report on obsolete or forbidden mix of
20968         modifiers. Now calls add_superinterfaces to register interfaces.
20969         (create_class): Removed local cl, node. Local variable id is used
20970         as a WFL node. Better error report on forbidden modifier
20971         mix. Uses add_superinterfaces to register interfaces.
20972         (find_field): Argument cl is now a WFL node. Now store the WFL
20973         node of a fields that needs to be checked for their
20974         initialization.
20975         (method_header): Local variable node non longer used. Local
20976         variable id replaces cl.
20977         (check_modifiers_consistency): Local variable cl is now a WFL
20978         node.
20979         (method_declarator): Local variable cl replaced by parameter id.
20980         (parser_qualified_name): Now uses parameter name as a WFL node.
20981         (parser_check_super_interface): New parameter wfl, for achieve
20982         greater accuracy during error reports.
20983         (parser_chain_incomplete_item): New parameter named location. Used,
20984         along the decl, to construct the incomplete item node.
20985         (java_complete_class): resolve_class now uses WFL node extracted
20986         from the incomplete item node. Macro IC_TYPE replaces TREE_PURPOSE
20987         where appropriate.
20988         (complete_method_decl): Unresolved function's argument types are WFL.
20989         (resolve_class): Parameter cl is now a WFL node.
20990         (resolve_and_layout): Likewise.
20991         (do_resolve_class): Likewise. Try first to use cl and then do the
20992         lookup on the decl when calling check_pkg_class_access.
20993         (complete_class_report_errors): Use IC_TYPE in place of
20994         TREE_PURPOSE where appropriate. Use DEPEND_WFL on dependency
20995         instead of doing a lookup over the decl.
20996         (java_check_final): Use WFL info from field tree list.
20997         (lookup_cl): Rewritten and returns a statically defined WFL node.
20998         (lookup_modifier_cl): Now uses information from WFL nodes.
20999         (process_imports): Likewise.
21000         (read_import_dir): name and cl arguments replaced by a single WFL
21001         node. Function modified accordingly.
21002         (find_in_imports_on_demand): Now uses WFL node.
21003         (check_pkg_class_access): cl argument is now a WFL node.
21004         (declare_local_variables): Fixed to use WFL nodes.
21005         (resolve_expression_name): Likewise.
21006         (build_method_invocation_stmt): name_combo argument renamed
21007         wfl. Function modified to use WFL nodes.
21008         (build_invoke): cl used as a WFL node when calling build_expr_wfl.
21009         (lookup_method_invoke): cl is now a WFL node. Added missing
21010         IDENTIFIER_POINTER to class type decl name.
21011
21012 1998-04-14  Dave Brolley  <brolley@cygnus.com>
21013
21014         * lang.c (init_parse): Now returns char* containing the filename.
21015
21016 1998-04-10  Per Bothner  <bothner@cygnus.com>
21017
21018         * class.c (layout_class):  Mangle repeated arg types to match cc1plus.
21019
21020         * decl.c, java-tree.h (integer_four_node):  New INTEGER_CST node.
21021         * class.c (make_class_data):  If flag_assume_compiled, initial class
21022         state is CSTATE_PREPARED; make superclass and interfaces direct
21023         references, rather than constant pool indexes.
21024
21025 1998-04-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21026
21027         * parser.y: Include flags.h. Removed debug variable pl.
21028         (method_declaration:): Uses ctxp->parser_ccb_indent instead of pl.
21029         (block:): Likewise.
21030         (labeled_statement_nsi:): Generate debug info when reducing
21031         expression_statement:.
21032         (check_pkg_class_access): get_access_flags_from_decl invocation
21033         fixed for new CLASS_* flags location.
21034         (source_end_java_method): Save/restore parser context when
21035         entering/leaving this routine. Restore lineno to its right value
21036         before calling expand_end_bindings.
21037         (build_method_invocation_stmt): build_invoke called with the
21038         current line information.
21039         (build_invoke): New argument cl. Wrap the function call around a
21040         wfl node.
21041         (refine_accessible_methods_list): Changed comment, removed
21042         unnecessary code.
21043         * parse.h: Fixed typo in comments.
21044         (CLASS_OR_INTERFACE): Handle the new CLASS_* flags location.
21045         (JAVA_MAYBE_GENERATE_DEBUG_INFO): New macro.
21046         (struct parser_ctxt): New fields ccb_indent, last_ccb_indent1,
21047         parser_ccb_indent.
21048         * lex.c (java_lex): Record the last closing curly bracket of a
21049         function.
21050         * jcf-parse.c (jcf_parse_source): Now calls
21051         java_check_methods. Clarified comment, fixed typo.
21052
21053 1998-04-09  Dave Brolley  <brolley@cygnus.com>
21054
21055         * lang.c (init_parse): Expose for non USE_CPPLIB builds.
21056         (finish_parse): Expose for non USE_CPPLIB builds.
21057
21058 1998-04-08  Jeffrey A Law  (law@cygnus.com)
21059
21060         * lang.c (lang_print_xnode): New function.
21061
21062 1998-04-03  Per Bothner  <bothner@cygnus.com>
21063
21064         * decl.c (class_dtable_decl), java-tree.h:  New tree node.
21065         * class.c (get_dispatch_vector, get_dispatch_table):  New functions
21066         used to build a class's dispatch table.
21067         (make_class_data):  Generate dispatch table if flag_assume_compiled.
21068         Set dtable of class object to address of class_dtable_decl.
21069
21070         * decl.c (int_decl_processing):  Make soft_badarrayindex_node
21071         be volatile and have side effects - generates better code.
21072
21073         * class.c, expr.c, parse.y:  CLASS_INTERFACE, CLASS_FINAL, etc:
21074         These flags were defined for TYPE_DECLs, but used on RECORD_TYPEs.
21075
21076         * expr.c (expand_invoke):  If class is final, method is
21077         effectively final, so can call it directly.
21078
21079         * java-tree.h (TYPE_NVIRTUALS, TYPE_VTABLE):  New macros.
21080
21081         * Makefile.in, Make-lang.in:  Add missing $(exeext)s.
21082
21083 1998-03-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21084
21085         * parse.y (build_method_invocation_stmt): Removed extra argument
21086         to build_invoke.
21087
21088 1998-03-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21089
21090         * expr.c (dtable_indent): Now static global.
21091         (expand_invoke): Now call invoke_build_dtable and
21092         build_invokevirtual.
21093         (invoke_build_dtable, build_invokevirtual): New functions.
21094         * jcf-io.c (find_class): Defer issuing a warning by setting
21095         jcf->outofsynch to 1.
21096         * jcf-parse.c (jcf_out_of_synch): New function.
21097         (load_class): Test this_jcf.outofsynch flag and call
21098         jcf_out_of_synch accordingly.
21099         * jcf.h: (typedef struct JCF): New flag outofsynch. Fixed typo in
21100         comment indentation.
21101         * lex.c (java_get_unicode): Fixed code indentation.
21102         (java_lex): Create string literal. Fixed typo. Removed several
21103         premature obstack_free.
21104         * parse.h: New enums for name resolution and invocation mode.
21105         (struct qualification): New data structure.
21106         (RESOLVE_CHAIN_REMAINDER, BUILD_PTR_FROM_NAME): New macros.
21107         (do_resolve_class, build_method_invocation_stmt,
21108         breakdown_qualified, qualify_ambiguous_name, resolve_and_layout,
21109         debug_line, identical_subpath_p, invocation_mode,
21110         refine_accessible_methods_list, build_invoke,
21111         lookup_method_invoke): New functions declared.
21112         (build_invokevirtual, invoke_build_dtable, match_java_method,
21113         build_field_ref, jcf_out_of_synch): New references to external
21114         functions.
21115         (struct parse_ctxt): Removed artificial_constructor field.
21116         * parse.y: (array_type:): Type defined for this rule.
21117         (class_type:): Installed default rule for interface_type:.
21118         (array_type:): Now build Java array type.
21119         (qualified_name:): Now use obstack_grow0.
21120         (method_declaration:): Skip the artificial constructor added to
21121         the list, if any.
21122         (abstract_method_declaration:): Execute the code only during pass 1.
21123         (block:): Installed default rule in block_statements:.
21124         (block_statement:): Add the statement to the method during pass 2.
21125         (statement_expression): Installed default rule for
21126         method_invocation:.
21127         (argument_list:): Added code to build the argument list.
21128         (method_invocation:): Added call to create the method invocation
21129         node.
21130         (yyerror): Now use obstack_grow0. Removed bogus obstack_free.
21131         (debug_line): New function for debug.
21132         (complete_class_decl): No longer do something during pass 1.
21133         (method_header): Use BUILD_PTR_FROM_NAME.
21134         (parser_qualified_classname): Use obstack_grow0. Removed bogus
21135         obstack_free.
21136         (parser_chain_incomplete_item): Use BUILD_PTR_FROM_NAME. Modified
21137         function's main comment.
21138         (java_complete_class): Set CLASS_LOADED_P on all fixed incomplete
21139         classes.
21140         (complete_method_decl): Use BUILD_PTR_FROM_NAME and promote types.
21141         (resolve_class): Now works with arrays.
21142         (do_resolve_class, resolve_and_layout): New functions.
21143         (java_check_regular_methods): Reverse method list before and after
21144         having processed it. No longer set ctxp->artificial_constructor.
21145         (read_import_dir): Test jcf->outofsynch and call jcf_out_of_synch
21146         accordingly. Fixed typo in issued error message. Now use
21147         obstack_grow0.
21148         (find_in_imports_on_demand): Now use obstack_grow0.
21149         (declare_local_variables): Use BUILD_PTR_FROM_NAME.
21150         (source_end_java_method): Call expand_expr_stmt instead of
21151         expand_expr. Calls it before calling expand_function_end.
21152         (java_method_add_stmt): Do nothing if errors were found during
21153         parsing.
21154         (java_layout_parsed_class): Set CLASS_LOADED_P and fixed typo.
21155         (build_method_invocation_stmt, build_invoke, invocation_mode,
21156         lookup_method_invoke, refine_accessible_methods_list,
21157         qualify_ambiguous_name, breakdown_qualified, identical_subpath_p):
21158         New functions.
21159         * typeck.c (build_java_signature): Properly end method signature
21160         if return type skipped.
21161         (match_java_method): New function.
21162
21163 1998-03-16  Per Bothner  <bothner@cygnus.com>
21164
21165         * jcf-io.c (find_classfile):  If USE_JCF_STDIO, fopen in binary mode.
21166
21167 1998-02-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21168
21169         * expr.c (build_invoke_non_interface): New function.
21170         (methods_ident, ncode_ident): Now static globals.
21171         (expand_invoke): Use build_invoke_non_interface.
21172         * java-tree.h (struct lang_decl): New field function_decl_body.
21173         (DECL_FUNCTION_BODY): New macro.
21174         * jcf-parse.c (jcf_parse_source): Deeper check before setting
21175         CLASS_FROM_SOURCE_P.
21176         (parse_source_file): Fixed typos. Call java_layout_parsed_class
21177         before starting pass 2. Call to java_generate_parsed_class replaced
21178         by java_register_parsed_class.
21179         * lex.c: Fixed typo in header. Some line width related formating.
21180         * lex.h: Some line width related formating.
21181         * parse.h (source_end_java_method, resolve_expression_name,
21182         complete_class_decl, maybe_create_class_interface_decl,
21183         check_class_interface_creation): New static function declarations.
21184         (java_layout_parsed_class, java_method_add_stmt): New function
21185         declarations.
21186         (struct parser_ctxt): Field mark_class_generate removed. New
21187         fields class_list and artificial_constructor.
21188         * parse.y: Fixed typo in header.
21189         (class_declaration:): Call complete_class_decl when class body
21190         parsed.
21191         (method_declaration:): Call source_end_java_method in pass 2 when
21192         the method body is defined.
21193         (postfix_expression:): Do expression name resolution on sub-rule
21194         name during pass 2.
21195         (create_class, create_interface): Merged common pieces.
21196         (check_class_interface_creation, maybe_create_class_interface_decl):
21197         New functions.
21198         (complete_class_decl): New function.
21199         (register_fields): Fixed line width related typo.
21200         (method_header): Correctly skip first argument when fixing
21201         argument line. Changed the loop.
21202         (java_check_circular_reference): Now use ctxp->class_list.
21203         (java_complete_class): Removed start/stop marking.
21204         (java_check_regular_methods): Now takes a class decl as an
21205         argument.  Add default constructor if none were encountered.
21206         (java_check_methods): Now use ctxp->class_list. Changed call to
21207         java_check_regular_methods.
21208         (source_start_java_method): Set DECL_ARG_TYPE for each function
21209         arguments.
21210         (source_end_java_method, java_method_add_stmt): New functions.
21211         (java_generate_parsed_class): No longer exists.
21212         (java_layout_parsed_class, java_register_parsed_class): New functions.
21213         (resolve_expression_name): New function.
21214
21215 1998-02-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21216
21217         * jcf-parse.c: (parse_source_file): Check on errors after init lex.
21218         * lex.c: (java_init_lex): Defer ctxp->java_pass initialization
21219         until pass initializations are done. Call read_import_dir with
21220         pass set to 0.
21221         * parse.h: (lookup_modifier_cl): New function declared.
21222         (INTERFACE_FIELD_MODIFIERS): New macro.
21223         (OBSOLETE_MODIFIER_WARNING): New macro.
21224         * parse.y: (register_fields): Class type and current field name in
21225         local variables. Check modifier(s) if adding field(s) to an interface.
21226         (check_abstract_method_header): Now use OBSOLETE_MODIFIER_WARNING
21227         and report errors using the faulty modifier line context.
21228         (lookup_modifier_cl): New function.
21229         (read_import_dir): Detect and report default import processing
21230         failure.
21231
21232 1998-02-11  Brendan Kehoe  <brendan@cygnus.com>
21233
21234         Add a pair of -fassume-compiled/-fno-assume-compiled options.
21235         * class.c (is_compiled_class): Return 1 after making sure it
21236         qualifies as loaded, if FLAG_ASSUME_COMPILED is set.
21237         * lang-options.h: Add -fassume-compiled/-fno-assume-compiled.
21238         * java-tree.h (flag_assume_compiled): Add decl.
21239         * lang.c (lang_f_options): Add the flag.
21240         (flag_assume_compiled): Add decl, default to 0.
21241
21242 1998-02-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21243
21244         * class.c (class_depth): Call to load_class uses extra VERBOSE arg.
21245         (is_compiled_class): Likewise.
21246         (layout_class): Likewise.
21247         (layout_class): Detect and lay out classes defined in source code.
21248         (interface_of_p, add_interface_do, may_add_interface): New
21249         function.
21250         (add_interface): Now use add_interface_do.
21251         (add_method_1): New function.
21252         (add_method): Now use add_method_1.
21253         (pushlevel): Debug message conditional to SOURCE_FRONTEND_DEBUG.
21254         (complete_start_java_method): New function.
21255         (start_java_mehod): Now call complete_start_java_method.
21256         * expr.c (lookup_field): Call to load_class uses extra VERBOSE arg.
21257         (expand_invoke): Likewise and fixed typo.
21258         *gjava.c: (print_super_field): Use new argument to find_class
21259         DO_CLASS_FILE.
21260         (main): Likewise.
21261         *java-tree.h: (CLASS_FROM_SOURCE_P): New flag on RECORD_TYPE.
21262         (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
21263         QUALIFIED_P, IS_AN_IMPORT_ON_DEMAND_P): New flags on
21264         IDENTIFIER_NODE.
21265         (CLASS_COMPLETE_P): New flag on TYPE_DECL.
21266         (add_method_1, push_class): New prototypes.
21267         *jcf-dump.c: find_class now uses new DO_CLASS_FILE argument.
21268         *jcf-io.c: (open_in_zip): jcf now stores a pointer to the Zip
21269         directory where the class was found.
21270         (find_class): New argument DO_CLASS_FILE. Function find_class
21271         modified accordingly.
21272         *jcf-parse.c: (fix_class_path): New function.
21273         (load_class): Use new VERBOSE argument. load_class now finds and
21274         loads/parses .class/.java files. Save read_state of current_jcf
21275         if necessary.
21276         (java_parser_abort_on_error): New macro.
21277         (jcf_parse_source, parse_source_file): New function.
21278         (jcf_parse): Fixed typo.
21279         (yyparse): Call parse_source_file () only.
21280         (process_zip_dir): Fixed typo, fix zdir->filename_length when
21281         writing the real class name back in the zip directory entry.
21282         (find_in_current_zip): IDENTIFIER_CLASS_VALUE may be null.
21283         (jcf_figure_file_type): Fixed bogus alloc and bcopy.
21284         *jcf.h: (typedef struct JCF): New fields java_source and zipd.
21285         (find_class): Prototype fixed.
21286         *lex.c: Added 1998 time stamp.
21287         Removed all static global variables, moved into the parser
21288         context data structure.. Now include unistd.h if SEEK_SET not
21289         defined.
21290         (java_init_lex): Rewritten.
21291         (java_sneak_unicode): Modified current unicode access in current line.
21292         (java_unget_unicode): Likewise.
21293         (java_allocate_new_line): New allocation management.
21294         (java_read_char): Modified access and storage of unget_utf8_value.
21295         New way of processing current unicode.
21296         (java_store_unicode, java_read_unicode): Fixed typo in declaration.
21297         (java_get_unicode): Now use the parser context.
21298         (java_lineterminator): Likewise.
21299         (java_lex): Now used java_lval argument (pointer to YYSTYPE), part
21300         of the reentrant parser implementation. Function now use the
21301         parser context data structure and java_lval. Fixed production of
21302         the float and double constant "out of range" error message. Fixed
21303         obstack use. Return integer value when hitting a modifier. Now
21304         return type for TRUE, FALSE and other predefined types. Return
21305         identifier as a TREE_LIST list containing the current line context
21306         as the TREE_VALUE sub-node.
21307         (java_unicode_2_utf8): Fixed typo in declaration.
21308         (java_lex_error): Now use the parser context data structure.
21309         *lex.h: Added 1998 time stamp.
21310         (struct java_line): New fields ref_count and next.
21311         (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
21312         JAVA_LINE_UNMARK, ID_NAME, ID_CL): New macros.
21313         (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, UNGETC): Fixed.
21314         *parse.h: Added 1998 time stamp.
21315         (java_parse_source_file): Renamed from parse_source_file.
21316         (YYERROR_NOW, YYNOT_TWICE): Fixed.
21317         (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
21318         INTERFACE_MODIFIER, INTERFACE_METHOD_MODIFIERS,
21319         JAVA_MODIFIER_CTX_UNMARK, IC_DECL, IC_DEPEND, DEPEND_DECL,
21320         THIS_MODIFIER_ONLY, ABSTRACT_CHECK, BEGIN_ONLY_PASS,
21321         END_ONLY_PASS, ELSE_ONLY_PASS, exit_java_complete_class,
21322         CLASS_OR_INTERFACE, INCOMPLETE_P): New macros.
21323         (struct parser_ctxt): New data structure to keep the parser context.
21324         *parse.y: Added 1998 time stamp, got rid of static global variables.
21325         (java_error_count, ctxp): New global variables.
21326         (%union): New value field.
21327         (numeric_type, integral_type): Rules removed.
21328         (primitive_type): Rule defined to handle integral, float, double and
21329         boolean types.
21330         (qualified_name, package_declaration,
21331         single_type_import_declaration, type_import_on_demand_declaration,
21332         modifiers, class_declaration, super, interfaces,
21333         interface_type_list, class_body, field_declaration,
21334         field_declaration, variable_declarators, variable_declarator,
21335         variable_declarator_id, method_declaration, method_header,
21336         formal_parameter_list, formal_parameter, method_body, block,
21337         static, interface_declaration, extends_interfaces,
21338         abstract_method_declaration, local_variable_declarators): Rules now
21339         define actions.
21340         (force_error, do_warning): New global statics.
21341         (push_parser_context, parser_context_save_global,
21342         parser_context_restore_global, pop_parser_context): New functions.
21343         (yyerror): Now uses the global parser context. Fixed use of obstack.
21344         (parse_error, parse_error_context, parse_warning_context,
21345         java_accstring_lookup, redefinition_error, check_modifiers,
21346         parser_add_interface, create_interface, create_class, find_field,
21347         duplicate_declaration_error, register_fields, method_header,
21348         check_modifiers_consistency, check_abstract_method_header,
21349         method_declarator, parser_qualified_classname,
21350         parser_check_super_interface, parser_check_super,
21351         parser_chain_incomplete_item, java_check_circular_reference,
21352         layout_class_from_source, java_complete_class,
21353         complete_method_decl, resolve_class, complete_class_report_errors,
21354         java_check_final, check_method_redefinition,
21355         java_check_regular_methods, java_check_abstract_methods,
21356         java_check_methods, lookup_java_interface_method2,
21357         lookup_java_method2, lookup_cl, find_name_in_single_imports,
21358         process_imports, find_in_imports, read_import_entry,
21359         read_import_dir, find_in_imports_on_demand,
21360         check_pkg_class_access, not_builtin_p, declare_local_variables,
21361         source_start_java_method, java_generate_parsed_class): New
21362         functions.
21363         *typeck.c: (signature_include_return): New global variable.
21364         (build_java_signature): Use SIGNATURE_INCLUDE_RETURN figure whether
21365         to add the function returned type in the signature.
21366
21367 1998-02-09  Brendan Kehoe  <brendan@cygnus.com>
21368
21369         * jcf-io.c (open_in_zip): Use strncmp and LEN.
21370
21371 1998-01-29  Dave Brolley  <brolley@cygnus.com>
21372
21373         * Make-lang.in (java.info): Added.
21374         (java.install-info): Added
21375
21376 1998-01-27  Brendan Kehoe  <brendan@cygnus.com>
21377
21378         * Makefile.in (clean): Also remove java/parse.c.
21379
21380 1998-01-26  Brendan Kehoe  <brendan@cygnus.com>
21381
21382         Add a pair of -fbounds-check/-fno-bounds-check options.
21383         * lang.c (lang_decode_option): Add code to grok arguments.
21384         (flag_bounds_check): Add decl.
21385         (lang_f_options): New array w/ the option in it.
21386         * java-tree.h (flag_bounds_check): Add decl.
21387         * lang-options.h: New file.
21388         * expr.c (build_java_arrayaccess): Use flag_bounds_check instead
21389         of a static macro value.
21390         (JAVA_ARRAY_EXCEPTION): Delete macro.
21391
21392 1998-01-23  Per Bothner  <bothner@cygnus.com>
21393
21394         * typeck.c (build_java_array_type):  Fix two bugs in previous change.
21395         * expr.c (build_anewarray):  Add missing promote_type.
21396
21397 1998-01-22  Per Bothner  <bothner@cygnus.com>
21398
21399         Add array types with known length to optimize bounds checking.
21400         * typeck.c (build_java_array_type):  Take length parameter.
21401         (java_array_type_length, build_prim_array_type):  New functions.
21402         * java-tree.h:  Update for new functions.
21403         * expr.c, typeck.c, verify.c: Update build_java_array_type calls.
21404         * class.c:  Use build_prim_array_type.
21405         * expr.c (can_widen_reference_to):  Handle known-length array types.
21406         (verify_jvm_instructions):  Keep track of integer push instructions
21407         followed by newarray/anewarray, so we can build known-length arrays.
21408         (JAVA_ARRAY_DATA_OFFSET):  Replace by ...
21409         (java_array_data_offset):  New function.
21410         (build_java_array_length_access):  New function.  Optimize if constant.
21411         (build_java_arrayaccess):  Constant fold bounds check.
21412         (expand_java_newarray, expand_java_anewarray):  Replaced by ...
21413         (build_newarray, build_anewarray):  New functions.
21414         (ARRAY_NEW_NUM, ARRAY_NEW_PTR):  Use build_{a,}newarray.
21415         * verify.c (merge_types):  Handle known-lengh array types.
21416
21417 1998-01-19  Per Bothner  <bothner@cygnus.com>
21418
21419         * expr.c (expand_byte_code):  Fix performace bug, which caused
21420         searching linenumber_table to be linear rather than constant.
21421
21422 1997-12-12  Per Bothner  <bothner@cygnus.com>
21423
21424         * Makefile.in (BISON, BISONFLAGS):  Add missing macros.
21425
21426         * decl.c, java-tree.h (soft_fmod_node):  New global.
21427         * decl.c (init_decl_processing):  Define __builtin_fmod.
21428         * expr.c (build_java_binop):  Implement TRUNC_MOD_EXPR for REAL_TYPE
21429         using __builtin_fmod.
21430
21431 1997-12-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21432
21433         * keyword.h: New file, output of keyword.gperf as processed by
21434         gperf.
21435         * lex.c (java_lex_init): Initialize java_error_flag.
21436         * parse.c (YYERROR_NOW): Uses java_error_flag.
21437         * parse.y: New static java_error_flag. Useless definition of
21438         buffer_error gone.
21439         * parse.y (java_error): Portable error recovery using
21440         java_error_flag (not yet completely tuned).
21441
21442 1997-12-04  Brendan Kehoe  <brendan@lisa.cygnus.com>
21443
21444         * Makefile.in (parse.c): Use $(srcdir) for parse.y.
21445
21446 1997-12-03  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21447
21448         * Makefile.in: (JAVA_OBJS): New object jcf-parse.o.
21449         (parse.c, lex.c, keyword.h): New rules for Java source code
21450         front-end.
21451         * parse.c: Renamed into jcf-parse.c.
21452         * jcf-parse.c (yyparse): Invoke the parser to process Java source code.
21453         * keyword.gperf: New file, Java keywords.
21454         * parse.y: New file, Java language grammar.
21455         * parse.h: New file, Java language grammar definitions.
21456         * lex.c: New file, Java language lexer.
21457         * lex.h: New file, Java language lexer definitions.
21458
21459 1997-12-03  Per Bothner  <bothner@cygnus.com>
21460
21461         * decl.c (clinit_identifier_node), java-tree.h:  New global.
21462         * java-tree.h (IS_METHOD_INIT_P, IS_METHOD_CLINIT_P):  Removed.
21463         * verify.c (verify_jvm_instructions):  Inline use of removed macros.
21464         * expr.c (expand_java_field_op):  Check for invalid assignment
21465         to final field.
21466
21467         * jcf-reader.c (get_attribute):  Test for wrong attribute length.
21468
21469 1997-10-27  Per Bothner  <bothner@cygnus.com>
21470
21471         * verify.c (verify_jvm_instructions):  When processing a handler,
21472         attempt to set the current_subr to the right value.
21473         (More complicated code combines Sep 17 and Oct 22 versions.)
21474
21475 1997-10-24  Per Bothner  <bothner@cygnus.com>
21476
21477         * class.c (push_class):  Figure out (guess) name of source file.
21478         * parse.c  (set_source_filename):  Set DECL_SOURCE_FILE of class decl.
21479         (give_name_to_class):  Don't guess source name;  use DECL_SOURCE_FILE.
21480         (parse_class_file):  Change return type from int to void.
21481         Call debug_start_source_file/debug_end_source_file.
21482
21483         * expr.c (build_java_binop):  Fix masking 2nd operand.
21484         * decl.c (init_decl_processing):  Set sizetype first.
21485
21486 1997-10-22  Per Bothner  <bothner@cygnus.com>
21487
21488         * verify.c (verify_jvm_instructions):  Don't set current_subr to NULL.
21489         (Revert Sep 17 change.)
21490
21491 1997-10-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21492
21493         * parse.c (process_zip_dir): Skip ZIP entries not bearing the
21494         .class extension in their name and fix thing so we don't process
21495         them parse_zip_file_entries().
21496         (parse_zip_file_entries): Cleaned unused local variables.
21497
21498 1997-10-20  Per Bothner  <bothner@cygnus.com>
21499
21500         * expr.c (can_widen_reference_to):  Allows equal array element types.
21501         (expand_byte_code):  PRE_RET must expand OPERAND_VALUE (to get index).
21502         * jcf-dump.c (RET):  Get (and print) index.
21503
21504         * verify.c (verify_jvm_instructions case OPCODE_anewarray):
21505         Promote element type to POINTER_TYPE.
21506
21507 1997-10-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21508
21509         * jcf-reader.c, parse.c: (parse_zip_file, process_zip_dir,
21510         find_in_current_zip, jcf_figure_file_type): Moved from
21511         jcf-reader.c to parse.c.
21512         * zextract.c: (read_zip_archive): takes file_comment_length possible
21513         field into account.
21514
21515 1997-10-20  Per Bothner  <bothner@cygnus.com>
21516
21517         * verify.c (verify_jvm_instructions):  Var can also be promoted to int.
21518
21519         * verify.c (merge_types):  Handle array types even better ...
21520
21521 1997-10-17  Per Bothner  <bothner@cygnus.com>
21522
21523         * expr.c (java_stack_pop):  Fix use of NULL_TREE for TYPE_SECOND.
21524
21525         * java-tree.h (PUSH_FIELD):  Set DECL_ARTIFICIAL.
21526         * class.c (make_class_data):  Don't build fields_decl if no fields.
21527         When building fields_decl, skip if DECL_ARTIFICIAL.
21528
21529         * expr.c (java_stack_swap):  Update stack_type_map.
21530         * verify.c (merge_types):  Handle array types better.
21531
21532 1997-10-15  Per Bothner  <bothner@cygnus.com>
21533
21534         * class.c (add_field):  Don't promote short integral fields to
21535         int any more (unless JAVA_PROMOTE_TO_INT), since Kaffe doesn't.
21536         * expr.c (push_value):  Promote and convert short integral values.
21537
21538         * decl.c, java-tree.h (integer_two_node):  New constant node.
21539         * verify.c (merge_types):  Check for TYPE_RETURN_ADDR.
21540
21541 1997-10-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21542
21543         * class.c (append_gpp_mangled_type): Use function argument
21544         unpromoted type to generate mangled name.
21545
21546 1997-10-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21547
21548         * constants.c (build_constant_data_ref): Now uses current_class
21549         instead of main_class.
21550         (build_constants_constructor): Now uses current_class instead of
21551         main_class.
21552         * zipfile.h: (struct ZipFileCache): Now defined here. Declaration
21553         of the global variable SeepZipFiles done here.
21554         * zextract.c (read_zip_archive): extra_field optional field taken
21555         into account while computing the position of the class file in the
21556         archive.
21557         * verify.c (verify_jvm_instructions): Use current_jcf to search
21558         the constant pool.
21559         * parse.c (load_class): First search for the class to load in the
21560         current zip file. Saves current_jcf (restored before returning
21561         from that function). Don't call JCF_FINISH in the class was found
21562         in the current ZIP file.
21563         (jcf_parse): If the class was found in the current ZIP file, save
21564         its tree_constant_pool (for later reuse).
21565         (parse_class_file): New function. Process each method defined in
21566         the current class and record the class as to be later registered.
21567         (yyparse): Rewritten. Figure the type of the current file and switch
21568         accordingly.
21569         * lang.c: New global variable current_jcf.
21570         (lang_init): Removed compiling_from_source test (done later, in
21571         yyparse). Removed call the jcf_parse ().
21572         * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): New defined values.
21573         (typedef struct JCF): New fields seen_in_zip (to mark a class found
21574         in the current ZIP file) and zip_offset (offset to the class data in
21575         the current zip file).
21576         * jcf-reader.c: zipfile.h included.
21577         localToFile: New ZipFileCache static global variable
21578         (parse_zip_file_entries): New function. Browse the current ZIP
21579         file directory and process each class found.
21580         (process_zip_dir): New function. Register each class found in the
21581         ZIP file directory. The class aren't parsed but a valid JCF is
21582         link to each of them.
21583         (find_in_current_zip): New function. Search for a class in the
21584         current ZIP file directory. If found, prepare the class so that it
21585         can be loaded.
21586         (jcf_figure_file_type): New function. Examine the file structure
21587         to figure a class file, a ZIP file. If none of these categories are
21588         matched, a source file is assumed.
21589         * jcf-io.c: Removed definition of ZipFileCache (moved in zipfile.h).
21590         SeenZipFile: New global variable.
21591         (open_in_zip): Use zipmember's length to accelerate the search for
21592         a member. If zipmember was NULL and zip file successfully read,
21593         return 0.
21594         * java-tree.h: New global variable current_jcf declared.  Added
21595         declaration for current_constant_pool_tags, current_constant_pool_data,
21596         current_constant_pool_length, current_constant_pool_data_ref.
21597         (struct lang_type): Augmented with two fields. struct JCF *jcf (to
21598         store the JCF of classes seen in a zip file) and tree *constant_pool
21599         (to save a loaded class constant pool). current_class declared here.
21600         * expr.c (expand_invoke): Use current_jcf instead of main_jcf to
21601         retrieve method_ref_constant.
21602         (PUSHC): java_push_constant_from_pool now uses current_jcf.
21603         (OBJECT): get_class_constant now uses current_jcf.
21604         (ARRAY_NEW_PTR): get_class_constant now uses current_jcf.
21605         (ARRAY_NEW_MULTI): get_class_constant now uses current_jcf.
21606         (expand_invoke): Now uses current_class instead of main_class
21607         (build_class_init): Now uses current_class instead of main_class
21608         * class.c: New static global variable registered_class.
21609         (register_class): New function.
21610         (emit_register_class): Modified to use registered_class instead of
21611         main_class
21612         (is_compiled_class): Now take into account class seen in the archive.
21613
21614 1997-10-06  Per Bothner  <bothner@cygnus.com>
21615
21616         * except.h:  Renamed to: java-except.h.
21617         * parse.c, except.c, expr.c, verify.c:  Update #include accordingly.
21618         * except.c:  Add semi-working (commented out) implementation.
21619
21620         * expr.c (expand_iinc):  Add needed flush_quick_stack.
21621         * parse.c (set_source_filename):  New function.
21622         (give_name_to_class):  Set input_filename from package.classname.java.
21623
21624         * jcf-io.c (find_class):  Don't look first in ".".
21625
21626 1997-10-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21627
21628         * zextract.c (read_zip_archive): Now takes into account the
21629         extra_field field.
21630         * expr.c (can_widen_reference_to): Modified to handle sub-interfaces.
21631
21632 1997-09-20  Per Bothner  <bothner@cygnus.com>
21633
21634         * constants.c, java-tree.h (build_internal_class_name):  New function.
21635         (alloc_class_constant):  Re-implement using build_internal_class_name.
21636         * class.c (make_class_data):  Likewise.
21637         * class.c (hashUtf8String):  Make hash algorithm match String.hashCode.
21638
21639 1997-09-17  Per Bothner  <bothner@cygnus.com>
21640
21641         * verify.c (verify_jvm_instructions):  Temporarily set current_subr
21642         to NULL before pushing an exception handler target.
21643
21644         * expr.c (flush_quick_stack):  Save from low stack indexes to high.
21645         (java_stack_swap, java_stack_dup):  Re-write to be safe from
21646         clobbering registers.
21647         (build_class_init):  New function.
21648
21649 1997-09-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21650
21651         * typeck.c (build_java_array_type): Temporary use
21652         permanent_obstack to create the array 'length' field.
21653         * expr.c (lookup_label): Temporay use permanent_obstack to create
21654         label if not found.
21655         * class.c (push_super_field): Tempory use permanent_obstack.
21656
21657 1997-09-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21658
21659         * typeck.c (type_for_mode): Now handles double_type_node and
21660         float_type_node.
21661         * verify.c (verify_jvm_instructions): The instruction following
21662         the wide bytecode is checked. OPCODE_ret added to the list of
21663         wide.
21664
21665 1997-09-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21666
21667         * class.c (make_class): Temporary use permanent_obstack. Set the
21668         class CLASS_P field to 1.
21669         (push_class): Temporary use permanent_obstack.
21670         (set_super_info): Temporary use permanent_obstack.
21671         (add_method): Temporary use permanent_obstack, set
21672         METHOD_TRANSIENT().
21673         (add_field): Temporary use permanent_obstack. Sets
21674         FIELD_VOLATILE() and FIELD_TRANSIENT().
21675         (build_class_ref): Temporary use permanent_obstack if the class
21676         isn't compiled.
21677         (build_static_field_ref): Temporary use permanent_obstack when
21678         creating field's rtl.
21679         (get_access_flags_from_decl): Handle ACC_VOLATILE, ACC_TRANSIENT,
21680         ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT flags for methods
21681         and fields. Function finalized, as far as flag handling.
21682         (push_class_static_dummy_field): Temporary use permanent_obstack.
21683         (emit_register_class): Force generation of class registration at
21684         -O3 or deeper.
21685         * decl.c (end_java_method): Call permanent_allocation() before
21686         returning.
21687         * expr.c (can_widen_reference_to): Added comment to interface
21688         handling, fixed typo.
21689         (lookup_field): Now uses CLASS_P() to correct FIXME
21690         (expand_invoke): Verification on public && !static &&
21691         !abstract moved into soft_lookupinterfacemethod (kaffe).
21692         Use Object class dtable if objectref is an array when expanding
21693         invokeinterface.
21694         (java_push_constant_from_pool): Temporary use permanent_obstack
21695         for CONSTANT_string
21696         * parse.c (get_ref_constant): Temporary use permanent_obstack to
21697         create constant references.
21698         (get_constant): Temporary use permanent_obstack to create constant.
21699         (load_class): Temporary use permanent_obstack to load class.
21700         (jcf_parse): Temporary use permanent_obstack to perform class
21701         layout.
21702         * typeck.c: (parse_signature_string): Temporary use permanent_obstack.
21703         (build_java_signature): Temporary use permanent_obstack.
21704         * verify.c: (verify_jvm_instruction): removed unnecessary verification
21705         on ACC_SUPER flag.
21706         * java-tree.h (METHOD_NATIVE, METHOD_TRANSIENT): Defined.
21707         (FIELD_VOLATILE, FIELD_TRANSIENT): Defined.
21708         (CLASS_P): Defined
21709
21710 1997-09-11  Per Bothner  <bothner@cygnus.com>
21711
21712         * class.c (append_gpp_mangled_type):  Fix typo.
21713         (emit_register_class):  Use main_class to get class object, rather
21714         than looking for no-longer-existing static decl starting with _CL.
21715         * typeck.c (parse_signature_type):  Promote array element type
21716         if it is a RECORD_TYPE.
21717
21718 1997-09-10  Per Bothner  <bothner@cygnus.com>
21719
21720         * class.c (push_class_static_dummy_field):  New function.
21721         (mangle_static_field):  New. Do G++-style mangling of static fields.
21722         (layout_class):  Mandle static fields here, not in add_field.
21723         (build_class_ref):  The class object is now a dummy static field.
21724         * decl.c (find_local_variable):  Look for best, instead of first match.
21725         * expr.c (push_type):  Always promote_type, not just for RECORD_TYPE.
21726         (build_java_athrow):  Don't check here if exception is Throwable.
21727         * java-tree.h (TYPE_UNSET):  Renamed to TYPE_UNKNOWN.
21728         (TYPE_USED):  Removed.  No longer used ...
21729         * parse.c (jcf_parse):  Call push_class_static_dummy_field.
21730         * verify.c (push_pending_label):  New function.
21731         (push_pending_block):  Renamed to check_pending_block.
21732         (merge_types):  Remove unneeded suuport for TYPE_UNUSED.
21733         (verify_jvm_instructions):  Only reset prev_eh_ranges (to force
21734         re-checking possible handlers) after a store (less wasted work).
21735         Check for null handler (finally) before calling add_handler.
21736         Various changes to (finally?) correctly handle try/finally.
21737
21738 1997-09-09  Brendan Kehoe  <brendan@lisa.cygnus.com>
21739
21740         * class.c: Include stdio.h.
21741
21742 1997-09-04  Per Bothner  <bothner@cygnus.com>
21743
21744         * expr.c (expand_invoke):  Use COMPOUND_EXPR (and TREE_SIDE_EFFECTS)
21745         to make sure class is initialized before static/special invoke.
21746
21747         * verify.c (verify_jvm_instructions):  On a store instruction,
21748         call find_local_variable to force pre-allocation of decl and rtx.
21749         * decl.c (push_jvm_slot):  Set DECL_REGISTER on stack slots.
21750
21751 1997-09-03  Per Bothner  <bothner@cygnus.com>
21752
21753         * class.c (build_class_ref):   Strip off "promoted_" if need be.
21754         (make_field_value): Call build_java_signature when needed.
21755         (layout_class):  Don't make_function_rtl if METHOD_ABSTRACT.
21756         * expr.c (build_java_athrow):  Don't push_value of exception.
21757         (build_java_binop):  Implement COMPARE_L_EXPR and COMPARE_G_EXPR to
21758         match specification of [fd]cmp[lg] for NaNs.
21759         (expand_byte_code):  Add support for exception handler ranges.
21760         * except.c:  Add skeleton for EH code-generation.
21761         * verify.c (merge_types):  Treat all promoted integral types as equal.
21762         * constants.c (build_constants_constructor):  To force creation of
21763         current_constant_pool_data_ref, call build_constant_data_ref.
21764
21765         * javaop.def (lload):  Fix typo.
21766         * jcf-dump.c (main):  Clear filename to prevent possibly-bad free.
21767
21768 1997-09-02  Brendan Kehoe  <brendan@lisa.cygnus.com>
21769
21770         * parse.c: Don't include function.h.
21771
21772 1997-08-27  Per Bothner  <bothner@cygnus.com>
21773
21774         * except.[ch]:  New files.
21775         * Makefile.in (JAVA_OBJS):  Add except.o
21776         * expr.c:  Temporary warning about unimplemented exceptions.
21777         * verify.c:  Verify exception handlers.
21778
21779         * jcf-dump.c (disassemble_method):  Print exception table.
21780
21781 1997-08-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21782
21783         * expr.c (verify_jvm_instructions): Started a thorough
21784         verification of invoke* bytecodes.
21785         (expand_byte_code): flush quick stack if PC is the target of a
21786         branch.  and undef RET (conflicting with config/i386/i386.h).
21787         (expand_java_arrayload): Fixed bogus cast, when Boolean type is
21788         used.
21789         (expand_invoke): Now handles invokeinterface and do more
21790         verification according to the bytecode.
21791         (lookup_field): Don't try to load the class if processing
21792         dtable_type.
21793         (can_widen_reference_to): Now handles interfaces.
21794         * decl.c (init_decl_processing): New global variable
21795         soft_lookupinterfacemethod_node, declared in java-tree.h.
21796         Call set_super_info on string_type_node.
21797         * java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now
21798         defined.
21799         * class.c (set_super_info): Fills the CLASS_* flags according to
21800         access_flags.
21801         (get_access_flags_from_decl): Handles all class flags.
21802
21803 1997-08-26  Per Bothner  <bothner@cygnus.com>
21804
21805         * class.c (add_method):  Zero out newly-allocated DECL_LANG_SPECIFIC.
21806         * parse.c (yyparse):  Check for abstract method, and missing code.
21807         * expr.c (expand_byte_code):  Change interface.
21808         * lang.c (put_decl_node):  Print promoted types prettier.
21809         * verify.c (verify_jvm_instruction):  Change interface.
21810         Partial support for scanning exception table.
21811         For load instructions, handle promoted integral types.
21812
21813 1997-08-21  Per Bothner  <bothner@cygnus.com>
21814
21815         * verify.c:  New file, with contents moved from expr.c.
21816         * expr.c:  Bunch of stuff (mostly verification) moved to verify.c.
21817         * typeck.c (is_array_type_p):  Moved here from expr.c.
21818         * java-tree.h:  Add some now-needed function declarations.
21819         * Makefile.in (JAVA_OBJS): Added verify.o.
21820
21821 1997-08-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21822
21823         * class.c (add_method): Sets the METHOD_SYNCHRONIZED flag, sets the
21824         METHOD_ABSTRACT flag.
21825
21826         * java-tree.h (METHOD_SYNCHRONIZED): Set to DECL_LANG_FLAG_4.
21827         (IS_METHOD_CLINIT_P, IS_METHOD_INIT_P): New macros.
21828         (METHOD_ABSTRACT): Set to DECL_LANG_FLAG_5
21829
21830         * decl.c (soft_monitorenter_node, soft_monitorexit_node): New global
21831         variables.
21832         (start_java_method): Hook for SYNCHRONIZED methods.
21833
21834         * expr.c (build_java_jsr, build_java_ret): New functions
21835         (JSR,PRE): New macros
21836         (PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured.
21837         (verify_jvm_instructions): tableswitch, lookupswitch,
21838         monitorenter, monitorexit, goto_w: verified.
21839         (LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label
21840         (build_java_monitor): New function.
21841         (MONITOR_OPERATION): Modified to call build_java_monitor()
21842         (verify_jvm_instructions): Started a thorough verification of
21843         invoke* bytecodes.
21844
21845 1997-08-19  Per Bothner  <bothner@cygnus.com>
21846
21847         Support verification of jsr/ret subroutines (used for try/finally).
21848         * decl.c (return_address_type_node):  New type node.
21849         * java-tree.h (LABEL_RETURN_LABEL, LABEL_RETURN_TYPE_STATE,
21850         RETURN_MAP_ADJUSTED, LABEL_RETURN_LABELS, LABEL_IN_SUBR,
21851         LABEL_SUBR_START, LABEL_SUBR_CONTEXT, BCODE_VERIFIED):  New macros.
21852         (TYPE_UNSET, TYPE_SECOND, TYPE_NULL, TYPE_RETURN_ADDR, TYPE_UNUSED,
21853         TYPE_USED):  New macros for special types in type_map.
21854
21855         * java-tree.h (BCODE_JUMP_TARGET):  Renamed to BCODE_TARGET.
21856         (BCODE_BACKWARDS_TARGET, CODE_FORWARDS_TARGET):  Replaced by
21857         BCODE_JUMP_TARGET.
21858         * expr.c (expand_byte_code):  Fix logic to warn of unused instructions.
21859
21860         * expr.c (can_widen_reference_to):  New function.
21861         (pop_type):  Use it.
21862         (merge_type_state):  Support handling start of subroutine.
21863         (push_pending_block):  Return char* error message, instead of calling
21864         fatal on an error.  Also handle subroutines.
21865         (verify_jvm_instructions):  Handle errors from push_poending_block.
21866         Support jsr and ret instructions.
21867
21868 1997-08-19  Per Bothner  <bothner@cygnus.com>
21869
21870         * jcf-io.c (find_classfile):  Fix thinko.
21871         * jcf-dump.c:  Add CONVERT2 (to match changed javaop.def).
21872
21873 1997-08-12  Jason Merrill  <jason@yorick.cygnus.com>
21874
21875         * Makefile.in (BISON): Remove.
21876
21877 1997-08-07  Per Bothner  <bothner@cygnus.com>
21878
21879         * Makefile.in:  Convert to autoconf.
21880         * config-lang.in (outputs):  Added java/Makefile.
21881
21882         * Make-lang.in, lang-specs.h, config-lang.in, Makefile.in:
21883         Rename cc1java to jc1.
21884
21885         * lang.c (init_parse, finihs_parse):  New functions #ifdef USE_CPPLIB.
21886         * Makefile.in (INTERNAL_CFLAGS):  Add @extra_c_flags.
21887
21888         * class.c (class_depth):  Do load_class if needed.
21889
21890         Mostly better verification.
21891         * decl.c (pushdecl):  Set TYPE_STUB_DECL for a type.
21892         (init_decl_processing):  Change return type of soft_checkcast.
21893         * expr.c (expand_java_CHECKCAST):  Do push_value of the "casted" value.
21894         * lang.c (put_decl_string, put_decl_node, lang_printable_name,
21895         lang_print_error):  New functions.
21896         (lang_init):  Set global hook print_error_function to lang_print_error.
21897         * expr.c:  In the type_map ptr_type_node is only used for null now.
21898         (pop_type, merge_types):  Hence ptr_type_node matches any reference.
21899         (merge_types):  Dererence pointer to record types before comparing.
21900         (decode_newarray_type, merge_types):  On error just return NULL.
21901         (build_java_binop):  Add preliminary implementation (with warning)
21902         for COMPARE_L_EXPR and COMPARE_G_EXPR (i.e. [fd]cmp[lg]).
21903         (lookup_label):  Set DECL_IGNORED_P (for dwarf2out).
21904         (expand_compare, expand_java_goto, expand_java_call):  Don't
21905         push_pending_block, since that only makes sense when verifying.
21906         (merge_type_state):  Different return codes.
21907         (push_pending_block):  A block may need to be verified more than once.
21908         (expand_byte_code):  Warn about unused code at code generation time.
21909         (verify_jvm_instruction):  Changed logic, since code may need to be
21910         re-verified if type-state has changed.  Also, better error handling.
21911         Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof.
21912         Improve newarray, anewarray, ?aload, athrow,
21913         * java-tree.h (LABEL_CHANGED):  New macro.
21914
21915 1997-08-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21916
21917         * decl.c (soft_athrow_node): New global variable initialized.
21918         * javaop.def (i2b, i2c, i2s): Invoke CONVERT2
21919         * typeck.c (convert): Added support for REAL_TYPE.
21920         (convert_to_char): New function.
21921         (convert): Handle CHAR_TYPE.
21922         * expr.c (expand_java_arraystore): Modified because CHAR/BYTE/BOOLEAN/
21923         SHORT now expect INT but store as CHAR/BYTE/BOOLEAN/SHORT.
21924         (expand_java_arrayload): CHAR/BYTE/BOOLEAN/SHORT now convert result to
21925         promoted type.
21926         (verify_jvm_instructions): Added break a the end of bogus unop: label.
21927         (OPCODE_<b|c|s>astore): Pop an int operand from the type stack
21928         (OPCODE_<b|c|s>astore): Push the promoted type onto the stack
21929         (process_jvm_instruction): New macro CONVERT2 for i2c, i2s and i2b.
21930         (JAVA_ARRAY_LENGTH_OFFSET, JAVA_ARRAY_DATA_OFFSET): Modified
21931         to Use The Right Things.
21932         (pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as
21933         compatible with INT. BOOLEAN is made equivalent to BYTE.
21934         (OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull,
21935         OPCODE_ifnonnull): Now supported.
21936         (build_java_athrow): New function.
21937
21938 1997-08-04  Per Bothner  <bothner@cygnus.com>
21939
21940         Rename method name <init> to match G++ (and fix mangling).
21941         * class.c (layout_class):  Replace method name of <init> by class name.
21942         (make_method_value):  Do inverse renaming of constructor from <init>.
21943         * java-tree.h (DECL_CONSTRUCTOR_P):  New macro.
21944         * typeck.c (lookup_java_constructor):  New function.
21945         * expr.c (expand_invoke):  If method_name is <init>, call
21946         lookup_java_constructor to find constructor.
21947
21948         * parse.c (get_constant):  Handle CONSTANT_Float and CONSTANT_Double.
21949
21950 1997-08-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
21951
21952         * parse.c (get_class_constant): Modified to handle array "classes"
21953         * typeck.c (set_local_type): Bug fixed when filling type_map[] with
21954         wide type.
21955         (convert): Modified to handle real type.
21956         * java-tree.h (soft_badarrayindex_node, soft_anewarray_node,
21957         soft_multianewarray, soft_newarray_node, soft_throw_node): New global
21958         variables declared.
21959         * decl.c (soft_badarrayindex_node, soft_anewarray_node,
21960         soft_multianewarray, soft_newarray_node, soft_throw_node): New
21961         global variables initialized.
21962         (find_local_variable): Handles the case of a pointer
21963         (end_java_method): Restore the use of one more scope
21964         * expr.c (build_java_arraynull_check, build_java_arrayaccess,
21965         build_java_array_length_access, expand_java_arrayload,
21966         expand_java_arraystore, expand_java_array_length,
21967         expand_java_multianewarray, expand_java_anewarray,
21968         build_java_check_indexed_type, is_array_type_p,
21969         build_java_throw_out_of_bound_exception): New functions.
21970         (STORE_INTERNAL): Now forces type of the decl to be type of the value.
21971         (OPCODE_arraylength, OPCODE_newarray, OPCODE_<t>astore,
21972         OPCODE_<t>aload): Implemented code for verification.
21973         (ARRAY_STORE, ARRAY_LOAD, ARRAY_LENGTH, ARRAY_NEW_PTR, ARRAY_NEW_NUM
21974         ARRAY_NEW_MULTI): Macro defined.
21975         (CONVERT): Modified to invoke convert().
21976         (case OPCODE_aload2): Fixed index typo from 2 to 1.
21977
21978 1997-07-31  Per Bothner  <bothner@cygnus.com>
21979
21980         * class.c (push_class):  Set DECL_ARTIFICIAL (for dbxout.c).
21981         (build_class_ref, is_compiled_class):  Handle pointer-to-record types.
21982         (make_class_data):  Field name needs '/' as package prefix.
21983         * expr.c (type_stack_dup, java_stack_dup):  Fix fencepost errors.
21984
21985 1997-07-25  Per Bothner  <bothner@cygnus.com>
21986
21987         Implement debug information for local variables.
21988         * java-tree.h (DECL_CODE_LENGTH, DECL_ARG_SLOT_COUNT,
21989         DECL_LOCAL_SLOT_NUMBER, DECL_LOCAL_START_PC, DECL_LOCAL_END_PC,
21990         DECL_LOCAL_SLOT_CHAIN):  New macros.
21991         (struct lang_decl_var):  New type.
21992         * parse.c (give_name_to_locals):  Move to decl.c.
21993         * decl.c (give_name_to_locals):  Re-written to Do The Right Thing.
21994         (start_java_method):  Re-write parameter handling.
21995         (pending_local_decls):  New global variable.
21996         (push_jvm_slot, maybe_pushlevels, maybe_poplevels):  New functions.
21997         (find_local_variable):  Accept pc so we can skips decls not in range.
21998         (struct binding_level):  Add end_pc field.
21999         * expr.c (expand_byte_code): Call maybe_pushlevels and maybe_poplevels.
22000         (various):  Change so current pc gets passed to find_local_variable.
22001
22002         * decl.c (init_decl_processing):  Re-arrange fields in
22003         class_type_node and and method_type_node to match kaffe 0.9.1.
22004         * class.c (make_method_value, make_class_data):  Update
22005         initializations to match.
22006
22007 1997-07-16  Per Bothner  <bothner@cygnus.com>
22008
22009         * class.c (unicode_mangling_length, emit_unicode_mangled_name,
22010         append_gpp_mangled_name, append_gpp_mangled_type):  New functions.
22011         (push_super_field):  New function.
22012         (make_class_data):  Handle inheritance of class static initializer.
22013         (layout_class):  New name mangling.
22014         * constants.c (build_constant_data_ref):  Init type of data array
22015         to a one-element array.
22016         (build_constants_constructor):  Set DECL_SIZE from complete array type.
22017         * decl.c:  Rename class_type, object_type etc to class_type_node,
22018         object_type_node etc.  Make former inherit from latter.
22019         * expr.c (expand_invoke):  Add cast of function address.
22020         * java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE):  New.
22021         * parse.c (yyparse):  Don't call layout_class here.
22022         * typeck.c (build_java_array_type):  Set TYPE_ARRAY_ELEMENT.
22023
22024 1997-06-14  Per Bothner  <bothner@cygnus.com>
22025
22026         * decl.c, class.c:  Update method type to match latest Kaffe snapshot.
22027         * constants.c (lookup_name_constant):  Renamed to alloc_name_constant.
22028         (alloc_class_constant):  New.
22029         * expr.c (expand_invoke):  Make sure method's class is initialized.
22030         * class.c (interits_from_p, emit_register_class):  New functions.
22031         * parse.c (yyparse):  Call emit_register_class.
22032
22033 1997-06-09  Per Bothner  <bothner@cygnus.com>
22034
22035         * constants.c:  New file, to handle constant pool.
22036         * Makefile.in (JAVA_OBJS):  Add constants.o.
22037         * decl.c (init_decl_processing):  Update, fix, finish various structs.
22038         (pushdecl_top_level):  New.
22039         * parse.c (layout_class):  Moved to class.c.
22040         * expr.c (java_push_constant_from_pool):  New function.
22041         * class.c (build_class_ref):  Make work fully
22042         (make_class_data):  Emit super-class, constant pool, interface vector.
22043
22044 1997-06-03  Per Bothner  <bothner@cygnus.com>
22045
22046         java-tree.h (DECL_SIGNATURE, BCODE_EMITTED):  Remove.
22047         (LABEL_VERIFIED, BCODE_EXCEPTION_TARGET, TYPE_ARRAY_P):  New.
22048         * class.c (class_depth):  New function.
22049         (lookup_named_class):  Replaced by new function lookup_class.
22050         * decl.c (object_type_node, string_type_node):  New.
22051         Remove various types that we no longer need.
22052         * expr.c (verify_jvm_instructions):  New separate verifier pass.
22053         (push_type, pop_type):  New functions for verifier.
22054         (type_stack_dup, pop_argument_types, merge_types):  Likewise.
22055         (expand_byte_code):  Simplify, since we assume already verified.
22056         (expand_invoke):  Now mostly works.
22057         * javaop.def:  Rename ldc1->ldc, ldc2->ldc_w, ldc2w->ldc2_w.
22058         * lang.c (main_class):  Move to parse.c.  Don't make_class yet.
22059         * parse.c:  Wait to allocate class object until we know its name.
22060         (layout_class):  Calculate DECL_VINDEX for each virtual method.
22061         * typeck.c (get_array_type):  Rename to ...
22062         (build_java_array_type):  ... and provide working implementation.
22063         (build_java_signature):  New function - build Java signature of type.
22064         (set_java_signature):  New function - cache signature with type.
22065         (lookup_java_method):  New function.
22066
22067 1997-05-06  Per Bothner  <bothner@deneb.cygnus.com>
22068
22069         * class.c (ident_subst):  Take extra SUFFIX parameter.
22070         (add_field):  Set DECL_ASSEMBLER_NAME of static fields;  more.
22071         (set_constant_value, build_static_field_ref, is_compiled_class):  New.
22072         (build_class_ref):  Actually implement.
22073         * decl.c, java-tree.h:  Renamed some xx_type to xx_type_node.
22074         * decl.c (builtin_function):  New.
22075         (init_decl_processing):  Update for current Kaffe.  Declare some
22076         builtin Kaffe functions.
22077         * expr.c (build_address_of):  New.
22078         (expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST):
22079         Renamed (from expand_java_new etc), and added working implementations.
22080         (build_field_ref):  Now also handle static fields.
22081         (expand_invoke):  Implement invokestatic, and start implement rest.
22082         * java-opcodes.h:  Use javaop.def to avoid duplicated list.
22083         * javaop.def:  Rename invokevirt -> invokevirtual.
22084         * lang.c (use_handles):  Removed.
22085         * parse.c:  Add support for ConstantValue attribute.
22086         Handle nested loading of a class.  (JPOOL_UTF):  New.
22087
22088 1997-03-11  Per Bothner  <bothner@deneb.cygnus.com>
22089
22090         * expr.c (expand_java_pushc):  Support #ifndef REAL_ARITHMETIC case.
22091
22092 1997-02-27  Per Bothner  <bothner@deneb.cygnus.com>
22093
22094         * Make-lang.in (java.install-man):  New empty rule.
22095         * typeck.c (set_local_type):  New function.
22096         * expr.c (STORE_INTERNAL):  Call find_local_variable,
22097         not find_stack_slot.  Call set_local_type.
22098
22099 1997-02-12  Per Bothner  <bothner@kalessin.cygnus.com>
22100
22101         * java-tree.h:  Various new macros for constructing RECORD_TYPEs,
22102         and building RECORD_TYPE CONSTRUCTORs.
22103         Also support for creating Utf8Const objects from an INDETIFIER_NODE.
22104
22105         * lang.c (use_handles):  Change the default to 0.
22106         * decl.c:  Define and build class_type, field_type, utf8const_type.
22107         * class.c (make_class_data, make_field_value,
22108         get_access_flags_from_decl, build_class_ref, build_utf8_ref,
22109         hashUtf8String, strLengthUtf8, mangled_classname:
22110         Functions to build reflective data structures.
22111         * parse.c (yyparse):  Call make_class_data.
22112
22113         * jcf-io.c (open_class, find_classfile):  New functions.
22114         * jcf-dump.c:  Support reading classfile from explicitly-named
22115         class file (without CLASSPATH searching).
22116
22117 1996-10-24  Per Bothner  <bothner@deneb.cygnus.com>
22118
22119         * jcf-reader.c:  Add parameter list to HANDLE_CONSTANT_Utf8.
22120         * parse.c (JPOOL_UTF_LENGTH, JPOOL_UTF_DATA, HANDLE_CONSTANT_Utf8):
22121         Override jcf-reader macros so CONSTANT_Utf8 becomes tree node here.
22122         (get_constant):  Now trivial for CONSTANT_Utf8.
22123
22124         * jcf.h:  Make NEW_CPOOL the default.
22125         * jcf.h, jcf-reader.c, parse.c:  Remove support for !NEW_CPOOL.
22126
22127 1996-10-24  Per Bothner  <bothner@deneb.cygnus.com>
22128
22129         New directory.
22130
22131 \f
22132 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
22133 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
22134
22135 Copying and distribution of this file, with or without modification,
22136 are permitted in any medium without royalty provided the copyright
22137 notice and this notice are preserved.