OSDN Git Service

5eca139e17bc7f2252fbcb3687bb977511078527
[pf3gnuchains/gcc-fork.git] / gcc / java / ChangeLog
1 2002-01-14  Tom Tromey  <tromey@redhat.com>
2
3         For PR libgcj/5303:
4         * Make-lang.in (java.install-man): Handle jv-convert man page.
5         (java.generated-manpages): Added jv-convert.1.
6         (java.uninstall): Remove jv-convert.1.
7         (java.maintainer-clean): Likewise.
8         ($(srcdir)/java/jv-convert.1): New target.
9         * gcj.texi (Top): Link to jv-convert node.
10         (Individual utilities): Likewise.
11         (Invoking jv-convert): New node.
12
13 2001-01-10  Jeff Sturm  <jsturm@one-point.com>
14             Martin Kahlert  <martin.kahlert@infineon.com>
15
16         * jcf-parse.c (get_constant): Don't swap lo/hi for big
17         endian targets when HOST_BITS_PER_WIDE_INT >= 64.
18
19 2002-01-03  Graham Stott  <grahams@redhat.com>
20
21         * class.c (compile_resource_file): Update copyright date.
22         Constify filename parameter.
23         (java-tree.h): Update copyright date.
24         (compile_resource_file): Constify filename parameter.
25
26 2002-01-03  Graham Stott  <grahams@redhat.com>
27
28         * gcc/jcf-parse.c: Update copyright date.
29         (yyparse): Constify resource_filename.
30
31 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32
33         * parse.y (src_parse_roots): Don't needlessly zero init.
34
35 2001-12-31  Tom Tromey  <tromey@redhat.com>
36
37         * parse.y (dump_java_tree): New function.
38         (source_end_java_method): Call it.
39         (end_class_declaration): Likewise.
40         * lang.c (java_decode_option): Call dump_switch_p.
41
42 2001-12-28  Tom Tromey  <tromey@redhat.com>
43
44         * gen-table.pl: Don't process characters after \uffff.  Added
45         comment pointing to input file.
46
47 2001-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
48
49         * gen-table.pl: Const-ify output.  Document the location of a
50         suitable unicode input file.
51
52         * chartables.h: Regenerate.
53
54 2001-12-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
55
56         * chartables.h: Const-ify.
57         * gjavah.c (options): Likewise.
58         * jcf-dump.c (options): Likewise.
59         * jv-scan.c (options): Likewise.
60         * lex.c (java_start_char_p, java_part_char_p): Likewise.
61         * parse.y (binop_lookup): Likewise.
62
63 2001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
64
65         * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
66         the static arrays that are output.
67         * jvspec.c (jvgenmain_spec): Make static.
68         * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
69         * keyword.h: Regenerate.
70         * lang.c (string_option, process_option_with_no, lang_f_options,
71         lang_W_options): Const-ify.
72         * lex.c (java_lex): Likewise.
73
74 2001-12-21  Richard Henderson  <rth@redhat.com>
75
76         * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
77         (get_boehm_type_descriptor): ... here.  Arrange for the
78         TREE_TYPE to get set properly.
79
80 2001-12-21  Richard Henderson  <rth@redhat.com>
81
82         * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
83         only if the target requires collect2.
84
85         * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
86
87 2001-12-20  Tom Tromey  <tromey@redhat.com>
88
89         For PR java/4509:
90         * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
91         CAN_COMPLETE_NORMALLY for the node.
92         * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
93         generate code for second branch if first branch can't complete
94         normally.
95         (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
96         the loop head if the loop body can't complete normally.
97
98 2001-12-20  Tom Tromey  <tromey@redhat.com>
99
100         For PR java/4766:
101         * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
102         case where `finally' clause can't complete normally.
103
104 2001-12-20  Tom Tromey  <tromey@redhat.com>
105
106         Fixes PR java/5057:
107         * parse.y (analyze_clinit_body): Added this_class parameter.
108         Check for more cases where we must keep <clinit>.
109         (maybe_yank_clinit): Cleaned up flow control.
110
111 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
112
113         * decl.c (java_init_decl_processing): Don't initialize 
114         finit_leg_identifier_node.
115         * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
116         (finit_leg_identifier_node): Remove.
117         (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
118
119 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
120
121         * mangle.c (mangle_member_name): Don't special-case for 
122         NO_DOLLAR_IN_LABEL.
123         * mangle_name.c (unicode_mangling_length): Likewise.
124         (append_unicode_mangled_name): Likewise.
125         * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
126         code.
127
128 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
129
130         * expr.c (build_java_array_length_access): Don't force null pointer
131         check unless flag_check_references is set.
132
133 2001-12-20  Tom Tromey  <tromey@redhat.com>
134
135         Fix for PR java/3417:
136         * parse.y (patch_assignment): Added special processing for
137         `return'.
138         (patch_return): Don't convert booleans to integers, and don't
139         special-case `null'.
140
141 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
142
143         * config-lang.in (diff_excludes): Remove.
144
145 2001-12-17  Joseph S. Myers  <jsm28@cam.ac.uk>
146
147         * gcj.texi: Update link to GCC manual.
148
149 2001-12-17  Tom Tromey  <tromey@redhat.com>
150
151         * parse.y (link_nested_class_to_enclosing): Removed useless
152         statement.
153
154 2001-12-16  Tom Tromey  <tromey@redhat.com>
155
156         * mangle.c (mangle_method_decl): Never emit `C2' constructor.
157         Fixes PR java/5088.
158
159 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
160
161         * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
162         jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
163         spelling errors.
164
165 2001-12-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
166
167         * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
168
169 2001-12-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
170
171         * decl.c (java_init_decl_processing): Build otable_type correctly.
172         otable_decl is an otable_type.
173
174 2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
175
176         * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
177         otable_type, otable_ptr_type, method_symbol_type, 
178         method_symbols_array_type, method_symbols_array_ptr_type): New
179         field/global tree definitions.
180         (flag_indirect_dispatch): New flag.
181         * decl.c (java_init_decl_processing): Initialize new otable and 
182         otable_syms type nodes and decls. Add new field "index" to
183         method_type_node.
184         * class.c (build_method_symbols_entry): New function.
185         (make_method_value): Set "index" to to method's vtable index for
186         virtual methods when indirect-dispatch is not used.
187         (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
188         and set vtable_method_count to -1. Set otable and otable_syms field
189         if indirect-dispatch is used and there was something to put in them.
190         (build_method_symbols_entry): New function.
191         (emit_offset_symbol_table): New function.
192         * expr.c (get_offset_table_index): New function.
193         (build_invokevirtual): Build array reference to otable at the index 
194         returned by get_offset_table_index, and use the result as the vtable
195         offset.
196         (build_invokeinterface): Similar.
197         * jcf-parse.c (yyparse): If indirect-dispatch, call 
198         emit_offset_symbol_table at the end of compilation, after all classes 
199         have been generated.
200         * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
201         * lang.c (flag_indirect_dispatch): Define.
202         (lang_f_options): Add indirect-dispatch flag.
203
204 2001-12-14  Matthias Klose  <doko@debian.org>
205
206         * gcj.texi: Markup for man page generation. Document missing
207         options printed by <tool> --help.
208         Terminate description of gij's -ms option with a dot.
209         * Make-lang.in ($(srcdir)/java/*.1): New targets.
210         (java.generated-manpages java.install-man, java.uninstall,
211         java-maintainer-clean) Updated.
212
213 2001-12-14  Hans Boehm  <Hans_Boehm@hp.com>
214
215         * class.c (get_dispatch_table): Fix java vtable layout
216         for TARGET_VTABLE_USES_DESCRIPTORS.
217         * decl.c (java_init_decl_processing): Initialize
218         alloc_no_finalizer_node, finalize_identifier_node.
219         * expr.c (class_has_finalize_method): New function.
220         (expand_java_NEW): Generate calls for finalizer-free allocation.
221         (build_invokevirtual): Fix java vtable layout for
222         TARGET_VTABLE_USES_DESCRIPTORS.
223         * java-tree.h (enum java_tree_index): New entries: 
224         JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
225         (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
226         (class_has_finalize_method): declare.
227         (HAS_FINALIZER_P): New macro.
228         * parse.y (patch_invoke): Generate calls for finalizer-free
229         allocation.
230
231 2001-12-12  Matthias Klose  <doko@debian.org>
232
233         * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
234         whitespace at end of line.
235
236 2001-12-11  Tom Tromey  <tromey@redhat.com>
237
238         * lex.c (java_init_lex): Define wfl_to_string as
239         gnu.gcj.runtime.StringBuffer unless generating bytecode.
240
241 2001-12-11  Jeff Sturm  <jsturm@one-point.com>
242
243         * class.c (make_method_value): Use null_pointer_node to
244         represent empty exception table.
245
246 2001-12-10  Tom Tromey  <tromey@redhat.com>
247
248         * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
249
250 Mon Dec 10 06:09:57 2001  Douglas B. Rupp  <rupp@gnat.com>
251
252         * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
253
254 2001-12-09  Per Bothner  <per@bothner.com>
255
256         * check-init.c (current_switch_has_default):  New static field.
257         (check_init):  Case DEFAULT_EXPR: Set current_switch_has_default.
258         Case SWITCH_EXPR:  Save/restore current_switch_has_default.  If no
259         DEFAULT_EXPR seen, simulate a default alternative that copies state.
260
261 2001-12-09  Tom Tromey  <tromey@redhat.com>
262
263         * check-init.c (check_init): Don't allow pre- or post- increment
264         or decrement of final variable.
265         (final_assign_error): Minor error message rewording.
266
267 2001-12-08  Tom Tromey  <tromey@redhat.com>
268
269         * java-tree.h: Fixed typo.
270
271         * gjavah.c (decompile_method): Don't decompile to `return this'
272         for static methods.
273
274         * gjavah.c (cxx_keywords): Re-sorted.
275         * lex.c (cxx_keywords): Re-sorted.
276
277         * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
278         else.
279
280         * gjavah.c (print_namelet): Clear subnamelets.
281         (HANDLE_METHOD): Set `method_printed' earlier.
282
283 2001-12-07  Tom Tromey  <tromey@redhat.com>
284
285         * lang.c (lang_f_options): Added
286         optimize-static-class-initialization.
287         (java_decode_option): Removed special case.
288
289 2001-12-07  Per Bothner  <per@bothner.com>
290
291         * check-init.c (check_init):  Fix typo freeing memory twice.
292
293 2001-12-05  Per Bothner  <per@bothner.com>
294
295         Restore support for static class initialization optimization.
296         * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
297         * check-init.c (check_int):  At end of BLOCK handle initialization
298         blocks, which used to be done in java_complete_expand_method but did
299         not handle the case where check_for_initialization might allocate
300         more than a word of bits.
301         * decl.c (lang_make_tree):  The smic field is now a tree.
302         * expr.c (build_class_init):  Set DECL_FUNCTION_INIT_TEST_CLASS field.
303         * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE):  New macro.
304
305         * parse.y (emit_test_initialization):  Combine hash_lookup calls.
306
307         * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
308         Change from a hash table to a list.
309         (struct_lang_decl):  Change field 'smic' to match.
310         * class.c (add_method_1):  Initialize
311         DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
312         * parse.y (adjust_init_test_initialization):  Removed - inlined into -
313         (java_expand_method_bodies): -here, since 'smic' is now a list.
314         (patch_invoke):  Add to 'smic' list, instead of hash_lookup.
315
316         * check-init.c (WORD_SIZE):  Use BITS_PER_UNIT.
317
318         * class.c (java_hash_compare_tree_node):  Fix casts.
319
320 2001-12-04  Per Bothner  <per@bothner.com>
321
322         * check-init.c:   Handle definite unassignment to finals in addition
323         to definite assignment.
324         (loop_current_locals):  New field.
325         (num_current_locals, int start_current_locals, num_current_words):
326         Make static.
327         (SET_P, CLEAR_P, SET_BIT):  Add needed but missing parentheses.
328         (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
329         CLEAR_ASSIGNED, CLEAR_UNASSIGNED):  New macros.
330         (get_variable_decl, check_final_reassigned):  New functions.
331         (check_init, check_bool_init):  Modify as needed for checking finals.
332         (check_for_initialization):  Take extra parameter and return void.
333         Do extra start-up logic to check final fields for assignment.
334         * parse.y (check_static_final_variable_assignment_flag,
335         reset_static_final_variable_assignment_flag, check_final_assignment,
336         check_final_variable_local_assignment_flag,
337         reset_final_variable_indirect_assignment_flag,
338         reset_final_variable_global_assignment_flag):  Remove functions.
339         (java_complete_expand_methods, outer_field_access_fix,
340         patch_assignment): Remove no-longer used logic.
341         * java-tree.h (DECL_FIELD_FINAL_IUD):  Change usage and comments.
342         * parse.y (register_fields, java_complete_tree):  Update accordingly.
343
344         * check-init.c (ALLOC_WORDS/FREE_WORDS):  Use xmalloc/free, not alloca.
345         (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER):  New.
346         (check_cond_init, check_bool2_init):  Use DECLARE_BUFFERS.
347
348         * java-tree.h (STATIC_CLASS_INIT_OPT_P):  Temporarily turn off.
349
350         * java-tree.h (DECL FINAL):  New bit-field.
351         (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL):  Define as DECL_FINAL.
352         (LOCAL_FINAL_P):  Use DECL_FINAL rather than old LOCAL_FINAL.
353         (DECL_INIT_CALLS_THIS):  New macro.
354         (struct lang_decl):  New bit-field init_calls_this.
355         (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
356         DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
357         (DECL_BIT_INDEX):  Change to use pointer_alias_set since we now
358         use it for both local variables and final fields.
359         (struct lang_decl_var):  Remove bit-fields final_liic, final_ierr,
360         and local_final.
361         (struct lang_type):  Remove hfv bit-field.
362         (check_for_initialization):  Change to return void.
363
364         * java-tree.h (IS_ARRAY_LENGTH_ACCESS):  New macros.
365         * expr.c (build_java_array_length_access):  Set IS_ARRAY_LENGTH_ACCESS.
366         * check-init.c (final_assign_error):  New helper function.
367         (check_final_reassigned, check_init):  Use it.
368         (check_init):  Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
369         
370         * java-tree.h (struct lang_decl, struct lang_decl_var):  Change all
371         bit-fields to unsigned.
372
373 2001-12-03  Per Bothner  <per@bothner.com>
374
375         * parse.y (patch_binop):  Minor constant folding.
376
377         * parse.y (build_current_thisn):  Shorter 'buffer'.
378
379 2001-12-03  Per Bothner  <per@bothner.com>
380
381         * decl.c (complete_start_java_method):  Now generate TRY_FINALLY_EXPR
382         instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
383         * jcf-write.c (generate_bytecode_insns):  Remove support for
384         CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
385         * check-init.c (check_init):  Likewise.
386
387 2001-12-03  Per Bothner  <per@bothner.com>
388
389         * verify.c (subroutine_nesting):  New function.
390         (verify_jvm_instructions):  Use it to fix logic for checking that
391         we're done with the current subroutine.
392
393         * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
394         OPCODE_instanceof use POP_TYPE macro for better diagnostics.
395
396 2001-12-03  Per Bothner  <per@bothner.com>
397
398         * jcf.h:  Fix obvious typo in comment.
399         * typeck.c (build_null_signature):  Add comment.
400
401 2001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
402
403         * expr.c: Remove leading capital from diagnostic messages, as
404         per GNU coding standards.
405         * jcf-io.c: Similarly.
406         * jcf-parse.c: Similarly.
407         * jv-scan.c: Similarly.
408         * jvspec.c: Similarly.
409         * mangle.c: Similarly.
410
411 2001-12-02  Tang Ching-Hui  <nicholas@cs.nthu.edu.tw>
412             Alexandre Petit-Bianco  <apbianco@redhat.com>
413
414         * expr.c (build_java_arrayaccess): Call save_expr on array for 
415         correct evaluation order, modified comment, fixed indentation.
416         * parse.y: (patch_assignment): Correctly extract the array base
417         from the tree generate by build_java_arrayaccess, added comments.
418         (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
419         Fixes PR java/3096, PR java/3803, PR java/3965.
420
421 2001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
422
423         * expr.c (expand_byte_code): Remove trailing periods from messages.
424         * jcf-parse.c (load_class, jcf_parse): Similarly.
425         * jcf-write.c (generate_classfile): Similarly.
426         * lex.c (java_lex): Similarly.
427
428 2001-11-30  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
429
430         * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
431
432 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
433
434         * Make-lang.in (java.generated-manpages): New dummy target.
435
436 2001-11-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
437
438         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
439         ASM_FINAL_SPEC.
440         (lang_specific_pre_link): Use set_input to set input_filename.
441         Append `main' here.
442         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
443         (main): Fix definition.
444         Strip `main' from classname.
445         Fixes PR java/227.
446
447 2001-11-18  Roger Sayle <roger@eyesopen.com>
448
449         * parse.h (java_expand_switch): Remove old prototype.
450
451 2001-11-18  Tom Tromey  <tromey@redhat.com>
452
453         Fix for PR java/1401:
454         * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
455         arg0 is null.
456         (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
457         correctly.
458
459 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
460
461         * lang.c (finish_parse): Rename to java_finish.
462         (LANG_HOOKS_FINISH, java_finish): New.
463
464 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
465
466         * decl.c (init_decl_processing): Rename java_init_decl_processing.
467         * java-tree.h: New prototype.
468         * lang.c (java_init): Update prototype.  Combine with old init_parse.
469
470 2001-11-13  Tom Tromey  <tromey@redhat.com>
471
472         * gjavah.c (method_signature): New global.
473         (HANDLE_METHOD): Set it.
474         (decompile_return_statement): New function.
475         (decompile_method): Use it.
476         (print_method_info): Removed `synth' argument.
477
478 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
479
480         * java-tree.h (java_set_yydebug): New.
481         * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
482         * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
483         (print_lang_decl, print_lang_type, print_lang_identifier,
484         print_lang_statistics, lang_print_xnode): Remove.
485
486 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
487
488         * jcf-parse.c (init_lex): Remove.
489         * lang.c (language_string, lang_identify): Remove.
490         (struct lang_hooks): Constify.
491         (LANG_HOOKS_NAME): Override.
492         (init_parse): Update.
493
494 2001-11-08  Andreas Franck  <afranck@gmx.de>
495
496         * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle 
497         program_transform_name the way suggested by autoconf.
498         (java.install-common): Also transform auxiliary program names with
499         program_transform_name.
500
501 2001-11-08  Tom Tromey  <tromey@cygnus.com>
502
503         * parse.y (trap_overflow_corner_case): New rule.
504         (unary_expression): Use it.
505         * lex.c (java_init_lex): Don't set minus_seen.
506         (yylex): Don't use minus_seen.  Communicate overflow to parser for
507         it to handle.
508         (error_if_numeric_overflow): New function.
509         * parse.h (minus_seen): Removed field.
510         (JAVA_RADIX10_FLAG): New define.
511
512 2001-11-07  Tom Tromey  <tromey@redhat.com>
513
514         Patch for PR java/1414:
515         * parse.y (case_label_list): New global.
516         (goal): Register case_label_list with GC.
517         (java_complete_lhs): Save new case on case_label_list.
518         (patch_switch_statement): Check for duplicate case labels.
519
520 2001-11-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
521
522         * parse.y (patch_assignment): Removed unused third argument.
523         (java_complete_lhs): Removed unused third argument to patch_assignment.
524
525 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
526
527         * lang.c: Include langhooks-def.h.
528         * Make-lang.in: Update.
529
530 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
531
532         * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
533
534 2001-10-29  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
535
536         * mangle.c (find_compression_record_match): Don't match compression
537         records for package name elements unless they occur at the start of
538         the name. Fix for PR java/4717.
539
540 2001-10-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
541
542         * expr.c (expand_java_field_op): Don't special-case references to
543         java.lang.PRIMTYPE.TYPE.
544         (build_primtype_type_ref): Removed.
545         * java-tree.h (build_primtype_type_ref): Remove prototype.
546         * parse.y (maybe_build_primttype_type_ref): Removed.
547         (complete_function_arguments): Don't special-case references to
548         java.lang.PRIMTYPE.TYPE.
549         (patch_assignment): Likewise.
550         (array_constructor_check_entry): Likewise.
551
552 2001-10-24  Alexandre Petit-Bianco  <apbianco@redhat.com>
553
554         * mangle.c (static tree compression_table): Fixed leading comment.
555         * parse.h (struct parser_ctxt): Fixed field comment.
556         * parse.y (check_pkg_class_access): New prototype, fixed leading
557         comment, new parameter used to emit error only if passed as true.
558         (parse_check_super): Pass extra argument to check_pkg_class_access.
559         (do_resolve_class): Likewise.
560         (process_imports): Likewise.
561         (read_import_dir): Fixed indentation.
562         (find_in_imports_on_demand): New local class_type_name. Local
563         node_to_use deleted. while loop changed into for loop. Report
564         multiple definition only for accessible classes. Improved error
565         message.
566         (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
567         assigned to parameter list, fixed indentation. while loop changed
568         into for loop, restore TREE_CHAIN on local `tem' before the next
569         iteration.
570
571 Tue Oct 23 14:02:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
572
573         * lang.c (lang_get_alias_set): Deleted.
574
575 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
576
577         * gjavah.c (jni_print_char): Fix thinko in last change.
578
579         * gjavah.c (jni_print_char, decode_signature_piece): Use
580         safe-ctype macros and/or fold extra calls into fewer ones.
581         * lex.c (java_read_unicode, java_lex): Likewise.
582         * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
583         JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
584         * mangle_name.c (append_unicode_mangled_name,
585         unicode_mangling_length): Likewise.
586
587 2001-10-17  Richard Henderson  <rth@redhat.com>
588
589         * Make-lang.in (java/lang.o): Depend on langhooks.h.
590
591 2001-10-15  Alexandre Petit-Bianco  <apbianco@redhat.com>
592
593         * lang.c (langhooks.h): Included.
594         (LANG_HOOKS_INIT): Redefined.
595         (LANG_HOOKS_INIT_OPTIONS): Likewise.
596         (LANG_HOOKS_DECODE_OPTION): Likewise.
597         (struct lang_hooks lang_hooks): New initialization.
598
599 2001-10-11  Per Bothner  <per@bothner.com>
600
601         * parse.y (patch_synchronized_statement):  Use a TRY_FINALLY_EXPR
602         rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
603         The former is simpler, and jcf-write.c handles it better.
604         (java_complete_lhs):  No longer need to handle CLEANUP_POINT_EXPR
605         or WITH_CLEANUP_EXPR.
606         * jcf-write.c:  Revert Alex's change from 2000-10-18.  It is no
607         longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
608
609         * parse.y (patch_if_else_statement):  If the condition is constant,
610         optimize away the test.
611
612 2001-10-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
613
614         * parse.y (patch_cast): Call patch_string on the first operand of
615         the incoming node, update it if necessary. Fixes PR java/4510.
616
617 2001-10-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
618
619         * parse.y (find_as_inner_class): Don't disregard the enclosing scope
620         when name qualifier matches a package name.
621
622 2001-10-08  Tom Tromey  <tromey@redhat.com>
623
624         Fix for PR java/4489:
625         * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
626         force a new label when computing `body_block'.
627
628 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
629
630         * jcf-io.c (format_uint): Const-ify.
631         * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
632         * lex.c (java_get_line_col): Likewise.
633         * parse.y (build_incdec): Likewise.
634
635 2001-10-05  Alexandre Petit-Bianco  <apbianco@redhat.com>
636
637         * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
638         a NULL enclosing context if appropriate. Fixes PR java/4466.
639
640 2001-10-03  Alexandre Petit-Bianco  <apbianco@redhat.com>
641
642         * parse.y (patch_assignment): Use lvalue's original TYPE when
643         building the final COMPOUND_EXPR.
644         (try_reference_assignconv): Fixed leading comment.
645
646 2001-09-26  Alexandre Petit-Bianco  <apbianco@redhat.com>
647
648         * parse.y (check_final_variable_indirect_assignment): For
649         COMPOUND_EXPR, return only if finals were found initialized
650         properly, if not, keep on checking.
651         (check_final_variable_global_assignment_flag): New local
652         error_found, set when appropriate and used to decide whether to
653         report uninitialized finals. Fixed typo in comment.
654
655 2001-09-22  Alexandre Petit-Bianco  <apbianco@redhat.com>
656
657         * decl.c (init_decl_processing): Fixed typo in predef_filenames
658         last three initializations. Fixes PR java/4360.
659
660 2001-09-21  Richard Henderson  <rth@redhat.com>
661
662         * class.c (get_dispatch_table): Handle function descriptors.
663         (build_dtable_decl): Likewise.
664         * expr.c (build_invokevirtual): Likewise.
665
666 2001-09-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
667
668         * parse.y (patch_method_invocation): Build class initialization
669         when static finals are used to qualify method invocation.
670         Fixes PR java/4366.
671
672 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
673
674         * parse.h: (WFL_STRIP_BRACKET): Re-written using
675         build_type_name_from_array_name.
676         (STRING_STRIP_BRACKETS): New macro.
677         * parse.y (build_type_name_from_array_name): New function.
678         (array_creation_expression:): Accumulate []s instead of [s.
679         (cast_expression:): Accumulate []s instead of [s after cast type
680         name.
681         (build_array_from_name): Local string deleted, use
682         build_type_name_from_array_name.
683         (build_unresolved_array_type): Accumulate []s instead of [s after
684         type name.
685         (register_fields): Fixed comment.
686         (resolve_class): Local name, base deleted, new locals tname and
687         array_dims. Use build_type_name_from_array_name. Use array_dims to
688         build array type.
689         (purify_type_name): Use STRING_STRIP_BRACKETS.
690
691 2001-09-18  Andreas Jaeger  <aj@suse.de>
692
693         * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
694         * jv-scan.c: Likewise.
695
696 2001-09-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
697
698         * parse.y (patch_method_invocation): Inner class creation context
699         check not enforced within constructors. Fixes PR java/1873.
700
701 2001-09-16  Tom Tromey  <tromey@redhat.com>
702
703         * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
704         NOTE_PUSH for single-case push.  Fixes PR java/4189.
705
706 2001-09-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
707
708         * java-tree.h (TYPE_IMPORT_LIST): New macro.
709         (TYPE_IMPORT_DEMAND_LIST): Likewise.
710         (struct lang_type): New fields import_list and import_demand_list.
711         * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
712         TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
713         (do_resolve_class): New local saved_enclosing_type, initialized,
714         passed as parameter to find_in_imports and find_in_imports_on_demand.
715         (find_in_imports): Added paramater enclosing_type, use its
716         TYPE_IMPORT_LIST when applicable.
717         (find_in_imports_on_demand): Added parameter enclosing_type, use
718         its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
719         declaration and initialization.
720         (fold_constant_for_init): Switch/restore current_class to the
721         appropriate context.
722
723 2001-09-13  Mark Mitchell  <mark@codesourcery.com>
724
725         * verify.c (verify_jvm_instructions): Fix typo.
726
727 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
728
729         * expr.c (expand_invoke): Const-ification.
730         * parse.y (patch_method_invocation): Likewise.
731
732 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
733
734         * gjavah.c (cxx_keywords): Const-ification.
735         * keyword.gperf (java_keyword): Likewise.
736         * lang.c (java_tree_code_name): Likewise.
737         * lex.c (cxx_keywords): Likewise.
738         * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
739
740 2001-09-11  Richard Henderson  <rth@redhat.com>
741
742         * parse.h (ctxp_for_generation): Mark extern.
743
744 2001-09-10  Richard Henderson  <rth@redhat.com>
745
746         * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
747
748 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
749
750         * typeck.c (java_array_type_length, build_prim_array_type):
751         Represent empty arrays by NULL index.
752
753 2001-09-06  Alexandre Petit-Bianco  <apbianco@redhat.com>
754
755         * java-tree.h (compile_resource_file): Grouped with other prototypes.
756         * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
757
758 2001-09-06  Anthony Green  <green@redhat.com>
759
760         * class.c (O_BINARY): Define if necessary.
761         (registerResource_libfunc): Declare.
762         (init_class_processing): Initilize registerResource_libfunc.
763         (compile_resource_file): New function.
764         * java-tree.h (resource_name): Declare.
765         (compile_resource_file): Declare.
766         * jcf-parse.c (yyparse): Handle compiling java resource files.
767         * lang.c (java_decode_option): Handle -fcompile-resource option.
768         * jvspec.c (lang_specific_driver): Handle -R flag for compiling
769         resource files.
770         * gcj.texi (Code Generation): Add documentation for -R flag.
771
772 2001-09-05 Alexandre Petit-Bianco  <apbianco@redhat.com>
773
774         * jcf-write.c (generate_classfile): Issue an error in case of
775         field/initial value mismatch.
776         * parse.y (analyze_clinit_body): Keep <clinit> if an array is
777         being initialized and we're generating bytecode.
778         (java_complete_lhs): In MODIFY_EXPR section: added comments,
779         set DECL_INITIAL properly when appropriate.
780         Fixes PR java/4230
781         Fixes PR java/4204
782
783 2001-09-01  Per Bothner  <per@bothner.com>
784
785         * parse.y (maybe_yank_clinit):  A field without an initializer is not
786         relevant.  All initializers except static final and constant require
787         <clinit>, regardless of flag_emit_class_files.
788
789 2001-08-31  Per Bothner  <per@bothner.com>
790
791         * class.c (set_constant_value):  When not emiting class files, then a
792         String ConstantValue is a utf8const_ptr_type.
793
794 2001-08-30  Per Bothner  <per@bothner.com>
795
796         * jcf-write.c (generate_classfile):  Check that field is primitive
797         or string before emitting ConstantValue attribute.
798
799 2001-08-30  Per Bothner  <per@bothner.com>
800
801         * parse.y (resolve_qualified_expression_name):  If creating a
802         COMPOUND_EXPR, set it's type correctly.
803
804 2001-08-30  Per Bothner  <per@bothner.com>
805
806         * jcf-io.c (open_class):  Set filename field.
807
808         * jcf-parse,c (parse_class_file):  Set current_function_decl
809         for better error message when Code attribute is missing.
810
811         * lang.c (put_decl_node, lang_print_error):  Re-arrange for
812         better diagnostics, especially for constructors.
813
814 2001-08-30  Per Bothner  <per@bothner.com>
815
816         * jcf-write.c (generate_classfile):  Don't write ConstantValue
817         attribute if field is not final, for compatibility with jdk.
818
819         * jcf-write.c (generate_classfile):  Convert ConstantValue values
820         to correct type.  Work-around for front-end bug.
821         * class.c (set_constant_value):  Error if constant has wrong type.
822
823 2001-08-30  Per Bothner  <per@bothner.com>
824
825         * jcf-dump.c (print_constant):  Fix fencepost error so "Float" and
826         "Double" are printed at verbosity 1.
827
828         * jcf-dump.c (main):  Disable flag_print_attributes if --javap.
829
830         * jcf-dump.c (SPECIAL_IINC):  Remove unneeded casts to long.
831
832 2001-08-30  Alexandre Petit-Bianco  <apbianco@redhat.com>
833
834         * parse.y (patch_assignment): Don't verify final re-assignment here.
835         (java_complete_lhs): Verify assignments to finals calling
836         patch_assignment. Verify re-assignments to finals before calling
837         patch_assignment.
838
839 2001-08-29  Alexandre Petit-Bianco  <apbianco@redhat.com>
840
841         * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
842         Fixes PR java/1413
843
844 2001-08-28  Alexandre Petit-Bianco  <apbianco@redhat.com>
845
846         * lex.c (java_lex): new local found_hex_digits. Set and then used
847         in test to reject invalid hexadecimal numbers.
848         * parse.y (java_complete_tree): Prevent unwanted cast with
849         initialized floating point finals.
850         (patch_binop): Emit a warning when detecting a division by zero,
851         mark result not constant, don't simplify non integer division.
852
853 2001-08-28  Per Bothner  <per@bothner.com>
854
855         * jcf-write.c  (generate_bytecode_insns):  For increments and
856         decrements just recurse to push constant.  Improvement on Mark's patch.
857
858 2001-08-28  Mark Mitchell  <mark@codesourcery.com>
859
860         * jcf-write.c (generate_bytecode_insns): Generate an integer to
861         real conversion for increments and decrements of reals.
862
863 2001-08-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
864
865         * parse.y (resolve_qualified_expression_name): Handle unresolved
866         qualified expressions, prevent numerical qualifiers, fixed typo.
867         Fixes PR java/4141
868
869 2001-08-24  Alexandre Petit-Bianco  <apbianco@redhat.com>
870
871         * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
872         don't report anything but deprecated class when marked so. Handle
873         VAR_DECL.
874         (patch_method_invocation): Check deprecation on methods and types.
875         (patch_binop): code becomes an enum tree_code, added default: to
876         switch to handle that. Detect division by zero, try to fold and
877         return before using a subroutine.
878
879 2001-08-23  Alexandre Petit-Bianco  <apbianco@redhat.com>
880
881         * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
882         file smaller than 4 bytes.
883         * parse.y (check_inner_circular_reference): New function.
884         (check_circular_reference): Likewise.
885         (array_initializer:): Accept {,}.
886         (java_check_circular_reference): Rewritten using
887         check_circular_reference and check_inner_circular_reference.
888         (java_complete_expand_method): Unconditionally save and restore
889         the unpurged exception list.
890         (build_dot_class_method_invocation): Unmangle signature parameter.
891
892 2001-08-21  Tom Tromey  <tromey@redhat.com>
893
894         * decl.c (init_decl_processing): Add `throws' field to method
895         descriptor.
896         * class.c (make_method_value): Compute `throws' field for method.
897
898 2001-08-22  Alexandre Petit-Bianco  <apbianco@redhat.com>
899
900         * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
901         circularity is detected.
902         (ctors_unchecked_throws_clause_p): Fixed leading comment.
903
904 2001-08-17  Richard Henderson  <rth@redhat.com>
905
906         * class.c (emit_register_classes): Add align parameter to
907         call to assemble_integer.
908
909 2001-08-16  Alexandre Petit-Bianco  <apbianco@redhat.com>
910
911         * jcf-parse.c (load_class): New locals saved and class_loaded. If
912         loading a class_or_name fails, try considering an innerclass name
913         and load the enclosing context.
914         * parse.y (resolve_inner_class): New function.
915         (find_as_inner_class): Added leading comment.
916         (register_incomplete_type): Keep the current context as enclosing
917         context for JDEP_FIELD dependencies.
918         (do_resolve_class): Locals new_class_decl and super initialized to
919         NULL. Call resolve_inner_class, explore the enclosing context
920         superclass if necessary.
921         Fixes PR java/4007
922
923 2001-08-16  Tom Tromey  <tromey@redhat.com>
924
925         * jcf-dump.c (main): Updated for change to jcf_path_seal.
926         * gjavah.c (main): Updated for change to jcf_path_seal.
927         * lang.c (version_flag): New global.
928         (java_decode_option): Recognize `-version'.
929         (java_init): Update for change to jcf_path_seal.
930         * jcf.h (jcf_path_seal): Added `print' argument.
931         * jcf-path.c (jcf_path_seal): Added `print' argument.
932
933 2001-08-13  Zack Weinberg  <zackw@panix.com>
934
935         * Make-lang.in (java/decl.o): Update dependencies.
936         * decl.c: Include libfuncs.h, don't include toplev.h.
937
938 2001-08-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
939
940         * decl.c (init_decl_processing): exception_type_node,
941         class_not_found_type_node, and no_class_def_found_type_node
942         initialized. predef_filenames augmented accordingly.
943         instinit_identifier_node initialized.
944         * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
945         * java-tree.h (enum java_tree_index): New entries
946         JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
947         JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
948         (exception_type_node): New macro.
949         (class_not_found_type_node): Likewise.
950         (no_class_def_found_type_node): Likewise.
951         (instinit_identifier_node): Likewise.
952         (PREDEF_FILENAMES_SIZE): Adjusted.
953         (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
954         (struct lang_type): Fixed typo in bitfield name.
955         (DECL_INSTINIT_P): New macro.
956         (ID_INSTINIT_P): Likewise.
957         * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
958         attribute.
959         * parse.y (encapsulate_with_try_catch): New function.
960         (generate_instinit): Likewise.
961         (build_instinit_invocation): Likewise.
962         (ctors_unchecked_throws_clause_p): Likewise.
963         (add_instance_initializer): Deleted.
964         (build_instance_initializer): Likewise.
965         (in_instance_initializer): Likewise.
966         (check_method_redefinition): instinit$ not to be verified.
967         (java_complete_expand_methods): Generate instinit$, simplified code.
968         (build_dot_class_method): Eliminated unnecessary locals. Use
969         encapsulate_with_try_catch, removed unnecessary code.
970         (fix_constructors): New local iii. Use build_instinit_invocation.
971         (patch_method_invocation): Added comment.
972         (maybe_use_access_method): Don't consider instinit$.
973         (find_applicable_accessible_methods_list): Shorten the search for
974         instinit$ too.
975         (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
976         (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
977         (patch_throw_statement): Likewise. Fixed typo.
978
979 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
980
981         Revert:
982         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
983         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
984         ASM_FINAL_SPEC.
985         (lang_specific_pre_link): Use set_input to set input_filename.
986         Append `main' here.
987         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
988         (main): Fix definition.
989         Strip `main' from classname.
990         Fixes PR java/227.
991
992 2001-08-11  Zack Weinberg  <zackw@panix.com>
993
994         * lex.h: Don't include setjmp.h.  Don't define
995         SET_FLOAT_HANDLER or prototype set_float_handler.
996
997 2001-08-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
998
999         * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
1000         `poplevel' in the right order.
1001
1002 2001-08-09  Richard Henderson  <rth@redhat.com>
1003
1004         * Make-lang.in (class.o): Depend on TARGET_H.
1005         * class.c (emit_register_classes): Use target hooks instead of
1006         assemble_constructor and assemble_destructor.
1007
1008 2001-08-08  Alexandre Petit-Bianco  <apbianco@redhat.com>
1009
1010         * check-init.c (flags.h): Include
1011         (check_init): Don't report uninitialized static class
1012         initialization flags, don't free bit index when doing static class
1013         initialization optimization.
1014         (check_for_initialization): Return type changed to `unsigned int.'
1015         (attach_initialized_static_class): New function.
1016         * class.c (add_method_1): Create the initialized static class
1017         table if necessary.
1018         (finish_class): Always emit deferred inline methods.
1019         * decl.c (emit_init_test_initialization): Moved to expr.c
1020         (complete_start_java_method): Don't traverse
1021         DECL_FUNCTION_INIT_TEST_TABLE.
1022         (lang_mark_tree): Mark hash tables in function decls.
1023         * expr.c (emit_init_test_initialization): Moved from decl.c.
1024         (build_class_init): Create LAG_DECL_SPECIFIC for the static class
1025         initialization flag, set DECL_CONTEXT and
1026         LOCAL_CLASS_INITIALIZATION_FLAG.
1027         (java_lang_expand_expr): Emit initialization code for static class
1028         initialized flags when entering block, if necessary.
1029         * gcj.texi (-fno-optimize-static-class-initialization): Documented.
1030         * java-tree.h (flag_optimize_sci): New global variable declaration.
1031         (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
1032         (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
1033         (LOCAL_FINAL_P): Fixed typo in comment.
1034         (FINAL_VARIABLE_P): Likewise.
1035         (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
1036         (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
1037         (struct lang_decl): New fields `ict', `smic' and `cif.'
1038         (check_for_initialization): New returned value for global.
1039         (attach_initialized_static_class): New global function.
1040         (STATIC_CLASS_INIT_OPT_P): New macro.
1041         * lang-options.h (-fno-optimize-static-class-initialization): New flag.
1042         * lang.c (java_decode_option): Handle
1043         `-fno-optimize-static-class-initialization'
1044         * parse.y (start_complete_expand_method): New function.
1045         (java_expand_method_bodies): Likewise.
1046         (attach_init_test_initialization_flags): Likewise.
1047         (adjust_init_test_initialization): Likewise.
1048         (emit_test_initialization): Likewise.
1049         (java_complete_expand_methods): Nullify abstract and native method
1050         bodies.
1051         (java_complete_expand_method): New locals `fbody', `block_body'
1052         and `exception_copy.' Reorganized: directly return on empty method
1053         bodies, call `start_complete_expand_method', remember definitely
1054         initialized static class in function, don't expand method bodies.
1055         (java_expand_classes): Call `java_expand_method_bodies' before
1056         `finish_class' when compiling to native.
1057         (resolve_expression_name): Use `orig' after building outer class
1058         field access.
1059         (patch_invoke): Remember static method invokations.
1060
1061 2001-08-06  Richard Henderson  <rth@redhat.com>
1062
1063         * class.c (emit_register_classes): Pass a symbol_ref and priority
1064         to assemble_constructor.
1065
1066 2001-08-02  Alexandre Petit-Bianco  <apbianco@redhat.com>
1067
1068         * java-tree.h (all_class_filename): New macro.
1069         (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
1070         (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
1071         newly created IDENTIFIER_NODE to `all_class_filename.'
1072
1073 2001-08-01  Jeff Sturm  <jsturm@one-point.com>
1074
1075         * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
1076         Use ggc_add_tree_root to register roots.
1077
1078 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
1079
1080         * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
1081         second operand calling check_init.
1082         * decl.c (complete_start_java_method): Swaped second and third
1083         arguments while creating WITH_CLEANUP_EXPR node.
1084         * jcf-write.c (generate_bytecode_insns): Use second operand
1085         instead of third when handling WITH_CLEANUP_EXPR.
1086         * parse.y (java_complete_lhs): Expand second operand of
1087         WITH_CLEANUP_EXPR nodes.
1088         (patch_synchronized_statement): Swaped second and third arguments
1089         while creating WITH_CLEANUP_EXPR node.
1090
1091 2001-07-18  Alexandre Petit-Bianco  <apbianco@redhat.com>
1092
1093         * parse.y (create_interface): Avoid cyclic inheritance report when
1094         syntax error encountered during class definition.
1095         Fixes PR java/2956
1096
1097 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1098
1099         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
1100         ASM_FINAL_SPEC.
1101         (lang_specific_pre_link): Use set_input to set input_filename.
1102         Append `main' here.
1103         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
1104         (main): Fix definition.
1105         Strip `main' from classname.
1106         Fixes PR java/227.
1107
1108 2001-07-18  Tom Tromey  <tromey@redhat.com>
1109
1110         For PR java/2812:
1111         * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
1112         * lex.c (java_new_lexer): Use ICONV_CONST.
1113         (java_read_char): Likewise.
1114         * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
1115         (jv-scan$(exeext)): Likewise.
1116
1117 2001-07-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
1118
1119         * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
1120         * parse.y (check_class_interface_creation): Allow `private' if the
1121         enclosing is not an interface.
1122         (create_interface): Interface tagged public if the enclosing
1123         context is an interface.
1124         (create_class): Class tagged public if the enclosing context
1125         is an interface.
1126         Fixes PR java/2959
1127
1128 2001-07-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
1129
1130         * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
1131         Fixes PR java/2665
1132
1133 2001-07-14  Tim Josling  <tej@melbpc.org.au>
1134
1135         * check-init.c (check_init): Remove references to EXPON_EXPR.
1136
1137 2001-07-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
1138
1139         * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
1140         TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
1141         Fixes PR java/3602
1142
1143 2001-07-13  Tom Tromey  <tromey@redhat.com>
1144
1145         * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
1146         invocation.
1147
1148 2001-07-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
1149
1150         * parse.y (patch_method_invocation): Don't override primary if one
1151         is already provided, but let this$<n> be built. Fixed comment.
1152
1153 2001-07-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
1154
1155         * parse.y (empty_statement:): Report empty statement error only
1156         when found at class declaration level.
1157         Fixes PR java/3635
1158
1159 2001-07-12  Tom Tromey  <tromey@redhat.com>
1160
1161         * expr.c (expand_load_internal): New function.
1162         (LOAD_INTERNAL): Use it.
1163
1164 2001-07-11  Alexandre Petit-Bianco  <apbianco@redhat.com>
1165
1166         * parse.y (verify_constructor_super): Compare anonymous class ctor
1167         args with `valid_method_invocation_conversion_p.'
1168         Fixes PR java/3285
1169
1170 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
1171
1172         * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
1173         `-fsyntax-only.' Fixes PR java/3248
1174
1175 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
1176
1177         * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
1178
1179 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
1180
1181         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
1182         current function is static. Fixes PR java/1970
1183
1184 2001-07-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
1185
1186         * parse.y (patch_method_invocation): Add enclosing context to ctor
1187         calls if necessary. Fixes PR java/2953
1188
1189 2001-07-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
1190
1191         * parse.y (resolve_package): Abort if qualified expression member
1192         isn't right.
1193         (qualify_ambiguous_name): Don't qualify as type if `this' in use.
1194         Fixes PR java/1391
1195
1196 2001-07-07  Zack Weinberg  <zackw@stanford.edu>
1197
1198         * verify.c: Don't use // comments.
1199
1200 2001-07-05  Tom Tromey  <tromey@redhat.com>
1201
1202         * lang.c (flag_assume_compiled): Removed.
1203         * java-tree.h (flag_assume_compiled): Removed.
1204         * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
1205         -fhash-synchronization, -fuse-divide-subroutine,
1206         -fcheck-references, -femit-class-file, -femit-class-files,
1207         -fassume-compiled.  Updated --encoding information.  Changed
1208         -foutput-class-dir to `-d'.
1209
1210 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
1211
1212         * jcf-parse.c (parse_class_file): Add lineno parameter to
1213         debug_start_source_file call.
1214
1215 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
1216
1217         * gcj.texi: Use gpl.texi.
1218         * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
1219         dependencies and use doc/include in search path.
1220
1221 2001-07-03  Jeff Sturm  <jsturm@one-point.com>
1222
1223         * parse.y (fix_constructors): Test if a CALL_EXPR invokes
1224         `this'.  If so, don't build instance initializers.
1225
1226 2001-07-03  Alexandre Petit-Bianco  <apbianco@redhat.com>
1227
1228         * parse.y (resolve_expression_name): Improved error message for
1229         inner class cases. Fixes PR java/1958
1230
1231 2001-06-28  Gabriel Dos Reis  <gdr@codesourcery.com>
1232
1233         * lang.c: #include diagnostic.h
1234         (lang_print_error): Add a `diagnostic_context *' parameter.
1235         (java_dummy_print): Likewise.
1236         * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
1237
1238 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
1239
1240         * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
1241         * jcf.h (typedef struct JCF): New bitfield `finished.'
1242         (JCF_FINISH): Set `finished.'
1243         (JCF_ZERO): Reset `finished.'
1244         Fixes PR java/2633
1245
1246 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
1247
1248         * parse.y (class_body_declaration:): Don't install empty instance
1249         initializers.
1250         Fixes PR java/1314
1251
1252 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
1253
1254         * class.c (set_super_info): Call `set_class_decl_access_flags.'
1255         (set_class_decl_access_flags): New function.
1256         * java-tree.h (set_class_decl_access_flags): New prototype.
1257         * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
1258         (parse_class_file): New local `decl_max_locals.' Take wide types
1259         into account to compute DECL_MAX_LOCALS.
1260         * parse.y (type_import_on_demand_declaration:): Ignore duplicate
1261         imports on demand.
1262
1263 2001-06-22  Jan van Male  <jan.vanmale@fenk.wau.nl>
1264
1265         * zipfile.h: Use GCC_JCF_H instead of JCF_H.
1266
1267 2001-06-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
1268
1269         * class.c (java_hash_tree_node): Fixed indentation in leading comment.
1270         * parse.y (do_resolve_class): Moved comments out to leading comment
1271         section. Removed local `start', New local `_ht' and
1272         `circularity_hash.'  Record `enclosing' in hash table and search
1273         it to detect circularity.  Use `enclosing' as an argument to
1274         `lookup_cl.' Free the hash table when done.
1275
1276 2001-06-19  Tom Tromey  <tromey@redhat.com>
1277
1278         * lex.c (java_read_char): Disallow invalid and overlong
1279         sequences.  Fixes PR java/2319.
1280
1281 2001-06-05  Jeff Sturm  <jsturm@one-point.com>
1282
1283         * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
1284
1285 2001-06-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
1286
1287         * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
1288         arguments accordingly.
1289
1290 2001-06-02  Joseph S. Myers  <jsm28@cam.ac.uk>
1291
1292         * gcj.texi: Move contents to just after title page.
1293
1294 2001-06-01  Alexandre Petit-Bianco  <apbianco@redhat.com>
1295
1296         * parse.y (type_literals:): Use `build_incomplete_class_ref' with
1297         builtin type.
1298         (patch_incomplete_class_ref): Build the class ref, build the class
1299         init if necessary, complete the tree.
1300         Fixes PR java/2605
1301
1302 2001-05-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
1303
1304         * parse.y (lookup_field_wrapper): Test `name' code.
1305         (resolve_qualified_expression_name): Test `qual_wfl' code.
1306         (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
1307         handle `qual_wfl' by code.
1308         (maybe_build_primttype_type_ref): Test `wfl' code.
1309
1310 2001-05-23  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
1311
1312         * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
1313         fdl.texi.
1314         (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls.  Create
1315         the dvi file in the java directory.
1316
1317 2001-05-25  Sam TH  <sam@uchicago.edu>
1318
1319         * gen-table.pl javaop.h jcf.h lex.h,
1320         parse.h: Fix header include guards.
1321
1322 2001-05-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1323
1324         * jv-scan.c (version): Update copyright year.
1325
1326 2001-05-21  Per Bothner  <per@bothner.com>
1327
1328         * jcf-parse.c (read_class):  If class is from .class or .zip file
1329         and it's already been read, don't push/pop parser context.
1330
1331 2001-05-18  Per Bothner  <per@bothner.com>
1332
1333         * jvspec.c (lang_specific_pre_link):  Re-arrange the linker
1334         command line so the jvgenmain-generated main program comes first.
1335
1336 2001-05-15  Tom Tromey  <tromey@redhat.com>
1337
1338         * class.c (build_utf8_ref): Don't generate identifier based on
1339         utf8const contents.
1340
1341 2001-05-12  Richard Henderson  <rth@redhat.com>
1342
1343         * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
1344         * expr.c (java_lang_expand_expr): Expand it.
1345         (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
1346         calling build_exception_object_ref.
1347         * parse.y (catch_clause_parameter): Likewise.
1348         (build_dot_class_method): Likewise.
1349         (try_reference_assignconv): Likewise.
1350         * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
1351         * jcf-write.c (generate_bytecode_insns): Likewise.
1352
1353 2001-05-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
1354
1355         * parse.y (build_unresolved_array_type): Set
1356         EXPR_WFL_QUALIFICATION on the newly created wfl.
1357         Fixes PR java/2538. Fixes PR java/2535.
1358
1359 2001-05-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
1360
1361         * parse.y (fix_constructors): Removed unnecessary assignment to
1362         local. Moved assignment to `this$<n>', fixed comments and
1363         indentation.
1364         (build_wfl_wrap): Fixed indentation.
1365         Fixes PR java/2598, java/2579 and java/2658.
1366
1367 2001-05-03  Mo DeJong  <mdejong@redhat.com>
1368
1369         * lex.c (java_new_lexer): Call iconv_close on temp handle used to
1370         check for byte swap.
1371
1372 2000-05-02  Jeff Sturm  <jsturm@one-point.com>
1373
1374         * expr.c (build_class_init): Move MODIFY_EXPR
1375         outside of COND_EXPR.  Remove variable `call'.
1376
1377 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1378
1379         * decl.c: NULL_PTR -> NULL.
1380         * jcf-write.c: Likewise.
1381
1382 2001-05-01  Tom Tromey  <tromey@redhat.com>
1383
1384         * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
1385         (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
1386         * gcj.texi: Updated copyright text.  Include fdl.texi.
1387         (Top): Link to new node.
1388
1389 2001-05-01  Per Bothner  <per@bothner.com>
1390
1391         * parse.h (REGISTER_IMPORT):  Use tree_cons instead of chainon.
1392
1393 2001-05-01  Per Bothner  <per@bothner.com>
1394
1395         * parse.y (java_pop_parser_context):  The TREE_VALUE of a link in the
1396         import_list contains the name, not the TREE_PURPOSE.
1397
1398 2001-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1399
1400         * jcf-io.c (read_zip_member): Cast to long in comparison with
1401         signed value.
1402
1403         * jvspec.c (lang_specific_driver): Initialize variables.
1404
1405         * mangle.c (find_compression_record_match): Likewise.
1406
1407         * typeck.c (build_null_signature): Provide static prototype.  Mark
1408         parameter with ATTRIBUTE_UNUSED.
1409
1410         * verify.c (verify_jvm_instructions): Initialize variable.
1411
1412 2001-04-27  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1413
1414         * parse.y (do_resolve_class): Check for cyclic inheritance during
1415         inner class resolution.
1416
1417 2001-04-27  Per Bothner  <per@bothner.com>
1418
1419         * parse.y (java_expand_classes):  Don't change ctxp_for_generation
1420         while iterating, since that could cause gc to lose stuff.
1421
1422 2001-04-26  Per Bothner  <per@bothner.com>
1423
1424         Fix method search wrt scope of inner classes to match JLS2.
1425         * typeck.c (build_null_signature):  New static function.
1426         (has_method):  New function.  Uses build_null_signature and lookup_do.
1427         * java-tree.h (has_method):  New declaration.
1428         * parse.y (find_applicable_accessible_methods_list):  Do not search
1429         context of inner classes here.
1430         (patch_method_invocation):  Search scope, ie. current and outer clases,
1431         for method matching simple name, to find class.
1432
1433 2001-04-26  Per Bothner  <per@bothner.com>
1434
1435         * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
1436         Fix thinko:  If a single case, use if_icmpeq, not ifeq.
1437
1438         * constants.c (find_methodref_with_class_index):  New function.
1439         (find_methodref_index):  Use find_methodref_with_class_index.
1440         * java-tree.h (find_methodref_with_class_index):  New declaration.
1441         * jcf-write.c (generate_bytecode_insns case CALL_EXPR):  Don't change
1442         DECL_CONTEXT, instead use new find_methodref_with_class_index function.
1443         If context changed from interface to class, don't use invokeinterface.
1444
1445 2001-04-25  Per Bothner  <per@bothner.com>
1446
1447         * verify.c (verify_jvm_instructions):  For field instructions,
1448         check that field index is valid.  For invoke instructions, check that
1449         method index is valid.
1450
1451 2001-04-25  Alexandre Oliva  <aoliva@redhat.com>
1452
1453         * config-lang.in (target_libs): Copy from $libgcj_saved.
1454
1455 2001-04-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1456
1457         * decl.c (init_decl_processing): Add new class "protectionDomain"
1458         field.
1459         * class.c (make_class_data): Set initial value for "protectionDomain".
1460
1461 2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1462
1463         * jvspec.c (lang_specific_driver): Fix memory allocation
1464         deficit, by using concat in lieu of xmalloc/sprintf.
1465
1466 2001-04-20  Per Bothner  <per@bothner.com>
1467
1468         Fixes to compile multiple .class files at once.
1469         * decl.c (init_decl_processing):  Don't set CLASS_LOADED_P.
1470         * java-tree.h (CLASS_PARSED_P):  New macro.
1471         (CLASS_LOADED_P):  Re-define to use TYPE_SIZE and CLASS_PARSED_P.
1472         * jcf-parse.c (jcf_parse_source):  Inline into read_class.
1473         (read_class):  Avoid some code duplication.
1474         Don't call JCF_FINISH for a .class file - might be needed later.
1475         (jcf_parse):  Don't call layout_class here.  Check/set CLASS_PARSED_P
1476         rather than CLASS_LOADED_P, since latter implies class laid out.
1477         (yyparse):  Do layout_class and JCF_FINISh here instead, in pass 2.
1478         * parse.y:  Don't need to set CLASS_LOADED_P for array types.
1479
1480 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1481
1482         * Make-lang.in (java/boehm.o): Depend on toplev.h.
1483
1484         * boehm.c: Include toplev.h.
1485
1486 2001-04-06  Tom Tromey  <tromey@redhat.com>
1487             Alexandre Petit-Bianco  <apbianco@redhat.com>
1488
1489         Fix for PR gcj/1404 and PR gcj/2332:
1490         * parse.y (build_array_from_name): If we use the type_wfl then
1491         accumulate dimensions from the original type as well.
1492         (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
1493
1494 2001-04-06  Tom Tromey  <tromey@redhat.com>
1495
1496         * parse.y (analyze_clinit_body): Return true if the second operand
1497         of a METHOD_EXPR is nonzero.
1498
1499 2001-04-06  Tom Tromey  <tromey@redhat.com>
1500
1501         * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
1502         directory.
1503         ($(srcdir)/java/parse.c): Likewise.
1504
1505 2001-04-05  Alexandre Petit-Bianco  <apbianco@redhat.com>
1506
1507         * gcj.texi: Use `which-gcj' instead of `which-g77.'
1508         (version-gcc): Initialized.
1509         (which-gcj): Likewise.
1510
1511 2001-04-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
1512
1513         * java-tree.h (struct lang_decl): New macro
1514         `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
1515         * parse.y (build_instance_initializer): New function.
1516         (add_instance_initializer): Use it.
1517         (java_fix_constructors): Set `current_class' before fix pass.
1518         (fix_constructors): Just return if already fixed. Move `super()'
1519         invokation ahead. Use `build_instance_initializer.'
1520         Fixes PR java/1315.
1521
1522 2001-04-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
1523
1524         * parse.y (resolve_qualified_expression_name): Pass field's
1525         DECL_CONTEXT to `not_accessible_p.'
1526         (not_accessible_p): Changed parameters order in `inherits_from_p'
1527         invokation.
1528
1529 2001-03-27  Andrew Haley  <aph@cambridge.redhat.com>
1530
1531         * lang-options.h: Add flag_check_references.
1532
1533 2001-04-04  Per Bothner  <per@bothner.com>
1534
1535         * java-tree.h (CONSTANT_VALUE_P):  New macro.
1536         * jcf-write.c (generate_classfile):  Use CONSTANT_VALUE_P.
1537         * parse.y (maybe_build_class_init_for_field):  New static function.
1538         (resolve_expression_name, resolve_field_access):  Use
1539         maybe_build_class_init_for_field instead of build_class_init
1540         This does not do the init if the field is compile-time-constant.
1541         (resolve_field_access):  Simplify.
1542
1543         * parse.y (fold_constant_for_init):  Merge test into switch.
1544
1545 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
1546
1547         * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
1548         on gansidecl.h.
1549         * buffer.c, jvgenmain.c: Don't include gansidecl.h.
1550
1551 2001-04-02  Zack Weinberg  <zackw@stanford.edu>
1552
1553         * expr.c (pop_type_0): Save the result of the first
1554         lang_printable_name call in a scratch buffer, so it
1555         won't be clobbered by the second call.
1556
1557 2001-03-30  Alexandre Petit-Bianco  <apbianco@redhat.com>
1558
1559         * parse-scan.y (array_type:): Rewritten.
1560         (type_declaration:): `empty_statement' replaces `SC_TK.'
1561         (class_member_declaration:): `empty statement' added.
1562         (method_body:): Simplified.
1563         (static_initializer:): Likewise.
1564         (primary_no_new_array:): Use `type_literals.'
1565         (type_literals:): New rule.
1566         (dims:): Set and update `bracket_count.'
1567         Fixes PR java/1074. Fixes PR java/2412.
1568
1569 2001-03-28  Hans Boehm  <boehm@acm.org>
1570
1571         * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
1572         (get_boehm_type_descriptor): Set type on returned value to be a
1573         pointer length integer.
1574
1575 2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1576
1577         * expr.c (pop_type_0): Call `concat' rather than building the
1578         string manually.
1579         (pop_type): Add format specifier in call to `error'.
1580
1581         * parse.y (patch_method_invocation): Avoid casting away
1582         const-ness.
1583
1584 2001-03-28  Jeffrey Oldham  <oldham@codesourcery.com>
1585
1586         * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
1587
1588 2001-03-28  Richard Henderson  <rth@redhat.com>
1589
1590         IA-64 ABI Exception Handling:
1591         * Make-lang.in (except.o): Don't depend on eh-common.h.
1592         * check-init.c (check_init): Handle EXC_PTR_EXPR.
1593         * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
1594         [soft_exceptioninfo_call_node]: Remove.
1595         [eh_personality_libfunc, lang_eh_runtime_type]: New.
1596         (end_java_method): No emit_handlers.
1597         * except.c (java_set_exception_lang_code): Remove.
1598         (method_init_exceptions): Don't call it.
1599         (prepare_eh_table_type): No CATCH_ALL_TYPE.
1600         (build_exception_object_ref): New.
1601         (expand_end_java_handler): Update for except.h name changes.
1602         (emit_handlers, expand_resume_after_catch): Remove.
1603         * expr.c (java_lang_expand_expr): Update for except.h name changes.
1604         (process_jvm_instruction): Use build_exception_object_ref.
1605         * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
1606         (soft_exceptioninfo_call_node): Remove.
1607         (build_exception_object_ref): Declare.
1608         * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
1609         soft_exceptioninfo_call_node.  Move processing ...
1610         [EXC_PTR_EXPR]: ... here.
1611         * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
1612         * parse.y (catch_clause_parameter): Use build_exception_object_ref.
1613         (source_end_java_method): No java_set_exception_lang_code or
1614         emit_handlers.
1615         (build_dot_class_method): Use build_exception_object_ref.
1616         (try_reference_assignconv): Check EXC_PTR_EXPR not
1617         soft_exceptioninfo_call_node.
1618
1619 2001-03-28  Richard Henderson  <rth@redhat.com>
1620
1621         * java-tree.h (throw_node): Define as a single member of
1622         java_global_trees instead of a separate array.
1623         (JTI_THROW_NODE): New.
1624         * decl.c (throw_node): Don't declare.
1625         (init_decl_processing): Init a scalar throw_node.
1626         Don't register it for gc.
1627         * check-init.c (check_init): Reference scalar throw_node.
1628         * expr.c (build_java_athrow): Likewise.
1629         * jcf-write.c (generate_bytecode_insns): Likewise.
1630         * parse.h (BUILD_THROW): Likewise.
1631
1632 2001-03-28  Richard Henderson  <rth@redhat.com>
1633
1634         * decl.c (end_java_method): Do not save and restore
1635         flag_non_call_exceptions.
1636         * parse.y (source_end_java_method): Likewise.
1637         * lang.c (flag_exceptions): Don't declare.
1638         (java_init_options): Set flag_non_call_exceptions.  Set
1639         flag_exceptions here ...
1640         (java_init): ... not here.
1641
1642 2001-03-27  Richard Henderson  <rth@redhat.com>
1643
1644         * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
1645         exceptions_via_longjmp.
1646
1647         * lang.c (flag_new_exceptions): Don't declare it.
1648         (java_init_options): Or set it.
1649
1650 2001-03-27  Richard Henderson  <rth@redhat.com>
1651
1652         * decl.c (end_java_method): Rename asynchronous_exceptions to
1653         flag_non_call_exceptions.
1654         * parse.y (source_end_java_method): Likewise.
1655
1656 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1657
1658         * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
1659
1660 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
1661
1662         * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
1663
1664 2001-03-26  Alexandre Petit-Bianco  <apbianco@redhat.com>
1665
1666         * parse.y (find_as_inner_class): Follow current package
1667         indications not to mistakingly load an unrelated class.
1668
1669 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1670
1671         * constants.c (PUTN): Use memcpy, not bcopy.
1672
1673         * lex.c (java_read_char): Use memmove, not bcopy.
1674
1675         * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
1676
1677 2001-03-23  Per Bothner  <per@bothner.com>
1678
1679         * verify.c (verify_jvm_instructions):  Replace 3 pop_type by POP_TYPE
1680         macro for better error pin-pointing.
1681         * java-tree.h:  Fix typo in comment.
1682
1683         * jcf-write.c (generate_bytecode_insns):  Changes to TRY_FINALLY_EXPR.
1684         Don't include jsr/goto in exception range.
1685         Check if start and end of exception range are the same (also TRY_EXPR).
1686         Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
1687         However, do emit the following goto even if try_block is empty.
1688         Defer freeing exception_decl until after the finalizer, to make
1689         sure the local isn't reused in the finalizer.  Fixes PR java/1208.
1690
1691         * parse.y (java_complete_lhs):  If the try-clause is empty, just
1692         return the finally-clause and vice versa.
1693
1694 2001-03-23  Alexandre Petit-Bianco  <apbianco@redhat.com>
1695
1696         * gcj.texi (Input Options): documented the check for attribute
1697         `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
1698         * java-tree.h (flag_force_classes_archive_check): Declared extern.
1699         * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
1700         (jcf_parse): Check for the right classes archive if necessary.
1701         * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
1702         (jcf_parse_fields): Fixed indentation.
1703         * jcf-write.c (append_gcj_attribute): New function.
1704         (generate_classfile): Compute the attribute count, invoke
1705         `append_gcj_attribute'.
1706         * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
1707         turned into bit fields. New bit field `right_zip.'
1708         (JCF_ZERO): Set `right_zip' to zero.
1709         * lang-options.h (-fforce-classes-archive-check): Added flag.
1710         * lang.c (flag_force_classes_archive_check): New flag.
1711         (lang_f_options): New entry `force-classes-archive-check.'
1712         Fixes PR java/1213.
1713
1714 2001-02-07  Andrew Haley  <aph@redhat.com>
1715
1716         * gcj.texi (Configure-time Options): Add -fcheck-references.
1717         * expr.c (build_java_indirect_ref): New function.
1718         (java_check_reference): New function.
1719         (build_java_array_length_access): Use build_java_indirect_ref to
1720         check for null references.
1721         (build_java_arrayaccess): Likewise.
1722         (build_get_class): Likewise.
1723         (build_field_ref): Likewise.
1724         (invoke_build_dtable): Likewise.
1725         (build_invokeinterface): Likewise.
1726         * lang.c (lang_f_options): Add flag_check_references.
1727         * jvspec.c (jvgenmain_spec): Add flag_check_references.
1728         * java-tree.h (flag_check_references): New variable.
1729         * lang.c (flag_check_references): Likewise.
1730         * parse.y (patch_invoke): Use java_check_reference.
1731         (patch_assignment): Allow for extra nesting in
1732         _Jv_CheckArrayStore.
1733
1734 2001-03-23  Bryce McKinlay  <bryce@albatross.co.nz>
1735
1736         * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
1737         * lex.c (cxx_keywords): Likewise.
1738
1739 2001-03-21  Alexandre Petit-Bianco  <apbianco@redhat.com>
1740
1741         * parse.y (qualify_ambiguous_name): Broaden `length'
1742         recognition. Help MODIFY_EXPR be resolved as expression names.
1743         Fixes PR java/2066. Fixes PR java/2400.
1744
1745 2001-03-21  Bryce McKinlay  <bryce@albatross.co.nz>
1746
1747         * gjavah.c (process_file): Mark interface definitions with
1748         "__attribute__ ((java_interface))".
1749
1750 2001-03-21  Alexandre Petit-Bianco  <apbianco@redhat.com>
1751
1752         * class.c (layout_class): Fixed push_super_field's second
1753         argument. Fixes PR java/2333.
1754         (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
1755         too early to lay innerclasses out.
1756
1757 2001-03-20  Tom Tromey  <tromey@redhat.com>
1758             Alexandre Petit-Bianco <apbianco@redhat.com>
1759
1760         * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
1761         inside an array reference. Insertion of the array store check
1762         rewritten. Fixes PR java/2299.
1763
1764 2001-03-20  Tom Tromey  <tromey@redhat.com>
1765
1766         * lex.c (java_read_unicode): Only accept leading `u's.
1767
1768 2001-03-20  Tom Tromey  <tromey@redhat.com>
1769
1770         * jcf-parse.c (read_class): Initialize `class'.
1771
1772 2001-03-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1773
1774         * jcf_parse.c (jcf_parse): Eliminate unused variable.
1775
1776 2001-03-19  Mark Mitchell  <mark@codesourcery.com>
1777
1778         * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
1779         (layout_class): Likewise.
1780         (layout_class_method): Likewise.
1781         (emit_register_classes): Likewise.
1782         * decl.c (builtin_function): Likewise.
1783         (give_name_to_locals): Likewise.
1784
1785 2001-03-19  Per Bothner  <per@bothner.com>
1786
1787         * jcf-parse.c (load_inner_classes):  Check CLASS_LOADED_P
1788         before trying to load an inner class.
1789
1790         Fixes to process to command-line .class files in two passes.
1791         * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P):  New flags.
1792         (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P):  Rename to ..
1793         (CLASS_FROM_CURRENTLY_COMPILED_P):  ... because it is more general now.
1794         * class.c (is_compiled_class):  Fix for renamed flag.
1795         * parse.y (maybe_create_class_interface_decl):  Likewise.
1796         * jcf-parse.c (yyparse):  Also set if compiling .class files.
1797         * jcf-parse.c (read_class);  Read current_class.
1798         (jcf_parse):  Make static.
1799         (load_inner_classes):  New function, with code moved from jcf_parse,
1800         because we need to inner classes after the command-line files are read.
1801         (yyparse):  Set finput to NULL when it doesn't need to be closed.
1802         Reduce use of main_jcf (basically only for archive) and
1803         use finput instead of main_jcf->read_state.
1804         Inline jcf_figure_file_type into yyparse.
1805         Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
1806         Defer load_inner_classes and parse_class_file to a second pass,
1807         after we've correctly mapped command-line .clas fiels to classes.
1808         (jcf_figure_file_type):  Removed.
1809         * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE):  Removed flags.
1810         (JCF_ZERO):  Also clear zipd field.
1811         * zipfile.h:  Conditionalize on JCF_H insread of JCF_ZIP.
1812
1813 2001-03-18  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1814
1815         * jcf-parse.c (yyparse): Change ch from char * to char.
1816
1817 2001-03-19  Per Bothner  <per@bothner.com>
1818
1819         * jvspec.c (lang_specific_driver):  Check for .zip and .jar files.
1820         Add constructed filelist-file at end, following -xjava.  Thus any .o
1821         and library files are not affected by the -xjava.  Also wrap
1822         explicit @FILE with -xjava and -xnone.
1823
1824 2001-03-19  Andrew Haley  <aph@cambridge.redhat.com>
1825
1826         * class.c (build_static_field_ref): Call make_decl_rtl() after
1827         setting the DECL_EXTERNAL flag.
1828
1829 2001-03-17  Per Bothner  <per@bothner.com>
1830
1831         * decl.c (clear_binding_level):  Fix initializer (broke 03-15).
1832
1833         * jcf-write.c (generate_bytecode_insns):  Handle emitting iinc
1834         when result is is needed (target is STACK_TARGET).
1835
1836         * parse.h (JDEP_SOLV):  Removed.
1837         * parse.y (register_incomplete_type):  Use JDEP_TO_RESOLVE instead.
1838
1839         * parse.y (incomplete_class_list): Removed.
1840         (obtain_incomplete_type): Don't use or set incomplete_class_list.
1841         It doesn't work if resolve_class changes the name of an array type
1842         that is on the list and then someone else looks for the modified name.
1843         Also, seems liable to break when compiling multiple source files at
1844         once.  So the simplest is to just remove incomplete_class_list -
1845         it is only a minor space win and it is not even clear it saves time.
1846
1847         * parse.y (resolve_class):  Remove unneeded promote_type.
1848
1849 2001-03-15  Per Bothner  <per@bothner.com>
1850
1851         * java-tree.h (BLOCK_IS_IMPLICIT):  New flag.
1852         * parse.h (BLOCK_EXPR_ORIGIN):  Removed macro.
1853         * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
1854         Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
1855
1856         * jcf-parse.c (yyparse):  Set/reset input_filename for source file.
1857         * parse.y (java_expand_classes):  Likewise.
1858
1859         * parse.y (expand_start_java_method):  Was only called once and had a
1860         misleading name, so inline in caller java_complete_expand_method.
1861         (enter_a_block):  Likewise inline in enter_block and remove.
1862
1863         Remove junk from when gcc/java was created (by copying from C/C++).
1864         * decl.c (keep_next_level_flag, keep_next_if_subblocks):  Remove.
1865         (struct binding_level):  Remove fields keep, keep_if_subblocks,
1866         more_cleanups_ok, have_cleanups (which have never been used).
1867         (pushlevel, poplevel):  Remove related useless code.
1868
1869         * class.c (make_class_data):  The class_dtable_decl (i.e. the
1870         vtable for Class) should be external, except when compiling Class.
1871
1872         * jvspec.c (lang_specific_driver):  Fix -C handling.
1873         Check -save-temps to see if temp @FILE should be deleted.
1874         Follow-up to/fix for February 16 patch.
1875
1876         * verify.c (verify_jvm_instructions):  Better error msgs for dup.
1877         (type_stack_dup):  Remove no-longer neded error check.
1878
1879 2001-03-15  Bryce McKinlay  <bryce@albatross.co.nz>
1880
1881         * mangle.c (mangle_record_type): Rename 'from_pointer' argument
1882         to 'for_pointer'. If this type is for a pointer (argument) mangling,
1883         don't surround the element with 'N..E' if the type name is
1884         unqualified.
1885
1886 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
1887
1888         * class.c (build_static_field_ref): Use COPY_DECL_RTL,
1889         DECL_RTL_SET_P, etc.
1890         (make_method_value): Likewise.
1891         (get_dispatch_table): Likewise.
1892
1893         * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
1894
1895 2001-03-07  Tom Tromey  <tromey@redhat.com>
1896
1897         * config-lang.in (lang_requires): Define.
1898
1899 2001-03-07  Brad Lucier  <lucier@math.purdue.edu>
1900
1901         * typeck.c (convert): Check flag_unsafe_math_optimizations,
1902         not flag_fast_math.
1903
1904 2001-03-05  Per Bothner  <per@bothner.com>
1905
1906         Fix a problem where rest_of_decl_compilation applied to
1907         class_dtable_decl causes problems because it was done too early,
1908         before output file was opened.
1909         * decl.c (init_decl_processing):  Remove init of class_dtable_decl.
1910         * class.c (class_dtable_decl):  Add macro - element of class_roots.
1911         (make_class_data):  Define class_dtable_decl.
1912         * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl):  Removed.
1913
1914 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
1915
1916         * java/class.c, java/decl.c, java/java-tree.h: Replace all
1917         uses of 'boolean' with 'bool'.
1918
1919 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
1920
1921         * lang-specs.h: Add zero initializer for cpp_spec field to all
1922         array elements.
1923
1924 2001-02-16  Per Bothner  <per@bothner.com>
1925
1926         Handle compiling multiple input files at once, and @FILE syntax.
1927         * gcj.texi:  Updated documentation to match.
1928         * java-tree.h (flag_filelist_file, init_src_parse):  New declarations.
1929         * jcf-parse.c (parse_source_file):  Split into ...
1930         (parse_source_file_1):  New function - and:
1931         (parse_source_file_2):  New function.
1932         (yyparse):  On -ffilelist-file, open and scan named file.
1933         On first pass over files, only do parse_source_file_1.
1934         A new second pass calls parse_source_file_2 for each file to compile.
1935         (init_jcf_parse):  Call init_src_parse.
1936         * jvspec.c (INDIRECT_FILE_ARG):  New flag.
1937         (lang_specific_driver):  Support @FILELIST-FILE syntax, as well
1938         as multiple input file combined in one compilation.
1939         * lang-options.h:  Add -ffilelist-file
1940         * lang.c (flag_filelist_file):  New flag variable.
1941         (lang_f_options):  Handle -ffilelist-file.
1942         * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
1943         * parse.h (struct parse_ctxt):  Remove fields incomplete_class and
1944         gclass_list - use global fields of src_parse_roots instead.
1945         * parse.y (src_parse_roots):  New array.
1946         (incomplete_class_list, gclass_list):  New macros.
1947         (push_parser_context, java_pop_parser_context,
1948         java_parser_context_resume):  Don't fiddle with deleted fields.
1949         (various):  Use incomplete_class gclass_list and global macros
1950         instead of parse_ctxt fields - the lists are global.
1951         (init_src_parse):  New function.
1952
1953 Fri Feb 23 15:28:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1954
1955         * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
1956
1957 2001-02-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
1958
1959         * parse.y (check_inner_class_access): Moved declaration of local
1960         `enclosing_decl_type' to the right location.
1961
1962 2001-02-19  Bryce McKinlay  <bryce@albatross.co.nz>
1963
1964         * parse.y (parser_check_super_interface): Don't call
1965         check_pkg_class_access for an inner interface.
1966         (parser_check_super): Don't call check_pkg_class_access for inner
1967         class.
1968         (do_resolve_class): Simplify enclosing type loop. Don't call
1969         check_pkg_class_access if CL and DECL are not set.
1970         (find_in_imports_on_demand): Set DECL if class_type needed to be
1971         loaded. Don't call check_pkg_class_access for an inner class.
1972         (check_inner_class_access): Rewritten to implement member access
1973         rules as per spec 6.6.1.
1974         (check_pkg_class_access): Handle the empty package correctly.
1975         (in_same_package): New function. Determine if two classes are in the
1976         same package.
1977
1978 2001-02-18  Bryce McKinlay  <bryce@albatross.co.nz>
1979
1980         * typeck.c (build_java_array_type): Don't try to poke a public `clone'
1981         method into array types.
1982         * parse.y (patch_method_invocation): Bypass access check on clone call
1983         to array instance.
1984
1985 2001-02-15  Alexandre Petit-Bianco  <apbianco@redhat.com>
1986
1987         * expr.c (build_instanceof): Check for arrays when trying fold to
1988         false.
1989
1990 2001-02-15  Jim Meyering  <meyering@lucent.com>
1991
1992         * Make-lang.in (java.install-common): Depend on `installdirs'.
1993         (java.install-info): Likewise.
1994
1995 2001-02-15  Bryce McKinlay  <bryce@albatross.co.nz>
1996
1997         * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
1998
1999 2001-02-14  Tom Tromey  <tromey@redhat.com>
2000             Alexandre Petit-Bianco  <apbianco@cygnus.com>
2001
2002         Fix for PR java/1261.
2003         * typeck.c (build_java_array_type): Add public `clone' method to
2004         arrays.
2005         * parse.y (resolve_qualified_expression_name): Use current_class
2006         when checking for inaccessibility.
2007         (patch_method_invocation): Fixed error message when accessibility
2008         denied.  Added `from_super' argument.
2009
2010 2001-02-14  Alexandre Petit-Bianco  <apbianco@redhat.com>
2011
2012         * parse.y (resolve_class): Don't build a fake decl. Use the one
2013         already built.
2014         * typeck.c (build_java_array_type): Build and assign decl to array
2015         type.
2016
2017 2001-02-14  Alexandre Petit-Bianco  <apbianco@redhat.com>
2018
2019         * parse.y (not_accessible_p): Changed leading comment. Added extra
2020         `where' argument. Use it to enforce protected access rules.
2021         (resolve_qualified_expression_name): Added extra argument to
2022         not_accessible_p.
2023         (patch_method_invocation): Use argument `primary' to provide
2024         not_accessible_p with an extra argument.
2025         (lookup_method_invoke): Added extra argument to not_accessible_p.
2026         (search_applicable_method_list): Likewise.
2027
2028 2001-02-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
2029
2030         * parse.y (resolve_qualified_expression_name): Try to resolve as
2031         an inner class access only if `decl' is a TYPE_DECL.
2032
2033 2001-02-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2034
2035         * decl.c (classdollar_identifier_node): Initialize.
2036         * java-tree.h (enum java_tree_index): New entry
2037         `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
2038         (classdollar_identifier_node): New macro.
2039         (ID_CLASSDOLLAR_P): Likewise.
2040         * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
2041         (build_dot_class_method_invocation): Likewise.
2042         (find_applicable_accessible_methods_list): `class$' can't be
2043         inherited.
2044
2045 2001-02-09  Raja R Harinath  <harinath@cs.umn.edu>
2046
2047         * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
2048
2049 2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
2050
2051         * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
2052         * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
2053         gone.
2054
2055 2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
2056
2057         * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
2058         outside of the `__U' sequence too.
2059         (unicode_mangling_length): Count `_' or `U' outside of the `__U'
2060         sequence too.
2061
2062 2001-02-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
2063
2064         * jvgenmain.c (error): Reversed 2001-02-01 deletion.
2065
2066 2001-02-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2067
2068         * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
2069         (JVGENMAIN_OBJS): Likewise.
2070         * java-tree.h (append_gpp_mangled_name): New prototype.
2071         * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
2072         Removed cast calling `gcc_add_root.'
2073         * jvgenmain.c (mangle_obstack): New global, initialized.
2074         (main): Use it.
2075         (do_mangle_class): Constify local `ptr.'
2076         Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
2077         append_gpp_mangle_name and update `count' if necessary.
2078         Use `mangle_obstack.'
2079         * mangle.c (append_unicode_mangled_name): Removed.
2080         (append_gpp_mangled_name): Likewise.
2081         (unicode_mangling_length): Likewise.
2082         (mangle_member_name): Return type set to `void.'
2083         (mangle_field_decl): Don't append `U' in escaped names.
2084         (mangle_method_decl): Likewise.
2085         (mangle_member_name): Just use `append_gpp_mangled_name.'
2086         * mangle_name.c: New file.
2087
2088 2001-02-07  Per Bothner  <per@bothner.com>
2089
2090         * check-init.c (check_init):  Fix TRY_FINALLY_EXPR logic.
2091
2092         * check-init.c (check_init):  Don't call done_alternative after
2093         processing loop code, as a LOOP_EXPR never terminates normally.
2094
2095 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
2096
2097         * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
2098
2099 2001-02-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2100
2101         * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
2102         DECLs.
2103
2104 2001-02-06  Tom Tromey  <tromey@redhat.com>
2105
2106         * lex.c (java_new_lexer): Longer error message.
2107
2108 2001-02-05  Jeff Sturm  <jeff.sturm@commerceone.com>
2109             Alexandre Petit-Bianco  <apbianco@cygnus.com>
2110
2111         * typeck.c (build_prim_array_type): Added leading comment.
2112         (build_java_array_type): Moved locals out of
2113         block. Always create the `data' field, fixed alignment to match
2114         C++.
2115
2116 2001-02-04  Tom Tromey  <tromey@redhat.com>
2117
2118         * expr.c (java_lang_expand_expr): Don't bother recomputing
2119         `length'.  Use rest_of_decl_compilation, not make_decl_rtl.
2120         Fixes PR java/1866.
2121
2122 2001-02-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2123
2124         * parse.y (process_imports): Save the original name of the import
2125         for better error report.
2126
2127 2001-02-04  Bryce McKinlay  <bryce@albatross.co.nz>
2128
2129         * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
2130         of macros used when compiling jvspec.c.
2131         * jvspec.c (lang_specific_driver): Link with the shared
2132         libgcc by default.
2133
2134 Sun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2135
2136         * check-init.c (check_init): Call internal_error instead of fatal.
2137         * expr.c (java_lang_expand_expr): Likewise.
2138         * jcf-parse.c (get_constant): Likewise.
2139         * mangle.c (java_mangle_decl): Likewise.
2140         * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
2141         (operator_string): Likewise.
2142         * check-init.c (check_init): Call abort instead of fatal.
2143         * class.c (build_class_ref): Likewise.
2144         * constants.c (write_constant_pool): Likewise.
2145         * decl.c (start_java_method): Likewise.
2146         * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
2147         (java_stack_dup, encode_newarray_type): Likewise.
2148         (build_java_array_length_access): Likewise.
2149         (build_java_check_indexed_type, expand_java_pushc): Likewise.
2150         (build_java_soft_divmod, build_invokeinterface): Likewise.
2151         * java-tree.h (INNER_CLASS_P): Likewise.
2152         * jcf-parse.c (parse_signature, get_name_constant): Likewise.
2153         (give_name_to_class, get_class_constant): Likewise.
2154         * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
2155         (find_constant_index, generate_bytecode_conditional): Likewise.
2156         (generate_bytecode_insns, perform_relocations): Likewise.
2157         * lex.c (java_unget_unicode, java_lex): Likewise.
2158         * mangle.c (mangle_type, mangle_record_type): Likewise.
2159         (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
2160         (finish_mangling): Likewise.
2161         * parse.h (MARK_FINAL_PARMS): Likewise.
2162         * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
2163         (obtain_incomplete_type, java_complete_class): Likewise.
2164         (java_check_regular_methods, java_complete_expand_method): Likewise.
2165         (cut_identifier_in_qualified, check_deprecation): Likewise.
2166         (patch_invoke, find_applicable_accessible_methods_list): Likewise.
2167         (java_complete_lhs, lookup_name_in_blocks): Likewise.
2168         (check_final_variable_indirect_assignment, build_unaryop): Likewise.
2169         * typeck.c (set_local_type, parse_signature_type): Likewise.
2170         (parse_signature_string, build_java_signature): Likewise;
2171         (set_java_signature): Likewise.
2172         * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
2173         * class.c (add_method): Call fatal_error instead of fatal.
2174         (build_static_field_ref): Likewise.
2175         * expr.c (build_known_method_ref, expand_invoke): Likewise.
2176         * jcf-parse.c (get_constant, jcf_parse): Likewise.
2177         * lex.c (java_new_new_lexer): Likewise.
2178         * jv-scan.c (main): Likewise.
2179         (fatal_error): Renamed from fatal.
2180         * jcf-parse.c (yyparse): Call fatal_io_error instead of
2181         pfatal_with_name.
2182         * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
2183         (yyparse): Likewise.
2184         * jcf-write.c (make_class_file_name, write_classfile): Likewise.
2185         * lex.c (java_get_line_col): Likewise.
2186         * jcf-parse.c (load_class): Make errors non-fatal.
2187         * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
2188
2189 2001-02-01  Bryce McKinlay  <bryce@albatross.co.nz>
2190
2191         * jvgenmain.c (class_mangling_suffix): Remove unused string.
2192         (error): Remove unused function.
2193         (main): Don't use "__attribute__ alias" on generated class symbol.
2194
2195 2001-01-30  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2196
2197         * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
2198         argument.
2199         * parse.y (finish_method_declaration): Code accounting for WFLed
2200         method DECL_NAMEs deleted.
2201         (check_abstract_method_definitions): Likewise.
2202         (resolve_type_during_patch): Layout resolved type.
2203         * typeck.c (lookup_do): Removed unused local.
2204
2205 2001-01-30  Bryce McKinlay  <bryce@albatross.co.nz>
2206
2207         * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
2208         * decl.c (init_decl_processing): Use integer_minus_one_node, not
2209         integer_negative_one_node.
2210         * expr.c (build_java_binop): Likewise.
2211
2212 2001-01-24  Jeff Sturm  <jeff.sturm@commerceone.com>
2213
2214         * zextract.c (read_zip_archive): Read file_offset before writing
2215         zipd and consequently clobbering the header contents.
2216
2217 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2218
2219         * Make-lang.in: Remove all dependencies on defaults.h.
2220         * decl.c: Don't include defaults.h.
2221         * expr.c: Likewise.
2222         * parse.y: Likewise.
2223
2224 2001-01-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2225
2226         * ChangeLog (2001-01-21): Fixed typo.
2227         * class.c (layout_class_method): Code accounting for WFLed
2228         method DECL_NAMEs deleted.
2229         * constant.c (find_methodref_index): Likewise.
2230         * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
2231         * java-tree.h (DECL_FUNCTION_WFL): New macro.
2232         (struct lang_decl): New field `wfl'.
2233         (java_get_real_method_name): Prototype deleted.
2234         * mangle.c (mangle_method_decl): Code accounting for WFLed
2235         method DECL_NAMEs deleted.
2236         * parse.h (GET_METHOD_NAME): Macro deleted.
2237         * parse.y (reset_method_name): Deleted.
2238         (method_header): Set DECL_FUNCTION_WFL.
2239         (check_abstract_method_header): Code accounting for WFLed method
2240         DECL_NAMEs deleted.
2241         (java_get_real_method_name): Deleted.
2242         (check_method_redefinition): Code accounting for WFLed method
2243         DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
2244         (java_check_regular_methods): Likewise.
2245         (java_check_abstract_methods): Likewise.
2246         (java_expand_classes): Don't call `reset_method_name.'
2247         (search_applicable_method_list): Use DECL_NAMEs instead of
2248         GET_METHOD_NAME.
2249         * typeck.c (lookup_do): Code accounting for WFLed method
2250         DECL_NAMEs deleted.
2251
2252 2001-01-25  Richard Earnshaw  <rearnsha@arm.com>
2253
2254         * lex.c (java_read_char): Check for EOF from getc first.
2255
2256 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2257
2258         * class.c (layout_class): Don't lay the superclass out if it's
2259         already being laid out.
2260         * jcf-parse.c (handle_innerclass_attribute): New function.
2261         (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
2262         handle_innerclasses_attribute.
2263         (jcf_parse): Don't load an innerclasses if it's already being
2264         laid out.
2265         * jcf-write.c (append_innerclass_attribute_entry): Static
2266         `anonymous_name' and its initialization deleted. `ocii' and `ini'
2267         to be zero for anonymous classes.
2268
2269 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2270
2271         * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
2272         necessary.
2273         * jcf-parse.c (set_source_filename): Use
2274         MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
2275
2276 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2277
2278         * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
2279         gets a unique asm name.
2280
2281 2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2282
2283         * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
2284         (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
2285         if necessary.
2286         (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
2287         * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
2288         * parse.y (lookup_package_type_and_set_next): Deleted.
2289         (resolve_package): Removed unnecessary code.
2290         (find_applicable_accessible_methods_list): `finit$' can't be
2291         inherited.
2292         * verify.c (pop_argument_types): Added missing prototype.
2293
2294 2001-01-23  Bryce McKinlay  <bryce@albatross.co.nz>
2295
2296         * config-lang.in: Disable java by default.
2297
2298 2001-01-23  Tom Tromey  <tromey@redhat.com>
2299
2300         * gcj.texi (Copying): New node.
2301         Added copyright information.
2302
2303 2001-01-21  Per Bothner  <per@bothner.com>
2304
2305         Various fixes to allow compiling a compressed .jar/.zip archive.
2306         * zipfile.h (struct ZipFileCache):  Replace by struct ZipFile.
2307         (struct ZipFile):  Add fields name and next (from  ZipFileCache).
2308         (struct ZipDirectory):  New field zipf points to owning ZipFile.
2309         * jcf.h (struct ZipDirectory):  Add forward declaration.
2310         (struct JCF):   Declare zipd field to have type struct ZipDirectory.
2311         Remove seen_in_zip and zip_offset fields.
2312         (JCF_SEEN_IN_ZIP):  New macro.
2313         * zextract.c (read_zip_archive):  Set ZipDirectory's zipf field.
2314         * jcf-io.c:  Change all ZipFileCache to ZipFile.
2315         (read_zip_member):  New function.
2316         (open_in_zip):  Call read_zip_member.
2317         * jcf-parse.c (find_in_current_zip):  Remove function.
2318         (read_class):  Merge in find_in_current_zip functionality.
2319         Call read_zip_member if needed.
2320         (parse_zip_file_entries):  Use read_zip_member.
2321         (process_zip_dir):  Update for removed and added JCF fields.
2322         (jcf_figure_file_type):  Re-use, don't copy initial ZipFile struct.
2323
2324 2001-01-21  Per Bothner  <per@bothner.com>
2325
2326         Minor optimization of static ggc roots.
2327         * jcf-parse.c (parse_roots):  New static field.
2328         (current_field, current_method, current_file_list):  Replace by macros
2329         naming fields of parse_roots.
2330         (init_jcf_parse):  Combine 3 ggc_add_tree_root calls to 1.
2331         * class.c (class_roots):  New static field.
2332         (registered_class, fields_ident, info_ident, class_list):
2333         New macros naming fields of parse_roots.
2334         (build_static_field_ref):  Don't register roots here.
2335         (layout_class):  Static field list replaced by macro class_list.
2336         (init_class_processing):  Call ggc_add_tree_root for 4 roots.
2337         Initialize fields_ident and info_ident here.
2338
2339 2001-01-21  Per Bothner  <per@bothner.com>
2340
2341         * jcf-parse.c (ggc_mark_jcf):  New function.
2342         (init_jcf_parse):  Register current_jcf as ggc root.
2343
2344 2001-01-21  Per Bothner  <per@bothner.com>
2345
2346         * lang.c (put_decl_node):  Print method's name.
2347
2348 2001-01-21  Per Bothner  <per@bothner.com>
2349
2350         * verify.c (VERIFICATION_ERROR_WITH_INDEX):  New macro.
2351         (verify_jvm_instructions):  Use it, for better error messages on loads.
2352
2353 2001-01-21  Per Bothner  <per@bothner.com>
2354
2355         * verify.c (merge_type_state):  Still may have to merge even if
2356         LABEL_VERIFIED (label).
2357
2358 2001-01-21  Per Bothner  <per@bothner.com>
2359
2360         * parse.y (method_header):  Don't set the DECL_NAME of a FUNCTION_DECL
2361         to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
2362
2363 2001-01-19  Per Bothner  <per@bothner.com>
2364
2365         * expr.c (pop_type_0):  Only return object_ptr_type_node on mismatch
2366         if expeting an interface type.  Refines Tom's change of 2000-09-12.
2367
2368 2001-01-18  Per Bothner  <per@bothner.com>
2369
2370         * gcj.texi (Input Options): Mention .java files.
2371
2372 2001-01-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2373
2374         * lang-options.h (-Wunsupported-jdk11): Removed.
2375         * lang.c (flag_not_overriding): Deleted.
2376         (flag_static_local_jdk1_1): Likewise.
2377         (lang_W_options): Removed "unsupported-jdk11" entry.
2378         * parse.y (java_check_methods): Removed dead code.
2379
2380 2001-01-17  Tom Tromey  <tromey@redhat.com>
2381
2382         Changes suggested by Per Bothner:
2383         * gcj.texi (Input Options): Don't mention input files.
2384         (Code Generation): Updated --main information.
2385         (Invoking jcf-dump): Mention that --javap is incomplete.
2386         From Alexandre Petit-Bianco:
2387         (Warnings): Don't mention -Wunsupported-jdk11.
2388         My stuff:
2389         (Compatibility): Mention JDK 1.2-ness of libraries.
2390         (Resources): Mention resources used when writing gcj.
2391
2392 2001-01-17  Tom Tromey  <tromey@redhat.com>
2393
2394         * gcj.texi: New file.
2395         * Make-lang.in ($(srcdir)/java/gcj.info): New target.
2396         (java.info): Depend on gcj.info.
2397         (java/gcj.dvi): New target.
2398         (java.dvi): Depend on gcj.dvi.
2399         (java.install-info): Wrote.
2400
2401 2001-01-16  Jeff Sturm  <jeff.sturm@appnet.com>
2402
2403         * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
2404         having called make_decl_rtl.
2405
2406 2001-01-14  Per Bothner  <per@bothner.com>
2407
2408         Various patches to emit better messages on verification errors.
2409         * expr.c (push_type_0):  Return error indication on stack overflow,
2410         instead of callinfg fatal.
2411         (push_type):  Now just call push_type_0 (nd fatal on overflow).
2412         (pop_type_0):  Return detailed error message (in a char** argument).
2413         (pop_type):  If pop_type_0 fails, print error message.
2414         (pop_argument_types):  Moved to verify.c.
2415         * verify.c (pop_argument_types):  Moved from expr.c.
2416         Return a (possible) error message, rather than void.
2417         (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING):  New macros.
2418         (verify_jvm_instruction):  Use new macros, improving error messages.
2419         For case OPCODE_astore use object_ptr_type_node.
2420         * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED):  New macros.
2421         (pop_type_0, push_type_0, pop_argument_types):  Update accordingly.
2422
2423         * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
2424         constant, return body without wrapper.  (Improves constant folding.)
2425         * lex.c (build_wfl_node):  Clear TREE_TYPE from returned node.
2426
2427 2001-01-13  Per Bothner  <per@bothner.com>
2428
2429         * expr.c (expand_java_field_op):  Assigning to a final field outside
2430         an initializer does not violate JVM spec, so should be warning, not
2431         error.  (Sun's verifier does not complain - though MicroSoft's does.)
2432
2433 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
2434
2435         * gjavah.c (version), jcf-dump.c (version): Update copyright year
2436         to 2001.
2437
2438 2001-01-11  Bryce McKinlay  <bryce@albatross.co.nz>
2439
2440         * parse.y (resolve_expression_name): Permit instance variables from
2441         enclosing context in super constructor call.
2442         (resolve_qualified_expression_name): Permit enclosing class's qualified
2443         "this" in super constructor call.
2444
2445 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
2446
2447         * class.c (build_utf8_ref): Remove last argument in call to
2448         make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
2449         (build_class_ref): Likewise.
2450         (build_static_field_ref): Likewise.
2451         (get_dispatch_table): Likewise.
2452         (layout_class_method): Likewise.
2453         (emit_register_classes): Likewise.
2454         * constants.c (build_constant_data_ref): Likewise.
2455         * decl.c (builtin_function): Likewise.
2456         (create_primitive_vtable): Likewise.
2457         * expr.c (build_known_method_def): Likewise.
2458         (build_jni_stub): Likewise.
2459         (java_lang_expand_expr): Likewise.
2460
2461 2001-01-10  Tom Tromey  <tromey@redhat.com>
2462
2463         * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
2464
2465 2001-01-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2466
2467         * java-tree.h (lang_printable_name_wls): New prototype.
2468         * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
2469         rather than `current_class' to print type name. Don't prepend type
2470         names when printing constructor names.
2471         (lang_printable_name_wls): New function.
2472         * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
2473         `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
2474         * parse.y (patch_method_invocation): Message tuned for constructors.
2475         (not_accessible_p): Grant `private' access from within
2476         enclosing contexts.
2477
2478 2001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2479
2480         All files with updated copyright when applicable.
2481         * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
2482         * class.c (mangle_class_field): Function removed.
2483         (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
2484         (utf8_cmp, cxx_keyword_p): Moved to lex.c.
2485         (build_class_ref): Call `java_mangle_class_field' instead of
2486         `mangle_class_field.'
2487         (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
2488         (layout_class): Call `java_mangle_decl' instead of
2489         `mangle_static_field.'
2490         (cxx_keywords): Initialized static array moved to `lex.c.'
2491         (layout_class_method): Changed leading comment. Simplified to
2492         call `java_mangle_decl.' Local `ptr' moved in for loop body.
2493         * decl.c (lang_mark_tree): Mark field `package_list.'
2494         * java-tree.h (TYPE_PACKAGE_LIST): New macro.
2495         (struct lang_type): New field `package_list.'
2496         (unicode_mangling_length): Prototype removed.
2497         (append_gpp_mangled_name, append_gpp_mangled_classtype,
2498         emit_unicode_mangled_name): Likewise.
2499         (cxx_keyword_p): New prototype.
2500         (java_mangle_decl, java_mangle_class_field,
2501         java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
2502         * jcf-parse.c (jcf_parse_source): Constify `file' argument to
2503         `build_expr_wfl.'
2504         * jvgenmain.c (main_method_prefix): Global variable removed.
2505         (main_method_suffix): Likewise.
2506         (do_mangle_classname): New function.
2507         (main): Call it. Format changed to accommodate new mangling scheme.
2508         * lex.c: (utf8_cmp): Conditionally prototyped.
2509         (cxx_keywords): Moved from class.c, conditionally defined.
2510         (utf8_cmp, cxx_keyword_p): Likewise.
2511         * mangle.c (obstack.h, ggc.h): Included.
2512         (mangle_field_decl): New function.
2513         (mangle_method_decl, mangle_type, mangle_pointer_type,
2514         mangle_array_type, mangle_record_type,
2515         find_compression_pointer_match, find_compression_array_match,
2516         find_compression_record_match,
2517         find_compression_array_template_match, set_type_package_list,
2518         entry_match_pointer_p, emit_compression_string, init_mangling,
2519         finish_mangling, compression_table_add, mangle_member_name): Likewise.
2520         (mangle_obstack): New global.
2521         (MANGLE_RAW_STRING): New macro.
2522         (unicode_mangling_length): Turned static.
2523         (append_unicode_mangled_name): Renamed from
2524         `emit_unicode_mangled_name.'  Turned static. `mangle_obstack'
2525         replaces `obstack', removed from the parameter list.
2526         (append_gpp_mangled_name): Turned static. `mangle_obstack'
2527         replaces parameter `obstack', removed from the parameter list. Call
2528         `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
2529         (append_gpp_mangled_classtype): Removed.
2530         (compression_table, compression_next): New static variables.
2531         * parse.y (temporary_obstack): Extern declaration removed.
2532
2533 2001-01-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2534
2535         * parse.y (patch_binop): Compute missing type in error situations.
2536
2537 2001-01-05  Bryce McKinlay  <bryce@albatross.co.nz>
2538
2539         * class.c (make_class_data): Push initial value for "arrayclass".
2540         * decl.c (init_decl_processing): Add new class field "arrayclass".
2541
2542 2001-01-05  Bryce McKinlay  <bryce@albatross.co.nz>
2543
2544         From patha@softlab.ericsson.se:
2545         * parse.y (switch_label): Use build, not build1, to construct
2546         DEFAULT_EXPR.
2547
2548 2001-01-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2549
2550         * lang.c (lang_decode_option): Change -MA to -MP.
2551         * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
2552         Update to new prototype; do quote targets.
2553         (jcf_dependency_write): Update.
2554
2555 2000-12-22  Bryce McKinlay  <bryce@albatross.co.nz>
2556
2557         Shorten primitive array allocation path:
2558         * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
2559         to create new primitive arrays.
2560         * expr.c (build_newarray): If generating native code, call
2561         soft_newarray_node with a reference to the primitive TYPE identifier
2562         instead of type_value.
2563
2564 2000-12-17  Bryce McKinlay  <bryce@albatross.co.nz>
2565
2566         Fix for PRs gcj/312 and gcj/253:
2567         * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
2568         dest if they arn't already.
2569         * class.c (layout_class): Call maybe_layout_super_class on
2570         superinterfaces also, but only if compiling from bytecode.
2571
2572         Fix for PR gcj/373:
2573         * parse.y (create_class): Set ACC_STATIC if class is declared in an
2574         interface.
2575
2576 2000-12-15  Tom Tromey  <tromey@redhat.com>
2577
2578         * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
2579         set.
2580
2581 2000-12-14  Andrew Haley  <aph@redhat.com>
2582
2583         * boehm.c (mark_reference_fields): Change test to correctly detect
2584         bitmap overflow.
2585
2586 2000-12-15  Andreas Jaeger  <aj@suse.de>
2587
2588         * config-lang.in (lang_dirs): Added.
2589
2590 2000-12-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2591
2592         * parse.y (end_artificial_method_body): Fixed undefined behavior.
2593         Credits go to rth for finding it.
2594
2595 2000-12-13  Mike Stump  <mrs@wrs.com>
2596
2597         * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
2598
2599 2000-11-07  Tom Tromey  <tromey@cygnus.com>
2600
2601         * Make-lang.in (JAVA_LEX_C): Added chartables.h.
2602         * lex.c (java_ignorable_control_p): Removed.
2603         (java_letter_or_digit_p): Removed.
2604         (java_start_char_p): New function.
2605         (java_read_char): Return `int', not `unicode_t'.  Changed
2606         callers.
2607         (java_read_unicode): Likewise.
2608         (java_read_unicode_collapsing_terminators): Likewise.
2609         (java_get_unicode): Likewise.
2610         (java_new_lexer): Initialize hit_eof.
2611         (java_parse_end_comment): Take `int' argument.
2612         (java_parse_doc_section): Likewise.
2613         (java_parse_escape_sequence): Don't allow backlash-newline.
2614         Return `int'.
2615         * lex.h (JAVA_DIGIT_P): Removed.
2616         (_JAVA_LETTER_OR_DIGIT_P): Removed.
2617         (_JAVA_IDENTIFIER_IGNORABLE): Removed.
2618         (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
2619         (JAVA_PART_CHAR_P): New macro.
2620         (UEOF): Now -1.
2621         (JAVA_CHAR_ERROR): Now -2.
2622         (java_lexer): New field `hit_eof'.
2623         * chartables.h: New file.
2624         * gen-table.pl: new file.
2625
2626 2000-11-20  Tom Tromey  <tromey@cygnus.com>
2627             Alexandre Petit-Bianco  <apbianco@cygnus.com>
2628
2629         * parse.y (java_complete_lhs): Only allow compound assignment of
2630         reference type if type is String.
2631
2632 2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2633
2634         * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
2635         jcf-path.c: Likewise.
2636
2637 2000-12-09  Anthony Green  <green@redhat.com>
2638
2639         * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
2640         filestart and filename_length as int values.
2641
2642 2000-12-07  Mo DeJong  <mdejong@redhat.com>
2643
2644         * jcf-io.c (find_class): Correct the logic that tests to see if a
2645         .java file is newer than its .class file. The compiler was
2646         incorrectly printing a warning when file mod times were equal.
2647
2648 2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
2649
2650         * jvgenmain.c: Use ISPRINT not isascii.
2651
2652 2000-12-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2653
2654         * parse.y (end_artificial_method_body): Fixed typo.
2655
2656 2000-12-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2657
2658         * parse.y (patch_method_invocation): Pick the correct enclosing
2659         context when creating inner class instances.
2660         Fixes gcj/332.
2661
2662 2000-11-26  Joseph S. Myers  <jsm28@cam.ac.uk>
2663
2664         * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
2665         Update copyright year to 2000.
2666
2667 2000-11-23  Anthony Green  <green@redhat.com>
2668
2669         * jcf-parse.c (init_jcf_parse): Register current_file_list root.
2670         Move current_file_list out of yyparse and make it static.
2671
2672         * expr.c: Declare quick_stack and tree_list_free_list as static
2673         (init_expr_processing): Register quick_stack and
2674         tree_list_free_list roots.
2675
2676 2000-11-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2677
2678         * parse.y (build_outer_field_access): New local `decl_ctx', use
2679         it. Check for field's context and current class immediate outer
2680         context inheritance.
2681         (outer_field_access_p): Consider fields inherited from the last
2682         enclosing context.
2683         (build_access_to_thisn): Stop at the last enclosing context if
2684         necessary.
2685         Fixes gcj/367.
2686
2687 Thu Nov 23 02:19:14 2000  J"orn Rennecke <amylaar@redhat.com>
2688
2689         * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
2690
2691 2000-11-22  Bryce McKinlay  <bryce@albatross.co.nz>
2692
2693         * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
2694         scratch buffer.
2695
2696 2000-11-20  Tom Tromey  <tromey@cygnus.com>
2697
2698         * jv-scan.c (help): Document --complexity.
2699         (options): Added --complexity.
2700         (flag_complexity): New global.
2701         (main): Call `report'.
2702         * parse-scan.y (complexity): New global.
2703         (if_then_statement, if_then_else_statement,
2704         if_then_else_statement_nsi, switch_block_statement_group,
2705         while_expression, do_statement, for_begin, continue_statement,
2706         throw_statement, catch_clause, finally, method_invocation,
2707         conditional_and_expression, conditional_or_expression,
2708         conditional_expression): Update complexity.
2709         (reset_report): Reset complexity.
2710         (report): New function.
2711
2712 2000-11-20  Tom Tromey  <tromey@cygnus.com>
2713
2714         * lex.c (yylex): Added STRICT_TK case.
2715         * parse.y (STRICT_TK): Added.
2716         * parse-scan.y (STRICT_TK): Added.
2717         * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
2718         `;'.  Use 4, not 3, with -k option.  Correctly rename resulting
2719         file.
2720         * keyword.h: Rebuilt.
2721         * keyword.gperf (strictfp): Added.
2722
2723 2000-11-20  Tom Tromey  <tromey@cygnus.com>
2724
2725         * lex.c (yylex): Recognize floating point constants with leading
2726         0.
2727
2728 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2729
2730         * java-tree.h (cyclic_inheritance_report): Constify.
2731         * parse.y (cyclic_inheritance_report): Likewise.
2732
2733 2000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
2734
2735         * parse.y (goal): Remove call to ggc_add_string_root.
2736
2737 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
2738
2739         * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
2740         Create string in scratch buffer, then pass to build_string.
2741
2742 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
2743
2744         * parse.y (issue_warning_error_from_context): Add
2745         ATTRIBUTE_PRINTF.
2746
2747 2000-11-11  Anthony Green  <green@redhat.com>
2748
2749         * jcf-parse.c (process_zip_dir): Add finput parameter.
2750         (jcf_figure_file_type): Call process_zip_dir with appropriate
2751         argument.
2752
2753 2000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2754
2755         * decl.c (copy_lang_decl): Use memcpy, not bcopy.
2756         * jcf-parse.c (jcf_figure_file_type): Likewise.
2757
2758 2000-11-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2759
2760         * parse.y (create_new_parser_context): Use memset () instead of
2761         bzero ().
2762
2763 2000-11-08  Tom Tromey  <tromey@cygnus.com>
2764
2765         * gjavah.c (process_file): Only include gcj/cni.h when generating
2766         CNI stubs.
2767
2768 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2769
2770         * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
2771         (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
2772         instead of bzero ().
2773
2774 2000-11-05  Tom Tromey  <tromey@cygnus.com>
2775
2776         * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
2777         * lex.c (IS_ZERO): New define.
2778         (java_perform_atof): Error on floating point underflow.
2779
2780 2000-11-04  Tom Tromey  <tromey@cygnus.com>
2781
2782         * lex.c (java_parse_escape_sequence): Only read two octal
2783         characters if the first one is greater than 3.  Don't allow
2784         "octal" numbers to include the digits 8 or 9.
2785
2786 2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
2787
2788         * Make-lang.in (java.distdir): Remove.
2789
2790 2000-11-03  Tom Tromey  <tromey@cygnus.com>
2791
2792         * Make-lang.in (java.dvi): New target.
2793         Partial fix for PR other/567.
2794
2795         * lang-options.h: Mention -Wout-of-date.
2796         * jcf-dump.c (flag_newer): New global.
2797         * gjavah.c (flag_newer): New global.
2798         * jcf-io.c (find_class): Only warn when flag_newer set.
2799         * lang.c (flag_newer): New global.
2800         (struct string_option): New declaration.
2801         (lang_W_options): New global.
2802         (process_option_with_no): New function.
2803         (lang_decode_option): Use it.
2804
2805         * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
2806         * gjavah.c (cxx_keyword_subst): Handle any number of trailing
2807         `$'.
2808
2809         * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
2810         (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
2811         * lex.c (java_read_unicode): Removed `term_context' argument.
2812         Recognize any number of `u' in `\u'.
2813         (java_read_unicode_collapsing_terminators): New function.
2814         (java_get_unicode): Use it.
2815         (java_lineterminator): Removed.
2816         (yylex): Produce error if character literal is newline or single
2817         quote.  Return if eof found in middle of `//' comment.  EOF in
2818         `//' comment is only an error if pedantic.
2819         (java_ignorable_control_p): New function.
2820         (java_parse_end_comment): Return if eof found in middle of
2821         comment.
2822         Include flags.h.
2823         * jv-scan.c (pedantic): New global.
2824
2825 2000-10-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2826
2827         * parse.y (outer_field_access_p): Inherited fields aren't
2828         consider outer fields.
2829         (maybe_build_thisn_access_method): Use
2830         PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
2831         (resolve_expression_name): Trigger an error if a static field
2832         is being accessed as an outer field.
2833
2834 2000-10-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2835
2836         * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
2837         Fixes gcj/365.
2838
2839 2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
2840
2841         * Make-lang.in: Move all build rules here from Makefile.in,
2842         adapt to new context.  Wrap all rules that change the current
2843         directory in parentheses.  Expunge all references to $(P).
2844         When one command depends on another and they're run all at
2845         once, use && to separate them, not ;.  Add OUTPUT_OPTION to
2846         all object-file generation rules.  Delete obsolete variables.
2847
2848         * Makefile.in: Delete.
2849         * config-lang.in: Delete outputs= line.
2850
2851 2000-10-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2852
2853         * parse.y (patch_method_invocation): NULLify this_arg when already
2854         inserted.
2855         (maybe_use_access_method): Handle call to methods unrelated to the
2856         current class. Fixed comment.
2857         Fixes gcj/361.
2858
2859 2000-10-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2860
2861        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
2862        scope.
2863
2864 2000-10-24  Tom Tromey  <tromey@cygnus.com>
2865
2866         * lex.c (java_new_lexer): Initialize new fields.  Work around
2867         broken iconv() implementations.
2868         (java_read_char): Swap bytes if required.  Use fallback decoder if
2869         required.
2870         (byteswap_init, need_byteswap): New globals.
2871         (java_destroy_lexer): Only close iconv handle if it is in use.
2872         * lex.h (java_lexer): New fields read_anything, byte_swap,
2873         use_fallback.
2874         Made out_buffer unsigned.
2875
2876 2000-10-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2877
2878         * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
2879         where an enclosing context can be set on the jdep.
2880         (do_resolve_class): Fixed identation.
2881
2882 2000-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2883
2884         * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
2885
2886         * jcf-reader.c (peek_attribute, skip_attribute): Only define
2887         when requested.
2888
2889         * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
2890
2891         * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
2892
2893 2000-10-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2894
2895         * jcf-write.c (OP1): Update `last_bc'.
2896         (struct jcf_block): Fixed indentation and typo in comments.  New
2897         field `last_bc'.
2898         (generate_bytecode_insns): Insert `nop' if `jsr' immediately
2899         follows `monitorenter'.
2900         * parse.y (patch_synchronized_statement): New local `tmp'. Call
2901         `patch_string'.
2902         Fixes gcj/232.
2903
2904 2000-10-16  Tom Tromey  <tromey@cygnus.com>
2905
2906         * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
2907         * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
2908         * lang-options.h: Added -MA, -MT, -MF..
2909         * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
2910         (DEPEND_TARGET_SET): New macro.
2911         (DEPEND_FILE_ALREADY_SET): Likewise.
2912         (init_parse): Handle new flags.
2913         * jcf.h (jcf_dependency_print_dummies): Declare.
2914         * Make-lang.in (s-java): Added mkdeps.o.
2915         * Makefile.in (BACKEND): Added mkdeps.o.
2916         (../gcjh$(exeext)): Added mkdeps.o.
2917         (../jcf-dump$(exeext)): Added mkdeps.o.
2918         * jcf-depend.c: Include mkdeps.h.
2919         (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
2920         add_entry): Removed.
2921         (jcf_dependency_reset): Rewrote.
2922         (dependencies): New global.
2923         (jcf_dependency_set_target): Rewrote.
2924         (jcf_dependency_add_target): Likewise.
2925         (jcf_dependency_add_file): Likewise.
2926         (munge): Removed.
2927         (print_ents): Removed.
2928         (jcf_dependency_write): Rewrote.
2929         (print_dummies): New global.
2930         (jcf_dependency_print_dummies): New function
2931         (jcf_dependency_write): Call deps_dummy_targets if required.
2932
2933 2000-10-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2934
2935         * gjavah.c (add_class_decl): Removed unused variables `tname',
2936         `tlen' and `name_index'.
2937         * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
2938         * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
2939         in `wfl_operator' with value.
2940         (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
2941         (jcf_figure_file_type): Fixed identation.
2942         * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
2943         * parse.y (analyze_clinit_body): New function.
2944         (static_initializer:): Reset `current_static_block'.
2945         (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
2946         `wfl_operator' with new value.
2947         (lookup_cl): Use EXPR_WFL_FILENAME.
2948         (maybe_yank_clinit): Handle bogus <clinit> bodies, call
2949         analyze_clinit_body.
2950         (build_outer_field_access): Access to this$<n> built from
2951         current_class, not its outer context.
2952         (build_access_to_thisn): Fixed leading comment. Tidied things up.
2953         (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
2954         (patch_method_invocation): Use `is_static_flag' when already
2955         initialized.
2956         (patch_newarray): Removed assignment in ternary operator.
2957
2958 2000-10-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2959
2960         * except.c (free_eh_ranges): Don't free `whole_range'.
2961
2962 2000-10-15  Anthony Green  <green@redhat.com>
2963
2964         * decl.c (init_decl_processing): Call init_class_processing before
2965         anything else.
2966
2967 2000-10-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2968
2969         * check-init.c (check_init): Fixed leading comment. Use
2970         LOCAL_FINAL_P.
2971         * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
2972         (give_name_to_locals): Likewise.
2973         (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
2974         fields in lang_decl_var.
2975         * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
2976         DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
2977         (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
2978         (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
2979         DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
2980         (LOCAL_FINAL): Rewritten.
2981         (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
2982         MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
2983         (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
2984         `init_final' fields.
2985         (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
2986         `final_uid', `final_liic', `final_ierr' and `local_final' fields.
2987         (TYPE_HAS_FINAL_VARIABLE): New macro.
2988         (struct lang_type): Added `afv' field.
2989         * parse.y (check_static_final_variable_assignment_flag): New function.
2990         (reset_static_final_variable_assignment_flag): Likewise.
2991         (check_final_variable_local_assignment_flag): Likewise.
2992         (reset_final_variable_local_assignment_flag): Likewise.
2993         (check_final_variable_indirect_assignment): Likewise.
2994         (check_final_variable_global_assignment_flag): Likewise.
2995         (add_inner_class_fields): Use LOCAL_FINAL_P.
2996         (register_fields): Handle local finals and final variables.
2997         (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
2998         (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
2999         (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
3000         on local finals.
3001         (java_complete_expand_methods): Loop to set
3002         TYPE_HAS_FINAL_VARIABLE. Call
3003         `reset_final_variable_local_assignment_flag' and
3004         `check_final_variable_local_assignment_flag' accordingly before
3005         and after constructor expansion. Call
3006         `reset_static_final_variable_assignment_flag'
3007         before expanding <clinit> and after call
3008         `check_static_final_variable_assignment_flag' if the
3009         current_class isn't an interface. After all methods have been
3010         expanded, call `check_final_variable_global_assignment_flag' and
3011         `check_static_final_variable_assignment_flag' if the current class
3012         is an interface.
3013         (maybe_yank_clinit): Fixed typo in comment.
3014         (build_outer_field_access_methods): Removed old sanity check. Use
3015         FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
3016         Don't create access methods for finals.
3017         (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
3018         (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
3019         existing DECL_INIT has been processed.
3020         (java_complete_lhs): Likewise.
3021         (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
3022         Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
3023         logic.
3024         (patch_assignment): Use LOCAL_FINAL_P.
3025         (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
3026         DECL_INITIAL is nullified.
3027         Fixes gcj/163.
3028
3029 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3030
3031         * Make-lang.in (parse.c, parse-scan.c): Create atomically.
3032
3033         * Makefile.in (parse.c, parse-scan.c): Likewise.
3034
3035 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
3036
3037         * class.c (temporary_obstack): Remove.
3038         (make_class): Don't mess with obstascks.
3039         (push_class): Likewise.
3040         (set_super_info): Likewise.
3041         (add_method_1): Likewise.
3042         (add_method): Likewise.
3043         (add_field): Likewise.
3044         (build_utf8_ref): Likewise.
3045         (build_class_ref): Likewise.
3046         (build_static_field_ref): Likewise.
3047         (finish_class): Likewise.
3048         (push_super_field): Likewise.
3049         (layout_class): Likewise.
3050         (layout_class_methods): Likewise.
3051         (init_class_processing): Likewise.
3052         * constants.c (get_tag_node): Likewise.
3053         (build_constant_data_ref): Likewise.
3054         * decl.c (ggc_p): Remove.
3055         (copy_lang_decl): Use ggc_alloc.
3056         (complete_start_java_method): Don't mess with obstacks.
3057         (start_java_method): Likewise.
3058         (end_java_method): Likewise.
3059         * except.c (link_handler): Use xmalloc.
3060         (free_eh_ranges): New function.
3061         (method_init_exceptions): Use it.
3062         (add_handler): Use xmalloc.
3063         (expand_start_java_handler): Don't mess with obstacks.
3064         (prepare_eh_table_type): Likewise.
3065         (expand_end_java_handler): Likewise.
3066         * expr.c (push_value): Likewise.
3067         (create_label_decl): Likewise.
3068         (build_jni_stub): Likewise.
3069         (java_lang_expand_expr): Likewise.
3070         (note_instructions): Use xrealloc.
3071         (java_push_constant_from_pool): Don't mess with obstacks.
3072         (process_jvm_instruction): Likewise.
3073         * java-tree.h (cyclic_inheritance_report): Remove duplicate
3074         declaration.
3075         * jcf-parse.c (get_constant): Don't mess with obstacks.
3076         (read_class): Likewise.
3077         (jcf_parse): Likewise.
3078         * lex.c (expression_obstack): Remove.
3079         (java_lex): Don't use obstack_free.
3080         * parse.h (exit_java_complete_class): Don't mess with obstacks.
3081         (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
3082         (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
3083         (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
3084         * parse.y (gaol): Add more GC roots.
3085         (add_inner_class_fields): Adjust calls to MANGLE_* macros.
3086         (lookup_field_wrapper): Likewise.
3087         (obtain_incomplete_type): Don't mess with obstacks.
3088         (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
3089         macros.
3090         (craft_constructor): Don't mess with obstacks.
3091         (safe_layout_class): Likewise.
3092         (java_complete_class): Likewise.
3093         (source_end_java_method): Likewise.
3094         (build_outer_field_access_methods): Likewise.
3095         (build_outer_method_access_method): Likewise.
3096         (maybe_build_thisn_access_method): Likewise.
3097         (build_dot_class_method_invocation): Likewise.
3098         (java_complete_tree): Likewise.
3099         (java_complete_lhs): Likewise.
3100         (do_merge_string_cste): Likewise.
3101         (patch_string_cst): Likewise.
3102         (array_constructor_check_entry): Likewise.
3103         * typeck.c (build_java_array_type): Likewise.
3104         (parse_signature_string): Likewise.
3105         (build_java_signature): Likewise.
3106
3107 2000-10-12  Tom Tromey  <tromey@cygnus.com>
3108
3109         Fix for PR gcj/356:
3110         * gjavah.c (add_class_decl): Don't special-case inner classes.
3111         (add_namelet): Likewise.
3112
3113 2000-10-11  Rodney Brown  <RodneyBrown@mynd.com>
3114
3115         * java-tree.h: Constify current_encoding.
3116         * lang.c: Constify current_encoding.
3117
3118 2000-10-10  Jeff Sturm  <jeff.sturm@appnet.com>
3119
3120         * jvgenmain.c (class_mangling_suffix): Omit `.'.
3121         (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
3122
3123 2000-10-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3124
3125         * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
3126         patch. Fixes gcj/340.
3127
3128 2000-10-10  Tom Tromey  <tromey@cygnus.com>
3129
3130         * lex.c (java_new_lexer): Initialize out_first and out_last
3131         fields.
3132         * lex.h (java_lexer): Added out_buffer, out_first, out_last.
3133
3134 2000-10-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3135
3136         * parse.y (pop_current_osb): New function.
3137         (array_type:): Use `dims:', changed actions
3138         accordingly. Suggested by Anthony Green.
3139         (array_creation_expression:): Used pop_current_osb.
3140         (cast_expression:): Likewise.
3141         (search_applicable_method_list): Fixed indentation.
3142
3143 2000-10-08  Anthony Green  <green@redhat.com>
3144
3145         * parse.y (array_type_literal): Remove production.
3146         (type_literals): Refer to array_type, not array_type_literal.
3147
3148 2000-10-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3149
3150         Patch contributed by Corey Minyard.
3151         * decl.c (check_local_named_variable): New function.
3152         (tree check_local_unnamed_variable): Likewise.
3153         (find_local_variable): Splitted. Call check_local_{un}named_variable.
3154
3155 2000-10-07  Anthony Green  <green@redhat.com>
3156
3157         * class.c (layout_class): Handle case where superclass can't be
3158         layed out yet.
3159
3160 2000-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3161
3162         * Makefile.in (keyword.h): Refer to GNU FTP site for updated
3163         gperf.
3164
3165 2000-10-05  Tom Tromey  <tromey@cygnus.com>
3166
3167         * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
3168         * jvgenmain.c (class_mangling_prefix): Removed.
3169         (class_mangling_suffix): New global.
3170         (main): Use it.
3171         * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
3172         `$'.
3173         (print_method_info): Handle overrides for static and final
3174         methods.
3175         (process_file): Generate declaration for class object field.
3176         * class.c (cxx_keywords): New array.
3177         (utf8_cmp): New function.
3178         (cxx_keyword_p): New function.
3179         (layout_class_method): Mangle C++ keywords by appending `$'.
3180         (mangle_field): New function.
3181         (mangle_class_field): Use mangle_field.  Mangle class name as
3182         `class$'.
3183         (mangle_static_field): Use mangle_field.
3184
3185 Tue Oct  3 13:44:37 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3186
3187         * decl.c (find_local_variable): Removed uncessary type check and
3188         fixed range check typo. From Corey Minyard.
3189
3190 Wed Sep 13 16:06:52 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3191
3192         * decl.c (give_name_to_locals): New local `code_offset'. Call
3193         `maybe_adjust_start_pc'.
3194         * expr.c (note_instructions): New function.
3195         (expand_byte_code): Don't collect insn starts here.
3196         (peek_opcode_at_pc): New function.
3197         (maybe_adjust_start_pc): Likewise.
3198         * java-tree.h (maybe_adjust_start_pc): Declare.
3199         (note_instructions): Likewise.
3200         * jcf-parse.c (parse_class_file): Call `note_instructions'.
3201
3202 Wed Sep 13 11:50:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3203
3204         * parse.y (field_access:): Fixed indentation.
3205         (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
3206
3207 2000-09-07  Tom Tromey  <tromey@cygnus.com>
3208
3209         Fix for PR gcj/307:
3210         * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
3211         JPRIMITIVE_TYPE_P, for arithmetic operators.
3212         (patch_method_invocation): Indentation fix.
3213         (try_builtin_assignconv): Handle boolean specially.  Fixed typo.
3214         (valid_builtin_assignconv_identity_widening_p): Handle boolean.
3215         (do_unary_numeric_promotion): Cleaned up code.
3216         (valid_cast_to_p): Handle boolean correctly.
3217
3218 2000-09-27  Tom Tromey  <tromey@cygnus.com>
3219
3220         * lex.c (java_read_unicode): Reset bs_count when finished with
3221         `\u' sequence.
3222
3223 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
3224
3225         Convert to GC.
3226         * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
3227         * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
3228         (typeck.o): Depend on ggc.h.
3229         * class.c (add_method_1): Use GC functions for allocation.
3230         (init_class_processing): Register roots.
3231         * decl.c (ggc_p): Set to 1.
3232         (pending_local_decls): Make it static.
3233         (push_jvm_slot): Use GC functions for allocation.
3234         (init_decl_processing): Register roots.
3235         (give_name_to_locals): Use GC functions for allocation.
3236         (lang_mark_tree): New function.
3237         * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
3238         functions for allocation.
3239         * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
3240         * lex.c (java_lex): Use build_string, rather than replicating it
3241         inline.
3242         * parse.y (goal): Add more roots.
3243         (mark_parser_ctxt): New function.
3244         * typeck.c: Include ggc.h.
3245
3246 2000-09-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3247
3248         * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
3249         contains something else than MODIFY_EXPR.
3250
3251 2000-09-23  Mark Mitchell  <mark@codesourcery.com>
3252
3253         * Make-lang.in (JAVA_SRCS): Include java-tree.h.
3254         * Makefile.in (parse.o): Depend on ggc.h.
3255         (class.o): Likewise.
3256         (constants.o): Likewise.
3257         (decl.o): Likewise.
3258         (expr.o): Likewise.
3259         (jcf-parse.o): Likewise.
3260         (jcf-write.o): Likewise.
3261         (mangle.o): Likewise.
3262         * class.c: Include ggc.h.
3263         (build_static_field_ref): Register GC roots.
3264         (layout_class): Likewise.
3265         (init_class_processing): Likewise.
3266         * constants.c: Include ggc.h.
3267         (current_constant_pool_data_ref): Remove.
3268         (tag_nodes): Move it to ...
3269         (get_tag_node): ... here.  Register GC roots.
3270         * decl.c: Include ggc.h.  Remove many global tree definitions.
3271         (throw_node): Define.
3272         (java_global_trees): Likewise.
3273         (predef_filenames): Make the size a constant.
3274         (init_decl_processing): Adjust accordingly.
3275         (init_decl_processing): Call init_jcf_parse.  Register GC roots.
3276         * expr.c: Include ggc.h.
3277         (init_expr_processing): Register GC roots.
3278         (build_invokeinterface): Likewise.
3279         * java-tree.h: Replace extern tree declarations with macros.
3280         (java_global_trees): New variable.
3281         (java_tree_index): New enumeration.
3282         (init_jcf_parse): Declare.
3283         * jcf-parse.c: Include ggc.h.
3284         (current_class): Remove declaration.
3285         (main_class): Likewise.
3286         (all_class_list): Likewise.
3287         (predefined_filename_p): Adjust for constant size of
3288         predef_filenames.
3289         (init_jcf_parse): New function.
3290         * jcf-write.c: Include ggc.h.
3291         (generate_classfile): Register GC roots.
3292         (append_synthetic_attribute): Likewise.
3293         (append_innerclass_attribute_entry): Likewise.
3294         * lang.c: Include ggc.h.
3295         (lang_print_error): Register GC roots.
3296         * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
3297         with macros.
3298         * parse.y: Include ggc.h.
3299         (wfl_operator): Remove.
3300         (goal): Register GC roots.
3301         (java_pop_parser_context): Adjust for new field names.
3302         (java_parser_context_save_global): Likewse.
3303         (java_parser_context_restore_global): Likewise.
3304         (java_parser_context_suspend): Likewise.
3305         (java_parser_context_resume): Likewise.
3306         (verify_constructor_circularity): Register GC roots.
3307         (lookup_cl): Likewise.
3308         (java_reorder_fields): Likewise.
3309         (build_current_this): Likewise.
3310         (class_in_current_package): Likewise.
3311         (argument_types_convertible): Likewise.
3312         (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
3313
3314 2000-09-14  Tom Tromey  <tromey@cygnus.com>
3315
3316         * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
3317
3318 2000-09-13  Tom Tromey  <tromey@cygnus.com>
3319
3320         * jcf-parse.c: Include <locale.h>.
3321         * jv-scan.c: Include <locale.h>.
3322
3323 2000-09-12  Tom Tromey  <tromey@cygnus.com>
3324
3325         * expr.c (pop_type_0): Return `Object' if trying to merge two
3326         interface types.
3327         * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
3328         interface types; `Object' is always a valid supertype.
3329
3330 2000-09-12  Tom Tromey  <tromey@cygnus.com>
3331
3332         Fix for PR gcj/33:
3333         * jv-scan.c (help): Document --encoding.
3334         (options): Added `encoding' entry.
3335         (OPT_ENCODING): New define.
3336         (main): Handle --encoding.
3337         Include <langinfo.h> if nl_langinfo exists.
3338         * lang-options.h: Document --classpath, --CLASSPATH, --main, and
3339         --encoding.
3340         * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
3341         (parse_source_file): Correctly call java_init_lex.  Added `finput'
3342         argument.  Use nl_langinfo to determine default encoding.
3343         * java-tree.h (current_encoding): Declare.
3344         * parse.y (java_parser_context_restore_global): Don't restore
3345         `finput'.
3346         (java_parser_context_save_global): Don't set `finput' field.
3347         (java_pop_parser_context): Don't restore `finput'.  Free old lexer
3348         if required.
3349         * lang.c (current_encoding): New global.
3350         (lang_decode_option): Recognize `-fencoding='.
3351         (finish_parse): Don't close finput.
3352         * parse.h (struct parser_ctxt): Removed `finput' and
3353         `unget_utf8_value' fields.  Added `lexer' field.
3354         (java_init_lex): Fixed declaration.
3355         * lex.c (java_new_lexer): New function.
3356         (java_destroy_lexer): Likewise.
3357         (java_read_char): Added `lex' argument.  Handle iconv case.
3358         (java_read_unicode): Added `lex' argument.  Count backslashes in
3359         lexer structure.
3360         (java_init_lex): Added `finput' and `encoding' arguments.  Set
3361         `lexer' field in ctxp.
3362         (BAD_UTF8_VALUE): Removed.
3363         (java_lex): Handle seeing UEOF in the middle of a string literal.
3364         * lex.h: Include <iconv.h> if HAVE_ICONV defined.
3365         (java_lexer): New structure.
3366         (UNGETC): Removed.
3367         (GETC): Removed.
3368         (DEFAULT_ENCODING): New define.
3369         (java_destroy_lexer): Declare.
3370
3371 2000-09-12  Tom Tromey  <tromey@cygnus.com>
3372
3373         Fix for PR gcj/343:
3374         * lex.c (java_init_lex): Initialize java_io_serializable.
3375         * parse.y (java_io_serializable): New global.
3376         (valid_ref_assignconv_cast_p): An array can be cast to
3377         serializable.
3378
3379 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
3380
3381         * decl.c, expr.c: Include defaults.h if not already included.
3382         Don't define the *_TYPE_SIZE macros.
3383
3384 2000-09-09  Geoffrey Keating  <geoffk@cygnus.com>
3385
3386         * typeck.c (build_java_array_type): Correct first parameter
3387         in ADJUST_FIELD_ALIGN invocation.
3388
3389 2000-09-06  Tom Tromey  <tromey@cygnus.com>
3390
3391         * lang-specs.h: Also recognize `-femit-class-files'.
3392
3393 2000-09-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3394
3395         * verify.c (merge_types): Load the types to merge if necessary.
3396
3397 2000-09-02  Anthony Green  <green@redhat.com>
3398
3399         * jcf-io.c: Include zlib.h.
3400         (open_in_zip): Read compressed class file archives.
3401         * zipfile.h (ZipDirectory): Add uncompressed_size and
3402         compression_method fields.
3403         * zextract.c (read_zip_archive): Collect file compression info.
3404
3405 2000-08-15  Bryce McKinlay  <bryce@albatross.co.nz>
3406
3407         * parse.y (do_resolve_class): Also explore superclasses of
3408         intermediate enclosing contexts when searching for inner classes.
3409
3410 2000-08-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3411
3412         * parse.y (variable_declarator_id:): Better error message.
3413         (expression_statement:): Use YYNOT_TWICE.
3414         (cast_expression:): Likewise.
3415         (assignment:): Likewise.
3416
3417 2000-08-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3418
3419         * parse.y (do_merge_string_cste): New locals. Create new
3420         STRING_CSTs each time, use memcpy. Fixes gcj/311.
3421
3422 2000-08-07  Hans Boehm  <boehm@acm.org>
3423
3424         * boehm.c (mark_reference_fields): Set marking bits for all words in
3425         a multiple-word record.
3426         (get_boehm_type_descriptor): Use the procedure marking descriptor for
3427         java.lang.Class.
3428
3429 2000-08-31  Mike Stump  <mrs@wrs.com>
3430
3431         * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
3432         jcf-dump$(exeext)): Make parallel safe.
3433
3434 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
3435
3436         * jcf-parse.c (set_source_filename): Constify a char *.
3437         * jcf-write.c (append_innerclasses_attribute,
3438         make_class_file_name): Constify a char *.  Don't recycle a
3439         variable for an unrelated purpose.
3440         * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
3441         (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
3442
3443 2000-08-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3444
3445         * expr.c (can_widen_reference_to): Fixed indentation.
3446         * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
3447         * parse.y: `finit$' replaces `$finit$' in comments.
3448         (try_builtin_assignconv): Fixed leading comment.
3449
3450 2000-08-25  Greg McGary  <greg@mcgary.org>
3451
3452         * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
3453
3454 2000-08-24  Greg McGary  <greg@mcgary.org>
3455
3456         * lang.c (lang_decode_option): Use ARRAY_SIZE.
3457         * parse.y (BINOP_LOOKUP): Likewise.
3458
3459 2000-08-22  Andrew Haley  <aph@cygnus.com>
3460
3461         * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
3462         sign extending. Fixes gcj/321.
3463         * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
3464         combining to make a jlong. Fixes gcj/321.
3465
3466 2000-08-21  Nix  <nix@esperi.demon.co.uk>
3467
3468         * lang-specs.h: Do not process -o or run the assembler if
3469         -fsyntax-only.
3470
3471 2000-08-16  Andrew Haley  <aph@cygnus.com>
3472
3473         * typeck.c (build_java_array_type): Rewrite code to do array
3474         alignment.  Take into account back-end macros when aligning array
3475         data.  Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
3476         user to set alignment. Fixes gcj/252 and 160.
3477
3478 2000-08-09  Tom Tromey  <tromey@cygnus.com>
3479
3480         * parse.y (check_abstract_method_definitions): Now return `int'.
3481         Check implemented interfaces.  Fixes PR gcj/305.
3482
3483         * parse.y (patch_switch_statement): Disallow `long' in switch
3484         expressions.  Fixes PR gcj/310.
3485
3486 2000-08-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3487
3488         * decl.c (finit_leg_identifier_node): New global.
3489         (init_decl_processing): Use `finit$' to initialize
3490         finit_identifier_node. Use `$finit$' to initialize
3491         finit_leg_identifier_node.
3492         * expr.c (expand_java_field_op): Use ID_FINIT_P.
3493         * java-tree.h (finit_identifier_node): Changed attached comment.
3494         (finit_leg_identifier_node): New declaration.
3495         (ID_FINIT_P): Take finit_identifier_node and
3496         finit_leg_identifier_node into account. This is a backward
3497         compatibility hack.
3498
3499 2000-08-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3500
3501         * jcf-write.c (generate_bytecode_conditional): Re-installed lost
3502         Jan 6 2000 patch.
3503         (generate_bytecode_insns): Check `nargs' before emitting it.
3504         * verify.c (merge_type_state): Fixed typo.
3505         * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
3506         generate_bytecode_{conditional,insns}.
3507
3508 Sun Aug 13 09:41:49 2000  Anthony Green  <green@redhat.com>
3509
3510         * check-init.c (check_init): Add case for BIT_FIELD_REF (required
3511         for -pg builds).
3512
3513 2000-08-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3514
3515         * class.c (maybe_layout_super_class): Fixed indentation.
3516         * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
3517         (java_check_methods): New function declaration.
3518         * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
3519         instead of `str_ptr'.
3520         * jcf-write.c (generate_bytecode_insns): Emit number the of args
3521         of a `invokeinterface' at the right time.
3522         * parse.h (WFL_STRIP_BRACKET): New macro.
3523         (SET_TYPE_FOR_RESOLUTION): Use it.
3524         * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
3525         (check_class_interface_creation): Don't check for cross package
3526         innerclass name clashes.
3527         (method_header): Behave properly if MDECL is `error_mark_node'.
3528         (method_declarator): Return `error_mark_node' if bogus current
3529         class.
3530         (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
3531         (resolve_and_layout): New local `decl_type', set and used. Call
3532         java_check_methods.
3533         (java_check_methods): New method.
3534         (java_layout_classes): Use it.
3535         (resolve_qualified_expression_name): No EH check necessary in
3536         access$<n>.
3537         (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
3538         `case' statement.
3539         (patch_assignment): Set DECL_INITIAL on integral final local.
3540
3541 2000-08-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3542
3543         * java-tree.h (flag_extraneous_semicolon): New extern.
3544         * lang-options.h: (-Wextraneous-semicolon): New option.
3545         * lang.c (flag_redundant): Fixed typo in leading comment.
3546         (flag_extraneous_semicolon): New global.
3547         (lang_decode_option): Set `flag_extraneous_semicolon' when
3548         -Wall. Decode `-Wextraneous-semicolon'.
3549         * parse.y (type_declaration:): Removed `SC_TK' hack, added
3550         `empty_statement' rule.
3551         (class_body_declaration): Likewise.
3552         (method_body:): Accept `;' as a method body.
3553         (static_initializer:): Removed `SC_TK' hack.
3554         (constructor_block_end:): Likewise.
3555         (empty_statement:): Report deprecated empty declaration. Fixes
3556         gcj/295
3557
3558 2000-08-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3559
3560         * parse.y (build_dot_class_method_invocation): Changed parameter
3561         name to `type'. Build signature from `type' and convert it to a
3562         STRING_CST if it's an array.
3563         (patch_incomplete_class_ref): `build_dot_class_method_invocation'
3564         to use `ref_type' directly.
3565
3566 Sun Aug  6 00:47:24 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
3567
3568         * lang-options.h: Added a comma after the last element to avoid
3569         syntax errors when other languages define additional options.
3570
3571 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
3572
3573         * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
3574         * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
3575         (jc1): Link with $(BACKEND).
3576         (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
3577
3578 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
3579
3580         * jvspec.c: Adjust type of second argument to
3581         lang_specific_driver, and update code as necessary.
3582
3583         * class.c (build_dtable_decl): Initialize dummy.
3584
3585 2000-08-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3586
3587         * parse.y (maybe_yank_clinit): When generating bytecode: non empty
3588         method bodies not to rule out discarding `<clinit>'; don't use
3589         <clinit> to initialize static fields with constant initializers.
3590
3591 2000-08-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3592
3593         * gjavah.c (print_method_info): Added `synth' parameter. Skip
3594         synthetic methods.
3595         (method_synthetic): New global.
3596         (HANDLE_METHOD): Recognize synthetic method and tell
3597         `print_method_info' about it.
3598         (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
3599         processing a synthetic method.
3600         * jcf-reader.c (skip_attribute): New function.
3601         ( skip_attribute): Likewise.
3602
3603 2000-08-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3604
3605         * parse.y (build_outer_field_access): Fixed comments.
3606         (fix_constructors): Emit the initialization of this$<n> before
3607         calling $finit$.
3608         (resolve_qualified_expression_name): Build an access to `decl' if
3609         necessary.
3610
3611 2000-07-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3612
3613         * parse-scan.y (curent_class): Non longer const.
3614         (inner_qualifier, inner_qualifier_length): Deleted.
3615         (current_class_length): New global.
3616         (bracket_count): Fixed typo in leading comment.
3617         (anonymous_count): New global.
3618         (class_instance_creation_expression:): Handle anonymous classes.
3619         (anonymous_class_creation:): New rule.
3620         (push_class_context): Rewritten.
3621         (pop_class_context): Likewise.
3622         (INNER_QUALIFIER): Macro deleted.
3623         (report_class_declaration): call `push_class_context' when
3624         entering the function. `fprintf' format modified not to use
3625         INNER_QUALIFIER.
3626         (report_class_declaration): Assign `package_name' and
3627         `current_class' to NULL separately.
3628
3629 2000-07-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3630
3631         * expr.c (build_invokeinterface): Call layout_class_methods on
3632         target interface.
3633
3634 2000-07-27  Tom Tromey  <tromey@cygnus.com>
3635             Anthony Green  <green@cygnus.com>
3636             Alexandre Petit-Bianco  <apbianco@cygnus.com>
3637
3638         * class.c (make_class_data): Create vtable for abstract classes.
3639         (get_dispatch_table): Changed to cope with abstract classes.
3640
3641 2000-07-27  Tom Tromey  <tromey@cygnus.com>
3642
3643         * parse.y (patch_method_invocation): Don't reverse the argument
3644         list when dealing with anonymous class constructors. Fixed typo in
3645         comment.
3646
3647 2000-07-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3648
3649         * parse.y (build_alias_initializer_parameter_list): Reverse
3650         crafted list when building aliases for anonymous class
3651         constructors.
3652
3653 2000-07-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3654
3655         * parse.y (jdep_resolve_class): Don't bother checking potential
3656         innerclass access if `decl' is NULL.
3657         (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
3658         WFL.
3659
3660 2000-07-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3661
3662         * parse.c: Remove (again.)
3663
3664 2000-07-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3665
3666         * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
3667         * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
3668         outside the `if' statement, alias to innerclass removed, `decl'
3669         used to mark the class complete.
3670
3671 2000-07-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3672
3673         * parse.y (simple_name:): Fixed typo in error message.
3674
3675 2000-07-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3676
3677         * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
3678         or its first operand can be error marks.
3679
3680 2000-07-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3681
3682         * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
3683         * parse.y (method_header): Likewise.
3684
3685 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3686
3687         * parse.y (process_imports): Consider that one might be trying to
3688         import an innerclass. Fixes gcj/254
3689
3690 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3691
3692         * parse.y (find_as_inner_class): Handle the case where the
3693         enclosing context of an innerclass has been loaded as bytecode.
3694
3695 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3696
3697         * parse.y (simple_name:): Reject `$' in type names.
3698         (resolve_type_during_patch): Use `type' as a second
3699         argument to resolve_no_layout. Fixes gcj/257.
3700
3701 2000-07-18  Bryce McKinlay  <bryce@albatross.co.nz>
3702
3703         * parse.y (find_most_specific_methods_list): Select the only
3704         non-abstract method even if max has been set.
3705         Fixes gcj/285, gcj/298.
3706
3707 2000-07-18  Jeff Sturm  <jeff.sturm@appnet.com>
3708
3709         * lang-specs.h: Added %(jc1) to java compiler options.
3710
3711 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
3712
3713         * .cvsignore: New file.
3714
3715 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3716
3717         * parse.y (not_accessible_p): Access granted to innerclasses
3718         (indirectly) extending the reference type. Fixes gcj/249.
3719
3720 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3721
3722         * parse.y (patch_method_invocation): Fixed comment.
3723         (maybe_use_access_method): Build this$<n>s to the context of the
3724         target method, or a type that extends it. Fixes gcj/242.
3725
3726 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
3727
3728         * parse.c: Remove.
3729
3730 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3731
3732         * parse.y (fold_constant_for_init): Avoid bullish conversion.
3733
3734 2000-07-13  Tom Tromey  <tromey@cygnus.com>
3735
3736         * lang-specs.h: Added %{I*}.
3737
3738 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
3739
3740         * lang-specs.h: Use the new named specs.  Remove unnecessary braces.
3741
3742 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
3743
3744         * parse-scan.c: Remove.
3745
3746 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3747
3748         * class.c (set_super_info): Handled protected inner classes.
3749         (common_enclosing_context_p): Bail early if arguments aren't both
3750         inner classes.
3751         (get_access_flags_from_decl): Handle private and protected inner
3752         classes.
3753         * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
3754         (CLASS_PROTECTED): Likewise.
3755         (struct lang_type): New bitfield `poic'.
3756         * parse.y (jdep_resolve_class): Call check_inner_class_access on
3757         inner classes only.
3758         (check_inner_class_access): Renamed arguments, added
3759         comments. Handles protected inner classes (fixes gcj/225)
3760         (not_accessible_p): Fixed comments. Avoid handling inner classes.
3761
3762 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3763
3764         * parse.y (resolve_qualified_expression_name): Verify qualified
3765         access to `this'. Fixes gcj/239.
3766
3767 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3768
3769         * jcf-write.c (generate_classfile): Don't install ConstantValue
3770         for null pointers.
3771
3772 2000-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3773
3774         * parse.y (resolve_qualified_expression_name): Handle inner class
3775         access. Fixes gcj/256.
3776
3777 2000-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3778
3779         * jcf-write.c (generate_classfile): Properly install the
3780         ConstantValue attribute and the initial value constant pool index
3781         on string constants.
3782         * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
3783         class files.
3784
3785 2000-07-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3786
3787         * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
3788         construct.
3789         * parse.y (find_as_inner_class): Fixed typo.
3790         (do_resolve_class): Explore enclosing contexts when searching for
3791         innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
3792         (check_inner_class_access): Check `decl' which can be null in case
3793         of previous errors.
3794
3795 2000-07-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3796
3797         * java-tree.h (java_debug_context): Declared `extern'.
3798         (safe_layout_class): Likewise.
3799         * parse.y (resolve_field_access): Field must be `static' in order
3800         to be replaced by its initial value. Added comments.
3801         (find_applicable_accessible_methods_list): Fixed typo.
3802         (find_most_specific_methods_list): Methods found in innerclasses
3803         take over methods founds in the enclosing contexts.
3804         (java_complete_tree): Loosen restrictions on the type of DECLs
3805         that can be replaced by their initialization values.
3806         (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
3807
3808 2000-07-05  Tom Tromey  <tromey@cygnus.com>
3809
3810         * Make-lang.in (PARSE_DIR): New macro.
3811         (PARSE_RELDIR): Likewise.
3812         (PARSE_C): Likewise.
3813         (PARSE_SCAN_C): Likewise.
3814         ($(PARSE_C)): New target.
3815         ($(PARSE_SCAN_C)): Likewise.
3816         (SET_BISON): New macro.
3817         (BISONFLAGS): Likewise.
3818         (JAVABISONFLAGS): Likewise.
3819
3820 2000-07-02  Bryce McKinlay  <bryce@albatross.co.nz>
3821
3822         * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
3823         argument on the first pass for CNI as well as JNI.
3824         (print_method_info): Set up method name on the first pass only.
3825
3826 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3827
3828         * parse.y (parser_qualified_classname): Removed parameter
3829         `is_static'.
3830         (create_interface): Removed first passed parameter to
3831         parser_qualified_classname.
3832         (create_class): Likewise. Don't install alias on static
3833         innerclasses. Fixes gcj/275.
3834
3835 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3836
3837         * parse.y (maybe_generate_pre_expand_clinit): Don't build a
3838         debugable statement with empty_stmt_node. Fixes gcj/272
3839
3840 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3841
3842         * expr.c (build_instanceof): Layout type after it's loaded. Fixes
3843         gcj/271.
3844
3845 2000-06-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3846
3847         * jcf-write.c (push_long_const): Appropriately cast short negative
3848         constant to jword.
3849
3850 2000-06-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3851
3852         * parse.y (verify_constructor_super): Use loop variable
3853         `m_arg_type' initialized with `mdecl_arg_type'.
3854
3855 2000-06-29  Tom Tromey  <tromey@cygnus.com>
3856
3857         * parse.y (resolve_field_access): Handle case where `type_found'
3858         is NULL.
3859
3860 2000-06-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3861
3862         * expr.c (lookup_field): The same field can be found through two
3863         different interface. Don't declare it ambiguous in that case.
3864
3865 2000-06-27  Tom Tromey  <tromey@cygnus.com>
3866
3867         * lex.c (java_lineterminator): Don't recognize \r after \n.  If \r
3868         follows \r, then unget it at a lower level.
3869
3870 2000-06-26  Tom Tromey  <tromey@cygnus.com>
3871
3872         * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
3873         java_complete_tree.
3874
3875 2000-06-25  Tom Tromey  <tromey@cygnus.com>
3876
3877         * parse.y (for_statement): Wrap expression in a WFL if it is a
3878         constant.  For PR gcj/268.
3879
3880 2000-06-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3881
3882         * parse.y (do_resolve_class): Minor optimiztion in the package
3883         list search. Removed unnecessary test and return statement.
3884         (valid_ref_assignconv_cast_p): Order of arguments to
3885         enclosing_context_p fixed.
3886
3887 2000-06-24  Tom Tromey  <tromey@cygnus.com>
3888
3889         * expr.c (lookup_field): Print error and return error_mark_node if
3890         field reference is ambiguous.
3891
3892         * parse.y (check_abstract_method_definitions): Also check if
3893         `other_method' is abstract.
3894
3895 2000-06-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3896
3897         * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
3898         classes.
3899         * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
3900         (struct lang_type): New field `pic'.
3901         (CLASS_PRIVATE): New macro.
3902         * parse.y (check_inner_class_access): New function.
3903         (jdep_resolve_class): Call it.
3904
3905 2000-06-23  Tom Tromey  <tromey@cygnus.com>
3906
3907         * parse.y (patch_incomplete_class_ref): Initialize the returned
3908         class.  For PR gcj/260.
3909
3910 2000-06-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3911
3912         * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
3913
3914 2000-06-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3915
3916         * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
3917         Java specific checks.
3918         * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
3919         screened by DECL_P.
3920         * java-tree.def (CASE_EXPR): Marked 'e'.
3921         (DEFAULT_EXPR): Likewise.
3922         * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
3923         screened by DECL_P.
3924         * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
3925         Java specific checks.
3926         (generate_bytecode_insns): Test try_block for BLOCK before using
3927         BLOCK_EXPR_BODY.
3928         * parse.y (build_wfl_wrap): Added `location' argument. Set
3929         EXPR_WFL_LINECOL accordingly.
3930         (dim_expr:): Wrap constants with WFLs.
3931         (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
3932         (resolve_package): Check for `stmt' not being a BLOCK before
3933         building a debuggable statement with it.
3934         (make_qualified_primary): Added extra parameter to build_wfl_wrap
3935         invocation.
3936         (resolve_field_access): Make sure `decl' is a DECL before treating
3937         it as such.
3938         (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
3939         IDENTIFIER_NODE before treating it as such.
3940         (patch_new_array_init): Make sure `elt' is a TREE_LIST before
3941         treating it as such.
3942         (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
3943         to be applied only on non array types.
3944
3945 2000-06-16  Per Bothner  <per@bothner.com>
3946
3947         * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN):  Don't
3948         define in terms of DECL_RESULT, as that fails when --enable-checking.
3949
3950 2000-06-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3951
3952         * jcf-write.c (CHECK_PUT): Add static prototype.  Make pointer
3953         types the same in comparison.
3954         (CHECK_OP): Add static prototype.
3955
3956 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
3957
3958         * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
3959         * parse.y (java_complete_class): Set DECL_USER_ALIGN.
3960         * parse.c: Rebuilt.
3961
3962 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3963
3964         * decl.c (create_primitive_vtable): Prototype.
3965
3966         * jcf-write.c (generate_bytecode_insns): Initialize variable
3967         `saved_context'.
3968
3969         * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
3970
3971 2000-06-09  Bryce McKinlay  <bryce@albatross.co.nz>
3972
3973         * parse.y (find_applicable_accessible_methods_list): Use a hashtable
3974         to track searched classes, and do not search the same class more than
3975         once. Call find_applicable_accessible_methods_list on immediate
3976         superclass, instead of search_applicable_method_list on all ancestors.
3977   &