OSDN Git Service

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