OSDN Git Service

fix typo
[pf3gnuchains/gcc-fork.git] / gcc / java / ChangeLog
1 2000-07-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2
3         * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
4         or its first operand can be error marks.
5
6 2000-07-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
7
8         * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
9         * parse.y (method_header): Likewise.
10
11 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12
13         * parse.y (find_as_inner_class): Handle the case where the
14         enclosing context of an innerclass has been loaded as bytecode.
15
16 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
17
18         * parse.y (simple_name:): Reject `$' in type names.
19         (resolve_type_during_patch): Use `type' as a second
20         argument to resolve_no_layout. Fixes gcj/257.
21
22 2000-07-18  Jeff Sturm  <jeff.sturm@appnet.com>
23
24         * lang-specs.h: Added %(jc1) to java compiler options.
25
26 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
27
28         * .cvsignore: New file.
29
30 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
31
32         * parse.y (not_accessible_p): Access granted to innerclasses
33         (indirectly) extending the reference type. Fixes gcj/249.
34
35 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
36
37         * parse.y (patch_method_invocation): Fixed comment.
38         (maybe_use_access_method): Build this$<n>s to the context of the
39         target method, or a type that extends it. Fixes gcj/242.
40
41 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
42
43         * parse.c: Remove.
44
45 2000-07-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
46
47         * parse.y (fold_constant_for_init): Avoid bullish conversion.
48
49 2000-07-13  Tom Tromey  <tromey@cygnus.com>
50
51         * lang-specs.h: Added %{I*}.
52
53 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
54
55         * lang-specs.h: Use the new named specs.  Remove unnecessary braces.
56
57 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
58
59         * parse-scan.c: Remove.
60
61 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
62
63         * class.c (set_super_info): Handled protected inner classes.
64         (common_enclosing_context_p): Bail early if arguments aren't both
65         inner classes.
66         (get_access_flags_from_decl): Handle private and protected inner
67         classes.
68         * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
69         (CLASS_PROTECTED): Likewise.
70         (struct lang_type): New bitfield `poic.'
71         * parse.y (jdep_resolve_class): Call check_inner_class_access on
72         inner classes only.
73         (check_inner_class_access): Renamed arguments, added
74         comments. Handles protected inner classes (fixes gcj/225)
75         (not_accessible_p): Fixed comments. Avoid handling inner classes.
76
77 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
78
79         * parse.y (resolve_qualified_expression_name): Verify qualified
80         access to `this.' Fixes gcj/239.
81
82 2000-07-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
83
84         * jcf-write.c (generate_classfile): Don't install ConstantValue
85         for null pointers.
86
87 2000-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
88
89         * parse.y (resolve_qualified_expression_name): Handle inner class
90         access. Fixes gcj/256.
91
92 2000-07-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
93
94         * jcf-write.c (generate_classfile): Properly install the
95         ConstantValue attribute and the initial value constant pool index
96         on string constants.
97         * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
98         class files.
99
100 2000-07-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
101
102         * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
103         construct.
104         * parse.y (find_as_inner_class): Fixed typo.
105         (do_resolve_class): Explore enclosing contexts when searching for
106         innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
107         (check_inner_class_access): Check `decl' which can be null in case
108         of previous errors.
109
110 2000-07-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
111
112         * java-tree.h (java_debug_context): Declared `extern.'
113         (safe_layout_class): Likewise.
114         * parse.y (resolve_field_access): Field must be `static' in order
115         to be replaced by its initial value. Added comments.
116         (find_applicable_accessible_methods_list): Fixed typo.
117         (find_most_specific_methods_list): Methods found in innerclasses
118         take over methods founds in the enclosing contexts.
119         (java_complete_tree): Loosen restrictions on the type of DECLs
120         that can be replaced by their initialization values.
121         (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p.'
122
123 2000-07-05  Tom Tromey  <tromey@cygnus.com>
124
125         * Make-lang.in (PARSE_DIR): New macro.
126         (PARSE_RELDIR): Likewise.
127         (PARSE_C): Likewise.
128         (PARSE_SCAN_C): Likewise.
129         ($(PARSE_C)): New target.
130         ($(PARSE_SCAN_C)): Likewise.
131         (SET_BISON): New macro.
132         (BISONFLAGS): Likewise.
133         (JAVABISONFLAGS): Likewise.
134
135 2000-07-02  Bryce McKinlay  <bryce@albatross.co.nz>
136
137         * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
138         argument on the first pass for CNI as well as JNI.
139         (print_method_info): Set up method name on the first pass only.
140         
141 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
142
143         * parse.y (parser_qualified_classname): Removed parameter
144         `is_static'.
145         (create_interface): Removed first passed parameter to
146         parser_qualified_classname.
147         (create_class): Likewise. Don't install alias on static
148         innerclasses. Fixes gcj/275.
149
150 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
151
152         * parse.y (maybe_generate_pre_expand_clinit): Don't build a
153         debugable statement with empty_stmt_node. Fixes gcj/272
154
155 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
156
157         * expr.c (build_instanceof): Layout type after it's loaded. Fixes
158         gcj/271.
159
160 2000-06-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
161
162         * jcf-write.c (push_long_const): Appropriately cast short negative
163         constant to jword.
164
165 2000-06-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
166
167         * parse.y (verify_constructor_super): Use loop variable
168         `m_arg_type' initialized with `mdecl_arg_type'.
169
170 2000-06-29  Tom Tromey  <tromey@cygnus.com>
171
172         * parse.y (resolve_field_access): Handle case where `type_found'
173         is NULL.
174
175 2000-06-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
176
177         * expr.c (lookup_field): The same field can be found through two
178         different interface. Don't declare it ambiguous in that case.
179
180 2000-06-27  Tom Tromey  <tromey@cygnus.com>
181
182         * lex.c (java_lineterminator): Don't recognize \r after \n.  If \r
183         follows \r, then unget it at a lower level.
184
185 2000-06-26  Tom Tromey  <tromey@cygnus.com>
186
187         * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
188         java_complete_tree.
189
190 2000-06-25  Tom Tromey  <tromey@cygnus.com>
191
192         * parse.y (for_statement): Wrap expression in a WFL if it is a
193         constant.  For PR gcj/268.
194
195 2000-06-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
196
197         * parse.y (do_resolve_class): Minor optimiztion in the package
198         list search. Removed unecessary test and return statement.
199         (valid_ref_assignconv_cast_p): Order of arguments to
200         enclosing_context_p fixed.
201
202 2000-06-24  Tom Tromey  <tromey@cygnus.com>
203
204         * expr.c (lookup_field): Print error and return error_mark_node if
205         field reference is ambiguous.
206
207         * parse.y (check_abstract_method_definitions): Also check if
208         `other_method' is abstract.
209
210 2000-06-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>
211
212         * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
213         classes.
214         * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
215         (struct lang_type): New field `pic.'
216         (CLASS_PRIVATE): New macro.
217         * parse.y (check_inner_class_access): New function.
218         (jdep_resolve_class): Call it.
219
220 2000-06-23  Tom Tromey  <tromey@cygnus.com>
221
222         * parse.y (patch_incomplete_class_ref): Initialize the returned
223         class.  For PR gcj/260.
224
225 2000-06-21  Alexandre Petit-Bianco  <apbianco@cygnus.com>
226
227         * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
228
229 2000-06-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
230
231         * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
232         Java specific checks.
233         * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
234         screened by DECL_P.
235         * java-tree.def (CASE_EXPR): Marked 'e'.
236         (DEFAULT_EXPR): Likewise.
237         * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
238         screened by DECL_P.
239         * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
240         Java specific checks.
241         (generate_bytecode_insns): Test try_block for BLOCK before using
242         BLOCK_EXPR_BODY.
243         * parse.y (build_wfl_wrap): Added `location' argument. Set
244         EXPR_WFL_LINECOL accordingly.
245         (dim_expr:): Wrap constants with WFLs.
246         (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
247         (resolve_package): Check for `stmt' not being a BLOCK before
248         building a debuggable statement with it.
249         (make_qualified_primary): Added extra parameter to build_wfl_wrap
250         invocation.
251         (resolve_field_access): Make sure `decl' is a DECL before treating
252         it as such.
253         (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
254         IDENTIFIER_NODE before treating it as such.
255         (patch_new_array_init): Make sure `elt' is a TREE_LIST before
256         treating it as such.
257         (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
258         to be applied only on non array types.
259
260 2000-06-16  Per Bothner  <per@bothner.com>
261
262         * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN):  Don't
263         define in terms of DECL_RESULT, as that fails when --enable-checking.
264         
265 2000-06-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
266
267         * jcf-write.c (CHECK_PUT): Add static prototype.  Make pointer
268         types the same in comparison.
269         (CHECK_OP): Add static prototype.
270
271 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
272
273         * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
274         * parse.y (java_complete_class): Set DECL_USER_ALIGN.
275         * parse.c: Rebuilt.
276
277 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
278
279         * decl.c (create_primitive_vtable): Prototype.
280
281         * jcf-write.c (generate_bytecode_insns): Initialize variable
282         `saved_context'.
283
284         * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
285
286 2000-06-09  Bryce McKinlay  <bryce@albatross.co.nz>
287
288         * parse.y (find_applicable_accessible_methods_list): Use a hashtable
289         to track searched classes, and do not search the same class more than
290         once. Call find_applicable_accessible_methods_list on immediate
291         superclass, instead of search_applicable_method_list on all ancestors.
292         Fix for PR gcj/238.
293
294 2000-06-09  Bryce McKinlay  <bryce@albatross.co.nz>
295
296         * parse.y (register_fields): Permit static fields in inner classes
297         if they are final. Fix for PR gcj/255.
298
299 2000-06-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
300
301         * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
302         * parse.y (find_in_imports): Returned type changed to void,
303         leading comment fixed.
304         (register_package): New function.
305         (qualify_and_find): Likewise.
306         (package_declaration:): Use `register_package'.
307         (single_type_import_declaration:): Removed local variable
308         `node'. Added missing `;' for consistency.
309         (type_import_on_demand_declaration:): Use `chainon' to link new
310         entries.
311         (lookup_field_wrapper): Lookup local variables defined in outer
312         contexts first.
313         (java_complete_class): Don't reverse the list of imported on demand.
314         (do_resolve_class): Reorganized. Removed local variable
315         `original_name'. Call `qualify_and_find' with the current package
316         name, invoke `find_in_imports_on_demand' right after. Call
317         `qualify_and_find' with the packages we've seen so far. Fixed
318         operations numbering in comments.
319         (java_expand_class): Don't reverse `package_list'.
320         (find_most_specific_methods_list): New local variables `abstract'
321         and `candidates'. Use them to pick the right method.
322
323 Tue Jun  6 11:39:05 2000  Tom Tromey  <tromey@ferrule.cygnus.com>
324
325         * parse.y (check_modifiers_consistency): Don't subtract out
326         `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
327
328 2000-06-04  Philipp Thomas  <pthomas@suse.de>
329
330         * Makefile.in (INTLLIBS): New.
331         (LIBS): Add above.
332         (DEPLIBS): Ditto.
333
334 Fri Jun  2 16:48:55 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
335
336         * class.c (get_dispatch_table): Build the vtable dummy entry list
337         element with a null purpose. Fixed leading comment.
338         (build_dtable_decl): Build an accurate dtable type when appropriate
339         and use it.
340
341 2000-06-02  Richard Henderson  <rth@cygnus.com>
342
343         * lang.c (lang_get_alias_set): New.
344
345 2000-05-31  Alexandre Petit-Bianco  <apbianco@cygnus.com>
346
347         * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
348         before using it as the accessed field.
349
350 2000-05-31  Tom Tromey  <tromey@cygnus.com>
351
352         * java-tree.h (boolean_array_vtable, byte_array_vtable,
353         char_array_vtable, short_array_vtable, int_array_vtable,
354         long_array_vtable, float_array_vtable, double_array_vtable):
355         Declare.
356         * expr.c (get_primitive_array_vtable): New function.
357         (create_primitive_vtable): New function.
358         (java_lang_expand_expr): Enable code to statically generate
359         arrays.
360         * decl.c (init_decl_processing): Create primitive vtables.
361         (boolean_array_vtable, byte_array_vtable, char_array_vtable,
362         short_array_vtable, int_array_vtable, long_array_vtable,
363         float_array_vtable, double_array_vtable): Define.
364
365 2000-05-26  Zack Weinberg  <zack@wolery.cumb.org>
366
367         * java/parse.y (find_applicable_accessible_methods_list):
368         Don't add an uninitialized value to the list.
369
370 2000-05-25  Tom Tromey  <tromey@cygnus.com>
371
372         * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
373         when trying to see if field's class should be initialized.  Always
374         initialize field's declaring class, not qualified class.
375         For PR gcj/162.
376
377         * parse.y (array_constructor_check_entry): Pass `wfl_value', not
378         `wfl_operator', to maybe_build_primttype_type_ref.
379         Fixes PR gcj/235.
380
381 2000-05-23  Bryce McKinlay  <bryce@albatross.co.nz>
382
383        * parse.y (patch_method_invocation): Don't try to lookup methods
384        in primitive types.
385
386 2000-05-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
387
388         * parse.y (resolve_field_access): Call the appropriate <clinit>
389         before accessing the length of a static array. Craft a decl for
390         the field while its time. Fixes PR gcj/129.
391  
392 2000-05-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
393
394         * parse.y (resolve_package): Correctly set `*next' (was off by
395         one.)
396         (resolve_qualified_expression_name): Fixed comment.
397
398 Thu Apr 27 17:47:34 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
399
400         * jcf-parse.c (jcf_parse_source): Reset current_class and 
401         current_function_decl to NULL before parsing a new file.
402
403 Thu Apr 27 17:25:33 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
404
405         * parse.y (block_end:): If the collected block doesn't feature a
406         statement, insert an empty statement.
407
408 2000-04-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
409
410         * parse.y (maybe_yank_clinit): New function.
411         (maybe_generate_pre_expand_clinit): Always link <clinit> at the
412         end of the list of methods belonging to a class.
413         (java_complete_expand_method): Check whether <clinit> is really
414         necessary and expand it accordingly.
415
416 2000-04-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
417
418         * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
419         processed by the method's switch statement.
420
421 2000-05-19  Tom Tromey  <tromey@cygnus.com>
422
423         * java-tree.h: Added init state enum.
424         * decl.c (emit_init_test_initialization): Initialize class
425         initialization check variable by looking at class' state.
426
427 2000-05-19  Tom Tromey  <tromey@cygnus.com>
428
429         * java-tree.h (build_instanceof): Declare.
430         (build_get_class): Declare.
431         * parse.y (patch_binop): Use build_instanceof.
432         * expr.c (build_instanceof): New function.  If class is final,
433         don't make a function call.
434         (expand_java_INSTANCEOF): Use it.
435         (build_get_class): New function.
436
437 2000-05-18  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
438
439         * jcf-write.c (generate_classfile): Scan the source_file for
440         slashes with the right pointer variable.
441
442 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
443
444         * lang.c (lang_decode_option): Update -Wunused flags by calling
445         set_Wunused.
446         * decl.c (poplevel): Replace warn_unused with warn_unused_label.
447
448 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
449
450         * check_init.c (check_init): Constify local char *.
451         * class.c (push_class): Constify local char *.
452         * java_tree.h: Update prototypes.
453         * jcf-io.c (open_class): Constify filename parameter and
454         return value.
455         (find_class): Remove redundant string copy.  Cast return from
456         open_class.
457         * jcf-parse.c (read_class, parse_class_file, yyparse):
458         Constify local char *.
459         * jcf-write.c (generate_bytecode_insns, generate_classfile):
460         Constify local char *.
461         * jcf.h (JCF): Constify filename and classname.
462         (JCF_FINISH): Cast args to FREE to char * when appropriate.
463         * lang.c (init_parse): Constify parameter and return value.
464         * lex.c (java_get_line_col): Constify filename parameter.
465         * parse.h: Constify parser_ctxt.filename.  Update prototypes.
466         * parse.y (java_parser_context_suspend,
467         issue_warning_error_from_context, safe_layout_class): Constify
468         local char *.
469         * parse.c: Regenerate.
470
471 2000-05-08  Tom Tromey  <tromey@cygnus.com>
472
473         * expr.c (build_jni_stub): Cache the result of
474         _Jv_LookupJNIMethod.
475
476 2000-05-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
477
478         * decl.c (predef_filenames_size): Now 7.
479         (predef_filenames): New seventh entry.
480
481 2000-05-04  Tom Tromey  <tromey@cygnus.com>
482
483         * boehm.c (mark_reference_fields): Don't mark RawData fields.
484         Keep track of when we've seen a reference field after a
485         non-reference field.
486         (get_boehm_type_descriptor): Handle case where we see
487         non-reference fields but no trailing reference field.
488         * decl.c (rawdata_ptr_type_node): Define.
489         (init_decl_processing): Initialize rawdata_ptr_type_node.
490         * java-tree.h (rawdata_ptr_type_node): Declare.
491
492 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
493
494         * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
495         specifiers in calls to fprintf.
496
497 2000-05-03  Andrew Haley  <aph@cygnus.com>
498
499         * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
500
501         * javaop.h (WORD_TO_INT): New function.
502         (IMMEDIATE_s4): Use WORD_TO_INT.
503         * jcf.h (JPOOL_INT): Ditto.
504
505         * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
506         separator.
507
508 2000-04-19  Tom Tromey  <tromey@cygnus.com>
509
510         * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
511         on native function.
512         * jcf-parse.c (parse_class_file): Call build_jni_stub for native
513         JNI methods.
514         * expr.c (build_jni_stub): New function.
515         * lang-specs.h: -fjni and -femit-class-file are incompatible.
516         * parse.c: Rebuilt.
517         * parse.y (java_complete_expand_methods): Expand a native method
518         and call build_jni_stub if -fjni given.
519         * lang-options.h: Document -fjni.
520         * lang.c (flag_jni): New global.
521         (lang_f_options): Added `jni' entry.
522         * java-tree.h (soft_lookupjnimethod_node,
523         soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
524         Declare.
525         (flag_jni): Declare.
526         (build_jni_stub): Declare.
527         (struct lang_decl): Added `native' flag.
528         (METHOD_NATIVE): Redefined to use `native' field of lang specific
529         structure.
530         * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
531         soft_jnipopsystemframe_node): New globals.
532         (init_decl_processing): Set them.  _Jv_InitClass only takes one
533         argument.
534
535         * java-tree.def: Put into `C' mode.
536
537 2000-04-27  Tom Tromey  <tromey@cygnus.com>
538
539         Fix for PR gcj/2:
540         * expr.c (expand_invoke): Generate check to see if object pointer
541         is null in nonvirtual invocation case.
542         * java-tree.h (soft_nullpointer_node): Declare.
543         * decl.c (soft_nullpointer_node): New global.
544         (init_decl_processing): Initialize soft_nullpointer_node.
545         * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
546         or `private' methods.
547         (patch_invoke): Handle INVOKE_NONVIRTUAL case.
548
549 Wed Apr 26 14:29:33 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
550
551         * decl.c (complete_start_java_method): Don't call _Jv_InitClass
552         from <clinit>
553
554 2000-04-26  Tom Tromey  <tromey@cygnus.com>
555
556         * zextract.c (find_zip_file_start): New function.
557         (read_zip_archive): Use it.
558
559 2000-04-25  Alexandre Petit-Bianco  <apbianco@cygnus.com>
560
561         * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
562
563 2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
564
565         * class.c (common_enclosing_context_p): New function.
566         * java-tree.h (common_enclosing_context_p): Added prototype.
567         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
568         classes sharing an outer context with the current instance.
569         * parse.y (build_access_to_thisn): Fixed leading comment.
570         (verify_constructor_super): New local `supper_inner'. Skip
571         enclosing context argument in the case of inner class constructors.
572         (patch_method_invocation): Insert proper context as second
573         parameter to pure inner class constructor super invocations.
574
575 Mon Apr 24 14:59:36 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
576
577         * parse.y (end_class_declaration): Reset the interface number
578         counter.
579
580 2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
581
582         * parse.y (source_start_java_method): Deleted unecessary code.
583         (patch_method_invocation): Fixed comment.
584
585 2000-04-24  Robert Lipe <robertlipe@usa.net>
586
587         * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
588
589 2000-04-23  Tom Tromey  <tromey@cygnus.com>
590
591         * boehm.c (mark_reference_fields): Use int_byte_position.
592
593 2000-04-22  Tom Tromey  <tromey@cygnus.com>
594
595         * boehm.c (mark_reference_fields): Only call byte_position on
596         non-static fields.
597
598 2000-04-22  Tom Tromey  <tromey@cygnus.com>
599
600         * boehm.c (mark_reference_fields): Added `last_view_index'
601         argument.  Use DECL_FIELD_OFFSET to determine field's offset.
602
603 Thu Apr 20 17:41:28 2000  Mo DeJong  <mdejong@cygnus.com>
604
605         * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
606         * parse.y (check_class_interface_creation): Fixed comments. Select
607         permitted modifiers for (inner) interfaces. Changed error message
608         to report rejected modifiers used with local classes.
609
610 2000-04-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
611
612         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
613         of directly inherited type considered in scope.
614         * parse.y (do_resolve_class): Search inherited classes for inner
615         classes.
616
617 2000-04-20  Tom Tromey  <tromey@cygnus.com>
618
619         * parse.y (not_accessible_p): Use member's class, not current
620         class, when doing inheritance check for protected reference.
621         Fixes PR gcj/124.
622
623 Thu Apr 20 18:20:58 2000  Jason Schroeder  <shrode@subnature.com>
624
625         * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
626
627 2000-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
628
629         * parse.y (lookup_field_wrapper): Search for final local aliases.
630         (resolve_expression_name): Let lookup_field_wrapper search for
631         final local aliases. Force the value of `name' if one is found.
632         (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
633         an expression name. Fixed comments.
634
635 2000-04-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
636
637         * parse.y (yyerror): `msg' can be null, don't use it in that case.
638
639 2000-04-19  Tom Tromey  <tromey@cygnus.com>
640
641         * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
642
643 2000-04-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
644
645         * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
646
647 2000-04-18  Tom Tromey  <tromey@cygnus.com>
648
649         PR gcj/211:
650         * gjavah.c (utf8_cmp): Changed return value.
651         (cxx_keyword_subst): Handle all C++ keywords.  Allocate new return
652         result.
653         (cxx_keywords): New global.
654         (get_field_name): Handle new result of cxx_keyword_subst.
655         (print_method_info): Likewise.
656
657 2000-04-17  Bryce McKinlay  <bryce@albatross.co.nz>
658
659         * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names 
660         with a newline, for CNI.
661         (print_stub_or_jni): Print a space or newline before method name for 
662         CNI as well as JNI.
663         (print_cxx_classname): Don't write leading "::" in CNI stub method.
664         (process_file): Include gcj/cni.h if generating CNI stubs.      
665
666 2000-04-16  Tom Tromey  <tromey@cygnus.com>
667
668         * gjavah.c (decompile_method): Use print_field_name.
669         Fixes PR gcj/205.
670
671 2000-04-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
672
673         * parse.y (java_expand_classes): Reverse the package list once.
674         (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
675         reduction.
676         (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
677         the `==' and `!=' operators.
678
679 2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
680
681         * jcf-write.c (generate_bytecode_insns): At invokation time,
682         always relate an interface method to the type of its selector.
683         
684 2000-04-05  Tom Tromey  <tromey@cygnus.com>
685
686         Fix for PR gcj/2:
687         * expr.c (expand_invoke): Generate check to see if object pointer
688         is null in nonvirtual invocation case.
689         * java-tree.h (soft_nullpointer_node): Declare.
690         * decl.c (soft_nullpointer_node): New global.
691         (init_decl_processing): Initialize soft_nullpointer_node.
692         * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
693         or `private' methods.
694         (patch_invoke): Handle INVOKE_NONVIRTUAL case.
695
696 2000-04-05  Tom Tromey  <tromey@cygnus.com>
697
698         Fix for PR gcj/140:
699         * parse.y (check_final_assignment): Recognize assignments to the
700         `length' field of an array when generating class files.
701
702 2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
703
704         * class.c (decl_hash): Prototype removed.
705         (decl_compare): Likewise.
706
707 2000-04-05  Tom Tromey  <tromey@cygnus.com>
708
709         * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
710         * parse.y (check_modifiers_consistency): Check for final/volatile
711         clash.  Fixes PR gcj/164.
712
713 2000-04-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>
714
715         * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
716         made global.
717         (java_hash_compare_tree_node): Renamed from `decl_compare, made
718         global.
719         (add_method_1): Use `java_hash_hash_tree_node' and
720         `java_hash_compare_tree_node'.
721         * java-tree.h: (java_hash_hash_tree_node): Prototyped.
722         (java_hash_compare_tree_node): Likewise.
723         * parse.y (find_applicable_accessible_methods_list): Create,
724         delete and use a hash table to remember already searched interfaces.
725
726 2000-04-03  Matt Welsh  <mdw@cs.berkeley.edu>
727
728         * jcf-depend.c (add_entry): Fixed bug where list was always replaced
729         with latest entry.
730
731 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
732
733         * boehm.c (mark_reference_fields, set_bit): Prototype.
734         (set_bit): Un-ANSI-fy definition.
735
736         * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
737         Prototype.
738
739         * decl.c (emit_init_test_initialization): Likewise.
740
741         * gjavah.c (jni_print_char): Likewise.
742
743         * parse.y (create_new_parser_context): Likewise.
744
745 Thu Mar 30 15:26:56 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
746
747         * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
748         patch missing hunk. Fixed indentation.
749
750 2000-03-30  Tom Tromey  <tromey@cygnus.com>
751
752         * gjavah.c (D_NAN_MASK): Only define as word-reversed when
753         HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
754
755 2000-03-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
756
757         * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
758         when negative *before* using it as an array index.
759         * ChangeLog: Fixed typo.
760
761 2000-03-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
762
763         * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
764         to 0 when it reaches -1.
765
766 2000-03-27  Alexandre Petit-Bianco  <apbianco@cygnus.com>
767
768         * jcf-parse.c (get_constant): Properly cast `num' during the
769         invocation of `add_double'.
770         * jcf-write.c (push_long_const): Properly cast `lo' before
771         comparing it to short bounds.
772         * parse-scan.y (interface_declaration:): Rule re-arrange so that
773         `interface_body:' is reduced after the current interface is
774         pushed.
775
776 2000-03-26  Tom Tromey  <tromey@cygnus.com>
777
778         * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
779         Java-specific `-f' option.
780
781 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
782
783         * decl.c (init_decl_processing): Only call initialize_sizetypes once.
784         Adjust order of making types.
785         Make bitsize_*_node values.
786
787 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
788
789         * class.c (make_field_value): Use byte_position.
790         * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
791         (java_array_data_offset): Likewise.
792         * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
793         bzero call.
794
795 2000-03-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
796
797         * parse.y (check_abstract_method_definitions): New local
798         `end_type_reached'. Make sure we also consider `end_type'.
799         (java_check_abstract_method_definitions): Make sure we eventually
800         consider `java.lang.Object'.
801         (maybe_use_access_method): Don't use access method if not in the
802         context of a pure inner class or if the method's context is right.
803         (find_applicable_accessible_methods_list): New static flag
804         `object_done'. Don't search abstract classes as interfaces. Fixed
805         indentation. Fixed the `java.lang.Object' only search. Search
806         class interface(s) first, then fully search enclosing contexts.
807         (find_most_specific_methods_list): Pick the closest candidate when
808         they're all abstract.
809
810 Mon Mar 20 08:58:51 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
811
812         * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
813         properly initialize `finished_label.' Don't emit gotos for empty
814         try statements.
815
816 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
817
818         * except.c (emit_handlers): Clear catch_clauses_last.
819
820 2000-03-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
821
822         * parse.y (check_method_types_complete): New function.
823         (create_class): Reset anonymous class counter only when seeing an
824         non inner classe.
825         (java_complete_class): JDEP_METHOD: Don't recompute signature
826         if incomplete.
827
828 2000-03-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
829
830         * class.c (build_static_ref): Fixed indentation in comment.
831         * java-tree.def (TRY_EXPR): Fixed typo in name.
832         (CLASS_LITERAL): Likewise.
833         * java-tree.h: (TYPE_DOT_CLASS): New macro.
834         (struct lang_type): New field `dot_class'.
835         * jcf-write.c (generate_bytecode_insns): Fixed error message.
836         (generate_classfile): Method `class$' is synthetic.
837         * parse.y (build_do_class_method): New function.
838         (build_dot_class_method_invocation): Likewise.
839         (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
840         (resolve_qualified_expression_name): Handle CLASS_LITERAL.
841         (qualify_ambiguous_name): Likewise.
842         (patch_incomplete_class_ref): Invoke synthetic method if necessary.
843         (build_try_statement): Fixed leading comment.
844
845 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
846
847         * class.c (make_field_value): Properly handle sizes.
848         (get_dispatch_vector): Use tree_low_cst and host_integerp.
849         (layout_class_method): Count using trees.
850         * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
851         * expr.c (java_array_data_offset): Use int_bit_position.
852         (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
853         (build_invokevirtual): Use tree_low_cst and do computations with trees.
854         
855 2000-03-16  Tom Tromey  <tromey@cygnus.com>
856
857         * lang.c (flag_hash_synchronization): New global.
858         (lang_f_options): Added `hash-synchronization'.
859         * lang-options.h: Mention -fhash-synchronization.
860         * java-tree.h (flag_hash_synchronization): Declare.
861         * expr.c (java_lang_expand_expr): Only push `sync_info' value when
862         hash table synchronization is disabled.
863         * decl.c (init_decl_processing): Only push `sync_info' value when
864         hash table synchronization is disabled.
865         * class.c (make_class_data): Only push `sync_info' field when hash
866         table synchronization is disabled.  Removed dead code.
867
868 2000-03-16  Tom Tromey  <tromey@cygnus.com>
869
870         * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
871
872 2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
873
874         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
875         classes.
876         * parse.y (patch_method_invocation): Handle anonymous classes
877         creation in static context.
878
879 2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
880
881         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
882         * parse.y (resolve_qualified_expression_name): Use it.
883         (patch_method_invocation): Likewise.
884
885 2000-03-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
886
887         * parse.y (register_incomplete_type): JDEP_ENCLOSING set
888         depending on the type of dependency which dictates what the
889         current class is.
890         (unresolved_type_p): Resolved types limited to the current class.
891
892 2000-03-15  Tom Tromey  <tromey@cygnus.com>
893
894         * decl.c (init_decl_processing): Set type of `sync_info' to be
895         pointer to Object.
896
897         * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
898         Correctly compute bit number for current slot.  Zero `high' and
899         `low' in DS_LENGTH case.  Don't skip inherited fields.  Use
900         mark_reference_fields.
901         (mark_reference_fields): New function.
902
903 Tue Mar 14 17:15:41 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
904
905         * parse.y (register_incomplete_type): Fixed initialization of
906         JDEP_ENCLOSING.
907
908 2000-02-28  Alexandre Petit-Bianco  <apbianco@cygnus.com>
909
910         * parse-scan.y (inner_qualifier, inner_qualifier_length): New
911         static globals.
912         (push_class_context, pop_class_context): New function.
913         (class_body:): Call pop_class_context.
914         (interface_body:): Likewise.
915         (INNER_QUALIFIER): New macro.
916         (report_class_declaration): Changed output format and use
917         INNER_QUALIFIER. Call push_class_context.
918
919 2000-02-14  Andrew Haley  <aph@cygnus.com>
920
921         * check-init.c (check_init): Add new cases for unary and binary
922         tree nodes.
923
924 2000-03-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
925
926         * parse.y (resolve_package): Set `next' once a type name has been
927         progressively discovered.
928         (resolve_qualified_expression_name): Propagate resolution only if
929         there are remaining qualifiers. Take into account `q' might have
930         been cleared after re-qualification.
931         * parse.y (patch_method_invocation): New local `resolved'.
932         Section dealing with qualified expression rewritten to use
933         resolve_field_access.
934
935 Mon Mar 13 12:21:13 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
936
937         * parse.h (PUSH_CPC): Fixed indentation.
938         (DEBUG_CPC): New macro.
939         (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
940         SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
941         * parse.y (class_body_declaration:): Use
942         SET_CPC_INSTANCE_INITIALIZER_STMT.
943         (method_declaration:): Check for null current_function_decl.
944         (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
945         (java_parser_context_pop_initialized_field): Better handling of
946         empty lists.
947         (maybe_make_nested_class_name): Mark nested class name as
948         qualified when necessary.
949         (end_class_declaration): Don't call java_parse_context_resume when
950         one or more error occured.
951         (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
952         (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
953         SET_CPC_INITIALIZER_STMT.
954         (method_header): Check for inner classes declaring static methods.
955         (resolve_qualified_expression_name): Handle situation where `this'
956         is implied.
957
958 Mon Mar 13 11:36:51 2000  Hans Boehm <boehm@acm.org>
959
960         * typeck.c (build_prim_array_type): Correctly set the high word too.
961
962 2000-03-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
963
964         * parse.y (java_complete_expand_methods): Leave <clinit> out of
965         ordinary methods.
966         (maybe_generate_pre_expand_clinit): Put <clinit> at the end of the
967         list of methods for interfaces.
968
969 2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
970
971         * parse.y (qualify_ambiguous_name): Properly handle expressions
972         using `null'.
973         
974 2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
975
976         * parse.y (check_final_assignment): Extended to process
977         COMPOUND_EXPR.
978         (patch_assignment): Have check_final_assignment called only once.
979
980 2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
981
982         * java-tree.h (IS_INIT_CHECKED): New flag.
983         * check-init.c (check_init): Test and set IS_INIT_CHECKED.
984         * parse.y (patch_string): Call force_evaluation_order on the
985         completed string concatenation tree.
986         * expr.c (force_evaluation_order): Call force_evaluation_order on
987         function's arguments too.
988
989 Mon Mar  6 18:07:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
990
991         * decl.c (emit_init_test_initialization): Mark KEY as unused.
992         * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
993         (build_anewarray): Likewise.
994         * parse.y (patch_newarray): Likewise.
995         * parse.c: Regenerated.
996
997 2000-03-06  Bryce McKinlay  <bryce@albatross.co.nz>
998
999         * decl.c (init_decl_processing): Added new class fields `depth',
1000         `ancestors', and `idt' to class_type_node. Use
1001         _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
1002         * class.c (make_class_data): Push initial values for new fields.
1003         * java-tree.h: Updated prototype for `build_invokeinterface'.
1004         * expr.c (build_invokeinterface): Changed parameters to accept
1005         `method' tree. Calculate index of `method' in its declaring
1006         interface. Build call to _Jv_LookupInterfaceMethodIdx.
1007         (expand_invoke): Call `build_invokeinterface' with new parameters.
1008         * parse.y (patch_invoke): Call `build_invokeinterface' with new
1009         parameters.
1010
1011 2000-03-06  Bryce McKinlay <bryce@albatross.co.nz>
1012
1013         * typeck.c (lookup_do): Search superinterfaces first
1014         when looking up an interface method. From Godmar Back
1015         <gback@cs.utah.edu>
1016
1017 2000-03-06  Tom Tromey  <tromey@cygnus.com>
1018
1019         * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
1020
1021 2000-03-02  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1022
1023         * java-tree.h (lookup_argument_method2): Declared.
1024         (safe_layout_class): Prototype moved from parse.h.
1025         * parse.h (safe_layout_class): Prototype moved to java-tree.h.
1026         * parse.y (java_check_regular_methods): Local `super_class' gone.
1027         Call lookup_argument_method2 instead of lookup_argument_method.
1028         Perform modifier match for methods found declared in implemented
1029         interfaces. Fixed indentation problem. Overriding/hiding error
1030         report to take place only for methods found in classes.
1031         * typeck.c (lookup_argument_method): Changed leading
1032         comment. Re-written by calling lookup_do.
1033         (lookup_argument_method2): New function.
1034         (lookup_java_method): Re-written by calling lookup_do.
1035         (lookup_do): New function.
1036
1037 Thu Mar  2 15:18:33 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1038
1039         * check-init.c (check_init): Removed dead code. Handle (blank)
1040         final variables.
1041         * parse.y (declare_local_variables): New local `final_p', set it
1042         and use it to initialize LOCAL_FINAL.
1043         (check_final_assignment): Only check FIELD_DECLs.
1044
1045 2000-02-17  Tom Tromey  <tromey@cygnus.com>
1046
1047         * Makefile.in (JAVA_OBJS): Added boehm.o.
1048         (boehm.o): New target.
1049         * Make-lang.in (JAVA_SRCS): Added boehm.c.
1050         * java-tree.h (flag_use_boehm_gc): Declare.
1051         (get_boehm_type_descriptor): Declare.
1052         * lang.c (lang_f_options): Added `use-boehm-gc'.
1053         (flag_use_boehm_gc): New global.
1054         * lang-options.h: Added -fuse-boehm-gc.
1055         * boehm.c: New file.
1056         * class.c (get_dispatch_table): If class uses a Boehm type
1057         descriptor, put it in the vtable.
1058         (make_class_data): Removed dead code.
1059
1060 2000-03-03  Per Bothner  <per@bothner.com>
1061
1062         * decl.c (init_decl_processing):  Initialize sizetype properly.
1063
1064 2000-03-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1065
1066         * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
1067         (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
1068         * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.  
1069         * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
1070         (jcf_parse): New local `current'. Load innerclasses seen in outer
1071         context being processed.
1072         * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
1073         * jcf-write.c (append_innerclasses_attribute): New function.
1074         (append_innerclasses_attribute_entry): Likewise.
1075         (get_access_flags): Handle static classes. Set anonymous and local
1076         classes to be private.
1077         (generate_classfile): Attribute count adjusted. Call
1078         append_innerclasses_attribute.
1079         * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
1080         PURE_INNER_CLASS_TYPE_P.
1081         * parse.y (parser_qualified_classname): New parameter `is_static',
1082         produce non qualified name accordingly.
1083         (block_statement:): Set LOCAL_CLASS_P when declaring local class.
1084         (create_interface): Added argument to parser_qualified_classname.
1085         (create_class): Added argument to parser_qualified_classname. Setup
1086         alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
1087         (add_inner_class_fields): Fixed indentation.
1088         (method_declarator): Use PURE_INNER_CLASS_DECP_P.
1089         (method_declarator): Fixed typo in comment.
1090         (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
1091         (build_current_thisn): Likewise.
1092         (patch_method_invocation): Likewise.
1093
1094 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1095
1096         * decl.c (current_function_decl): Move to toplev.c.
1097
1098 Mon Feb 28 08:20:42 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1099
1100         * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
1101         (DECL_BIT_INDEX): Use underlying representation.
1102         * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
1103
1104 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1105
1106         * expr.c (build_java_ret): Pass proper type to size_binop.
1107
1108 2000-02-25  Anthony Green  <green@cygnus.com>
1109
1110         * expr.c (build_class_init): Mark the decl to be ignored by
1111         check_init.
1112         * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
1113         * check-init.c: Move DECL_BIT_INDEX to java-tree.h
1114         * class.c (init_test_hash_newfunc): New function.
1115         (decl_hash): New function.
1116         (decl_compare): New function.
1117         * decl.c (emit_init_test_initialization): New function.
1118         (complete_start_java_method): Traverse the init test hashtable,
1119         calling emit_init_test_initialization.
1120         (always_initialize_class_p): Define.
1121         * expr.c (build_class_init): Use initialization tests when
1122         emitting class initialization code.
1123         (always_initialize_class_p): Declare.
1124         * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
1125         1.
1126         * java-tree.h: Include hash.h.
1127         (DECL_FUNCTION_INIT_TEST_TABLE): Define.
1128         (struct lang_decl): Add init_test_table field.
1129         (init_test_hash_entry): Define.
1130
1131 Fri Feb 25 18:41:31 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1132
1133         * gjavah.c (main): Avoid using `argi' to report unimplemented
1134         options.
1135
1136 Fri Feb 25 18:47:25 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1137
1138         * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
1139         initialize locals to avoid warnings. Local `exception_type' moved
1140         into if statement.
1141
1142 Fri Feb 25 18:00:37 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1143
1144         * parse.y (resolve_expression_name): Use `orig' as a second
1145         argument to resolve_field_access.
1146         (resolve_field_access): Removed unecessary code when dealing with
1147         static fields.
1148
1149 Wed Feb 23 17:41:50 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1150
1151         * class.c (push_super_field): Don't push the field twice.
1152         * jcf-parse.c (parse_source_file): Call java_reorder_fields.
1153         * parse.h (java_reorder_fields): Prototyped.
1154         * parse.y (java_reorder_fields): New function.
1155         (java_layout_class): Simplified not to worry about re-ordering.
1156
1157 2000-02-23  Tom Tromey  <tromey@cygnus.com>
1158
1159         * gjavah.c (print_name): In JNI case, correctly quote string.
1160         (print_method_info): Don't handle overrides in JNI mode.
1161
1162 2000-02-22  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1163
1164         * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
1165         value type set to `boolean_type_node'.
1166
1167 Mon Jan 18 14:30:09 2000  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
1168
1169         * jcf-dump.c (main): Test for correct condition after
1170         output file creation.
1171
1172 2000-02-19  Anthony Green  <green@cygnus.com>
1173
1174         * jcf-depend.c (add_entry): Fix test for first list entry.
1175
1176 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1177
1178         * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
1179         * constants.c (build_constants_constructor): Likewise.
1180
1181 2000-02-19  Anthony Green  <green@cygnus.com>
1182
1183         * jcf-depend.c (add_entry): Add entries to the end of the list.
1184
1185 Wed Nov 03 02:16:00 PST 1999  Pekka Nikander  <pekka.nikander@hut.fi>
1186
1187         * decl.c (INT_TYPE_SIZE): Define if necessary.
1188         (expand_java_return): Handle the case of a native integer smaller
1189         than a JVM integer.
1190
1191 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1192
1193         * gjavah.c (help): Use GCCBUGURL.
1194         * jv-scan.c (help): Likewise.
1195         * jcf-dump.c (help): Likewise.
1196
1197 Thu Feb 17 14:30:37 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1198
1199         * jcf-write.c (generate_bytecode_insns): Don't generate empty
1200         `finally' clauses.
1201
1202 Thu Feb 17 13:20:58 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1203
1204         * jcf-parse.c (load_class): Call `fatal' if no file containing
1205         the target class are found.
1206
1207 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
1208
1209         * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
1210         lex.c, lex.h, and PARSE_H to...                            
1211         (parse.o, parse-scan.o): ...here, respectively.
1212
1213         * lex.c: Split out code that may trigger SIGFPE from yylex()
1214         to its own function.
1215         * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
1216
1217 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1218
1219         * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
1220
1221 2000-02-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1222
1223         * parse.y (outer_field_access_p): Stop in time when outer contexts
1224         are exhausted.
1225         (resolve_qualified_expression_name): Properly qualify *everything*
1226         after a package.type to be resoled as expression names.
1227         (find_applicable_accessible_methods_list): Save/restore `class' to
1228         isolate it from a possible outer context search.
1229
1230 2000-02-15  Tom Tromey  <tromey@cygnus.com>
1231
1232         * gjavah.c (jni_print_char): New function.
1233         (print_full_cxx_name): Use it.
1234         (decode_signature_piece): Likewise.
1235         (print_cxx_classname): Likewise.
1236
1237 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1238
1239         * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
1240         version.o.
1241         (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
1242
1243         * gjavah.c: Include version.h.
1244         
1245         * jcf-dump.c: Likewise.
1246
1247         * jv-scan.c: Likewise.
1248
1249 Sat Feb 12 04:34:04 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1250
1251         * parse.y (outer_field_access_fix): First parameter now a tree
1252         node. Check for assignement to final. First argument to
1253         build_outer_field_access_fix modified to accomodate prototype.
1254         (build_outer_field_access): Don't check for assignment to final
1255         here.
1256         (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
1257         possibly returned by outer_field_access_fix. Changed
1258         outer_field_access_fix's first argument.
1259         (check_final_assignment): $finit$'s context is OK.
1260         (patch_unaryop): Use node instead of its line/column value when
1261         calling outer_field_access_fix.
1262
1263 Fri Feb 11 17:38:26 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1264
1265         * parse.y (interface_declaration:): No longer tagged
1266         <node>. Re-installed default action.
1267         (class_member_declaration:): Handle inner interfaces.
1268         (interface_member_declaration): Handle inner interfaces and
1269         classes.
1270         (create_interface): Push error if one seen. Suspend parsing
1271         context when processing an inner interface.
1272         (register_fields): Inner class static field limitations not to
1273         apply to inner interfaces.
1274
1275 Thu Feb 10 22:07:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1276
1277         * jcf-parse.c (load_class): Update `java_error_count' when a
1278         class' file can't be found.
1279         (parse.y): Avoid (byte)code generation when errors seen.
1280
1281 Thu Feb 10 20:10:43 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1282
1283         * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
1284         decodes a valid node.
1285         (patch_binop): Handle TRUNC_DIV_EXPR.
1286
1287 Thu Feb 10 16:04:26 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1288
1289         * parse.y (resolve_package): New local `acc.' Try to progressively
1290         build and guess a package and type name.
1291
1292 Thu Feb 10 12:52:09 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1293
1294         * parse.y (find_applicable_accessible_methods_list): Load and
1295         layout the search class if necessary.
1296         (java_complete_tree): Keep to original type of the folded initial
1297         value.
1298
1299 2000-02-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1300
1301         * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
1302         Generate error message if circularity is detected. New static
1303         local `list.'
1304         * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro.  *
1305         * jcf-write.c (generate_bytecode_insns): Very simply handle
1306         SAVE_EXPR.
1307         * parse.y (java_check_circular_reference): Use
1308         `cyclic_inheritance_report' during report, if necessary.
1309         (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
1310         walking NEW_ARRAY_INIT twice.
1311
1312 2000-02-09  Tom Tromey  <tromey@cygnus.com>
1313
1314         * parse.y (check_class_interface_creation): Allow inner classes to
1315         be `private' or `protected', check modifiers' consistency. Prevent
1316         block local classes from bearing any modifiers.
1317
1318 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1319
1320         * except.c (check_start_handlers): Re-add prototype lost in last
1321         patch.
1322         (maybe_start_try): Remove excess argument to `check_start_handlers'.
1323
1324 2000-02-09  Andrew Haley  <aph@cygnus.com>
1325
1326         * decl.c (clear_binding_level): Remove excess initializer.
1327         (maybe_poplevels): Remove unused variable.
1328         (force_poplevels): Ditto.
1329         (struct binding_level): Add comment.
1330         
1331 2000-02-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1332
1333         * jcf-write.c (generate_classfile): Don't consider
1334         pre-initialization with reference value (use <clinit> instead.)
1335         * parse.y (java_fix_constructors): No generated constructor for
1336         interfaces.
1337         (build_outer_field_access): Removed debug message.
1338         (outer_field_expanded_access_p): Adapted to bytecode generation.
1339         (build_outer_field_access_method): Use fix_method_argument_names.
1340         (build_outer_method_access_method): Fixed indentation. Added
1341         comment. Handle access method generation for static and also void
1342         methods.
1343         (build_access_to_thisn): Inserted debug message.
1344         (maybe_build_thisn_access_method): Use fix_method_argument_names.
1345         (resolve_qualified_expression_name): Fixed comment.
1346         (not_accessible_p): Adapted to bytecode generation. Added comment.
1347         (patch_method_invocation): Added comment.
1348         (maybe_use_access_method): Fixed leading comment. Handle static
1349         methods.
1350         (java_complete_lhs): Don't shortcut handling of initialized upon
1351         declaration String type static fields when generating bytecode.
1352         (patch_unaryop): Handle outer field access when generating
1353         bytecode.
1354
1355 Thu Feb  3 20:23:19 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1356
1357         * java-tree.h (FIELD_THISN): New macro.
1358         * jcf-write.c (append_synthetic_attribute): New function.
1359         (generate_classfile): Set "Synthetic" attribute on this$<n>,
1360         val$<name> fields, access$<n> and $finit$ methods. Fixed indentation.
1361         * parse.y (add_inner_class_fields): Set FIELD_THISN for created
1362         this$<n> fields.
1363         (build_outer_field_access): Turned on access functions usage and
1364         generation when compiling to bytecode.
1365         (maybe_use_access_method): Likewise.
1366
1367 2000-01-25  Andrew Haley  <aph@cygnus.com>
1368
1369         * java-except.h (struct eh_range): Add `expanded' field.
1370         (maybe_start_try): Add end_pc arg.
1371         (maybe_end_try): Ditto.
1372         * java-tree.h (force_poplevels): new function.
1373         * expr.c (expand_byte_code): Don't call maybe_start_try or
1374         maybe_end_try.
1375         * except.c (add_handler): Reset expanded.
1376         (expand_start_java_handler): Set expanded.
1377         (check_start_handlers): Don't expand a start handler that's
1378         already been expanded.
1379         (maybe_start_try): Add end_pc arg.  Only expand a handler which
1380         ends after end_pc.
1381         (expand_end_java_handler): call force_poplevels.
1382         (force_poplevels): new function.
1383         * decl.c (binding_level): Add start_pc of binding level.
1384         (maybe_pushlevels): Call maybe_start_try when pushing binding
1385         levels.
1386         (maybe_poplevels): Call maybe_end_try when popping binding levels.
1387         (LARGEST_PC): Define.
1388         (clear_binding_level): Use LARGEST_PC.
1389
1390         * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
1391         * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
1392         (binding_depth, is_class_level, current_pc): new variables.
1393         (struct binding_level): ditto.
1394         (indent): new function.
1395         (push_jvm_slot): add debugging info.
1396         (maybe_pushlevels): ditto.
1397         (maybe_poplevels): ditto.
1398         (pushlevel): ditto.
1399         (poplevel): ditto.
1400         (start_java_method): ditto.
1401         (give_name_to_locals): comment only.
1402         * except.c (binding_depth, is_class_level, current_pc): 
1403         new variables.
1404         (expand_start_java_handler): add debugging info.
1405         (expand_end_java_handler): ditto.
1406         
1407 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1408
1409         * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
1410         (print_name_for_stub_or_jni, process_file): Constify a char*.
1411
1412 2000-02-03  Tom Tromey  <tromey@cygnus.com>
1413
1414         * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
1415
1416 2000-01-31  Scott Bambrough  <scottb@netwinder.org>
1417
1418         * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
1419         assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
1420         defined to be 1.
1421
1422 Wed Feb  2 18:43:37 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1423
1424         * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
1425         * java-tree.h (TYPE_II_STMT_LIST): New macro.
1426         (struct lang_type): New field `ii_block'.
1427         * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
1428         CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
1429         * parse.h (struct parser_ctxt): New field `instance_initializers'.
1430         (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
1431         CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
1432         CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
1433         macros.
1434         * parse.y (add_instance_initializer): New function.
1435         (in_instance_initializer): New static global.
1436         (class_body_declaration:): Link instance initializer block.
1437         (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
1438         (array_creation_expression:): Remove unused local.
1439         (java_parser_context_push_initialized_field): Fixed leading
1440         comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
1441         CPC_INSTANCE_INITIALIZER_LIST.
1442         (java_parser_context_pop_initialized_field): Likewise.
1443         (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
1444         (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
1445         CPC_INITIALIZER_STMT.
1446         (fix_constructors): New local `class_type'. Use it. Call
1447         add_instance_initializer.
1448         (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
1449         (patch_return): Forbid return in instance initializers.
1450         (patch_throw_statement): Enforce exception handling in the context
1451         of instance initializers.
1452         
1453 2000-02-03  Tom Tromey  <tromey@cygnus.com>
1454
1455         * Make-lang.in (java.mostlyclean): Remove executables in
1456         `mostlyclean'.
1457
1458 2000-01-31  Scott Bambrough  <scottb@netwinder.org>
1459
1460         * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
1461         HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
1462         (java_float_finite): Convert to use union Word from javaop.h.
1463         (java_double_finite): Convert to use union DWord from javaop.h.
1464
1465 2000-02-02  Tom Tromey  <tromey@cygnus.com>
1466
1467         * gjavah.c (options): Added `jni' entry.
1468         (help): Document -jni.
1469         (flag_jni): New global.
1470         (process_file): Handle JNI output.  Don't print text from
1471         -prepend, -add, etc, when generating stubs.  Only remove `.class'
1472         suffix if it actually exists.
1473         (main): Create a `.c' file when run with `--jni --stubs'.  Create
1474         correct output file name with `--jni'.
1475         (print_include): Mangle header name differently in JNI case.
1476         (HANDLE_METHOD): In JNI mode, call print_method_info to generate
1477         method list.
1478         (print_method_info): Handle JNI case.  Put signature info into
1479         method name.  Handle case when STREAM is NULL.
1480         (print_name_for_stub_or_jni): New function.
1481         (print_stub_or_jni): Renamed from `print_stub'.  Handle JNI.
1482         (print_cxx_classname): Handle JNI.
1483         (print_full_cxx_name): Likewise.
1484         (decode_signature_piece): Likewise.
1485         (overloaded_jni_method_exists_p): New function.
1486         (struct method_name): Added `signature' and `sig_length' fields.
1487         (HANDLE_END_FIELD): Do nothing in JNI mode.
1488
1489 2000-02-02  Tom Tromey  <tromey@cygnus.com>
1490
1491         * jv-scan.c: Include version.c, <getopt.h>.
1492         (LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
1493         (options): New array.
1494         (usage): New function.
1495         (version): New function.
1496         (main): Use getopt_long to parse command line.
1497         * jcf-dump.c: Include version.c, <getopt.h>.
1498         (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
1499         OPT_JAVAP): New macros.
1500         (options): New array.
1501         (usage): Return `void'.  Changed message.
1502         (help): New function.
1503         (version): New function.
1504         (main): Use getopt_long_only to parse command line.
1505         * gjavah.c: Include <getopt.h>.
1506         (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
1507         OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
1508         OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
1509         (options): New array.
1510         (java_no_argument): Removed.
1511         (help): Updated with missing options.
1512         (main): Use getopt_long_only to parse command line.
1513         (usage): Changed message.
1514
1515 Tue Feb  1 22:23:41 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1516
1517         * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
1518         * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
1519         ANONYMOUS_ARRAY_INITIALIZER): New access macros.
1520         * parse.y (array_creation_expression:): Handle anonymous arrays.
1521         (build_array_from_name): Don't set `ret_name' if null.
1522         (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
1523         (qualify_ambiguous_name): Likewise.
1524         (java_complete_expand_class): Likewise.
1525
1526 Tue Feb  1 14:59:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1527
1528         * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
1529         * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
1530         (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
1531         (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
1532         (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
1533         AIPL_FUNCTION_COMPLETED_INVOCATION.
1534         (AIPL_FUNCTION_CTOR_INVOCATION): Replaces 
1535         AIPL_FUNCTION_INVOCATION_READY.
1536         (AIPL_FUNCTION_DECLARATION): New enum entry.
1537         * parse.y (reorder_static_initialized): New function.
1538         (java_parser_context_pop_initialized_field): Use it.
1539         (add_inner_class_fields): Use
1540         MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
1541         augmented. Install marker after last alias initializer, if any.
1542         (generate_finit): Fixed typo. Don't try to retain only the used
1543         fields.
1544         (method_header): Compute and set DECL_FUNCTION_NAP.
1545         (method_declarator): Fixed comment. Insert alias initializer in
1546         parameter list.
1547         (build_alias_initializer_parameter_list): Fixed leading
1548         comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
1549         replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
1550         (java_complete_expand_class): Code to retain only used aliases
1551         removed.
1552         (java_complete_expand_methods): New local `first_decl'. Generate
1553         $finit$ first, then expand the constructors, regular methods and
1554         <clinit>.
1555         (java_complete_expand_method): Don't report error on missing
1556         return statement if previously detected bogus.
1557         (fix_constructors): Don't patch constructor parameters list.
1558         (patch_method_invocation): Use new AIPL enum values. Reverse
1559         alias initializer list for anonymous classes.
1560         
1561 2000-01-30  Anthony Green  <green@redhat.com>
1562
1563         * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
1564         determine how many stack slots to pop.
1565
1566 2000-01-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1567
1568         * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
1569         error handling/recovery.
1570         * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
1571
1572 Fri Jan 28 20:10:57 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1573
1574         * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
1575         FIELD_LOCAL_ALIAS_USED): New macros.
1576         (DECL_FUNCTION_NAP): New macro.
1577         (struct lang_decl): New field `nap'.
1578         (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
1579         (struct lang_type): New fields `finit_stmt_list' and
1580         `clinit_stmt_list'.
1581         (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
1582         * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
1583         (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
1584         UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
1585         (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
1586         AIPL_FUNCTION_INVOCATION_READY): New enum fields.
1587         (BUILD_THROW): Macro line separator re-indented.
1588         * parse.y (end_class_declaration): New function.
1589         (maybe_generate_pre_expand_clinit): New name for
1590         java_pre_expand_clinit. Create <clinit> off TYPE_CLINIT_STMT_LIST,
1591         pre-expand static fields.
1592         (maybe_generate_clinit): Function deleted.
1593         (check_for_static_method_reference): Prototype's parameter list
1594         indented.
1595         (generate_finit): New name for maybe_generate_finit. Changed
1596         leading comment. Function rewritten to use
1597         TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
1598         (build_alias_initializer_parameter_list): New function.
1599         (java_parser_context_pop_initialized_field): Likewise.
1600         (add_inner_class_fields): Likewise.
1601         (type_declaration:): Call end_class_declaration.
1602         (class_member_declaration:): Likewise.
1603         (formal_parameter_list:): Fixed typos.
1604         (formal_parameter:): Use ARG_FINAL_P to mark created tree list
1605         element. Improved error handling.
1606         (block_statement:): Call end_class_declaration.
1607         (anonymous_class_creation:): Likewise.
1608         (create_anonymous_class): Fixed comments.
1609         (create_class): Call add_inner_class_fields.
1610         (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
1611         (method_header): Use MARK_FINAL_PARMS.
1612         (finish_method_declaration): Use UNMARK_FINAL_PARMS.
1613         (method_declarator): Propagate final argument flag.
1614         (craft_constructor): New local `artificial'. Call
1615         build_alias_initializer_parameter_list. Use
1616         CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
1617         (source_start_java_method): Mark parm decls with LOCAL_FINAL if
1618         necessary.
1619         (complete_expand_class): Get rid of unused outer context local
1620         alias fields.
1621         (java_complete_expand_methods): Fixed leading
1622         comment. Generate/pre-expand <clinit> first. Changed method
1623         expansion order to regular, $finit$, constructors, <clinit>.
1624         (java_complete_expand_method): Set current_function_decl.
1625         (fix_constructors): Fix constructor parameter list to account for
1626         outer context local alias initializers.
1627         (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
1628         (resolve_expression_name): Lookup outer context local aliases. New
1629         local `access', use it.
1630         (patch_method_invocation): Patch inner class ctor invocation with
1631         outer context local aliases initialization values. $finit$
1632         invocation patching now includes things generated with
1633         build_alias_initializer_parameter_list.
1634         (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
1635         (build_super_invocation): Likewise.
1636         (patch_assignment): Changed comment.
1637
1638 2000-01-27  Andrew Haley  <aph@cygnus.com>
1639
1640         * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
1641         (emit_if): Ditto.
1642         (emit_jsr): Ditto.
1643
1644 2000-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1645
1646         * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
1647         concatenation.
1648         (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.
1649
1650         * parse.y (register_fields): Don't pass a format specifier to
1651         OBSOLETE_MODIFIER_WARNING.
1652         (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
1653         instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
1654         specifier.
1655         (check_modifiers): Change function into a macro.
1656         (check_class_interface_creation): Pass a literal format string.
1657
1658 2000-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1659
1660         * buffer.h: PROTO -> PARAMS.
1661         * check-init.c: Likewise.
1662         * class.c: Likewise.
1663         * constants.c: Likewise.
1664         * convert.h: Likewise.
1665         * decl.c: Likewise.
1666         * except.c: Likewise.
1667         * expr.c: Likewise.
1668         * gjavah.c: Likewise.
1669         * java-except.h: Likewise.
1670         * java-tree.h: Likewise.
1671         * jcf-depend.c: Likewise.
1672         * jcf-dump.c: Likewise.
1673         * jcf-parse.c: Likewise.
1674         * jcf-path.c: Likewise.
1675         * jcf-reader.c: Likewise.
1676         * jcf-write.c: Likewise.
1677         * jcf.h: Likewise.
1678         * jv-scan.c: Likewise.
1679         * jvgenmain.c: Likewise.
1680         * jvspec.c: Likewise.
1681         * lang.c: Likewise.
1682         * lex.c: Likewise.
1683         * lex.h: Likewise.
1684         * parse-scan.y: Likewise.
1685         * parse.h: Likewise.
1686         * parse.y: Likewise.
1687         * typeck.c: Likewise.
1688         * verify.c: Likewise.
1689         * xref.c: Likewise.
1690         * xref.h: Likewise.
1691         * zextract.c: Likewise.
1692         * zipfile.h: Likewise.
1693         
1694 2000-01-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1695
1696         * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
1697         (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
1698         * constants.c (build_constant_data_ref): Check for cached
1699         current_constant_pool_data_ref. Cache current_constant_pool_data_ref
1700         in TYPE_CPOOL_DATE_REF.
1701         * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
1702         MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
1703         (struct lang_type): New fields `cpool' and `cpool_data_ref'.
1704         (LOCAL_FINAL): New macro.
1705         * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
1706         constant pool -- don't try to reuse.
1707         (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
1708         TYPE_LANG_SPECIFIC.
1709         (find_in_current_zip): Use TYPE_JCF.
1710         * parse.h (java_check_final): Prototype removed.
1711         * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
1712         (maybe_create_class_interface_decl,
1713         check_class_interface_creation): Likewise.
1714         (java_expand_finals): Function removed.
1715         (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
1716         (block_statement:): Fixed comment.
1717         (anonymous_class_creation:): Likewise.
1718         (check_class_interface_creation): Reversed Jan 12, 2000 extra
1719         argument patch.
1720         (check_class_interface_creation): Loosened error report on (inner)
1721         public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
1722         (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
1723         (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
1724         argument patch.
1725         (create_interface): Likewise.
1726         (anonymous_class_counter): New static global.
1727         (create_anonymous_class): Reversed Jan 12, 2000 extra argument
1728         patch. Fixed comments.
1729         (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
1730         anonymous_class_counter when declaring a toplevel class.
1731         (craft_constructor): Fixed constructor name when handling
1732         anonymous classes. Anonymous class constructors to feature hidden
1733         this$<n> parameter.
1734         (java_fix_constructors): Added comment.
1735         (java_check_final): Function removed.
1736         (java_complete_expand_methods): Fixed comment. Don't generate
1737         class data, save its outgoing constant pool instead.
1738         (verify_constructor_super): Skip anonymous class constructor
1739         hidden this$<n> parameter.
1740         (java_expand_classes): New local `saved_ctxp'. Removed call to
1741         java_expand_finals and java_check_final. Expand anonymous class
1742         constructors. Generate class data.
1743         (build_super_invocation): Skip anonymous class hidden this$<n>
1744         parameter.
1745         * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
1746         MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
1747         (set_java_signature): Likewise.
1748         
1749 Mon Jan 18 14:30:09 2000  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
1750
1751         * gjavah.c: Delete ACC_VISIBILITY define.
1752         * jcf.h: Add ACC_VISIBILITY define.
1753         * parse.y: final: rule tagged <value>.
1754         (java_check_regular_methods): Use ACC_VISIBILITY define for
1755         default package access check.
1756         (local_variable_declaration_statement): Use final: rule.
1757
1758 Mon Jan 17 11:58:17 2000  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
1759
1760         * parse.y (format_parameter:): Use final: rule instead of modifiers:.
1761         (final:): New rule.
1762
1763 2000-01-17  Tom Tromey  <tromey@cygnus.com>
1764
1765         * gjavah.c (print_field_info): Allow non-static final fields.
1766
1767 Fri Jan 14 18:03:41 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1768
1769         * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
1770         * parse.y (patch_anonymous_class): New function.
1771         (create_anonymous_class): Register incomplete type when the
1772         class/interface to extends/implement isn't known yet.
1773         (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
1774         (verify_constructor_super): Tuned error message.
1775
1776 Fri Jan 14 00:14:24 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1777
1778         * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
1779         (ANONYMOUS_CLASS_P): New macro.
1780         (TYPE_SIGNATURE, TYPE_JCF): New macros.
1781         (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
1782         * parse.y (create_class): Added leading argument.
1783         (maybe_create_class_interface_decl,
1784         check_class_interface_creation): Likewise.
1785         (craft_constructor): New function.
1786         (verify_constructor_super): Added argument in prototype.
1787         (class_declaration:): Inserted leading argument.
1788         (for_begin:): Use FOR_LOOP_P.
1789         (anonymous_class_creation): Create WFL of the anonymous class to
1790         instantiate. Call build_new_invocation. Added comments.
1791         (check_class_interface_creation): Handle parameter `anonymous' in
1792         verbose mode class creation announce.
1793         (link_nested_class_to_enclosing): Exclude anonymous classes.
1794         (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
1795         anonymous class, even though they appear to have an enclosing
1796         context.
1797         (create_interface): Pass extra argument to
1798         check_class_interface_creation.
1799         (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
1800         (create_class): Call check_class_interface_creation and
1801         maybe_create_class_interface_decl with extra new argument. Don't
1802         add private this$<n> to anonymous classes.
1803         (method_declarator): Insert hidden this$<n> to anonymous class
1804         constructors.
1805         (java_fix_constructors): Deleted code creating default
1806         constructor. Call craft_constructor instead.
1807         (java_check_regular_methods): Set `saw_constructor' to 1 for
1808         anonymous classes.
1809         (fix_constructors): Pass extra argument to verify_constructor_super.
1810         (verify_constructor_super): New local `sdecl', use it. Search for
1811         matching constructor (possibly featuring arguments) in super
1812         class.
1813         (lookup_method_invoke): Craft constructor according to arguments
1814         list when dealing with anonymous class constructors.
1815         (build_super_invocation): Pass arguments to anonymous class super
1816         constructors.
1817         (search_loop): Use FOR_LOOP_P.
1818         (labeled_block_contains_loop_p): Likewise.
1819         
1820 Wed Jan 12 00:38:47 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1821
1822         * class.c (set_super_info): Set CLASS_STATIC when appropriate.
1823         (enclosing_context_p): New function.
1824         (get_access_flags_from_decl): Handle CLASS_STATIC.
1825         (maybe_layout_super_class): Extra first argument passed to
1826         do_resolve_class.
1827         (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
1828         ID_INIT_P.
1829         * decl.c (access0_identifier_node): New global.
1830         (init_decl_processing): access0_identifier_node initialized. 
1831         (pushdecl): Set DECL_CONTEXT only on non type decls.
1832         * expr.c (lookup_field): Lookup inner class fields in enclosing
1833         contexts.
1834         (expand_invoke): Use ID_INIT_P.
1835         (expand_java_field_op): Use DECL_CLINIT_P.
1836         * java-tree.def (CLASS_LITERAL): New tree code.
1837         * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
1838         DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
1839         (struct lang_decl): New field `inner_access'.
1840         (enclosing_context_p): Prototyped.
1841         (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
1842         ID_CLINIT_P): New macros.
1843         (CLASS_STATIC): New macro.
1844         (CLASS_ACCESS0_GENERATED_P): New macro.
1845         (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
1846         TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
1847         INNER_CLASS_P): New macros.
1848         (DECL_INNER_CLASS_LIST): New macro.
1849         * jcf-parse.c (yyparse): Avoid the use of ANSI string
1850         concatenation.
1851         * jcf-write.c (generate_bytecode_insns): binop: Change the type of
1852         the shift value to int. Fixed typo in comment.
1853         * lex.c (inst_id, wpv_id): Initialize.
1854         * mangle.c (unicode_mangling_length): Take `$' into account.
1855         * parse.h (DRECOVER, RECOVER): Terminate properly.
1856         (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
1857         (typedef struct _jdep): New field `enclosing'.
1858         (JDEP_ENCLOSING): New macro.
1859         (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
1860         (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
1861         (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
1862         GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
1863         GET_ENCLOSING_CPC_CONTEXT): New macros.
1864         (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.    
1865         (do_resolve_class): Added extra argument in prototype.
1866         * parse.y (resolve_class): Added extra argument in prototype.
1867         (maybe_create_class_interface_decl): Likewise.
1868         (maybe_use_access_method, build_wfl_wrap): New functions.
1869         (java_complete_expand_classes, java_complete_expand_class):
1870         Likewise.
1871         (java_parser_context_push_initialized_field,
1872         java_parser_context_suspend, java_parser_context_resume):
1873         Likewise.
1874         (maybe_make_nested_class_name, make_nested_class_name,
1875         set_nested_class_simple_name_value,
1876         link_nested_class_to_enclosing, find_as_inner_class,
1877         find_as_inner_class_do, check_inner_class_redefinition,
1878         build_thisn_assign, build_current_thisn, build_access_to_thisn,
1879         maybe_build_thisn_access_method, build_outer_field_access,
1880         build_outer_field_access_methods, build_outer_field_access_expr,
1881         build_outer_method_access_method, build_new_access_id,
1882         build_outer_field_access_method, outer_field_access_p,
1883         outer_field_expanded_access_p, outer_field_access_fix,
1884         build_incomplete_class_ref, patch_incomplete_class_ref,
1885         create_anonymous_class): Likewise.
1886         (inst_id, wpv_id): New static global variables.
1887         (synchronized:): New rule, tagged <node>.
1888         (type_declaration:): No longer tagged <node>. Call POP_CPC in sub
1889         rules.
1890         (anonymous_class_creation:): New rule, tagged <node>.
1891         (NEW_TK): Tagged <node>.
1892         (type_literals, array_type_literal): New rules, tagged <node>.
1893         (class_declaration:): Removed action when reducing by class_body:
1894         (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
1895         using GET_CPC in sub-rules.
1896         (class_member_declaration): Handle inner classes.
1897         (method_declaration): When reducing method_header:, reset
1898         current_function_decl when appropriate.
1899         (method_declarator:): Set the number of formal parameter to 0 for
1900         method declared without arguments.
1901         (constructor_declarator:): Likewise.
1902         (static_initializer:): List of elements kept in a list.
1903         (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
1904         use of the keyword `static' for type declarations.
1905         (block_statement:): Handle inner class declarations.
1906         (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
1907         type qualified `this'.
1908         (class_instance_creation_expression): Use anonymous_class_creation:
1909         to handle inner class instances creation. Handle qualified `new'.
1910         (something_dot_new): Added appropriate actions.
1911         (create_new_parser_context): New function.
1912         (java_push_parser_context, java_parser_context_save_global,
1913         java_parser_context_suspend): Use create_new_parser_context.
1914         (check_modifiers): Changed leading comment.
1915         (check_class_interface_creation): Handle interclasses.
1916         (add_superinterfaces): Fixed comment.
1917         (create_interface): Build qualified name from the raw_name instead
1918         of its matching WFL. Push the initialized fields list. raw_name added
1919         as an extra argument to maybe_create_class_interface_decl.
1920         (create_class): Build qualified name from the raw_name instead of
1921         its matching WFL. Removed assignment to current_parsed_class_un.
1922         Call PUSH_ERROR before returning an error. Suspend the current
1923         parser context when processing an inner class. Push the
1924         initialized fields list. raw_name added as an extra argument to
1925         maybe_create_class_interface_decl. Add the private this$<n>
1926         field. 
1927         (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
1928         (register_fields): Get the class type from GET_CPC and handle
1929         previous errors.  Added code to handle the creation of static
1930         fields in inner classes. Initialized fields initialization
1931         statements kept in a list of lists.
1932         (maybe_generate_finit): Initialized fields initialization
1933         statements kept in a list of lists. Use GET_CPC.
1934         (maybe_generate_clinit): Likewise.
1935         (method_header): Use GET_CPC and GET_CPC_UN.
1936         (parser_qualified_classname): Handle inner classes.
1937         (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
1938         (java_fix_constructors): Hide pointer to enclosing context
1939         instance in constructor list when dealing with inner classes.
1940         (jdep_resolve_class): Call resolve_class with extra first argument
1941         JDEP_ENCLOSING.
1942         (resolve_class): Add enclosing context as a first extra argument
1943         to do_resolve_class.
1944         (do_resolve_class): Call find_as_inner_class. Handle WFLs
1945         properly.
1946         (resolve_no_layout): Extra argument added to resolve_class
1947         invocation.
1948         (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
1949         (java_get_real_method_name): Use GET_CPC_UN.
1950         (check_abstract_method_definitions): Use DECL_CLINIT_P.
1951         (java_check_abstract_methods): Handle static method declared in
1952         inner classes by an error.
1953         (java_check_regular_methods): Use DECL_CLINIT_P.
1954         (source_start_java_method): Also set DECL_MAX_LOCALS.
1955         (create_artificial_method): Call java_parser_context_save_global
1956         and java_parser_context_restore_global instead of saving/restoring
1957         the context by hand.
1958         (expand_start_java_method): Improved verbose mode message.
1959         (java_complete_expand_methods): Fixed leading comment. Use
1960         DECL_CLINIT_P.
1961         (fix_constructors): Added assignment to this$<n> if necessary.
1962         (java_expand_classes): Call java_complete_expand_classes instead
1963         of java_complete_expand_methods.
1964         (make_qualified_primary): Simplified.
1965         (merge_qualified_name): Optimized for missing left or right parts.
1966         (resolve_expression_name): Handle access to outer class fields from
1967         interclasses.
1968         (resolve_qualified_expression_name): New macro
1969         RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
1970         classes. Report error on non appropriate qualification of
1971         `new'. Handle qualified `this'.
1972         (not_accessible_p): Allow access to outer class private fields from
1973         inner classes.
1974         (patch_method_invocation): Handle method invocations through
1975         access methods and inner class constructor invocations.
1976         (find_applicable_accessible_methods_list): Search enclosing
1977         contexts of an inner class.
1978         (search_applicable_methods_list): Fixed typo.
1979         (argument_types_convertible): Handle inner class constructors'
1980         hidden outer context reference argument.
1981         (qualify_ambiguous_name): Handle qualified `this'.
1982         (java_complete_lhs): Handle use of field accessed through
1983         artificial access methods in various cases of assignments. Handle
1984         CLASS_LITERAL node.
1985         (check_final_assignment): Use DECL_CLINIT_P.
1986         (valid_ref_assignconv_cast_p): Handle the destination being an
1987         enclosing context of the source.
1988         (patch_unaryop): Handle use of field accessed through artificial
1989         access methods.
1990         (patch_return): Use DECL_CLINIT_P.
1991         (patch_throw_statement): Use DECL_CLINIT_P.
1992         (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
1993         * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
1994         ID_INIT_P.
1995         
1996 2000-01-16  Anthony Green  <green@cygnus.com>
1997
1998         * parse.y (build_string_concatenation): Only use
1999         StringBuffer(String) shortcut if String arg is constant.
2000
2001 Wed Jan 12 20:20:11 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2002
2003         * jcf-write.c (generate_bytecode_insns): binop: Change the type of
2004         the shift value to int. Fixed typo in comment.
2005
2006 2000-01-11  Mumit Khan  <khan@xraylith.wisc.edu>
2007
2008         * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
2009         * jcf-write.c: Likewise.
2010         * parse.y: Likewise.
2011         * parse.c: Regenerate.
2012
2013 2000-01-09  Anthony Green  <green@cygnus.com>
2014
2015         * jcf-write.c (generate_bytecode_insns): Emit invokeinterface
2016         bytecodes in the correct order.
2017
2018 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2019
2020         * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
2021
2022 Thu Jan  6 16:31:28 2000  Anthony Green  <green@cygnus.com>
2023
2024         * expr.c (java_lang_expand_expr): Switch to permanent obstack
2025         before building constant array decl.
2026
2027 Thu Jan  6 00:54:10 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2028
2029         * jcf-write.c (generate_byecode_conditional): Fixed indentation in
2030         method invocation and typo in conditional expression.
2031         (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
2032         the appropriate NOTE_POP.
2033         * parse.y (patch_binop): Shift value mask to feature the right
2034         type.
2035
2036 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2037
2038         * class.c (assume_compiled, assume_compiled_node): Add static
2039         prototype.
2040         (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
2041
2042         * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
2043
2044         * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
2045
2046         * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
2047         to `__modifier' to avoid stringifying it.
2048
2049         * parse.y (verify_constructor_circularity): Don't call a variadic
2050         function with a non-literal format string.
2051         (java_check_abstract_methods): Move unreachable code inside
2052         `continue' statement.
2053         (lookup_method_invoke): Call xstrdup, not strdup.
2054
2055         * expr.c (expand_java_field_op): Avoid the use of ANSI string
2056         concatenation.
2057
2058         * jcf-parse.c (yyparse): Likewise.
2059
2060         * jv-scan.c (main): Likewise.
2061         
2062 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2063
2064         * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
2065         ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
2066         ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
2067         concatenation.
2068
2069         * parse.y (synchronized, variable_redefinition_error,
2070         check_class_interface_creation, create_interface, create_class,
2071         method_header, finish_method_declaration,
2072         check_modifiers_consistency, method_declarator,
2073         complete_class_report_errors, check_abstract_method_definitions,
2074         java_check_regular_methods, check_throws_clauses,
2075         java_check_abstract_methods, read_import_dir,
2076         check_pkg_class_access, declare_local_variables, fix_constructors,
2077         cut_identifier_in_qualified, resolve_expression_name,
2078         resolve_qualified_expression_name, patch_method_invocation,
2079         java_complete_lhs, patch_assignment, try_builtin_assignconv,
2080         patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
2081         patch_exit_expr, patch_exit_expr, patch_switch_statement,
2082         patch_try_statement, patch_synchronized_statement,
2083         patch_throw_statement, check_thrown_exceptions,
2084         patch_conditional_expr): Likewise.
2085
2086 Fri Dec 24 00:25:29 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2087
2088         * Makefile.in (LIBDEPS): Added gcc's errors.o
2089         (../jcf-dump$(exeext):): Link with gcc's errors.o
2090         (../gcjh$(exeext):): Likewise.
2091         * expr.c (expand_java_NEW): Layout the entire target type instead of
2092         laying out its methods only.
2093         (lookup_field): Layout the class after having loaded it.
2094         * java-tree.h (java_debug_context): Declared.
2095         * jcf-io.c (toplev.h): Included.
2096         (find_class): Removed assignment to jcf's outofsynch
2097         field. Force source file to be read if newer than its matching
2098         class file. Tweaked debug messages.
2099         * jcf-parse.c (jcf_out_of_synch): Deleted.
2100         (read_class): Call to jcf_out_of_synch removed.
2101         * jcf.h (typedef struct JCF): Field `outofsynch' deleted.
2102         (jcf_out_of_synch): Prototype deleted.
2103         * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
2104         `deprecated' and `class_err': integer turned into bit fields.
2105         New bit fields `saved_data_ctx' and `saved_data'. Fixed comments.
2106         * parse.y (package_list): New global.
2107         (package_declaration:): Record newly parsed package name.
2108         (extra_ctxp_pushed_p): Static global deleted.
2109         (java_parser_context_save_global): Create buffer context for the
2110         purpose of saving globals, if necessary.
2111         (java_parser_context_restore_global): Pop context pushed for the
2112         purpose of saving globals, if necessary.
2113         (java_debug_context_do): New prototype and function.
2114         (java_debug_context): Likewise.
2115         (do_resolve_class): Use already parsed package names to qualify
2116         and lookup class candidate. 
2117         (java_pre_expand_clinit): Removed unnecessary local variable.   
2118
2119 1999-12-17  Tom Tromey  <tromey@cygnus.com>
2120
2121         * gjavah.c (decode_signature_piece): Print "::" in JArray<>.  This
2122         fixes PR gcj/119.
2123         (process_file): Use `\n\' at end of each line in string.
2124
2125 Thu Dec 16 00:09:45 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2126
2127         * expr.c (expand_invoke): Layout the loaded class before
2128         attempting to use it.
2129         (expand_java_field_op): Allow final field assignments to take
2130         place in $finit$.
2131         * typeck.c (convert): Return error_mark_node if expr is null. 
2132
2133 1999-12-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2134
2135         * class.c (class_depth): Return -1 if the class doesn't load
2136         properly.
2137         * expr.c (can_widen_reference_to): Check for errors during depth
2138         computation and return 0 accordingly.
2139         * jcf-parse.c (parse_source_file): Call java_fix_constructors to
2140         create default constructors and add an other error check.
2141         * parse.h (java_fix_constructors): Prototyped.
2142         * parse.y (java_pre_expand_clinit): Likewise.
2143         (build_super_invocation): Re-prototyped to feature one argument.
2144         (java_check_circular_reference): Directly use `current'.
2145         (java_fix_constructors): New function.
2146         (java_check_regular_methods): Don't create default constructors
2147         here, but abort if none were found.
2148         (java_complete_expand_methods): Pre-process <clinit> calling
2149         java_pre_expand_clinit.
2150         (java_pre_expand_clinit): New function.
2151         (fix_constructors): build_super_invocation invoked with the
2152         current method declaration as an argument.
2153         (build_super_invocation): Use the context of the processed method
2154         decl argument instead of current_class.
2155         * typeck.c (lookup_java_method): Take WFLs in method names into
2156         account.
2157         
2158 Tue Dec 14 14:20:16 1999  Per Bothner  <per@bothner.com>
2159
2160         * class.c (make_class_data): flag_keep_inline_functions to keep
2161         private methods in the method array.
2162
2163 1999-12-15  Anthony Green  <green@cygnus.com>
2164
2165         * check-init.c (check_init): Take into account both types of
2166         `throw's when checking for uninitialized variables.
2167
2168 Fri Dec 10 21:53:45 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2169
2170         * parse.y (java_complete_lhs): Force convertion of array
2171         dimensions to int_type_node, that's what runtime's ABI expects.
2172
2173 Fri Dec 10 16:13:48 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2174
2175         * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
2176         operand of a WFL, until the Java front-end gets fixed with regard
2177         to Mark Mitchell's gcc/tree.h patch (1999-12-04.)
2178
2179 1999-12-10  Andrew Haley  <aph@cygnus.com>
2180
2181         * parse.h (BUILD_THROW): Add support for sjlj-exceptions.
2182         decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
2183         expr.c (build_java_athrow): Add support for sjlj-exceptions.
2184         java-tree.h: Ditto.
2185         jcf-write.c: Ditto.     
2186
2187 Wed Dec  8 15:33:26 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2188
2189         * expr.c (java_lang_expand_expr): Switch to permanent obstack
2190         before calling expand_eh_region_start and expand_start_all_catch.
2191         * except.c (expand_start_java_handler): Switch to permanent
2192         obstack before calling expand_eh_region_start.
2193         (expand_end_java_handler): Switch to permanent obstack before
2194         calling expand_start_all_catch.
2195
2196 1999-12-5  Anthony Green  <green@cygnus.com>
2197
2198         * decl.c (init_decl_processing): Mark throw_node as a noreturn
2199         function with side effects.
2200         (init_decl_processing): Mark all memory allocating DECLs with
2201         DECL_IS_MALLOC.
2202
2203 Wed Dec  1 04:25:06 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2204
2205         * except.c (expand_end_java_handler): Call
2206         expand_resume_after_catch and end_catch_handler.
2207
2208 Tue Nov 30 12:36:15 1999  Anthony Green  <green@cygnus.com>
2209
2210         * verify.c (verify_jvm_instructions): Create new return label
2211         chain if non existant (don't rely on the verified state of the jsr
2212         target.)
2213
2214 Tue Nov 30 12:28:34 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2215
2216         * jcf-write.c (generate_byecode_insns): Fixed indentation for
2217         COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
2218
2219         * parse.y (patch_assignment): Removed bogus final class test on
2220         lhs when checking on whether to emit an ArrayStoreException runtime
2221         check.
2222         * expr.c (expand_java_arraystore): Likewise. 
2223
2224 1999-11-28 Anthony Green <green@cygnus.com>
2225
2226         * decl.c (find_local_variable): Reuse single slot decls when
2227           appropriate.
2228
2229 Wed Nov 24 17:33:26 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2230
2231         * jcf-parse.c (saw_java_source): Global variable removed.
2232         (read_class): Don't use `saw_java_source'. Added extra braces.
2233         (yyparse): Code setting `saw_java_source' removed.
2234
2235 1999-11-24  Mark Mitchell  <mark@codesourcery.com>
2236
2237         * except.c (emit_handlers): Zero catch_clauses after emitting them.
2238
2239 Tue Nov 23 17:29:40 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2240
2241         * verify.c (merge_type_state): Non verified subroutines being
2242         considered more than once to trigger passive type merge.
2243
2244 Tue Nov 23 10:55:18 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2245
2246         * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
2247         in case of error. Error message tuned.
2248
2249 1999-11-21  Anthony Green  <green@cygnus.com>
2250
2251         * constants.c (find_methodref_index): Unwrap method names before
2252         inserting them in the constant pool.
2253
2254         * jcf-parse.c (jcf_parse): Display `interface' when appropriate.
2255
2256         * class.c (assume_compiled_node): New typedef.
2257         (assume_compiled_tree): New static data.
2258         (find_assume_compiled_node): New function.
2259         (add_assume_compiled): New function.
2260         (assume_compiled): New function.
2261         * class.c (make_class_data): Use assume_compiled.
2262         (is_compiled_class): Use assume_compiled.
2263
2264         * java-tree.h (add_assume_compiled): Declare.
2265
2266         * lang.c (lang_decode_option): Parse new options.
2267
2268 Wed Nov 17 21:09:28 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2269
2270         * class.c (layout_class): Always convert TYPE_SIZE_UNIT to
2271         int_type_node: that's what `_Jv_AllocObject' expects.
2272
2273 Thu Nov 11 01:57:14 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2274
2275         * parse.y (lookup_method_invoke): Use lang_printable_name to
2276         reliably build the type name during error report. Fixes PR gcj/97.
2277
2278 1999-11-09  Tom Tromey  <tromey@cygnus.com>
2279
2280         * jcf-path.c: Include <sys/stat.h>.
2281         (jcf_path_init): Search for libjava.zip.  Fixes PR gcj/84.
2282         (DIR_UP): New macro.
2283
2284 Tue Nov  9 12:12:38 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2285
2286         * parse.y (source_end_java_method): Resume permanent allocation,
2287         reversing Apr 27 1998 patch.
2288         (patch_string_cst): Pop obstacks after having pushed the permanent
2289         ones.
2290
2291 1999-11-05  Tom Tromey  <tromey@cygnus.com>
2292
2293         * class.c (finish_class): Emit inlined methods if any native
2294         methods exist in the class.  Fixes PR gcj/85.
2295
2296 Thu Nov  4 16:27:01 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2297
2298         * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
2299         (qualify_ambiguous_name): Likewise.
2300         
2301 Wed Nov  3 15:20:02 MST 1999  Godmar Back <gback@cs.utah.edu>
2302
2303         * typeck.c: (lookup_java_method):  search all inherited
2304         interfaces when looking up interface method.
2305
2306 Mon Nov  1 23:42:00 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2307
2308         * parse.y (method_header:): Issue error message for rule `type
2309         error'.
2310         (synchronized:): Error report when not using synchronized.
2311         
2312 Mon Nov  1 01:32:48 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2313
2314         * parse.y (resolve_qualified_expression_name): Prevent `this' from
2315         being used before the superclass constructor has been called.
2316         (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
2317         instead of `CALL_THIS_CONSTRUCTOR_P'.
2318
2319 Sat Oct 30 21:35:13 1999  Todd T. Fries <todd@lighthouse.fries.net>
2320
2321         * check-init.c: Fix typo in comment.
2322
2323 Fri Oct 29 14:35:18 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2324
2325         * class.c (add_method_1): Set DECL_INLINE to 1 for private, static
2326         and final method.
2327
2328 Fri Oct 29 14:23:32 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2329
2330         * parse.y (expression_statement:): Call function to report
2331         improper invocation of a constructor.
2332         (parse_ctor_invocation_error): New function.
2333
2334 1999-10-26  Mark Mitchell  <mark@codesourcery.com>
2335
2336         * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
2337         remember_end_note.
2338
2339 1999-10-21  Tom Tromey  <tromey@cygnus.com>
2340
2341         * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
2342         in generated `main'.
2343
2344 Thu Oct 21 01:27:31 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2345
2346         * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
2347         (qualify_ambiguous_name): Likewise.
2348
2349 Wed Oct 20 01:41:47 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2350
2351         * parse.y (java_complete_tree): fold_constant_for_init to work on
2352         permanent_obstack.
2353         (java_complete_lhs): Likewise.
2354         (array_constructor_check_entry): Complete an initializer element
2355         on permanent_obstack.
2356
2357 1999-10-19  Tom Tromey  <tromey@cygnus.com>
2358
2359         * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
2360         From Mike Moreton <mike@pillim.demon.co.uk>.
2361
2362 1999-10-15  Greg McGary  <gkm@gnu.org>
2363
2364         * java-tree.h (flag_bounds_check): Remove extern decl.
2365         * lang.c (flag_bounds_check): Remove global variable.
2366         (lang_f_options): Remove "bounds-check" entry.
2367         (lang_init_options): Default flag_bounds_check to "on".
2368
2369 1999-10-14  Tom Tromey  <tromey@cygnus.com>
2370
2371         * jvgenmain.c (usage): New function.
2372         (main): Use it.  Also, handle `-D' options.
2373         * jvspec.c (lang_specific_driver): Recognize -D.
2374         (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.
2375
2376         * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
2377
2378 1999-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2379
2380         * jcf-dump.c (print_constant, disassemble_method): Don't call a
2381         variadic function with a non-literal format string.
2382
2383         * parse-scan.y (report_main_declaration): Likewise.
2384
2385         * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.
2386
2387         * parse.y (read_import_dir, patch_assignment, patch_binop,
2388         patch_array_ref): Likewise.
2389
2390         * typeck.c (build_java_array_type): Likewise.
2391
2392         * verify.c (verify_jvm_instructions): Likewise.
2393
2394 Tue Oct 12 22:28:10 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2395
2396         * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
2397
2398 1999-10-07  Anthony Green  <green@cygnus.com>
2399
2400         * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases
2401         where CHECK_PUT may fail for valid reasons.
2402
2403         * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3,
2404         UNSAFE_PUTN): New macros.
2405
2406 1999-10-04  Tom Tromey  <tromey@cygnus.com>
2407
2408         * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
2409         well.  Fixes Java PR gcj/59.
2410         * parse-scan.y (yyerror): Report errors.
2411
2412 Fri Sep 24 12:23:05 1999  Glenn Chambers  <GChambers@provsol.com>
2413
2414         * decl.c (insert_block): Remove unconditional `abort'.
2415
2416 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2417
2418         * decl.c (builtin_function): No longer static.  New arg CLASS.  Arg
2419         FUNCTION_CODE now of type int.  All callers changed.
2420         Set the builtin's DECL_BUILT_IN_CLASS.
2421
2422 1999-09-23  Tom Tromey  <tromey@cygnus.com>
2423
2424         * jvspec.c (lang_specific_driver): Don't read spec file if
2425         -fsyntax-only given.
2426
2427 1999-09-22  Tom Tromey  <tromey@cygnus.com>
2428
2429         * lang-specs.h: Added `%(jc1)' to the jc1 spec.
2430
2431         * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
2432         (WORDS_TO_LONG): Likewise.
2433         (WORDS_TO_DOUBLE): Likewise.
2434
2435 Tue Sep 14 16:24:19 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2436
2437         * jcf-write.c (RELOCATION_VALUE_0): New macro.
2438         (RELOCATION_VALUE_1): Likewise.
2439         (emit_iinc, emit_reloc, push_constant1, push_constant2,
2440         push_in_const, push_long_const): Prototyped.
2441         (push_constant1): Argument `index' is of type HOST_WIDE_INT.
2442         (push_constant2): Likewise.
2443         (push_int_const): Cast find_constant1's integer arguments to `jword'.
2444         (find_constant_wide): Cast find_constant2's integer arguments to
2445         `jword'.
2446         (find_constant_index): Cast find_constant2's and find_constant2's
2447         integer arguments to `jword'.
2448         (emit_pop): Argument `value' is of type HOST_WIDE_INT.
2449         (emit_switch_reloc): Use RELOCATION_VALUE_0.
2450         (emit_if): Use RELOCATION_VALUE_1.
2451         (emit_goto): Likewise.
2452         (emit_jsr): Likewise.
2453         (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
2454         argument to push_long_const to HOST_WIDE_INT.
2455
2456 1999-09-15  Andreas Schwab  <schwab@suse.de>
2457
2458         * Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
2459
2460 1999-09-20  Nick Clifton  <nickc@cygnus.com>
2461
2462         * lang.c (lang_decode_option): Extend comment.
2463
2464 Thu Sep 16 15:42:39 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2465
2466         * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
2467         instead of fndecl.
2468
2469 1999-09-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2470
2471         * gjavah.c (get_field_name, print_method_info, print_include,
2472         add_namelet): Use xmalloc, not malloc.
2473
2474         * jcf-depend.c (add_entry): Likewise.  Use xstrdup, not strdup.
2475         (munge): Use xrealloc, not realloc, trust xrealloc to handle a
2476         NULL pointer.
2477
2478         * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
2479
2480         * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
2481         
2482         * jcf-path.c (add_entry): Likewise.
2483
2484         * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
2485
2486         * jv-scan.c (xmalloc): Remove definition.
2487
2488         * jvgenmain.c (xmalloc): Likewise.
2489
2490         * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
2491
2492         * lex.c (java_store_unicode): Use xrealloc, not realloc.
2493
2494         * parse-scan.y: Use concat, not of xmalloc/assign/strcpy.  Use
2495         concat, not xmalloc/sprintf.
2496         (java_push_parser_context): Use xcalloc, not xmalloc/bzero.
2497         (xstrdup): Remove definition.
2498
2499         * parse.y (duplicate_declaration_error_p,
2500         constructor_circularity_msg, verify_constructor_circularity,
2501         check_abstract_method_definitions, java_check_regular_methods,
2502         java_check_abstract_methods, patch_method_invocation,
2503         check_for_static_method_reference, patch_assignment, patch_binop,
2504         patch_cast, array_constructor_check_entry, patch_return,
2505         patch_conditional_expr): Use xstrdup, not strdup.
2506
2507         * zextract.c (ALLOC): Use xmalloc, not malloc.
2508
2509 Sun Sep 12 23:30:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2510
2511         * Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
2512
2513         * jvspec.c: Include gcc.h.  Don't include gansidecl.h.
2514         (do_spec, lang_specific_pre_link, lang_specific_driver,
2515         input_filename, input_filename_length): Don't declare.
2516         (main_class_name, jvgenmain_spec, lang_specific_driver):
2517         Constify a char*.
2518         (lang_specific_driver): All calls to the function pointer
2519         parameter now explicitly call `fatal'. 
2520
2521 Sat Sep 11 16:46:44 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2522
2523         * parse.y (find_applicable_accessible_methods_list): Search
2524         abstract classes as interfaces.
2525
2526 Thu Sep  9 17:33:28 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2527
2528         * class.c (finish_class): We're now outside a valid method
2529         declaration. Tell the rest of gcc so.
2530
2531 1999-09-08  Bruce Korb  autogen@linuxbox.com
2532
2533         * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
2534
2535 1999-09-07  Tom Tromey  <tromey@cygnus.com>
2536
2537         * gjavah.c (add_class_decl): Generate include for gcj/array.h, not
2538         java-array.h.
2539         (decode_signature_piece): Don't emit "::" in JArray<>.
2540         (print_namelet): Only print trailing `;' when printing a class.
2541
2542 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2543
2544         * java-tree.h: Delete declarations for all tree nodes now moved to
2545         global_trees.
2546         * decl.c: Delete their definitions.
2547
2548 1999-09-04  Mark Mitchell  <mark@codesourcery.com>
2549
2550         * Make-lang.in (jc1): Depend on ggc-callbacks.o.
2551         * Makefile.in (OBJS): Add ggc-callbacks.o.
2552         (OBJDEPS): Likewise.
2553
2554 1999-09-03  Tom Tromey  <tromey@cygnus.com>
2555
2556         * parse.y (strip_out_static_field_access_decl): Return operand if
2557         it satisfies JDECL_P.
2558
2559 1999-09-02  Tom Tromey  <tromey@cygnus.com>
2560
2561         * gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
2562         Handle nested arrays, like `[[I'.
2563
2564 1999-09-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2565
2566         * class.c (finish_class): Remove unused parameter, all callers
2567         changed.
2568
2569         * expr.c (build_java_athrow): Change return type to void.
2570         (java_lang_expand_expr): Make sure each case in switch returns a
2571         value.
2572
2573         * java-tree.h (finish_class): Fix prototype to take void args.
2574
2575         * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
2576         (main): Issue return from main, not exit.
2577
2578         * jcf-parse.c (parse_class_file): Fix call to `finish_class'.
2579
2580         * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.
2581
2582         * jv-scan.c (main): Issue return from main, not exit.
2583
2584         * parse.y (check_abstract_method_definitions,
2585         java_check_abstract_method_definitions): Add static prototypes.
2586         (java_complete_expand_methods): Fix call to `finish_class'.
2587
2588         * verify.c (verify_jvm_instructions): Initialize variables `oldpc'
2589         and `prevpc'.
2590
2591 1999-08-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2592
2593         * lang.c (language_string): Constify.
2594
2595 1999-08-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2596
2597         * Makefile.in (LIBS): Fix definition so we link with $(CLIB).
2598         Remove hacks for stuff which comes from libiberty.
2599
2600         * Make-lang.in: Likewise.
2601
2602 Mon Aug 30 16:41:41 1999  Hans-Peter Nilsson  <hp@axis.se>
2603
2604         * Makefile.in (xref.o): Depend on xref.c explicitly.
2605
2606 1999-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2607
2608         * java-tree.h (lang_printable_name): Constify a char*.
2609
2610         * lang.c (lang_printable_name): Likewise.
2611
2612 Fri Aug 27 23:31:57 1999  Jeffrey A Law  (law@cygnus.com)
2613
2614         * gjavah.c, jcf-write.c, verify.c: Do not use C++ style
2615         comments in C code.
2616
2617 1999-08-26  Tom Tromey  <tromey@cygnus.com>
2618
2619         * gjavah.c (print_cxx_classname): Print "::" before qualified
2620         name.
2621
2622 Thu Aug 26 09:10:58 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2623
2624         * parse.y (lookup_cl): Changed leading comment. Now does its best
2625         to set the column number.
2626         (qualify_ambiguous_name): Take WFL wrappers into account.
2627
2628 Wed Aug 25 15:37:15 1999  Gregg Townsend  <gmt@cs.arizona.edu>
2629
2630         * verify.c (verify_jvm_instructions): Don't check instruction
2631         validity beyond end of method.
2632
2633 1999-08-25  Tom Tromey  <tromey@cygnus.com>
2634
2635         * jvspec.c (lang_specific_driver): Correctly handle --help again.
2636
2637 1999-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2638
2639         * gjavah.c (print_name, print_base_classname, utf8_cmp,
2640         cxx_keyword_subst, generate_access, name_is_method_p,
2641         get_field_name, print_field_name, super_class_name, print_include,
2642         decode_signature_piece, print_class_decls, usage, help,
2643         java_no_argument, version, add_namelet, print_namelet): Add static
2644         prototype.
2645         (print_base_classname, utf8_cmp, cxx_keyword_subst,
2646         name_is_method_p): Constify a char*.
2647         (get_field_name): Likewise.  Prefer xstrdup over malloc/strcpy.
2648         Provide a final else clause in an if-else-if.
2649         (print_field_info): Add missing final arg in function call to
2650         `print_field_name'.
2651         (print_method_info, decompile_method, decode_signature_piece,
2652         print_c_decl, print_full_cxx_name, print_stub,
2653         print_mangled_classname, super_class_name, print_include,
2654         add_namelet, add_class_decl, print_class_decls, process_file,
2655         help): Constify a char*.
2656
2657         * jcf-write.c (jcf_handler, push_constant1, push_constant2,
2658         push_int_const, find_constant_wide, find_constant_index,
2659         push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
2660         emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
2661         emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
2662         emit_if, emit_goto, emit_jsr, call_cleanups,
2663         make_class_file_name): Add static prototypes.
2664         (generate_bytecode_return, generate_bytecode_insns): Pass a
2665         NULL_PTR, not a NULL_TREE.
2666
2667         * jv-scan.c: Include "jcf.h".
2668         (main): Declare using DEFUN macro.
2669
2670         * jvspec.c (find_spec_file, lang_specific_pre_link,
2671         lang_specific_driver): Add prototypes.
2672         (find_spec_file): Constify a char*.
2673
2674         * keyword.gperf (hash, java_keyword): Add prototypes.
2675
2676         * lang.c (lang_print_error): Add static prototype.
2677         (lang_init): Prefer memcpy over bcopy to avoid casts.
2678
2679         * lex.c (yylex): Add static prototype.
2680
2681         * parse-scan.y: Include "lex.c" earlier.
2682
2683         * parse.h: Remove redundant declaration for `yylex'.
2684
2685         * parse.y (java_decl_equiv, binop_compound_p, search_loop,
2686         labeled_block_contains_loop_p): Add static prototypes.
2687         (not_accessible_p): Make static to match prototype.
2688
2689         * verify.c (start_pc_cmp): Don't needlessly cast away const.
2690
2691 Sun Aug 22 11:07:41 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2692
2693         * parse.y (check_method_redefinition): Changed leading comment.
2694         (check_abstract_method_definitions): New function.
2695         (java_check_abstract_method_definitions): New function.
2696         (java_check_regular_methods): Call it.
2697         (verify_constructor_super): Fixed indentation.
2698         (lookup_method_invoke): Likewise.
2699
2700 Thu Aug 19 10:26:18 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2701
2702         * parse.y (method_header): Return a null pointer if the current
2703         class node is null.
2704         (finish_method_declaration): Return if the current function decl
2705         is null.
2706         (source_start_java_method): Likewise.
2707         (java_method_add_stmt): Likewise.
2708
2709 Wed Aug 18 13:17:15 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2710
2711         * class.c (emit_register_class): Removed unnecessary call to
2712         start_sequence.
2713         * parse.y (labeled_block_contains_loop_p): Removed unused local
2714         variable.
2715
2716 Tue Aug 17 22:51:44 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2717
2718         * parse.y (java_refold): Added prototype.
2719
2720 Tue Aug 17 21:48:41 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2721
2722         * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
2723         (java_stabilize_reference): Removed unnecessary `else'.
2724         (java_complete_lhs): Set flag to remember boolean. Call
2725         java_refold. Added comments.
2726         (java_decl_equiv): New function.
2727         (binop_compound_p): Likewise.
2728         (java_refold): Likewise.
2729         (patch_unaryop): Striped static field access assigned to decl and
2730         op. Changed promotion scheme for ++/-- operators.
2731         (search_loop): New function.
2732         (labeled_block_contains_loop_p): Likewise.
2733         (patch_loop_statement): Call labeled_block_contains_loop_p. Added
2734         comment.
2735         (patch_bc_statement): Call search_loop. Fixed comment.
2736
2737 1999-08-14  Anthony Green  <green@cygnus.com>
2738
2739         * expr.c (java_lang_expand_expr): Mark static array data as
2740         referenced.
2741
2742 Tue Aug 10 00:28:31 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2743
2744         * jvgenmain.c (main): NUL-terminate name_obstack.
2745
2746 1999-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2747
2748         * check-init.c (check_bool2_init, done_alternative): Add static
2749         prototypes.
2750
2751         * class.c (add_interface_do, maybe_layout_super_class): Likewise.
2752         (add_method, build_utf8_ref, build_class_ref,
2753         append_gpp_mangled_type, layout_class_method): Constify a char*.
2754
2755         * decl.c (push_promoted_type, make_binding_level): Add static
2756         prototypes.
2757         (push_promoted_type, pushdecl): Constify a char*.
2758
2759         * except.c (find_handler_in_range, link_handler,
2760         check_start_handlers): Add static prototypes.
2761
2762         * expr.c (process_jvm_instruction): Constify a char*.
2763
2764         * gjavah.c (main): Constify a char*.
2765
2766         * java-tree.h (verify_jvm_instructions, process_jvm_instruction):
2767         Constify a char*.
2768
2769         * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
2770         static prototypes.
2771         (add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
2772         munge, print_ents): Constify a char*.
2773
2774         * jcf-dump.c (disassemble_method): Constify a char*.
2775         (print_constant_pool, print_exception_table): Add static prototypes.
2776         (print_constant, print_exception_table, main, disassemble_method):
2777         Constify a char*.
2778
2779         * jcf-io.c (find_classfile, find_class): Likewise.
2780
2781         * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
2782         (set_source_filename, predefined_filename_p): Add static prototypes.
2783         (set_source_filename, get_constant, get_class_constant,
2784         find_in_current_zip): Constify a char*.
2785
2786         * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
2787         static prototypes.
2788         (add_entry, add_path, jcf_path_classpath_arg,
2789         jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
2790
2791         * jcf-reader.c (get_attribute, jcf_parse_preamble,
2792         jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
2793         jcf_parse_one_method, jcf_parse_methods,
2794         jcf_parse_final_attributes): Add static prototypes.
2795         (get_attribute): Constify a char*.
2796
2797         * jcf.h (find_class, find_classfile, jcf_dependency_set_target,
2798         jcf_dependency_add_target, jcf_path_classpath_arg,
2799         jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
2800
2801         * jv-scan.c (main): Constify a char*.
2802         (gcc_obstack_init): Add prototype arguments.
2803
2804         * jvgenmain.c (gcc_obstack_init): Likewise.
2805         (main): Constify a char*.
2806
2807         * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
2808         static prototypes.
2809         (put_decl_string, lang_print_error): Constify a char*.
2810         (lang_init): Remove redundant extern prototype.
2811         
2812         * mangle.c (emit_unicode_mangled_name): Constify a char*.
2813
2814         * typeck.c (convert_ieee_real_to_integer, parse_signature_type):
2815         Add static prototypes.
2816         (get_type_from_signature): Constify a char*.
2817
2818         * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
2819         Add static prototypes.
2820         (start_pc_cmp): Prefer PTR over GENERIC_PTR.
2821         (verify_jvm_instructions): Constify a char*.
2822
2823         * xref.c (xref_flag_value): Likewise.
2824         
2825         * xref.h (xref_flag_value): Likewise.
2826
2827         * zextract.c (makeword, makelong): Add static prototypes.
2828         (makeword, makelong): Constify a uch*.
2829
2830 1999-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2831
2832         * lang.c (java_dummy_print): Constify a char*.
2833         (lang_print_error): Likewise.
2834         (lang_init): Remove redundant prototype for `print_error_function'.
2835         (lang_init_source): Likewise.
2836         (lang_identify): Constify a char*.
2837         
2838 1999-08-09  Tom Tromey  <tromey@cygnus.com>
2839
2840         * javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
2841         (WORDS_TO_LONG): Likewise.
2842         (WORDS_TO_DOUBLE): Likewise.
2843
2844 1999-08-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2845
2846         * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).
2847
2848         * expr.c (java_stack_pop, java_array_data_offset,
2849         build_java_throw_out_of_bounds_exception, case_identity,
2850         build_java_check_indexed_type): Add static prototypes.
2851         (linenumber_table, expand_invoke, expand_java_field_op,
2852         build_primtype_type_ref, expand_byte_code): Constify a char*.
2853
2854         * java-tree.h (build_primtype_type_ref, linenumber_table):
2855         Constify a char*.
2856         (java_lang_expand_expr): Add prototype.
2857
2858         * lang.c: Include rtl.h and expr.h.  Remove extern prototype for
2859         `java_lang_expand_expr'.
2860
2861         * lex.c (java_lex_error): Constify a char*.
2862         (java_get_unicode, java_read_char, java_allocate_new_line,
2863         java_unget_unicode, java_sneak_unicode): Prototype.
2864
2865         * parse-scan.y (current_class, package_name, method_declarator,
2866         report_class_declaration, yyerror): Constify a char*.
2867
2868         * parse.h (java_report_errors): Prototype.
2869         (yyerror): Constify a char*.
2870
2871         * parse.y (classitf_redefinition_error, check_modifiers,
2872         parse_jdk1_1_error, lookup_package_type,
2873         lookup_package_type_and_set_next, get_printable_method_name,
2874         purify_type_name): Constify a char*.
2875         (build_super_invocation, maybe_generate_finit,
2876         verify_constructor_super, parser_add_interface,
2877         add_superinterfaces, jdep_resolve_class, note_possible_classname,
2878         java_complete_expand_methods, java_expand_finals,
2879         cut_identifier_in_qualified, java_stabilize_reference,
2880         do_unary_numeric_promotion, operator_string, do_merge_string_cste,
2881         merge_string_cste): Prototype.
2882         (single_type_import_declaration, yyerror,
2883         variable_redefinition_error, build_array_from_name,
2884         build_unresolved_array_type, check_class_interface_creation,
2885         resolve_class, complete_class_report_errors,
2886         note_possible_classname, read_import_dir,
2887         find_in_imports_on_demand, resolve_package, fix_constructors,
2888         check_deprecation, lookup_method_invoke,
2889         maybe_build_primttype_type_ref, array_constructor_check_entry):
2890         Constify a char*.
2891         (java_complete_expand_methods, java_expand_finals): Make static.
2892         (convert_narrow): Remove static prototype.
2893
2894 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2895
2896         * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.
2897
2898 1999-08-02  Richard Henderson  <rth@cygnus.com>
2899
2900         * decl.c: Include defaults.h instead of expr.h.
2901         * parse.y: Likewise.
2902
2903 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
2904
2905         * java/decl.c (start_java_method): Change all uses of
2906         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
2907         Ensure expr.h is included.
2908         * java/expr.c (pop_arguments): Ditto.
2909         * java/parse.y (expand_start_java_method): Ditto.
2910
2911 1999-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2912
2913         * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
2914
2915 1999-07-31  Bernd Schmidt  <bernds@cygnus.co.uk>
2916
2917         * decl.c: Include "function.h".
2918         * except.c: Likewise.
2919         * parse.y: Likewise.
2920         * Makefile.in: Update dependencies.
2921
2922 1999-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2923
2924         * expr.c (build_java_soft_divmod): Provide a default case in switch.
2925         (java_lang_expand_expr): Mark parameters `target', `tmode' and
2926         `modifier' with ATTRIBUTE_UNUSED.
2927
2928         * gjavah.c (process_file): Add braces around ambiguous `else'.
2929
2930         * jcf-dump.c (print_access_flags, localvar_free): Change return
2931         type to void.
2932
2933         * parse.y (java_complete_expand_method): Initialize variable
2934         `exception_copy'.
2935         (resolve_qualified_expression_name): Likewise for `field_decl'.
2936         (patch_method_invocation): Likewise for `class_to_search'.
2937         (qualify_ambiguous_name): Likewise for `name' and `ptr_type'.
2938         (patch_assignment): Likewise for `lhs_type'.
2939
2940         * verify.c (verify_jvm_instructions): Remove unused variable
2941         `caller'.
2942
2943 1999-07-25  Richard Henderson  <rth@cygnus.com>
2944
2945         * decl.c (va_list_type_node): New.
2946
2947 1999-07-25  Anthony Green  <green@cygnus.com>
2948
2949         * gjavah.c (print_stub): New function.
2950         (METHOD_IS_NATIVE): New macro.
2951         (print_mangled_classname): Make static.
2952         (HANDLE_END_FIELD): Don't emit fields during stub generation.
2953         (process_file): Perform stub generation.
2954         (HANDLE_METHOD): Don't emit class decls during stub
2955         generation.
2956         (HANDLE_END_METHOD): Take into account stub generation.
2957         (print_method_info): Handle stub generation.
2958         (print_stub): New function.
2959         (print_cxx_classname): Make signature consistant with others.
2960         (help): Describe -stubs option.
2961         (main): Create stub file.
2962         (version): Use version.c.
2963         (print_full_cxx_name): New function.
2964         (print_c_decl): Use print_full_cxx_name.
2965
2966 Thu Jul 22 12:41:12 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2967
2968         * check-init.c (check_init): Handle MAX_EXPR.
2969
2970 1999-07-15  Andrew Haley  <aph@cygnus.com>
2971
2972         * lang.c (flag_use_divide_subroutine): New variable.
2973         * typeck.c: (convert_ieee_real_to_integer): Bounds check
2974         fp-to-integer conversion.
2975         (convert): Call convert_ieee_real_to_integer when flag_fast_math
2976         is not set.
2977
2978         * expr.c (build_java_soft_divmod): New function.
2979         (build_java_binop): Call build_java_soft_divmod if
2980         flag_use_divide_subroutine is set.
2981         * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
2982         soft_lrem_node: new builtin functions.
2983         (init_decl_processing) Initialize the new builtins.
2984         * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
2985         soft_lrem_node: new builtin functions.
2986         (build_java_soft_divmod): New function.
2987         * parse.y: Call build_java_soft_divmod if
2988         flag_use_divide_subroutine is set.
2989         * parse.c: Rebuilt.
2990
2991         * jvspec.c (lang_specific_driver): Always allow an extra arg (for
2992         a --specs= arg) even if not linking.
2993         * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
2994         -fuse-divide-subroutine
2995
2996 Tue Jul 20 13:20:05 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2997
2998         * parse.y (resolve_and_layout): Check methods only once.
2999         (resolve_qualified_expression_name): Verify thrown exceptions
3000         compatibility.
3001         (check_thrown_exceptions): Reject exceptions thrown in
3002         initializer. Error message tuned.
3003         
3004 1999-07-14  Andrew Haley  <aph@cygnus.com>
3005
3006         * expr.c (expand_expr): Do not return the last statement in a
3007         block as the block's value.
3008
3009 Sat Jul  3 22:26:32 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3010
3011         * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
3012         CALL_EXPR, to avoid order of evaluation changes.
3013
3014 Fri Jul  2 17:44:08 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3015
3016         * parse.y (qualify_ambiguous_name): Do not use
3017         IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
3018
3019 Thu Jul  1 23:31:16 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3020
3021         * check-init.c (check_init): Handle MAX_EXPR.
3022         * expr.c (force_evaluation_order): Force method call arguments to
3023         be evaluated in left-to-right order.
3024         * parse.y (qualify_ambiguous_name): Loop again to qualify
3025         NEW_ARRAY_EXPR properly.
3026
3027 Wed Jun 30 17:27:58 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3028
3029         * parse.y (patch_invoke): Resolve unresolved invoked method
3030         returned type.
3031         (qualify_ambiguous_name): STRING_CST to qualify expression for
3032         type name resolution.
3033
3034 1999-06-24  Andrew Haley  <aph@cygnus.com>
3035
3036         * class.c (finish_class): Whenever a deferred method is
3037         output, rescan the list of methods to see if a new candidate for
3038         output can be found.
3039
3040 1999-06-28  Tom Tromey  <tromey@cygnus.com>
3041
3042         * jvspec.c (lang_specific_driver): Recognize --help.
3043
3044 Fri Jun 25 13:35:19 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3045
3046         * parse.y (resolve_package): Fixed bogus return statement.
3047         (patch_method_invocation): Resolve method invocation beginning with
3048         a package name qualifier.
3049
3050 1999-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3051
3052         * Make-lang.in (java.stage1): Depend on stage1-start.
3053         (java.stage2): Likewise for stage2-start.
3054         (java.stage3): Likewise for stage3-start.
3055         (java.stage4): Likewise for stage4-start.
3056
3057 Thu Jun 24 13:12:15 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3058
3059         * parse.y (java_complete_lhs): When doing cross referencing, don't
3060         try to keep file location on a WFL expanded as a CALL_EXPR.
3061
3062 Wed Jun 23 14:37:15 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3063
3064         * parse.y (finish_method_declaration): Insert a RETURN_EXPR when
3065         compiling to class file a void method with an empty method body.
3066         As a side effect, the bytecode backend will generate the
3067         appropriate `return' instruction.
3068         
3069 Tue Jun 22 20:43:49 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3070
3071         * parse.y (lookup_package_type_and_set_next): New function prototype.
3072         (resolve_package): Search current and imported packages.
3073         (lookup_package_type_and_set_next): New function.
3074
3075 1999-06-22  Andrew Haley  <aph@cygnus.com>
3076
3077         * verify.c (verify_jvm_instructions): Check for pending blocks
3078         before invalid PC test and opcode switch, not after.
3079
3080 1999-06-21  Andrew Haley  <aph@cygnus.com>
3081
3082         * except.c (find_handler_in_range): The upper limit for exception
3083         ranges is exclusive, not inclusive: (start <= pc < end).  
3084         (link_handler): find child pointer which points to outer by
3085         searching sibling list: previous code incorrectly assumed that
3086         outer->outer->first_child must point to outer.
3087         * verify.c (verify_jvm_instructions): FIXME added to code for
3088         `athrow'.
3089         (verify_jvm_instructions): Do not assume that the last block
3090         processed in a subroutine is a block which ends with a `ret'
3091         instruction.  With some control flows it is possible that the last
3092         block ends with an `athrow'.
3093
3094 Mon Jun 14 13:13:39 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3095
3096         * parse.y (qualify_ambiguous_name): Reorganized the post
3097         evaluation of non WFL leading expression nodes.
3098
3099 Fri Jun 11 21:37:18 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3100
3101         * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
3102         CONVERT_EXPR.
3103
3104 Thu Jun 10 22:26:17 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3105
3106         * parse.y (qualify_ambiguous_name): Handle qualified expression
3107         beginning with a STRING_CST.
3108
3109 Thu Jun 10 20:27:25 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3110
3111         * parse.y (register_fields): Set DECL_INITIAL on both
3112         pre-initialized static and public fields.
3113         (resolve_field_access): Static field access expressions to always
3114         use pointer types.
3115         (qualify_ambiguous_name): Work out buried CALL_EXPR for proper
3116         qualification. CONVERT_EXPR to be resolved as an expression name.
3117         (java_complete_lhs): Identify and access qualified final
3118         initialized field in switch statement case expression.
3119         (fold_constant_for_init): Pre-initialized field decl constant to
3120         be folded.
3121
3122 Mon Jun  7 16:09:51 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3123
3124         * parse.y (note_possible_classname): Mark returned node with
3125         QUALIFIED_P only if the original class name contained a '/'.
3126
3127 Sat Jun  5 11:46:59 1999  Anthony Green  <green@cygnus.com>
3128
3129         * Make-lang.in (gcjh): More parallel build fixes.
3130
3131 1999-06-03  Mike Stump  <mrs@wrs.com>
3132
3133         * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds.
3134
3135 Wed Jun  2 10:44:38 1999  Anthony Green  <green@cygnus.com>
3136
3137         * except.c (link_handler): Chain exception handlers in order.
3138
3139 Wed Jun  2 10:41:24 1999  Anthony Green  <green@cygnus.com>
3140
3141         * expr.c (expand_byte_code): Fill unreachable bytecode regions
3142         with nops and process as usual in order to always set correct EH
3143         ranges.  Emit detailed warnings about unreachable bytecodes.
3144
3145 Wed Jun  2 10:35:13 1999  Anthony Green  <green@cygnus.com>
3146
3147         * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as
3148         constant.
3149
3150 Fri May 28 18:22:45 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3151
3152         * parse.y (lookup_field_wrapper): Unified returned value to NULL
3153           or the searched field decl.
3154         
3155 Fri May 28 11:34:05 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3156
3157         * parse.y (fold_constant_for_init): Convert numerical constant
3158         values to the type of the assigned field.
3159
3160 Thu May 27 19:57:40 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3161
3162         * expr.c (lookup_field): Relaxed the test on class loading error
3163         detection.
3164         * parse.y (fold_constant_for_init): Enabeled old code.
3165
3166 Wed May 26 18:06:02 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3167
3168         * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
3169         decide the validity of the cast of a java.lang.Cloneable reference
3170         to an array.
3171         (patch_conditional_expr): Fixed first argument passed to
3172         binary_numeric_promotion.
3173
3174 Wed May 26 15:33:06 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3175
3176         * parse.y (qualify_ambiguous_name): Take into account that a
3177         CONVERT_EXPR might specify a type as a WFL.
3178
3179 Tue May 25 15:06:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3180  
3181         * parse.y (patch_assignment): Save the rhs before using it as an
3182         argument to _Jv_CheckArrayStore.
3183  
3184 Tue May 25 11:23:59 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3185
3186         * lex.c (java_parse_doc_section): Fixed `tag' buffer size.
3187
3188 Mon May 24 13:26:00 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3189
3190         * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
3191         floating point litteral only when the exponent indicator has been
3192         parsed.
3193
3194 Sat May 22 13:54:41 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3195
3196         * parse.y (formal_parameter:): Construct argument tree list
3197         element even if a yet unsupported final parameter was encountered.
3198
3199 Tue May 18 00:28:58 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3200
3201         * parse.y (finish_method_declaration): Issue errors for native or
3202         abstract methods declared with a method body, as well as for non
3203         native or non abstract methods with no method body.
3204
3205 1999-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3206
3207         * class.c (build_utf8_ref): Initialize variable `field'.
3208
3209         * decl.c (init_decl_processing): Initialize variable `field'.
3210
3211         * expr.c (build_known_method_ref): Mark parameters `method_type',
3212         `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
3213         (process_jvm_instruction): Likewise for parameter `length'.
3214
3215         * jvspec.c (lang_specific_driver): Mark variables `saw_math',
3216         `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
3217         ATTRIBUTE_UNUSED.
3218
3219         * parse.y (maybe_generate_clinit): Remove unused variable
3220         `has_non_primitive_fields'.
3221         (find_in_imports_on_demand): Initialize variables `node_to_use'
3222         and `cl'.
3223         (patch_binop): Likewise for variable `prom_type'.
3224         (patch_unaryop): Likewise for variable `prom_type'.
3225
3226         * verify.c (verify_jvm_instructions): Likewise for variable `last'.
3227
3228         * xref.c (xref_table): Add missing initializer.
3229
3230 1999-05-14  Tom Tromey  <tromey@cygnus.com>
3231
3232         * java-except.h (struct eh_range): Removed unused `next' member.
3233         * verify.c (verify_jvm_instructions): Call check_nested_ranges
3234         after adding all exception handlers.  Sort exception ranges in
3235         order of start PC.
3236         (struct pc_index): New structure.
3237         (start_pc_cmp): New function.
3238         * except.c (add_handler): Return `void'.  Don't call link_handler;
3239         instead construct an ordinary linked list and do range
3240         coalescing.
3241         (check_nested_ranges): New function.
3242         (link_handler): Changed interface to allow merging of eh_ranges.
3243         Split overlapping ranges.  Return `void'.
3244
3245 Mon May 17 19:20:24 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3246
3247         * parse.y (constructor_block_end:): New rule, tagged <node>.
3248         (constructor_body:): Use `constructor_block_end' instead of
3249         `block_end'.
3250
3251 Mon May 17 18:01:40 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3252
3253         * parse.y (statement_nsi:): Pop `for' statement block.
3254         (java_complete_lhs): Labeled blocks containing no statement are
3255         marked as completing normally.
3256
3257 Fri May 14 12:31:08 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3258
3259         * xref.c (xref_set_current_fp): New function, defined.
3260         * xref.h (xref_set_current_fp): New function, prototyped.
3261
3262 Fri May 14 11:57:54 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3263
3264         * check-init.c (check_init): Take into account that
3265         LABELED_BLOCK_STMT can be empty.
3266
3267 Thu May 13 18:30:48 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3268
3269         * parse.y (java_check_regular_methods): Warning check on not
3270         overriding methods with default access in other packages does not
3271         apply to `<clinit>'.
3272         (java_complete_lhs): If block body is an empty_stmt_node, replace
3273         it by NULL_TREE. This prevents gcc from generating an irrelevant
3274         warning.
3275
3276 Thu May 13 13:23:38 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3277
3278         * check-init.c (check_init): Removed code accepting to see things
3279         falling through default:, when doing xrefs.
3280         * java-tree.h (do_not_fold): New global variable, declared.
3281         * parse.y (do_not_fold): New global variable, defined.
3282         (java_complete_expand_method): Set `do_not_fold' to the value of
3283         `flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
3284         and reinstall them after them have been purged; do not check for
3285         initializations; do not issue missing return errors.
3286         (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
3287         when doing xrefs.
3288         (patch_binop): Skip the fold part when doing xrefs.
3289         (build_string_concatenation): Skip the concatenation part when
3290         doing xrefs.
3291         (patch_synchronized_statement): Do not generate a try-finally when
3292         doing xrefs.
3293         (patch_throw_statement): When doing xrefs, do not call BUILD_THROW
3294         and keep the location where the throw was seen.
3295         * typeck.c (convert): When `do_not_fold' is set, do not attempt
3296         any treatment on the converted node an simply return a NOP_EXPR of
3297         the targeted type.
3298         * xref.c (xref_get_data): New function, defined.
3299         * xref.h (xref_get_data): New function, declared.
3300         (XREF_GET_DATA): Use xref_get_data.
3301         
3302 1999-05-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3303
3304         * gjavah.c (print_include): Cast the result of `strlen' to int
3305         when comparing against a signed value.
3306         (add_namelet): Likewise.
3307
3308 1999-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3309
3310         * expr.c (expand_invoke): Mark parameter `nargs' with
3311         ATTRIBUTE_UNUSED.
3312         (PRE_LOOKUP_SWITCH): Likewise for variable `match'.
3313
3314         * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with
3315         ATTRIBUTE_UNUSED.
3316
3317         * jcf-reader.c (get_attribute): Cast a value to long
3318         when comparing against a signed expression.  Likewise.
3319
3320         * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or
3321         HOST_BITS_PER_CHAR.
3322
3323 1999-05-11  Andrew Haley  <aph@cygnus.com>
3324
3325         * parse.y (source_end_java_method): If the current method contains
3326         any exception handlers, force asynchronous_exceptions: this is
3327         necessary because signal handlers in libjava may throw exceptions.
3328         * decl.c (end_java_method): Ditto.
3329
3330 1999-05-11  Tom Tromey  <tromey@cygnus.com>
3331
3332         * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x
3333         flags.
3334         * jvspec.c (THREAD_NAME): Removed.
3335         (GC_NAME): Likewise.
3336         (MATHLIB): Likewise.
3337         (WITHLIBC): Likewise.
3338         (GCLIB): Likewise.
3339         (THREADLIB): Likewise.
3340         (MATH_LIBRARY): Likewise.
3341         (lang_specific_driver): Don't add `-l' options to command line.
3342         Instead, add a single --specs option.  Recognize `-L' options and
3343         use them to search for spec file.
3344         (find_spec_file): New function.
3345         (SPEC_FILE): New define.
3346
3347 Tue May 11 11:46:36 1999  Dave Brolley  <brolley@cygnus.com>
3348
3349         * lang-options.h: -MD, -MMD, -M and -MM not needed here for
3350         cpplib-enabled build.
3351
3352 1999-05-05  Per Bothner  <bothner@cygnus.com>
3353
3354         * class.c (make_field_value):  DECL_INITIAL may be a string literal;
3355         temporarily zero it while calling rest_of_decl_compilation.
3356
3357         * java-tree.h (string_ptr_type_node):  Add declaration.
3358         * decl.c:  Define and initialize string_ptr_type_node.
3359         * parse.y (patch_string_cst):  Use string_ptr_type_node.
3360
3361         * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P):  Removed.
3362         * parse.y (for_statement):  Now unconditionally exit_block.
3363         (finish_labeled_statement):  No longer exit_block if for-loop.
3364         (patch_loop_statement):  Check harder if the loop is already labeled.
3365
3366         * parse.y (patch_initialized_static_field):  Removed function.
3367         (maybe_generate_clinit):  Removed special handling for interfaces.
3368         (java_complete_expand_methods):  Do a preliminary java_complete_tree
3369         on <clinit> to determine if it can be removed.
3370         (java_complete_expand_method):  Remove special handling for <clinit>.
3371         (java_complete_lhs):  For BLOCK and EXPR_WITH_FILE_LOCATION
3372         optimize if we get back empty_stmt_node.
3373         For MODIFY_EXPR, re-do checking of static initializers.
3374         (fold_constant_for_init):  Don't return immediate if VAR_DECL.
3375         For VAR_DECL, pass correct context.
3376