OSDN Git Service

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