OSDN Git Service

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