OSDN Git Service

* doc/include/gcc-common.texi: Define DEVELOPMENT.
[pf3gnuchains/gcc-fork.git] / gcc / java / ChangeLog
1 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2
3         * gcj.texi: Include gcc-common.texi.
4         * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
5         $(srcdir)/doc/include/gcc-common.texi.
6
7 2002-12-22  Anthony Green  <green@redhat.com>
8
9         * gcj.texi (Limitations): Add note about org.xml.sax and
10         org.w3c.dom.
11
12 2002-12-20  Tom Tromey  <tromey@redhat.com>
13
14         * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
15         where minimum case value is Integer.MIN_VALUE.
16         Fixes PR java/8955.
17
18 2002-12-18  Andrew Haley  <aph@redhat.com>
19
20         * parse.y (patch_invoke): Force evaluation order when `check' is
21         set.  For PR libgcj/8945.
22
23 2002-12-16  Mark Mitchell  <mark@codesourcery.com>
24
25         * gcj.texi: Change version number to 3.4.
26
27 2002-12-05  Ranjit Mathew <rmathew@hotmail.com>
28         Andrew Haley <aph@redhat.com>
29
30         * parse.y (source_end_java_method): Remove custom encoding of line
31         numbers for a function decl before passing it to the back end.
32
33 2002-12-03  Andrew Haley  <aph@redhat.com>
34
35         * class.c (make_class_data): New field, "chain".
36         * decl.c (java_init_decl_processing): Likewise.
37
38 2002-12-02  Tom Tromey  <tromey@redhat.com>
39
40         For PR java/8740:
41         * parse.y (do_resolve_class): Handle qualified name via
42         recursion.
43
44 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
45
46         * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
47         constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
48         jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
49         jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
50         parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
51         Include coretypes.h and tm.h.
52         * Make-lang.in: Update dependencies.
53
54 2002-11-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
55
56         * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
57
58 2002-11-25  Diego Novillo  <dnovillo@redhat.com>
59
60         * jcf-reader.c: Don't expand JCF_readu4 inside the
61         expansion of JCF_SKIP.
62
63 2002-11-25  Diego Novillo  <dnovillo@redhat.com>
64
65         * jcf-reader.c: Don't expand JCF_readu4 inside the
66         expansion of JCF_SKIP.
67
68 2002-11-22  Tom Tromey  <tromey@redhat.com>
69
70         * parse.y (patch_binop): Cast right hand side of shift expression
71         to `int'.  Fixes PR java/8676.
72
73 2002-11-22  Ranjit Mathew <rmathew@hotmail.com>
74             Andrew Haley <aph@redhat.com>
75
76         * gcc/java/jcf-write.c (write_classfile): Remove target
77         class file, if it exists, before renaming the temporary
78         class file to it.
79
80 2002-11-19  Jason Thorpe  <thorpej@wasabisystems.com>
81
82         * jvspec.c (lang_specific_spec_functions): New.
83
84 2002-11-18  Tom Tromey  <tromey@redhat.com>
85
86         Fix for PR java/7912:
87         * expr.c (can_widen_reference_to): Allow cast of array to
88         Cloneable or Serializable.
89         * java-tree.h (java_lang_cloneable_identifier_node): Declare.
90         (java_io_serializable_identifier_node): Likewise.
91         * parse.y (java_lang_cloneable, java_io_serializable): Removed.
92         (valid_ref_assignconv_cast_p): Use new identifier nodes.
93         * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
94         java_io_serializable.
95         * decl.c (java_init_decl_processing): Initialize
96         java_lang_cloneable_identifier_node and
97         java_io_serializable_identifier_node.
98         (java_lang_cloneable_identifier_node): New global.
99         (java_io_serializable_identifier_node): Likewise.
100
101 2002-11-14  Jens-Michael Hoffmann  <jensmh@gmx.de>
102
103         * buffer.c: Remove unnecessary casts.
104         * check-init.c: Likewise.
105         * class.c: Likewise.
106         * constants.c: Likewise.
107         * decl.c: Likewise.
108         * except.c: Likewise.
109         * gjavah.c: Likewise.
110         * jcf-io.c: Likewise.
111         * jcf-parse.c: Likewise.
112         * jcf-path.c: Likewise.
113         * jvspec.c: Likewise.
114         * lang.c: Likewise.
115         * lex.c: Likewise.
116         * verify.c: Likewise.
117
118 2002-11-06  Tom Tromey  <tromey@redhat.com>
119
120         * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
121         a JNI header.
122
123 2002-11-05  Tom Tromey  <tromey@redhat.com>
124
125         Fix for PR java/6388.
126         * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
127         * java-tree.h (enum java_tree_index): New values
128         JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
129         (decimal_int_max, decimal_long_max): New defines.
130         * lex.c (yylex): Rewrote range checking.  Sign extend literals.
131         (error_if_numeric_overflow): Rewrote range checking.
132         * decl.c (java_init_decl_processing): Initialize decimal_int_max,
133         decimal_long_max.
134
135 2002-11-02  Tom Tromey  <tromey@redhat.com>
136
137         * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
138
139         * class.c (make_method_value): Put class name, not signature, into
140         `throws' field.  For PR java/8415.
141
142 2002-10-24  Tom Tromey  <tromey@redhat.com>
143
144         * gcj.texi (Invoking gij): Document --showversion.
145         (Standard Properties): java.library.path now set.
146
147 2002-10-23  Tom Tromey  <tromey@redhat.com>
148
149         * gjavah.c (decode_signature_piece): In JNI mode, print
150         `jobjectArray' when array depth is nonzero.
151         Fixes PR java/8296.
152
153 2002-10-15  Andrew Haley  <aph@redhat.com>
154
155         * parse.y (patch_invoke): Call force_evaluation_order on a static
156         arg list.
157         (resolve_qualified_expression_name): Call force_evaluation_order
158         on a arg list that is part of a Qualified Expression Name.
159
160         * lang.c (dump_compound_expr): New.
161         (java_dump_tree): New.
162
163 2002-10-20  Ranjit Mathew <rmathew@hotmail.com>
164
165         * gcj.texi: Added item describing the GCJ runtime property
166         "gnu.gcj.progname".
167
168 2002-10-15  Richard Henderson  <rth@redhat.com>
169
170         * jcf-parse.c (get_constant): Fix type warning.
171
172 2002-10-15  Andrew Haley  <aph@redhat.com>
173
174         * java-tree.h (java_inlining_merge_static_initializers): Declare.
175         (java_inlining_map_static_initializers): Declare.
176
177 2002-10-14  Andrew Haley  <aph@redhat.com>
178
179         * tree-inline.c (remap_block): All local class initialization
180         flags go in the outermost scope.
181         (expand_call_inline): Call java_inlining_map_static_initializers.
182         (expand_call_inline): Call java_inlining_merge_static_initializers.
183         * java/lang.c (merge_init_test_initialization): New.
184         (java_inlining_merge_static_initializers): New.
185         (inline_init_test_initialization): New.
186         (java_inlining_map_static_initializers): New.
187
188 2002-10-11  Mark Wielaard  <mark@klomp.org>
189
190         * gcj.texi (Compatibility): Add Limitations and Extensions section.
191
192 2002-10-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
193
194         * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
195
196 2002-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
197
198         * parse.y (merge_string_cste): Add parentheses around & within |.
199
200 2002-10-08  Tom Tromey  <tromey@redhat.com>
201
202         * parse.y (variable_declarator_id): Simplify error path for
203         array declarator error.  For PR java/8003.
204
205 2002-10-08  Zack Weinberg  <zack@codesourcery.com>
206
207         * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
208         bug_report_url.
209
210 2002-10-08  Andrew Haley  <aph@redhat.com>
211
212         * parse.y (attach_init_test_initialization_flags): Check for
213         error_mark_node.
214
215 2002-10-07  Anthony Green  <green@redhat.com>
216
217         * parse.y (merge_string_cste): Fix bug in string concatenation.
218
219 2002-10-03  Michael Koch  <konqueror@gmx.de>
220
221         * gcj.texi (Standard properties):
222         Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
223
224 2002-10-02  Roger Sayle  <roger@eyesopen.com>
225
226         PR optimization/6627
227         * lang.c (java_init): If storing the vbit in function
228         pointers, ensure that force_align_functions_log is atleast
229         one to aid compatability with g++ vtables.
230
231 2002-10-01  Nathan Sidwell  <nathan@codesourcery.com>
232
233         * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
234         foul of type-based aliasing.
235
236 2002-09-30  Anthony Green  <green@redhat.com>
237
238         * gcj.texi (Invoking jv-scan): Fix texinfo.
239
240 2002-09-28  Anthony Green  <green@redhat.com>
241
242         * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
243         (Code Generation): Add -fno-assert documentation.
244         * jv-scan.c (flag_assert): New global.
245         (options): Add assert option.
246         (help): Add --no-assert documentation.
247         * parse-scan.y (flag_assert): New global.
248         * lang.c (lang_f_options): Add -fassert/-fno-assert support.
249         (flag_assert): New global.
250         * java-tree.h (flag_assert): New global.
251         * lex.c (java_lex): Obey flag_assert.
252         * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
253         calling cc1.
254
255 2002-09-26  Andrew Haley  <aph@redhat.com>
256
257         * expr.c (build_java_array_length_access): Check for null pointer.
258         * expr.c (expand_java_arrayload): Likewise.
259
260 2002-09-21  Richard Henderson  <rth@redhat.com>
261
262         * jcf-parse.c (get_constant): Decode from IEEE no matter
263         what the target format.
264
265 2002-09-20  Kazu Hirata  <kazu@cs.umass.edu>
266
267         * ChangeLog: Follow spelling conventions.
268         * class.c: Likewise.
269         * decl.c: Likewise.
270         * expr.c: Likewise.
271         * gjavah.c: Likewise.
272         * java-tree.h: Likewise.
273         * jcf-dump.c: Likewise.
274         * jcf-parse.c: Likewise.
275         * jvspec.c: Likewise.
276         * lang.c: Likewise.
277         * mangle.c: Likewise.
278         * parse.y: Likewise.
279
280 2002-09-17  Tom Tromey  <tromey@redhat.com>
281
282         * lex.c (java_read_unicode_collapsing_terminators): Handle case
283         where \r appears at EOF.  Fixes PR java/7950.
284
285 2002-09-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
286
287         * jvspec.c (lang_specific_driver): Remove unused variable.
288
289 2002-09-16  Geoffrey Keating  <geoffk@apple.com>
290
291         * java-tree.h (union lang_tree_node): Add chain_next option.
292
293 2002-09-16  Richard Henderson  <rth@redhat.com>
294
295         * jcf-parse.c (get_constant): Runtime check for IEEE format;
296         use new real.h interface.
297         * jcf-write.c (find_constant_index): Use new real.h interface.
298         * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
299
300 2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>
301
302         * lang.c: Follow spelling conventions.
303
304 2002-09-11  Per Bothner  <per@bothner.com>
305
306         * parse.y (fold_constant_for_init):  If a VAR_DECL, convert numerical
307         constant to the type of the field.
308         (java_complete_tree):  Remove now-redundant code.
309
310         * parse.y (fold_constant_for_init):  'null' is not a constant expr.
311
312 2002-09-03  Jesse Rosenstock  <jmr@ugcs.caltech.edu>
313
314         For PR java/5794:
315         * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
316         return label if a ret instruction for the jsr has been reached.
317
318 2002-09-09  Ranjit Mathew  <rmathew@hotmail.com>
319
320         * parse.y (DIR_SEPARATOR): Don't define.
321         (check_class_interface_creation): Use IS_DIR_SEPARATOR.
322
323 2002-08-28  Andrew Haley  <aph@redhat.com>
324
325         * verify.c (verify_jvm_instructions): Allow exception handler
326         inside code that is being protected, but generate a warning.
327         * except.c (link_handler): Initialize `expanded' in new eh_range.
328         (binding_depth, is_class_level, current_pc): Declare extern.
329
330 2002-09-01  Mark Wielaard <mark@klomp.org>
331
332         * gcj.texi: Add chapter about system properties.
333         Fixed some typos.
334
335 2002-08-26  Tom Tromey  <tromey@redhat.com>
336
337         * parse.y (try_builtin_assignconv): Allow narrowing primitive
338         conversion if RHS_TYPE is byte, short, or char.
339
340 2002-08-22  Tom Tromey  <tromey@redhat.com>
341
342         * gcj.texi (Invoking gij): Document -cp and -classpath.
343
344 2002-08-21  Tom Tromey  <tromey@redhat.com>
345
346         * Make-lang.in (java/jcf-path.o): Use $(datadir), not
347         $(prefix)/share.  For PR libgcj/7633.
348
349         For PR java/6005 and PR java/7611:
350         * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
351         (java_can_use_bit_fields_p): New function.
352
353 2002-08-16  Tom Tromey  <tromey@redhat.com>
354
355         * gcj.texi (Class Initialization): Mention class initialization of
356         arrays.
357
358 2002-07-30  Andrew Haley  <aph@cambridge.redhat.com>
359
360         * Make-lang.in (java-tree-inline.o): New.
361         (JAVA_OBJS): Add java-tree-inline.o.
362         * parse.y (source_end_java_method): Call java_optimize_inline.
363         (java_expand_method_bodies): Save method's tree in
364         DECL_SAVED_TREE.
365         (add_stmt_to_compound): Keep track of the number of statments.
366         * lang.c (java_init): Enable flag_inline_trees.
367         (java_post_options): If flag_inline_functions is on, enable
368         flag_inline_trees instread.
369         (decl_constant_value): New.
370         (java_tree_inlining_walk_subtrees): New.
371         * java-tree.h (DECL_NUM_STMTS): New macro.
372         (java_optimize_inline): Declare.
373         * expr.c (java_expand_expr): Allow a BLOCK to return a value.
374         Handle a LABEL_EXPR.
375         * decl.c (build_result_decl): If we already have a DECL_RESULT
376         don't make another.
377         (dump_function): New.
378         (java_optimize_inline): New.
379         (dump_function): New.
380
381 2002-08-13  Jesse Rosenstock  <jmr@fulcrummicro.com>
382
383         For PR java/7483:
384         * parse.y (build_assertion): Invert return from
385         desiredAssertionStatus.
386
387 2002-08-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
388
389         * jcf-write.c (get_access_flags): Return correct access flags for
390         private and protected inner classes.
391
392 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
393
394         * java/Make-lang.in (java.mostlyclean): Remove coverage files.
395
396 2002-08-05  Geoffrey Keating  <geoffk@redhat.com>
397
398         * mangle_name.c: Don't include obstack.h twice.
399         * xref.c: Don't include obstack.h.
400
401 2002-08-04  Geoffrey Keating  <geoffk@redhat.com>
402
403         * class.c: (permanent_obstack): Delete declaration.
404         * constants.c: (permanent_obstack): Delete declaration.
405         * except.c: (permanent_obstack): Delete declaration.
406         * expr.c: (permanent_obstack): Delete declaration.
407         * jcf-parse.c: (permanent_obstack): Delete declaration.
408         (saveable_obstack): Delete declaration.
409         * parse.h: (permanent_obstack): Delete declaration.
410         * typeck.c: (permanent_obstack): Delete declaration.
411
412 2002-08-04  Joseph S. Myers  <jsm@polyomino.org.uk>
413
414         * gcj.texi (version-gcc): Increase to 3.3.
415
416 2002-07-22  Tom Tromey  <tromey@redhat.com>
417
418         * lex.c (java_lex): Check for `e' or `E' after 0.
419
420 2002-07-21  Richard Henderson  <rth@redhat.com>
421
422         * lang.c (java_unsafe_for_reeval): New.
423         (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
424
425 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
426
427         * jcf-path.c (GET_ENV_PATH_LIST): Remove.
428         (jcf_path_init): Use GET_ENVIRONMENT.
429
430 2002-07-10  Roger Sayle  <roger@eyesopen.com>
431             Zack Weinberg <zack@codesourcery.com>
432
433         * builtins.c (initialize_builtins): Remove defines that
434         handled C/C++ specific junk hereby removed from builtins.def.
435
436 2002-07-07  Neil Booth  <neil@daikokuya.co.uk>
437
438         * lang.c (java_post_options): Update prototype.
439
440 2002-07-05  Roger Sayle  <roger@eyesopen.com>
441
442         * builtins.c (initialize_builtins): Ignore the additional
443         parameter to DEF_BUILTIN.  Handle more C/C++ specific junk in
444         the builtins.def file.
445
446 2002-07-01  Tom Tromey  <tromey@redhat.com>
447
448         For PR libgcj/7073:
449         * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
450         specially.
451
452 2002-07-01  Roger Sayle  <roger@eyesopen.com>
453
454         * java/decl.c (builtin_function): Accept additional parameter.
455         (java_init_decl_processing): Pass an additional NULL_TREE
456         argument to builtin_function.
457
458 2002-06-29  T.J. Mather  <tjmather@maxmind.com>
459
460         * gcj.texi: Fixed gcj invocation example so that it compiles.
461
462 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
463
464         * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
465         * parse.y (mark_parser_ctxt): Likewise.
466         (check_modifiers, declare_local_variables): Avoid incorrect
467         hardcoded constant 10.
468
469         * lex.c (java_read_char): Avoid "comparison is always true"
470         warning.
471
472 2002-06-25  Andreas Schwab  <schwab@suse.de>
473
474         * expr.c (JSR): Avoid undefined operation on PC.
475
476 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
477
478         * decl.c (clear_binding_level): Const-ify.
479
480 2002-06-13  Akim Demaille  <akim@epita.fr>
481
482         * parse.y (class_declaration, interface_declaration): Make sure
483         all their rules have an action, in order to avoid meaningless `$$
484         = $1' and their type clashes.
485
486 2002-06-11  Tom Tromey  <tromey@redhat.com>
487
488         * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
489         * parse-scan.y (statement_without_trailing_substatement): Added
490         assert_statement.
491         (assert_statement): New rule.
492         * java-tree.h (struct lang_type) [assertions]: New field.
493         (TYPE_USES_ASSERTIONS): New macro.
494         (CLASS_USES_ASSERTIONS): Likewise.
495         (FIELD_SYNTHETIC): New define.
496         * lex.c (java_lval;): Added ASSERT_TK.
497         * parse.y (ASSERT_TK): Added.
498         (statement_without_trailing_substatement): Added assert_statement.
499         (assert_statement): New rule.
500         (build_assertion): New function.
501         (maybe_generate_pre_expand_clinit): Create and initialize
502         $assertionsDisabled.
503         (lookup_package_type): Removed decl.
504         * keyword.h: Rebuilt.
505         * keyword.gperf (assert): New token.
506
507 2002-06-10  Akim Demaille  <akim@epita.fr>
508
509         * parse.y (interface_type_list, class_member_declaration)
510         (unary_expression_not_plus_minus): Remove duplicate %type.
511         Whitespace changes.
512
513 2002-06-09  Tom Tromey  <tromey@redhat.com>
514
515         * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
516
517         * parse.y (method_header): Give error message in all cases.
518         Fixes PR java/6865.
519
520 2002-06-10  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
521
522         Don't use RTL inlining. Fix for PR java/6820.
523         * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
524         (flag_really_inline): New.
525         (java_decode_option): Set flag_really_inline if -finline-functions
526         is seen.
527         (java_post_options): New function. Turn off inlining unless
528         flag_really_inline is set.
529
530 2002-06-10  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
531
532         * gjavah.c (throwable_p): Accept argument as either a classname or
533         signature fragment. Create null-terminated classname string for super
534         when calling itself recursively.
535         (decode_signature_piece): Skip first character from class name
536         signature when calling throwable_p.
537
538 2002-06-08  H.J. Lu  (hjl@gnu.org)
539
540         * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
541
542 2002-06-04  Tom Tromey  <tromey@redhat.com>
543
544         * jcf-write.c (perform_relocations): Optmize a goto to a goto.
545
546 2002-06-04  Michael Koch  <konqueror@gmx.de>
547
548         * gcj.texi (Input Options): Fixed typo.
549
550 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
551
552         * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
553         typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
554         all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
555         and all now-pointless local variables.  Rename other local
556         variables to reflect their not being handles.
557
558         * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
559         #if JCF_USE_STDIO blocks.
560
561         * parse.y: Add missing semicolon at end of rule.
562
563 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
564
565         * check-init.c (attach_initialized_static_class): Delete, unused.
566         * parse.y: Use htab_t instead of struct hashtable, update
567         all uses.
568         * java-tree.h: Include hashtab.h instead of hash.h.
569         (struct lang_decl_func): Use htab_t, set up for gengtype.
570         (struct init_test_hash_entry): Delete.
571         (struct treetreehash_entry): New.
572         (java_treetreehash_find): New
573         (java_treetreehash_new): New prototype.
574         (java_treetreehash_create): New prototype.
575         (java_mark_tree): Delete prototype.
576         (java_hash_hash_tree_node): Delete prototype.
577         (java_hash_compare_tree_node): Delete prototype.
578         (attach_initialized_static_class): Delete prototype.
579         * expr.c (build_class_init): Update to use java_treetreehash
580         functions.
581         (java_expand_expr): Update to use htab_t.
582         (emit_init_test_initialization): Likewise.
583         * decl.c (java_mark_tree): Delete.
584         * class.c (init_test_hash_newfunc): Delete.
585         (java_hash_hash_tree_node): Delete.
586         (java_hash_compare_tree_node): Delete.
587         (add_method_1): Update to use java_treetreehash functions.
588         (JAVA_TREEHASHHASH_H): New macro.
589         (java_treetreehash_hash): New function.
590         (java_treetreehash_compare): New function.
591         (java_treetreehash_find): New function.
592         (java_treetreehash_new): New function.
593         (java_treetreehash_create): New function.
594         * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
595
596         * Make-lang.in (java/parse.o): Depend on debug.h.
597         * java-tree.h (struct lang_identifier): Use gengtype.
598         (union lang_tree_node): New.
599         (struct lang_decl_func): Use gengtype.
600         (struct lang_decl_var): Likewise.
601         (struct lang_decl): Likewise.
602         * parse.y: Include debug.h.
603         * lang.c (LANG_HOOKS_MARK_TREE): Delete.
604
605         * lang.c (struct language_function): New dummy structure.
606
607         * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
608         descriminator for DECL_LANG_SPECIFIC.
609         (struct lang_decl_func): Rename from struct lang_decl.
610         (enum lang_decl_desc): New.
611         (struct lang_decl): Make it a union.  Update all the accessor macros.
612         (struct lang_type): Use gengtype.
613         * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
614         * decl.c (java_dup_lang_specific_decl): All lang_decl structures
615         are now the same size.
616         (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
617         use discriminator to mark DECL_LANG_SPECIFIC.
618
619         * Make-lang.in (gt-java-builtins.h): New rule.
620         (java/builtins.o): Add dependency on gt-<filename>.h.
621         * builtins.c: Use gengtype for roots.
622         (union string_or_tree): Use gengtype.
623         (struct builtin_record): Use gengtype.
624         * config-lang.in (gtfiles): Add builtins.c.
625
626         * Make-lang.in (gt-java-class.h, gt-java-constants.h,
627         gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
628         gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
629         gt-java-parse.h, gtype-java.h): Add rules to generate.
630         (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
631         (class.o): Add dependency on gt-*.h.
632         (constants.o): Likewise.
633         (decl.o): Likewise.
634         (expr.o): Likewise.
635         (jcf-parse.o): Likewise.
636         (jcf-write.o): Likewise.
637         (lang.o): Likewise.
638         * config-lang.in (gtfiles): New.
639         * class.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
640         * constants.c: Replace uses of ggc_add_* with GTY markers.
641         Include gt-*.h.
642         * decl.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
643         * expr.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
644         * java-tree.h: Replace uses of ggc_add_* with GTY markers.
645         * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
646         Include gt-*.h.
647         * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
648         Include gt-*.h.
649         * lang.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
650         * mangle.c: Replace uses of ggc_add_* with GTY markers.  Include
651         gt-*.h.
652         * parse.y: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
653         Include gtype-java.h.
654
655 2002-06-02  Tom Tromey  <tromey@redhat.com>
656
657         Fix for PR java/5913:
658         * parse.y (patch_binop): Call patch_string on op1.
659
660 2002-06-02  Tom Tromey  <tromey@redhat.com>
661
662         Fix for PR java/1343, PR java/6336:
663         * parse.y (make_nested_class_name): Remove extraneous `else'; fix
664         formatting.  Changed return type.
665         (anonymous_class_counter): Moved to top of file.
666         (maybe_make_nested_class_name): Append number to class name for
667         function-local classes.
668
669 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
670
671         * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
672         * Make-lang.in: Update dependency lists.
673
674 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
675
676         * gjavah.c (throwable_p): Do not free the name of the class after
677         passing it to find_class.
678         * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
679         * jcf-io.c (dirent.h): Include it.
680         (fnmatch.h): Likewise.
681         (compare_path): New function.
682         (java_or_class_file): Likewise.
683         (memoized_dirlist_entry): New type.
684         (memoized_dirlist_lookup_eq): New function.
685         (memoized_dirlists): New variable.
686         (caching_stat): New function.
687         (memoized_class_lookup_eq): New function.
688         (memoized_class_lookups): Likewise.
689         (find_class): Use memoized_class_lookups and caching_stat.
690         * jcf.h (JCF_USE_SCANDIR): Define.
691         * parse.y (java_expand_classes): Write the class files in reverse
692         order.
693
694 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
695
696         * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
697
698 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
699
700         * jcf-write.c (write_classfile): Unlink the temporary file if it
701         cannot be renamed.  Use concat to build up the name of the
702         temporary file.
703
704 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
705
706         * jcf-write.c (write_classfile): Write the file to a
707         temporary file and then rename it.
708
709 2002-05-07  Tom Tromey  <tromey@redhat.com>
710
711         * gjavah.c (throwable_p): Use xstrdup, not strdup.
712
713         Fix for PR java/1200:
714         * gjavah.c (throwable_p): New function.
715         (decode_signature_piece): Use it.  A `WeakReference' isn't the
716         same as a `jweak'.
717         Include hashtab.h.
718         (gcjh_streq): New function.
719
720 2002-05-07  Andreas Jaeger  <aj@suse.de>
721
722         * parse.y (finish_for_loop): Fix if statement.
723
724 2002-05-06  Tom Tromey  <tromey@redhat.com>
725
726         Fix for PR java/5941:
727         * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
728         loop update expression.
729         (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
730         * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
731
732 2002-05-04  Mark Wielaard  <mark@klomp.org>
733
734         For PR java/6519:
735         * parse.y (build_string_concatenation): Return just op1 only when op2
736         is null and op1 is a STRING_CST, otherwise always construct a
737         StringBuffer.
738
739 2002-04-27  Tom Tromey  <tromey@redhat.com>
740
741         For PR java/6382:
742         * parse.y (string_convert_int_cst): New function.
743         (merge_string_cste): Use it.
744
745 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
746
747         * java-tree.h (java_parse_file): Update.
748         (java_set_yydebug): Remove.
749         * jcf-parse.c (yydebug): Remove.
750         (java_set_yydebug): Die.
751         (java_parse_file): Update.
752         * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
753
754 2002-04-24  Tom Tromey  <tromey@redhat.com>
755
756         For PR java/6425:
757         * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
758         EXPR_WFL_QUALIFICATION of qual_wfl.
759
760 2002-04-23  Per Bothner  <per@bothner.com>
761
762         * expr.c (PRE_JSR):  Call NOTE_LABEL for return address.
763         * java-tree.h (BCODE_RETURN_TARGET):  Removed - never set.
764         (BCODE_TARGET):  Remove BCODE_RETURN_TARGET.
765
766 2002-04-23  Tom Tromey  <tromey@redhat.com>
767
768         For PR java/6314:
769         * jvspec.c (lang_specific_driver): Use --resource, not -R.  Also
770         recognize `-fcompile-resource='.
771         * gcj.texi (Invoking gcj): Use --resource, not -R.  Expanded text
772         a bit.
773
774 2002-04-22  Alexandre Petit-Bianco  <apbianco@redhat.com>
775
776         * jcf-parse.c: (yyparse): Don't prepend "./" to relative
777         paths. Fixes PR java/2791.
778
779 2002-04-19  Andrew Haley  <aph@redhat.com>
780
781         * jcf-write.c (push_long_const): lo, hi: New variables.
782         Use rshift_double to extract the high part of a 64-bit long.
783         Use WORD_TO_INT to extract the low part.
784
785         * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
786         HOST_WIDE_INT for num.  Use JPOOL_UINT to get it.
787         CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
788
789 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
790
791         * typeck.c (incomplete_type_error): Remove.
792
793 2002-04-18  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
794
795         * class.c (make_class_data): Set DECL_ALIGN on static class data,
796         for hash synchronization.
797         * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
798         * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
799         class_type_node.
800
801 2002-04-16  Mark Wielaard  <mark@klomp.org>
802
803         * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
804         negative zero.
805
806 2002-04-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
807
808         Fix for PR java/6294:
809         * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
810         interfaces.
811
812 2002-04-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
813
814         Fix for PR java/6085:
815         * parse.y (patch_method_invocation): Always use build_access_to_thisn
816         to get enclosing "this" argument for inner-class constructor
817         invocation. Pass correct arguments to build_access_to_thisn.
818
819 2002-04-10  Andreas Jaeger  <aj@suse.de>
820
821         * gcj.texi (Input Options): Fix extdirs patch.
822
823 2002-04-10  Anthony Green  <green@redhat.com>
824
825         * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
826
827 2002-04-09  Anthony Green  <green@redhat.com>
828
829         * gcj.texi (Input Options): Add --extdirs documentation.
830         * jcf-dump.c (OPT_extdirs): New macro.
831         (options): Add extdirs option.
832         (help): Describe --extdirs.
833         (main): Handle OPT_extdirs.
834         * gjavah.c (OPT_extdirs): New macro.
835         (options): Add extdirs option.
836         (help): Describe --extdirs.
837         (main): Handle OPT_extdirs.
838         * jcf-path.c (jcf_path_init): Add extdirs support.
839         (jcf_path_extdirs_arg): New function.
840         (extensions): New variable to hold extensions path entries.
841         * jvspec.c: Remove -fextdirs= when compiling main().
842         * lang.c (java_decode_option): Handle -fextdirs=.
843         * jcf.h (jcf_path_extdirs_arg): Declare new function.
844         * Make-lang.in: Compile jcf-path with version info for use in
845         identifying the appropriate libgcj.jar.
846
847 2002-04-08  Tom Tromey  <tromey@redhat.com>
848
849         For PR libgcj/5303:
850         * .cvsignore: Added rmic.1 and rmiregistry.1.
851         * gcj.texi (Top): Link to new nodes.
852         (Invoking rmic): New node.
853         (Invoking rmiregistry): Likewise.
854         * Make-lang.in (java.generated-manpages): Added rmic.1 and
855         rmiregistry.1.
856         (java.maintainer-clean): Likewise.
857         ($(srcdir)/java/rmic.1): New target.
858         ($(srcdir)/java/rmiregistry.1): Likewise.
859         (java.install-man): Handle rmic.1 and rmiregistry.1.
860
861 2002-04-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
862
863         * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
864         Add note about handling uncaught exceptions. Add an exception handler
865         to example.
866
867 2002-04-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
868
869         * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
870         after using it to patch CALL_EXPR.
871
872 2002-04-08  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
873
874         * gcj.texi (Invocation): Document CNI invocation API.
875
876 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
877
878         * expr.c (truthvalue_conversion): Rename.  Update.
879         (expand_compare): Update.
880         * java-tree.h (java_truthvalue_conversion): New.
881         * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
882
883 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
884
885         * java-tree.h (java_mark_addressable): New.
886         * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
887         * typeck.c (mark_addressable): Rename, update.
888
889 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
890
891         * expr.c (build_java_binop): Update.
892         * java-tree.h (java_signed_type, java_unsigned_type,
893         java_signed_or_unsigned_type): Update.
894         * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
895         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
896         * parse.y (patch_binop): Update.
897         * typeck.c (signed_or_unsigned_type, unsigned_type,
898         signed_type): Update.
899
900 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
901
902         * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
903         (java_dummy_print): Remove.
904         (lang_print_error): Rename.  Exit early if inhibiting output.
905         (inhibit_error_printing_function): New.
906         (java_init): Don't set hook.
907         (lang_init_source): Use new boolean.
908
909 2002-03-29  Martin Kahlert  <martin.kahlert@infineon.com>
910
911         * parse.y (do_resolve_class): Fix infinite recursion.
912
913 2002-03-29  Tom Tromey  <tromey@redhat.com>
914
915         * parse.y (check_inner_circular_reference): Ignore incomplete
916         types.
917
918 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
919
920         * Make-lang.in (builtins.o): Update.
921         * boehm.c (get_boehm_type_descriptor): Update.
922         * builtins.c: Include langhooks.h.
923         * decl.c (java_init_decl_processing): Update.
924         * java-tree.h (java_type_for_mode, java_type_for_size): New.
925         * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
926         Redefine.
927         * typeck.c (type_for_mode, type_for_size): Update.
928
929 2002-03-29  Martin Kahlert  <martin.kahlert@infineon.com>
930
931         * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
932
933 2002-03-28  Tom Tromey  <tromey@redhat.com>
934
935         * except.c (expand_end_java_handler): If the handler type is NULL,
936         use java.lang.Throwable.  Fixes PR java/5986.
937
938 2002-03-28  Alexandre Petit-Bianco  <apbianco@redhat.com>
939
940         Fix for PR java/4715:
941         * jcf-parse.c (parse_source_file_3): New function.
942         (read_class): Call it.
943         (java_parse_file): Likewise.
944
945 Thu Mar 28 13:22:22 CET 2002  Jan Hubicka  <jh@suse.cz>
946
947         * java/lang.c (java_init_options): Set flag_trapping_math to 0.
948
949 2002-03-28  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
950
951         * parse.y (resolve_package): Initialize "decl".
952         (lookup_package_type): Remove unused function.
953
954 2002-03-28  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
955
956         Fix for PR java/5993:
957         * parse.y (resolve_package): Return the decl if resolution was
958         successful. Don't special case "java.lang" and "java.lang.reflect"
959         packages. Set type_name to the merged identifier.
960         (resolved_qualified_expression_name): Print error using "name" if
961         resolve_package returns NULL_TREE.
962
963 2002-03-27  Tom Tromey  <tromey@redhat.com>
964
965         * expr.c (expand_invoke): Don't generate null pointer check if
966         we're calling <init>.
967
968 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
969
970         * expr.c (java_lang_expand_expr): Rename java_expand_expr,
971         fix prototype.
972         * java-tree.h (java_lang_expand_expr): Similarly.
973         * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
974         (java_init): Don't set hook.
975
976 2002-03-27  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
977
978         Fix for PR java/5850:
979         * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
980         context if field was not found in the current scope.
981         * expr.c (lookup_field): Don't look in enclosing contexts.
982
983 2002-03-26  Tom Tromey  <tromey@redhat.com>
984
985         Fix for PR java/5942:
986         * parse.y (init_src_parse): Added sanity check.
987         * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
988         elements, not 11.
989
990 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
991
992         * decl.c (lang_mark_tree): Rename java_mark_tree.
993         * java-tree.h (java_mark_tree): New.
994         * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
995
996 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
997
998         * lex.c: Change java_perform_atof to take normal parameters
999         instead of a pointer to a parameter block.  Call it directly
1000         from java_lex.
1001
1002 2002-03-22  Mark Wielaard  <mark@klomp.org>
1003
1004         Fix for PR java/5368:
1005         * parse.y (resolve_qualified_expression_name): Use decl not field_decl
1006         when printing error message.
1007
1008 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1009
1010         * decl.c (maybe_build_cleanup): Remove.
1011
1012 2002-03-22  Tom Tromey  <tromey@redhat.com>
1013
1014         Andrew Haley  <aph@cambridge.redhat.com>
1015
1016         * expr.c (build_field_ref): Don't build a check if the field is a
1017         member of `this'.
1018
1019 2002-03-21  Eric Blake  <ebb9@email.byu.edu>
1020
1021         Fix for PR java/6026:
1022         * lex.c (java_lex): Fix parsing of consecutive floats.
1023
1024 2002-03-21  Tom Tromey  <tromey@redhat.com>
1025
1026         * parse.y (build_access_to_thisn): Stop when FROM is not an inner
1027         class.
1028
1029 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1030
1031         * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
1032         insert_block, getdecls, kept_level_p, global_bindings_p): New.
1033
1034 2002-03-20  Nic Ferrier  <nferrier@tapsellferrier.co.uk>
1035
1036         * gcj.texi: @code{gcj} becomes @command{gcj}.
1037         @code{gcc} becomes @command{gcc}.
1038         GcjRaw changed to gnu.gcc.RawData.
1039
1040 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1041
1042         * decl.c (start_java_method): Use new hook.
1043         * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
1044         (java_init): Remove old hook.
1045
1046 2002-03-18  Alexandre Petit-Bianco  <apbianco@redhat.com>
1047
1048         * builtins.c (define_builtin): Do nothing if `type' is null.
1049         Fixes PR java/5876.
1050
1051 2002-03-18  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1052
1053         * parse.y (parser_check_super_interface): Fix error message
1054         grammar/order.
1055
1056 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1057
1058         * jcf-parse.c (get_constant): Delete unused variables.
1059
1060 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1061
1062         * java-tree.h (java_parse_file): New.
1063         * jcf-parse.c (yyparse): Rename java_parse_file.
1064         * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
1065
1066 2002-03-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1067
1068         * parse.y (craft_constructor): Return the constructor decl.
1069         (java_expand_classes): Update comments.
1070         (lookup_method_invoke): Call fix_constructors immediately for
1071         anonymous class. Fixes PR java/5935.
1072
1073 2002-03-15  Anthony Green  <green@redhat.com>
1074
1075         * jcf-parse.c (yyparse): Don't emit class registration
1076         constructor when compiling resource files.
1077
1078 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1079
1080         * lang.c (java_tree_code_type, java_tree_code_length,
1081         tree_code_name): Delete.
1082         (tree_code_type, tree_code_length, tree_code_name): Define.
1083         (java_init): Don't try to copy into the various tree_code
1084         arrays.
1085
1086 2002-03-12  Tom Tromey  <tromey@redhat.com>
1087
1088         * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
1089         UTF-8, not UCS-2.  Fixes PR java/5923.
1090
1091         * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
1092         a call_expr wrapped in a convert.  Fixes PR java/5848.
1093
1094 2002-03-12  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1095
1096         * jcf-write.c (write_classfile): Improve error strings.
1097
1098 2002-03-11  Eric Blake  <ebb9@email.byu.edu>
1099
1100         * lex.c: Adjust comments to GNU standards.
1101
1102 2002-03-11  Eric Blake  <ebb9@email.byu.edu>
1103
1104         Fix for PR java/5902:
1105         * lex.c (java_lex): Fix parsing of literals.
1106
1107 2002-03-11  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1108
1109         * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
1110         to prevent it getting evaluated twice in the store checking case.
1111         * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
1112         examining OBJECT.
1113
1114 2002-03-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1115
1116         * decl.c (java_init_decl_processing): Make sure class_type_node
1117         alignment is not less than 64 bits if hash synchronization is enabled.
1118
1119 2002-03-08  Per Bothner  <per@bothner.com>
1120
1121         * parse.y (java_complete_lhs):  Check if patch_assignment
1122         returned an error-mark.
1123
1124         * parse.y (try_builtin_assignconv):  Don't special-case zero.
1125
1126 2002-03-08  Per Bothner  <per@bothner.com>
1127
1128         Fix for PR java/5812.
1129         * expr.c (build_java_jsr):  Take pc arguments, and do lookup_label
1130         here instead of in JSR macro.  Likewise with load_type_state call.
1131         Do the latter on if the return_pc has been verified (the jsr returns).
1132         (JSR):  Now just call build_java_jsr.
1133
1134 2002-03-07  Jeff Sturm  <jsturm@one-point.com>
1135
1136         * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
1137         (java.install-common): Link native driver to
1138         JAVA_TARGET_INSTALL_NAME.
1139
1140 2002-03-05  David Billinghurst <David.Billinghurst@riotinto.com>
1141
1142         * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
1143         * builtins.c(sin_builtin): Likewise
1144         * builtins.c(sqrt_builtin): Likewise
1145
1146 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
1147
1148         * java/expr.c, java/jcf-parse.c, java/lex.c:
1149         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
1150         REAL_ARITHMETIC blocks unconditional.  Delete some further
1151         #ifdef blocks predicated on REAL_ARITHMETIC.
1152
1153 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1154
1155         * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
1156         explicit sizeof/sizeof.
1157         * decl.c (java_init_decl_processing): Likewise.
1158         * jcf-parse.c (init_jcf_parse): Likewise.
1159         * parse.y (init_src_parse): Likewise.
1160
1161 2002-03-02  Per Bothner  <per@bothner.com>
1162
1163         Make --CLASSPATH by a synonym for --classpath and -classpath.
1164         Implement --bootclasspath.
1165         * jcf-path.c (classpath_u):  Rename static variable to classpath_user.
1166         (classpath_l):  Remove.
1167         (jcf_path_CLASSPATH_arg):  Remove.
1168         (jcf_path_bootclasspath_arg):  New function.
1169         (jcf_path_seal):  Simplify accordingly.
1170
1171         * jcf.h (jcf_path_bootclasspath_arg):  New declarations.
1172         (jcf_path_CLASSPATH):  Remove declaration.
1173         * jvspec.c (jvgenmain_spec):  Also accept -fbootclasspath*.
1174         (lang_specific_driver):  Translate -bootclasspath.
1175         * lang-options.h:  Add --bootclasspath.  Update --CLASSPATH.
1176         * lang.c (decode_lang_options):  Do jcf_path_init first.
1177         Handle -fCLASSPATH same as -fclasspath.  Also process -fbootclasspath.
1178         * gjavah.c:  Also handle --bootclasspath.
1179         Handle --CLASSPATH as a synonum for --classpath.
1180         * jcf-dump.c: Likewise.
1181
1182         "." is not part of system path, but is the default for --classpath.
1183         * jcf-path.c (jcf_path_init):  Don't add "." to sys_dirs.
1184         (jcf_path_seal):  Add "." if no CLASSPATH specified.
1185
1186         * gcj.texi:  Document changes.
1187
1188 2002-03-01  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1189
1190         * expr.c (build_java_arraystore_check): Fix formatting.
1191
1192 2002-02-28  Alexandre Petit-Bianco  <apbianco@redhat.com>
1193
1194         Fix for PR java/5758, java/5632:
1195         * jcf-parse.c (load_class): Renamed local variable, consider `.' an
1196         inner-class separator too.
1197         * parse.y (do_resolve_class): New local `decl_result.'
1198         Progressively build a name for what can have been loaded.
1199
1200 2002-02-28  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1201
1202         * expr.c (java_array_data_offset): Removed function.
1203         (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
1204         (build_java_array_length_access): Obtain "length" value using a
1205         COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
1206         (build_java_arrayaccess): Correct comment. Access "data" using a
1207         COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
1208         (build_java_arraystore_check): New function.
1209         (expand_java_arraystore): Use build_java_arraystore_check.
1210         * parse.y (patch_assignment): Simplify code to insert a store check
1211         when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
1212         * check-init.c (check_init): Update to reflect that an array length
1213         access is now a COMPONENT_REF.
1214         * gcj.texi (Code Generation): Improve documentation of
1215         -fno-bounds-check. Add documentation for -fno-store-check.
1216         * java-tree.h (flag_store_check): Declare.
1217         (build_java_arraystore_check): Declare.
1218         * lang.c (flag_store_check): Initialize to 1.
1219         (lang_f_options): Add store-check option.
1220         * jvspec.c: Don't pass store-check option to jvgenmain.
1221         * lang-options.h: Add help string for -fno-store-check.
1222
1223 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
1224
1225         * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
1226         * java-tree.h (java_dup_lang_specific_decl): New.
1227         * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
1228
1229 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
1230
1231         * builtins.c, decl.c: Delete traditional-mode-related code
1232         copied from the C front end but not used, or used only to
1233         permit the compiler to link.
1234
1235 2002-02-22  Tom Tromey  <tromey@redhat.com>
1236
1237         Fix for PR java/2369:
1238         * jvspec.c (verify_class_name): New function.
1239         (lang_specific_driver): Call it.
1240         (JAVA_START_CHAR_P): New macro.
1241         (JAVA_PART_CHAR_P): Likewise.
1242
1243 2002-02-22  Per Bothner  <per@bothner.com>
1244
1245         * class.c:  Change vtable to be more compatible with g++ v3 abi.
1246         (get_dispatch_table):  Prepend offset-to-top (always 0) and
1247         type_info pointer (currently unimplemented hence NULL) to vtable.
1248         Specifically, prepend offset-to-top and typeinfo ptr (currently null).
1249         (make_class_data):  Variable dtable_start_offset is sizeof 2 pointers.
1250         Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
1251         (build_dtable_decl):  Add declarations for new fields.
1252
1253 2002-02-20  Per Bothner  <per@bothner.com>
1254
1255         * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
1256         to finit$ (otherwise generate_bytecode_insns drops it). However, we
1257         don't need to set it on the COMPOUND_EXPR - the caller does that.
1258
1259 2002-02-20  Nic Ferrier  <nferrier@tapsellferrier.co.uk>
1260
1261         * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
1262         `--CLASSPATH' becomes `--classpath.'
1263         * gjavah.c: Likewise.
1264         * jcf-dump.c: Likewise.
1265         * lang-options.h: Likewise.
1266         * lang.c: Likewise.
1267         * jcf-path.c: Updated comment.
1268         (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
1269         (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
1270         * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
1271         (jcf_path_CLASSPATH_arg): Ditto.
1272         (classpath_u): Updated leading comment.
1273
1274 2002-02-20  Per Bothner  <per@bothner.com>
1275
1276         * builtins.c (check_for_builtin):  New function.
1277         (build_call_or_builtin):  Remove.
1278         * java-tree.h:  Update accordingly.
1279         * expr.c (expand_invoke):  Use build + check_for_builtin instead
1280         of build_call_or_builtin.
1281         * parse.y (patch_invoke):  Likewise.  This avoids needlessly creating
1282         a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
1283         flag (which had caused jcf-write to incorrectly emit invokevirtual).
1284
1285 2002-02-17  Tom Tromey  <tromey@redhat.com>
1286
1287         * java-tree.h (TYPE_STRICTFP): New macro.
1288         (struct lang_type) [strictfp]: New field.
1289         (CLASS_STRICTFP): New macro.
1290         (METHOD_STRICTFP): New macro.
1291         (struct lang_decl) [strictfp]: New field.
1292         * parse.y (method_header): Disallow strictfp constructor or
1293         abstract method.
1294         (STRICT_TK): Move before MODIFIER_TK.
1295         * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
1296         (METHOD_MODIFIERS): Likewise.
1297         (INTERFACE_MODIFIERS): Likewise.
1298         * jcf-write.c (get_access_flags): Likewise.
1299         * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
1300         (add_method_1): Likewise.
1301         (get_access_flags_from_decl): Likewise.
1302         * jcf-dump.c (print_access_flags): Print in standard order.  Also,
1303         recognize strictfp flag.
1304         * jcf.h (ACC_STRICT): New define.
1305
1306 2002-02-12  David Billinghurst <Davod.Billinghurst@riotinto.com>
1307
1308         * class.c(build_utf8_ref): Move declaration of decl_size
1309
1310 2002-02-07  Tom Tromey  <tromey@redhat.com>
1311
1312         * gcj.texi (Input Options): --CLASSPATH does not suppress system
1313         path.
1314
1315 2002-02-04  Anthony Green  <green@redhat.com>
1316
1317         * class.c (build_utf8_ref): Put UTF-8 constants into merged
1318         sections if available.
1319
1320 2002-02-04  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1321
1322         * parse.y (java_expand_classes): Fix typo in static field loop.
1323
1324 2002-02-02  Richard Henderson  <rth@redhat.com>
1325
1326         * class.c (add_field): Mark static fields external.
1327         (build_class_ref): Remove redundant set.
1328         * parse.y (java_expand_classes): Mark static fields of classes
1329         to be compiled as local.
1330         * jcf-parse.c (parse_class_file): Likewise.
1331
1332 2002-02-02  Nic Ferrier  <nferrier@tapsellferrier.co.uk>
1333
1334         * gcj.texi (About CNI): New node.
1335
1336 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1337
1338         PR java/5080
1339         * jcf-parse.c : Check for HAVE_LOCALE_H before using
1340         setlocale() with LC_CTYPE as a parameter.
1341         * jv-scan.c: Same.
1342
1343 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
1344
1345         * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
1346         Follow GNU Coding Standards for --version.
1347
1348 2002-01-28  Tom Tromey  <tromey@redhat.com>
1349
1350         * expr.c (build_jni_stub): Ensure storage for `meth' is
1351         generated.
1352         * parse.y (java_complete_expand_methods): Set
1353         current_function_decl before building JNI stub.
1354
1355 2002-01-26 Andreas Tobler <a.tobler@schweiz.ch>
1356
1357         * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
1358         BUILT_IN_SQRTF.
1359
1360 2002-01-22  Tom Tromey  <tromey@redhat.com>
1361
1362         * decl.c (java_init_decl_processing): Use add_predefined_file.
1363         Predefine RawData.java.
1364         (predef_filenames): Removed.
1365         (java_init_decl_processing): Don't register predef_filenames.
1366         * jcf-parse.c (add_predefined_file): New function.
1367         (predefined_filename_p): Rewrote.
1368         (predefined_filename_p): No longer static.
1369         * decl.c (java_init_decl_processing): Call initialize_builtins.
1370         * Make-lang.in (JAVA_OBJS): Added builtins.o.
1371         (java/builtins.o): New target.
1372         * builtins.c: New file.
1373         * parse.y (patch_invoke): Use build_call_or_builtin.
1374         * java-tree.h (build_call_or_builtin): Declare.
1375         (initialize_builtins): Declare.
1376         (java_set_exception_lang_code): Removed unused declaration.
1377         (PREDEF_FILENAMES_SIZE): Removed.
1378         (java_tree_index): Added JTI_PREDEF_FILENAMES.
1379         (predef_filenames): New define.
1380         (add_predefined_file): Declare.
1381         (predefined_filename_p): Declare.
1382         * expr.c (expand_invoke): Use build_call_or_builtin.
1383
1384 2002-01-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1385
1386         * parse.y (patch_switch_statement): Fix format specifier.
1387
1388 2002-01-16  Tom Tromey  <tromey@redhat.com>
1389
1390         More for PR java/5365:
1391         * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
1392         default.
1393         (process_file): Generate include for
1394         java.lang.UnsupportedOperationExceptions.
1395
1396 2002-01-15  Andreas Jaeger  <aj@suse.de>
1397
1398         * .cvsignore: Add man pages.
1399
1400 2002-01-15  Tom Tromey  <tromey@redhat.com>
1401
1402         Fix for PR java/5365:
1403         * gjavah.c (process_file): Turn class name into a file name.
1404
1405 2002-01-14  Matthias Klose  <doko@debian.org>
1406
1407         * gcj.texi: Fix whitespace and formatting errors in the
1408         synopsis of the man pages. Update copyright.
1409
1410 2002-01-14  Tom Tromey  <tromey@redhat.com>
1411
1412         For PR libgcj/5303:
1413         * Make-lang.in (java.install-man): Handle jv-convert man page.
1414         (java.generated-manpages): Added jv-convert.1.
1415         (java.uninstall): Remove jv-convert.1.
1416         (java.maintainer-clean): Likewise.
1417         ($(srcdir)/java/jv-convert.1): New target.
1418         * gcj.texi (Top): Link to jv-convert node.
1419         (Individual utilities): Likewise.
1420         (Invoking jv-convert): New node.
1421
1422 2001-01-10  Jeff Sturm  <jsturm@one-point.com>
1423             Martin Kahlert  <martin.kahlert@infineon.com>
1424
1425         * jcf-parse.c (get_constant): Don't swap lo/hi for big
1426         endian targets when HOST_BITS_PER_WIDE_INT >= 64.
1427
1428 2002-01-03  Graham Stott  <grahams@redhat.com>
1429
1430         * class.c (compile_resource_file): Update copyright date.
1431         Constify filename parameter.
1432         (java-tree.h): Update copyright date.
1433         (compile_resource_file): Constify filename parameter.
1434
1435 2002-01-03  Graham Stott  <grahams@redhat.com>
1436
1437         * gcc/jcf-parse.c: Update copyright date.
1438         (yyparse): Constify resource_filename.
1439
1440 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1441
1442         * parse.y (src_parse_roots): Don't needlessly zero init.
1443
1444 2001-12-31  Tom Tromey  <tromey@redhat.com>
1445
1446         * parse.y (dump_java_tree): New function.
1447         (source_end_java_method): Call it.
1448         (end_class_declaration): Likewise.
1449         * lang.c (java_decode_option): Call dump_switch_p.
1450
1451 2001-12-28  Tom Tromey  <tromey@redhat.com>
1452
1453         * gen-table.pl: Don't process characters after \uffff.  Added
1454         comment pointing to input file.
1455
1456 2001-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1457
1458         * gen-table.pl: Const-ify output.  Document the location of a
1459         suitable unicode input file.
1460
1461         * chartables.h: Regenerate.
1462
1463 2001-12-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1464
1465         * chartables.h: Const-ify.
1466         * gjavah.c (options): Likewise.
1467         * jcf-dump.c (options): Likewise.
1468         * jv-scan.c (options): Likewise.
1469         * lex.c (java_start_char_p, java_part_char_p): Likewise.
1470         * parse.y (binop_lookup): Likewise.
1471
1472 2001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1473
1474         * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
1475         the static arrays that are output.
1476         * jvspec.c (jvgenmain_spec): Make static.
1477         * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
1478         * keyword.h: Regenerate.
1479         * lang.c (string_option, process_option_with_no, lang_f_options,
1480         lang_W_options): Const-ify.
1481         * lex.c (java_lex): Likewise.
1482
1483 2001-12-21  Richard Henderson  <rth@redhat.com>
1484
1485         * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
1486         (get_boehm_type_descriptor): ... here.  Arrange for the
1487         TREE_TYPE to get set properly.
1488
1489 2001-12-21  Richard Henderson  <rth@redhat.com>
1490
1491         * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
1492         only if the target requires collect2.
1493
1494         * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
1495
1496 2001-12-20  Tom Tromey  <tromey@redhat.com>
1497
1498         For PR java/4509:
1499         * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
1500         CAN_COMPLETE_NORMALLY for the node.
1501         * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
1502         generate code for second branch if first branch can't complete
1503         normally.
1504         (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
1505         the loop head if the loop body can't complete normally.
1506
1507 2001-12-20  Tom Tromey  <tromey@redhat.com>
1508
1509         For PR java/4766:
1510         * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
1511         case where `finally' clause can't complete normally.
1512
1513 2001-12-20  Tom Tromey  <tromey@redhat.com>
1514
1515         Fixes PR java/5057:
1516         * parse.y (analyze_clinit_body): Added this_class parameter.
1517         Check for more cases where we must keep <clinit>.
1518         (maybe_yank_clinit): Cleaned up flow control.
1519
1520 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1521
1522         * decl.c (java_init_decl_processing): Don't initialize
1523         finit_leg_identifier_node.
1524         * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
1525         (finit_leg_identifier_node): Remove.
1526         (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
1527
1528 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1529
1530         * mangle.c (mangle_member_name): Don't special-case for
1531         NO_DOLLAR_IN_LABEL.
1532         * mangle_name.c (unicode_mangling_length): Likewise.
1533         (append_unicode_mangled_name): Likewise.
1534         * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
1535         code.
1536
1537 2001-12-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1538
1539         * expr.c (build_java_array_length_access): Don't force null pointer
1540         check unless flag_check_references is set.
1541
1542 2001-12-20  Tom Tromey  <tromey@redhat.com>
1543
1544         Fix for PR java/3417:
1545         * parse.y (patch_assignment): Added special processing for
1546         `return'.
1547         (patch_return): Don't convert booleans to integers, and don't
1548         special-case `null'.
1549
1550 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
1551
1552         * config-lang.in (diff_excludes): Remove.
1553
1554 2001-12-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1555
1556         * gcj.texi: Update link to GCC manual.
1557
1558 2001-12-17  Tom Tromey  <tromey@redhat.com>
1559
1560         * parse.y (link_nested_class_to_enclosing): Removed useless
1561         statement.
1562
1563 2001-12-16  Tom Tromey  <tromey@redhat.com>
1564
1565         * mangle.c (mangle_method_decl): Never emit `C2' constructor.
1566         Fixes PR java/5088.
1567
1568 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
1569
1570         * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
1571         jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
1572         spelling errors.
1573
1574 2001-12-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1575
1576         * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
1577
1578 2001-12-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1579
1580         * decl.c (java_init_decl_processing): Build otable_type correctly.
1581         otable_decl is an otable_type.
1582
1583 2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1584
1585         * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
1586         otable_type, otable_ptr_type, method_symbol_type,
1587         method_symbols_array_type, method_symbols_array_ptr_type): New
1588         field/global tree definitions.
1589         (flag_indirect_dispatch): New flag.
1590         * decl.c (java_init_decl_processing): Initialize new otable and
1591         otable_syms type nodes and decls. Add new field "index" to
1592         method_type_node.
1593         * class.c (build_method_symbols_entry): New function.
1594         (make_method_value): Set "index" to to method's vtable index for
1595         virtual methods when indirect-dispatch is not used.
1596         (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
1597         and set vtable_method_count to -1. Set otable and otable_syms field
1598         if indirect-dispatch is used and there was something to put in them.
1599         (build_method_symbols_entry): New function.
1600         (emit_offset_symbol_table): New function.
1601         * expr.c (get_offset_table_index): New function.
1602         (build_invokevirtual): Build array reference to otable at the index
1603         returned by get_offset_table_index, and use the result as the vtable
1604         offset.
1605         (build_invokeinterface): Similar.
1606         * jcf-parse.c (yyparse): If indirect-dispatch, call
1607         emit_offset_symbol_table at the end of compilation, after all classes
1608         have been generated.
1609         * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
1610         * lang.c (flag_indirect_dispatch): Define.
1611         (lang_f_options): Add indirect-dispatch flag.
1612
1613 2001-12-14  Matthias Klose  <doko@debian.org>
1614
1615         * gcj.texi: Markup for man page generation. Document missing
1616         options printed by <tool> --help.
1617         Terminate description of gij's -ms option with a dot.
1618         * Make-lang.in ($(srcdir)/java/*.1): New targets.
1619         (java.generated-manpages java.install-man, java.uninstall,
1620         java-maintainer-clean) Updated.
1621
1622 2001-12-14  Hans Boehm  <Hans_Boehm@hp.com>
1623
1624         * class.c (get_dispatch_table): Fix java vtable layout
1625         for TARGET_VTABLE_USES_DESCRIPTORS.
1626         * decl.c (java_init_decl_processing): Initialize
1627         alloc_no_finalizer_node, finalize_identifier_node.
1628         * expr.c (class_has_finalize_method): New function.
1629         (expand_java_NEW): Generate calls for finalizer-free allocation.
1630         (build_invokevirtual): Fix java vtable layout for
1631         TARGET_VTABLE_USES_DESCRIPTORS.
1632         * java-tree.h (enum java_tree_index): New entries:
1633         JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
1634         (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
1635         (class_has_finalize_method): declare.
1636         (HAS_FINALIZER_P): New macro.
1637         * parse.y (patch_invoke): Generate calls for finalizer-free
1638         allocation.
1639
1640 2001-12-12  Matthias Klose  <doko@debian.org>
1641
1642         * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
1643         whitespace at end of line.
1644
1645 2001-12-11  Tom Tromey  <tromey@redhat.com>
1646
1647         * lex.c (java_init_lex): Define wfl_to_string as
1648         gnu.gcj.runtime.StringBuffer unless generating bytecode.
1649
1650 2001-12-11  Jeff Sturm  <jsturm@one-point.com>
1651
1652         * class.c (make_method_value): Use null_pointer_node to
1653         represent empty exception table.
1654
1655 2001-12-10  Tom Tromey  <tromey@redhat.com>
1656
1657         * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
1658
1659 Mon Dec 10 06:09:57 2001  Douglas B. Rupp  <rupp@gnat.com>
1660
1661         * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
1662
1663 2001-12-09  Per Bothner  <per@bothner.com>
1664
1665         * check-init.c (current_switch_has_default):  New static field.
1666         (check_init):  Case DEFAULT_EXPR: Set current_switch_has_default.
1667         Case SWITCH_EXPR:  Save/restore current_switch_has_default.  If no
1668         DEFAULT_EXPR seen, simulate a default alternative that copies state.
1669
1670 2001-12-09  Tom Tromey  <tromey@redhat.com>
1671
1672         * check-init.c (check_init): Don't allow pre- or post- increment
1673         or decrement of final variable.
1674         (final_assign_error): Minor error message rewording.
1675
1676 2001-12-08  Tom Tromey  <tromey@redhat.com>
1677
1678         * java-tree.h: Fixed typo.
1679
1680         * gjavah.c (decompile_method): Don't decompile to `return this'
1681         for static methods.
1682
1683         * gjavah.c (cxx_keywords): Re-sorted.
1684         * lex.c (cxx_keywords): Re-sorted.
1685
1686         * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
1687         else.
1688
1689         * gjavah.c (print_namelet): Clear subnamelets.
1690         (HANDLE_METHOD): Set `method_printed' earlier.
1691
1692 2001-12-07  Tom Tromey  <tromey@redhat.com>
1693
1694         * lang.c (lang_f_options): Added
1695         optimize-static-class-initialization.
1696         (java_decode_option): Removed special case.
1697
1698 2001-12-07  Per Bothner  <per@bothner.com>
1699
1700         * check-init.c (check_init):  Fix typo freeing memory twice.
1701
1702 2001-12-05  Per Bothner  <per@bothner.com>
1703
1704         Restore support for static class initialization optimization.
1705         * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
1706         * check-init.c (check_int):  At end of BLOCK handle initialization
1707         blocks, which used to be done in java_complete_expand_method but did
1708         not handle the case where check_for_initialization might allocate
1709         more than a word of bits.
1710         * decl.c (lang_make_tree):  The smic field is now a tree.
1711         * expr.c (build_class_init):  Set DECL_FUNCTION_INIT_TEST_CLASS field.
1712         * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE):  New macro.
1713
1714         * parse.y (emit_test_initialization):  Combine hash_lookup calls.
1715
1716         * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
1717         Change from a hash table to a list.
1718         (struct_lang_decl):  Change field 'smic' to match.
1719         * class.c (add_method_1):  Initialize
1720         DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
1721         * parse.y (adjust_init_test_initialization):  Removed - inlined into -
1722         (java_expand_method_bodies): -here, since 'smic' is now a list.
1723         (patch_invoke):  Add to 'smic' list, instead of hash_lookup.
1724
1725         * check-init.c (WORD_SIZE):  Use BITS_PER_UNIT.
1726
1727         * class.c (java_hash_compare_tree_node):  Fix casts.
1728
1729 2001-12-04  Per Bothner  <per@bothner.com>
1730
1731         * check-init.c:   Handle definite unassignment to finals in addition
1732         to definite assignment.
1733         (loop_current_locals):  New field.
1734         (num_current_locals, int start_current_locals, num_current_words):
1735         Make static.
1736         (SET_P, CLEAR_P, SET_BIT):  Add needed but missing parentheses.
1737         (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
1738         CLEAR_ASSIGNED, CLEAR_UNASSIGNED):  New macros.
1739         (get_variable_decl, check_final_reassigned):  New functions.
1740         (check_init, check_bool_init):  Modify as needed for checking finals.
1741         (check_for_initialization):  Take extra parameter and return void.
1742         Do extra start-up logic to check final fields for assignment.
1743         * parse.y (check_static_final_variable_assignment_flag,
1744         reset_static_final_variable_assignment_flag, check_final_assignment,
1745         check_final_variable_local_assignment_flag,
1746         reset_final_variable_indirect_assignment_flag,
1747         reset_final_variable_global_assignment_flag):  Remove functions.
1748         (java_complete_expand_methods, outer_field_access_fix,
1749         patch_assignment): Remove no-longer used logic.
1750         * java-tree.h (DECL_FIELD_FINAL_IUD):  Change usage and comments.
1751         * parse.y (register_fields, java_complete_tree):  Update accordingly.
1752
1753         * check-init.c (ALLOC_WORDS/FREE_WORDS):  Use xmalloc/free, not alloca.
1754         (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER):  New.
1755         (check_cond_init, check_bool2_init):  Use DECLARE_BUFFERS.
1756
1757         * java-tree.h (STATIC_CLASS_INIT_OPT_P):  Temporarily turn off.
1758
1759         * java-tree.h (DECL FINAL):  New bit-field.
1760         (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL):  Define as DECL_FINAL.
1761         (LOCAL_FINAL_P):  Use DECL_FINAL rather than old LOCAL_FINAL.
1762         (DECL_INIT_CALLS_THIS):  New macro.
1763         (struct lang_decl):  New bit-field init_calls_this.
1764         (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
1765         DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
1766         (DECL_BIT_INDEX):  Change to use pointer_alias_set since we now
1767         use it for both local variables and final fields.
1768         (struct lang_decl_var):  Remove bit-fields final_liic, final_ierr,
1769         and local_final.
1770         (struct lang_type):  Remove hfv bit-field.
1771         (check_for_initialization):  Change to return void.
1772
1773         * java-tree.h (IS_ARRAY_LENGTH_ACCESS):  New macros.
1774         * expr.c (build_java_array_length_access):  Set IS_ARRAY_LENGTH_ACCESS.
1775         * check-init.c (final_assign_error):  New helper function.
1776         (check_final_reassigned, check_init):  Use it.
1777         (check_init):  Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
1778
1779         * java-tree.h (struct lang_decl, struct lang_decl_var):  Change all
1780         bit-fields to unsigned.
1781
1782 2001-12-03  Per Bothner  <per@bothner.com>
1783
1784         * parse.y (patch_binop):  Minor constant folding.
1785
1786         * parse.y (build_current_thisn):  Shorter 'buffer'.
1787
1788 2001-12-03  Per Bothner  <per@bothner.com>
1789
1790         * decl.c (complete_start_java_method):  Now generate TRY_FINALLY_EXPR
1791         instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
1792         * jcf-write.c (generate_bytecode_insns):  Remove support for
1793         CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
1794         * check-init.c (check_init):  Likewise.
1795
1796 2001-12-03  Per Bothner  <per@bothner.com>
1797
1798         * verify.c (subroutine_nesting):  New function.
1799         (verify_jvm_instructions):  Use it to fix logic for checking that
1800         we're done with the current subroutine.
1801
1802         * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
1803         OPCODE_instanceof use POP_TYPE macro for better diagnostics.
1804
1805 2001-12-03  Per Bothner  <per@bothner.com>
1806
1807         * jcf.h:  Fix obvious typo in comment.
1808         * typeck.c (build_null_signature):  Add comment.
1809
1810 2001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1811
1812         * expr.c: Remove leading capital from diagnostic messages, as
1813         per GNU coding standards.
1814         * jcf-io.c: Similarly.
1815         * jcf-parse.c: Similarly.
1816         * jv-scan.c: Similarly.
1817         * jvspec.c: Similarly.
1818         * mangle.c: Similarly.
1819
1820 2001-12-02  Tang Ching-Hui  <nicholas@cs.nthu.edu.tw>
1821             Alexandre Petit-Bianco  <apbianco@redhat.com>
1822
1823         * expr.c (build_java_arrayaccess): Call save_expr on array for
1824         correct evaluation order, modified comment, fixed indentation.
1825         * parse.y: (patch_assignment): Correctly extract the array base
1826         from the tree generate by build_java_arrayaccess, added comments.
1827         (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
1828         Fixes PR java/3096, PR java/3803, PR java/3965.
1829
1830 2001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1831
1832         * expr.c (expand_byte_code): Remove trailing periods from messages.
1833         * jcf-parse.c (load_class, jcf_parse): Similarly.
1834         * jcf-write.c (generate_classfile): Similarly.
1835         * lex.c (java_lex): Similarly.
1836
1837 2001-11-30  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1838
1839         * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
1840
1841 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1842
1843         * Make-lang.in (java.generated-manpages): New dummy target.
1844
1845 2001-11-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1846
1847         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
1848         ASM_FINAL_SPEC.
1849         (lang_specific_pre_link): Use set_input to set input_filename.
1850         Append `main' here.
1851         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
1852         (main): Fix definition.
1853         Strip `main' from classname.
1854         Fixes PR java/227.
1855
1856 2001-11-18  Roger Sayle <roger@eyesopen.com>
1857
1858         * parse.h (java_expand_switch): Remove old prototype.
1859
1860 2001-11-18  Tom Tromey  <tromey@redhat.com>
1861
1862         Fix for PR java/1401:
1863         * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
1864         arg0 is null.
1865         (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
1866         correctly.
1867
1868 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1869
1870         * lang.c (finish_parse): Rename to java_finish.
1871         (LANG_HOOKS_FINISH, java_finish): New.
1872
1873 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1874
1875         * decl.c (init_decl_processing): Rename java_init_decl_processing.
1876         * java-tree.h: New prototype.
1877         * lang.c (java_init): Update prototype.  Combine with old init_parse.
1878
1879 2001-11-13  Tom Tromey  <tromey@redhat.com>
1880
1881         * gjavah.c (method_signature): New global.
1882         (HANDLE_METHOD): Set it.
1883         (decompile_return_statement): New function.
1884         (decompile_method): Use it.
1885         (print_method_info): Removed `synth' argument.
1886
1887 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1888
1889         * java-tree.h (java_set_yydebug): New.
1890         * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
1891         * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
1892         (print_lang_decl, print_lang_type, print_lang_identifier,
1893         print_lang_statistics, lang_print_xnode): Remove.
1894
1895 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1896
1897         * jcf-parse.c (init_lex): Remove.
1898         * lang.c (language_string, lang_identify): Remove.
1899         (struct lang_hooks): Constify.
1900         (LANG_HOOKS_NAME): Override.
1901         (init_parse): Update.
1902
1903 2001-11-08  Andreas Franck  <afranck@gmx.de>
1904
1905         * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
1906         program_transform_name the way suggested by autoconf.
1907         (java.install-common): Also transform auxiliary program names with
1908         program_transform_name.
1909
1910 2001-11-08  Tom Tromey  <tromey@cygnus.com>
1911
1912         * parse.y (trap_overflow_corner_case): New rule.
1913         (unary_expression): Use it.
1914         * lex.c (java_init_lex): Don't set minus_seen.
1915         (yylex): Don't use minus_seen.  Communicate overflow to parser for
1916         it to handle.
1917         (error_if_numeric_overflow): New function.
1918         * parse.h (minus_seen): Removed field.
1919         (JAVA_RADIX10_FLAG): New define.
1920
1921 2001-11-07  Tom Tromey  <tromey@redhat.com>
1922
1923         Patch for PR java/1414:
1924         * parse.y (case_label_list): New global.
1925         (goal): Register case_label_list with GC.
1926         (java_complete_lhs): Save new case on case_label_list.
1927         (patch_switch_statement): Check for duplicate case labels.
1928
1929 2001-11-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
1930
1931         * parse.y (patch_assignment): Removed unused third argument.
1932         (java_complete_lhs): Removed unused third argument to patch_assignment.
1933
1934 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1935
1936         * lang.c: Include langhooks-def.h.
1937         * Make-lang.in: Update.
1938
1939 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
1940
1941         * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
1942
1943 2001-10-29  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1944
1945         * mangle.c (find_compression_record_match): Don't match compression
1946         records for package name elements unless they occur at the start of
1947         the name. Fix for PR java/4717.
1948
1949 2001-10-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1950
1951         * expr.c (expand_java_field_op): Don't special-case references to
1952         java.lang.PRIMTYPE.TYPE.
1953         (build_primtype_type_ref): Removed.
1954         * java-tree.h (build_primtype_type_ref): Remove prototype.
1955         * parse.y (maybe_build_primttype_type_ref): Removed.
1956         (complete_function_arguments): Don't special-case references to
1957         java.lang.PRIMTYPE.TYPE.
1958         (patch_assignment): Likewise.
1959         (array_constructor_check_entry): Likewise.
1960
1961 2001-10-24  Alexandre Petit-Bianco  <apbianco@redhat.com>
1962
1963         * mangle.c (static tree compression_table): Fixed leading comment.
1964         * parse.h (struct parser_ctxt): Fixed field comment.
1965         * parse.y (check_pkg_class_access): New prototype, fixed leading
1966         comment, new parameter used to emit error only if passed as true.
1967         (parse_check_super): Pass extra argument to check_pkg_class_access.
1968         (do_resolve_class): Likewise.
1969         (process_imports): Likewise.
1970         (read_import_dir): Fixed indentation.
1971         (find_in_imports_on_demand): New local class_type_name. Local
1972         node_to_use deleted. while loop changed into for loop. Report
1973         multiple definition only for accessible classes. Improved error
1974         message.
1975         (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
1976         assigned to parameter list, fixed indentation. while loop changed
1977         into for loop, restore TREE_CHAIN on local `tem' before the next
1978         iteration.
1979
1980 Tue Oct 23 14:02:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1981
1982         * lang.c (lang_get_alias_set): Deleted.
1983
1984 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1985
1986         * gjavah.c (jni_print_char): Fix thinko in last change.
1987
1988         * gjavah.c (jni_print_char, decode_signature_piece): Use
1989         safe-ctype macros and/or fold extra calls into fewer ones.
1990         * lex.c (java_read_unicode, java_lex): Likewise.
1991         * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
1992         JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
1993         * mangle_name.c (append_unicode_mangled_name,
1994         unicode_mangling_length): Likewise.
1995
1996 2001-10-17  Richard Henderson  <rth@redhat.com>
1997
1998         * Make-lang.in (java/lang.o): Depend on langhooks.h.
1999
2000 2001-10-15  Alexandre Petit-Bianco  <apbianco@redhat.com>
2001
2002         * lang.c (langhooks.h): Included.
2003         (LANG_HOOKS_INIT): Redefined.
2004         (LANG_HOOKS_INIT_OPTIONS): Likewise.
2005         (LANG_HOOKS_DECODE_OPTION): Likewise.
2006         (struct lang_hooks lang_hooks): New initialization.
2007
2008 2001-10-11  Per Bothner  <per@bothner.com>
2009
2010         * parse.y (patch_synchronized_statement):  Use a TRY_FINALLY_EXPR
2011         rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
2012         The former is simpler, and jcf-write.c handles it better.
2013         (java_complete_lhs):  No longer need to handle CLEANUP_POINT_EXPR
2014         or WITH_CLEANUP_EXPR.
2015         * jcf-write.c:  Revert Alex's change from 2000-10-18.  It is no
2016         longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
2017
2018         * parse.y (patch_if_else_statement):  If the condition is constant,
2019         optimize away the test.
2020
2021 2001-10-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
2022
2023         * parse.y (patch_cast): Call patch_string on the first operand of
2024         the incoming node, update it if necessary. Fixes PR java/4510.
2025
2026 2001-10-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2027
2028         * parse.y (find_as_inner_class): Don't disregard the enclosing scope
2029         when name qualifier matches a package name.
2030
2031 2001-10-08  Tom Tromey  <tromey@redhat.com>
2032
2033         Fix for PR java/4489:
2034         * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
2035         force a new label when computing `body_block'.
2036
2037 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2038
2039         * jcf-io.c (format_uint): Const-ify.
2040         * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
2041         * lex.c (java_get_line_col): Likewise.
2042         * parse.y (build_incdec): Likewise.
2043
2044 2001-10-05  Alexandre Petit-Bianco  <apbianco@redhat.com>
2045
2046         * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
2047         a NULL enclosing context if appropriate. Fixes PR java/4466.
2048
2049 2001-10-03  Alexandre Petit-Bianco  <apbianco@redhat.com>
2050
2051         * parse.y (patch_assignment): Use lvalue's original TYPE when
2052         building the final COMPOUND_EXPR.
2053         (try_reference_assignconv): Fixed leading comment.
2054
2055 2001-09-26  Alexandre Petit-Bianco  <apbianco@redhat.com>
2056
2057         * parse.y (check_final_variable_indirect_assignment): For
2058         COMPOUND_EXPR, return only if finals were found initialized
2059         properly, if not, keep on checking.
2060         (check_final_variable_global_assignment_flag): New local
2061         error_found, set when appropriate and used to decide whether to
2062         report uninitialized finals. Fixed typo in comment.
2063
2064 2001-09-22  Alexandre Petit-Bianco  <apbianco@redhat.com>
2065
2066         * decl.c (init_decl_processing): Fixed typo in predef_filenames
2067         last three initializations. Fixes PR java/4360.
2068
2069 2001-09-21  Richard Henderson  <rth@redhat.com>
2070
2071         * class.c (get_dispatch_table): Handle function descriptors.
2072         (build_dtable_decl): Likewise.
2073         * expr.c (build_invokevirtual): Likewise.
2074
2075 2001-09-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
2076
2077         * parse.y (patch_method_invocation): Build class initialization
2078         when static finals are used to qualify method invocation.
2079         Fixes PR java/4366.
2080
2081 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
2082
2083         * parse.h: (WFL_STRIP_BRACKET): Re-written using
2084         build_type_name_from_array_name.
2085         (STRING_STRIP_BRACKETS): New macro.
2086         * parse.y (build_type_name_from_array_name): New function.
2087         (array_creation_expression:): Accumulate []s instead of [s.
2088         (cast_expression:): Accumulate []s instead of [s after cast type
2089         name.
2090         (build_array_from_name): Local string deleted, use
2091         build_type_name_from_array_name.
2092         (build_unresolved_array_type): Accumulate []s instead of [s after
2093         type name.
2094         (register_fields): Fixed comment.
2095         (resolve_class): Local name, base deleted, new locals tname and
2096         array_dims. Use build_type_name_from_array_name. Use array_dims to
2097         build array type.
2098         (purify_type_name): Use STRING_STRIP_BRACKETS.
2099
2100 2001-09-18  Andreas Jaeger  <aj@suse.de>
2101
2102         * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
2103         * jv-scan.c: Likewise.
2104
2105 2001-09-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
2106
2107         * parse.y (patch_method_invocation): Inner class creation context
2108         check not enforced within constructors. Fixes PR java/1873.
2109
2110 2001-09-16  Tom Tromey  <tromey@redhat.com>
2111
2112         * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
2113         NOTE_PUSH for single-case push.  Fixes PR java/4189.
2114
2115 2001-09-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
2116
2117         * java-tree.h (TYPE_IMPORT_LIST): New macro.
2118         (TYPE_IMPORT_DEMAND_LIST): Likewise.
2119         (struct lang_type): New fields import_list and import_demand_list.
2120         * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
2121         TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
2122         (do_resolve_class): New local saved_enclosing_type, initialized,
2123         passed as parameter to find_in_imports and find_in_imports_on_demand.
2124         (find_in_imports): Added paramater enclosing_type, use its
2125         TYPE_IMPORT_LIST when applicable.
2126         (find_in_imports_on_demand): Added parameter enclosing_type, use
2127         its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
2128         declaration and initialization.
2129         (fold_constant_for_init): Switch/restore current_class to the
2130         appropriate context.
2131
2132 2001-09-13  Mark Mitchell  <mark@codesourcery.com>
2133
2134         * verify.c (verify_jvm_instructions): Fix typo.
2135
2136 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2137
2138         * expr.c (expand_invoke): Const-ification.
2139         * parse.y (patch_method_invocation): Likewise.
2140
2141 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2142
2143         * gjavah.c (cxx_keywords): Const-ification.
2144         * keyword.gperf (java_keyword): Likewise.
2145         * lang.c (java_tree_code_name): Likewise.
2146         * lex.c (cxx_keywords): Likewise.
2147         * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
2148
2149 2001-09-11  Richard Henderson  <rth@redhat.com>
2150
2151         * parse.h (ctxp_for_generation): Mark extern.
2152
2153 2001-09-10  Richard Henderson  <rth@redhat.com>
2154
2155         * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
2156
2157 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2158
2159         * typeck.c (java_array_type_length, build_prim_array_type):
2160         Represent empty arrays by NULL index.
2161
2162 2001-09-06  Alexandre Petit-Bianco  <apbianco@redhat.com>
2163
2164         * java-tree.h (compile_resource_file): Grouped with other prototypes.
2165         * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
2166
2167 2001-09-06  Anthony Green  <green@redhat.com>
2168
2169         * class.c (O_BINARY): Define if necessary.
2170         (registerResource_libfunc): Declare.
2171         (init_class_processing): Initilize registerResource_libfunc.
2172         (compile_resource_file): New function.
2173         * java-tree.h (resource_name): Declare.
2174         (compile_resource_file): Declare.
2175         * jcf-parse.c (yyparse): Handle compiling java resource files.
2176         * lang.c (java_decode_option): Handle -fcompile-resource option.
2177         * jvspec.c (lang_specific_driver): Handle -R flag for compiling
2178         resource files.
2179         * gcj.texi (Code Generation): Add documentation for -R flag.
2180
2181 2001-09-05 Alexandre Petit-Bianco  <apbianco@redhat.com>
2182
2183         * jcf-write.c (generate_classfile): Issue an error in case of
2184         field/initial value mismatch.
2185         * parse.y (analyze_clinit_body): Keep <clinit> if an array is
2186         being initialized and we're generating bytecode.
2187         (java_complete_lhs): In MODIFY_EXPR section: added comments,
2188         set DECL_INITIAL properly when appropriate.
2189         Fixes PR java/4230
2190         Fixes PR java/4204
2191
2192 2001-09-01  Per Bothner  <per@bothner.com>
2193
2194         * parse.y (maybe_yank_clinit):  A field without an initializer is not
2195         relevant.  All initializers except static final and constant require
2196         <clinit>, regardless of flag_emit_class_files.
2197
2198 2001-08-31  Per Bothner  <per@bothner.com>
2199
2200         * class.c (set_constant_value):  When not emiting class files, then a
2201         String ConstantValue is a utf8const_ptr_type.
2202
2203 2001-08-30  Per Bothner  <per@bothner.com>
2204
2205         * jcf-write.c (generate_classfile):  Check that field is primitive
2206         or string before emitting ConstantValue attribute.
2207
2208 2001-08-30  Per Bothner  <per@bothner.com>
2209
2210         * parse.y (resolve_qualified_expression_name):  If creating a
2211         COMPOUND_EXPR, set it's type correctly.
2212
2213 2001-08-30  Per Bothner  <per@bothner.com>
2214
2215         * jcf-io.c (open_class):  Set filename field.
2216
2217         * jcf-parse,c (parse_class_file):  Set current_function_decl
2218         for better error message when Code attribute is missing.
2219
2220         * lang.c (put_decl_node, lang_print_error):  Re-arrange for
2221         better diagnostics, especially for constructors.
2222
2223 2001-08-30  Per Bothner  <per@bothner.com>
2224
2225         * jcf-write.c (generate_classfile):  Don't write ConstantValue
2226         attribute if field is not final, for compatibility with jdk.
2227
2228         * jcf-write.c (generate_classfile):  Convert ConstantValue values
2229         to correct type.  Work-around for front-end bug.
2230         * class.c (set_constant_value):  Error if constant has wrong type.
2231
2232 2001-08-30  Per Bothner  <per@bothner.com>
2233
2234         * jcf-dump.c (print_constant):  Fix fencepost error so "Float" and
2235         "Double" are printed at verbosity 1.
2236
2237         * jcf-dump.c (main):  Disable flag_print_attributes if --javap.
2238
2239         * jcf-dump.c (SPECIAL_IINC):  Remove unneeded casts to long.
2240
2241 2001-08-30  Alexandre Petit-Bianco  <apbianco@redhat.com>
2242
2243         * parse.y (patch_assignment): Don't verify final re-assignment here.
2244         (java_complete_lhs): Verify assignments to finals calling
2245         patch_assignment. Verify re-assignments to finals before calling
2246         patch_assignment.
2247
2248 2001-08-29  Alexandre Petit-Bianco  <apbianco@redhat.com>
2249
2250         * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
2251         Fixes PR java/1413
2252
2253 2001-08-28  Alexandre Petit-Bianco  <apbianco@redhat.com>
2254
2255         * lex.c (java_lex): new local found_hex_digits. Set and then used
2256         in test to reject invalid hexadecimal numbers.
2257         * parse.y (java_complete_tree): Prevent unwanted cast with
2258         initialized floating point finals.
2259         (patch_binop): Emit a warning when detecting a division by zero,
2260         mark result not constant, don't simplify non integer division.
2261
2262 2001-08-28  Per Bothner  <per@bothner.com>
2263
2264         * jcf-write.c  (generate_bytecode_insns):  For increments and
2265         decrements just recurse to push constant.  Improvement on Mark's patch.
2266
2267 2001-08-28  Mark Mitchell  <mark@codesourcery.com>
2268
2269         * jcf-write.c (generate_bytecode_insns): Generate an integer to
2270         real conversion for increments and decrements of reals.
2271
2272 2001-08-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
2273
2274         * parse.y (resolve_qualified_expression_name): Handle unresolved
2275         qualified expressions, prevent numerical qualifiers, fixed typo.
2276         Fixes PR java/4141
2277
2278 2001-08-24  Alexandre Petit-Bianco  <apbianco@redhat.com>
2279
2280         * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
2281         don't report anything but deprecated class when marked so. Handle
2282         VAR_DECL.
2283         (patch_method_invocation): Check deprecation on methods and types.
2284         (patch_binop): code becomes an enum tree_code, added default: to
2285         switch to handle that. Detect division by zero, try to fold and
2286         return before using a subroutine.
2287
2288 2001-08-23  Alexandre Petit-Bianco  <apbianco@redhat.com>
2289
2290         * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
2291         file smaller than 4 bytes.
2292         * parse.y (check_inner_circular_reference): New function.
2293         (check_circular_reference): Likewise.
2294         (array_initializer:): Accept {,}.
2295         (java_check_circular_reference): Rewritten using
2296         check_circular_reference and check_inner_circular_reference.
2297         (java_complete_expand_method): Unconditionally save and restore
2298         the unpurged exception list.
2299         (build_dot_class_method_invocation): Unmangle signature parameter.
2300
2301 2001-08-21  Tom Tromey  <tromey@redhat.com>
2302
2303         * decl.c (init_decl_processing): Add `throws' field to method
2304         descriptor.
2305         * class.c (make_method_value): Compute `throws' field for method.
2306
2307 2001-08-22  Alexandre Petit-Bianco  <apbianco@redhat.com>
2308
2309         * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
2310         circularity is detected.
2311         (ctors_unchecked_throws_clause_p): Fixed leading comment.
2312
2313 2001-08-17  Richard Henderson  <rth@redhat.com>
2314
2315         * class.c (emit_register_classes): Add align parameter to
2316         call to assemble_integer.
2317
2318 2001-08-16  Alexandre Petit-Bianco  <apbianco@redhat.com>
2319
2320         * jcf-parse.c (load_class): New locals saved and class_loaded. If
2321         loading a class_or_name fails, try considering an innerclass name
2322         and load the enclosing context.
2323         * parse.y (resolve_inner_class): New function.
2324         (find_as_inner_class): Added leading comment.
2325         (register_incomplete_type): Keep the current context as enclosing
2326         context for JDEP_FIELD dependencies.
2327         (do_resolve_class): Locals new_class_decl and super initialized to
2328         NULL. Call resolve_inner_class, explore the enclosing context
2329         superclass if necessary.
2330         Fixes PR java/4007
2331
2332 2001-08-16  Tom Tromey  <tromey@redhat.com>
2333
2334         * jcf-dump.c (main): Updated for change to jcf_path_seal.
2335         * gjavah.c (main): Updated for change to jcf_path_seal.
2336         * lang.c (version_flag): New global.
2337         (java_decode_option): Recognize `-version'.
2338         (java_init): Update for change to jcf_path_seal.
2339         * jcf.h (jcf_path_seal): Added `print' argument.
2340         * jcf-path.c (jcf_path_seal): Added `print' argument.
2341
2342 2001-08-13  Zack Weinberg  <zackw@panix.com>
2343
2344         * Make-lang.in (java/decl.o): Update dependencies.
2345         * decl.c: Include libfuncs.h, don't include toplev.h.
2346
2347 2001-08-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
2348
2349         * decl.c (init_decl_processing): exception_type_node,
2350         class_not_found_type_node, and no_class_def_found_type_node
2351         initialized. predef_filenames augmented accordingly.
2352         instinit_identifier_node initialized.
2353         * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
2354         * java-tree.h (enum java_tree_index): New entries
2355         JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
2356         JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
2357         (exception_type_node): New macro.
2358         (class_not_found_type_node): Likewise.
2359         (no_class_def_found_type_node): Likewise.
2360         (instinit_identifier_node): Likewise.
2361         (PREDEF_FILENAMES_SIZE): Adjusted.
2362         (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
2363         (struct lang_type): Fixed typo in bitfield name.
2364         (DECL_INSTINIT_P): New macro.
2365         (ID_INSTINIT_P): Likewise.
2366         * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
2367         attribute.
2368         * parse.y (encapsulate_with_try_catch): New function.
2369         (generate_instinit): Likewise.
2370         (build_instinit_invocation): Likewise.
2371         (ctors_unchecked_throws_clause_p): Likewise.
2372         (add_instance_initializer): Deleted.
2373         (build_instance_initializer): Likewise.
2374         (in_instance_initializer): Likewise.
2375         (check_method_redefinition): instinit$ not to be verified.
2376         (java_complete_expand_methods): Generate instinit$, simplified code.
2377         (build_dot_class_method): Eliminated unnecessary locals. Use
2378         encapsulate_with_try_catch, removed unnecessary code.
2379         (fix_constructors): New local iii. Use build_instinit_invocation.
2380         (patch_method_invocation): Added comment.
2381         (maybe_use_access_method): Don't consider instinit$.
2382         (find_applicable_accessible_methods_list): Shorten the search for
2383         instinit$ too.
2384         (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
2385         (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
2386         (patch_throw_statement): Likewise. Fixed typo.
2387
2388 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
2389
2390         Revert:
2391         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2392         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
2393         ASM_FINAL_SPEC.
2394         (lang_specific_pre_link): Use set_input to set input_filename.
2395         Append `main' here.
2396         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
2397         (main): Fix definition.
2398         Strip `main' from classname.
2399         Fixes PR java/227.
2400
2401 2001-08-11  Zack Weinberg  <zackw@panix.com>
2402
2403         * lex.h: Don't include setjmp.h.  Don't define
2404         SET_FLOAT_HANDLER or prototype set_float_handler.
2405
2406 2001-08-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
2407
2408         * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
2409         `poplevel' in the right order.
2410
2411 2001-08-09  Richard Henderson  <rth@redhat.com>
2412
2413         * Make-lang.in (class.o): Depend on TARGET_H.
2414         * class.c (emit_register_classes): Use target hooks instead of
2415         assemble_constructor and assemble_destructor.
2416
2417 2001-08-08  Alexandre Petit-Bianco  <apbianco@redhat.com>
2418
2419         * check-init.c (flags.h): Include
2420         (check_init): Don't report uninitialized static class
2421         initialization flags, don't free bit index when doing static class
2422         initialization optimization.
2423         (check_for_initialization): Return type changed to `unsigned int.'
2424         (attach_initialized_static_class): New function.
2425         * class.c (add_method_1): Create the initialized static class
2426         table if necessary.
2427         (finish_class): Always emit deferred inline methods.
2428         * decl.c (emit_init_test_initialization): Moved to expr.c
2429         (complete_start_java_method): Don't traverse
2430         DECL_FUNCTION_INIT_TEST_TABLE.
2431         (lang_mark_tree): Mark hash tables in function decls.
2432         * expr.c (emit_init_test_initialization): Moved from decl.c.
2433         (build_class_init): Create LAG_DECL_SPECIFIC for the static class
2434         initialization flag, set DECL_CONTEXT and
2435         LOCAL_CLASS_INITIALIZATION_FLAG.
2436         (java_lang_expand_expr): Emit initialization code for static class
2437         initialized flags when entering block, if necessary.
2438         * gcj.texi (-fno-optimize-static-class-initialization): Documented.
2439         * java-tree.h (flag_optimize_sci): New global variable declaration.
2440         (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
2441         (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
2442         (LOCAL_FINAL_P): Fixed typo in comment.
2443         (FINAL_VARIABLE_P): Likewise.
2444         (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
2445         (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
2446         (struct lang_decl): New fields `ict', `smic' and `cif.'
2447         (check_for_initialization): New returned value for global.
2448         (attach_initialized_static_class): New global function.
2449         (STATIC_CLASS_INIT_OPT_P): New macro.
2450         * lang-options.h (-fno-optimize-static-class-initialization): New flag.
2451         * lang.c (java_decode_option): Handle
2452         `-fno-optimize-static-class-initialization'
2453         * parse.y (start_complete_expand_method): New function.
2454         (java_expand_method_bodies): Likewise.
2455         (attach_init_test_initialization_flags): Likewise.
2456         (adjust_init_test_initialization): Likewise.
2457         (emit_test_initialization): Likewise.
2458         (java_complete_expand_methods): Nullify abstract and native method
2459         bodies.
2460         (java_complete_expand_method): New locals `fbody', `block_body'
2461         and `exception_copy.' Reorganized: directly return on empty method
2462         bodies, call `start_complete_expand_method', remember definitely
2463         initialized static class in function, don't expand method bodies.
2464         (java_expand_classes): Call `java_expand_method_bodies' before
2465         `finish_class' when compiling to native.
2466         (resolve_expression_name): Use `orig' after building outer class
2467         field access.
2468         (patch_invoke): Remember static method invokations.
2469
2470 2001-08-06  Richard Henderson  <rth@redhat.com>
2471
2472         * class.c (emit_register_classes): Pass a symbol_ref and priority
2473         to assemble_constructor.
2474
2475 2001-08-02  Alexandre Petit-Bianco  <apbianco@redhat.com>
2476
2477         * java-tree.h (all_class_filename): New macro.
2478         (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
2479         (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
2480         newly created IDENTIFIER_NODE to `all_class_filename.'
2481
2482 2001-08-01  Jeff Sturm  <jsturm@one-point.com>
2483
2484         * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
2485         Use ggc_add_tree_root to register roots.
2486
2487 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
2488
2489         * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
2490         second operand calling check_init.
2491         * decl.c (complete_start_java_method): Swaped second and third
2492         arguments while creating WITH_CLEANUP_EXPR node.
2493         * jcf-write.c (generate_bytecode_insns): Use second operand
2494         instead of third when handling WITH_CLEANUP_EXPR.
2495         * parse.y (java_complete_lhs): Expand second operand of
2496         WITH_CLEANUP_EXPR nodes.
2497         (patch_synchronized_statement): Swaped second and third arguments
2498         while creating WITH_CLEANUP_EXPR node.
2499
2500 2001-07-18  Alexandre Petit-Bianco  <apbianco@redhat.com>
2501
2502         * parse.y (create_interface): Avoid cyclic inheritance report when
2503         syntax error encountered during class definition.
2504         Fixes PR java/2956
2505
2506 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2507
2508         * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
2509         ASM_FINAL_SPEC.
2510         (lang_specific_pre_link): Use set_input to set input_filename.
2511         Append `main' here.
2512         * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
2513         (main): Fix definition.
2514         Strip `main' from classname.
2515         Fixes PR java/227.
2516
2517 2001-07-18  Tom Tromey  <tromey@redhat.com>
2518
2519         For PR java/2812:
2520         * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
2521         * lex.c (java_new_lexer): Use ICONV_CONST.
2522         (java_read_char): Likewise.
2523         * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
2524         (jv-scan$(exeext)): Likewise.
2525
2526 2001-07-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
2527
2528         * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
2529         * parse.y (check_class_interface_creation): Allow `private' if the
2530         enclosing is not an interface.
2531         (create_interface): Interface tagged public if the enclosing
2532         context is an interface.
2533         (create_class): Class tagged public if the enclosing context
2534         is an interface.
2535         Fixes PR java/2959
2536
2537 2001-07-17  Alexandre Petit-Bianco  <apbianco@redhat.com>
2538
2539         * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
2540         Fixes PR java/2665
2541
2542 2001-07-14  Tim Josling  <tej@melbpc.org.au>
2543
2544         * check-init.c (check_init): Remove references to EXPON_EXPR.
2545
2546 2001-07-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
2547
2548         * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
2549         TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
2550         Fixes PR java/3602
2551
2552 2001-07-13  Tom Tromey  <tromey@redhat.com>
2553
2554         * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
2555         invocation.
2556
2557 2001-07-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
2558
2559         * parse.y (patch_method_invocation): Don't override primary if one
2560         is already provided, but let this$<n> be built. Fixed comment.
2561
2562 2001-07-12  Alexandre Petit-Bianco  <apbianco@redhat.com>
2563
2564         * parse.y (empty_statement:): Report empty statement error only
2565         when found at class declaration level.
2566         Fixes PR java/3635
2567
2568 2001-07-12  Tom Tromey  <tromey@redhat.com>
2569
2570         * expr.c (expand_load_internal): New function.
2571         (LOAD_INTERNAL): Use it.
2572
2573 2001-07-11  Alexandre Petit-Bianco  <apbianco@redhat.com>
2574
2575         * parse.y (verify_constructor_super): Compare anonymous class ctor
2576         args with `valid_method_invocation_conversion_p.'
2577         Fixes PR java/3285
2578
2579 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
2580
2581         * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
2582         `-fsyntax-only.' Fixes PR java/3248
2583
2584 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
2585
2586         * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
2587
2588 2001-07-10  Alexandre Petit-Bianco  <apbianco@redhat.com>
2589
2590         * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
2591         current function is static. Fixes PR java/1970
2592
2593 2001-07-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
2594
2595         * parse.y (patch_method_invocation): Add enclosing context to ctor
2596         calls if necessary. Fixes PR java/2953
2597
2598 2001-07-09  Alexandre Petit-Bianco  <apbianco@redhat.com>
2599
2600         * parse.y (resolve_package): Abort if qualified expression member
2601         isn't right.
2602         (qualify_ambiguous_name): Don't qualify as type if `this' in use.
2603         Fixes PR java/1391
2604
2605 2001-07-07  Zack Weinberg  <zackw@stanford.edu>
2606
2607         * verify.c: Don't use // comments.
2608
2609 2001-07-05  Tom Tromey  <tromey@redhat.com>
2610
2611         * lang.c (flag_assume_compiled): Removed.
2612         * java-tree.h (flag_assume_compiled): Removed.
2613         * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
2614         -fhash-synchronization, -fuse-divide-subroutine,
2615         -fcheck-references, -femit-class-file, -femit-class-files,
2616         -fassume-compiled.  Updated --encoding information.  Changed
2617         -foutput-class-dir to `-d'.
2618
2619 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
2620
2621         * jcf-parse.c (parse_class_file): Add lineno parameter to
2622         debug_start_source_file call.
2623
2624 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
2625
2626         * gcj.texi: Use gpl.texi.
2627         * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
2628         dependencies and use doc/include in search path.
2629
2630 2001-07-03  Jeff Sturm  <jsturm@one-point.com>
2631
2632         * parse.y (fix_constructors): Test if a CALL_EXPR invokes
2633         `this'.  If so, don't build instance initializers.
2634
2635 2001-07-03  Alexandre Petit-Bianco  <apbianco@redhat.com>
2636
2637         * parse.y (resolve_expression_name): Improved error message for
2638         inner class cases. Fixes PR java/1958
2639
2640 2001-06-28  Gabriel Dos Reis  <gdr@codesourcery.com>
2641
2642         * lang.c: #include diagnostic.h
2643         (lang_print_error): Add a `diagnostic_context *' parameter.
2644         (java_dummy_print): Likewise.
2645         * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
2646
2647 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
2648
2649         * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
2650         * jcf.h (typedef struct JCF): New bitfield `finished.'
2651         (JCF_FINISH): Set `finished.'
2652         (JCF_ZERO): Reset `finished.'
2653         Fixes PR java/2633
2654
2655 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
2656
2657         * parse.y (class_body_declaration:): Don't install empty instance
2658         initializers.
2659         Fixes PR java/1314
2660
2661 2001-06-27  Alexandre Petit-Bianco  <apbianco@redhat.com>
2662
2663         * class.c (set_super_info): Call `set_class_decl_access_flags.'
2664         (set_class_decl_access_flags): New function.
2665         * java-tree.h (set_class_decl_access_flags): New prototype.
2666         * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
2667         (parse_class_file): New local `decl_max_locals.' Take wide types
2668         into account to compute DECL_MAX_LOCALS.
2669         * parse.y (type_import_on_demand_declaration:): Ignore duplicate
2670         imports on demand.
2671
2672 2001-06-22  Jan van Male  <jan.vanmale@fenk.wau.nl>
2673
2674         * zipfile.h: Use GCC_JCF_H instead of JCF_H.
2675
2676 2001-06-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
2677
2678         * class.c (java_hash_tree_node): Fixed indentation in leading comment.
2679         * parse.y (do_resolve_class): Moved comments out to leading comment
2680         section. Removed local `start', New local `_ht' and
2681         `circularity_hash.'  Record `enclosing' in hash table and search
2682         it to detect circularity.  Use `enclosing' as an argument to
2683         `lookup_cl.' Free the hash table when done.
2684
2685 2001-06-19  Tom Tromey  <tromey@redhat.com>
2686
2687         * lex.c (java_read_char): Disallow invalid and overlong
2688         sequences.  Fixes PR java/2319.
2689
2690 2001-06-05  Jeff Sturm  <jsturm@one-point.com>
2691
2692         * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
2693
2694 2001-06-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
2695
2696         * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
2697         arguments accordingly.
2698
2699 2001-06-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2700
2701         * gcj.texi: Move contents to just after title page.
2702
2703 2001-06-01  Alexandre Petit-Bianco  <apbianco@redhat.com>
2704
2705         * parse.y (type_literals:): Use `build_incomplete_class_ref' with
2706         builtin type.
2707         (patch_incomplete_class_ref): Build the class ref, build the class
2708         init if necessary, complete the tree.
2709         Fixes PR java/2605
2710
2711 2001-05-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
2712
2713         * parse.y (lookup_field_wrapper): Test `name' code.
2714         (resolve_qualified_expression_name): Test `qual_wfl' code.
2715         (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
2716         handle `qual_wfl' by code.
2717         (maybe_build_primttype_type_ref): Test `wfl' code.
2718
2719 2001-05-23  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
2720
2721         * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
2722         fdl.texi.
2723         (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls.  Create
2724         the dvi file in the java directory.
2725
2726 2001-05-25  Sam TH  <sam@uchicago.edu>
2727
2728         * gen-table.pl javaop.h jcf.h lex.h,
2729         parse.h: Fix header include guards.
2730
2731 2001-05-23  Joseph S. Myers  <jsm28@cam.ac.uk>
2732
2733         * jv-scan.c (version): Update copyright year.
2734
2735 2001-05-21  Per Bothner  <per@bothner.com>
2736
2737         * jcf-parse.c (read_class):  If class is from .class or .zip file
2738         and it's already been read, don't push/pop parser context.
2739
2740 2001-05-18  Per Bothner  <per@bothner.com>
2741
2742         * jvspec.c (lang_specific_pre_link):  Re-arrange the linker
2743         command line so the jvgenmain-generated main program comes first.
2744
2745 2001-05-15  Tom Tromey  <tromey@redhat.com>
2746
2747         * class.c (build_utf8_ref): Don't generate identifier based on
2748         utf8const contents.
2749
2750 2001-05-12  Richard Henderson  <rth@redhat.com>
2751
2752         * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
2753         * expr.c (java_lang_expand_expr): Expand it.
2754         (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
2755         calling build_exception_object_ref.
2756         * parse.y (catch_clause_parameter): Likewise.
2757         (build_dot_class_method): Likewise.
2758         (try_reference_assignconv): Likewise.
2759         * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
2760         * jcf-write.c (generate_bytecode_insns): Likewise.
2761
2762 2001-05-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
2763
2764         * parse.y (build_unresolved_array_type): Set
2765         EXPR_WFL_QUALIFICATION on the newly created wfl.
2766         Fixes PR java/2538. Fixes PR java/2535.
2767
2768 2001-05-07  Alexandre Petit-Bianco  <apbianco@redhat.com>
2769
2770         * parse.y (fix_constructors): Removed unnecessary assignment to
2771         local. Moved assignment to `this$<n>', fixed comments and
2772         indentation.
2773         (build_wfl_wrap): Fixed indentation.
2774         Fixes PR java/2598, java/2579 and java/2658.
2775
2776 2001-05-03  Mo DeJong  <mdejong@redhat.com>
2777
2778         * lex.c (java_new_lexer): Call iconv_close on temp handle used to
2779         check for byte swap.
2780
2781 2000-05-02  Jeff Sturm  <jsturm@one-point.com>
2782
2783         * expr.c (build_class_init): Move MODIFY_EXPR
2784         outside of COND_EXPR.  Remove variable `call'.
2785
2786 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2787
2788         * decl.c: NULL_PTR -> NULL.
2789         * jcf-write.c: Likewise.
2790
2791 2001-05-01  Tom Tromey  <tromey@redhat.com>
2792
2793         * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
2794         (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
2795         * gcj.texi: Updated copyright text.  Include fdl.texi.
2796         (Top): Link to new node.
2797
2798 2001-05-01  Per Bothner  <per@bothner.com>
2799
2800         * parse.h (REGISTER_IMPORT):  Use tree_cons instead of chainon.
2801
2802 2001-05-01  Per Bothner  <per@bothner.com>
2803
2804         * parse.y (java_pop_parser_context):  The TREE_VALUE of a link in the
2805         import_list contains the name, not the TREE_PURPOSE.
2806
2807 2001-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2808
2809         * jcf-io.c (read_zip_member): Cast to long in comparison with
2810         signed value.
2811
2812         * jvspec.c (lang_specific_driver): Initialize variables.
2813
2814         * mangle.c (find_compression_record_match): Likewise.
2815
2816         * typeck.c (build_null_signature): Provide static prototype.  Mark
2817         parameter with ATTRIBUTE_UNUSED.
2818
2819         * verify.c (verify_jvm_instructions): Initialize variable.
2820
2821 2001-04-27  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2822
2823         * parse.y (do_resolve_class): Check for cyclic inheritance during
2824         inner class resolution.
2825
2826 2001-04-27  Per Bothner  <per@bothner.com>
2827
2828         * parse.y (java_expand_classes):  Don't change ctxp_for_generation
2829         while iterating, since that could cause gc to lose stuff.
2830
2831 2001-04-26  Per Bothner  <per@bothner.com>
2832
2833         Fix method search wrt scope of inner classes to match JLS2.
2834         * typeck.c (build_null_signature):  New static function.
2835         (has_method):  New function.  Uses build_null_signature and lookup_do.
2836         * java-tree.h (has_method):  New declaration.
2837         * parse.y (find_applicable_accessible_methods_list):  Do not search
2838         context of inner classes here.
2839         (patch_method_invocation):  Search scope, ie. current and outer clases,
2840         for method matching simple name, to find class.
2841
2842 2001-04-26  Per Bothner  <per@bothner.com>
2843
2844         * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
2845         Fix thinko:  If a single case, use if_icmpeq, not ifeq.
2846
2847         * constants.c (find_methodref_with_class_index):  New function.
2848         (find_methodref_index):  Use find_methodref_with_class_index.
2849         * java-tree.h (find_methodref_with_class_index):  New declaration.
2850         * jcf-write.c (generate_bytecode_insns case CALL_EXPR):  Don't change
2851         DECL_CONTEXT, instead use new find_methodref_with_class_index function.
2852         If context changed from interface to class, don't use invokeinterface.
2853
2854 2001-04-25  Per Bothner  <per@bothner.com>
2855
2856         * verify.c (verify_jvm_instructions):  For field instructions,
2857         check that field index is valid.  For invoke instructions, check that
2858         method index is valid.
2859
2860 2001-04-25  Alexandre Oliva  <aoliva@redhat.com>
2861
2862         * config-lang.in (target_libs): Copy from $libgcj_saved.
2863
2864 2001-04-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2865
2866         * decl.c (init_decl_processing): Add new class "protectionDomain"
2867         field.
2868         * class.c (make_class_data): Set initial value for "protectionDomain".
2869
2870 2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2871
2872         * jvspec.c (lang_specific_driver): Fix memory allocation
2873         deficit, by using concat in lieu of xmalloc/sprintf.
2874
2875 2001-04-20  Per Bothner  <per@bothner.com>
2876
2877         Fixes to compile multiple .class files at once.
2878         * decl.c (init_decl_processing):  Don't set CLASS_LOADED_P.
2879         * java-tree.h (CLASS_PARSED_P):  New macro.
2880         (CLASS_LOADED_P):  Re-define to use TYPE_SIZE and CLASS_PARSED_P.
2881         * jcf-parse.c (jcf_parse_source):  Inline into read_class.
2882         (read_class):  Avoid some code duplication.
2883         Don't call JCF_FINISH for a .class file - might be needed later.
2884         (jcf_parse):  Don't call layout_class here.  Check/set CLASS_PARSED_P
2885         rather than CLASS_LOADED_P, since latter implies class laid out.
2886         (yyparse):  Do layout_class and JCF_FINISh here instead, in pass 2.
2887         * parse.y:  Don't need to set CLASS_LOADED_P for array types.
2888
2889 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2890
2891         * Make-lang.in (java/boehm.o): Depend on toplev.h.
2892
2893         * boehm.c: Include toplev.h.
2894
2895 2001-04-06  Tom Tromey  <tromey@redhat.com>
2896             Alexandre Petit-Bianco  <apbianco@redhat.com>
2897
2898         Fix for PR gcj/1404 and PR gcj/2332:
2899         * parse.y (build_array_from_name): If we use the type_wfl then
2900         accumulate dimensions from the original type as well.
2901         (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
2902
2903 2001-04-06  Tom Tromey  <tromey@redhat.com>
2904
2905         * parse.y (analyze_clinit_body): Return true if the second operand
2906         of a METHOD_EXPR is nonzero.
2907
2908 2001-04-06  Tom Tromey  <tromey@redhat.com>
2909
2910         * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
2911         directory.
2912         ($(srcdir)/java/parse.c): Likewise.
2913
2914 2001-04-05  Alexandre Petit-Bianco  <apbianco@redhat.com>
2915
2916         * gcj.texi: Use `which-gcj' instead of `which-g77.'
2917         (version-gcc): Initialized.
2918         (which-gcj): Likewise.
2919
2920 2001-04-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
2921
2922         * java-tree.h (struct lang_decl): New macro
2923         `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
2924         * parse.y (build_instance_initializer): New function.
2925         (add_instance_initializer): Use it.
2926         (java_fix_constructors): Set `current_class' before fix pass.
2927         (fix_constructors): Just return if already fixed. Move `super()'
2928         invokation ahead. Use `build_instance_initializer.'
2929         Fixes PR java/1315.
2930
2931 2001-04-04  Alexandre Petit-Bianco  <apbianco@redhat.com>
2932
2933         * parse.y (resolve_qualified_expression_name): Pass field's
2934         DECL_CONTEXT to `not_accessible_p.'
2935         (not_accessible_p): Changed parameters order in `inherits_from_p'
2936         invokation.
2937
2938 2001-03-27  Andrew Haley  <aph@cambridge.redhat.com>
2939
2940         * lang-options.h: Add flag_check_references.
2941
2942 2001-04-04  Per Bothner  <per@bothner.com>
2943
2944         * java-tree.h (CONSTANT_VALUE_P):  New macro.
2945         * jcf-write.c (generate_classfile):  Use CONSTANT_VALUE_P.
2946         * parse.y (maybe_build_class_init_for_field):  New static function.
2947         (resolve_expression_name, resolve_field_access):  Use
2948         maybe_build_class_init_for_field instead of build_class_init
2949         This does not do the init if the field is compile-time-constant.
2950         (resolve_field_access):  Simplify.
2951
2952         * parse.y (fold_constant_for_init):  Merge test into switch.
2953
2954 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
2955
2956         * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
2957         on gansidecl.h.
2958         * buffer.c, jvgenmain.c: Don't include gansidecl.h.
2959
2960 2001-04-02  Zack Weinberg  <zackw@stanford.edu>
2961
2962         * expr.c (pop_type_0): Save the result of the first
2963         lang_printable_name call in a scratch buffer, so it
2964         won't be clobbered by the second call.
2965
2966 2001-03-30  Alexandre Petit-Bianco  <apbianco@redhat.com>
2967
2968         * parse-scan.y (array_type:): Rewritten.
2969         (type_declaration:): `empty_statement' replaces `SC_TK.'
2970         (class_member_declaration:): `empty statement' added.
2971         (method_body:): Simplified.
2972         (static_initializer:): Likewise.
2973         (primary_no_new_array:): Use `type_literals.'
2974         (type_literals:): New rule.
2975         (dims:): Set and update `bracket_count.'
2976         Fixes PR java/1074. Fixes PR java/2412.
2977
2978 2001-03-28  Hans Boehm  <boehm@acm.org>
2979
2980         * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
2981         (get_boehm_type_descriptor): Set type on returned value to be a
2982         pointer length integer.
2983
2984 2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2985
2986         * expr.c (pop_type_0): Call `concat' rather than building the
2987         string manually.
2988         (pop_type): Add format specifier in call to `error'.
2989
2990         * parse.y (patch_method_invocation): Avoid casting away
2991         const-ness.
2992
2993 2001-03-28  Jeffrey Oldham  <oldham@codesourcery.com>
2994
2995         * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
2996
2997 2001-03-28  Richard Henderson  <rth@redhat.com>
2998
2999         IA-64 ABI Exception Handling:
3000         * Make-lang.in (except.o): Don't depend on eh-common.h.
3001         * check-init.c (check_init): Handle EXC_PTR_EXPR.
3002         * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
3003         [soft_exceptioninfo_call_node]: Remove.
3004         [eh_personality_libfunc, lang_eh_runtime_type]: New.
3005         (end_java_method): No emit_handlers.
3006         * except.c (java_set_exception_lang_code): Remove.
3007         (method_init_exceptions): Don't call it.
3008         (prepare_eh_table_type): No CATCH_ALL_TYPE.
3009         (build_exception_object_ref): New.
3010         (expand_end_java_handler): Update for except.h name changes.
3011         (emit_handlers, expand_resume_after_catch): Remove.
3012         * expr.c (java_lang_expand_expr): Update for except.h name changes.
3013         (process_jvm_instruction): Use build_exception_object_ref.
3014         * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
3015         (soft_exceptioninfo_call_node): Remove.
3016         (build_exception_object_ref): Declare.
3017         * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
3018         soft_exceptioninfo_call_node.  Move processing ...
3019         [EXC_PTR_EXPR]: ... here.
3020         * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
3021         * parse.y (catch_clause_parameter): Use build_exception_object_ref.
3022         (source_end_java_method): No java_set_exception_lang_code or
3023         emit_handlers.
3024         (build_dot_class_method): Use build_exception_object_ref.
3025         (try_reference_assignconv): Check EXC_PTR_EXPR not
3026         soft_exceptioninfo_call_node.
3027
3028 2001-03-28  Richard Henderson  <rth@redhat.com>
3029
3030         * java-tree.h (throw_node): Define as a single member of
3031         java_global_trees instead of a separate array.
3032         (JTI_THROW_NODE): New.
3033         * decl.c (throw_node): Don't declare.
3034         (init_decl_processing): Init a scalar throw_node.
3035         Don't register it for gc.
3036         * check-init.c (check_init): Reference scalar throw_node.
3037         * expr.c (build_java_athrow): Likewise.
3038         * jcf-write.c (generate_bytecode_insns): Likewise.
3039         * parse.h (BUILD_THROW): Likewise.
3040
3041 2001-03-28  Richard Henderson  <rth@redhat.com>
3042
3043         * decl.c (end_java_method): Do not save and restore
3044         flag_non_call_exceptions.
3045         * parse.y (source_end_java_method): Likewise.
3046         * lang.c (flag_exceptions): Don't declare.
3047         (java_init_options): Set flag_non_call_exceptions.  Set
3048         flag_exceptions here ...
3049         (java_init): ... not here.
3050
3051 2001-03-27  Richard Henderson  <rth@redhat.com>
3052
3053         * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
3054         exceptions_via_longjmp.
3055
3056         * lang.c (flag_new_exceptions): Don't declare it.
3057         (java_init_options): Or set it.
3058
3059 2001-03-27  Richard Henderson  <rth@redhat.com>
3060
3061         * decl.c (end_java_method): Rename asynchronous_exceptions to
3062         flag_non_call_exceptions.
3063         * parse.y (source_end_java_method): Likewise.
3064
3065 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3066
3067         * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
3068
3069 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
3070
3071         * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
3072
3073 2001-03-26  Alexandre Petit-Bianco  <apbianco@redhat.com>
3074
3075         * parse.y (find_as_inner_class): Follow current package
3076         indications not to mistakingly load an unrelated class.
3077
3078 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3079
3080         * constants.c (PUTN): Use memcpy, not bcopy.
3081
3082         * lex.c (java_read_char): Use memmove, not bcopy.
3083
3084         * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
3085
3086 2001-03-23  Per Bothner  <per@bothner.com>
3087
3088         * verify.c (verify_jvm_instructions):  Replace 3 pop_type by POP_TYPE
3089         macro for better error pin-pointing.
3090         * java-tree.h:  Fix typo in comment.
3091
3092         * jcf-write.c (generate_bytecode_insns):  Changes to TRY_FINALLY_EXPR.
3093         Don't include jsr/goto in exception range.
3094         Check if start and end of exception range are the same (also TRY_EXPR).
3095         Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
3096         However, do emit the following goto even if try_block is empty.
3097         Defer freeing exception_decl until after the finalizer, to make
3098         sure the local isn't reused in the finalizer.  Fixes PR java/1208.
3099
3100         * parse.y (java_complete_lhs):  If the try-clause is empty, just
3101         return the finally-clause and vice versa.
3102
3103 2001-03-23  Alexandre Petit-Bianco  <apbianco@redhat.com>
3104
3105         * gcj.texi (Input Options): documented the check for attribute
3106         `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
3107         * java-tree.h (flag_force_classes_archive_check): Declared extern.
3108         * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
3109         (jcf_parse): Check for the right classes archive if necessary.
3110         * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
3111         (jcf_parse_fields): Fixed indentation.
3112         * jcf-write.c (append_gcj_attribute): New function.
3113         (generate_classfile): Compute the attribute count, invoke
3114         `append_gcj_attribute'.
3115         * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
3116         turned into bit-fields. New bit-field `right_zip.'
3117         (JCF_ZERO): Set `right_zip' to zero.
3118         * lang-options.h (-fforce-classes-archive-check): Added flag.
3119         * lang.c (flag_force_classes_archive_check): New flag.
3120         (lang_f_options): New entry `force-classes-archive-check.'
3121         Fixes PR java/1213.
3122
3123 2001-02-07  Andrew Haley  <aph@redhat.com>
3124
3125         * gcj.texi (Configure-time Options): Add -fcheck-references.
3126         * expr.c (build_java_indirect_ref): New function.
3127         (java_check_reference): New function.
3128         (build_java_array_length_access): Use build_java_indirect_ref to
3129         check for null references.
3130         (build_java_arrayaccess): Likewise.
3131         (build_get_class): Likewise.
3132         (build_field_ref): Likewise.
3133         (invoke_build_dtable): Likewise.
3134         (build_invokeinterface): Likewise.
3135         * lang.c (lang_f_options): Add flag_check_references.
3136         * jvspec.c (jvgenmain_spec): Add flag_check_references.
3137         * java-tree.h (flag_check_references): New variable.
3138         * lang.c (flag_check_references): Likewise.
3139         * parse.y (patch_invoke): Use java_check_reference.
3140         (patch_assignment): Allow for extra nesting in
3141         _Jv_CheckArrayStore.
3142
3143 2001-03-23  Bryce McKinlay  <bryce@albatross.co.nz>
3144
3145         * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
3146         * lex.c (cxx_keywords): Likewise.
3147
3148 2001-03-21  Alexandre Petit-Bianco  <apbianco@redhat.com>
3149
3150         * parse.y (qualify_ambiguous_name): Broaden `length'
3151         recognition. Help MODIFY_EXPR be resolved as expression names.
3152         Fixes PR java/2066. Fixes PR java/2400.
3153
3154 2001-03-21  Bryce McKinlay  <bryce@albatross.co.nz>
3155
3156         * gjavah.c (process_file): Mark interface definitions with
3157         "__attribute__ ((java_interface))".
3158
3159 2001-03-21  Alexandre Petit-Bianco  <apbianco@redhat.com>
3160
3161         * class.c (layout_class): Fixed push_super_field's second
3162         argument. Fixes PR java/2333.
3163         (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
3164         too early to lay innerclasses out.
3165
3166 2001-03-20  Tom Tromey  <tromey@redhat.com>
3167             Alexandre Petit-Bianco <apbianco@redhat.com>
3168
3169         * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
3170         inside an array reference. Insertion of the array store check
3171         rewritten. Fixes PR java/2299.
3172
3173 2001-03-20  Tom Tromey  <tromey@redhat.com>
3174
3175         * lex.c (java_read_unicode): Only accept leading `u's.
3176
3177 2001-03-20  Tom Tromey  <tromey@redhat.com>
3178
3179         * jcf-parse.c (read_class): Initialize `class'.
3180
3181 2001-03-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3182
3183         * jcf_parse.c (jcf_parse): Eliminate unused variable.
3184
3185 2001-03-19  Mark Mitchell  <mark@codesourcery.com>
3186
3187         * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
3188         (layout_class): Likewise.
3189         (layout_class_method): Likewise.
3190         (emit_register_classes): Likewise.
3191         * decl.c (builtin_function): Likewise.
3192         (give_name_to_locals): Likewise.
3193
3194 2001-03-19  Per Bothner  <per@bothner.com>
3195
3196         * jcf-parse.c (load_inner_classes):  Check CLASS_LOADED_P
3197         before trying to load an inner class.
3198
3199         Fixes to process to command-line .class files in two passes.
3200         * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P):  New flags.
3201         (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P):  Rename to ..
3202         (CLASS_FROM_CURRENTLY_COMPILED_P):  ... because it is more general now.
3203         * class.c (is_compiled_class):  Fix for renamed flag.
3204         * parse.y (maybe_create_class_interface_decl):  Likewise.
3205         * jcf-parse.c (yyparse):  Also set if compiling .class files.
3206         * jcf-parse.c (read_class);  Read current_class.
3207         (jcf_parse):  Make static.
3208         (load_inner_classes):  New function, with code moved from jcf_parse,
3209         because we need to inner classes after the command-line files are read.
3210         (yyparse):  Set finput to NULL when it doesn't need to be closed.
3211         Reduce use of main_jcf (basically only for archive) and
3212         use finput instead of main_jcf->read_state.
3213         Inline jcf_figure_file_type into yyparse.
3214         Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
3215         Defer load_inner_classes and parse_class_file to a second pass,
3216         after we've correctly mapped command-line .clas fiels to classes.
3217         (jcf_figure_file_type):  Removed.
3218         * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE):  Removed flags.
3219         (JCF_ZERO):  Also clear zipd field.
3220         * zipfile.h:  Conditionalize on JCF_H insread of JCF_ZIP.
3221
3222 2001-03-18  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3223
3224         * jcf-parse.c (yyparse): Change ch from char * to char.
3225
3226 2001-03-19  Per Bothner  <per@bothner.com>
3227
3228         * jvspec.c (lang_specific_driver):  Check for .zip and .jar files.
3229         Add constructed filelist-file at end, following -xjava.  Thus any .o
3230         and library files are not affected by the -xjava.  Also wrap
3231         explicit @FILE with -xjava and -xnone.
3232
3233 2001-03-19  Andrew Haley  <aph@cambridge.redhat.com>
3234
3235         * class.c (build_static_field_ref): Call make_decl_rtl() after
3236         setting the DECL_EXTERNAL flag.
3237
3238 2001-03-17  Per Bothner  <per@bothner.com>
3239
3240         * decl.c (clear_binding_level):  Fix initializer (broke 03-15).
3241
3242         * jcf-write.c (generate_bytecode_insns):  Handle emitting iinc
3243         when result is is needed (target is STACK_TARGET).
3244
3245         * parse.h (JDEP_SOLV):  Removed.
3246         * parse.y (register_incomplete_type):  Use JDEP_TO_RESOLVE instead.
3247
3248         * parse.y (incomplete_class_list): Removed.
3249         (obtain_incomplete_type): Don't use or set incomplete_class_list.
3250         It doesn't work if resolve_class changes the name of an array type
3251         that is on the list and then someone else looks for the modified name.
3252         Also, seems liable to break when compiling multiple source files at
3253         once.  So the simplest is to just remove incomplete_class_list -
3254         it is only a minor space win and it is not even clear it saves time.
3255
3256         * parse.y (resolve_class):  Remove unneeded promote_type.
3257
3258 2001-03-15  Per Bothner  <per@bothner.com>
3259
3260         * java-tree.h (BLOCK_IS_IMPLICIT):  New flag.
3261         * parse.h (BLOCK_EXPR_ORIGIN):  Removed macro.
3262         * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
3263         Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
3264
3265         * jcf-parse.c (yyparse):  Set/reset input_filename for source file.
3266         * parse.y (java_expand_classes):  Likewise.
3267
3268         * parse.y (expand_start_java_method):  Was only called once and had a
3269         misleading name, so inline in caller java_complete_expand_method.
3270         (enter_a_block):  Likewise inline in enter_block and remove.
3271
3272         Remove junk from when gcc/java was created (by copying from C/C++).
3273         * decl.c (keep_next_level_flag, keep_next_if_subblocks):  Remove.
3274         (struct binding_level):  Remove fields keep, keep_if_subblocks,
3275         more_cleanups_ok, have_cleanups (which have never been used).
3276         (pushlevel, poplevel):  Remove related useless code.
3277
3278         * class.c (make_class_data):  The class_dtable_decl (i.e. the
3279         vtable for Class) should be external, except when compiling Class.
3280
3281         * jvspec.c (lang_specific_driver):  Fix -C handling.
3282         Check -save-temps to see if temp @FILE should be deleted.
3283         Follow-up to/fix for February 16 patch.
3284
3285         * verify.c (verify_jvm_instructions):  Better error msgs for dup.
3286         (type_stack_dup):  Remove no-longer neded error check.
3287
3288 2001-03-15  Bryce McKinlay  <bryce@albatross.co.nz>
3289
3290         * mangle.c (mangle_record_type): Rename 'from_pointer' argument
3291         to 'for_pointer'. If this type is for a pointer (argument) mangling,
3292         don't surround the element with 'N..E' if the type name is
3293         unqualified.
3294
3295 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
3296
3297         * class.c (build_static_field_ref): Use COPY_DECL_RTL,
3298         DECL_RTL_SET_P, etc.
3299         (make_method_value): Likewise.
3300         (get_dispatch_table): Likewise.
3301
3302         * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
3303
3304 2001-03-07  Tom Tromey  <tromey@redhat.com>
3305
3306         * config-lang.in (lang_requires): Define.
3307
3308 2001-03-07  Brad Lucier  <lucier@math.purdue.edu>
3309
3310         * typeck.c (convert): Check flag_unsafe_math_optimizations,
3311         not flag_fast_math.
3312
3313 2001-03-05  Per Bothner  <per@bothner.com>
3314
3315         Fix a problem where rest_of_decl_compilation applied to
3316         class_dtable_decl causes problems because it was done too early,
3317         before output file was opened.
3318         * decl.c (init_decl_processing):  Remove init of class_dtable_decl.
3319         * class.c (class_dtable_decl):  Add macro - element of class_roots.
3320         (make_class_data):  Define class_dtable_decl.
3321         * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl):  Removed.
3322
3323 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
3324
3325         * java/class.c, java/decl.c, java/java-tree.h: Replace all
3326         uses of 'boolean' with 'bool'.
3327
3328 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
3329
3330         * lang-specs.h: Add zero initializer for cpp_spec field to all
3331         array elements.
3332
3333 2001-02-16  Per Bothner  <per@bothner.com>
3334
3335         Handle compiling multiple input files at once, and @FILE syntax.
3336         * gcj.texi:  Updated documentation to match.
3337         * java-tree.h (flag_filelist_file, init_src_parse):  New declarations.
3338         * jcf-parse.c (parse_source_file):  Split into ...
3339         (parse_source_file_1):  New function - and:
3340         (parse_source_file_2):  New function.
3341         (yyparse):  On -ffilelist-file, open and scan named file.
3342         On first pass over files, only do parse_source_file_1.
3343         A new second pass calls parse_source_file_2 for each file to compile.
3344         (init_jcf_parse):  Call init_src_parse.
3345         * jvspec.c (INDIRECT_FILE_ARG):  New flag.
3346         (lang_specific_driver):  Support @FILELIST-FILE syntax, as well
3347         as multiple input file combined in one compilation.
3348         * lang-options.h:  Add -ffilelist-file
3349         * lang.c (flag_filelist_file):  New flag variable.
3350         (lang_f_options):  Handle -ffilelist-file.
3351         * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
3352         * parse.h (struct parse_ctxt):  Remove fields incomplete_class and
3353         gclass_list - use global fields of src_parse_roots instead.
3354         * parse.y (src_parse_roots):  New array.
3355         (incomplete_class_list, gclass_list):  New macros.
3356         (push_parser_context, java_pop_parser_context,
3357         java_parser_context_resume):  Don't fiddle with deleted fields.
3358         (various):  Use incomplete_class gclass_list and global macros
3359         instead of parse_ctxt fields - the lists are global.
3360         (init_src_parse):  New function.
3361
3362 Fri Feb 23 15:28:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3363
3364         * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
3365
3366 2001-02-20  Alexandre Petit-Bianco  <apbianco@redhat.com>
3367
3368         * parse.y (check_inner_class_access): Moved declaration of local
3369         `enclosing_decl_type' to the right location.
3370
3371 2001-02-19  Bryce McKinlay  <bryce@albatross.co.nz>
3372
3373         * parse.y (parser_check_super_interface): Don't call
3374         check_pkg_class_access for an inner interface.
3375         (parser_check_super): Don't call check_pkg_class_access for inner
3376         class.
3377         (do_resolve_class): Simplify enclosing type loop. Don't call
3378         check_pkg_class_access if CL and DECL are not set.
3379         (find_in_imports_on_demand): Set DECL if class_type needed to be
3380         loaded. Don't call check_pkg_class_access for an inner class.
3381         (check_inner_class_access): Rewritten to implement member access
3382         rules as per spec 6.6.1.
3383         (check_pkg_class_access): Handle the empty package correctly.
3384         (in_same_package): New function. Determine if two classes are in the
3385         same package.
3386
3387 2001-02-18  Bryce McKinlay  <bryce@albatross.co.nz>
3388
3389         * typeck.c (build_java_array_type): Don't try to poke a public `clone'
3390         method into array types.
3391         * parse.y (patch_method_invocation): Bypass access check on clone call
3392         to array instance.
3393
3394 2001-02-15  Alexandre Petit-Bianco  <apbianco@redhat.com>
3395
3396         * expr.c (build_instanceof): Check for arrays when trying fold to
3397         false.
3398
3399 2001-02-15  Jim Meyering  <meyering@lucent.com>
3400
3401         * Make-lang.in (java.install-common): Depend on `installdirs'.
3402         (java.install-info): Likewise.
3403
3404 2001-02-15  Bryce McKinlay  <bryce@albatross.co.nz>
3405
3406         * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
3407
3408 2001-02-14  Tom Tromey  <tromey@redhat.com>
3409             Alexandre Petit-Bianco  <apbianco@cygnus.com>
3410
3411         Fix for PR java/1261.
3412         * typeck.c (build_java_array_type): Add public `clone' method to
3413         arrays.
3414         * parse.y (resolve_qualified_expression_name): Use current_class
3415         when checking for inaccessibility.
3416         (patch_method_invocation): Fixed error message when accessibility
3417         denied.  Added `from_super' argument.
3418
3419 2001-02-14  Alexandre Petit-Bianco  <apbianco@redhat.com>
3420
3421         * parse.y (resolve_class): Don't build a fake decl. Use the one
3422         already built.
3423         * typeck.c (build_java_array_type): Build and assign decl to array
3424         type.
3425
3426 2001-02-14  Alexandre Petit-Bianco  <apbianco@redhat.com>
3427
3428         * parse.y (not_accessible_p): Changed leading comment. Added extra
3429         `where' argument. Use it to enforce protected access rules.
3430         (resolve_qualified_expression_name): Added extra argument to
3431         not_accessible_p.
3432         (patch_method_invocation): Use argument `primary' to provide
3433         not_accessible_p with an extra argument.
3434         (lookup_method_invoke): Added extra argument to not_accessible_p.
3435         (search_applicable_method_list): Likewise.
3436
3437 2001-02-13  Alexandre Petit-Bianco  <apbianco@redhat.com>
3438
3439         * parse.y (resolve_qualified_expression_name): Try to resolve as
3440         an inner class access only i