OSDN Git Service

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