OSDN Git Service

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