]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/java/ChangeLog
re PR bootstrap/12744 (A GCC release tarball can no longer be built without bison...
[thirdparty/gcc.git] / gcc / java / ChangeLog
CommitLineData
03787dfd
KC
12004-01-15 Kelley Cook <kcook@gcc.gnu.org>
2
3 * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
4 (java.srcextra): Copy above back to source directory if requested.
5 (po-generated): Delete reference to $(parsedir).
6 (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
7 Use implicit rule.
8
4b589eab
JH
92004-01-14 Jan Hubicka <jh@suse.cz>
10
11 * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
12 estimation.
13
0fab64a3
MM
142004-01-09 Mark Mitchell <mark@codesourcery.com>
15
16 * java-tree.h (java_expand_expr): Change prototype.
17 * expr.c (java_expand_expr): Add alt_rtl parameter.
18
85194ee9
AH
192004-01-09 Andrew Haley <aph@redhat.com>
20
21 PR java/12755:
22 * parse.y (java_fix_constructors): Set output_class.
23 (java_reorder_fields): Likewise.
24 (java_layout_classes): Likewise.
25 (java_expand_classes): Generate indirect dispatch tables.
26 (java_expand_classes): Set output_class.
27 (java_finish_classes): Likewise.
28 * lang.c (java_init): Turn on always_initialize_class_p if we're
29 using indirect dis[atch.
30 (java_decl_ok_for_sibcall): Use output_class, not current_class.
31 (java_get_callee_fndecl): Use class local atable.
32 * jcf-parse.c
33 (always_initialize_class_p): Decl moved to java-tree.h.
34 (HANDLE_CLASS_INFO): Set output_class.
35 (read_class): Likewise.
36 (parse_class_file): Call gen_indirect_dispatch_tables.
37 (parse_zip_file_entries): Set output_class.
38 (java_parse_file): Set output_class. Don't emit symbol tables.
39 * java-tree.h (output_class): New.
40 Remove global declarations for otable, atable, and ctable.
41 (always_initialize_class_p): moved here from decl.c.
42 (DECL_OWNER): New.
43 (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
44 TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
45 TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
46 (struct lang_type): Add otable_methods, otable_decl,
47 otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
48 ctable_decl, catch_classes, type_to_runtime_map.
49 * expr.c (build_field_ref): Make otable, atable, and ctable class
50 local rather than global.
51 (build_known_method_ref): Likewise.
52 (build_invokeinterface): Likewise.
53 (java_expand_expr): Pass runtime type (rather than actual type) to
54 expand_start_catch.
55 * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
56 this class. Look up each class in that map to delete duplicates.
57 (expand_end_java_handler): Pass runtime type (rather than actual
58 type) to expand_start_catch.
59 * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
60 (do_nothing): New.
61 (java_init_decl_processing): Rearrange things. Remove global
62 declarations of otable, atable, and ctable.
63 (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
64 (java_expand_body): Set output_class.
65 * constants.c (build_constant_data_ref): Use output_class, not
66 current_class.
67 (alloc_name_constant): Likewise.
68 * class.c (gen_indirect_dispatch_tables): New.
69 (build_class_ref): Generate hard reference to superclass, even if
70 using indirect dispatch.
71 (build_static_field_ref): Use class local atable.
72 (make_class_data): Generate hard reference to superclass, even if
73 using indirect dispatch.
74 Generate symbolic references to interfaces when using indirect
75 dispatch.
76 (make_class_data): Emit otable, atable, and ctable.
77 Make otable, atable, and ctable class local rather than global.
78 (emit_catch_table): Make otable, atable, and ctable class local
79 rather than global.
80
df9fe6e5
AP
812003-12-25 Andrew Pinski <pinskia@physics.uc.edu>
82
19a4e5b7
AP
83 * parse.y (catch_clause_parameter): Fix typo.
84
df9fe6e5
AP
85 PR java/13404
86 * parse.y: (catch_clause_parameter): Return early if $3, aka
87 formal_parameter, is null.
88
3a976c72
KH
892003-12-20 Kazu Hirata <kazu@cs.umass.edu>
90
91 * class.c: Remove uses of "register" specifier in
92 declarations of arguments and local variables.
93 * decl.c: Likewise.
94 * expr.c: Likewise.
95 * gjavah.c: Likewise.
96 * jcf-dump.c: Likewise.
97 * jcf-io.c: Likewise.
98 * jcf-parse.c: Likewise.
99 * jcf-write.c: Likewise.
100 * keyword.h: Likewise.
101 * parse.y: Likewise.
102 * typeck.c: Likewise.
103 * verify.c: Likewise.
104
439020ec
KC
1052003-12-06 Kelley Cook <kcook@gcc.gnu.org>
106
107 * Make-lang.in (GCJ_CROSS_NAME): Delete.
108 (java.install_common, java.install-man): Adjust for above.
109 (java.uninstall): Likewise.
110
02972627
MK
1112003-12-03 Michael Koch <konqueror@gmx.de>
112
113 * class.c (make_class_data):
114 Push field value to 'hack_signers' instead of 'signers'.
115 * decl.c (java_init_decl_processing):
116 Push field 'hack_signers' instead of 'signers'.
117
eb158727
ZW
1182003-12-03 Zack Weinberg <zack@codesourcery.com>
119
120 * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
121 including iconv.h.
122
c6a25d3a
RL
1232003-12-03 Ralph Loader <rcl@ihug.co.nz>
124
125 PR java/12374:
126 * parse.y (qualify_ambiguous_name): Remove lots of broken
127 field access processing - there's no need to do that here,
128 because we have resolve_field_access. Remove
129 RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
130 * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
131 used.
eb158727 132
50abb28b
JS
1332003-12-01 Jeff Sturm <jsturm@one-point.com>
134
135 Fix PR java/13237
136 * parse.y (java_complete_lhs): Save location prior to patching
137 CALL_EXPR.
138
8bc7a740
ME
1392003-11-25 Mohan Embar <gnustuff@thisiscool.com>
140
50abb28b
JS
141 PR java/12548
142 * resource.c (write_resource_constructor): Append
143 "_resource" to constructor identifier name.
8bc7a740 144
75182467
JS
1452003-11-25 Jeff Sturm <jsturm@one-point.com>
146
147 Fix PR java/13183.
148 * constants.c (cpool_for_class): New function.
149 (outgoing_cpool): Remove global variable.
150 (alloc_name_constant): Use cpool_for_class.
151 (build_constants_constructor): Likewise.
152 * decl.c (java_expand_body): Set current_class.
153 * java-tree.h (outgoing_cpool) Remove declaration.
154 (init_outgoing_cpool): Likewise.
155 * jcf-parse.c (init_outgoing_cpool): Remove function.
156 (parse_class_file): Don't call init_outgoing_cpool.
157 * parse.y (java_complete_expand_methods): Don't call
158 init_outgoing_cpool. Don't save outgoing_cpool.
159 (java_expand_classes): Don't restore outgoing_cpool.
160 (java_finish_classes): Likewise.
161
33fe4596
ME
1622003-11-24 Mohan Embar <gnustuff@thisiscool.com>
163
164 * Make-lang.in: (java.install-common) Add
165 symlink for $(target_noncanonical)-gcjh for
166 native builds.
167
a03ad584
JM
1682003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
169
170 * Make-lang.in (java.extraclean): Delete.
171
49a41726
JM
1722003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
173
174 * Make-lang.in (check-java): Add.
175
c2a141a0
JS
1762003-11-19 Jeff Sturm <jsturm@one-point.com>
177
178 Fix PR java/13024.
179 * except.c (prepare_eh_table_type): Allocate variable-sized
180 buffer `buf' with alloca.
181
b8ca854a
JS
1822003-11-17 Jeff Sturm <jsturm@one-point.com>
183
184 Fix PR java/12857.
185
186 decl.c (java_init_decl_processing): Don't initialize
187 class_not_found_type_node, no_class_def_found_type_node.
188
189 java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
190 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
191 (class_not_found_type_node, no_class_def_found_type_node):
192 Don't define.
193
194 parse.y (build_dot_class_method_invocation): Add this_class
195 argument. Qualify method invocations to a different class.
196 (create_new_parser_context): Initialize saved_data_ctx to 0.
197 (java_parser_context_save_global): Initialize saved_data_ctx to 1.
198 (build_dot_class_method): Don't load classes. Register
199 incomplete types.
200 (build_incomplete_class_ref): Special cases for interfaces
201 and inner classes. Move build_dot_class_method call to here...
202 (patch_incomplete_class_ref): ...from here. Pass current_class
203 to build_dot_class_method_invocation.
204 (build_assertion): Pass class_type to
205 build_dot_class_method_invocation.
206 (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
207
a78e4fa7
JS
2082003-11-17 Jeff Sturm <jsturm@one-point.com>
209
210 Fix PR java/12739.
211 * java-tree.h (BLOCK_EMPTY_P): Define.
212 * parse.y (java_complete_lhs): Check for empty blocks
213 in TRY_FINALLY_EXPR case.
214
2152003-11-17 Andrew Haley <aph@redhat.com>
6bbb4ad3
AH
216
217 * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
eb158727 218 (struct lang_decl_var:freed): New variable.
6bbb4ad3
AH
219 * decl.c (poplevel): Mark local vars that have gone out of scope.
220 (push_jvm_slot): Don't use the RTL of a var that has gone out of
221 scope.
222
7d60db05
JM
2232003-11-16 Jason Merrill <jason@redhat.com>
224
225 * Make-lang.in (java.tags): Create TAGS.sub files in each directory
226 and TAGS files that include them for each front end.
227
45c00e22
TT
2282003-11-15 Tom Tromey <tromey@redhat.com>
229
230 * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
231
1b2b8ee7
JM
2322003-11-12 Jason Merrill <jason@redhat.com>
233
234 PR optimization/12547
235 * lang.c (java_tree_inlining_walk_subtrees): Just walk
236 BLOCK_EXPR_BODY directly.
237
7304c6cf
AH
2382003-11-12 Andrew Haley <aph@redhat.com>
239
0adaa7e4
AH
240 PR java/11045
241 * parse.y (fold_constant_for_init): Check that we really do have a
242 constant.
243
7304c6cf
AH
244 PR java/11533
245 * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
246 init_test_decls being inlined.
247
248 PR java/12890:
249 * parse.y (do_resolve_class): Check return value from
250 breakdown_qualified().
251
5b84be73
TT
2522003-11-11 Tom Tromey <tromey@redhat.com>
253
254 PR java/12915:
255 * parse.y (merge_string_cste): Handle case where we have a
256 pointer that happens to be zero, not null_pointer_node.
257
87a9cbf9
TT
2582003-11-10 Tom Tromey <tromey@redhat.com>
259
260 * jcf-parse.c (classify_zip_file): Correctly compare
261 filename_length against length of manifest file's name.
262
b9bc3665
TT
2632003-11-08 Tom Tromey <tromey@redhat.com>
264
265 PR java/12894:
266 * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
267
4b886873
AH
2682003-11-06 Andrew Haley <aph@redhat.com>
269
270 * expr.c (java_stack_swap): Make sure destination stack slots are
271 of the correct type.
272
63069342
KC
2732003-11-03 Kelley Cook <kcook@gcc.gnu.org>
274
275 * Make-lang.in (dvi): Move targets to $(docobjdir).
276 (gcj.dvi): Simplify rule and adjust target.
277 (gcj.info): Simplify rule.
278 (gcj.pod): New intermediate rule.
279 (gcjh.pod): Likewise.
280 (jv-scan.pod): Likewise.
281 (jcf-dump.pod): Likewise.
282 (gij.pod): Likewise.
283 (jv-convert.pod): Likewise.
284 (rmic.pod): Likewise.
285 (rmiregistry.pod): Likewise.
286 (gcj.1): Delete.
287 (gcjh.1): Delete.
288 (jv-scan.1): Delete.
289 (jcf-dump.1): Delete.
290 (gij.1): Delete.
291 (jv-convert.1): Delete.
292 (rmic.1): Delete.
293 (rmiregistry.1): Delete.
294
9bcdf735
JS
2952003-11-02 Jeff Sturm <jsturm@one-point.com>
296
297 Fixes PR java/12866.
298 * parse.y (resolve_qualified_expression_name): Move test
299 for outer field access methods from here...
300 (check_thrown_exceptions) ...to here.
301
d6665c33
KC
3022003-11-01 Kelley Cook <kcook@gcc.gnu.org>
303
304 * .cvsignore: Delete.
305
ab212c24
FCE
3062003-10-28 Frank Ch. Eigler <fche@redhat.com>
307
308 * verify.c (verify_jvm_instructions): Don't warn about legal
309 eh binding regions generated for example by jdk 1.4.1.
310
7b8af2b5
DM
3112003-10-24 David S. Miller <davem@redhat.com>
312
313 * jcf-parse.c (jcf_parse): Fix args to fatal_error().
314
90471585
AH
3152003-10-22 Andrew Haley <aph@redhat.com>
316
317 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
318 (java_get_callee_fndecl): New.
319
320 * jcf-parse.c (java_parse_file): Call emit_catch_table().
321
322 * java-tree.h (ctable_decl): New.
323 (catch_classes): New.
324 (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
325
326 * decl.c (java_init_decl_processing): Add catch_class_type.
327 Add ctable_decl.
328 Add catch_classes field.
329
330 * class.c (build_indirect_class_ref): Break out from
331 build_class_ref.
332 (make_field_value): Check flag_indirect_dispatch.
333 (make_class_data): Ditto.
334 Tidy uses of PUSH_FIELD_VALUE.
335 Add field catch_classes.
336 (make_catch_class_record): New.
337
338 * java-tree.h (PUSH_FIELD_VALUE): Tidy.
339
ed2f11fa
KH
3402003-10-22 Kazu Hirata <kazu@cs.umass.edu>
341
342 * jcf-write.c: Follow spelling conventions.
343 * parse.y: Likewise.
344
67264b4f
KH
3452003-10-22 Kazu Hirata <kazu@cs.umass.edu>
346
347 * ChangeLog: Fix typos.
348 * expr.c: Fix comment typos.
349 * jcf-write.c: Likewise.
350 * lang.c: Likewise.
351 * lex.c: Likewise.
352 * mangle.c: Likewise.
353 * parse-scan.y: Likewise.
354 * parse.y: Likewise.
355
36ae3d8e
TT
3562003-10-22 Tom Tromey <tromey@redhat.com>
357
358 * expr.c (expand_byte_code): Only warn about dead bytecode when
359 extra_warnings is set.
360
ed2506a4
BM
3612003-10-22 Bryce McKinlay <bryce@mckinlay.net.nz>
362
363 Fix for PR java/12586.
364 * mangle.c (find_compression_record_match): Don't iterate through
365 package namespace elements unless they all match compression_table
366 entries.
367
036a75ac
KC
3682003-10-20 Kelley Cook <kcook@gcc.gnu.org>
369
370 * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
371 (generate-manpages): Likewise.
372 (java.maintainer-clean): Likewise.
373 (gcj.info): Likewise.
374 (gcj.1): Likewise.
375 (gcjh.1): Likewise.
376 (jv-scan.1): Likewise.
377 (jcf-dump.1): Likewise.
378 (gij.1): Likewise.
379 (jv-convert.1): Likewise.
380 (rmic.1): Likewise.
381 (rmiregistry.1): Likewise.
382 (java.install-man): Likewise.
383 (parse-scan.o): Move and define complete compile line.
384 (parse.o): Likewise.
385 (jcf-tree-inline.o): Move.
386
97ae108d
MM
3872003-10-20 Mark Mitchell <mark@codesourcery.com>
388
389 * Make-lang.in (info): Update dependencies.
390 (java.install-info): Remove.
391 ($(srcdir)/java/gcj.info): Replace with ...
392 ($(docobjdir)/gcj.info): ... this.
393
43aba518
NN
3942003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
395
396 * Make-lang.in: Replace uses of $(target_alias) with
397 $(target_noncanonical).
398
ae125b17
TT
3992003-10-09 Tom Tromey <tromey@redhat.com>
400
401 * decl.c (java_init_decl_processing): Declare signers field.
402 * class.c (make_class_data): Set signers field.
403
1456deaf
JM
4042003-10-09 Jason Merrill <jason@redhat.com>
405
406 * parse.y (patch_assignment): Use make_node to create a BLOCK.
407 * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
408 POINTER_TYPE.
409
62b81e45
MM
4102003-10-06 Mark Mitchell <mark@codesourcery.com>
411
412 * Make-lang.in (java.info): Replace with ...
413 (info): ... this.
414 (java.dvi): Replace with ...
415 (dvi): ... this.
416 (java.generated-manpages): Replace with ...
417
35222de2
KC
4182003-10-03 Kelley Cook <kelleycook@wideopenwest.com>
419
420 * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
421
9dfc2ec2
AH
4222003-10-01 Andrew Haley <aph@redhat.com>
423
424 * jcf-parse.c (java_parse_file): Write otable and atable.
425 * java-tree.h (atable_methods): New.
426 (atable_decl): New.
427 (atable_syms_decl): New.
428 (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
429 JTI_ATABLE_SYMS_DECL. Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
eb158727 430 (symbol_*type): Rename method_symbol* to symbol*type.
9dfc2ec2
AH
431 (emit_offset_symbol_table): Delete.
432 (emit_symbol_table): New.
433 (get_symbol_table_index): New.
434 (atable_type): New.
435 * expr.c (build_field_ref): Handle flag_indirect_dispatch.
436 (build_known_method_ref): Likewise.
437 (get_symbol_table_index): Rename from get_offset_table_index.
438 Parameterize to allow re-use by differing types of symbol table.
439 (build_invokevirtual): Pass table to get_offset_table_index.
440 * decl.c (java_init_decl_processing): Push types and decls for
441 atable and atable_syyms.
442 * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
443 (make_class_data): Add new fields atable and atable_syms.
444 (emit_symbol_table): Rename from emit_offset_symbol_table.
445 Parameterize to allow re-use by different types of symbol table.
446 (build_symbol_entry): Renamed from build_method_symbols_entry.
eb158727 447
d186e676
RS
4482003-09-30 Roger Sayle <roger@eyesopen.com>
449
450 * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
451 semantics for SAVE_EXPR, by caching the result in a temporary.
452
436fac17
RH
4532003-09-28 Richard Henderson <rth@redhat.com>
454
455 * check-init.c (check_init): Save and restore input_location
456 instead of file and line separately.
457 * decl.c (java_expand_body): Likewise.
458 * jcf-write.c (generate_bytecode_insns): Likewise.
459 * parse.y (safe_layout_class): Likewise.
460 * jcf-parse.c (read_class, parse_class_file): Likewise.
461 (java_parse_file): Use %H for warning locator.
462
37e2180d
RS
4632003-09-28 Roger Sayle <roger@eyesopen.com>
464
465 * expr.c (java_check_reference): Use the semantics of COND_EXPRs
466 with void-type branches instead of using a COMPOUND_EXPR.
467
9220b1ba
JS
4682003-09-28 Jeff Sturm <jsturm@one-point.com>
469
470 * decl.c (java_optimize_inline, dump_function): Remove.
471 * java-tree.h (java_optimize_inline): Remove declaration.
472 * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
473 * parse.y (source_end_java_method, java_expand_classes):
474 Likewise. Remove dead code.
475
c67e6e14
RS
4762003-09-27 Roger Sayle <roger@eyesopen.com>
477
478 * lang.c (java_init_options): Set flag_evaluation_order.
479 * expr.c (force_evaluation_order): Don't attempt to force
480 evaluation order of binary operations using save_expr.
481 * parse.y (java_complete_lhs): No longer need to call
482 force_evaluation_order when constructing binary operators.
483
cd11bdcc
APB
4842003-09-27 Alexandre Petit-Bianco <apbianco@redhat.com>
485 Bryce McKinlay <bryce@mckinlay.net.nz>
486
487 PR java/1333:
488 * parse.y (not_accessible_field_error): New function.
489 (resolve_expression_name): Check field access permissions.
490 (resolve_qualified_expression_name): Use
491 not_accessible_field_error.
492 (resolve_qualified_expression_name): Likewise.
493
eb9ec0d4
RO
4942003-09-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
495
496 * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
497
87750fef
RS
4982003-09-23 Roger Sayle <roger@eyesopen.com>
499
500 * jcf-write.c (generate_bytecode_insns): Optimize binary operations
501 with equal operands without side-effects.
502
92f6e625
JS
5032003-09-22 Jeff Sturm <jsturm@one-point.com>
504
505 * decl.c (java_init_decl_processing): Don't emit otable decls
506 if flag_indirect_dispatch is not set.
507
f31686a3
RH
5082003-09-21 Richard Henderson <rth@redhat.com>
509
eb158727 510 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
f31686a3
RH
511 resource.c: Revert.
512
7e2af53a
RH
5132003-09-21 Richard Henderson <rth@redhat.com>
514
eb158727 515 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
7e2af53a
RH
516 resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
517
ddd2d57e
RH
5182003-09-20 Richard Henderson <rth@redhat.com>
519
eb158727 520 * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
ddd2d57e 521
96123432
RS
5222003-09-18 Roger Sayle <roger@eyesopen.com>
523
524 * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
525 * check-init.c (check_init): Likewise.
526
a490d1be
RS
5272003-09-18 Roger Sayle <roger@eyesopen.com>
528
529 * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
530
1319e88e
AH
5312003-09-16 Andrew Haley <aph@redhat.com>
532
533 * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
534
bdc225df
RM
5352003-09-17 Ranjit Mathew <rmathew@hotmail.com>
536
537 Fixes PR java/9577
538 * mangle.c (find_compression_record_match): Skip
539 over a "6JArray" (the array template mangled string)
540 IDENTIFIER_NODE.
541 (mangle_array_type): Correct minor typo.
542 (atms): Move definition to the beginning.
543
93634679
BM
5442003-09-16 Bryce McKinlay <bryce@mckinlay.net.nz>
545
eb158727 546 * class.c (add_miranda_methods): Ensure super-interfaces are laid
93634679
BM
547 out. Fix for PR java/12254.
548
6b00c969
RH
5492003-09-11 Richard Henderson <rth@redhat.com>
550
eb158727
ZW
551 * parse.y (source_end_java_method): Update for new
552 cgraph_finalize_function argument.
6b00c969 553
39adabaf
RH
5542003-09-09 Richard Henderson <rth@redhat.com>
555
eb158727
ZW
556 * parse.y (source_end_java_method): Update call to
557 cgraph_finalize_function.
39adabaf 558
916b57ce
JS
5592003-09-03 Jeff Sturm <jsturm@one-point.com>
560
561 * decl.c (java_expand_body): New function.
562 * expr.c (build_class_init): Set DECL_IGNORED_P.
563 * java-tree.h (start_complete_expand_method,
564 java_expand_body): Declare.
565 * jcf-parse.c (cgraph.h): Include.
566 (java_parse_file): Handle flag_unit_at_a_time.
567 * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
568 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
569 (java_estimate_num_insns): Use walk_tree_without_duplicates.
570 (java_start_inlining): New function.
571 * parse.h (java_finish_classes): Declare.
572 * parse.y: Include cgraph.h.
573 (block): Don't special-case empty block production.
574 (craft_constructor): Set DECL_INLINE.
575 (source_end_java_method): Handle flag_unit_at_a_time.
576 Replace inline code with call to java_expand_body.
577 (start_complete_expand_method): Remove static modifier.
578 (java_expand_method_bodies): Patch function tree for
579 class initialization and/or synchronization as needed.
580 Don't begin RTL expansion yet.
581 (java_expand_classes): Check flag_unit_at_a_time before
582 calling finish_class.
583 (java_finish_classes): New function.
584 (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
585 (patch_assignment): Set DECL_CONTEXT on temporary variable.
586 (emit_test_initialization): Set DECL_IGNORED_P.
587
e71d3aae
RS
5882003-09-03 Roger Sayle <roger@eyesopen.com>
589
590 * builtins.c (enum builtin_type): Delete unused enumeration.
591 * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
592
ff2865f2
TT
5932003-08-28 Tom Tromey <tromey@redhat.com>
594
595 * gcj.texi (Extensions): Document gcjlib URLs.
596
b7d6f12a
TT
5972003-08-20 Tom Tromey <tromey@redhat.com>
598
599 * gcj.texi (Extensions): Added xref.
600 (libgcj Runtime Properties): Document
601 gnu.gcj.runtime.VMClassLoader.library_control.
602
ec00bfc0
AH
6032003-08-20 Andrew Haley <aph@redhat.com>
604
eb158727
ZW
605 * except.c (prepare_eh_table_type): Use new encoding for exception
606 handlers when using -fno-assume-compiled.
ec00bfc0 607
7f8b4704
TT
6082003-08-13 Tom Tromey <tromey@redhat.com>
609
610 * gcj.texi (Invoking gij): Document -X and -?.
611
d0cf60cc
ME
6122003-08-13 Mohan Embar <gnustuff@thisiscool.com>
613
614 * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
615 GCJH_OBJS, JCFDUMP_OBJS
616 * win32-host.c: Removed the unnecessary and broken dependency
617 on jcf.h
618
aecf4109
TT
6192003-08-11 Tom Tromey <tromey@redhat.com>
620
621 * parse.y (java_check_regular_methods): Typo fixes. Call
622 check_interface_throws_clauses. Use
623 check_concrete_throws_clauses.
624 (check_interface_throws_clauses): New function.
625 (check_concrete_throws_clauses): New function.
626 (hack_is_accessible_p): New function.
627 (find_most_specific_methods_list): Added FIXME.
628 * typeck.c (lookup_do): Use `flags' argument to decide what to
629 do. Reimplemented.
630 (lookup_argument_method_generic): New function.
631 (lookup_argument_method2): Removed.
632 * jcf.h (ACC_INVISIBLE): New define.
633 * jcf-write.c (generate_classfile): Skip invisible methods.
634 * class.c (add_miranda_methods): New function.
635 (layout_class_methods): Use it.
636 (get_access_flags_from_decl): Use ACC_INVISIBLE.
637 * java-tree.h (METHOD_INVISIBLE): New define.
638 (lang_decl_func) [invisible]: New field.
639 (lookup_argument_method_generic): Declare.
640 (SEARCH_INTERFACE): New define.
641 (SEARCH_SUPER): Likewise.
642 (SEARCH_ONLY_INTERFACE): Likewise.
643 (SEARCH_VISIBLE): Likewise.
644 (lookup_argument_method2): Removed declaration.
645
90281aec
TT
6462003-08-05 Tom Tromey <tromey@redhat.com>
647
648 Fix for PR java/11600:
649 * parse.y (java_complete_lhs): See whether we're calling a method
650 on an array.
651 (check_thrown_exceptions): Added `is_array_call' argument;
652 fixed `clone' checking; updated all callers.
653
b3c3af2f
SB
6542003-08-05 Steven Bosscher <steven@gcc.gnu.org>
655
656 * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
657
0e046453
TT
6582003-08-03 Tom Tromey <tromey@redhat.com>
659
660 * java-tree.h (METHOD_TRANSIENT): Removed.
661 * decl.c (pushdecl): Removed some dead code.
662 * class.c (get_access_flags_from_decl): Can't have transient
663 method.
664 (add_method_1): Can't have a transient method.
665
8376cf3d
AJ
6662003-07-28 Andreas Jaeger <aj@suse.de>
667
668 * jvspec.c: Convert to ISO C90 prototypes.
669
b8bae365
NS
6702003-07-25 Nathan Sidwell <nathan@codesourcery.com>
671
672 * decl.c (force_poplevels): Fix warning call.
673
cd475805
GDR
6742003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
675
676 * expr.c (expand_java_field_op): Don't use xxx_with_decl
677 (expand_java_field_op): Likewise.
678 * class.c (layout_class_method): Likewise
679 (emit_register_classes): Likewise.
680 * decl.c (pushdecl): Likewise.
681 (poplevel): Likewise.
682 (force_poplevels): Likewise.
683 (give_name_to_locals): Likewise.
684 * check-init.c (check_for_initialization): Likewise.
685
de7df9eb
JM
6862003-07-24 Jason Merrill <jason@redhat.com>
687
688 * java-tree.h: Move boolean_type_node et al to the back end.
689
c68b0a84
KG
6902003-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
691
692 * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
693 casts.
694
2cc98056
NB
6952003-07-19 Neil Booth <neil@daikokuya.co.uk>
696
697 * lang.opt: Don't show -MD_ and -MDD_.
698
b2e608ca
NB
6992003-07-18 Neil Booth <neil@daikokuya.co.uk>
700
701 * lang-options.h: Remove.
702 * lang.opt: Add help text.
703
683b1112
KH
7042003-07-15 Kazu Hirata <kazu@cs.umass.edu>
705
706 * expr.c: Remove the last argument to expand_assignment().
707
602a82f3 7082003-07-09 Jan Hubicka <jh@suse.cz>
084c1779
JH
709
710 * java-tree.h (DECL_NUM_STMTS): Rename to...
711 (DECL_ESTIMATED_INSNS): ... this.
712 * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
713 New static functions.
714 (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
715 * parser.y (add_stmt_to_compound): Do not account statements.
716
671d6ee7
MW
7172003-07-08 Mark Wielaard <mark@klomp.org>
718
719 * gcj.texi: CNI now expands to Compiled Native Interface.
720
c5ffd36c
RO
7212003-07-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
722
723 * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
724
0cea056b
NS
7252003-07-07 Nathan Sidwell <nathan@codesourcery.com>
726
727 * expr.c (expand_byte_code): Adjist emit_line_note call.
728
cb66e385
NB
7292003-07-06 Neil Booth <neil@daikokuya.co.uk>
730
731 * lang.c (java_handle_option): Don't handle filenames.
732
3dce1408
ZW
7332003-07-02 Zack Weinberg <zack@codesourcery.com>
734
735 * jcf-path.c: Don't default-define PATH_SEPARATOR nor
736 DIR_SEPARATOR.
737 Use FILENAME_CMP.
738 * jcf-write.c: Don't default-define DIR_SEPARATOR.
739 * jcf.h: Delete COMPARE_FILENAMES definition.
740
b86f6cd9
NB
7412003-07-02 Neil Booth <neil@daikokuya.co.uk>
742
743 * lang.c (java_init_options): Update prototype.
744
5b030314
NS
7452003-07-01 Nathan Sidwell <nathan@codesourcery.com>
746
747 * decl.c (poplevel): Adjust define_label call.
748
8ce33230
ZW
7492003-06-27 Zack Weinberg <zack@codesourcery.com>
750
a6d682a0
ZW
751 * gjavah.c (flag_jni): Make non-static.
752 * parse-scan.y (ctxp): Make non-static.
753
8ce33230
ZW
754 * class.c (build_method_symbols_entry)
755 * expr.c (get_offset_table_index)
756 * jcf-parse.c (jcf_parse):
757 Mark the definition static, matching the forward declaration.
758
9eee5e72
NB
7592003-06-26 Neil Booth <neil@daikokuya.co.uk>
760
761 * lang.c (java_handle_option): Don't check for missing arguments.
762
1f9cc6db
NS
7632003-06-20 Nathan Sidwell <nathan@codesourcery.com>
764
765 * class.c (push_class): Use a location_t to save place.
766 (emit_register_classes): Set input_location. Adjust
767 expand_function_end call.
768 * resource.c (write_resource_constructor): Likewise.
769 * decl.c (end_java_method): Adjust expand_function_end call.
770 * parse.y (source_end_java_method): Likewise.
771
f3f735eb
RA
7722003-06-17 Robert Abeles <rabeles@archaelogic.com>
773
774 * lang.c (java_handle_option): Likewise.
775
7b086b11
NB
7762003-06-16 Neil Booth <neil@daikokuya.co.uk>
777
778 * lang.c (java_handle_option): Special-casing of optional
779 joined arguments no longer needed.
780 * lang.opt: Update switches that take optional argument.
781
be43ab4e
NB
7822003-06-15 Neil Booth <neil@daikokuya.co.uk>
783
784 * lang.opt: Declare Java.
785 * lang.c (java_init_options): Update.
786
d185d268
NB
7872003-06-15 Neil Booth <neil@daikokuya.co.uk>
788
789 * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
790
cef67dce
NB
7912003-06-14 Neil Booth <neil@daikokuya.co.uk>
792
793 * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
794 * lang.c (java_handle_option): -MD and -MMD have an underscore.
795 * lang.opt: -MD and -MMD have an underscore.
796
ee6b0296
NS
7972003-06-14 Nathan Sidwell <nathan@codesourcery.com>
798
799 * class.c (emit_register_classes): Adjust init_function_start
800 call.
801 * decl.c (complete_start_java_method): Likewise.
802 * resource.c (write_resource_constructor): Likewise.
803
d7b42618
NB
8042003-06-14 Neil Booth <neil@daikokuya.co.uk>
805
806 * Make-lang.in: Update to use options.c and options.h.
807 * lang.c: Include options.h not j-options.h.
808 (java_handle_option): Abort on unrecognized option.
809 (java_init_options): Request Java switches.
810
7fb26bb0
NB
8112003-06-11 Neil Booth <neil@daikokuya.co.uk>
812
813 * Make-lang.in: Handle mostlyclean.
814
265411b6
TT
8152003-06-11 Tom Tromey <tromey@redhat.com>
816
4a09cbac
TT
817 * lang.c (java_handle_option): Update dependency_tracking for
818 OPT_MF case.
819
265411b6
TT
820 * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
821 empty argument.
822
dc952677
AH
8232003-06-10 Andrew Haley <aph@redhat.com>
824
825 * resource.c (write_resource_constructor): Use expand_expr to
826 generate the address of the label attached to a resource.
827 * Make-lang.in (java/resource.o): Add expr.h
828
e076f71a
AH
8292003-06-10 Andrew Haley <aph@redhat.com>
830
831 * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
832 (java_decl_ok_for_sibcall): New.
833
95ca6d8b
NB
8342003-06-09 Neil Booth <neil@daikokuya.co.uk>
835
836 * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
837 (java/j-options.c, java/j-options.h): New.
838 * java-tree.h (resource_name, compile_resource_file,
839 compile_resource_data): Constify.
840 * jcf-write.c (jcf_write_base_directory): Similarly.
841 * jcf.h (jcf_write_base_directory): Similarly.
842 * lang.c: Include j-options.h.
843 (cl_options_count, cl_options, string_option, java_decode_option,
844 lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
845 process_option_with_no): Remove.
846 (resource_name): Constify.
847 (LANG_HOOKS_HANDLE_OPTION): Override.
848 (java_handle_option): New.
849 (java_init): Don't call jcf_path_init.
850 (java_init_options): Call jcf_path_init.
851 * lang.opt: New.
852 * resource.c (compile_resource_data, compile_resource_file): Constify.
853
36f04556
NS
8542003-06-09 Nathan Sidwell <nathan@codesourcery.com>
855
856 * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
857 (struct lang_decl_func): Add last_line field.
858 * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
859 DECL_SOURCE_LINE_LAST): Remove.
860 * parse.y (missing_return_error, finish_method_declaration,
861 lookup_cl, start_artificial_method_body, source_end_java_method,
862 start_complete_expand_method): Adjust.
863
f751e9c2
TT
8642003-06-08 Tom Tromey <tromey@redhat.com>
865
866 * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
867 fno-assume-compiled.
868
5f158b44
RS
8692003-06-08 Roger Sayle <roger@eyesopen.com>
870
871 * builtins.c (define_builtin_type, builtin_types): Delete.
872 (define_builtin): Rewritten to take just the built-in code,
873 the function's name, type and fallback library function name.
874 All built-ins used by Java are implicit and BUILT_IN_NORMAL.
875 (initialize_builtins): Overhaul to define the GCC builtins
876 used by gcj manually, providing the Java run-time's
877 implementations as the fallback library function.
878
f32c53c2
AG
8792003-06-08 Anthony Green <green@redhat.com>
880
881 * parse.y (patch_cast): Fix conversions from floating-point to
882 integral types.
883
c8b04b13
NB
8842003-06-08 Neil Booth <neil@daikokuya.co.uk>
885
886 * Make-lang.in: Update.
887 * lang.c: Include opts.h. Define cl_options_count and cl_options.
888
2772ef3e
NB
8892003-06-07 Neil Booth <neil@daikokuya.co.uk>
890
891 * lang.c (java_init_options): Update.
892
602a82f3 8932003-06-05 Jan Hubicka <jh@suse.cz>
8f231b5d
JH
894
895 * Make-lang.in: Add support for stageprofile and stagefeedback
896
4fa26a60
RS
8972003-05-31 Roger Sayle <roger@eyesopen.com>
898
899 * lang.c (java_init_options): Prescribe wrap-around two's
900 complement arithmetic overflow by setting flag_wrapv.
901
833e1a77
RS
9022003-05-29 Roger Sayle <roger@eyesopen.com>
903
904 * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
905 (builtin_record): Add an additional builtin_code field to
906 record which GCC built-in corresponds to the Java function.
907 (java_builtins): Add new entries for atan, atan2, exp, log,
908 pow and tan.
909 (max_builtin, min_builtin, abs_builtin): Perform constant
910 folding on the resulting tree.
911 (java_build_function_call_expr): Likewise, perform constant
912 folding on the resulting tree.
913 (initialize_builtins): The NULL creators are now allowed in
914 the java_builtins table, which is now terminated by an entry
915 with builtin_code == END_BUILTINS.
916 (check_for_builtin): Likewise. If the matching creator is
917 NULL, construct the call using java_build_function_call_expr
918 directly with the decl for the corresponding builtin_code.
919
24bcc721
NN
9202003-05-23 Nathanael Nerode <neroden@gcc.gnu.org>
921
922 * win32-host.c: Normalize copyright boilerplate.
923
90ff44cf
KG
9242003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
925
926 * parse.y (print_int_node): Use string concatentation on
927 HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
928 function calls into one.
929
fa6ef813
ZW
9302003-05-13 Zack Weinberg <zack@codesourcery.com>
931
932 * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
933 fatal_io_error with calls to fatal_error; add ": %m" to the end of
934 all the affected error messages.
935
3bec3c0c
RH
9362003-05-13 Richard Henderson <rth@redhat.com>
937
938 * class.c (layout_class_method): Set DECL_EXTERNAL.
939 * decl.c (java_mark_decl_local, java_mark_class_local): New.
940 * java-tree.h (java_mark_class_local): Declare.
941 * jcf-parse.c (parse_class_file): Use it.
942 * parse.y (java_expand_classes): Likewise.
943
d4b56320
NS
9442003-05-04 Nathan Sidwell <nathan@codesourcery.com>
945
946 * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
947 * lex.h: #include input.h.
948 * jv-scan.c (input_filename): Remove.
949
73cb3b5a
TT
9502003-05-02 Tom Tromey <tromey@redhat.com>
951
952 PR java/10491:
953 * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
954 (handle_inner_classes): New function.
955
fcc8cecb
TT
9562003-05-01 Tom Tromey <tromey@redhat.com>
957
958 PR java/10459:
959 * parse.y (finish_for_loop): Do nothing if update expression is a
960 EXPR_WFL_NODE wrapping nothing.
961 (java_complete_lhs) <COMPOUND_EXPR>: Likewise.
962
6060edcb
NS
9632003-05-02 Nathan Sidwell <nathan@codesourcery.com>
964
965 * lex.h (input_lineno): Remove declaration.
966 * parse-scan.y: #include input.h.
967 (input_filename): Remove declaration.
968 (input_location): Add definition.
969 (input_line): Remove definition.
970
3489e061
NS
9712003-05-01 Nathan Sidwell <nathan@codesourcery.com>
972
973 * lex.h (lineno): Rename to ...
974 (input_line): ... here
975 * parse-scan.y (lineno): Rename to ...
976 (input_line): ... here.
977 (reset_report): Rename lineno to input_line.
978 * check-init.c (check_init): Likewise.
979 * class.c (push_class): Likewise.
980 * decl.c (complete_start_java_method, end_java_method): Likewise.
981 * expr.c (expand_byte_code): Likewise.
982 * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
983 * jcf-write.c (generate_bytecode_insns): Likewise.
984 * lex.c (java_init_lex, java_allocate_new_line,
985 do_java_lex): Likewise.
986 * parse.h (YYNOT_TWICE): Likewise.
987 * parse.y (empty_statement, expression_statement,
988 java_pop_parser_context, java_parser_context_save_global,
989 yyerror, register_fields, method_header, safe_layout_class,
990 find_in_imports_on_demand, create_artificial_method,
991 source_end_java_method, start_complete_expand_method,
992 build_thisn_assign, java_complete_lhs,
993 maybe_absorb_scoping_block): Likewise.
994
ef963bc8
ME
9952003-04-20 Mohan Embar <gnustuff@thisiscool.com>
996
997 * jcf-io.c (find_class): use DIR_SEPARATOR instead of
998 '/' when computing java source filename
999
e6311b9e
TT
10002003-04-13 Tom Tromey <tromey@redhat.com>
1001
1002 * gjavah.c (print_c_decl): Indentation fix.
1003
dcf92453
ZW
10042003-04-12 Zack Weinberg <zack@codesourcery.com>
1005
1006 * class.c (make_field_value, make_method_value, get_dispatch_table)
1007 (make_class_data, emit_offset_symbol_table)
1008 * constants.c (build_constants_constructor)
1009 * java-tree.h (START_RECORD_CONSTRUCTOR)
1010 * parse.y (maybe_build_array_element_wfl):
1011 Use build_constructor.
1012
04a0be36
EB
10132003-04-10 Eric Blake <ebb9@email.byu.edu>
1014
1015 PR java/10253:
1016 * parse.y (string_convert_int_cst): Always use at least one digit
1017 in string conversion. Remove ASCII dependence.
1018 (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
1019
72f339d2
AH
10202003-03-16 Mohan Embar <gnustuff@thisiscool.com>
1021
1022 * Make-lang.in: added win32-host.c
1023 * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
1024 resolves to open() on non-Win32 platforms and
1025 Win32-specific jcf_open_exact_case() on Win32
1026 * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
1027 when trying .java and .class files
1028 * win32-host.c: added to repository. Defines
1029 Win32-specific jcf_open_exact_case()
1030
10312003-04-10 Andrew Haley <aph@redhat.com>
1032
1033 * jcf-write.c (struct jcf_partial): num_jsrs: new field.
1034 (maybe_free_localvar): Renamed from localvar_free.
1035 Add new arg, really.
1036 (generate_bytecode_insns): Set new variable, jsrs.
1037 Only free local vars if no jsr insns have been emittted.
1038 Call maybe_free_localvar, not localvar_free.
1039
438f63a8
JM
10402003-03-30 Joseph S. Myers <jsm@polyomino.org.uk>
1041
1042 * gcj.texi: Remove @ at start of file.
1043
dcb0eee2
TT
10442003-03-25 Tom Tromey <tromey@redhat.com>
1045
1046 * parse.y (create_interface): Call CHECK_DEPRECATED.
1047
62c9aa5f
ZW
10482003-03-23 Zack Weinberg <zack@codesourcery.com>
1049
1050 * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
1051
649eaf9b
ZW
10522003-03-21 Zack Weinberg <zack@codesourcery.com>
1053
1054 * javaop.h (jfloat, jdouble): Make them structures mirroring
1055 the bit fields of IEEE float and double respectively.
1056 (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
1057 JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
1058 (union Word, union DWord): Delete.
1059 (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
1060
1061 * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
1062 D_NAN_MASK): Delete.
1063 (jni_print_float, jni_print_double): New. Generate
1064 hexadecimal floating constants.
1065 (print_field_info): Use jni_print_float/double.
1066
1067 * jcf-dump.c: Include math.h. Use ldexp/frexp to assemble
1068 finite floating point numbers for output; special case
1069 non-finite floats.
1070
2bd3ecad
NN
10712003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>
1072
1073 * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
1074 Replace 0 and 1 with true and false in return statements.
1075
b25a23bd
TT
10762003-03-19 Tom Tromey <tromey@redhat.com>
1077
1078 * lex.c (do_java_lex): Renamed from java_lex.
1079 (java_lex): New function.
1080 Include timevar.h.
1081
2f29e5e8
TT
10822003-03-13 Tom Tromey <tromey@redhat.com>
1083
1084 * parse.y (resolve_inner_class): Error if qualifier is a primitive
1085 type.
1086
68566610
AH
10872003-03-04 Andrew Haley <aph@redhat.com>
1088
649eaf9b
ZW
1089 * gjavah.c (is_first_data_member): New global variable.
1090 (print_c_decl): If it's the first data member, align it as the
1091 superclass.
1092 (process_file): Set is_first_data_member.
68566610 1093
8b8e6c64
TT
10942003-03-11 Tom Tromey <tromey@redhat.com>
1095
1096 * parse.y (resolve_field_access): Initialize class if field is
1097 found in another static field.
1098 * expr.c (build_class_init): Don't optimize out initialization of
1099 implemented interface.
1100
3d874dea
AH
11012003-03-11 Andrew Haley <aph@redhat.com>
1102
1103 * jcf-io.c (caching_stat): Initialize origsep to remove compiler
1104 warning.
1105
630287af
RM
11062003-03-10 Ranjit Mathew <rmathew@hotmail.com>
1107
1108 * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
1109 and DIR_SEPARATOR_2 for a target.
1110 Correct minor typos.
1111
1112 * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
1113 and DIR_SEPARATOR_2 for a target into account.
1114
4bfec483
NB
11152003-03-08 Neil Booth <neil@daikokuya.co.uk>
1116
1117 * lang.c (java_init): Update prototype, move code to java_post_options.
1118 (java_post_options): Similarly.
1119
530d4230
RM
11202003-03-05 Ranjit Mathew <rmathew@hotmail.com>
1121
1122 * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
1123 compare file name components depending on the case-sensitivity
1124 or otherwise of the host file system.
1125
1126 * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
1127 "strcmp" to compare file name components.
1128 Use IS_DIR_SEPARATOR instead of comparing directly against
1129 DIR_SEPARATOR.
649eaf9b 1130 (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
530d4230
RM
1131 comparing directly against DIR_SEPARATOR.
1132
5993642d
TT
11332003-03-04 Tom Tromey <tromey@redhat.com>
1134
1135 * Make-lang.in (java.tags): New target.
1136
08291658
RS
11372003-03-01 Roger Sayle <roger@eyesopen.com>
1138
1139 * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
1140 (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
1141
11522327
TT
11422003-03-01 Tom Tromey <tromey@redhat.com>
1143
1144 * parse.y (jdep_resolve_class): Only check deprecation if we found
1145 a decl.
1146
0ea05c0d
TT
11472003-02-28 Tom Tromey <tromey@redhat.com>
1148
1149 PR java/9695:
1150 * class.c (maybe_layout_super_class): Always pass a WFL to
1151 do_resolve_class.
1152 * parse.y (do_resolve_class): Updated comment to explain
1153 parameters.
1154
49b973cb
TT
11552003-02-26 Tom Tromey <tromey@redhat.com>
1156
1157 * jcf-write.c (generate_classfile): Check whether class is
1158 deprecated before writing attribute count.
1159
b052d8ee
RS
11602003-02-25 Roger Sayle <roger@eyesopen.com>
1161
1162 * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
1163 built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
649eaf9b 1164
f94ae540
TT
11652003-02-23 Tom Tromey <tromey@redhat.com>
1166
1167 * lang-options.h: Added -Wdeprecated.
1168 * gcj.texi (Warnings): Document -Wdeprecated.
1169 * java-tree.h (flag_deprecated): Declare.
1170 * lang.c (lang_W_options): Added deprecated.
1171 (flag_deprecated): New global.
1172 * chartables.h: Rebuilt.
1173 * gen-table.pl (process_one): Look at whitespace.
1174 (print_tables): Define LETTER_SPACE, LETTER_MASK.
1175 * parse.h (CLEAR_DEPRECATED): New macro.
1176 (CHECK_DEPRECATED_NO_RESET): New macro.
1177 * jcf-parse.c (handle_deprecated): New function.
1178 (HANDLE_DEPRECATED_ATTRIBUTE): New define.
1179 * jcf-reader.c (get_attribute): Handle Deprecated attribute.
1180 * parse.y (resolve_type_during_patch): Check deprecation.
1181 (jdep_resolve_class): Likewise.
1182 (process_imports): Likewise.
1183 (resolve_expression_name): Likewise.
1184 (check_deprecation): Strip arrays from decl. Check
1185 flag_deprecated.
1186 (patch_method_invocation): Also check the particular constructor
1187 for deprecation.
1188 (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
1189 * jcf-write.c (append_deprecated_attribute): New function.
1190 (generate_classfile): Generate deprecated attribute when
1191 appropriate.
1192 * lex.c (java_parse_doc_section): Return type now void. Rewrote.
1193 (java_lex) [case '*']: Simplify logic.
1194 (java_start_char_p): Use LETTER_MASK.
1195 (java_part_char_p): Likewise.
1196 (java_space_char_p): New function.
1197
dbbf88d1
NS
11982003-02-20 Nathan Sidwell <nathan@codesourcery.com>
1199
1200 Change base class access representation.
1201 * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
1202 (add_interface_do): Likewise.
1203
697ec326
RM
12042003-02-12 Ranjit Mathew <rmathew@hotmail.com>
1205
649eaf9b 1206 * decl.c (java_init_decl_processing): Change
697ec326
RM
1207 soft_lookupjnimethod_node to reflect the change in
1208 signature of _Jv_LookupJNIMethod in libjava/jni.cc
1209 * expr.c (build_jni_stub): Calculate and pass the size
1210 on the stack of the arguments to a JNI function. Use
649eaf9b 1211 new target macro MODIFY_JNI_METHOD_CALL to allow a
697ec326
RM
1212 target to modify the call to a JNI method.
1213
afc432a9
RS
12142003-02-08 Roger Sayle <roger@eyesopen.com>
1215
1216 * jcf-io.c (java_or_class_file): Use libiberty's lbasename
1217 instead of basename to avoid compiler warnings on Tru64.
1218
b3a8389d
JM
12192003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
1220
1221 * gcj.texi: Update to GFDL 1.2.
1222
2d7b3505
AH
12232003-01-31 Andrew Haley <aph@redhat.com>
1224
1225 * parse.y (java_expand_classes): Scan the whole class list looking
1226 for access methods that haven't yet been expanded.
1227
7d503466
AB
12282003-01-31 Adrian Bunk <bunk@fs.tum.de>
1229
1230 Fix for java/4269:
1231
1232 * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
1233 to fix bootstrap on sparc-unknown-netbsdelf1.5.
1234 * jcf-parse.c: Likewise.
1235
36da0e78
MW
12362003-01-31 Mark Wielaard <mark@klomp.org>
1237
1238 * gjavah.c (throwable_p): Allocate 1 more byte for string.
1239
1824b90d
NS
12402003-01-31 Nathan Sidwell <nathan@codesourcery.com>
1241
1242 * class.c (make_class): Use BINFO_ELTS.
1243 (set_super_info): Likewse.
1244 (add_interface_do): Likewise.
1245
7e278bae
TT
12462003-01-30 Tom Tromey <tromey@redhat.com>
1247
1248 * jcf-parse.c (read_class): Update identifier's class value if it
1249 changed during parsing.
1250
65eb9b87
LR
12512003-01-30 Loren James Rittle <ljrittle@acm.org>
1252
1253 * Make-lang.in (po-generated): Find the targets in $(parsedir).
1254 Propagate change to all other rules as required.
1255 (java/parse-scan.o): Add explicit dependency on
1256 $(parsedir)/java/parse-scan.c .
1257
c78f2b91
TT
12582003-01-29 Tom Tromey <tromey@redhat.com>
1259
1260 * parse.y (patch_assignment): Only transform the rhs of an
1261 assignment when compiling to native.
1262
0d42c3c2
TT
12632003-01-28 Tom Tromey <tromey@redhat.com>
1264
1265 * jcf-write.c (generate_bytecode_conditional): Typo fixes.
1266
82b22c42
TT
12672003-01-28 Tom Tromey <tromey@redhat.com>
1268
1269 * lex.c (java_lex): Don't include UEOF as part of token.
1270 (java_read_unicode): Error if \u sequence prematurely terminated.
1271
6a807d35
TT
12722003-01-27 Tom Tromey <tromey@redhat.com>
1273
1274 * parse.y (java_check_regular_methods): Check for construct after
1275 checking types in throws clause.
1276
c2c98445
TT
12772003-01-24 Tom Tromey <tromey@redhat.com>
1278
1279 * class.c (build_static_field_ref): Only a String or numeric field
1280 can fold to a constant.
1281
8bef0925
TT
12822003-01-23 Tom Tromey <tromey@redhat.com>
1283
1284 * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
1285 file name in resource buffer.
1286
1f369e60
TT
12872003-01-23 Tom Tromey <tromey@redhat.com>
1288
1289 * expr.c (build_known_method_ref): Use method's context to find
1290 method table index.
1291
0f0ff6ec
TT
12922003-01-23 Tom Tromey <tromey@redhat.com>
1293
1294 * constants.c (set_constant_entry): Allocated cleared memory.
1295
850ccfae
TT
12962003-01-22 Tom Tromey <tromey@redhat.com>
1297
1298 * java-tree.h: Don't use PARAMS.
1299 * resource.c: Add prototypes for all functions.
1300 (write_resource_constructor): Use `const char *' to avoid
1301 warning.
1302
e00d2127
NN
13032003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>
1304
1305 * jcf-parse.c (process_zip_dir): Remove unused variable.
1306
906c7c32
TT
13072003-01-22 Tom Tromey <tromey@redhat.com>
1308
1309 * expr.c (build_invokeinterface): Abort if method's context is not
1310 an interface.
1311
3e895978
TT
13122003-01-22 Tom Tromey <tromey@redhat.com>
1313
1314 * gcj.texi (Input and output files): Mention non-class entries.
1315 * decl.c (java_init_decl_processing): Call
1316 init_resource_processing.
1317 * java-tree.h (compile_resource_data, write_resource_constructor,
1318 compile_resource_file, init_resource_processing): Declare.
1319 * config-lang.in (gtfiles): Added resource.c.
1320 * Make-lang.in (gt-java-resource.h): New target.
1321 (JAVA_OBJS): Added resource.o.
1322 (java/resource.o): New target.
1323 * resource.c: New file.
1324 * class.c (compile_resource_file): Moved to resource.c.
1325 (registerResource_libfunc): Likewise.
1326 (utf8_decl_list): Mark with GTY; now static.
1327 * jcf-parse.c (classify_zip_file): New function.
1328 (parse_zip_file_entries): Use it; compile .properties files.
1329 (process_zip_dir): Use classify_zip_file and compute_class_name.
1330 Don't write class name into zip directory.
1331 (java_parse_file): Call write_resource_constructor.
1332 (compute_class_name): New function.
1333 * jcf-io.c (read_zip_member): Reindented.
1334
5c64ead4
TT
13352003-01-21 Tom Tromey <tromey@redhat.com>
1336
1337 * class.c (supers_all_compiled): New function.
1338 (make_class_data): Use it.
1339
9179646e
TT
13402003-01-21 Tom Tromey <tromey@redhat.com>
1341
1342 * parse.y (method_header): Native method can't be strictfp.
1343 No method can be transient or volatile.
1344
dd859b8a
KG
13452003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1346
1347 Make-lang.in (jvspec.o-warn): Add -Wno-error.
1348
634661fe
KH
13492003-01-18 Kazu Hirata <kazu@cs.umass.edu>
1350
1351 * check-init.c: Fix comment typos.
1352 * class.c: Likewise.
1353 * constants.c: Likewise.
1354 * decl.c: Likewise.
1355 * except.c: Likewise.
1356 * expr.c: Likewise.
1357 * java-except.h: Likewise.
1358 * java-tree.h: Likewise.
1359 * javaop.h: Likewise.
1360 * jcf-dump.c: Likewise.
1361 * jcf-io.c: Likewise.
1362 * jcf-parse.c: Likewise.
1363 * jcf-write.c: Likewise.
1364 * lang.c: Likewise.
1365 * mangle.c: Likewise.
1366 * typeck.c: Likewise.
1367 * verify.c: Likewise.
1368
a1fb4e91
KG
13692003-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1370
1371 * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
1372 * jcf-write.c: Include "tm_p.h".
1373
1faad0fc
KG
13742003-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1375
1376 * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
1377
fc555370
KG
13782003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1379
f981519d
KG
1380 * builtins.c (java_build_function_call_expr): Renamed from
1381 build_function_call_expr. All callers changed.
1382
0334ef47
KG
1383 * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
1384 * jcf-parse.c: Include tm_p.h.
1385
fc555370
KG
1386 * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
1387 warning.
1388
d9bbf3f7
TT
13892003-01-14 Tom Tromey <tromey@redhat.com>
1390
1391 * class.c (make_class_data): Check that super is compiled before
1392 building class reference to it.
1393
47411341
AH
13942003-01-14 Andrew Haley <aph@redhat.com>
1395
1396 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
649eaf9b 1397 varargs function -- correct.
47411341 1398
e5c9ced4
AH
13992003-01-14 Andrew Haley <aph@redhat.com>
1400
1401 * decl.c (java_init_decl_processing): Temporarily back out previous patch.
1402
50cbc605
AH
14032003-01-14 Andrew Haley <aph@redhat.com>
1404
1405 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
1406 varargs function -- correct.
1407
1408 * parse.y (patch_assignment): Copy the rhs of an assignment into a
1409 temporary if the RHS is a reference.
1410
0a2f0c54
KG
14112003-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1412
b3504bc1
KG
1413 * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
1414 * keyword.h: Regenerated.
1415
0a2f0c54
KG
1416 * All Files: Convert to ISO C style function definitions.
1417
43a4a12b
NN
14182003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
1419
1420 * parse.y (check_pkg_class_access): ANSIfy definition.
1421
77d3109b
KG
14222003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1423
d12689d2
KG
1424 * decl.c, parse-scan.y, parse.y: Don't cast return value of
1425 xmalloc et al.
1426
77d3109b
KG
1427 * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
1428
17211ab5
GK
14292003-01-09 Geoffrey Keating <geoffk@apple.com>
1430
1431 Merge from pch-branch:
1432
1433 2002-12-02 Geoffrey Keating <geoffk@apple.com>
1434
1435 * Make-lang.in (java/gjavah.o): Update dependencies.
1436 * gjavah.c: Include ggc.h.
1437
1438 2002-08-16 Geoffrey Keating <geoffk@redhat.com>
1439
1440 * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
1441 (JCFDUMP_OBJS): Add ggc-none.o.
1442 (java/jcf-dump.o): Depend on GGC_H.
1443 * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
1444 CPool substructures.
1445 * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
1446 * jcf-dump.c: Include ggc.h.
1447
1448 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
1449
1450 * jcf.h (union cpool_entry): New.
1451 (struct CPool): Use gengtype to mark. Change field 'data' to be
1452 an array of unions.
1453 (struct JCF): Use gengtype to mark.
1454 (CPOOL_UINT): Update for new cpool_entry type.
1455 (CPOOL_USHORT1): Likewise.
1456 (CPOOL_USHORT2): Likewise.
1457 (CPOOL_FINISH): Use GC to free cpool subfields.
1458 * parse.h (struct parser_ctxt): Mark field current_jcf.
1459 * lex.c (java_init_lex): Use GC to allocate struct JCF.
1460 * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
1461 (main_jcf): Use gengtype to mark.
1462 (ggc_mark_jcf): Delete.
1463 (get_constant): Update for new cpool_entry type.
1464 (give_name_to_class): Likewise.
1465 (get_class_constant): Likewise.
1466 (init_outgoing_cpool): Use GGC to allocate struct CPool.
1467 (java_parse_file): Use GGC to allocate struct JCF.
1468 (init_jcf_parse): Don't call ggc_add_root.
1469 * jcf-reader.c (jcf_parse_constant_pool): Update for new
1470 cpool_entry type.
1471 * java-tree.h (current_jcf): Use gengtype to mark.
1472 (CPOOL_UTF): Update for new cpool_entry type.
1473 (outgoing_cpool): Use gengtype to mark.
1474 (struct lang_type): GC struct JCF and struct CPool.
1475 * config-lang.in (gtfiles): Add jcf.h.
1476 * constants.c (find_tree_constant): New.
1477 (set_constant_entry): Allocate cpool subfields using GGC. Update
1478 for new cpool_entry type.
1479 (find_constant1): Update for new cpool_entry type.
1480 (find_constant2): Likewise.
1481 (find_utf8_constant): Use find_tree_constant.
1482 (find_class_or_string_constant): Remove unnecessary cast to jword.
1483 Update for new cpool_entry type.
1484 (count_constant_pool_bytes): Update for new cpool_entry type.
1485 (write_constant_pool): Likewise.
1486 (alloc_name_constant): Use find_tree_constant.
1487 (build_constants_constructor): Update for new cpool_entry type.
1488
1489 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
1490
1491 * parse.y (mark_parser_ctxt): Delete.
1492 (goal): Don't use ggc_add_root.
1493 (create_new_parser_context): Use GC to allocate struct parser_ctxt.
1494 (java_pop_parser_context): Let GC free parser_ctxt.
1495 (java_parser_context_resume): Likewise.
1496 * parse.h (struct parser_ctxt): Use gengtype to mark.
1497 (ctxp): Likewise.
1498 (ctxp_for_generation): Likewise.
1499 * lex.h (struct java_lc_s): Mark for gengtype.
1500 (java_lexer): Rearrange for gengtype.
1501 * config-lang.in (gtfiles): Add lex.h, parse.h.
1502
b3339cf7
KG
15032003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1504
d2097937
KG
1505 * All Files: Remove PARAMS macro.
1506
6ff2fe39
KG
1507 * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
1508 jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
1509 `__STDC__' macros.
1510
b3339cf7
KG
1511 * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
1512 VA_CLOSE.
1513
8a4c5898
CC
15142003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
1515
1516 * Make-lang.in (java.install-common, java.uninstall,
1517 java.install-info, java.install-man): Prepend $(DESTDIR)
1518 to destination paths in all (un)installation commands.
1519 (java.install-common): Rewrite $(LN) command to support
1520 DESTDIR with "ln" as well as with "ln -s".
1521
2f23f5c1
NN
15222003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>
1523
1524 * java-tree.h: Protect against multiple inclusion.
1525
b47ffb8f
TT
15262003-01-07 Tom Tromey <tromey@redhat.com>
1527
1528 * class.c (add_assume_compiled): Don't adjust parent if we're
1529 already at the root of tree.
1530
c7c50494
KG
15312003-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1532
1533 * lang.c (dump_compound_expr): Prototype.
1534
f3ce4aba
TT
15352003-01-03 Tom Tromey <tromey@redhat.com>
1536
1537 Fix for PR java/8712:
1538 * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
1539 when simply checking against `null'.
1540
60db58b2
TT
15412003-01-03 Tom Tromey <tromey@redhat.com>
1542
0320cac3
TT
1543 * gcj.texi (Standard Properties): Document http.proxyHost and
1544 http.proxyPort.
1545
60db58b2
TT
1546 * gcj.texi (GNU Classpath Properties): Document new properties.
1547
43c6a96a
SB
15482003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
1549
1550 * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
1551 java/lang-options.h, java/mangle.c, java/mangle_name.c,
1552 java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
1553
f309ff0a
SB
15542003-01-01 Steven Bosscher <s.bosscher@student.tudelft.nl>
1555
1556 * Make-lang.in, boehm.c, buffer.c,
1557 buffer.h, builtins.c, class.c,
1558 config-lang.in, constants.c,
1559 convert.h, decl.c, except.c,
1560 expr.c, java-except.h,
1561 java-tree.h, javaop.def,
1562 jcf-parse.c, jcf-write.c,
1563 jv-scan.c, jvgenmain.c,
43c6a96a 1564 jvspec.c, keyword.gperf,
f309ff0a
SB
1565 keyword.h, lang-options.h,
1566 lang-specs.h, lang.c, lex.c,
1567 lex.h, mangle.c, mangle_name.c,
1568 parse-scan.y, parse.h, parse.y,
1569 typeck.c, verify.c, xref.c,
1570 xref.h: Replace "GNU CC" with
1571 "GCC" in the copyright header.
1572
1573 * check-init.c, gjavah.c, javaop.h,
1574 jcf-depend.c, jcf-dump.c, jcf-io.c,
1575 jcf-path.c, jcf-reader.c, jcf.h,
1576 zextract.c, zipfile.h: These files are
1577 "part of GCC". Also say "GCC" not "GNU CC".
1578
9a280a6e
DD
15792002-12-30 DJ Delorie <dj@redhat.com>
1580
e2f45c30 1581 * Make-lang.in: Protect against texi2pod/pod2man failing.
9a280a6e 1582
bdefb2ab
JM
15832002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
1584
1585 * gcj.texi: Use @copying.
1586
239b7dea
MM
15872002-12-27 Mark Mitchell <mark@codesourcery.com>
1588
1589 * gjavah.c (print_name_for_stub_or_jni): Adjust call to
1590 print_cxx_classname.
1591 (print_cxx_classname): Add add_scope parameter.
1592 (print_class_decls): Do not emit a semicolon after the extern
1593 "Java" block.
43c6a96a 1594 (process_file): Adjust calls to print_cxx_classname.
239b7dea 1595
df82908a
JM
15962002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
1597
1598 * gcj.texi: Include Cover Texts in man page.
1599
d3ab697b
JS
16002002-12-23 Jeff Sturm <jsturm@one-point.com>
1601
1602 * class.c (build_static_field_ref): Check FIELD_FINAL.
1603
1604 * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
1605 instead of current_constant_pool_data_ref.
1606 * java-tree.h (current_constant_pool_data_ref): Undefine.
1607 (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
1608 * jcf-parse.c (init_outgoing_cpool): Don't initialize
1609 current_constant_pool_data_ref.
1610
1611 * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
1612 not build_internal_class_name.
1613
1614 * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
1615 Use it when class ref isn't certain to be compiled.
1616
46d40353
JM
16172002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
1618
1619 * gcj.texi: Include gcc-common.texi.
1620 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
1621 $(srcdir)/doc/include/gcc-common.texi.
1622
fba1caab
AG
16232002-12-22 Anthony Green <green@redhat.com>
1624
1625 * gcj.texi (Limitations): Add note about org.xml.sax and
1626 org.w3c.dom.
1627
913746e3
TT
16282002-12-20 Tom Tromey <tromey@redhat.com>
1629
1630 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
1631 where minimum case value is Integer.MIN_VALUE.
1632 Fixes PR java/8955.
1633
71d082af
AH
16342002-12-18 Andrew Haley <aph@redhat.com>
1635
1636 * parse.y (patch_invoke): Force evaluation order when `check' is
1637 set. For PR libgcj/8945.
1638
7a04c51b
MM
16392002-12-16 Mark Mitchell <mark@codesourcery.com>
1640
1641 * gcj.texi: Change version number to 3.4.
1642
0cc1565a 16432002-12-05 Ranjit Mathew <rmathew@hotmail.com>
649eaf9b 1644 Andrew Haley <aph@redhat.com>
0cc1565a
RM
1645
1646 * parse.y (source_end_java_method): Remove custom encoding of line
1647 numbers for a function decl before passing it to the back end.
1648
421f9e60
AH
16492002-12-03 Andrew Haley <aph@redhat.com>
1650
1651 * class.c (make_class_data): New field, "chain".
1652 * decl.c (java_init_decl_processing): Likewise.
1653
6b55b27f
TT
16542002-12-02 Tom Tromey <tromey@redhat.com>
1655
1656 For PR java/8740:
1657 * parse.y (do_resolve_class): Handle qualified name via
1658 recursion.
1659
4977bab6
ZW
16602002-11-30 Zack Weinberg <zack@codesourcery.com>
1661
1662 * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
1663 constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
1664 jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
1665 jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
1666 parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
1667 Include coretypes.h and tm.h.
1668 * Make-lang.in: Update dependencies.
1669
d1aed877
KG
16702002-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1671
1672 * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
1673
b4bbc8b7
DN
16742002-11-25 Diego Novillo <dnovillo@redhat.com>
1675
1676 * jcf-reader.c: Don't expand JCF_readu4 inside the
1677 expansion of JCF_SKIP.
1678
4977bab6
ZW
16792002-11-25 Diego Novillo <dnovillo@redhat.com>
1680
1681 * jcf-reader.c: Don't expand JCF_readu4 inside the
1682 expansion of JCF_SKIP.
1683
dd06be9e
TT
16842002-11-22 Tom Tromey <tromey@redhat.com>
1685
1686 * parse.y (patch_binop): Cast right hand side of shift expression
1687 to `int'. Fixes PR java/8676.
1688
34744d4e
RM
16892002-11-22 Ranjit Mathew <rmathew@hotmail.com>
1690 Andrew Haley <aph@redhat.com>
1691
1692 * gcc/java/jcf-write.c (write_classfile): Remove target
1693 class file, if it exists, before renaming the temporary
1694 class file to it.
1695
f3226a90
JT
16962002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
1697
1698 * jvspec.c (lang_specific_spec_functions): New.
1699
5602b49d
TT
17002002-11-18 Tom Tromey <tromey@redhat.com>
1701
1702 Fix for PR java/7912:
1703 * expr.c (can_widen_reference_to): Allow cast of array to
1704 Cloneable or Serializable.
1705 * java-tree.h (java_lang_cloneable_identifier_node): Declare.
1706 (java_io_serializable_identifier_node): Likewise.
1707 * parse.y (java_lang_cloneable, java_io_serializable): Removed.
1708 (valid_ref_assignconv_cast_p): Use new identifier nodes.
1709 * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
1710 java_io_serializable.
1711 * decl.c (java_init_decl_processing): Initialize
1712 java_lang_cloneable_identifier_node and
1713 java_io_serializable_identifier_node.
1714 (java_lang_cloneable_identifier_node): New global.
1715 (java_io_serializable_identifier_node): Likewise.
1716
a92cb0c3
JMH
17172002-11-14 Jens-Michael Hoffmann <jensmh@gmx.de>
1718
1719 * buffer.c: Remove unnecessary casts.
1720 * check-init.c: Likewise.
1721 * class.c: Likewise.
1722 * constants.c: Likewise.
1723 * decl.c: Likewise.
1724 * except.c: Likewise.
1725 * gjavah.c: Likewise.
1726 * jcf-io.c: Likewise.
1727 * jcf-parse.c: Likewise.
1728 * jcf-path.c: Likewise.
1729 * jvspec.c: Likewise.
1730 * lang.c: Likewise.
1731 * lex.c: Likewise.
1732 * verify.c: Likewise.
1733
5bd717f1
TT
17342002-11-06 Tom Tromey <tromey@redhat.com>
1735
1736 * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
1737 a JNI header.
1738
c034b453
TT
17392002-11-05 Tom Tromey <tromey@redhat.com>
1740
1741 Fix for PR java/6388.
1742 * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
1743 * java-tree.h (enum java_tree_index): New values
1744 JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
1745 (decimal_int_max, decimal_long_max): New defines.
1746 * lex.c (yylex): Rewrote range checking. Sign extend literals.
1747 (error_if_numeric_overflow): Rewrote range checking.
1748 * decl.c (java_init_decl_processing): Initialize decimal_int_max,
1749 decimal_long_max.
1750
21140beb
TT
17512002-11-02 Tom Tromey <tromey@redhat.com>
1752
60b68525
TT
1753 * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
1754
21140beb
TT
1755 * class.c (make_method_value): Put class name, not signature, into
1756 `throws' field. For PR java/8415.
1757
3752ac08
TT
17582002-10-24 Tom Tromey <tromey@redhat.com>
1759
1760 * gcj.texi (Invoking gij): Document --showversion.
1761 (Standard Properties): java.library.path now set.
1762
0d3911c9
TT
17632002-10-23 Tom Tromey <tromey@redhat.com>
1764
1765 * gjavah.c (decode_signature_piece): In JNI mode, print
1766 `jobjectArray' when array depth is nonzero.
1767 Fixes PR java/8296.
1768
c1ddb5c8
AH
17692002-10-15 Andrew Haley <aph@redhat.com>
1770
1771 * parse.y (patch_invoke): Call force_evaluation_order on a static
1772 arg list.
1773 (resolve_qualified_expression_name): Call force_evaluation_order
1774 on a arg list that is part of a Qualified Expression Name.
1775
1776 * lang.c (dump_compound_expr): New.
1777 (java_dump_tree): New.
1778
63bb20d4
RM
17792002-10-20 Ranjit Mathew <rmathew@hotmail.com>
1780
1781 * gcj.texi: Added item describing the GCJ runtime property
1782 "gnu.gcj.progname".
1783
ba0bb02d
RH
17842002-10-15 Richard Henderson <rth@redhat.com>
1785
1786 * jcf-parse.c (get_constant): Fix type warning.
1787
dbd1e2d8
AH
17882002-10-15 Andrew Haley <aph@redhat.com>
1789
1790 * java-tree.h (java_inlining_merge_static_initializers): Declare.
1791 (java_inlining_map_static_initializers): Declare.
1792
3eb429b2
AH
17932002-10-14 Andrew Haley <aph@redhat.com>
1794
1795 * tree-inline.c (remap_block): All local class initialization
1796 flags go in the outermost scope.
1797 (expand_call_inline): Call java_inlining_map_static_initializers.
1798 (expand_call_inline): Call java_inlining_merge_static_initializers.
1799 * java/lang.c (merge_init_test_initialization): New.
1800 (java_inlining_merge_static_initializers): New.
1801 (inline_init_test_initialization): New.
1802 (java_inlining_map_static_initializers): New.
1803
37d2b7e2
MW
18042002-10-11 Mark Wielaard <mark@klomp.org>
1805
1806 * gcj.texi (Compatibility): Add Limitations and Extensions section.
1807
7bdfd72e
KG
18082002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1809
1810 * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
1811
c6449a1d
KG
18122002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1813
1814 * parse.y (merge_string_cste): Add parentheses around & within |.
1815
8f6d2e96
TT
18162002-10-08 Tom Tromey <tromey@redhat.com>
1817
1818 * parse.y (variable_declarator_id): Simplify error path for
1819 array declarator error. For PR java/8003.
1820
36624850
ZW
18212002-10-08 Zack Weinberg <zack@codesourcery.com>
1822
1823 * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
1824 bug_report_url.
1825
ce5bb293
AH
18262002-10-08 Andrew Haley <aph@redhat.com>
1827
1828 * parse.y (attach_init_test_initialization_flags): Check for
1829 error_mark_node.
1830
36624850 18312002-10-07 Anthony Green <green@redhat.com>
6a921942 1832
36624850 1833 * parse.y (merge_string_cste): Fix bug in string concatenation.
6a921942 1834
f42ee52f
MK
18352002-10-03 Michael Koch <konqueror@gmx.de>
1836
1837 * gcj.texi (Standard properties):
1838 Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
1839
f963b5d9
RS
18402002-10-02 Roger Sayle <roger@eyesopen.com>
1841
1842 PR optimization/6627
1843 * lang.c (java_init): If storing the vbit in function
1844 pointers, ensure that force_align_functions_log is atleast
1845 one to aid compatability with g++ vtables.
1846
6f7e9e94
NS
18472002-10-01 Nathan Sidwell <nathan@codesourcery.com>
1848
1849 * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
1850 foul of type-based aliasing.
1851
71dff728
AG
18522002-09-30 Anthony Green <green@redhat.com>
1853
1854 * gcj.texi (Invoking jv-scan): Fix texinfo.
1855
acc59b85
AG
18562002-09-28 Anthony Green <green@redhat.com>
1857
1858 * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
1859 (Code Generation): Add -fno-assert documentation.
1860 * jv-scan.c (flag_assert): New global.
1861 (options): Add assert option.
1862 (help): Add --no-assert documentation.
1863 * parse-scan.y (flag_assert): New global.
1864 * lang.c (lang_f_options): Add -fassert/-fno-assert support.
1865 (flag_assert): New global.
1866 * java-tree.h (flag_assert): New global.
1867 * lex.c (java_lex): Obey flag_assert.
1868 * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
1869 calling cc1.
1870
fc5295fa
AH
18712002-09-26 Andrew Haley <aph@redhat.com>
1872
1873 * expr.c (build_java_array_length_access): Check for null pointer.
1874 * expr.c (expand_java_arrayload): Likewise.
1875
aa2046c4
RH
18762002-09-21 Richard Henderson <rth@redhat.com>
1877
36624850 1878 * jcf-parse.c (get_constant): Decode from IEEE no matter
aa2046c4
RH
1879 what the target format.
1880
ee142fe7
KH
18812002-09-20 Kazu Hirata <kazu@cs.umass.edu>
1882
1883 * ChangeLog: Follow spelling conventions.
1884 * class.c: Likewise.
1885 * decl.c: Likewise.
1886 * expr.c: Likewise.
1887 * gjavah.c: Likewise.
1888 * java-tree.h: Likewise.
1889 * jcf-dump.c: Likewise.
1890 * jcf-parse.c: Likewise.
1891 * jvspec.c: Likewise.
1892 * lang.c: Likewise.
1893 * mangle.c: Likewise.
1894 * parse.y: Likewise.
1895
6a022513
TT
18962002-09-17 Tom Tromey <tromey@redhat.com>
1897
1898 * lex.c (java_read_unicode_collapsing_terminators): Handle case
1899 where \r appears at EOF. Fixes PR java/7950.
1900
4977bab6
ZW
19012002-09-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1902
1903 * jvspec.c (lang_specific_driver): Remove unused variable.
1904
36a5eadd
GK
19052002-09-16 Geoffrey Keating <geoffk@apple.com>
1906
1907 * java-tree.h (union lang_tree_node): Add chain_next option.
1908
efdc7e19
RH
19092002-09-16 Richard Henderson <rth@redhat.com>
1910
1911 * jcf-parse.c (get_constant): Runtime check for IEEE format;
1912 use new real.h interface.
1913 * jcf-write.c (find_constant_index): Use new real.h interface.
1914 * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
1915
6522685d
KH
19162002-09-15 Kazu Hirata <kazu@cs.umass.edu>
1917
25facd31 1918 * lang.c: Follow spelling conventions.
6522685d 1919
6e471ea7
PB
19202002-09-11 Per Bothner <per@bothner.com>
1921
1922 * parse.y (fold_constant_for_init): If a VAR_DECL, convert numerical
1923 constant to the type of the field.
1924 (java_complete_tree): Remove now-redundant code.
1925
1926 * parse.y (fold_constant_for_init): 'null' is not a constant expr.
1927
23114b69
JR
19282002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu>
1929
1930 For PR java/5794:
1931 * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
1932 return label if a ret instruction for the jsr has been reached.
1933
f724acb8
RM
19342002-09-09 Ranjit Mathew <rmathew@hotmail.com>
1935
1936 * parse.y (DIR_SEPARATOR): Don't define.
1937 (check_class_interface_creation): Use IS_DIR_SEPARATOR.
1938
b139fcfd
AH
19392002-08-28 Andrew Haley <aph@redhat.com>
1940
1941 * verify.c (verify_jvm_instructions): Allow exception handler
1942 inside code that is being protected, but generate a warning.
1943 * except.c (link_handler): Initialize `expanded' in new eh_range.
1944 (binding_depth, is_class_level, current_pc): Declare extern.
1945
f60518c8
MW
19462002-09-01 Mark Wielaard <mark@klomp.org>
1947
1948 * gcj.texi: Add chapter about system properties.
1949 Fixed some typos.
1950
83dd5fae
TT
19512002-08-26 Tom Tromey <tromey@redhat.com>
1952
1953 * parse.y (try_builtin_assignconv): Allow narrowing primitive
1954 conversion if RHS_TYPE is byte, short, or char.
1955
00a8b314
TT
19562002-08-22 Tom Tromey <tromey@redhat.com>
1957
1958 * gcj.texi (Invoking gij): Document -cp and -classpath.
1959
0d811e1a
TT
19602002-08-21 Tom Tromey <tromey@redhat.com>
1961
79a3cb18
TT
1962 * Make-lang.in (java/jcf-path.o): Use $(datadir), not
1963 $(prefix)/share. For PR libgcj/7633.
1964
0d811e1a
TT
1965 For PR java/6005 and PR java/7611:
1966 * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
1967 (java_can_use_bit_fields_p): New function.
1968
ca75573a
TT
19692002-08-16 Tom Tromey <tromey@redhat.com>
1970
1971 * gcj.texi (Class Initialization): Mention class initialization of
1972 arrays.
1973
7149627b
AH
19742002-07-30 Andrew Haley <aph@cambridge.redhat.com>
1975
1976 * Make-lang.in (java-tree-inline.o): New.
1977 (JAVA_OBJS): Add java-tree-inline.o.
1978 * parse.y (source_end_java_method): Call java_optimize_inline.
1979 (java_expand_method_bodies): Save method's tree in
1980 DECL_SAVED_TREE.
1981 (add_stmt_to_compound): Keep track of the number of statments.
1982 * lang.c (java_init): Enable flag_inline_trees.
1983 (java_post_options): If flag_inline_functions is on, enable
1984 flag_inline_trees instread.
1985 (decl_constant_value): New.
1986 (java_tree_inlining_walk_subtrees): New.
1987 * java-tree.h (DECL_NUM_STMTS): New macro.
1988 (java_optimize_inline): Declare.
1989 * expr.c (java_expand_expr): Allow a BLOCK to return a value.
1990 Handle a LABEL_EXPR.
1991 * decl.c (build_result_decl): If we already have a DECL_RESULT
1992 don't make another.
1993 (dump_function): New.
1994 (java_optimize_inline): New.
1995 (dump_function): New.
1996
ee1884cb
JR
19972002-08-13 Jesse Rosenstock <jmr@fulcrummicro.com>
1998
1999 For PR java/7483:
2000 * parse.y (build_assertion): Invert return from
2001 desiredAssertionStatus.
2002
097684ce
BM
20032002-08-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2004
36624850 2005 * jcf-write.c (get_access_flags): Return correct access flags for
097684ce
BM
2006 private and protected inner classes.
2007
22aa533e
NS
20082002-08-08 Nathan Sidwell <nathan@codesourcery.com>
2009
2010 * java/Make-lang.in (java.mostlyclean): Remove coverage files.
2011
b3426eb9
GK
20122002-08-05 Geoffrey Keating <geoffk@redhat.com>
2013
2014 * mangle_name.c: Don't include obstack.h twice.
2015 * xref.c: Don't include obstack.h.
2016
6d9f628e
GK
20172002-08-04 Geoffrey Keating <geoffk@redhat.com>
2018
2019 * class.c: (permanent_obstack): Delete declaration.
2020 * constants.c: (permanent_obstack): Delete declaration.
2021 * except.c: (permanent_obstack): Delete declaration.
2022 * expr.c: (permanent_obstack): Delete declaration.
2023 * jcf-parse.c: (permanent_obstack): Delete declaration.
2024 (saveable_obstack): Delete declaration.
2025 * parse.h: (permanent_obstack): Delete declaration.
2026 * typeck.c: (permanent_obstack): Delete declaration.
2027
d500c5d7
JM
20282002-08-04 Joseph S. Myers <jsm@polyomino.org.uk>
2029
2030 * gcj.texi (version-gcc): Increase to 3.3.
2031
e75abdab
TT
20322002-07-22 Tom Tromey <tromey@redhat.com>
2033
2034 * lex.c (java_lex): Check for `e' or `E' after 0.
2035
8943a0b4
RH
20362002-07-21 Richard Henderson <rth@redhat.com>
2037
2038 * lang.c (java_unsafe_for_reeval): New.
2039 (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
2040
2f8dd115
NB
20412002-07-21 Neil Booth <neil@daikokuya.co.uk>
2042
2043 * jcf-path.c (GET_ENV_PATH_LIST): Remove.
2044 (jcf_path_init): Use GET_ENVIRONMENT.
2045
c5358a5d
RS
20462002-07-10 Roger Sayle <roger@eyesopen.com>
2047 Zack Weinberg <zack@codesourcery.com>
2048
2049 * builtins.c (initialize_builtins): Remove defines that
2050 handled C/C++ specific junk hereby removed from builtins.def.
2051
5351f1ca
NB
20522002-07-07 Neil Booth <neil@daikokuya.co.uk>
2053
2054 * lang.c (java_post_options): Update prototype.
2055
df061a43
RS
20562002-07-05 Roger Sayle <roger@eyesopen.com>
2057
c5358a5d 2058 * builtins.c (initialize_builtins): Ignore the additional
df061a43
RS
2059 parameter to DEF_BUILTIN. Handle more C/C++ specific junk in
2060 the builtins.def file.
2061
68a830fe
TT
20622002-07-01 Tom Tromey <tromey@redhat.com>
2063
2064 For PR libgcj/7073:
2065 * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
2066 specially.
2067
6a2dd09a
RS
20682002-07-01 Roger Sayle <roger@eyesopen.com>
2069
2070 * java/decl.c (builtin_function): Accept additional parameter.
2071 (java_init_decl_processing): Pass an additional NULL_TREE
2072 argument to builtin_function.
2073
32c4621e
M
20742002-06-29 T.J. Mather <tjmather@maxmind.com>
2075
2076 * gcj.texi: Fixed gcj invocation example so that it compiles.
2077
bd466c7b
KG
20782002-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2079
57ddd19c
KG
2080 * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
2081 * parse.y (mark_parser_ctxt): Likewise.
33780b45
KG
2082 (check_modifiers, declare_local_variables): Avoid incorrect
2083 hardcoded constant 10.
57ddd19c 2084
bd466c7b
KG
2085 * lex.c (java_read_char): Avoid "comparison is always true"
2086 warning.
2087
b6532e57
AS
20882002-06-25 Andreas Schwab <schwab@suse.de>
2089
2090 * expr.c (JSR): Avoid undefined operation on PC.
2091
eb6b51b9
KG
20922002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2093
2094 * decl.c (clear_binding_level): Const-ify.
2095
6d61f1bd
AD
20962002-06-13 Akim Demaille <akim@epita.fr>
2097
2098 * parse.y (class_declaration, interface_declaration): Make sure
2099 all their rules have an action, in order to avoid meaningless `$$
2100 = $1' and their type clashes.
2101
c6226a7e
TT
21022002-06-11 Tom Tromey <tromey@redhat.com>
2103
2104 * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
2105 * parse-scan.y (statement_without_trailing_substatement): Added
2106 assert_statement.
2107 (assert_statement): New rule.
2108 * java-tree.h (struct lang_type) [assertions]: New field.
2109 (TYPE_USES_ASSERTIONS): New macro.
2110 (CLASS_USES_ASSERTIONS): Likewise.
2111 (FIELD_SYNTHETIC): New define.
2112 * lex.c (java_lval;): Added ASSERT_TK.
2113 * parse.y (ASSERT_TK): Added.
2114 (statement_without_trailing_substatement): Added assert_statement.
2115 (assert_statement): New rule.
2116 (build_assertion): New function.
2117 (maybe_generate_pre_expand_clinit): Create and initialize
2118 $assertionsDisabled.
2119 (lookup_package_type): Removed decl.
2120 * keyword.h: Rebuilt.
2121 * keyword.gperf (assert): New token.
2122
e35b68b0
AD
21232002-06-10 Akim Demaille <akim@epita.fr>
2124
2125 * parse.y (interface_type_list, class_member_declaration)
2126 (unary_expression_not_plus_minus): Remove duplicate %type.
2127 Whitespace changes.
2128
950ac1d3
TT
21292002-06-09 Tom Tromey <tromey@redhat.com>
2130
ac57655a
TT
2131 * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
2132
950ac1d3
TT
2133 * parse.y (method_header): Give error message in all cases.
2134 Fixes PR java/6865.
2135
36d010ca
BM
21362002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2137
2138 Don't use RTL inlining. Fix for PR java/6820.
2139 * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
2140 (flag_really_inline): New.
2141 (java_decode_option): Set flag_really_inline if -finline-functions
2142 is seen.
2143 (java_post_options): New function. Turn off inlining unless
2144 flag_really_inline is set.
2145
64e68197
BM
21462002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2147
36624850 2148 * gjavah.c (throwable_p): Accept argument as either a classname or
64e68197
BM
2149 signature fragment. Create null-terminated classname string for super
2150 when calling itself recursively.
36624850 2151 (decode_signature_piece): Skip first character from class name
64e68197
BM
2152 signature when calling throwable_p.
2153
c238d806
L
21542002-06-08 H.J. Lu (hjl@gnu.org)
2155
2156 * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
2157
f06cafdf
TT
21582002-06-04 Tom Tromey <tromey@redhat.com>
2159
2160 * jcf-write.c (perform_relocations): Optmize a goto to a goto.
2161
0bb5f0e4
MK
21622002-06-04 Michael Koch <konqueror@gmx.de>
2163
2164 * gcj.texi (Input Options): Fixed typo.
2165
c02ebb18
ZW
21662002-06-04 Zack Weinberg <zack@codesourcery.com>
2167
2168 * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
2169 typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
2170 all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
2171 and all now-pointless local variables. Rename other local
2172 variables to reflect their not being handles.
2173
2174 * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
2175 #if JCF_USE_STDIO blocks.
2176
2177 * parse.y: Add missing semicolon at end of rule.
2178
e2500fed
GK
21792002-06-03 Geoffrey Keating <geoffk@redhat.com>
2180
2181 * check-init.c (attach_initialized_static_class): Delete, unused.
2182 * parse.y: Use htab_t instead of struct hashtable, update
2183 all uses.
2184 * java-tree.h: Include hashtab.h instead of hash.h.
2185 (struct lang_decl_func): Use htab_t, set up for gengtype.
2186 (struct init_test_hash_entry): Delete.
2187 (struct treetreehash_entry): New.
c02ebb18 2188 (java_treetreehash_find): New
e2500fed
GK
2189 (java_treetreehash_new): New prototype.
2190 (java_treetreehash_create): New prototype.
2191 (java_mark_tree): Delete prototype.
2192 (java_hash_hash_tree_node): Delete prototype.
2193 (java_hash_compare_tree_node): Delete prototype.
2194 (attach_initialized_static_class): Delete prototype.
2195 * expr.c (build_class_init): Update to use java_treetreehash
2196 functions.
2197 (java_expand_expr): Update to use htab_t.
2198 (emit_init_test_initialization): Likewise.
2199 * decl.c (java_mark_tree): Delete.
2200 * class.c (init_test_hash_newfunc): Delete.
2201 (java_hash_hash_tree_node): Delete.
2202 (java_hash_compare_tree_node): Delete.
2203 (add_method_1): Update to use java_treetreehash functions.
2204 (JAVA_TREEHASHHASH_H): New macro.
2205 (java_treetreehash_hash): New function.
2206 (java_treetreehash_compare): New function.
2207 (java_treetreehash_find): New function.
2208 (java_treetreehash_new): New function.
2209 (java_treetreehash_create): New function.
2210 * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
2211
2212 * Make-lang.in (java/parse.o): Depend on debug.h.
2213 * java-tree.h (struct lang_identifier): Use gengtype.
2214 (union lang_tree_node): New.
2215 (struct lang_decl_func): Use gengtype.
2216 (struct lang_decl_var): Likewise.
2217 (struct lang_decl): Likewise.
2218 * parse.y: Include debug.h.
2219 * lang.c (LANG_HOOKS_MARK_TREE): Delete.
2220
2221 * lang.c (struct language_function): New dummy structure.
2222
2223 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
2224 descriminator for DECL_LANG_SPECIFIC.
2225 (struct lang_decl_func): Rename from struct lang_decl.
2226 (enum lang_decl_desc): New.
2227 (struct lang_decl): Make it a union. Update all the accessor macros.
2228 (struct lang_type): Use gengtype.
2229 * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
2230 * decl.c (java_dup_lang_specific_decl): All lang_decl structures
2231 are now the same size.
2232 (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
2233 use discriminator to mark DECL_LANG_SPECIFIC.
2234
2235 * Make-lang.in (gt-java-builtins.h): New rule.
2236 (java/builtins.o): Add dependency on gt-<filename>.h.
2237 * builtins.c: Use gengtype for roots.
2238 (union string_or_tree): Use gengtype.
2239 (struct builtin_record): Use gengtype.
2240 * config-lang.in (gtfiles): Add builtins.c.
2241
2242 * Make-lang.in (gt-java-class.h, gt-java-constants.h,
2243 gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
2244 gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
2245 gt-java-parse.h, gtype-java.h): Add rules to generate.
2246 (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
2247 (class.o): Add dependency on gt-*.h.
2248 (constants.o): Likewise.
2249 (decl.o): Likewise.
2250 (expr.o): Likewise.
2251 (jcf-parse.o): Likewise.
2252 (jcf-write.o): Likewise.
2253 (lang.o): Likewise.
2254 * config-lang.in (gtfiles): New.
2255 * class.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
2256 * constants.c: Replace uses of ggc_add_* with GTY markers.
2257 Include gt-*.h.
2258 * decl.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
2259 * expr.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
2260 * java-tree.h: Replace uses of ggc_add_* with GTY markers.
2261 * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
2262 Include gt-*.h.
2263 * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
2264 Include gt-*.h.
2265 * lang.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
2266 * mangle.c: Replace uses of ggc_add_* with GTY markers. Include
2267 gt-*.h.
2268 * parse.y: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
2269 Include gtype-java.h.
2270
c442c002
TT
22712002-06-02 Tom Tromey <tromey@redhat.com>
2272
2273 Fix for PR java/5913:
2274 * parse.y (patch_binop): Call patch_string on op1.
2275
48711f4d
TT
22762002-06-02 Tom Tromey <tromey@redhat.com>
2277
2278 Fix for PR java/1343, PR java/6336:
2279 * parse.y (make_nested_class_name): Remove extraneous `else'; fix
2280 formatting. Changed return type.
2281 (anonymous_class_counter): Moved to top of file.
2282 (maybe_make_nested_class_name): Append number to class name for
2283 function-local classes.
2284
11ad4784
ZW
22852002-05-28 Zack Weinberg <zack@codesourcery.com>
2286
2287 * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
2288 * Make-lang.in: Update dependency lists.
2289
a15135c9
MM
22902002-05-18 Mark Mitchell <mark@codesourcery.com>
2291
2292 * gjavah.c (throwable_p): Do not free the name of the class after
2293 passing it to find_class.
2294 * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
2295 * jcf-io.c (dirent.h): Include it.
2296 (fnmatch.h): Likewise.
2297 (compare_path): New function.
2298 (java_or_class_file): Likewise.
2299 (memoized_dirlist_entry): New type.
2300 (memoized_dirlist_lookup_eq): New function.
2301 (memoized_dirlists): New variable.
2302 (caching_stat): New function.
2303 (memoized_class_lookup_eq): New function.
2304 (memoized_class_lookups): Likewise.
2305 (find_class): Use memoized_class_lookups and caching_stat.
2306 * jcf.h (JCF_USE_SCANDIR): Define.
2307 * parse.y (java_expand_classes): Write the class files in reverse
2308 order.
c02ebb18 2309
1e6347d8
RO
23102002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2311
2312 * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
2313
2f9a2cd7
MM
23142002-05-13 Mark Mitchell <mark@codesourcery.com>
2315
2316 * jcf-write.c (write_classfile): Unlink the temporary file if it
2317 cannot be renamed. Use concat to build up the name of the
2318 temporary file.
2319
281524f4
MM
23202002-05-08 Mark Mitchell <mark@codesourcery.com>
2321
c02ebb18 2322 * jcf-write.c (write_classfile): Write the file to a
281524f4
MM
2323 temporary file and then rename it.
2324
6b9b5de2
TT
23252002-05-07 Tom Tromey <tromey@redhat.com>
2326
5643bb97
TT
2327 * gjavah.c (throwable_p): Use xstrdup, not strdup.
2328
6b9b5de2
TT
2329 Fix for PR java/1200:
2330 * gjavah.c (throwable_p): New function.
2331 (decode_signature_piece): Use it. A `WeakReference' isn't the
2332 same as a `jweak'.
2333 Include hashtab.h.
2334 (gcjh_streq): New function.
2335
2c7e9098
AJ
23362002-05-07 Andreas Jaeger <aj@suse.de>
2337
c02ebb18 2338 * parse.y (finish_for_loop): Fix if statement.
2c7e9098 2339
486e8c0c
TT
23402002-05-06 Tom Tromey <tromey@redhat.com>
2341
2342 Fix for PR java/5941:
2343 * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
2344 loop update expression.
2345 (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
2346 * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
2347
30b50f90
MW
23482002-05-04 Mark Wielaard <mark@klomp.org>
2349
2350 For PR java/6519:
2351 * parse.y (build_string_concatenation): Return just op1 only when op2
2352 is null and op1 is a STRING_CST, otherwise always construct a
2353 StringBuffer.
2354
0a32c5ea
TT
23552002-04-27 Tom Tromey <tromey@redhat.com>
2356
2357 For PR java/6382:
2358 * parse.y (string_convert_int_cst): New function.
2359 (merge_string_cste): Use it.
2360
ff45c01e
NB
23612002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
2362
2363 * java-tree.h (java_parse_file): Update.
2364 (java_set_yydebug): Remove.
2365 * jcf-parse.c (yydebug): Remove.
2366 (java_set_yydebug): Die.
2367 (java_parse_file): Update.
2368 * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
2369
9127b2da
TT
23702002-04-24 Tom Tromey <tromey@redhat.com>
2371
2372 For PR java/6425:
2373 * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
2374 EXPR_WFL_QUALIFICATION of qual_wfl.
2375
67f0a6bf
PB
23762002-04-23 Per Bothner <per@bothner.com>
2377
2378 * expr.c (PRE_JSR): Call NOTE_LABEL for return address.
2379 * java-tree.h (BCODE_RETURN_TARGET): Removed - never set.
2380 (BCODE_TARGET): Remove BCODE_RETURN_TARGET.
2381
3d3707c1
TT
23822002-04-23 Tom Tromey <tromey@redhat.com>
2383
2384 For PR java/6314:
2385 * jvspec.c (lang_specific_driver): Use --resource, not -R. Also
2386 recognize `-fcompile-resource='.
2387 * gcj.texi (Invoking gcj): Use --resource, not -R. Expanded text
2388 a bit.
2389
920f81e7
APB
23902002-04-22 Alexandre Petit-Bianco <apbianco@redhat.com>
2391
2392 * jcf-parse.c: (yyparse): Don't prepend "./" to relative
2393 paths. Fixes PR java/2791.
2394
a2761d68
AH
23952002-04-19 Andrew Haley <aph@redhat.com>
2396
c02ebb18
ZW
2397 * jcf-write.c (push_long_const): lo, hi: New variables.
2398 Use rshift_double to extract the high part of a 64-bit long.
2399 Use WORD_TO_INT to extract the low part.
a2761d68 2400
c02ebb18
ZW
2401 * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
2402 HOST_WIDE_INT for num. Use JPOOL_UINT to get it.
2403 CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
a2761d68 2404
7a228918
NB
24052002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
2406
2407 * typeck.c (incomplete_type_error): Remove.
2408
b798d8b6
BM
24092002-04-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2410
2411 * class.c (make_class_data): Set DECL_ALIGN on static class data,
2412 for hash synchronization.
2413 * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
2414 * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
2415 class_type_node.
2416
1cde1d05
MW
24172002-04-16 Mark Wielaard <mark@klomp.org>
2418
2419 * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
2420 negative zero.
2421
3020a7f5
BM
24222002-04-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2423
2424 Fix for PR java/6294:
2425 * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
2426 interfaces.
2c7e9098 2427
10aa83c7
BM
24282002-04-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2429
2430 Fix for PR java/6085:
2431 * parse.y (patch_method_invocation): Always use build_access_to_thisn
2432 to get enclosing "this" argument for inner-class constructor
2433 invocation. Pass correct arguments to build_access_to_thisn.
2434
9fef1fe3
AG
24352002-04-10 Andreas Jaeger <aj@suse.de>
2436
2437 * gcj.texi (Input Options): Fix extdirs patch.
2438
24392002-04-10 Anthony Green <green@redhat.com>
2440
2441 * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
2442
24432002-04-09 Anthony Green <green@redhat.com>
2444
2445 * gcj.texi (Input Options): Add --extdirs documentation.
2446 * jcf-dump.c (OPT_extdirs): New macro.
2447 (options): Add extdirs option.
2448 (help): Describe --extdirs.
2449 (main): Handle OPT_extdirs.
2450 * gjavah.c (OPT_extdirs): New macro.
2451 (options): Add extdirs option.
2452 (help): Describe --extdirs.
2453 (main): Handle OPT_extdirs.
2454 * jcf-path.c (jcf_path_init): Add extdirs support.
2455 (jcf_path_extdirs_arg): New function.
2456 (extensions): New variable to hold extensions path entries.
2457 * jvspec.c: Remove -fextdirs= when compiling main().
2458 * lang.c (java_decode_option): Handle -fextdirs=.
2459 * jcf.h (jcf_path_extdirs_arg): Declare new function.
2460 * Make-lang.in: Compile jcf-path with version info for use in
2461 identifying the appropriate libgcj.jar.
2462
66133721
TT
24632002-04-08 Tom Tromey <tromey@redhat.com>
2464
2465 For PR libgcj/5303:
2466 * .cvsignore: Added rmic.1 and rmiregistry.1.
2467 * gcj.texi (Top): Link to new nodes.
2468 (Invoking rmic): New node.
2469 (Invoking rmiregistry): Likewise.
2470 * Make-lang.in (java.generated-manpages): Added rmic.1 and
2471 rmiregistry.1.
2472 (java.maintainer-clean): Likewise.
2473 ($(srcdir)/java/rmic.1): New target.
2474 ($(srcdir)/java/rmiregistry.1): Likewise.
2475 (java.install-man): Handle rmic.1 and rmiregistry.1.
2476
00b224f8
BM
24772002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2478
2479 * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
2480 Add note about handling uncaught exceptions. Add an exception handler
2481 to example.
2482
0b055ea1
BM
24832002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2484
2485 * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
2486 after using it to patch CALL_EXPR.
2487
92c76eba
BM
24882002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2489
2490 * gcj.texi (Invocation): Document CNI invocation API.
2491
78ef5b89
NB
24922002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
2493
2494 * expr.c (truthvalue_conversion): Rename. Update.
2495 (expand_compare): Update.
2496 * java-tree.h (java_truthvalue_conversion): New.
2497 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
2498
dffd7eb6
NB
24992002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
2500
2501 * java-tree.h (java_mark_addressable): New.
2502 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
2503 * typeck.c (mark_addressable): Rename, update.
2504
ceef8ce4
NB
25052002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
2506
2507 * expr.c (build_java_binop): Update.
2508 * java-tree.h (java_signed_type, java_unsigned_type,
2509 java_signed_or_unsigned_type): Update.
2510 * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
2511 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
2512 * parse.y (patch_binop): Update.
2513 * typeck.c (signed_or_unsigned_type, unsigned_type,
2514 signed_type): Update.
2515
7cb32822
NB
25162002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
2517
2518 * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
2519 (java_dummy_print): Remove.
2520 (lang_print_error): Rename. Exit early if inhibiting output.
2521 (inhibit_error_printing_function): New.
2522 (java_init): Don't set hook.
2523 (lang_init_source): Use new boolean.
2524
5bebbee7
MK
25252002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
2526
2527 * parse.y (do_resolve_class): Fix infinite recursion.
2528
bce54832
TT
25292002-03-29 Tom Tromey <tromey@redhat.com>
2530
2531 * parse.y (check_inner_circular_reference): Ignore incomplete
2532 types.
2533
b0c48229
NB
25342002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
2535
2536 * Make-lang.in (builtins.o): Update.
2537 * boehm.c (get_boehm_type_descriptor): Update.
2538 * builtins.c: Include langhooks.h.
2539 * decl.c (java_init_decl_processing): Update.
2540 * java-tree.h (java_type_for_mode, java_type_for_size): New.
2541 * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
2542 Redefine.
2543 * typeck.c (type_for_mode, type_for_size): Update.
2544
5843e870
MK
25452002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
2546
2547 * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
2548
073681c5
TT
25492002-03-28 Tom Tromey <tromey@redhat.com>
2550
2551 * except.c (expand_end_java_handler): If the handler type is NULL,
2552 use java.lang.Throwable. Fixes PR java/5986.
2553
242747e5
APB
25542002-03-28 Alexandre Petit-Bianco <apbianco@redhat.com>
2555
2556 Fix for PR java/4715:
2557 * jcf-parse.c (parse_source_file_3): New function.
2558 (read_class): Call it.
2559 (java_parse_file): Likewise.
2560
62c9aa5f 25612002-03-28 Jan Hubicka <jh@suse.cz>
f5eb5fd0
JH
2562
2563 * java/lang.c (java_init_options): Set flag_trapping_math to 0.
2564
c187b20e
BM
25652002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2566
2567 * parse.y (resolve_package): Initialize "decl".
2568 (lookup_package_type): Remove unused function.
2569
2f418289
BM
25702002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2571
2572 Fix for PR java/5993:
2573 * parse.y (resolve_package): Return the decl if resolution was
2c7e9098 2574 successful. Don't special case "java.lang" and "java.lang.reflect"
2f418289
BM
2575 packages. Set type_name to the merged identifier.
2576 (resolved_qualified_expression_name): Print error using "name" if
2577 resolve_package returns NULL_TREE.
2578
39bea374
TT
25792002-03-27 Tom Tromey <tromey@redhat.com>
2580
2581 * expr.c (expand_invoke): Don't generate null pointer check if
2582 we're calling <init>.
2583
c9d892a8
NB
25842002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
2585
2586 * expr.c (java_lang_expand_expr): Rename java_expand_expr,
2587 fix prototype.
2588 * java-tree.h (java_lang_expand_expr): Similarly.
2589 * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2590 (java_init): Don't set hook.
2591
05833095
BM
25922002-03-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2593
2594 Fix for PR java/5850:
2595 * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
2596 context if field was not found in the current scope.
2597 * expr.c (lookup_field): Don't look in enclosing contexts.
2598
c8c21a8c
TT
25992002-03-26 Tom Tromey <tromey@redhat.com>
2600
2601 Fix for PR java/5942:
2602 * parse.y (init_src_parse): Added sanity check.
2603 * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
2604 elements, not 11.
2605
4f0ade92
NB
26062002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
2607
2608 * decl.c (lang_mark_tree): Rename java_mark_tree.
2609 * java-tree.h (java_mark_tree): New.
2610 * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2611
15e5ad76
ZW
26122002-03-25 Zack Weinberg <zack@codesourcery.com>
2613
2614 * lex.c: Change java_perform_atof to take normal parameters
2615 instead of a pointer to a parameter block. Call it directly
2616 from java_lex.
2617
caaabaa1
MW
26182002-03-22 Mark Wielaard <mark@klomp.org>
2619
2620 Fix for PR java/5368:
2621 * parse.y (resolve_qualified_expression_name): Use decl not field_decl
2622 when printing error message.
2623
c88770e9
NB
26242002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
2625
2626 * decl.c (maybe_build_cleanup): Remove.
2627
c58408bf
TT
26282002-03-22 Tom Tromey <tromey@redhat.com>
2629
2630 Andrew Haley <aph@cambridge.redhat.com>
2631
2632 * expr.c (build_field_ref): Don't build a check if the field is a
2633 member of `this'.
2634
6c18d181
EB
26352002-03-21 Eric Blake <ebb9@email.byu.edu>
2636
2637 Fix for PR java/6026:
2638 * lex.c (java_lex): Fix parsing of consecutive floats.
2639
a5778545
TT
26402002-03-21 Tom Tromey <tromey@redhat.com>
2641
2642 * parse.y (build_access_to_thisn): Stop when FROM is not an inner
2643 class.
2644
43577e6b
NB
26452002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
2646
2647 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
2648 insert_block, getdecls, kept_level_p, global_bindings_p): New.
2649
fe911510
NF
26502002-03-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
2651
2c7e9098 2652 * gcj.texi: @code{gcj} becomes @command{gcj}.
15e5ad76
ZW
2653 @code{gcc} becomes @command{gcc}.
2654 GcjRaw changed to gnu.gcc.RawData.
2655
7afff7cf
NB
26562002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
2657
2658 * decl.c (start_java_method): Use new hook.
2659 * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
2660 (java_init): Remove old hook.
2661
c2d8e20a
APB
26622002-03-18 Alexandre Petit-Bianco <apbianco@redhat.com>
2663
2664 * builtins.c (define_builtin): Do nothing if `type' is null.
2665 Fixes PR java/5876.
2666
6befbee5
BM
26672002-03-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2668
2669 * parse.y (parser_check_super_interface): Fix error message
2670 grammar/order.
2671
320c81a6
KG
26722002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2673
2674 * jcf-parse.c (get_constant): Delete unused variables.
2675
52dabb6c
NB
26762002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
2677
2678 * java-tree.h (java_parse_file): New.
2679 * jcf-parse.c (yyparse): Rename java_parse_file.
2680 * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
2681
568d1435
BM
26822002-03-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2683
2684 * parse.y (craft_constructor): Return the constructor decl.
2685 (java_expand_classes): Update comments.
2686 (lookup_method_invoke): Call fix_constructors immediately for
2687 anonymous class. Fixes PR java/5935.
2688
8d39b447
AG
26892002-03-15 Anthony Green <green@redhat.com>
2690
2691 * jcf-parse.c (yyparse): Don't emit class registration
2692 constructor when compiling resource files.
2693
2f9834e8
KG
26942002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2695
2696 * lang.c (java_tree_code_type, java_tree_code_length,
2697 tree_code_name): Delete.
2698 (tree_code_type, tree_code_length, tree_code_name): Define.
2699 (java_init): Don't try to copy into the various tree_code
2700 arrays.
2701
f792bce5
TT
27022002-03-12 Tom Tromey <tromey@redhat.com>
2703
8a611251
TT
2704 * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
2705 UTF-8, not UCS-2. Fixes PR java/5923.
2706
f792bce5
TT
2707 * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
2708 a call_expr wrapped in a convert. Fixes PR java/5848.
2709
acf8bc25
BM
27102002-03-12 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2711
2712 * jcf-write.c (write_classfile): Improve error strings.
2713
e0b1c206
EB
27142002-03-11 Eric Blake <ebb9@email.byu.edu>
2715
2716 * lex.c: Adjust comments to GNU standards.
2717
27182002-03-11 Eric Blake <ebb9@email.byu.edu>
2719
2720 Fix for PR java/5902:
2721 * lex.c (java_lex): Fix parsing of literals.
2722
884523df
BM
27232002-03-11 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2724
2725 * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
2726 to prevent it getting evaluated twice in the store checking case.
2727 * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
2728 examining OBJECT.
2729
45597167
BM
27302002-03-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2731
2732 * decl.c (java_init_decl_processing): Make sure class_type_node
2733 alignment is not less than 64 bits if hash synchronization is enabled.
2734
edcc88c1
PB
27352002-03-08 Per Bothner <per@bothner.com>
2736
2737 * parse.y (java_complete_lhs): Check if patch_assignment
2738 returned an error-mark.
2739
2740 * parse.y (try_builtin_assignconv): Don't special-case zero.
2741
5295f849
PB
27422002-03-08 Per Bothner <per@bothner.com>
2743
2744 Fix for PR java/5812.
2745 * expr.c (build_java_jsr): Take pc arguments, and do lookup_label
be3ac45e 2746 here instead of in JSR macro. Likewise with load_type_state call.
5295f849 2747 Do the latter on if the return_pc has been verified (the jsr returns).
be3ac45e 2748 (JSR): Now just call build_java_jsr.
5295f849 2749
d3e1c36d
JS
27502002-03-07 Jeff Sturm <jsturm@one-point.com>
2751
2752 * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
2753 (java.install-common): Link native driver to
2754 JAVA_TARGET_INSTALL_NAME.
2755
6d6b5cd7
DB
27562002-03-05 David Billinghurst <David.Billinghurst@riotinto.com>
2757
2758 * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
2759 * builtins.c(sin_builtin): Likewise
2760 * builtins.c(sqrt_builtin): Likewise
2761
ba31d94e
ZW
27622002-03-03 Zack Weinberg <zack@codesourcery.com>
2763
2764 * java/expr.c, java/jcf-parse.c, java/lex.c:
2765 Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
2766 REAL_ARITHMETIC blocks unconditional. Delete some further
2767 #ifdef blocks predicated on REAL_ARITHMETIC.
2768
ca7558fc
KG
27692002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2770
2771 * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
2772 explicit sizeof/sizeof.
2773 * decl.c (java_init_decl_processing): Likewise.
2774 * jcf-parse.c (init_jcf_parse): Likewise.
2775 * parse.y (init_src_parse): Likewise.
2776
2a85660d
PB
27772002-03-02 Per Bothner <per@bothner.com>
2778
2779 Make --CLASSPATH by a synonym for --classpath and -classpath.
2780 Implement --bootclasspath.
2781 * jcf-path.c (classpath_u): Rename static variable to classpath_user.
2782 (classpath_l): Remove.
2783 (jcf_path_CLASSPATH_arg): Remove.
2784 (jcf_path_bootclasspath_arg): New function.
2785 (jcf_path_seal): Simplify accordingly.
2786
2787 * jcf.h (jcf_path_bootclasspath_arg): New declarations.
2788 (jcf_path_CLASSPATH): Remove declaration.
2789 * jvspec.c (jvgenmain_spec): Also accept -fbootclasspath*.
2790 (lang_specific_driver): Translate -bootclasspath.
2791 * lang-options.h: Add --bootclasspath. Update --CLASSPATH.
2792 * lang.c (decode_lang_options): Do jcf_path_init first.
2793 Handle -fCLASSPATH same as -fclasspath. Also process -fbootclasspath.
2794 * gjavah.c: Also handle --bootclasspath.
2795 Handle --CLASSPATH as a synonum for --classpath.
2796 * jcf-dump.c: Likewise.
2797
2798 "." is not part of system path, but is the default for --classpath.
2799 * jcf-path.c (jcf_path_init): Don't add "." to sys_dirs.
2800 (jcf_path_seal): Add "." if no CLASSPATH specified.
2801
2802 * gcj.texi: Document changes.
2803
2060fd4c
BM
28042002-03-01 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2805
2806 * expr.c (build_java_arraystore_check): Fix formatting.
2807
4f647d52
APB
28082002-02-28 Alexandre Petit-Bianco <apbianco@redhat.com>
2809
2810 Fix for PR java/5758, java/5632:
2811 * jcf-parse.c (load_class): Renamed local variable, consider `.' an
2812 inner-class separator too.
2813 * parse.y (do_resolve_class): New local `decl_result.'
2814 Progressively build a name for what can have been loaded.
2815
022dcc46
BM
28162002-02-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2817
2818 * expr.c (java_array_data_offset): Removed function.
2819 (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
2820 (build_java_array_length_access): Obtain "length" value using a
2821 COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
2822 (build_java_arrayaccess): Correct comment. Access "data" using a
2823 COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
2824 (build_java_arraystore_check): New function.
2825 (expand_java_arraystore): Use build_java_arraystore_check.
2826 * parse.y (patch_assignment): Simplify code to insert a store check
2827 when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
2828 * check-init.c (check_init): Update to reflect that an array length
2829 access is now a COMPONENT_REF.
2830 * gcj.texi (Code Generation): Improve documentation of
2831 -fno-bounds-check. Add documentation for -fno-store-check.
2832 * java-tree.h (flag_store_check): Declare.
2833 (build_java_arraystore_check): Declare.
2834 * lang.c (flag_store_check): Initialize to 1.
2835 (lang_f_options): Add store-check option.
2836 * jvspec.c: Don't pass store-check option to jvgenmain.
2837 * lang-options.h: Add help string for -fno-store-check.
2838
63e1b1c4
NB
28392002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
2840
2841 * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
2842 * java-tree.h (java_dup_lang_specific_decl): New.
2843 * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
2844
f458d1d5
ZW
28452002-02-27 Zack Weinberg <zack@codesourcery.com>
2846
2847 * builtins.c, decl.c: Delete traditional-mode-related code
2848 copied from the C front end but not used, or used only to
2849 permit the compiler to link.
2850
d2fb5329
TT
28512002-02-22 Tom Tromey <tromey@redhat.com>
2852
2853 Fix for PR java/2369:
2854 * jvspec.c (verify_class_name): New function.
2855 (lang_specific_driver): Call it.
2856 (JAVA_START_CHAR_P): New macro.
2857 (JAVA_PART_CHAR_P): Likewise.
2858
dcb36804
PB
28592002-02-22 Per Bothner <per@bothner.com>
2860
022dcc46 2861 * class.c: Change vtable to be more compatible with g++ v3 abi.
dcb36804
PB
2862 (get_dispatch_table): Prepend offset-to-top (always 0) and
2863 type_info pointer (currently unimplemented hence NULL) to vtable.
2864 Specifically, prepend offset-to-top and typeinfo ptr (currently null).
2865 (make_class_data): Variable dtable_start_offset is sizeof 2 pointers.
2866 Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
2867 (build_dtable_decl): Add declarations for new fields.
2868
453c182f
PB
28692002-02-20 Per Bothner <per@bothner.com>
2870
2871 * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
2872 to finit$ (otherwise generate_bytecode_insns drops it). However, we
2873 don't need to set it on the COMPOUND_EXPR - the caller does that.
2874
3babb2e3
NF
28752002-02-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
2876
15e5ad76
ZW
2877 * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
2878 `--CLASSPATH' becomes `--classpath.'
2879 * gjavah.c: Likewise.
2880 * jcf-dump.c: Likewise.
2881 * lang-options.h: Likewise.
2882 * lang.c: Likewise.
2883 * jcf-path.c: Updated comment.
2884 (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
2885 (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
2886 * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
2887 (jcf_path_CLASSPATH_arg): Ditto.
2888 (classpath_u): Updated leading comment.
3babb2e3 2889
9fe2cc05
PB
28902002-02-20 Per Bothner <per@bothner.com>
2891
2892 * builtins.c (check_for_builtin): New function.
2893 (build_call_or_builtin): Remove.
2894 * java-tree.h: Update accordingly.
2895 * expr.c (expand_invoke): Use build + check_for_builtin instead
2896 of build_call_or_builtin.
2897 * parse.y (patch_invoke): Likewise. This avoids needlessly creating
2898 a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
2899 flag (which had caused jcf-write to incorrectly emit invokevirtual).
2900
6b6294f1
TT
29012002-02-17 Tom Tromey <tromey@redhat.com>
2902
2903 * java-tree.h (TYPE_STRICTFP): New macro.
2904 (struct lang_type) [strictfp]: New field.
2905 (CLASS_STRICTFP): New macro.
2906 (METHOD_STRICTFP): New macro.
2907 (struct lang_decl) [strictfp]: New field.
2908 * parse.y (method_header): Disallow strictfp constructor or
2909 abstract method.
2910 (STRICT_TK): Move before MODIFIER_TK.
2911 * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
2912 (METHOD_MODIFIERS): Likewise.
2913 (INTERFACE_MODIFIERS): Likewise.
2914 * jcf-write.c (get_access_flags): Likewise.
2915 * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
2916 (add_method_1): Likewise.
2917 (get_access_flags_from_decl): Likewise.
2918 * jcf-dump.c (print_access_flags): Print in standard order. Also,
2919 recognize strictfp flag.
2920 * jcf.h (ACC_STRICT): New define.
2921
5667c33d
DB
29222002-02-12 David Billinghurst <Davod.Billinghurst@riotinto.com>
2923
2924 * class.c(build_utf8_ref): Move declaration of decl_size
2925
5d65aeb7
TT
29262002-02-07 Tom Tromey <tromey@redhat.com>
2927
2928 * gcj.texi (Input Options): --CLASSPATH does not suppress system
2929 path.
2930
10c45943
AG
29312002-02-04 Anthony Green <green@redhat.com>
2932
2933 * class.c (build_utf8_ref): Put UTF-8 constants into merged
2934 sections if available.
2935
14b71055
BM
29362002-02-04 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2937
2938 * parse.y (java_expand_classes): Fix typo in static field loop.
2939
f0c75752
RH
29402002-02-02 Richard Henderson <rth@redhat.com>
2941
2942 * class.c (add_field): Mark static fields external.
2943 (build_class_ref): Remove redundant set.
2944 * parse.y (java_expand_classes): Mark static fields of classes
2945 to be compiled as local.
2946 * jcf-parse.c (parse_class_file): Likewise.
2947
d4ad1c90
NF
29482002-02-02 Nic Ferrier <nferrier@tapsellferrier.co.uk>
2949
2950 * gcj.texi (About CNI): New node.
2951
58fae3f7
CR
29522002-02-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
2953
2954 PR java/5080
2955 * jcf-parse.c : Check for HAVE_LOCALE_H before using
2956 setlocale() with LC_CTYPE as a parameter.
2957 * jv-scan.c: Same.
2958
8512bbd7
JM
29592002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
2960
2961 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
2962 Follow GNU Coding Standards for --version.
2963
adc8cb5d
TT
29642002-01-28 Tom Tromey <tromey@redhat.com>
2965
2966 * expr.c (build_jni_stub): Ensure storage for `meth' is
2967 generated.
2968 * parse.y (java_complete_expand_methods): Set
2969 current_function_decl before building JNI stub.
2970
1d8478d7 29712002-01-26 Andreas Tobler <a.tobler@schweiz.ch>
15e5ad76 2972
1d8478d7
AT
2973 * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
2974 BUILT_IN_SQRTF.
2975
fec763fc
TT
29762002-01-22 Tom Tromey <tromey@redhat.com>
2977
2978 * decl.c (java_init_decl_processing): Use add_predefined_file.
2979 Predefine RawData.java.
2980 (predef_filenames): Removed.
2981 (java_init_decl_processing): Don't register predef_filenames.
2982 * jcf-parse.c (add_predefined_file): New function.
2983 (predefined_filename_p): Rewrote.
2984 (predefined_filename_p): No longer static.
2985 * decl.c (java_init_decl_processing): Call initialize_builtins.
2986 * Make-lang.in (JAVA_OBJS): Added builtins.o.
2987 (java/builtins.o): New target.
2988 * builtins.c: New file.
2989 * parse.y (patch_invoke): Use build_call_or_builtin.
2990 * java-tree.h (build_call_or_builtin): Declare.
2991 (initialize_builtins): Declare.
2992 (java_set_exception_lang_code): Removed unused declaration.
2993 (PREDEF_FILENAMES_SIZE): Removed.
2994 (java_tree_index): Added JTI_PREDEF_FILENAMES.
2995 (predef_filenames): New define.
2996 (add_predefined_file): Declare.
2997 (predefined_filename_p): Declare.
2998 * expr.c (expand_invoke): Use build_call_or_builtin.
2999
cc586d70
KG
30002002-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3001
3002 * parse.y (patch_switch_statement): Fix format specifier.
3003
0df29596
TT
30042002-01-16 Tom Tromey <tromey@redhat.com>
3005
3006 More for PR java/5365:
3007 * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
3008 default.
3009 (process_file): Generate include for
3010 java.lang.UnsupportedOperationExceptions.
3011
e1886ae0
AJ
30122002-01-15 Andreas Jaeger <aj@suse.de>
3013
3014 * .cvsignore: Add man pages.
3015
9c874875
TT
30162002-01-15 Tom Tromey <tromey@redhat.com>
3017
3018 Fix for PR java/5365:
3019 * gjavah.c (process_file): Turn class name into a file name.
3020
707635f9
MK
30212002-01-14 Matthias Klose <doko@debian.org>
3022
3023 * gcj.texi: Fix whitespace and formatting errors in the
3024 synopsis of the man pages. Update copyright.
3025
e6a5e462
TT
30262002-01-14 Tom Tromey <tromey@redhat.com>
3027
3028 For PR libgcj/5303:
3029 * Make-lang.in (java.install-man): Handle jv-convert man page.
3030 (java.generated-manpages): Added jv-convert.1.
3031 (java.uninstall): Remove jv-convert.1.
3032 (java.maintainer-clean): Likewise.
3033 ($(srcdir)/java/jv-convert.1): New target.
3034 * gcj.texi (Top): Link to jv-convert node.
3035 (Individual utilities): Likewise.
3036 (Invoking jv-convert): New node.
3037
0b0d4c5b 30382001-01-10 Jeff Sturm <jsturm@one-point.com>
f0c75752 3039 Martin Kahlert <martin.kahlert@infineon.com>
0b0d4c5b
JS
3040
3041 * jcf-parse.c (get_constant): Don't swap lo/hi for big
3042 endian targets when HOST_BITS_PER_WIDE_INT >= 64.
3043
c0b65ff1 30442002-01-03 Graham Stott <grahams@redhat.com>
79ab76fd 3045
f0c75752
RH
3046 * class.c (compile_resource_file): Update copyright date.
3047 Constify filename parameter.
3048 (java-tree.h): Update copyright date.
3049 (compile_resource_file): Constify filename parameter.
79ab76fd 3050
22e85ed4
GS
30512002-01-03 Graham Stott <grahams@redhat.com>
3052
f0c75752
RH
3053 * gcc/jcf-parse.c: Update copyright date.
3054 (yyparse): Constify resource_filename.
22e85ed4 3055
5e65297b
KG
30562002-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3057
3058 * parse.y (src_parse_roots): Don't needlessly zero init.
3059
12cfb4fc
TT
30602001-12-31 Tom Tromey <tromey@redhat.com>
3061
3062 * parse.y (dump_java_tree): New function.
3063 (source_end_java_method): Call it.
3064 (end_class_declaration): Likewise.
3065 * lang.c (java_decode_option): Call dump_switch_p.
3066
dab722ee
TT
30672001-12-28 Tom Tromey <tromey@redhat.com>
3068
3069 * gen-table.pl: Don't process characters after \uffff. Added
3070 comment pointing to input file.
3071
7b0295ab
KG
30722001-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3073
3074 * gen-table.pl: Const-ify output. Document the location of a
3075 suitable unicode input file.
3076
3077 * chartables.h: Regenerate.
3078
c083a819
KG
30792001-12-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3080
3081 * chartables.h: Const-ify.
3082 * gjavah.c (options): Likewise.
3083 * jcf-dump.c (options): Likewise.
3084 * jv-scan.c (options): Likewise.
3085 * lex.c (java_start_char_p, java_part_char_p): Likewise.
3086 * parse.y (binop_lookup): Likewise.
3087
0b5826ac
KG
30882001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3089
3090 * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
3091 the static arrays that are output.
3092 * jvspec.c (jvgenmain_spec): Make static.
3093 * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
3094 * keyword.h: Regenerate.
3095 * lang.c (string_option, process_option_with_no, lang_f_options,
3096 lang_W_options): Const-ify.
3097 * lex.c (java_lex): Likewise.
3098
9a07cfaf
RH
30992001-12-21 Richard Henderson <rth@redhat.com>
3100
3101 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
3102 (get_boehm_type_descriptor): ... here. Arrange for the
3103 TREE_TYPE to get set properly.
3104
f44fefca
RH
31052001-12-21 Richard Henderson <rth@redhat.com>
3106
ef969525
RH
3107 * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
3108 only if the target requires collect2.
3109
f44fefca
RH
3110 * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
3111
84a944b3
TT
31122001-12-20 Tom Tromey <tromey@redhat.com>
3113
3114 For PR java/4509:
3115 * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
3116 CAN_COMPLETE_NORMALLY for the node.
3117 * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
3118 generate code for second branch if first branch can't complete
3119 normally.
3120 (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
3121 the loop head if the loop body can't complete normally.
3122
2d93b924
TT
31232001-12-20 Tom Tromey <tromey@redhat.com>
3124
3125 For PR java/4766:
3126 * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
3127 case where `finally' clause can't complete normally.
3128
f2af50db
TT
31292001-12-20 Tom Tromey <tromey@redhat.com>
3130
3131 Fixes PR java/5057:
3132 * parse.y (analyze_clinit_body): Added this_class parameter.
3133 Check for more cases where we must keep <clinit>.
3134 (maybe_yank_clinit): Cleaned up flow control.
3135
7899e8b9
BM
31362001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3137
e1886ae0 3138 * decl.c (java_init_decl_processing): Don't initialize
7899e8b9
BM
3139 finit_leg_identifier_node.
3140 * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
3141 (finit_leg_identifier_node): Remove.
3142 (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
3143
de4984af
BM
31442001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3145
e1886ae0 3146 * mangle.c (mangle_member_name): Don't special-case for
de4984af
BM
3147 NO_DOLLAR_IN_LABEL.
3148 * mangle_name.c (unicode_mangling_length): Likewise.
3149 (append_unicode_mangled_name): Likewise.
3150 * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
3151 code.
3152
08514ae4
BM
31532001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3154
3155 * expr.c (build_java_array_length_access): Don't force null pointer
3156 check unless flag_check_references is set.
3157
56b8325e
TT
31582001-12-20 Tom Tromey <tromey@redhat.com>
3159
3160 Fix for PR java/3417:
3161 * parse.y (patch_assignment): Added special processing for
3162 `return'.
3163 (patch_return): Don't convert booleans to integers, and don't
3164 special-case `null'.
3165
38be19f6
JM
31662001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
3167
3168 * config-lang.in (diff_excludes): Remove.
3169
b11cc610
JM
31702001-12-17 Joseph S. Myers <jsm28@cam.ac.uk>
3171
3172 * gcj.texi: Update link to GCC manual.
3173
e97562f5
TT
31742001-12-17 Tom Tromey <tromey@redhat.com>
3175
3176 * parse.y (link_nested_class_to_enclosing): Removed useless
3177 statement.
3178
2c5187c5
TT
31792001-12-16 Tom Tromey <tromey@redhat.com>
3180
3181 * mangle.c (mangle_method_decl): Never emit `C2' constructor.
3182 Fixes PR java/5088.
3183
a83f01f0
JM
31842001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
3185
3186 * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
3187 jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
3188 spelling errors.
3189
faf31866
KG
31902001-12-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3191
3192 * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
3193
9a8de998
BM
31942001-12-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3195
3196 * decl.c (java_init_decl_processing): Build otable_type correctly.
3197 otable_decl is an otable_type.
3198
861ef928
BM
31992001-12-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3200
3201 * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
e1886ae0 3202 otable_type, otable_ptr_type, method_symbol_type,
861ef928
BM
3203 method_symbols_array_type, method_symbols_array_ptr_type): New
3204 field/global tree definitions.
3205 (flag_indirect_dispatch): New flag.
e1886ae0 3206 * decl.c (java_init_decl_processing): Initialize new otable and
861ef928
BM
3207 otable_syms type nodes and decls. Add new field "index" to
3208 method_type_node.
3209 * class.c (build_method_symbols_entry): New function.
3210 (make_method_value): Set "index" to to method's vtable index for
3211 virtual methods when indirect-dispatch is not used.
a83f01f0 3212 (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
861ef928
BM
3213 and set vtable_method_count to -1. Set otable and otable_syms field
3214 if indirect-dispatch is used and there was something to put in them.
3215 (build_method_symbols_entry): New function.
3216 (emit_offset_symbol_table): New function.
3217 * expr.c (get_offset_table_index): New function.
e1886ae0 3218 (build_invokevirtual): Build array reference to otable at the index
861ef928
BM
3219 returned by get_offset_table_index, and use the result as the vtable
3220 offset.
3221 (build_invokeinterface): Similar.
e1886ae0
AJ
3222 * jcf-parse.c (yyparse): If indirect-dispatch, call
3223 emit_offset_symbol_table at the end of compilation, after all classes
861ef928
BM
3224 have been generated.
3225 * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
3226 * lang.c (flag_indirect_dispatch): Define.
3227 (lang_f_options): Add indirect-dispatch flag.
3228
f1727481
MK
32292001-12-14 Matthias Klose <doko@debian.org>
3230
3231 * gcj.texi: Markup for man page generation. Document missing
3232 options printed by <tool> --help.
3233 Terminate description of gij's -ms option with a dot.
3234 * Make-lang.in ($(srcdir)/java/*.1): New targets.
3235 (java.generated-manpages java.install-man, java.uninstall,
3236 java-maintainer-clean) Updated.
3237
eec87542
HB
32382001-12-14 Hans Boehm <Hans_Boehm@hp.com>
3239
3240 * class.c (get_dispatch_table): Fix java vtable layout
3241 for TARGET_VTABLE_USES_DESCRIPTORS.
3242 * decl.c (java_init_decl_processing): Initialize
3243 alloc_no_finalizer_node, finalize_identifier_node.
3244 * expr.c (class_has_finalize_method): New function.
3245 (expand_java_NEW): Generate calls for finalizer-free allocation.
3246 (build_invokevirtual): Fix java vtable layout for
3247 TARGET_VTABLE_USES_DESCRIPTORS.
e1886ae0 3248 * java-tree.h (enum java_tree_index): New entries:
eec87542
HB
3249 JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
3250 (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
3251 (class_has_finalize_method): declare.
3252 (HAS_FINALIZER_P): New macro.
3253 * parse.y (patch_invoke): Generate calls for finalizer-free
3254 allocation.
3255
81deb0a3
MK
32562001-12-12 Matthias Klose <doko@debian.org>
3257
3258 * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
3259 whitespace at end of line.
3260
34026199
TT
32612001-12-11 Tom Tromey <tromey@redhat.com>
3262
3263 * lex.c (java_init_lex): Define wfl_to_string as
3264 gnu.gcj.runtime.StringBuffer unless generating bytecode.
3265
a3bcfa67
JS
32662001-12-11 Jeff Sturm <jsturm@one-point.com>
3267
3268 * class.c (make_method_value): Use null_pointer_node to
3269 represent empty exception table.
3270
3afdfae8
TT
32712001-12-10 Tom Tromey <tromey@redhat.com>
3272
3273 * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
3274
62c9aa5f 32752001-12-10 Douglas B. Rupp <rupp@gnat.com>
96a9c44f
DR
3276
3277 * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
3278
a5cb134d
PB
32792001-12-09 Per Bothner <per@bothner.com>
3280
3281 * check-init.c (current_switch_has_default): New static field.
3282 (check_init): Case DEFAULT_EXPR: Set current_switch_has_default.
3283 Case SWITCH_EXPR: Save/restore current_switch_has_default. If no
3284 DEFAULT_EXPR seen, simulate a default alternative that copies state.
3285
1aca9b81
TT
32862001-12-09 Tom Tromey <tromey@redhat.com>
3287
3288 * check-init.c (check_init): Don't allow pre- or post- increment
3289 or decrement of final variable.
3290 (final_assign_error): Minor error message rewording.
3291
4440ffc4
TT
32922001-12-08 Tom Tromey <tromey@redhat.com>
3293
0854b1c4
TT
3294 * java-tree.h: Fixed typo.
3295
5fcab235
TT
3296 * gjavah.c (decompile_method): Don't decompile to `return this'
3297 for static methods.
3298
7b35f6c9
TT
3299 * gjavah.c (cxx_keywords): Re-sorted.
3300 * lex.c (cxx_keywords): Re-sorted.
3301
897c9e66
TT
3302 * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
3303 else.
3304
4440ffc4
TT
3305 * gjavah.c (print_namelet): Clear subnamelets.
3306 (HANDLE_METHOD): Set `method_printed' earlier.
3307
8f25dc28
TT
33082001-12-07 Tom Tromey <tromey@redhat.com>
3309
3310 * lang.c (lang_f_options): Added
3311 optimize-static-class-initialization.
3312 (java_decode_option): Removed special case.
3313
a9040c77
PB
33142001-12-07 Per Bothner <per@bothner.com>
3315
3316 * check-init.c (check_init): Fix typo freeing memory twice.
3317
5412ef6b
PB
33182001-12-05 Per Bothner <per@bothner.com>
3319
3320 Restore support for static class initialization optimization.
3321 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
3322 * check-init.c (check_int): At end of BLOCK handle initialization
3323 blocks, which used to be done in java_complete_expand_method but did
3324 not handle the case where check_for_initialization might allocate
3325 more than a word of bits.
3326 * decl.c (lang_make_tree): The smic field is now a tree.
3327 * expr.c (build_class_init): Set DECL_FUNCTION_INIT_TEST_CLASS field.
3328 * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE): New macro.
3329
3330 * parse.y (emit_test_initialization): Combine hash_lookup calls.
3331
3332 * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
3333 Change from a hash table to a list.
3334 (struct_lang_decl): Change field 'smic' to match.
3335 * class.c (add_method_1): Initialize
3336 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
3337 * parse.y (adjust_init_test_initialization): Removed - inlined into -
3338 (java_expand_method_bodies): -here, since 'smic' is now a list.
3339 (patch_invoke): Add to 'smic' list, instead of hash_lookup.
3340
3341 * check-init.c (WORD_SIZE): Use BITS_PER_UNIT.
3342
3343 * class.c (java_hash_compare_tree_node): Fix casts.
3344
4f88ccda
PB
33452001-12-04 Per Bothner <per@bothner.com>
3346
3347 * check-init.c: Handle definite unassignment to finals in addition
3348 to definite assignment.
3349 (loop_current_locals): New field.
3350 (num_current_locals, int start_current_locals, num_current_words):
3351 Make static.
3352 (SET_P, CLEAR_P, SET_BIT): Add needed but missing parentheses.
3353 (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
3354 CLEAR_ASSIGNED, CLEAR_UNASSIGNED): New macros.
3355 (get_variable_decl, check_final_reassigned): New functions.
3356 (check_init, check_bool_init): Modify as needed for checking finals.
3357 (check_for_initialization): Take extra parameter and return void.
3358 Do extra start-up logic to check final fields for assignment.
3359 * parse.y (check_static_final_variable_assignment_flag,
3360 reset_static_final_variable_assignment_flag, check_final_assignment,
3361 check_final_variable_local_assignment_flag,
3362 reset_final_variable_indirect_assignment_flag,
3363 reset_final_variable_global_assignment_flag): Remove functions.
3364 (java_complete_expand_methods, outer_field_access_fix,
3365 patch_assignment): Remove no-longer used logic.
3366 * java-tree.h (DECL_FIELD_FINAL_IUD): Change usage and comments.
3367 * parse.y (register_fields, java_complete_tree): Update accordingly.
3368
3369 * check-init.c (ALLOC_WORDS/FREE_WORDS): Use xmalloc/free, not alloca.
3370 (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER): New.
3371 (check_cond_init, check_bool2_init): Use DECLARE_BUFFERS.
3372
3373 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Temporarily turn off.
3374
3375 * java-tree.h (DECL FINAL): New bit-field.
3376 (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL): Define as DECL_FINAL.
3377 (LOCAL_FINAL_P): Use DECL_FINAL rather than old LOCAL_FINAL.
3378 (DECL_INIT_CALLS_THIS): New macro.
3379 (struct lang_decl): New bit-field init_calls_this.
3380 (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
3381 DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
3382 (DECL_BIT_INDEX): Change to use pointer_alias_set since we now
3383 use it for both local variables and final fields.
3384 (struct lang_decl_var): Remove bit-fields final_liic, final_ierr,
3385 and local_final.
3386 (struct lang_type): Remove hfv bit-field.
3387 (check_for_initialization): Change to return void.
3388
3389 * java-tree.h (IS_ARRAY_LENGTH_ACCESS): New macros.
3390 * expr.c (build_java_array_length_access): Set IS_ARRAY_LENGTH_ACCESS.
3391 * check-init.c (final_assign_error): New helper function.
3392 (check_final_reassigned, check_init): Use it.
3393 (check_init): Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
e1886ae0 3394
4f88ccda
PB
3395 * java-tree.h (struct lang_decl, struct lang_decl_var): Change all
3396 bit-fields to unsigned.
3397
87d4ad08
PB
33982001-12-03 Per Bothner <per@bothner.com>
3399
3400 * parse.y (patch_binop): Minor constant folding.
3401
3402 * parse.y (build_current_thisn): Shorter 'buffer'.
3403
aedcdb65
PB
34042001-12-03 Per Bothner <per@bothner.com>
3405
3406 * decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR
3407 instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
3408 * jcf-write.c (generate_bytecode_insns): Remove support for
3409 CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
3410 * check-init.c (check_init): Likewise.
3411
82ff672e
PB
34122001-12-03 Per Bothner <per@bothner.com>
3413
3414 * verify.c (subroutine_nesting): New function.
3415 (verify_jvm_instructions): Use it to fix logic for checking that
3416 we're done with the current subroutine.
3417
3418 * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
3419 OPCODE_instanceof use POP_TYPE macro for better diagnostics.
3420
98a63868
PB
34212001-12-03 Per Bothner <per@bothner.com>
3422
3423 * jcf.h: Fix obvious typo in comment.
3424 * typeck.c (build_null_signature): Add comment.
3425
c725bd79
NB
34262001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
3427
3428 * expr.c: Remove leading capital from diagnostic messages, as
3429 per GNU coding standards.
3430 * jcf-io.c: Similarly.
3431 * jcf-parse.c: Similarly.
3432 * jv-scan.c: Similarly.
3433 * jvspec.c: Similarly.
3434 * mangle.c: Similarly.
3435
b736dee6
TCH
34362001-12-02 Tang Ching-Hui <nicholas@cs.nthu.edu.tw>
3437 Alexandre Petit-Bianco <apbianco@redhat.com>
3438
e1886ae0 3439 * expr.c (build_java_arrayaccess): Call save_expr on array for
7e5f4bee 3440 correct evaluation order, modified comment, fixed indentation.
b736dee6
TCH
3441 * parse.y: (patch_assignment): Correctly extract the array base
3442 from the tree generate by build_java_arrayaccess, added comments.
3443 (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
3444 Fixes PR java/3096, PR java/3803, PR java/3965.
3445
357351e5
NB
34462001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
3447
3448 * expr.c (expand_byte_code): Remove trailing periods from messages.
3449 * jcf-parse.c (load_class, jcf_parse): Similarly.
3450 * jcf-write.c (generate_classfile): Similarly.
3451 * lex.c (java_lex): Similarly.
3452
a7c5337d
BM
34532001-11-30 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3454
3455 * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
3456
d3945f0a
JM
34572001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
3458
3459 * Make-lang.in (java.generated-manpages): New dummy target.
3460
b856c15d
RO
34612001-11-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3462
3463 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
3464 ASM_FINAL_SPEC.
3465 (lang_specific_pre_link): Use set_input to set input_filename.
3466 Append `main' here.
3467 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
3468 (main): Fix definition.
3469 Strip `main' from classname.
3470 Fixes PR java/227.
3471
9c2fcf09
RS
34722001-11-18 Roger Sayle <roger@eyesopen.com>
3473
3474 * parse.h (java_expand_switch): Remove old prototype.
3475
8aeb42d0
TT
34762001-11-18 Tom Tromey <tromey@redhat.com>
3477
3478 Fix for PR java/1401:
3479 * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
3480 arg0 is null.
3481 (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
3482 correctly.
3483
22703ccc
NB
34842001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
3485
3486 * lang.c (finish_parse): Rename to java_finish.
3487 (LANG_HOOKS_FINISH, java_finish): New.
3488
f5e99456
NB
34892001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
3490
3491 * decl.c (init_decl_processing): Rename java_init_decl_processing.
3492 * java-tree.h: New prototype.
3493 * lang.c (java_init): Update prototype. Combine with old init_parse.
3494
150f086d
TT
34952001-11-13 Tom Tromey <tromey@redhat.com>
3496
3497 * gjavah.c (method_signature): New global.
3498 (HANDLE_METHOD): Set it.
3499 (decompile_return_statement): New function.
3500 (decompile_method): Use it.
3501 (print_method_info): Removed `synth' argument.
3502
5d69f816
NB
35032001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
3504
3505 * java-tree.h (java_set_yydebug): New.
3506 * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
3507 * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
3508 (print_lang_decl, print_lang_type, print_lang_identifier,
3509 print_lang_statistics, lang_print_xnode): Remove.
3510
3ac88239
NB
35112001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
3512
3513 * jcf-parse.c (init_lex): Remove.
3514 * lang.c (language_string, lang_identify): Remove.
3515 (struct lang_hooks): Constify.
3516 (LANG_HOOKS_NAME): Override.
3517 (init_parse): Update.
3518
b21d216c
AF
35192001-11-08 Andreas Franck <afranck@gmx.de>
3520
e1886ae0 3521 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
b21d216c
AF
3522 program_transform_name the way suggested by autoconf.
3523 (java.install-common): Also transform auxiliary program names with
3524 program_transform_name.
3525
1fa73144
TT
35262001-11-08 Tom Tromey <tromey@cygnus.com>
3527
3528 * parse.y (trap_overflow_corner_case): New rule.
3529 (unary_expression): Use it.
3530 * lex.c (java_init_lex): Don't set minus_seen.
3531 (yylex): Don't use minus_seen. Communicate overflow to parser for
3532 it to handle.
3533 (error_if_numeric_overflow): New function.
3534 * parse.h (minus_seen): Removed field.
3535 (JAVA_RADIX10_FLAG): New define.
3536
5a21a051
TT
35372001-11-07 Tom Tromey <tromey@redhat.com>
3538
3539 Patch for PR java/1414:
3540 * parse.y (case_label_list): New global.
3541 (goal): Register case_label_list with GC.
3542 (java_complete_lhs): Save new case on case_label_list.
3543 (patch_switch_statement): Check for duplicate case labels.
3544
5573cb39
APB
35452001-11-07 Alexandre Petit-Bianco <apbianco@redhat.com>
3546
3547 * parse.y (patch_assignment): Removed unused third argument.
3548 (java_complete_lhs): Removed unused third argument to patch_assignment.
3549
d23c55c2
NB
35502001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
3551
3552 * lang.c: Include langhooks-def.h.
3553 * Make-lang.in: Update.
3554
5b7874aa
ZW
35552001-10-31 Zack Weinberg <zack@codesourcery.com>
3556
3557 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
3558
2b472f91
BM
35592001-10-29 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3560
3561 * mangle.c (find_compression_record_match): Don't match compression
3562 records for package name elements unless they occur at the start of
3563 the name. Fix for PR java/4717.
3564
961b8e70
BM
35652001-10-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3566
3567 * expr.c (expand_java_field_op): Don't special-case references to
3568 java.lang.PRIMTYPE.TYPE.
3569 (build_primtype_type_ref): Removed.
3570 * java-tree.h (build_primtype_type_ref): Remove prototype.
3571 * parse.y (maybe_build_primttype_type_ref): Removed.
3572 (complete_function_arguments): Don't special-case references to
3573 java.lang.PRIMTYPE.TYPE.
3574 (patch_assignment): Likewise.
3575 (array_constructor_check_entry): Likewise.
3576
98f705b9
APB
35772001-10-24 Alexandre Petit-Bianco <apbianco@redhat.com>
3578
3579 * mangle.c (static tree compression_table): Fixed leading comment.
3580 * parse.h (struct parser_ctxt): Fixed field comment.
3581 * parse.y (check_pkg_class_access): New prototype, fixed leading
3582 comment, new parameter used to emit error only if passed as true.
3583 (parse_check_super): Pass extra argument to check_pkg_class_access.
3584 (do_resolve_class): Likewise.
3585 (process_imports): Likewise.
3586 (read_import_dir): Fixed indentation.
3587 (find_in_imports_on_demand): New local class_type_name. Local
3588 node_to_use deleted. while loop changed into for loop. Report
3589 multiple definition only for accessible classes. Improved error
3590 message.
3591 (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
3592 assigned to parameter list, fixed indentation. while loop changed
3593 into for loop, restore TREE_CHAIN on local `tem' before the next
3594 iteration.
3595
62c9aa5f 35962001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8ac61af7
RK
3597
3598 * lang.c (lang_get_alias_set): Deleted.
3599
0df6c2c7
KG
36002001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3601
299b5f9e
KG
3602 * gjavah.c (jni_print_char): Fix thinko in last change.
3603
0df6c2c7
KG
3604 * gjavah.c (jni_print_char, decode_signature_piece): Use
3605 safe-ctype macros and/or fold extra calls into fewer ones.
3606 * lex.c (java_read_unicode, java_lex): Likewise.
3607 * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
3608 JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
3609 * mangle_name.c (append_unicode_mangled_name,
3610 unicode_mangling_length): Likewise.
3611
17ed6335
RH
36122001-10-17 Richard Henderson <rth@redhat.com>
3613
3614 * Make-lang.in (java/lang.o): Depend on langhooks.h.
3615
c83303d8
APB
36162001-10-15 Alexandre Petit-Bianco <apbianco@redhat.com>
3617
3618 * lang.c (langhooks.h): Included.
3619 (LANG_HOOKS_INIT): Redefined.
3620 (LANG_HOOKS_INIT_OPTIONS): Likewise.
3621 (LANG_HOOKS_DECODE_OPTION): Likewise.
3622 (struct lang_hooks lang_hooks): New initialization.
3623
be98560f
PB
36242001-10-11 Per Bothner <per@bothner.com>
3625
89b894e1
PB
3626 * parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR
3627 rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
3628 The former is simpler, and jcf-write.c handles it better.
3629 (java_complete_lhs): No longer need to handle CLEANUP_POINT_EXPR
3630 or WITH_CLEANUP_EXPR.
3631 * jcf-write.c: Revert Alex's change from 2000-10-18. It is no
3632 longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
3633
be98560f
PB
3634 * parse.y (patch_if_else_statement): If the condition is constant,
3635 optimize away the test.
3636
3fb5c0eb
APB
36372001-10-09 Alexandre Petit-Bianco <apbianco@redhat.com>
3638
3639 * parse.y (patch_cast): Call patch_string on the first operand of
c83303d8 3640 the incoming node, update it if necessary. Fixes PR java/4510.
3fb5c0eb 3641
908fecca
BM
36422001-10-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3643
3644 * parse.y (find_as_inner_class): Don't disregard the enclosing scope
3645 when name qualifier matches a package name.
3646
f3ca28bf
TT
36472001-10-08 Tom Tromey <tromey@redhat.com>
3648
3649 Fix for PR java/4489:
3650 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
3651 force a new label when computing `body_block'.
3652
8b60264b
KG
36532001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3654
3655 * jcf-io.c (format_uint): Const-ify.
3656 * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
3657 * lex.c (java_get_line_col): Likewise.
3658 * parse.y (build_incdec): Likewise.
3659
3fb5c0eb
APB
36602001-10-05 Alexandre Petit-Bianco <apbianco@redhat.com>
3661
3662 * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
c83303d8 3663 a NULL enclosing context if appropriate. Fixes PR java/4466.
3fb5c0eb 3664
7754e0a9
APB
36652001-10-03 Alexandre Petit-Bianco <apbianco@redhat.com>
3666
3667 * parse.y (patch_assignment): Use lvalue's original TYPE when
3668 building the final COMPOUND_EXPR.
3669 (try_reference_assignconv): Fixed leading comment.
3670
e9546ca4
APB
36712001-09-26 Alexandre Petit-Bianco <apbianco@redhat.com>
3672
3673 * parse.y (check_final_variable_indirect_assignment): For
3674 COMPOUND_EXPR, return only if finals were found initialized
3675 properly, if not, keep on checking.
3676 (check_final_variable_global_assignment_flag): New local
3677 error_found, set when appropriate and used to decide whether to
3678 report uninitialized finals. Fixed typo in comment.
3679
f6a67a81
APB
36802001-09-22 Alexandre Petit-Bianco <apbianco@redhat.com>
3681
3682 * decl.c (init_decl_processing): Fixed typo in predef_filenames
3683 last three initializations. Fixes PR java/4360.
3684
67231816
RH
36852001-09-21 Richard Henderson <rth@redhat.com>
3686
3687 * class.c (get_dispatch_table): Handle function descriptors.
3688 (build_dtable_decl): Likewise.
3689 * expr.c (build_invokevirtual): Likewise.
3690
870a5b8a
APB
36912001-09-20 Alexandre Petit-Bianco <apbianco@redhat.com>
3692
3693 * parse.y (patch_method_invocation): Build class initialization
3694 when static finals are used to qualify method invocation.
3695 Fixes PR java/4366.
3696
2e3b2d2c
APB
36972001-09-19 Alexandre Petit-Bianco <apbianco@redhat.com>
3698
3699 * parse.h: (WFL_STRIP_BRACKET): Re-written using
3700 build_type_name_from_array_name.
3701 (STRING_STRIP_BRACKETS): New macro.
3702 * parse.y (build_type_name_from_array_name): New function.
3703 (array_creation_expression:): Accumulate []s instead of [s.
3704 (cast_expression:): Accumulate []s instead of [s after cast type
3705 name.
3706 (build_array_from_name): Local string deleted, use
3707 build_type_name_from_array_name.
3708 (build_unresolved_array_type): Accumulate []s instead of [s after
3709 type name.
3710 (register_fields): Fixed comment.
3711 (resolve_class): Local name, base deleted, new locals tname and
3712 array_dims. Use build_type_name_from_array_name. Use array_dims to
3713 build array type.
3714 (purify_type_name): Use STRING_STRIP_BRACKETS.
3715
e64c46ce
AJ
37162001-09-18 Andreas Jaeger <aj@suse.de>
3717
3718 * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
3719 * jv-scan.c: Likewise.
3720
3fb5c0eb
APB
37212001-09-17 Alexandre Petit-Bianco <apbianco@redhat.com>
3722
3723 * parse.y (patch_method_invocation): Inner class creation context
3724 check not enforced within constructors. Fixes PR java/1873.
3725
7a91449c
TT
37262001-09-16 Tom Tromey <tromey@redhat.com>
3727
3728 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
3729 NOTE_PUSH for single-case push. Fixes PR java/4189.
3730
653d5d95
APB
37312001-09-13 Alexandre Petit-Bianco <apbianco@redhat.com>
3732
3733 * java-tree.h (TYPE_IMPORT_LIST): New macro.
3734 (TYPE_IMPORT_DEMAND_LIST): Likewise.
3735 (struct lang_type): New fields import_list and import_demand_list.
3736 * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
3737 TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
3738 (do_resolve_class): New local saved_enclosing_type, initialized,
3739 passed as parameter to find_in_imports and find_in_imports_on_demand.
3740 (find_in_imports): Added paramater enclosing_type, use its
3741 TYPE_IMPORT_LIST when applicable.
3742 (find_in_imports_on_demand): Added parameter enclosing_type, use
3743 its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
3744 declaration and initialization.
3745 (fold_constant_for_init): Switch/restore current_class to the
3746 appropriate context.
3747
6d334db8
MM
37482001-09-13 Mark Mitchell <mark@codesourcery.com>
3749
3750 * verify.c (verify_jvm_instructions): Fix typo.
3751
83182544
KG
37522001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3753
3754 * expr.c (expand_invoke): Const-ification.
3755 * parse.y (patch_method_invocation): Likewise.
3756
fd033052
KG
37572001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3758
3759 * gjavah.c (cxx_keywords): Const-ification.
3760 * keyword.gperf (java_keyword): Likewise.
3761 * lang.c (java_tree_code_name): Likewise.
3762 * lex.c (cxx_keywords): Likewise.
3763 * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
3764
fcbc317f
RH
37652001-09-11 Richard Henderson <rth@redhat.com>
3766
3767 * parse.h (ctxp_for_generation): Mark extern.
3768
c347e68d
RH
37692001-09-10 Richard Henderson <rth@redhat.com>
3770
3771 * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
3772
6a9f6727
MK
37732001-09-07 Matt Kraai <kraai@alumni.carnegiemellon.edu>
3774
3775 * typeck.c (java_array_type_length, build_prim_array_type):
3776 Represent empty arrays by NULL index.
3777
0ef02b2d
APB
37782001-09-06 Alexandre Petit-Bianco <apbianco@redhat.com>
3779
3780 * java-tree.h (compile_resource_file): Grouped with other prototypes.
e64c46ce 3781 * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
0ef02b2d 3782
f2767a67
AG
37832001-09-06 Anthony Green <green@redhat.com>
3784
3785 * class.c (O_BINARY): Define if necessary.
3786 (registerResource_libfunc): Declare.
3787 (init_class_processing): Initilize registerResource_libfunc.
3788 (compile_resource_file): New function.
3789 * java-tree.h (resource_name): Declare.
3790 (compile_resource_file): Declare.
3791 * jcf-parse.c (yyparse): Handle compiling java resource files.
3792 * lang.c (java_decode_option): Handle -fcompile-resource option.
3793 * jvspec.c (lang_specific_driver): Handle -R flag for compiling
3794 resource files.
3795 * gcj.texi (Code Generation): Add documentation for -R flag.
3796
731866ba
APB
37972001-09-05 Alexandre Petit-Bianco <apbianco@redhat.com>
3798
3799 * jcf-write.c (generate_classfile): Issue an error in case of
3800 field/initial value mismatch.
3801 * parse.y (analyze_clinit_body): Keep <clinit> if an array is
3802 being initialized and we're generating bytecode.
3803 (java_complete_lhs): In MODIFY_EXPR section: added comments,
3804 set DECL_INITIAL properly when appropriate.
3805 Fixes PR java/4230
3806 Fixes PR java/4204
3807
0286a91d
PB
38082001-09-01 Per Bothner <per@bothner.com>
3809
3810 * parse.y (maybe_yank_clinit): A field without an initializer is not
3811 relevant. All initializers except static final and constant require
3812 <clinit>, regardless of flag_emit_class_files.
3813
289b57ee
PB
38142001-08-31 Per Bothner <per@bothner.com>
3815
67264b4f 3816 * class.c (set_constant_value): When not emitting class files, then a
289b57ee
PB
3817 String ConstantValue is a utf8const_ptr_type.
3818
be0c7ff4
PB
38192001-08-30 Per Bothner <per@bothner.com>
3820
3821 * jcf-write.c (generate_classfile): Check that field is primitive
3822 or string before emitting ConstantValue attribute.
e64c46ce 3823
f0cdee96
PB
38242001-08-30 Per Bothner <per@bothner.com>
3825
3826 * parse.y (resolve_qualified_expression_name): If creating a
3827 COMPOUND_EXPR, set it's type correctly.
3828
bc8a5e56
PB
38292001-08-30 Per Bothner <per@bothner.com>
3830
3831 * jcf-io.c (open_class): Set filename field.
3832
3833 * jcf-parse,c (parse_class_file): Set current_function_decl
3834 for better error message when Code attribute is missing.
3835
3836 * lang.c (put_decl_node, lang_print_error): Re-arrange for
3837 better diagnostics, especially for constructors.
e64c46ce 3838
1b9ee723
PB
38392001-08-30 Per Bothner <per@bothner.com>
3840
3841 * jcf-write.c (generate_classfile): Don't write ConstantValue
3842 attribute if field is not final, for compatibility with jdk.
3843
3844 * jcf-write.c (generate_classfile): Convert ConstantValue values
3845 to correct type. Work-around for front-end bug.
3846 * class.c (set_constant_value): Error if constant has wrong type.
3847
6e4302ec
PB
38482001-08-30 Per Bothner <per@bothner.com>
3849
3850 * jcf-dump.c (print_constant): Fix fencepost error so "Float" and
3851 "Double" are printed at verbosity 1.
3852
3853 * jcf-dump.c (main): Disable flag_print_attributes if --javap.
3854
3855 * jcf-dump.c (SPECIAL_IINC): Remove unneeded casts to long.
3856
3ed218d4
APB
38572001-08-30 Alexandre Petit-Bianco <apbianco@redhat.com>
3858
3859 * parse.y (patch_assignment): Don't verify final re-assignment here.
3860 (java_complete_lhs): Verify assignments to finals calling
3861 patch_assignment. Verify re-assignments to finals before calling
3862 patch_assignment.
3863
38642001-08-29 Alexandre Petit-Bianco <apbianco@redhat.com>
3865
3866 * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
3867 Fixes PR java/1413
3868
38692001-08-28 Alexandre Petit-Bianco <apbianco@redhat.com>
3870
3871 * lex.c (java_lex): new local found_hex_digits. Set and then used
3872 in test to reject invalid hexadecimal numbers.
3873 * parse.y (java_complete_tree): Prevent unwanted cast with
3874 initialized floating point finals.
3875 (patch_binop): Emit a warning when detecting a division by zero,
3876 mark result not constant, don't simplify non integer division.
3877
1a27eec1
PB
38782001-08-28 Per Bothner <per@bothner.com>
3879
3880 * jcf-write.c (generate_bytecode_insns): For increments and
9a07cfaf 3881 decrements just recurse to push constant. Improvement on Mark's patch.
1a27eec1 3882
06657dcd
MM
38832001-08-28 Mark Mitchell <mark@codesourcery.com>
3884
3885 * jcf-write.c (generate_bytecode_insns): Generate an integer to
3886 real conversion for increments and decrements of reals.
3887
1ca09b48
APB
38882001-08-27 Alexandre Petit-Bianco <apbianco@redhat.com>
3889
3890 * parse.y (resolve_qualified_expression_name): Handle unresolved
3891 qualified expressions, prevent numerical qualifiers, fixed typo.
3892 Fixes PR java/4141
3893
7b02957e
APB
38942001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com>
3895
3896 * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
3897 don't report anything but deprecated class when marked so. Handle
3898 VAR_DECL.
3899 (patch_method_invocation): Check deprecation on methods and types.
3900 (patch_binop): code becomes an enum tree_code, added default: to
3901 switch to handle that. Detect division by zero, try to fold and
3902 return before using a subroutine.
3903
496849ba
APB
39042001-08-23 Alexandre Petit-Bianco <apbianco@redhat.com>
3905
3906 * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
e64c46ce 3907 file smaller than 4 bytes.
496849ba
APB
3908 * parse.y (check_inner_circular_reference): New function.
3909 (check_circular_reference): Likewise.
3910 (array_initializer:): Accept {,}.
3911 (java_check_circular_reference): Rewritten using
3912 check_circular_reference and check_inner_circular_reference.
3913 (java_complete_expand_method): Unconditionally save and restore
3914 the unpurged exception list.
3915 (build_dot_class_method_invocation): Unmangle signature parameter.
3916
66b461ce
TT
39172001-08-21 Tom Tromey <tromey@redhat.com>
3918
3919 * decl.c (init_decl_processing): Add `throws' field to method
3920 descriptor.
3921 * class.c (make_method_value): Compute `throws' field for method.
3922
df1c5346
APB
39232001-08-22 Alexandre Petit-Bianco <apbianco@redhat.com>
3924
3925 * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
3926 circularity is detected.
3927 (ctors_unchecked_throws_clause_p): Fixed leading comment.
3928
c8af3574
RH
39292001-08-17 Richard Henderson <rth@redhat.com>
3930
3931 * class.c (emit_register_classes): Add align parameter to
3932 call to assemble_integer.
3933
17126208
APB
39342001-08-16 Alexandre Petit-Bianco <apbianco@redhat.com>
3935
3936 * jcf-parse.c (load_class): New locals saved and class_loaded. If
3937 loading a class_or_name fails, try considering an innerclass name
3938 and load the enclosing context.
3939 * parse.y (resolve_inner_class): New function.
3940 (find_as_inner_class): Added leading comment.
3941 (register_incomplete_type): Keep the current context as enclosing
3942 context for JDEP_FIELD dependencies.
3943 (do_resolve_class): Locals new_class_decl and super initialized to
3944 NULL. Call resolve_inner_class, explore the enclosing context
3945 superclass if necessary.
3946 Fixes PR java/4007
3947
4266d0b2
TT
39482001-08-16 Tom Tromey <tromey@redhat.com>
3949
3950 * jcf-dump.c (main): Updated for change to jcf_path_seal.
3951 * gjavah.c (main): Updated for change to jcf_path_seal.
3952 * lang.c (version_flag): New global.
3953 (java_decode_option): Recognize `-version'.
3954 (java_init): Update for change to jcf_path_seal.
3955 * jcf.h (jcf_path_seal): Added `print' argument.
3956 * jcf-path.c (jcf_path_seal): Added `print' argument.
3957
e78d8e51
ZW
39582001-08-13 Zack Weinberg <zackw@panix.com>
3959
3960 * Make-lang.in (java/decl.o): Update dependencies.
3961 * decl.c: Include libfuncs.h, don't include toplev.h.
3962
17126208
APB
39632001-08-12 Alexandre Petit-Bianco <apbianco@redhat.com>
3964
3965 * decl.c (init_decl_processing): exception_type_node,
3966 class_not_found_type_node, and no_class_def_found_type_node
3967 initialized. predef_filenames augmented accordingly.
3968 instinit_identifier_node initialized.
3969 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
3970 * java-tree.h (enum java_tree_index): New entries
3971 JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
3972 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
3973 (exception_type_node): New macro.
3974 (class_not_found_type_node): Likewise.
3975 (no_class_def_found_type_node): Likewise.
3976 (instinit_identifier_node): Likewise.
3977 (PREDEF_FILENAMES_SIZE): Adjusted.
3978 (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
3979 (struct lang_type): Fixed typo in bitfield name.
3980 (DECL_INSTINIT_P): New macro.
3981 (ID_INSTINIT_P): Likewise.
3982 * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
3983 attribute.
3984 * parse.y (encapsulate_with_try_catch): New function.
3985 (generate_instinit): Likewise.
3986 (build_instinit_invocation): Likewise.
3987 (ctors_unchecked_throws_clause_p): Likewise.
3988 (add_instance_initializer): Deleted.
3989 (build_instance_initializer): Likewise.
3990 (in_instance_initializer): Likewise.
3991 (check_method_redefinition): instinit$ not to be verified.
3992 (java_complete_expand_methods): Generate instinit$, simplified code.
3993 (build_dot_class_method): Eliminated unnecessary locals. Use
3994 encapsulate_with_try_catch, removed unnecessary code.
3995 (fix_constructors): New local iii. Use build_instinit_invocation.
3996 (patch_method_invocation): Added comment.
3997 (maybe_use_access_method): Don't consider instinit$.
3998 (find_applicable_accessible_methods_list): Shorten the search for
3999 instinit$ too.
4000 (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
4001 (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
4002 (patch_throw_statement): Likewise. Fixed typo.
e64c46ce 4003
6ba57472
DE
40042001-08-12 David Edelsohn <edelsohn@gnu.org>
4005
4006 Revert:
4007 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4008 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
4009 ASM_FINAL_SPEC.
4010 (lang_specific_pre_link): Use set_input to set input_filename.
4011 Append `main' here.
4012 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
4013 (main): Fix definition.
4014 Strip `main' from classname.
4015 Fixes PR java/227.
4016
94aca342
ZW
40172001-08-11 Zack Weinberg <zackw@panix.com>
4018
4019 * lex.h: Don't include setjmp.h. Don't define
4020 SET_FLOAT_HANDLER or prototype set_float_handler.
4021
17126208
APB
40222001-08-09 Alexandre Petit-Bianco <apbianco@redhat.com>
4023
4024 * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
4025 `poplevel' in the right order.
4026
2cc07db4
RH
40272001-08-09 Richard Henderson <rth@redhat.com>
4028
4029 * Make-lang.in (class.o): Depend on TARGET_H.
4030 * class.c (emit_register_classes): Use target hooks instead of
4031 assemble_constructor and assemble_destructor.
4032
4009bb7d
APB
40332001-08-08 Alexandre Petit-Bianco <apbianco@redhat.com>
4034
4035 * check-init.c (flags.h): Include
4036 (check_init): Don't report uninitialized static class
4037 initialization flags, don't free bit index when doing static class
4038 initialization optimization.
4039 (check_for_initialization): Return type changed to `unsigned int.'
4040 (attach_initialized_static_class): New function.
4041 * class.c (add_method_1): Create the initialized static class
4042 table if necessary.
4043 (finish_class): Always emit deferred inline methods.
4044 * decl.c (emit_init_test_initialization): Moved to expr.c
4045 (complete_start_java_method): Don't traverse
4046 DECL_FUNCTION_INIT_TEST_TABLE.
4047 (lang_mark_tree): Mark hash tables in function decls.
4048 * expr.c (emit_init_test_initialization): Moved from decl.c.
4049 (build_class_init): Create LAG_DECL_SPECIFIC for the static class
4050 initialization flag, set DECL_CONTEXT and
4051 LOCAL_CLASS_INITIALIZATION_FLAG.
4052 (java_lang_expand_expr): Emit initialization code for static class
4053 initialized flags when entering block, if necessary.
4054 * gcj.texi (-fno-optimize-static-class-initialization): Documented.
4055 * java-tree.h (flag_optimize_sci): New global variable declaration.
4056 (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
4057 (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
4058 (LOCAL_FINAL_P): Fixed typo in comment.
4059 (FINAL_VARIABLE_P): Likewise.
4060 (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
4061 (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
4062 (struct lang_decl): New fields `ict', `smic' and `cif.'
4063 (check_for_initialization): New returned value for global.
4064 (attach_initialized_static_class): New global function.
4065 (STATIC_CLASS_INIT_OPT_P): New macro.
4066 * lang-options.h (-fno-optimize-static-class-initialization): New flag.
4067 * lang.c (java_decode_option): Handle
4068 `-fno-optimize-static-class-initialization'
4069 * parse.y (start_complete_expand_method): New function.
4070 (java_expand_method_bodies): Likewise.
4071 (attach_init_test_initialization_flags): Likewise.
4072 (adjust_init_test_initialization): Likewise.
4073 (emit_test_initialization): Likewise.
4074 (java_complete_expand_methods): Nullify abstract and native method
4075 bodies.
4076 (java_complete_expand_method): New locals `fbody', `block_body'
4077 and `exception_copy.' Reorganized: directly return on empty method
4078 bodies, call `start_complete_expand_method', remember definitely
4079 initialized static class in function, don't expand method bodies.
4080 (java_expand_classes): Call `java_expand_method_bodies' before
4081 `finish_class' when compiling to native.
4082 (resolve_expression_name): Use `orig' after building outer class
4083 field access.
67264b4f 4084 (patch_invoke): Remember static method invocations.
4009bb7d 4085
47907859
RH
40862001-08-06 Richard Henderson <rth@redhat.com>
4087
9a07cfaf 4088 * class.c (emit_register_classes): Pass a symbol_ref and priority
47907859
RH
4089 to assemble_constructor.
4090
36e10d77
APB
40912001-08-02 Alexandre Petit-Bianco <apbianco@redhat.com>
4092
4093 * java-tree.h (all_class_filename): New macro.
4094 (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
4095 (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
4096 newly created IDENTIFIER_NODE to `all_class_filename.'
4097
f2f25b6d
JS
40982001-08-01 Jeff Sturm <jsturm@one-point.com>
4099
9a07cfaf
RH
4100 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
4101 Use ggc_add_tree_root to register roots.
e64c46ce 4102
6ad7895a
APB
41032001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
4104
4105 * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
4106 second operand calling check_init.
4107 * decl.c (complete_start_java_method): Swaped second and third
4108 arguments while creating WITH_CLEANUP_EXPR node.
4109 * jcf-write.c (generate_bytecode_insns): Use second operand
4110 instead of third when handling WITH_CLEANUP_EXPR.
4111 * parse.y (java_complete_lhs): Expand second operand of
4112 WITH_CLEANUP_EXPR nodes.
4113 (patch_synchronized_statement): Swaped second and third arguments
4114 while creating WITH_CLEANUP_EXPR node.
4115
9d7d8362
APB
41162001-07-18 Alexandre Petit-Bianco <apbianco@redhat.com>
4117
4118 * parse.y (create_interface): Avoid cyclic inheritance report when
4119 syntax error encountered during class definition.
4120 Fixes PR java/2956
4121
578672a2
RO
41222001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4123
4124 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
4125 ASM_FINAL_SPEC.
4126 (lang_specific_pre_link): Use set_input to set input_filename.
4127 Append `main' here.
4128 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
4129 (main): Fix definition.
4130 Strip `main' from classname.
4131 Fixes PR java/227.
4132
6a65ea5b
TT
41332001-07-18 Tom Tromey <tromey@redhat.com>
4134
4135 For PR java/2812:
4136 * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
4137 * lex.c (java_new_lexer): Use ICONV_CONST.
4138 (java_read_char): Likewise.
4139 * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
4140 (jv-scan$(exeext)): Likewise.
4141
9d7d8362
APB
41422001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
4143
4144 * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
4145 * parse.y (check_class_interface_creation): Allow `private' if the
4146 enclosing is not an interface.
4147 (create_interface): Interface tagged public if the enclosing
4148 context is an interface.
4149 (create_class): Class tagged public if the enclosing context
4150 is an interface.
4151 Fixes PR java/2959
4152
41532001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
4154
4155 * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
4156 Fixes PR java/2665
4157
e6290e74
TJ
41582001-07-14 Tim Josling <tej@melbpc.org.au>
4159
4160 * check-init.c (check_init): Remove references to EXPON_EXPR.
4161
9d7d8362
APB
41622001-07-13 Alexandre Petit-Bianco <apbianco@redhat.com>
4163
4164 * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
4165 TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
4166 Fixes PR java/3602
4167
4b2dc1b2
TT
41682001-07-13 Tom Tromey <tromey@redhat.com>
4169
4170 * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
4171 invocation.
4172
b6e3e1ff
APB
41732001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
4174
4175 * parse.y (patch_method_invocation): Don't override primary if one
4176 is already provided, but let this$<n> be built. Fixed comment.
4177
41782001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
4179
4180 * parse.y (empty_statement:): Report empty statement error only
4181 when found at class declaration level.
4182 Fixes PR java/3635
4183
a3cb5122
TT
41842001-07-12 Tom Tromey <tromey@redhat.com>
4185
4186 * expr.c (expand_load_internal): New function.
4187 (LOAD_INTERNAL): Use it.
4188
29fcdaae
APB
41892001-07-11 Alexandre Petit-Bianco <apbianco@redhat.com>
4190
4191 * parse.y (verify_constructor_super): Compare anonymous class ctor
4192 args with `valid_method_invocation_conversion_p.'
4193 Fixes PR java/3285
4194
2df37a59
APB
41952001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
4196
4197 * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
4198 `-fsyntax-only.' Fixes PR java/3248
4199
42002001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
4201
4202 * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
4203
42042001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
4205
4206 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
4207 current function is static. Fixes PR java/1970
4208
42092001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
4210
4211 * parse.y (patch_method_invocation): Add enclosing context to ctor
4212 calls if necessary. Fixes PR java/2953
4213
42142001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
4215
4216 * parse.y (resolve_package): Abort if qualified expression member
4217 isn't right.
4218 (qualify_ambiguous_name): Don't qualify as type if `this' in use.
4219 Fixes PR java/1391
4220
74d04dd1
ZW
42212001-07-07 Zack Weinberg <zackw@stanford.edu>
4222
4223 * verify.c: Don't use // comments.
4224
af418b8c
TT
42252001-07-05 Tom Tromey <tromey@redhat.com>
4226
4227 * lang.c (flag_assume_compiled): Removed.
4228 * java-tree.h (flag_assume_compiled): Removed.
4229 * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
4230 -fhash-synchronization, -fuse-divide-subroutine,
4231 -fcheck-references, -femit-class-file, -femit-class-files,
4232 -fassume-compiled. Updated --encoding information. Changed
4233 -foutput-class-dir to `-d'.
4234
84a5b4f8
DB
42352001-07-04 Daniel Berlin <dan@cgsoftware.com>
4236
4237 * jcf-parse.c (parse_class_file): Add lineno parameter to
4238 debug_start_source_file call.
4239
0671eaf6
JM
42402001-07-04 Joseph S. Myers <jsm28@cam.ac.uk>
4241
4242 * gcj.texi: Use gpl.texi.
4243 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
4244 dependencies and use doc/include in search path.
4245
9be7529d
JS
42462001-07-03 Jeff Sturm <jsturm@one-point.com>
4247
4248 * parse.y (fix_constructors): Test if a CALL_EXPR invokes
4249 `this'. If so, don't build instance initializers.
4250
51e23701
APB
42512001-07-03 Alexandre Petit-Bianco <apbianco@redhat.com>
4252
4253 * parse.y (resolve_expression_name): Improved error message for
2df37a59 4254 inner class cases. Fixes PR java/1958
51e23701 4255
46f018e1
GDR
42562001-06-28 Gabriel Dos Reis <gdr@codesourcery.com>
4257
4258 * lang.c: #include diagnostic.h
4259 (lang_print_error): Add a `diagnostic_context *' parameter.
4260 (java_dummy_print): Likewise.
4261 * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
4262
51e23701
APB
42632001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
4264
4265 * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
4266 * jcf.h (typedef struct JCF): New bitfield `finished.'
4267 (JCF_FINISH): Set `finished.'
4268 (JCF_ZERO): Reset `finished.'
4269 Fixes PR java/2633
4270
42712001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
4272
4273 * parse.y (class_body_declaration:): Don't install empty instance
4274 initializers.
4275 Fixes PR java/1314
4276
4a70e37e
APB
42772001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
4278
4279 * class.c (set_super_info): Call `set_class_decl_access_flags.'
4280 (set_class_decl_access_flags): New function.
4281 * java-tree.h (set_class_decl_access_flags): New prototype.
4282 * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
4283 (parse_class_file): New local `decl_max_locals.' Take wide types
4284 into account to compute DECL_MAX_LOCALS.
4285 * parse.y (type_import_on_demand_declaration:): Ignore duplicate
4286 imports on demand.
4287
561a0365
JM
42882001-06-22 Jan van Male <jan.vanmale@fenk.wau.nl>
4289
4290 * zipfile.h: Use GCC_JCF_H instead of JCF_H.
4291
8e41c4f3
APB
42922001-06-20 Alexandre Petit-Bianco <apbianco@redhat.com>
4293
4294 * class.c (java_hash_tree_node): Fixed indentation in leading comment.
4295 * parse.y (do_resolve_class): Moved comments out to leading comment
4296 section. Removed local `start', New local `_ht' and
4297 `circularity_hash.' Record `enclosing' in hash table and search
4298 it to detect circularity. Use `enclosing' as an argument to
4299 `lookup_cl.' Free the hash table when done.
4300
c01b7cdf
TT
43012001-06-19 Tom Tromey <tromey@redhat.com>
4302
4303 * lex.c (java_read_char): Disallow invalid and overlong
4304 sequences. Fixes PR java/2319.
4305
21a6bb3c
JS
43062001-06-05 Jeff Sturm <jsturm@one-point.com>
4307
4308 * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
4309
0c90837b
APB
43102001-06-04 Alexandre Petit-Bianco <apbianco@redhat.com>
4311
4312 * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
4313 arguments accordingly.
4314
1347cc4f
JM
43152001-06-02 Joseph S. Myers <jsm28@cam.ac.uk>
4316
4317 * gcj.texi: Move contents to just after title page.
4318
12e248d6
APB
43192001-06-01 Alexandre Petit-Bianco <apbianco@redhat.com>
4320
4321 * parse.y (type_literals:): Use `build_incomplete_class_ref' with
4322 builtin type.
4323 (patch_incomplete_class_ref): Build the class ref, build the class
4324 init if necessary, complete the tree.
4325 Fixes PR java/2605
4326
19559012
APB
43272001-05-31 Alexandre Petit-Bianco <apbianco@redhat.com>
4328
4329 * parse.y (lookup_field_wrapper): Test `name' code.
4330 (resolve_qualified_expression_name): Test `qual_wfl' code.
4331 (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
4332 handle `qual_wfl' by code.
4333 (maybe_build_primttype_type_ref): Test `wfl' code.
4334
eb153223
TP
43352001-05-23 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
4336
4337 * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
4338 fdl.texi.
4339 (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls. Create
4340 the dvi file in the java directory.
4341
88657302
RH
43422001-05-25 Sam TH <sam@uchicago.edu>
4343
4344 * gen-table.pl javaop.h jcf.h lex.h,
4345 parse.h: Fix header include guards.
4346
719f0fde
JM
43472001-05-23 Joseph S. Myers <jsm28@cam.ac.uk>
4348
4349 * jv-scan.c (version): Update copyright year.
4350
075516bc
PB
43512001-05-21 Per Bothner <per@bothner.com>
4352
4353 * jcf-parse.c (read_class): If class is from .class or .zip file
4354 and it's already been read, don't push/pop parser context.
4355
9d289604
PB
43562001-05-18 Per Bothner <per@bothner.com>
4357
4358 * jvspec.c (lang_specific_pre_link): Re-arrange the linker
9a07cfaf 4359 command line so the jvgenmain-generated main program comes first.
9d289604 4360
48187504
TT
43612001-05-15 Tom Tromey <tromey@redhat.com>
4362
4363 * class.c (build_utf8_ref): Don't generate identifier based on
4364 utf8const contents.
4365
f17f1898
RH
43662001-05-12 Richard Henderson <rth@redhat.com>
4367
4368 * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
4369 * expr.c (java_lang_expand_expr): Expand it.
4370 (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
4371 calling build_exception_object_ref.
4372 * parse.y (catch_clause_parameter): Likewise.
4373 (build_dot_class_method): Likewise.
4374 (try_reference_assignconv): Likewise.
4375 * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
4376 * jcf-write.c (generate_bytecode_insns): Likewise.
4377
352b3f3f
APB
43782001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
4379
4380 * parse.y (build_unresolved_array_type): Set
4381 EXPR_WFL_QUALIFICATION on the newly created wfl.
4382 Fixes PR java/2538. Fixes PR java/2535.
4383
41ee0877
APB
43842001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
4385
17126208 4386 * parse.y (fix_constructors): Removed unnecessary assignment to
41ee0877
APB
4387 local. Moved assignment to `this$<n>', fixed comments and
4388 indentation.
4389 (build_wfl_wrap): Fixed indentation.
4390 Fixes PR java/2598, java/2579 and java/2658.
4391
4def8930
MD
43922001-05-03 Mo DeJong <mdejong@redhat.com>
4393
9a07cfaf 4394 * lex.c (java_new_lexer): Call iconv_close on temp handle used to
4def8930
MD
4395 check for byte swap.
4396
8fc6a63c
JS
43972000-05-02 Jeff Sturm <jsturm@one-point.com>
4398
4399 * expr.c (build_class_init): Move MODIFY_EXPR
4400 outside of COND_EXPR. Remove variable `call'.
4401
3e411c3f
KG
44022001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4403
4404 * decl.c: NULL_PTR -> NULL.
4405 * jcf-write.c: Likewise.
4406
0cd015ea
TT
44072001-05-01 Tom Tromey <tromey@redhat.com>
4408
4409 * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
4410 (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
4411 * gcj.texi: Updated copyright text. Include fdl.texi.
4412 (Top): Link to new node.
4413
6a117d00
PB
44142001-05-01 Per Bothner <per@bothner.com>
4415
4416 * parse.h (REGISTER_IMPORT): Use tree_cons instead of chainon.
4417
063df563
PB
44182001-05-01 Per Bothner <per@bothner.com>
4419
4420 * parse.y (java_pop_parser_context): The TREE_VALUE of a link in the
4421 import_list contains the name, not the TREE_PURPOSE.
4422
962584ea
KG
44232001-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4424
4425 * jcf-io.c (read_zip_member): Cast to long in comparison with
4426 signed value.
4427
4428 * jvspec.c (lang_specific_driver): Initialize variables.
4429
4430 * mangle.c (find_compression_record_match): Likewise.
4431
4432 * typeck.c (build_null_signature): Provide static prototype. Mark
4433 parameter with ATTRIBUTE_UNUSED.
4434
4435 * verify.c (verify_jvm_instructions): Initialize variable.
4436
86d9e8d8
BM
44372001-04-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4438
4439 * parse.y (do_resolve_class): Check for cyclic inheritance during
e64c46ce 4440 inner class resolution.
86d9e8d8 4441
9c491eb8
PB
44422001-04-27 Per Bothner <per@bothner.com>
4443
4444 * parse.y (java_expand_classes): Don't change ctxp_for_generation
4445 while iterating, since that could cause gc to lose stuff.
4446
56fe39c8
PB
44472001-04-26 Per Bothner <per@bothner.com>
4448
4449 Fix method search wrt scope of inner classes to match JLS2.
4450 * typeck.c (build_null_signature): New static function.
4451 (has_method): New function. Uses build_null_signature and lookup_do.
4452 * java-tree.h (has_method): New declaration.
4453 * parse.y (find_applicable_accessible_methods_list): Do not search
4454 context of inner classes here.
4455 (patch_method_invocation): Search scope, ie. current and outer clases,
4456 for method matching simple name, to find class.
4457
8789b9fa
PB
44582001-04-26 Per Bothner <per@bothner.com>
4459
4460 * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
4461 Fix thinko: If a single case, use if_icmpeq, not ifeq.
4462
4463 * constants.c (find_methodref_with_class_index): New function.
4464 (find_methodref_index): Use find_methodref_with_class_index.
4465 * java-tree.h (find_methodref_with_class_index): New declaration.
4466 * jcf-write.c (generate_bytecode_insns case CALL_EXPR): Don't change
4467 DECL_CONTEXT, instead use new find_methodref_with_class_index function.
4468 If context changed from interface to class, don't use invokeinterface.
4469
5acea42b
PB
44702001-04-25 Per Bothner <per@bothner.com>
4471
4472 * verify.c (verify_jvm_instructions): For field instructions,
4473 check that field index is valid. For invoke instructions, check that
4474 method index is valid.
4475
dd6f3662
AO
44762001-04-25 Alexandre Oliva <aoliva@redhat.com>
4477
4478 * config-lang.in (target_libs): Copy from $libgcj_saved.
4479
28f7d9d0
BM
44802001-04-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4481
4482 * decl.c (init_decl_processing): Add new class "protectionDomain"
4483 field.
4484 * class.c (make_class_data): Set initial value for "protectionDomain".
4485
d4c3ec27
KG
44862001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4487
4488 * jvspec.c (lang_specific_driver): Fix memory allocation
4489 deficit, by using concat in lieu of xmalloc/sprintf.
4490
3c0ce750
PB
44912001-04-20 Per Bothner <per@bothner.com>
4492
4493 Fixes to compile multiple .class files at once.
4494 * decl.c (init_decl_processing): Don't set CLASS_LOADED_P.
4495 * java-tree.h (CLASS_PARSED_P): New macro.
4496 (CLASS_LOADED_P): Re-define to use TYPE_SIZE and CLASS_PARSED_P.
4497 * jcf-parse.c (jcf_parse_source): Inline into read_class.
4498 (read_class): Avoid some code duplication.
4499 Don't call JCF_FINISH for a .class file - might be needed later.
4500 (jcf_parse): Don't call layout_class here. Check/set CLASS_PARSED_P
4501 rather than CLASS_LOADED_P, since latter implies class laid out.
4502 (yyparse): Do layout_class and JCF_FINISh here instead, in pass 2.
4503 * parse.y: Don't need to set CLASS_LOADED_P for array types.
4504
d6684bc8
KG
45052001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4506
4507 * Make-lang.in (java/boehm.o): Depend on toplev.h.
4508
4509 * boehm.c: Include toplev.h.
4510
10e2af38
TT
45112001-04-06 Tom Tromey <tromey@redhat.com>
4512 Alexandre Petit-Bianco <apbianco@redhat.com>
4513
4514 Fix for PR gcj/1404 and PR gcj/2332:
4515 * parse.y (build_array_from_name): If we use the type_wfl then
4516 accumulate dimensions from the original type as well.
4517 (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
4518
2d9fea5d
TT
45192001-04-06 Tom Tromey <tromey@redhat.com>
4520
4521 * parse.y (analyze_clinit_body): Return true if the second operand
4522 of a METHOD_EXPR is nonzero.
4523
613bb86e
TT
45242001-04-06 Tom Tromey <tromey@redhat.com>
4525
4526 * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
4527 directory.
4528 ($(srcdir)/java/parse.c): Likewise.
4529
8b66cd8f
APB
45302001-04-05 Alexandre Petit-Bianco <apbianco@redhat.com>
4531
4532 * gcj.texi: Use `which-gcj' instead of `which-g77.'
4533 (version-gcc): Initialized.
4534 (which-gcj): Likewise.
4535
73c299fc
APB
45362001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
4537
4538 * java-tree.h (struct lang_decl): New macro
4539 `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
4540 * parse.y (build_instance_initializer): New function.
4541 (add_instance_initializer): Use it.
4542 (java_fix_constructors): Set `current_class' before fix pass.
4543 (fix_constructors): Just return if already fixed. Move `super()'
67264b4f 4544 invocation ahead. Use `build_instance_initializer.'
73c299fc
APB
4545 Fixes PR java/1315.
4546
93a6eb78 45472001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
e64c46ce 4548
93a6eb78
APB
4549 * parse.y (resolve_qualified_expression_name): Pass field's
4550 DECL_CONTEXT to `not_accessible_p.'
4551 (not_accessible_p): Changed parameters order in `inherits_from_p'
67264b4f 4552 invocation.
93a6eb78 4553
4956c16e
AH
45542001-03-27 Andrew Haley <aph@cambridge.redhat.com>
4555
4556 * lang-options.h: Add flag_check_references.
4557
3cc48399
PB
45582001-04-04 Per Bothner <per@bothner.com>
4559
4560 * java-tree.h (CONSTANT_VALUE_P): New macro.
4561 * jcf-write.c (generate_classfile): Use CONSTANT_VALUE_P.
4562 * parse.y (maybe_build_class_init_for_field): New static function.
4563 (resolve_expression_name, resolve_field_access): Use
e64c46ce 4564 maybe_build_class_init_for_field instead of build_class_init
3cc48399
PB
4565 This does not do the init if the field is compile-time-constant.
4566 (resolve_field_access): Simplify.
4567
4568 * parse.y (fold_constant_for_init): Merge test into switch.
4569
d02af173
ZW
45702001-04-03 Zack Weinberg <zackw@stanford.edu>
4571
4572 * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
4573 on gansidecl.h.
4574 * buffer.c, jvgenmain.c: Don't include gansidecl.h.
4575
44a2150d
ZW
45762001-04-02 Zack Weinberg <zackw@stanford.edu>
4577
4578 * expr.c (pop_type_0): Save the result of the first
e64c46ce 4579 lang_printable_name call in a scratch buffer, so it
44a2150d
ZW
4580 won't be clobbered by the second call.
4581
de307574
APB
45822001-03-30 Alexandre Petit-Bianco <apbianco@redhat.com>
4583
4584 * parse-scan.y (array_type:): Rewritten.
4585 (type_declaration:): `empty_statement' replaces `SC_TK.'
4586 (class_member_declaration:): `empty statement' added.
4587 (method_body:): Simplified.
4588 (static_initializer:): Likewise.
4589 (primary_no_new_array:): Use `type_literals.'
4590 (type_literals:): New rule.
4591 (dims:): Set and update `bracket_count.'
4592 Fixes PR java/1074. Fixes PR java/2412.
4593
2ff50199
APB
45942001-03-28 Hans Boehm <boehm@acm.org>
4595
4596 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
4597 (get_boehm_type_descriptor): Set type on returned value to be a
4598 pointer length integer.
4599
80122075
KG
46002001-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4601
4602 * expr.c (pop_type_0): Call `concat' rather than building the
4603 string manually.
4604 (pop_type): Add format specifier in call to `error'.
4605
4606 * parse.y (patch_method_invocation): Avoid casting away
4607 const-ness.
4608
0f5c1ee4
JO
46092001-03-28 Jeffrey Oldham <oldham@codesourcery.com>
4610
4611 * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
4612
52a11cbf
RH
46132001-03-28 Richard Henderson <rth@redhat.com>
4614
4615 IA-64 ABI Exception Handling:
4616 * Make-lang.in (except.o): Don't depend on eh-common.h.
4617 * check-init.c (check_init): Handle EXC_PTR_EXPR.
4618 * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
4619 [soft_exceptioninfo_call_node]: Remove.
4620 [eh_personality_libfunc, lang_eh_runtime_type]: New.
4621 (end_java_method): No emit_handlers.
4622 * except.c (java_set_exception_lang_code): Remove.
4623 (method_init_exceptions): Don't call it.
4624 (prepare_eh_table_type): No CATCH_ALL_TYPE.
4625 (build_exception_object_ref): New.
4626 (expand_end_java_handler): Update for except.h name changes.
4627 (emit_handlers, expand_resume_after_catch): Remove.
4628 * expr.c (java_lang_expand_expr): Update for except.h name changes.
4629 (process_jvm_instruction): Use build_exception_object_ref.
4630 * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
4631 (soft_exceptioninfo_call_node): Remove.
4632 (build_exception_object_ref): Declare.
4633 * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
4634 soft_exceptioninfo_call_node. Move processing ...
4635 [EXC_PTR_EXPR]: ... here.
4636 * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
4637 * parse.y (catch_clause_parameter): Use build_exception_object_ref.
4638 (source_end_java_method): No java_set_exception_lang_code or
4639 emit_handlers.
4640 (build_dot_class_method): Use build_exception_object_ref.
4641 (try_reference_assignconv): Check EXC_PTR_EXPR not
4642 soft_exceptioninfo_call_node.
4643
ce1c98ea
RH
46442001-03-28 Richard Henderson <rth@redhat.com>
4645
4646 * java-tree.h (throw_node): Define as a single member of
4647 java_global_trees instead of a separate array.
4648 (JTI_THROW_NODE): New.
4649 * decl.c (throw_node): Don't declare.
4650 (init_decl_processing): Init a scalar throw_node.
4651 Don't register it for gc.
4652 * check-init.c (check_init): Reference scalar throw_node.
4653 * expr.c (build_java_athrow): Likewise.
4654 * jcf-write.c (generate_bytecode_insns): Likewise.
4655 * parse.h (BUILD_THROW): Likewise.
4656
da7da8f9
RH
46572001-03-28 Richard Henderson <rth@redhat.com>
4658
4659 * decl.c (end_java_method): Do not save and restore
4660 flag_non_call_exceptions.
4661 * parse.y (source_end_java_method): Likewise.
4662 * lang.c (flag_exceptions): Don't declare.
4663 (java_init_options): Set flag_non_call_exceptions. Set
4664 flag_exceptions here ...
4665 (java_init): ... not here.
4666
531073e7
RH
46672001-03-27 Richard Henderson <rth@redhat.com>
4668
4669 * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
4670 exceptions_via_longjmp.
4671
461fc4de
RH
4672 * lang.c (flag_new_exceptions): Don't declare it.
4673 (java_init_options): Or set it.
4674
c1e9f663
RH
46752001-03-27 Richard Henderson <rth@redhat.com>
4676
4677 * decl.c (end_java_method): Rename asynchronous_exceptions to
4678 flag_non_call_exceptions.
979988f3 4679 * parse.y (source_end_java_method): Likewise.
c1e9f663 4680
911e6107
KG
46812001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4682
4683 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
4684
b850de4f
MM
46852001-03-26 Mark Mitchell <mark@codesourcery.com>
4686
4687 * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
4688
ce06965e
APB
46892001-03-26 Alexandre Petit-Bianco <apbianco@redhat.com>
4690
4691 * parse.y (find_as_inner_class): Follow current package
4692 indications not to mistakingly load an unrelated class.
4693
cb9b7a8c
KG
46942001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4695
4696 * constants.c (PUTN): Use memcpy, not bcopy.
4697
4698 * lex.c (java_read_char): Use memmove, not bcopy.
4699
4700 * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
4701
fa029f45
PB
47022001-03-23 Per Bothner <per@bothner.com>
4703
4704 * verify.c (verify_jvm_instructions): Replace 3 pop_type by POP_TYPE
4705 macro for better error pin-pointing.
4706 * java-tree.h: Fix typo in comment.
4707
4708 * jcf-write.c (generate_bytecode_insns): Changes to TRY_FINALLY_EXPR.
4709 Don't include jsr/goto in exception range.
4710 Check if start and end of exception range are the same (also TRY_EXPR).
4711 Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
4712 However, do emit the following goto even if try_block is empty.
4713 Defer freeing exception_decl until after the finalizer, to make
4714 sure the local isn't reused in the finalizer. Fixes PR java/1208.
4715
4716 * parse.y (java_complete_lhs): If the try-clause is empty, just
4717 return the finally-clause and vice versa.
4718
b124f72e
APB
47192001-03-23 Alexandre Petit-Bianco <apbianco@redhat.com>
4720
4721 * gcj.texi (Input Options): documented the check for attribute
4722 `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
4723 * java-tree.h (flag_force_classes_archive_check): Declared extern.
4724 * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
4725 (jcf_parse): Check for the right classes archive if necessary.
4726 * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
4727 (jcf_parse_fields): Fixed indentation.
4728 * jcf-write.c (append_gcj_attribute): New function.
4729 (generate_classfile): Compute the attribute count, invoke
4730 `append_gcj_attribute'.
4731 * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
ee142fe7 4732 turned into bit-fields. New bit-field `right_zip.'
b124f72e
APB
4733 (JCF_ZERO): Set `right_zip' to zero.
4734 * lang-options.h (-fforce-classes-archive-check): Added flag.
4735 * lang.c (flag_force_classes_archive_check): New flag.
4736 (lang_f_options): New entry `force-classes-archive-check.'
4737 Fixes PR java/1213.
4738
4ff17c6a
AH
47392001-02-07 Andrew Haley <aph@redhat.com>
4740
4741 * gcj.texi (Configure-time Options): Add -fcheck-references.
4742 * expr.c (build_java_indirect_ref): New function.
3e02b1c3 4743 (java_check_reference): New function.
4ff17c6a
AH
4744 (build_java_array_length_access): Use build_java_indirect_ref to
4745 check for null references.
4746 (build_java_arrayaccess): Likewise.
4747 (build_get_class): Likewise.
4748 (build_field_ref): Likewise.
4749 (invoke_build_dtable): Likewise.
4750 (build_invokeinterface): Likewise.
4751 * lang.c (lang_f_options): Add flag_check_references.
4752 * jvspec.c (jvgenmain_spec): Add flag_check_references.
4753 * java-tree.h (flag_check_references): New variable.
4754 * lang.c (flag_check_references): Likewise.
e64c46ce 4755 * parse.y (patch_invoke): Use java_check_reference.
3e02b1c3
AH
4756 (patch_assignment): Allow for extra nesting in
4757 _Jv_CheckArrayStore.
4ff17c6a 4758
f2a29271
BM
47592001-03-23 Bryce McKinlay <bryce@albatross.co.nz>
4760
4761 * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
4762 * lex.c (cxx_keywords): Likewise.
4763
2ff50199
APB
47642001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
4765
4766 * parse.y (qualify_ambiguous_name): Broaden `length'
4767 recognition. Help MODIFY_EXPR be resolved as expression names.
4768 Fixes PR java/2066. Fixes PR java/2400.
4769
60c87482
BM
47702001-03-21 Bryce McKinlay <bryce@albatross.co.nz>
4771
e64c46ce 4772 * gjavah.c (process_file): Mark interface definitions with
60c87482
BM
4773 "__attribute__ ((java_interface))".
4774
96c6f628
APB
47752001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
4776
4777 * class.c (layout_class): Fixed push_super_field's second
4778 argument. Fixes PR java/2333.
4779 (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
4780 too early to lay innerclasses out.
4781
7abecd65
TT
47822001-03-20 Tom Tromey <tromey@redhat.com>
4783 Alexandre Petit-Bianco <apbianco@redhat.com>
4784
4785 * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
4786 inside an array reference. Insertion of the array store check
4787 rewritten. Fixes PR java/2299.
4788
4aed8938
TT
47892001-03-20 Tom Tromey <tromey@redhat.com>
4790
4791 * lex.c (java_read_unicode): Only accept leading `u's.
4792
ddd705d1
TT
47932001-03-20 Tom Tromey <tromey@redhat.com>
4794
4795 * jcf-parse.c (read_class): Initialize `class'.
4796
de83bf66
MK
47972001-03-20 Matt Kraai <kraai@alumni.carnegiemellon.edu>
4798
4799 * jcf_parse.c (jcf_parse): Eliminate unused variable.
4800
92643fea
MM
48012001-03-19 Mark Mitchell <mark@codesourcery.com>
4802
4803 * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
4804 (layout_class): Likewise.
4805 (layout_class_method): Likewise.
4806 (emit_register_classes): Likewise.
4807 * decl.c (builtin_function): Likewise.
4808 (give_name_to_locals): Likewise.
4809
54646811
PB
48102001-03-19 Per Bothner <per@bothner.com>
4811
80fc2e84
PB
4812 * jcf-parse.c (load_inner_classes): Check CLASS_LOADED_P
4813 before trying to load an inner class.
4814
54646811
PB
4815 Fixes to process to command-line .class files in two passes.
4816 * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P): New flags.
4817 (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P): Rename to ..
4818 (CLASS_FROM_CURRENTLY_COMPILED_P): ... because it is more general now.
4819 * class.c (is_compiled_class): Fix for renamed flag.
4820 * parse.y (maybe_create_class_interface_decl): Likewise.
4821 * jcf-parse.c (yyparse): Also set if compiling .class files.
4822 * jcf-parse.c (read_class); Read current_class.
4823 (jcf_parse): Make static.
4824 (load_inner_classes): New function, with code moved from jcf_parse,
4825 because we need to inner classes after the command-line files are read.
4826 (yyparse): Set finput to NULL when it doesn't need to be closed.
4827 Reduce use of main_jcf (basically only for archive) and
4828 use finput instead of main_jcf->read_state.
4829 Inline jcf_figure_file_type into yyparse.
4830 Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
4831 Defer load_inner_classes and parse_class_file to a second pass,
4832 after we've correctly mapped command-line .clas fiels to classes.
4833 (jcf_figure_file_type): Removed.
4834 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): Removed flags.
4835 (JCF_ZERO): Also clear zipd field.
4836 * zipfile.h: Conditionalize on JCF_H insread of JCF_ZIP.
4837
48382001-03-18 Matt Kraai <kraai@alumni.carnegiemellon.edu>
4839
4840 * jcf-parse.c (yyparse): Change ch from char * to char.
4841
8b1edcee
PB
48422001-03-19 Per Bothner <per@bothner.com>
4843
4844 * jvspec.c (lang_specific_driver): Check for .zip and .jar files.
4845 Add constructed filelist-file at end, following -xjava. Thus any .o
4846 and library files are not affected by the -xjava. Also wrap
54646811 4847 explicit @FILE with -xjava and -xnone.
8b1edcee 4848
6bc5f6cb
AH
48492001-03-19 Andrew Haley <aph@cambridge.redhat.com>
4850
9a07cfaf
RH
4851 * class.c (build_static_field_ref): Call make_decl_rtl() after
4852 setting the DECL_EXTERNAL flag.
6bc5f6cb 4853
daaaf29f
PB
48542001-03-17 Per Bothner <per@bothner.com>
4855
90f59043
PB
4856 * decl.c (clear_binding_level): Fix initializer (broke 03-15).
4857
478e7ed6
PB
4858 * jcf-write.c (generate_bytecode_insns): Handle emitting iinc
4859 when result is is needed (target is STACK_TARGET).
4860
daaaf29f 4861 * parse.h (JDEP_SOLV): Removed.
d148b6aa 4862 * parse.y (register_incomplete_type): Use JDEP_TO_RESOLVE instead.
daaaf29f 4863
d148b6aa
PB
4864 * parse.y (incomplete_class_list): Removed.
4865 (obtain_incomplete_type): Don't use or set incomplete_class_list.
4866 It doesn't work if resolve_class changes the name of an array type
4867 that is on the list and then someone else looks for the modified name.
4868 Also, seems liable to break when compiling multiple source files at
4869 once. So the simplest is to just remove incomplete_class_list -
4870 it is only a minor space win and it is not even clear it saves time.
daaaf29f
PB
4871
4872 * parse.y (resolve_class): Remove unneeded promote_type.
4873
4763d38f
PB
48742001-03-15 Per Bothner <per@bothner.com>
4875
b16e8f08
PB
4876 * java-tree.h (BLOCK_IS_IMPLICIT): New flag.
4877 * parse.h (BLOCK_EXPR_ORIGIN): Removed macro.
4878 * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
4879 Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
8b1edcee 4880
3a2e5926
PB
4881 * jcf-parse.c (yyparse): Set/reset input_filename for source file.
4882 * parse.y (java_expand_classes): Likewise.
8b1edcee 4883
47a50de9
PB
4884 * parse.y (expand_start_java_method): Was only called once and had a
4885 misleading name, so inline in caller java_complete_expand_method.
3a2e5926 4886 (enter_a_block): Likewise inline in enter_block and remove.
47a50de9 4887
4763d38f
PB
4888 Remove junk from when gcc/java was created (by copying from C/C++).
4889 * decl.c (keep_next_level_flag, keep_next_if_subblocks): Remove.
4890 (struct binding_level): Remove fields keep, keep_if_subblocks,
4891 more_cleanups_ok, have_cleanups (which have never been used).
4892 (pushlevel, poplevel): Remove related useless code.
19f8e04b 4893
69ca5554
PB
4894 * class.c (make_class_data): The class_dtable_decl (i.e. the
4895 vtable for Class) should be external, except when compiling Class.
4896
7d32abcd
PB
4897 * jvspec.c (lang_specific_driver): Fix -C handling.
4898 Check -save-temps to see if temp @FILE should be deleted.
4899 Follow-up to/fix for February 16 patch.
4900
19f8e04b
PB
4901 * verify.c (verify_jvm_instructions): Better error msgs for dup.
4902 (type_stack_dup): Remove no-longer neded error check.
4903
551bf03c
BM
49042001-03-15 Bryce McKinlay <bryce@albatross.co.nz>
4905
4906 * mangle.c (mangle_record_type): Rename 'from_pointer' argument
4907 to 'for_pointer'. If this type is for a pointer (argument) mangling,
e64c46ce 4908 don't surround the element with 'N..E' if the type name is
551bf03c
BM
4909 unqualified.
4910
19e7881c
MM
49112001-03-14 Mark Mitchell <mark@codesourcery.com>
4912
d1d61788
MM
4913 * class.c (build_static_field_ref): Use COPY_DECL_RTL,
4914 DECL_RTL_SET_P, etc.
19e7881c
MM
4915 (make_method_value): Likewise.
4916 (get_dispatch_table): Likewise.
4917
4918 * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
8b1edcee 4919
bcacc465
TT
49202001-03-07 Tom Tromey <tromey@redhat.com>
4921
4922 * config-lang.in (lang_requires): Define.
4923
de6c5979
BL
49242001-03-07 Brad Lucier <lucier@math.purdue.edu>
4925
4926 * typeck.c (convert): Check flag_unsafe_math_optimizations,
4927 not flag_fast_math.
4928
6d37cf2f
PB
49292001-03-05 Per Bothner <per@bothner.com>
4930
4931 Fix a problem where rest_of_decl_compilation applied to
4932 class_dtable_decl causes problems because it was done too early,
4933 before output file was opened.
4934 * decl.c (init_decl_processing): Remove init of class_dtable_decl.
4935 * class.c (class_dtable_decl): Add macro - element of class_roots.
4936 (make_class_data): Define class_dtable_decl.
4937 * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl): Removed.
4938
d6edb99e
ZW
49392001-03-01 Zack Weinberg <zackw@stanford.edu>
4940
4941 * java/class.c, java/decl.c, java/java-tree.h: Replace all
4942 uses of 'boolean' with 'bool'.
4943
f7143427
ZW
49442001-03-01 Zack Weinberg <zackw@stanford.edu>
4945
4946 * lang-specs.h: Add zero initializer for cpp_spec field to all
4947 array elements.
4948
fea2d5da
PB
49492001-02-16 Per Bothner <per@bothner.com>
4950
4951 Handle compiling multiple input files at once, and @FILE syntax.
e4087691 4952 * gcj.texi: Updated documentation to match.
fea2d5da
PB
4953 * java-tree.h (flag_filelist_file, init_src_parse): New declarations.
4954 * jcf-parse.c (parse_source_file): Split into ...
4955 (parse_source_file_1): New function - and:
4956 (parse_source_file_2): New function.
4957 (yyparse): On -ffilelist-file, open and scan named file.
4958 On first pass over files, only do parse_source_file_1.
4959 A new second pass calls parse_source_file_2 for each file to compile.
4960 (init_jcf_parse): Call init_src_parse.
4961 * jvspec.c (INDIRECT_FILE_ARG): New flag.
4962 (lang_specific_driver): Support @FILELIST-FILE syntax, as well
4963 as multiple input file combined in one compilation.
4964 * lang-options.h: Add -ffilelist-file
4965 * lang.c (flag_filelist_file): New flag variable.
4966 (lang_f_options): Handle -ffilelist-file.
4967 * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
4968 * parse.h (struct parse_ctxt): Remove fields incomplete_class and
4969 gclass_list - use global fields of src_parse_roots instead.
4970 * parse.y (src_parse_roots): New array.
4971 (incomplete_class_list, gclass_list): New macros.
4972 (push_parser_context, java_pop_parser_context,
4973 java_parser_context_resume): Don't fiddle with deleted fields.
4974 (various): Use incomplete_class gclass_list and global macros
4975 instead of parse_ctxt fields - the lists are global.
4976 (init_src_parse): New function.
4977
62c9aa5f 49782001-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9b58f739
RK
4979
4980 * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
4981
064a552c
APB
49822001-02-20 Alexandre Petit-Bianco <apbianco@redhat.com>
4983
4984 * parse.y (check_inner_class_access): Moved declaration of local
4985 `enclosing_decl_type' to the right location.
4986
a648f4e4
BM
49872001-02-19 Bryce McKinlay <bryce@albatross.co.nz>
4988
e64c46ce 4989 * parse.y (parser_check_super_interface): Don't call
a648f4e4 4990 check_pkg_class_access for an inner interface.
e64c46ce 4991 (parser_check_super): Don't call check_pkg_class_access for inner
a648f4e4 4992 class.
e64c46ce 4993 (do_resolve_class): Simplify enclosing type loop. Don't call
a648f4e4
BM
4994 check_pkg_class_access if CL and DECL are not set.
4995 (find_in_imports_on_demand): Set DECL if class_type needed to be
4996 loaded. Don't call check_pkg_class_access for an inner class.
4997 (check_inner_class_access): Rewritten to implement member access
4998 rules as per spec 6.6.1.
4999 (check_pkg_class_access): Handle the empty package correctly.
5000 (in_same_package): New function. Determine if two classes are in the
5001 same package.
5002
35ab11f0
BM
50032001-02-18 Bryce McKinlay <bryce@albatross.co.nz>
5004
5005 * typeck.c (build_java_array_type): Don't try to poke a public `clone'
5006 method into array types.
5007 * parse.y (patch_method_invocation): Bypass access check on clone call
5008 to array instance.
e64c46ce 5009
055adbaa
APB
50102001-02-15 Alexandre Petit-Bianco <apbianco@redhat.com>
5011
5012 * expr.c (build_instanceof): Check for arrays when trying fold to
5013 false.
5014
e658449e
JM
50152001-02-15 Jim Meyering <meyering@lucent.com>
5016
fd48c9b5
DD
5017 * Make-lang.in (java.install-common): Depend on `installdirs'.
5018 (java.install-info): Likewise.
e658449e 5019
4238a754
BM
50202001-02-15 Bryce McKinlay <bryce@albatross.co.nz>
5021
5022 * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
5023
e101152f 50242001-02-14 Tom Tromey <tromey@redhat.com>
9a07cfaf 5025 Alexandre Petit-Bianco <apbianco@cygnus.com>
e101152f 5026
055adbaa
APB
5027 Fix for PR java/1261.
5028 * typeck.c (build_java_array_type): Add public `clone' method to
5029 arrays.
5030 * parse.y (resolve_qualified_expression_name): Use current_class
e101152f 5031 when checking for inaccessibility.
055adbaa 5032 (patch_method_invocation): Fixed error message when accessibility
e101152f
APB
5033 denied. Added `from_super' argument.
5034
50352001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
5036
5037 * parse.y (resolve_class): Don't build a fake decl. Use the one
5038 already built.
5039 * typeck.c (build_java_array_type): Build and assign decl to array
5040 type.
5041
50422001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
5043
5044 * parse.y (not_accessible_p): Changed leading comment. Added extra
5045 `where' argument. Use it to enforce protected access rules.
5046 (resolve_qualified_expression_name): Added extra argument to
5047 not_accessible_p.
5048 (patch_method_invocation): Use argument `primary' to provide
5049 not_accessible_p with an extra argument.
5050 (lookup_method_invoke): Added extra argument to not_accessible_p.
5051 (search_applicable_method_list): Likewise.
5052
863cd85a
APB
50532001-02-13 Alexandre Petit-Bianco <apbianco@redhat.com>
5054
5055 * parse.y (resolve_qualified_expression_name): Try to resolve as
5056 an inner class access only if `decl' is a TYPE_DECL.
5057
94807d33
APB
50582001-02-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
5059
5060 * decl.c (classdollar_identifier_node): Initialize.
e64c46ce 5061 * java-tree.h (enum java_tree_index): New entry
94807d33
APB
5062 `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
5063 (classdollar_identifier_node): New macro.
5064 (ID_CLASSDOLLAR_P): Likewise.
5065 * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
5066 (build_dot_class_method_invocation): Likewise.
5067 (find_applicable_accessible_methods_list): `class$' can't be
5068 inherited.
5069
30f87f1a
APB
50702001-02-09 Raja R Harinath <harinath@cs.umn.edu>
5071
5072 * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
5073
50742001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
5075
5076 * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
5077 * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
5078 gone.
5079
1e97aa40
APB
50802001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
5081
5082 * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
5083 outside of the `__U' sequence too.
5084 (unicode_mangling_length): Count `_' or `U' outside of the `__U'
5085 sequence too.
5086
a395f5ab
APB
50872001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
5088
5089 * jvgenmain.c (error): Reversed 2001-02-01 deletion.
5090
1b43b6be
APB
50912001-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
5092
5093 * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
5094 (JVGENMAIN_OBJS): Likewise.
e64c46ce 5095 * java-tree.h (append_gpp_mangled_name): New prototype.
1b43b6be
APB
5096 * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
5097 Removed cast calling `gcc_add_root.'
5098 * jvgenmain.c (mangle_obstack): New global, initialized.
5099 (main): Use it.
5100 (do_mangle_class): Constify local `ptr.'
5101 Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
5102 append_gpp_mangle_name and update `count' if necessary.
5103 Use `mangle_obstack.'
5104 * mangle.c (append_unicode_mangled_name): Removed.
5105 (append_gpp_mangled_name): Likewise.
5106 (unicode_mangling_length): Likewise.
5107 (mangle_member_name): Return type set to `void.'
5108 (mangle_field_decl): Don't append `U' in escaped names.
5109 (mangle_method_decl): Likewise.
5110 (mangle_member_name): Just use `append_gpp_mangled_name.'
5111 * mangle_name.c: New file.
5112
4a83be51
PB
51132001-02-07 Per Bothner <per@bothner.com>
5114
5115 * check-init.c (check_init): Fix TRY_FINALLY_EXPR logic.
5116
5117 * check-init.c (check_init): Don't call done_alternative after
5118 processing loop code, as a LOOP_EXPR never terminates normally.
5119
7e5fd99f
JM
51202001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5121
5122 * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
5123
1456345e
APB
51242001-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
5125
5126 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
5127 DECLs.
5128
77aff9f9
TT
51292001-02-06 Tom Tromey <tromey@redhat.com>
5130
5131 * lex.c (java_new_lexer): Longer error message.
5132
c00dd14e
JS
51332001-02-05 Jeff Sturm <jeff.sturm@commerceone.com>
5134 Alexandre Petit-Bianco <apbianco@cygnus.com>
5135
5136 * typeck.c (build_prim_array_type): Added leading comment.
5137 (build_java_array_type): Moved locals out of
5138 block. Always create the `data' field, fixed alignment to match
5139 C++.
5140
6d091870
TT
51412001-02-04 Tom Tromey <tromey@redhat.com>
5142
5143 * expr.c (java_lang_expand_expr): Don't bother recomputing
5144 `length'. Use rest_of_decl_compilation, not make_decl_rtl.
5145 Fixes PR java/1866.
5146
1ebb5e73
APB
51472001-02-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
5148
5149 * parse.y (process_imports): Save the original name of the import
5150 for better error report.
5151
ca5b1ff8
BM
51522001-02-04 Bryce McKinlay <bryce@albatross.co.nz>
5153
5154 * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
5155 of macros used when compiling jvspec.c.
5156 * jvspec.c (lang_specific_driver): Link with the shared
5157 libgcc by default.
5158
62c9aa5f 51592001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
400500c4
RK
5160
5161 * check-init.c (check_init): Call internal_error instead of fatal.
5162 * expr.c (java_lang_expand_expr): Likewise.
5163 * jcf-parse.c (get_constant): Likewise.
5164 * mangle.c (java_mangle_decl): Likewise.
5165 * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
5166 (operator_string): Likewise.
5167 * check-init.c (check_init): Call abort instead of fatal.
5168 * class.c (build_class_ref): Likewise.
5169 * constants.c (write_constant_pool): Likewise.
5170 * decl.c (start_java_method): Likewise.
5171 * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
5172 (java_stack_dup, encode_newarray_type): Likewise.
5173 (build_java_array_length_access): Likewise.
5174 (build_java_check_indexed_type, expand_java_pushc): Likewise.
5175 (build_java_soft_divmod, build_invokeinterface): Likewise.
5176 * java-tree.h (INNER_CLASS_P): Likewise.
5177 * jcf-parse.c (parse_signature, get_name_constant): Likewise.
5178 (give_name_to_class, get_class_constant): Likewise.
5179 * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
5180 (find_constant_index, generate_bytecode_conditional): Likewise.
5181 (generate_bytecode_insns, perform_relocations): Likewise.
5182 * lex.c (java_unget_unicode, java_lex): Likewise.
5183 * mangle.c (mangle_type, mangle_record_type): Likewise.
5184 (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
5185 (finish_mangling): Likewise.
5186 * parse.h (MARK_FINAL_PARMS): Likewise.
5187 * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
5188 (obtain_incomplete_type, java_complete_class): Likewise.
5189 (java_check_regular_methods, java_complete_expand_method): Likewise.
5190 (cut_identifier_in_qualified, check_deprecation): Likewise.
5191 (patch_invoke, find_applicable_accessible_methods_list): Likewise.
5192 (java_complete_lhs, lookup_name_in_blocks): Likewise.
5193 (check_final_variable_indirect_assignment, build_unaryop): Likewise.
5194 * typeck.c (set_local_type, parse_signature_type): Likewise.
5195 (parse_signature_string, build_java_signature): Likewise;
5196 (set_java_signature): Likewise.
5197 * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
5198 * class.c (add_method): Call fatal_error instead of fatal.
5199 (build_static_field_ref): Likewise.
5200 * expr.c (build_known_method_ref, expand_invoke): Likewise.
5201 * jcf-parse.c (get_constant, jcf_parse): Likewise.
5202 * lex.c (java_new_new_lexer): Likewise.
5203 * jv-scan.c (main): Likewise.
5204 (fatal_error): Renamed from fatal.
5205 * jcf-parse.c (yyparse): Call fatal_io_error instead of
5206 pfatal_with_name.
5207 * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
5208 (yyparse): Likewise.
5209 * jcf-write.c (make_class_file_name, write_classfile): Likewise.
5210 * lex.c (java_get_line_col): Likewise.
5211 * jcf-parse.c (load_class): Make errors non-fatal.
5212 * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
e64c46ce 5213
4bae4eb5
BM
52142001-02-01 Bryce McKinlay <bryce@albatross.co.nz>
5215
5216 * jvgenmain.c (class_mangling_suffix): Remove unused string.
5217 (error): Remove unused function.
5218 (main): Don't use "__attribute__ alias" on generated class symbol.
5219
c0b00d37
APB
52202001-01-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
5221
5222 * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
5223 argument.
5224 * parse.y (finish_method_declaration): Code accounting for WFLed
5225 method DECL_NAMEs deleted.
5226 (check_abstract_method_definitions): Likewise.
5227 (resolve_type_during_patch): Layout resolved type.
5228 * typeck.c (lookup_do): Removed unused local.
5229
4bae4eb5 52302001-01-30 Bryce McKinlay <bryce@albatross.co.nz>
eb59e547
BM
5231
5232 * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
5233 * decl.c (init_decl_processing): Use integer_minus_one_node, not
5234 integer_negative_one_node.
5235 * expr.c (build_java_binop): Likewise.
5236
4bae4eb5 52372001-01-24 Jeff Sturm <jeff.sturm@commerceone.com>
7be00c49
JS
5238
5239 * zextract.c (read_zip_archive): Read file_offset before writing
5240 zipd and consequently clobbering the header contents.
5241
c913b6f1
KG
52422001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5243
5244 * Make-lang.in: Remove all dependencies on defaults.h.
5245 * decl.c: Don't include defaults.h.
5246 * expr.c: Likewise.
5247 * parse.y: Likewise.
5248
c4faeb92
APB
52492001-01-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
5250
5251 * ChangeLog (2001-01-21): Fixed typo.
5252 * class.c (layout_class_method): Code accounting for WFLed
5253 method DECL_NAMEs deleted.
5254 * constant.c (find_methodref_index): Likewise.
5255 * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
5256 * java-tree.h (DECL_FUNCTION_WFL): New macro.
5257 (struct lang_decl): New field `wfl'.
5258 (java_get_real_method_name): Prototype deleted.
5259 * mangle.c (mangle_method_decl): Code accounting for WFLed
5260 method DECL_NAMEs deleted.
5261 * parse.h (GET_METHOD_NAME): Macro deleted.
5262 * parse.y (reset_method_name): Deleted.
5263 (method_header): Set DECL_FUNCTION_WFL.
5264 (check_abstract_method_header): Code accounting for WFLed method
5265 DECL_NAMEs deleted.
5266 (java_get_real_method_name): Deleted.
5267 (check_method_redefinition): Code accounting for WFLed method
5268 DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
5269 (java_check_regular_methods): Likewise.
5270 (java_check_abstract_methods): Likewise.
5271 (java_expand_classes): Don't call `reset_method_name.'
5272 (search_applicable_method_list): Use DECL_NAMEs instead of
5273 GET_METHOD_NAME.
5274 * typeck.c (lookup_do): Code accounting for WFLed method
5275 DECL_NAMEs deleted.
5276
97876d66
RE
52772001-01-25 Richard Earnshaw <rearnsha@arm.com>
5278
5279 * lex.c (java_read_char): Check for EOF from getc first.
5280
493d561d
APB
52812001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
5282
5283 * class.c (layout_class): Don't lay the superclass out if it's
5284 already being laid out.
5285 * jcf-parse.c (handle_innerclass_attribute): New function.
5286 (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
5287 handle_innerclasses_attribute.
5288 (jcf_parse): Don't load an innerclasses if it's already being
5289 laid out.
5290 * jcf-write.c (append_innerclass_attribute_entry): Static
5291 `anonymous_name' and its initialization deleted. `ocii' and `ini'
5292 to be zero for anonymous classes.
5293
52942001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
5295
5296 * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
5297 necessary.
5298 * jcf-parse.c (set_source_filename): Use
5299 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
5300
53012001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
5302
5303 * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
5304 gets a unique asm name.
5305
53062001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
5307
5308 * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
5309 (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
5310 if necessary.
5311 (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
5312 * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
5313 * parse.y (lookup_package_type_and_set_next): Deleted.
5314 (resolve_package): Removed unnecessary code.
5315 (find_applicable_accessible_methods_list): `finit$' can't be
e64c46ce 5316 inherited.
493d561d
APB
5317 * verify.c (pop_argument_types): Added missing prototype.
5318
7c01b2b5
BM
53192001-01-23 Bryce McKinlay <bryce@albatross.co.nz>
5320
5321 * config-lang.in: Disable java by default.
5322
80261b56
TT
53232001-01-23 Tom Tromey <tromey@redhat.com>
5324
5325 * gcj.texi (Copying): New node.
5326 Added copyright information.
5327
a4796c80
PB
53282001-01-21 Per Bothner <per@bothner.com>
5329
5330 Various fixes to allow compiling a compressed .jar/.zip archive.
5331 * zipfile.h (struct ZipFileCache): Replace by struct ZipFile.
5332 (struct ZipFile): Add fields name and next (from ZipFileCache).
5333 (struct ZipDirectory): New field zipf points to owning ZipFile.
5334 * jcf.h (struct ZipDirectory): Add forward declaration.
5335 (struct JCF): Declare zipd field to have type struct ZipDirectory.
5336 Remove seen_in_zip and zip_offset fields.
5337 (JCF_SEEN_IN_ZIP): New macro.
5338 * zextract.c (read_zip_archive): Set ZipDirectory's zipf field.
5339 * jcf-io.c: Change all ZipFileCache to ZipFile.
5340 (read_zip_member): New function.
5341 (open_in_zip): Call read_zip_member.
5342 * jcf-parse.c (find_in_current_zip): Remove function.
5343 (read_class): Merge in find_in_current_zip functionality.
5344 Call read_zip_member if needed.
5345 (parse_zip_file_entries): Use read_zip_member.
5346 (process_zip_dir): Update for removed and added JCF fields.
5347 (jcf_figure_file_type): Re-use, don't copy initial ZipFile struct.
5348
b5c4fed9
PB
53492001-01-21 Per Bothner <per@bothner.com>
5350
5351 Minor optimization of static ggc roots.
5352 * jcf-parse.c (parse_roots): New static field.
5353 (current_field, current_method, current_file_list): Replace by macros
5354 naming fields of parse_roots.
5355 (init_jcf_parse): Combine 3 ggc_add_tree_root calls to 1.
5356 * class.c (class_roots): New static field.
5357 (registered_class, fields_ident, info_ident, class_list):
5358 New macros naming fields of parse_roots.
5359 (build_static_field_ref): Don't register roots here.
5360 (layout_class): Static field list replaced by macro class_list.
5361 (init_class_processing): Call ggc_add_tree_root for 4 roots.
5362 Initialize fields_ident and info_ident here.
5363
3432b91b
PB
53642001-01-21 Per Bothner <per@bothner.com>
5365
5366 * jcf-parse.c (ggc_mark_jcf): New function.
5367 (init_jcf_parse): Register current_jcf as ggc root.
5368
2c36c7fd
PB
53692001-01-21 Per Bothner <per@bothner.com>
5370
5371 * lang.c (put_decl_node): Print method's name.
5372
9c0c88ac
PB
53732001-01-21 Per Bothner <per@bothner.com>
5374
5375 * verify.c (VERIFICATION_ERROR_WITH_INDEX): New macro.
5376 (verify_jvm_instructions): Use it, for better error messages on loads.
5377
230cbd5f
PB
53782001-01-21 Per Bothner <per@bothner.com>
5379
c4faeb92 5380 * verify.c (merge_type_state): Still may have to merge even if
230cbd5f
PB
5381 LABEL_VERIFIED (label).
5382
e6b6db0d
PB
53832001-01-21 Per Bothner <per@bothner.com>
5384
5385 * parse.y (method_header): Don't set the DECL_NAME of a FUNCTION_DECL
5386 to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
5387
b57300bc
PB
53882001-01-19 Per Bothner <per@bothner.com>
5389
5390 * expr.c (pop_type_0): Only return object_ptr_type_node on mismatch
5391 if expeting an interface type. Refines Tom's change of 2000-09-12.
5392
ee08d4cc
PB
53932001-01-18 Per Bothner <per@bothner.com>
5394
5395 * gcj.texi (Input Options): Mention .java files.
5396
b1117741
APB
53972001-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
5398
5399 * lang-options.h (-Wunsupported-jdk11): Removed.
5400 * lang.c (flag_not_overriding): Deleted.
5401 (flag_static_local_jdk1_1): Likewise.
5402 (lang_W_options): Removed "unsupported-jdk11" entry.
5403 * parse.y (java_check_methods): Removed dead code.
5404
2dc73168
TT
54052001-01-17 Tom Tromey <tromey@redhat.com>
5406
5407 Changes suggested by Per Bothner:
5408 * gcj.texi (Input Options): Don't mention input files.
5409 (Code Generation): Updated --main information.
5410 (Invoking jcf-dump): Mention that --javap is incomplete.
5411 From Alexandre Petit-Bianco:
5412 (Warnings): Don't mention -Wunsupported-jdk11.
5413 My stuff:
5414 (Compatibility): Mention JDK 1.2-ness of libraries.
5415 (Resources): Mention resources used when writing gcj.
5416
bc65b5ec
TT
54172001-01-17 Tom Tromey <tromey@redhat.com>
5418
5419 * gcj.texi: New file.
5420 * Make-lang.in ($(srcdir)/java/gcj.info): New target.
5421 (java.info): Depend on gcj.info.
5422 (java/gcj.dvi): New target.
5423 (java.dvi): Depend on gcj.dvi.
5424 (java.install-info): Wrote.
5425
930f6690
JS
54262001-01-16 Jeff Sturm <jeff.sturm@appnet.com>
5427
5428 * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
5429 having called make_decl_rtl.
5430
00b4575d
PB
54312001-01-14 Per Bothner <per@bothner.com>
5432
984ad2c6
PB
5433 Various patches to emit better messages on verification errors.
5434 * expr.c (push_type_0): Return error indication on stack overflow,
5435 instead of callinfg fatal.
5436 (push_type): Now just call push_type_0 (nd fatal on overflow).
5437 (pop_type_0): Return detailed error message (in a char** argument).
5438 (pop_type): If pop_type_0 fails, print error message.
5439 (pop_argument_types): Moved to verify.c.
5440 * verify.c (pop_argument_types): Moved from expr.c.
5441 Return a (possible) error message, rather than void.
5442 (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING): New macros.
5443 (verify_jvm_instruction): Use new macros, improving error messages.
5444 For case OPCODE_astore use object_ptr_type_node.
5445 * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED): New macros.
5446 (pop_type_0, push_type_0, pop_argument_types): Update accordingly.
5447
00b4575d
PB
5448 * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
5449 constant, return body without wrapper. (Improves constant folding.)
5450 * lex.c (build_wfl_node): Clear TREE_TYPE from returned node.
5451
d9da31dd
PB
54522001-01-13 Per Bothner <per@bothner.com>
5453
5454 * expr.c (expand_java_field_op): Assigning to a final field outside
5455 an initializer does not violate JVM spec, so should be warning, not
5456 error. (Sun's verifier does not complain - though MicroSoft's does.)
e64c46ce 5457
a67a383a
JM
54582001-01-12 Joseph S. Myers <jsm28@cam.ac.uk>
5459
5460 * gjavah.c (version), jcf-dump.c (version): Update copyright year
5461 to 2001.
5462
7e1376a1
BM
54632001-01-11 Bryce McKinlay <bryce@albatross.co.nz>
5464
5465 * parse.y (resolve_expression_name): Permit instance variables from
5466 enclosing context in super constructor call.
5467 (resolve_qualified_expression_name): Permit enclosing class's qualified
5468 "this" in super constructor call.
5469
6c418184
MM
54702001-01-10 Mark Mitchell <mark@codesourcery.com>
5471
5472 * class.c (build_utf8_ref): Remove last argument in call to
5473 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
5474 (build_class_ref): Likewise.
5475 (build_static_field_ref): Likewise.
5476 (get_dispatch_table): Likewise.
5477 (layout_class_method): Likewise.
5478 (emit_register_classes): Likewise.
5479 * constants.c (build_constant_data_ref): Likewise.
5480 * decl.c (builtin_function): Likewise.
5481 (create_primitive_vtable): Likewise.
5482 * expr.c (build_known_method_def): Likewise.
5483 (build_jni_stub): Likewise.
5484 (java_lang_expand_expr): Likewise.
e64c46ce 5485
0adc3d8a
TT
54862001-01-10 Tom Tromey <tromey@redhat.com>
5487
5488 * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
5489
761491c8
APB
54902001-01-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
5491
5492 * java-tree.h (lang_printable_name_wls): New prototype.
5493 * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
5494 rather than `current_class' to print type name. Don't prepend type
5495 names when printing constructor names.
5496 (lang_printable_name_wls): New function.
5497 * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
5498 `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
5499 * parse.y (patch_method_invocation): Message tuned for constructors.
5500 (not_accessible_p): Grant `private' access from within
5501 enclosing contexts.
e64c46ce 5502
dc08e603
APB
55032001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
5504
5505 All files with updated copyright when applicable.
5506 * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
5507 * class.c (mangle_class_field): Function removed.
5508 (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
5509 (utf8_cmp, cxx_keyword_p): Moved to lex.c.
5510 (build_class_ref): Call `java_mangle_class_field' instead of
5511 `mangle_class_field.'
5512 (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
e64c46ce 5513 (layout_class): Call `java_mangle_decl' instead of
dc08e603
APB
5514 `mangle_static_field.'
5515 (cxx_keywords): Initialized static array moved to `lex.c.'
5516 (layout_class_method): Changed leading comment. Simplified to
5517 call `java_mangle_decl.' Local `ptr' moved in for loop body.
5518 * decl.c (lang_mark_tree): Mark field `package_list.'
5519 * java-tree.h (TYPE_PACKAGE_LIST): New macro.
5520 (struct lang_type): New field `package_list.'
5521 (unicode_mangling_length): Prototype removed.
5522 (append_gpp_mangled_name, append_gpp_mangled_classtype,
5523 emit_unicode_mangled_name): Likewise.
5524 (cxx_keyword_p): New prototype.
5525 (java_mangle_decl, java_mangle_class_field,
5526 java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
5527 * jcf-parse.c (jcf_parse_source): Constify `file' argument to
5528 `build_expr_wfl.'
5529 * jvgenmain.c (main_method_prefix): Global variable removed.
5530 (main_method_suffix): Likewise.
5531 (do_mangle_classname): New function.
a83f01f0 5532 (main): Call it. Format changed to accommodate new mangling scheme.
dc08e603
APB
5533 * lex.c: (utf8_cmp): Conditionally prototyped.
5534 (cxx_keywords): Moved from class.c, conditionally defined.
5535 (utf8_cmp, cxx_keyword_p): Likewise.
5536 * mangle.c (obstack.h, ggc.h): Included.
5537 (mangle_field_decl): New function.
5538 (mangle_method_decl, mangle_type, mangle_pointer_type,
5539 mangle_array_type, mangle_record_type,
5540 find_compression_pointer_match, find_compression_array_match,
5541 find_compression_record_match,
5542 find_compression_array_template_match, set_type_package_list,
5543 entry_match_pointer_p, emit_compression_string, init_mangling,
5544 finish_mangling, compression_table_add, mangle_member_name): Likewise.
5545 (mangle_obstack): New global.
5546 (MANGLE_RAW_STRING): New macro.
5547 (unicode_mangling_length): Turned static.
5548 (append_unicode_mangled_name): Renamed from
5549 `emit_unicode_mangled_name.' Turned static. `mangle_obstack'
5550 replaces `obstack', removed from the parameter list.
5551 (append_gpp_mangled_name): Turned static. `mangle_obstack'
e64c46ce 5552 replaces parameter `obstack', removed from the parameter list. Call
dc08e603
APB
5553 `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
5554 (append_gpp_mangled_classtype): Removed.
5555 (compression_table, compression_next): New static variables.
5556 * parse.y (temporary_obstack): Extern declaration removed.
5557
761491c8
APB
55582001-01-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
5559
5560 * parse.y (patch_binop): Compute missing type in error situations.
5561
5bb11b2e
BM
55622001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
5563
5564 * class.c (make_class_data): Push initial value for "arrayclass".
5565 * decl.c (init_decl_processing): Add new class field "arrayclass".
5566
ac39dac0
BM
55672001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
5568
5569 From patha@softlab.ericsson.se:
e64c46ce 5570 * parse.y (switch_label): Use build, not build1, to construct
ac39dac0
BM
5571 DEFAULT_EXPR.
5572
a5a4ce3c
NB
55732001-01-04 Neil Booth <neil@daikokuya.demon.co.uk>
5574
5575 * lang.c (lang_decode_option): Change -MA to -MP.
5576 * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
5577 Update to new prototype; do quote targets.
5578 (jcf_dependency_write): Update.
5579
d27fd99a
BM
55802000-12-22 Bryce McKinlay <bryce@albatross.co.nz>
5581
5582 Shorten primitive array allocation path:
5583 * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
5584 to create new primitive arrays.
e64c46ce 5585 * expr.c (build_newarray): If generating native code, call
d27fd99a
BM
5586 soft_newarray_node with a reference to the primitive TYPE identifier
5587 instead of type_value.
e64c46ce 5588
c1eacb70
BM
55892000-12-17 Bryce McKinlay <bryce@albatross.co.nz>
5590
5591 Fix for PRs gcj/312 and gcj/253:
5592 * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
5593 dest if they arn't already.
e64c46ce 5594 * class.c (layout_class): Call maybe_layout_super_class on
c1eacb70
BM
5595 superinterfaces also, but only if compiling from bytecode.
5596
6d003d5c
BM
5597 Fix for PR gcj/373:
5598 * parse.y (create_class): Set ACC_STATIC if class is declared in an
5599 interface.
5600
325de66c
TT
56012000-12-15 Tom Tromey <tromey@redhat.com>
5602
5603 * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
5604 set.
5605
e35990c4
AH
56062000-12-14 Andrew Haley <aph@redhat.com>
5607
5608 * boehm.c (mark_reference_fields): Change test to correctly detect
5609 bitmap overflow.
5610
53714cda
AJ
56112000-12-15 Andreas Jaeger <aj@suse.de>
5612
5613 * config-lang.in (lang_dirs): Added.
5614
1e0cdc10
APB
56152000-12-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
5616
5617 * parse.y (end_artificial_method_body): Fixed undefined behavior.
5618 Credits go to rth for finding it.
5619
e9e42530
MS
56202000-12-13 Mike Stump <mrs@wrs.com>
5621
5622 * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
5623
3f27e3f8
TT
56242000-11-07 Tom Tromey <tromey@cygnus.com>
5625
5626 * Make-lang.in (JAVA_LEX_C): Added chartables.h.
5627 * lex.c (java_ignorable_control_p): Removed.
5628 (java_letter_or_digit_p): Removed.
5629 (java_start_char_p): New function.
5630 (java_read_char): Return `int', not `unicode_t'. Changed
5631 callers.
5632 (java_read_unicode): Likewise.
5633 (java_read_unicode_collapsing_terminators): Likewise.
5634 (java_get_unicode): Likewise.
5635 (java_new_lexer): Initialize hit_eof.
5636 (java_parse_end_comment): Take `int' argument.
5637 (java_parse_doc_section): Likewise.
5638 (java_parse_escape_sequence): Don't allow backlash-newline.
5639 Return `int'.
5640 * lex.h (JAVA_DIGIT_P): Removed.
5641 (_JAVA_LETTER_OR_DIGIT_P): Removed.
5642 (_JAVA_IDENTIFIER_IGNORABLE): Removed.
5643 (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
5644 (JAVA_PART_CHAR_P): New macro.
5645 (UEOF): Now -1.
5646 (JAVA_CHAR_ERROR): Now -2.
5647 (java_lexer): New field `hit_eof'.
5648 * chartables.h: New file.
5649 * gen-table.pl: new file.
5650
568aac9c 56512000-11-20 Tom Tromey <tromey@cygnus.com>
9a07cfaf 5652 Alexandre Petit-Bianco <apbianco@cygnus.com>
568aac9c
TT
5653
5654 * parse.y (java_complete_lhs): Only allow compound assignment of
5655 reference type if type is String.
5656
f34ff6d6
APB
56572000-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
5658
5659 * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
5660 jcf-path.c: Likewise.
5661
6e5589e8
AG
56622000-12-09 Anthony Green <green@redhat.com>
5663
5664 * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
5665 filestart and filename_length as int values.
5666
8000caee
MD
56672000-12-07 Mo DeJong <mdejong@redhat.com>
5668
5669 * jcf-io.c (find_class): Correct the logic that tests to see if a
5670 .java file is newer than its .class file. The compiler was
5671 incorrectly printing a warning when file mod times were equal.
5672
f6bbde28
ZW
56732000-12-07 Zack Weinberg <zack@wolery.stanford.edu>
5674
5675 * jvgenmain.c: Use ISPRINT not isascii.
5676
46142b26
APB
56772000-12-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
5678
5679 * parse.y (end_artificial_method_body): Fixed typo.
5680
f8b93ea7
APB
56812000-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5682
5683 * parse.y (patch_method_invocation): Pick the correct enclosing
5684 context when creating inner class instances.
5685 Fixes gcj/332.
5686
45441c5b
JM
56872000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
5688
5689 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
5690 Update copyright year to 2000.
5691
1510057a
AG
56922000-11-23 Anthony Green <green@redhat.com>
5693
5694 * jcf-parse.c (init_jcf_parse): Register current_file_list root.
5695 Move current_file_list out of yyparse and make it static.
5696
5697 * expr.c: Declare quick_stack and tree_list_free_list as static
5698 (init_expr_processing): Register quick_stack and
5699 tree_list_free_list roots.
5700
5e18f6d6
APB
57012000-11-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
5702
5703 * parse.y (build_outer_field_access): New local `decl_ctx', use
5704 it. Check for field's context and current class immediate outer
5705 context inheritance.
5706 (outer_field_access_p): Consider fields inherited from the last
5707 enclosing context.
5708 (build_access_to_thisn): Stop at the last enclosing context if
5709 necessary.
5710 Fixes gcj/367.
5711
62c9aa5f 57122000-11-23 J"orn Rennecke <amylaar@redhat.com>
9196ece5
R
5713
5714 * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
5715
c385cdf6
BM
57162000-11-22 Bryce McKinlay <bryce@albatross.co.nz>
5717
5718 * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
5719 scratch buffer.
5720
1535cc88
TT
57212000-11-20 Tom Tromey <tromey@cygnus.com>
5722
5723 * jv-scan.c (help): Document --complexity.
5724 (options): Added --complexity.
5725 (flag_complexity): New global.
5726 (main): Call `report'.
5727 * parse-scan.y (complexity): New global.
5728 (if_then_statement, if_then_else_statement,
5729 if_then_else_statement_nsi, switch_block_statement_group,
5730 while_expression, do_statement, for_begin, continue_statement,
5731 throw_statement, catch_clause, finally, method_invocation,
5732 conditional_and_expression, conditional_or_expression,
5733 conditional_expression): Update complexity.
5734 (reset_report): Reset complexity.
5735 (report): New function.
5736
d828bc42
TT
57372000-11-20 Tom Tromey <tromey@cygnus.com>
5738
5739 * lex.c (yylex): Added STRICT_TK case.
5740 * parse.y (STRICT_TK): Added.
5741 * parse-scan.y (STRICT_TK): Added.
5742 * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
5743 `;'. Use 4, not 3, with -k option. Correctly rename resulting
5744 file.
5745 * keyword.h: Rebuilt.
5746 * keyword.gperf (strictfp): Added.
5747
4e7842a0
TT
57482000-11-20 Tom Tromey <tromey@cygnus.com>
5749
5750 * lex.c (yylex): Recognize floating point constants with leading
5751 0.
5752
7e9355c6
KG
57532000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5754
5755 * java-tree.h (cyclic_inheritance_report): Constify.
5756 * parse.y (cyclic_inheritance_report): Likewise.
5757
a8a05998
ZW
57582000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
5759
5760 * parse.y (goal): Remove call to ggc_add_string_root.
5761
520a57c8
ZW
57622000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
5763
5764 * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
5765 Create string in scratch buffer, then pass to build_string.
5766
88f3c477
JM
57672000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
5768
5769 * parse.y (issue_warning_error_from_context): Add
5770 ATTRIBUTE_PRINTF.
5771
ac51395d
AG
57722000-11-11 Anthony Green <green@redhat.com>
5773
5774 * jcf-parse.c (process_zip_dir): Add finput parameter.
5775 (jcf_figure_file_type): Call process_zip_dir with appropriate
5776 argument.
5777
4e135bdd
KG
57782000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5779
5780 * decl.c (copy_lang_decl): Use memcpy, not bcopy.
5781 * jcf-parse.c (jcf_figure_file_type): Likewise.
5782
2e09e75a
JM
57832000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
5784
5785 * parse.y (create_new_parser_context): Use memset () instead of
5786 bzero ().
5787
136c35df
TT
57882000-11-08 Tom Tromey <tromey@cygnus.com>
5789
5790 * gjavah.c (process_file): Only include gcj/cni.h when generating
5791 CNI stubs.
5792
961192e1
JM
57932000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
5794
5795 * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
5796 (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
5797 instead of bzero ().
5798
099a5150
TT
57992000-11-05 Tom Tromey <tromey@cygnus.com>
5800
5801 * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
5802 * lex.c (IS_ZERO): New define.
5803 (java_perform_atof): Error on floating point underflow.
5804
cbf53a1d
TT
58052000-11-04 Tom Tromey <tromey@cygnus.com>
5806
5807 * lex.c (java_parse_escape_sequence): Only read two octal
5808 characters if the first one is greater than 3. Don't allow
5809 "octal" numbers to include the digits 8 or 9.
5810
436a88a6
JM
58112000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
5812
5813 * Make-lang.in (java.distdir): Remove.
5814
747800ee
TT
58152000-11-03 Tom Tromey <tromey@cygnus.com>
5816
4e2c8d44
TT
5817 * Make-lang.in (java.dvi): New target.
5818 Partial fix for PR other/567.
5819
b7436b72
TT
5820 * lang-options.h: Mention -Wout-of-date.
5821 * jcf-dump.c (flag_newer): New global.
5822 * gjavah.c (flag_newer): New global.
5823 * jcf-io.c (find_class): Only warn when flag_newer set.
5824 * lang.c (flag_newer): New global.
5825 (struct string_option): New declaration.
5826 (lang_W_options): New global.
5827 (process_option_with_no): New function.
5828 (lang_decode_option): Use it.
5829
0160fbe1
TT
5830 * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
5831 * gjavah.c (cxx_keyword_subst): Handle any number of trailing
5832 `$'.
5833
747800ee
TT
5834 * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
5835 (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
5836 * lex.c (java_read_unicode): Removed `term_context' argument.
5837 Recognize any number of `u' in `\u'.
5838 (java_read_unicode_collapsing_terminators): New function.
5839 (java_get_unicode): Use it.
5840 (java_lineterminator): Removed.
5841 (yylex): Produce error if character literal is newline or single
5842 quote. Return if eof found in middle of `//' comment. EOF in
5843 `//' comment is only an error if pedantic.
5844 (java_ignorable_control_p): New function.
5845 (java_parse_end_comment): Return if eof found in middle of
5846 comment.
5847 Include flags.h.
5848 * jv-scan.c (pedantic): New global.
5849
ee5f86dc
APB
58502000-10-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
5851
5852 * parse.y (outer_field_access_p): Inherited fields aren't
5853 consider outer fields.
5854 (maybe_build_thisn_access_method): Use
5855 PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
5856 (resolve_expression_name): Trigger an error if a static field
5857 is being accessed as an outer field.
5858
7ccd2fc9 58592000-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
f6bbde28 5860
7ccd2fc9
APB
5861 * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
5862 Fixes gcj/365.
5863
b8dad04b
ZW
58642000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
5865
5866 * Make-lang.in: Move all build rules here from Makefile.in,
5867 adapt to new context. Wrap all rules that change the current
5868 directory in parentheses. Expunge all references to $(P).
5869 When one command depends on another and they're run all at
5870 once, use && to separate them, not ;. Add OUTPUT_OPTION to
5871 all object-file generation rules. Delete obsolete variables.
5872
5873 * Makefile.in: Delete.
5874 * config-lang.in: Delete outputs= line.
5875
2cb3951d
APB
58762000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
5877
5878 * parse.y (patch_method_invocation): NULLify this_arg when already
5879 inserted.
5880 (maybe_use_access_method): Handle call to methods unrelated to the
5881 current class. Fixed comment.
5882 Fixes gcj/361.
5883
ee5f86dc
APB
58842000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
5885
5886 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
5887 scope.
5888
07b5e470
TT
58892000-10-24 Tom Tromey <tromey@cygnus.com>
5890
5891 * lex.c (java_new_lexer): Initialize new fields. Work around
5892 broken iconv() implementations.
5893 (java_read_char): Swap bytes if required. Use fallback decoder if
5894 required.
5895 (byteswap_init, need_byteswap): New globals.
5896 (java_destroy_lexer): Only close iconv handle if it is in use.
5897 * lex.h (java_lexer): New fields read_anything, byte_swap,
5898 use_fallback.
5899 Made out_buffer unsigned.
5900
8ac1de05
APB
59012000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
5902
5903 * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
5904 where an enclosing context can be set on the jdep.
5905 (do_resolve_class): Fixed identation.
5906
80393943
KG
59072000-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5908
5909 * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
f6bbde28 5910
80393943
KG
5911 * jcf-reader.c (peek_attribute, skip_attribute): Only define
5912 when requested.
5913
5914 * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
5915
5916 * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
5917
c7303e41
APB
59182000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
5919
5920 * jcf-write.c (OP1): Update `last_bc'.
5921 (struct jcf_block): Fixed indentation and typo in comments. New
5922 field `last_bc'.
5923 (generate_bytecode_insns): Insert `nop' if `jsr' immediately
5924 follows `monitorenter'.
5925 * parse.y (patch_synchronized_statement): New local `tmp'. Call
5926 `patch_string'.
5927 Fixes gcj/232.
5928
316a06a1
TT
59292000-10-16 Tom Tromey <tromey@cygnus.com>
5930
5931 * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
5932 * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
5933 * lang-options.h: Added -MA, -MT, -MF..
5934 * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
5935 (DEPEND_TARGET_SET): New macro.
5936 (DEPEND_FILE_ALREADY_SET): Likewise.
5937 (init_parse): Handle new flags.
5938 * jcf.h (jcf_dependency_print_dummies): Declare.
5939 * Make-lang.in (s-java): Added mkdeps.o.
5940 * Makefile.in (BACKEND): Added mkdeps.o.
5941 (../gcjh$(exeext)): Added mkdeps.o.
5942 (../jcf-dump$(exeext)): Added mkdeps.o.
5943 * jcf-depend.c: Include mkdeps.h.
5944 (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
5945 add_entry): Removed.
5946 (jcf_dependency_reset): Rewrote.
5947 (dependencies): New global.
5948 (jcf_dependency_set_target): Rewrote.
5949 (jcf_dependency_add_target): Likewise.
5950 (jcf_dependency_add_file): Likewise.
5951 (munge): Removed.
5952 (print_ents): Removed.
5953 (jcf_dependency_write): Rewrote.
5954 (print_dummies): New global.
5955 (jcf_dependency_print_dummies): New function
5956 (jcf_dependency_write): Call deps_dummy_targets if required.
5957
dba41d30
APB
59582000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
5959
5960 * gjavah.c (add_class_decl): Removed unused variables `tname',
5961 `tlen' and `name_index'.
5962 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
5963 * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
5964 in `wfl_operator' with value.
5965 (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
5966 (jcf_figure_file_type): Fixed identation.
5967 * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
5968 * parse.y (analyze_clinit_body): New function.
5969 (static_initializer:): Reset `current_static_block'.
5970 (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
5971 `wfl_operator' with new value.
5972 (lookup_cl): Use EXPR_WFL_FILENAME.
5973 (maybe_yank_clinit): Handle bogus <clinit> bodies, call
5974 analyze_clinit_body.
5975 (build_outer_field_access): Access to this$<n> built from
5976 current_class, not its outer context.
5977 (build_access_to_thisn): Fixed leading comment. Tidied things up.
f6bbde28 5978 (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
dba41d30
APB
5979 (patch_method_invocation): Use `is_static_flag' when already
5980 initialized.
5981 (patch_newarray): Removed assignment in ternary operator.
5982
1a2ebe6d
APB
59832000-10-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
5984
dba41d30 5985 * except.c (free_eh_ranges): Don't free `whole_range'.
1a2ebe6d 5986
8e7ab3ff
AG
59872000-10-15 Anthony Green <green@redhat.com>
5988
5989 * decl.c (init_decl_processing): Call init_class_processing before
5990 anything else.
5991
c7303e41
APB
59922000-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
5993
5994 * check-init.c (check_init): Fixed leading comment. Use
5995 LOCAL_FINAL_P.
5996 * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
5997 (give_name_to_locals): Likewise.
5998 (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
5999 fields in lang_decl_var.
6000 * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
6001 DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
6002 (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
6003 (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
6004 DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
6005 (LOCAL_FINAL): Rewritten.
6006 (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
6007 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
6008 (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
6009 `init_final' fields.
6010 (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
6011 `final_uid', `final_liic', `final_ierr' and `local_final' fields.
6012 (TYPE_HAS_FINAL_VARIABLE): New macro.
6013 (struct lang_type): Added `afv' field.
6014 * parse.y (check_static_final_variable_assignment_flag): New function.
6015 (reset_static_final_variable_assignment_flag): Likewise.
6016 (check_final_variable_local_assignment_flag): Likewise.
6017 (reset_final_variable_local_assignment_flag): Likewise.
6018 (check_final_variable_indirect_assignment): Likewise.
6019 (check_final_variable_global_assignment_flag): Likewise.
6020 (add_inner_class_fields): Use LOCAL_FINAL_P.
6021 (register_fields): Handle local finals and final variables.
6022 (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
6023 (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
6024 (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
6025 on local finals.
6026 (java_complete_expand_methods): Loop to set
6027 TYPE_HAS_FINAL_VARIABLE. Call
f6bbde28 6028 `reset_final_variable_local_assignment_flag' and
c7303e41
APB
6029 `check_final_variable_local_assignment_flag' accordingly before
6030 and after constructor expansion. Call
6031 `reset_static_final_variable_assignment_flag'
f6bbde28 6032 before expanding <clinit> and after call
c7303e41
APB
6033 `check_static_final_variable_assignment_flag' if the
6034 current_class isn't an interface. After all methods have been
6035 expanded, call `check_final_variable_global_assignment_flag' and
6036 `check_static_final_variable_assignment_flag' if the current class
f6bbde28 6037 is an interface.
c7303e41
APB
6038 (maybe_yank_clinit): Fixed typo in comment.
6039 (build_outer_field_access_methods): Removed old sanity check. Use
6040 FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
6041 Don't create access methods for finals.
6042 (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
6043 (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
f6bbde28 6044 existing DECL_INIT has been processed.
c7303e41
APB
6045 (java_complete_lhs): Likewise.
6046 (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
6047 Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
6048 logic.
6049 (patch_assignment): Use LOCAL_FINAL_P.
6050 (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
6051 DECL_INITIAL is nullified.
6052 Fixes gcj/163.
6053
4b945402
KG
60542000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6055
6056 * Make-lang.in (parse.c, parse-scan.c): Create atomically.
f6bbde28 6057
4b945402
KG
6058 * Makefile.in (parse.c, parse-scan.c): Likewise.
6059
1f8f4a0b
MM
60602000-10-12 Mark Mitchell <mark@codesourcery.com>
6061
6062 * class.c (temporary_obstack): Remove.
6063 (make_class): Don't mess with obstascks.
6064 (push_class): Likewise.
6065 (set_super_info): Likewise.
6066 (add_method_1): Likewise.
6067 (add_method): Likewise.
6068 (add_field): Likewise.
6069 (build_utf8_ref): Likewise.
6070 (build_class_ref): Likewise.
6071 (build_static_field_ref): Likewise.
6072 (finish_class): Likewise.
6073 (push_super_field): Likewise.
6074 (layout_class): Likewise.
6075 (layout_class_methods): Likewise.
6076 (init_class_processing): Likewise.
6077 * constants.c (get_tag_node): Likewise.
6078 (build_constant_data_ref): Likewise.
6079 * decl.c (ggc_p): Remove.
6080 (copy_lang_decl): Use ggc_alloc.
6081 (complete_start_java_method): Don't mess with obstacks.
6082 (start_java_method): Likewise.
6083 (end_java_method): Likewise.
6084 * except.c (link_handler): Use xmalloc.
6085 (free_eh_ranges): New function.
6086 (method_init_exceptions): Use it.
6087 (add_handler): Use xmalloc.
6088 (expand_start_java_handler): Don't mess with obstacks.
6089 (prepare_eh_table_type): Likewise.
6090 (expand_end_java_handler): Likewise.
6091 * expr.c (push_value): Likewise.
6092 (create_label_decl): Likewise.
6093 (build_jni_stub): Likewise.
6094 (java_lang_expand_expr): Likewise.
6095 (note_instructions): Use xrealloc.
6096 (java_push_constant_from_pool): Don't mess with obstacks.
6097 (process_jvm_instruction): Likewise.
6098 * java-tree.h (cyclic_inheritance_report): Remove duplicate
6099 declaration.
6100 * jcf-parse.c (get_constant): Don't mess with obstacks.
6101 (read_class): Likewise.
6102 (jcf_parse): Likewise.
a83f01f0 6103 * lex.c (expression_obstack): Remove.
1f8f4a0b
MM
6104 (java_lex): Don't use obstack_free.
6105 * parse.h (exit_java_complete_class): Don't mess with obstacks.
6106 (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
6107 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
6108 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
6109 * parse.y (gaol): Add more GC roots.
6110 (add_inner_class_fields): Adjust calls to MANGLE_* macros.
6111 (lookup_field_wrapper): Likewise.
6112 (obtain_incomplete_type): Don't mess with obstacks.
a83f01f0 6113 (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
1f8f4a0b
MM
6114 macros.
6115 (craft_constructor): Don't mess with obstacks.
6116 (safe_layout_class): Likewise.
6117 (java_complete_class): Likewise.
6118 (source_end_java_method): Likewise.
6119 (build_outer_field_access_methods): Likewise.
6120 (build_outer_method_access_method): Likewise.
6121 (maybe_build_thisn_access_method): Likewise.
6122 (build_dot_class_method_invocation): Likewise.
6123 (java_complete_tree): Likewise.
6124 (java_complete_lhs): Likewise.
6125 (do_merge_string_cste): Likewise.
6126 (patch_string_cst): Likewise.
6127 (array_constructor_check_entry): Likewise.
6128 * typeck.c (build_java_array_type): Likewise.
6129 (parse_signature_string): Likewise.
6130 (build_java_signature): Likewise.
f6bbde28 6131
3c1d1e7b
TT
61322000-10-12 Tom Tromey <tromey@cygnus.com>
6133
6134 Fix for PR gcj/356:
6135 * gjavah.c (add_class_decl): Don't special-case inner classes.
6136 (add_namelet): Likewise.
6137
a93eddcf
APB
61382000-10-11 Rodney Brown <RodneyBrown@mynd.com>
6139
6140 * java-tree.h: Constify current_encoding.
6141 * lang.c: Constify current_encoding.
6142
61432000-10-10 Jeff Sturm <jeff.sturm@appnet.com>
6144
6145 * jvgenmain.c (class_mangling_suffix): Omit `.'.
6146 (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
6147
61482000-10-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
6149
6150 * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
6151 patch. Fixes gcj/340.
6152
2e165c53
TT
61532000-10-10 Tom Tromey <tromey@cygnus.com>
6154
6155 * lex.c (java_new_lexer): Initialize out_first and out_last
6156 fields.
6157 * lex.h (java_lexer): Added out_buffer, out_first, out_last.
6158
c7303e41
APB
61592000-10-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
6160
6161 * parse.y (pop_current_osb): New function.
6162 (array_type:): Use `dims:', changed actions
6163 accordingly. Suggested by Anthony Green.
6164 (array_creation_expression:): Used pop_current_osb.
6165 (cast_expression:): Likewise.
6166 (search_applicable_method_list): Fixed indentation.
6167
61682000-10-08 Anthony Green <green@redhat.com>
6169
6170 * parse.y (array_type_literal): Remove production.
6171 (type_literals): Refer to array_type, not array_type_literal.
6172
29f8b718
APB
61732000-10-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
6174
6175 Patch contributed by Corey Minyard.
6176 * decl.c (check_local_named_variable): New function.
6177 (tree check_local_unnamed_variable): Likewise.
6178 (find_local_variable): Splitted. Call check_local_{un}named_variable.
6179
7fd9a516
AG
61802000-10-07 Anthony Green <green@redhat.com>
6181
6182 * class.c (layout_class): Handle case where superclass can't be
6183 layed out yet.
6184
20d431c9
JM
61852000-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
6186
6187 * Makefile.in (keyword.h): Refer to GNU FTP site for updated
6188 gperf.
6189
e0a0c416
TT
61902000-10-05 Tom Tromey <tromey@cygnus.com>
6191
6192 * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
6193 * jvgenmain.c (class_mangling_prefix): Removed.
6194 (class_mangling_suffix): New global.
6195 (main): Use it.
6196 * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
6197 `$'.
6198 (print_method_info): Handle overrides for static and final
6199 methods.
6200 (process_file): Generate declaration for class object field.
6201 * class.c (cxx_keywords): New array.
6202 (utf8_cmp): New function.
6203 (cxx_keyword_p): New function.
6204 (layout_class_method): Mangle C++ keywords by appending `$'.
6205 (mangle_field): New function.
6206 (mangle_class_field): Use mangle_field. Mangle class name as
6207 `class$'.
6208 (mangle_static_field): Use mangle_field.
6209
62c9aa5f 62102000-10-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
6e22695a
APB
6211
6212 * decl.c (find_local_variable): Removed uncessary type check and
6213 fixed range check typo. From Corey Minyard.
6214
62c9aa5f 62152000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
6e22695a
APB
6216
6217 * decl.c (give_name_to_locals): New local `code_offset'. Call
e64c46ce 6218 `maybe_adjust_start_pc'.
6e22695a
APB
6219 * expr.c (note_instructions): New function.
6220 (expand_byte_code): Don't collect insn starts here.
6221 (peek_opcode_at_pc): New function.
6222 (maybe_adjust_start_pc): Likewise.
6223 * java-tree.h (maybe_adjust_start_pc): Declare.
6224 (note_instructions): Likewise.
dba41d30 6225 * jcf-parse.c (parse_class_file): Call `note_instructions'.
6e22695a 6226
62c9aa5f 62272000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
6e22695a
APB
6228
6229 * parse.y (field_access:): Fixed indentation.
6230 (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
6231
7e51098e
TT
62322000-09-07 Tom Tromey <tromey@cygnus.com>
6233
6234 Fix for PR gcj/307:
6235 * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
6236 JPRIMITIVE_TYPE_P, for arithmetic operators.
6237 (patch_method_invocation): Indentation fix.
6238 (try_builtin_assignconv): Handle boolean specially. Fixed typo.
6239 (valid_builtin_assignconv_identity_widening_p): Handle boolean.
6240 (do_unary_numeric_promotion): Cleaned up code.
6241 (valid_cast_to_p): Handle boolean correctly.
6242
5beededc
TT
62432000-09-27 Tom Tromey <tromey@cygnus.com>
6244
6245 * lex.c (java_read_unicode): Reset bs_count when finished with
6246 `\u' sequence.
6247
f15b9af9
MM
62482000-10-01 Mark Mitchell <mark@codesourcery.com>
6249
6250 Convert to GC.
6251 * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
6252 * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
6253 (typeck.o): Depend on ggc.h.
6254 * class.c (add_method_1): Use GC functions for allocation.
6255 (init_class_processing): Register roots.
6256 * decl.c (ggc_p): Set to 1.
6257 (pending_local_decls): Make it static.
6258 (push_jvm_slot): Use GC functions for allocation.
6259 (init_decl_processing): Register roots.
6260 (give_name_to_locals): Use GC functions for allocation.
6261 (lang_mark_tree): New function.
6262 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
6263 functions for allocation.
6264 * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
6265 * lex.c (java_lex): Use build_string, rather than replicating it
6266 inline.
6267 * parse.y (goal): Add more roots.
6268 (mark_parser_ctxt): New function.
6269 * typeck.c: Include ggc.h.
f6bbde28 6270
99eaf8d4
APB
62712000-09-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
6272
6273 * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
6274 contains something else than MODIFY_EXPR.
6275
19e223db
MM
62762000-09-23 Mark Mitchell <mark@codesourcery.com>
6277
6278 * Make-lang.in (JAVA_SRCS): Include java-tree.h.
6279 * Makefile.in (parse.o): Depend on ggc.h.
6280 (class.o): Likewise.
6281 (constants.o): Likewise.
6282 (decl.o): Likewise.
6283 (expr.o): Likewise.
6284 (jcf-parse.o): Likewise.
6285 (jcf-write.o): Likewise.
6286 (mangle.o): Likewise.
6287 * class.c: Include ggc.h.
6288 (build_static_field_ref): Register GC roots.
6289 (layout_class): Likewise.
6290 (init_class_processing): Likewise.
6291 * constants.c: Include ggc.h.
6292 (current_constant_pool_data_ref): Remove.
6293 (tag_nodes): Move it to ...
6294 (get_tag_node): ... here. Register GC roots.
6295 * decl.c: Include ggc.h. Remove many global tree definitions.
6296 (throw_node): Define.
6297 (java_global_trees): Likewise.
6298 (predef_filenames): Make the size a constant.
6299 (init_decl_processing): Adjust accordingly.
6300 (init_decl_processing): Call init_jcf_parse. Register GC roots.
6301 * expr.c: Include ggc.h.
6302 (init_expr_processing): Register GC roots.
6303 (build_invokeinterface): Likewise.
6304 * java-tree.h: Replace extern tree declarations with macros.
6305 (java_global_trees): New variable.
6306 (java_tree_index): New enumeration.
6307 (init_jcf_parse): Declare.
6308 * jcf-parse.c: Include ggc.h.
6309 (current_class): Remove declaration.
6310 (main_class): Likewise.
6311 (all_class_list): Likewise.
6312 (predefined_filename_p): Adjust for constant size of
6313 predef_filenames.
6314 (init_jcf_parse): New function.
6315 * jcf-write.c: Include ggc.h.
6316 (generate_classfile): Register GC roots.
6317 (append_synthetic_attribute): Likewise.
6318 (append_innerclass_attribute_entry): Likewise.
6319 * lang.c: Include ggc.h.
6320 (lang_print_error): Register GC roots.
6321 * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
6322 with macros.
6323 * parse.y: Include ggc.h.
6324 (wfl_operator): Remove.
6325 (goal): Register GC roots.
6326 (java_pop_parser_context): Adjust for new field names.
6327 (java_parser_context_save_global): Likewse.
6328 (java_parser_context_restore_global): Likewise.
6329 (java_parser_context_suspend): Likewise.
6330 (java_parser_context_resume): Likewise.
6331 (verify_constructor_circularity): Register GC roots.
6332 (lookup_cl): Likewise.
6333 (java_reorder_fields): Likewise.
6334 (build_current_this): Likewise.
6335 (class_in_current_package): Likewise.
6336 (argument_types_convertible): Likewise.
6337 (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
f6bbde28 6338
4c4b521a
TT
63392000-09-14 Tom Tromey <tromey@cygnus.com>
6340
6341 * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
6342
6b8a24cd
TT
63432000-09-13 Tom Tromey <tromey@cygnus.com>
6344
6345 * jcf-parse.c: Include <locale.h>.
6346 * jv-scan.c: Include <locale.h>.
6347
86e4b1e4
TT
63482000-09-12 Tom Tromey <tromey@cygnus.com>
6349
6350 * expr.c (pop_type_0): Return `Object' if trying to merge two
6351 interface types.
6352 * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
6353 interface types; `Object' is always a valid supertype.
6354
d19cbcb5
TT
63552000-09-12 Tom Tromey <tromey@cygnus.com>
6356
6357 Fix for PR gcj/33:
6358 * jv-scan.c (help): Document --encoding.
6359 (options): Added `encoding' entry.
6360 (OPT_ENCODING): New define.
6361 (main): Handle --encoding.
6362 Include <langinfo.h> if nl_langinfo exists.
6363 * lang-options.h: Document --classpath, --CLASSPATH, --main, and
6364 --encoding.
6365 * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
6366 (parse_source_file): Correctly call java_init_lex. Added `finput'
6367 argument. Use nl_langinfo to determine default encoding.
6368 * java-tree.h (current_encoding): Declare.
6369 * parse.y (java_parser_context_restore_global): Don't restore
6370 `finput'.
6371 (java_parser_context_save_global): Don't set `finput' field.
6372 (java_pop_parser_context): Don't restore `finput'. Free old lexer
6373 if required.
6374 * lang.c (current_encoding): New global.
6375 (lang_decode_option): Recognize `-fencoding='.
6376 (finish_parse): Don't close finput.
6377 * parse.h (struct parser_ctxt): Removed `finput' and
6378 `unget_utf8_value' fields. Added `lexer' field.
6379 (java_init_lex): Fixed declaration.
6380 * lex.c (java_new_lexer): New function.
6381 (java_destroy_lexer): Likewise.
6382 (java_read_char): Added `lex' argument. Handle iconv case.
6383 (java_read_unicode): Added `lex' argument. Count backslashes in
6384 lexer structure.
6385 (java_init_lex): Added `finput' and `encoding' arguments. Set
6386 `lexer' field in ctxp.
6387 (BAD_UTF8_VALUE): Removed.
6388 (java_lex): Handle seeing UEOF in the middle of a string literal.
6389 * lex.h: Include <iconv.h> if HAVE_ICONV defined.
6390 (java_lexer): New structure.
6391 (UNGETC): Removed.
6392 (GETC): Removed.
6393 (DEFAULT_ENCODING): New define.
6394 (java_destroy_lexer): Declare.
6395
ee17a290
TT
63962000-09-12 Tom Tromey <tromey@cygnus.com>
6397
6398 Fix for PR gcj/343:
6399 * lex.c (java_init_lex): Initialize java_io_serializable.
6400 * parse.y (java_io_serializable): New global.
6401 (valid_ref_assignconv_cast_p): An array can be cast to
6402 serializable.
6403
d8ea8f28
ZW
64042000-09-10 Zack Weinberg <zack@wolery.cumb.org>
6405
6406 * decl.c, expr.c: Include defaults.h if not already included.
6407 Don't define the *_TYPE_SIZE macros.
6408
0caae6dd
GK
64092000-09-09 Geoffrey Keating <geoffk@cygnus.com>
6410
6411 * typeck.c (build_java_array_type): Correct first parameter
6412 in ADJUST_FIELD_ALIGN invocation.
6413
f0bee8b3
TT
64142000-09-06 Tom Tromey <tromey@cygnus.com>
6415
6416 * lang-specs.h: Also recognize `-femit-class-files'.
6417
3e99f50c
APB
64182000-09-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
6419
6420 * verify.c (merge_types): Load the types to merge if necessary.
6421
3ca8c9ae
AG
64222000-09-02 Anthony Green <green@redhat.com>
6423
6424 * jcf-io.c: Include zlib.h.
6425 (open_in_zip): Read compressed class file archives.
6426 * zipfile.h (ZipDirectory): Add uncompressed_size and
6427 compression_method fields.
6428 * zextract.c (read_zip_archive): Collect file compression info.
6429
e1d565ab
BM
64302000-08-15 Bryce McKinlay <bryce@albatross.co.nz>
6431
f6bbde28 6432 * parse.y (do_resolve_class): Also explore superclasses of
e1d565ab
BM
6433 intermediate enclosing contexts when searching for inner classes.
6434
29f8b718
APB
64352000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
6436
6437 * parse.y (variable_declarator_id:): Better error message.
6438 (expression_statement:): Use YYNOT_TWICE.
6439 (cast_expression:): Likewise.
6440 (assignment:): Likewise.
6441
354e99ce
APB
64422000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
6443
6444 * parse.y (do_merge_string_cste): New locals. Create new
6445 STRING_CSTs each time, use memcpy. Fixes gcj/311.
6446
7c097ee9
HB
64472000-08-07 Hans Boehm <boehm@acm.org>
6448
6449 * boehm.c (mark_reference_fields): Set marking bits for all words in
6450 a multiple-word record.
6451 (get_boehm_type_descriptor): Use the procedure marking descriptor for
6452 java.lang.Class.
f6bbde28 6453
3d919a0e
MS
64542000-08-31 Mike Stump <mrs@wrs.com>
6455
6456 * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
6457 jcf-dump$(exeext)): Make parallel safe.
6458
63ad61ed
ZW
64592000-08-29 Zack Weinberg <zack@wolery.cumb.org>
6460
6461 * jcf-parse.c (set_source_filename): Constify a char *.
6462 * jcf-write.c (append_innerclasses_attribute,
6463 make_class_file_name): Constify a char *. Don't recycle a
6464 variable for an unrelated purpose.
6465 * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
6466 (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
6467
c00f0fb2
APB
64682000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
6469
6470 * expr.c (can_widen_reference_to): Fixed indentation.
6471 * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
6472 * parse.y: `finit$' replaces `$finit$' in comments.
6473 (try_builtin_assignconv): Fixed leading comment.
6474
94574545
GM
64752000-08-25 Greg McGary <greg@mcgary.org>
6476
6477 * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
6478
6e2aa220
GM
64792000-08-24 Greg McGary <greg@mcgary.org>
6480
6481 * lang.c (lang_decode_option): Use ARRAY_SIZE.
6482 * parse.y (BINOP_LOOKUP): Likewise.
6483
9b1ee05b
AH
64842000-08-22 Andrew Haley <aph@cygnus.com>
6485
6486 * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
6487 sign extending. Fixes gcj/321.
6488 * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
6489 combining to make a jlong. Fixes gcj/321.
6490
05a3d06e 64912000-08-21 Nix <nix@esperi.demon.co.uk>
f6bbde28 6492
05a3d06e
N
6493 * lang-specs.h: Do not process -o or run the assembler if
6494 -fsyntax-only.
6495
65f69237
AH
64962000-08-16 Andrew Haley <aph@cygnus.com>
6497
6498 * typeck.c (build_java_array_type): Rewrite code to do array
6499 alignment. Take into account back-end macros when aligning array
6500 data. Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
6501 user to set alignment. Fixes gcj/252 and 160.
6502
2e0f0aff
TT
65032000-08-09 Tom Tromey <tromey@cygnus.com>
6504
1175b9b4
TT
6505 * parse.y (check_abstract_method_definitions): Now return `int'.
6506 Check implemented interfaces. Fixes PR gcj/305.
6507
2e0f0aff
TT
6508 * parse.y (patch_switch_statement): Disallow `long' in switch
6509 expressions. Fixes PR gcj/310.
6510
25bdcbc5
APB
65112000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
6512
6513 * decl.c (finit_leg_identifier_node): New global.
6514 (init_decl_processing): Use `finit$' to initialize
6515 finit_identifier_node. Use `$finit$' to initialize
6516 finit_leg_identifier_node.
6517 * expr.c (expand_java_field_op): Use ID_FINIT_P.
6518 * java-tree.h (finit_identifier_node): Changed attached comment.
6519 (finit_leg_identifier_node): New declaration.
6520 (ID_FINIT_P): Take finit_identifier_node and
6521 finit_leg_identifier_node into account. This is a backward
6522 compatibility hack.
6523
81baa09a
APB
65242000-08-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
6525
6526 * jcf-write.c (generate_bytecode_conditional): Re-installed lost
6527 Jan 6 2000 patch.
6528 (generate_bytecode_insns): Check `nargs' before emitting it.
6529 * verify.c (merge_type_state): Fixed typo.
6530 * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
6531 generate_bytecode_{conditional,insns}.
6532
62c9aa5f 65332000-08-13 Anthony Green <green@redhat.com>
458530ee
AG
6534
6535 * check-init.c (check_init): Add case for BIT_FIELD_REF (required
6536 for -pg builds).
6537
34d4df06
APB
65382000-08-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
6539
6540 * class.c (maybe_layout_super_class): Fixed indentation.
6541 * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
6542 (java_check_methods): New function declaration.
6543 * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
6544 instead of `str_ptr'.
6545 * jcf-write.c (generate_bytecode_insns): Emit number the of args
6546 of a `invokeinterface' at the right time.
6547 * parse.h (WFL_STRIP_BRACKET): New macro.
6548 (SET_TYPE_FOR_RESOLUTION): Use it.
dba41d30 6549 * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
34d4df06
APB
6550 (check_class_interface_creation): Don't check for cross package
6551 innerclass name clashes.
dba41d30 6552 (method_header): Behave properly if MDECL is `error_mark_node'.
34d4df06
APB
6553 (method_declarator): Return `error_mark_node' if bogus current
6554 class.
6555 (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
6556 (resolve_and_layout): New local `decl_type', set and used. Call
6557 java_check_methods.
6558 (java_check_methods): New method.
6559 (java_layout_classes): Use it.
6560 (resolve_qualified_expression_name): No EH check necessary in
6561 access$<n>.
6562 (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
6563 `case' statement.
6564 (patch_assignment): Set DECL_INITIAL on integral final local.
6565
5f1c312a
APB
65662000-08-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
6567
6568 * java-tree.h (flag_extraneous_semicolon): New extern.
6569 * lang-options.h: (-Wextraneous-semicolon): New option.
6570 * lang.c (flag_redundant): Fixed typo in leading comment.
6571 (flag_extraneous_semicolon): New global.
6572 (lang_decode_option): Set `flag_extraneous_semicolon' when
6573 -Wall. Decode `-Wextraneous-semicolon'.
6574 * parse.y (type_declaration:): Removed `SC_TK' hack, added
6575 `empty_statement' rule.
6576 (class_body_declaration): Likewise.
6577 (method_body:): Accept `;' as a method body.
6578 (static_initializer:): Removed `SC_TK' hack.
6579 (constructor_block_end:): Likewise.
6580 (empty_statement:): Report deprecated empty declaration. Fixes
6581 gcj/295
6582
25bdcbc5 65832000-08-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
f0f3a777
APB
6584
6585 * parse.y (build_dot_class_method_invocation): Changed parameter
dba41d30 6586 name to `type'. Build signature from `type' and convert it to a
f0f3a777
APB
6587 STRING_CST if it's an array.
6588 (patch_incomplete_class_ref): `build_dot_class_method_invocation'
6589 to use `ref_type' directly.
6590
62c9aa5f 65912000-08-06 Ovidiu Predescu <ovidiu@cup.hp.com>
64c04091
OP
6592
6593 * lang-options.h: Added a comma after the last element to avoid
6594 syntax errors when other languages define additional options.
6595
a36556a8
ZW
65962000-08-04 Zack Weinberg <zack@wolery.cumb.org>
6597
6598 * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
6599 * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
6600 (jc1): Link with $(BACKEND).
6601 (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
6602
50e60bc3
ZW
66032000-08-02 Zack Weinberg <zack@wolery.cumb.org>
6604
37620334
ZW
6605 * jvspec.c: Adjust type of second argument to
6606 lang_specific_driver, and update code as necessary.
6607
50e60bc3
ZW
6608 * class.c (build_dtable_decl): Initialize dummy.
6609
f0f3a777
APB
66102000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
6611
6612 * parse.y (maybe_yank_clinit): When generating bytecode: non empty
6613 method bodies not to rule out discarding `<clinit>'; don't use
6614 <clinit> to initialize static fields with constant initializers.
6615
66162000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
6617
6618 * gjavah.c (print_method_info): Added `synth' parameter. Skip
6619 synthetic methods.
6620 (method_synthetic): New global.
6621 (HANDLE_METHOD): Recognize synthetic method and tell
6622 `print_method_info' about it.
6623 (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
6624 processing a synthetic method.
6625 * jcf-reader.c (skip_attribute): New function.
6626 ( skip_attribute): Likewise.
6627
66282000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
6629
6630 * parse.y (build_outer_field_access): Fixed comments.
6631 (fix_constructors): Emit the initialization of this$<n> before
6632 calling $finit$.
6633 (resolve_qualified_expression_name): Build an access to `decl' if
6634 necessary.
6635
66362000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
6637
6638 * parse-scan.y (curent_class): Non longer const.
6639 (inner_qualifier, inner_qualifier_length): Deleted.
6640 (current_class_length): New global.
6641 (bracket_count): Fixed typo in leading comment.
6642 (anonymous_count): New global.
6643 (class_instance_creation_expression:): Handle anonymous classes.
6644 (anonymous_class_creation:): New rule.
6645 (push_class_context): Rewritten.
6646 (pop_class_context): Likewise.
6647 (INNER_QUALIFIER): Macro deleted.
6648 (report_class_declaration): call `push_class_context' when
6649 entering the function. `fprintf' format modified not to use
6650 INNER_QUALIFIER.
6651 (report_class_declaration): Assign `package_name' and
a83f01f0 6652 `current_class' to NULL separately.
f0f3a777
APB
6653
66542000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
6655
6656 * expr.c (build_invokeinterface): Call layout_class_methods on
6657 target interface.
6658
13107ec0 66592000-07-27 Tom Tromey <tromey@cygnus.com>
f6bbde28 6660 Anthony Green <green@cygnus.com>
13107ec0
TT
6661 Alexandre Petit-Bianco <apbianco@cygnus.com>
6662
6663 * class.c (make_class_data): Create vtable for abstract classes.
6664 (get_dispatch_table): Changed to cope with abstract classes.
6665
da632f2c
APB
66662000-07-27 Tom Tromey <tromey@cygnus.com>
6667
6668 * parse.y (patch_method_invocation): Don't reverse the argument
6669 list when dealing with anonymous class constructors. Fixed typo in
6670 comment.
6671
66722000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
6673
6674 * parse.y (build_alias_initializer_parameter_list): Reverse
6675 crafted list when building aliases for anonymous class
6676 constructors.
6677
1e12ab9b
APB
66782000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
6679
6680 * parse.y (jdep_resolve_class): Don't bother checking potential
6681 innerclass access if `decl' is NULL.
6682 (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
6683 WFL.
6684
4c31fe99
APB
66852000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
6686
6687 * parse.c: Remove (again.)
6688
1e12ab9b
APB
66892000-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
6690
6691 * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
6692 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
6693 outside the `if' statement, alias to innerclass removed, `decl'
6694 used to mark the class complete.
6695
f4530f43
APB
66962000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
6697
6698 * parse.y (simple_name:): Fixed typo in error message.
6699
e7c7bcef
APB
67002000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
6701
6702 * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
6703 or its first operand can be error marks.
6704
67052000-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
6706
6707 * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
6708 * parse.y (method_header): Likewise.
6709
02ae6e2e
APB
67102000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
6711
6712 * parse.y (process_imports): Consider that one might be trying to
6713 import an innerclass. Fixes gcj/254
6714
e7c7bcef
APB
67152000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
6716
6717 * parse.y (find_as_inner_class): Handle the case where the
6718 enclosing context of an innerclass has been loaded as bytecode.
6719
4142b247
APB
67202000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
6721
f6bbde28 6722 * parse.y (simple_name:): Reject `$' in type names.
4142b247
APB
6723 (resolve_type_during_patch): Use `type' as a second
6724 argument to resolve_no_layout. Fixes gcj/257.
6725
cab8e2bd
BM
67262000-07-18 Bryce McKinlay <bryce@albatross.co.nz>
6727
f6bbde28 6728 * parse.y (find_most_specific_methods_list): Select the only
cab8e2bd
BM
6729 non-abstract method even if max has been set.
6730 Fixes gcj/285, gcj/298.
6731
ca2875c4
JS
67322000-07-18 Jeff Sturm <jeff.sturm@appnet.com>
6733
6734 * lang-specs.h: Added %(jc1) to java compiler options.
6735
bfbbc080
ZW
67362000-07-14 Zack Weinberg <zack@wolery.cumb.org>
6737
6738 * .cvsignore: New file.
6739
11b26d72
APB
67402000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
6741
6742 * parse.y (not_accessible_p): Access granted to innerclasses
6743 (indirectly) extending the reference type. Fixes gcj/249.
6744
67452000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
6746
6747 * parse.y (patch_method_invocation): Fixed comment.
6748 (maybe_use_access_method): Build this$<n>s to the context of the
6749 target method, or a type that extends it. Fixes gcj/242.
6750
649c9142
MM
67512000-07-13 Mark Mitchell <mark@codesourcery.com>
6752
6753 * parse.c: Remove.
6754
ee97d354
APB
67552000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
6756
6757 * parse.y (fold_constant_for_init): Avoid bullish conversion.
6758
44fadf1e
TT
67592000-07-13 Tom Tromey <tromey@cygnus.com>
6760
6761 * lang-specs.h: Added %{I*}.
6762
ea414c97
ZW
67632000-07-13 Zack Weinberg <zack@wolery.cumb.org>
6764
6765 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
6766
792abd35
MM
67672000-07-12 Mark Mitchell <mark@codesourcery.com>
6768
6769 * parse-scan.c: Remove.
6770
11b26d72
APB
67712000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
6772
6773 * class.c (set_super_info): Handled protected inner classes.
6774 (common_enclosing_context_p): Bail early if arguments aren't both
6775 inner classes.
6776 (get_access_flags_from_decl): Handle private and protected inner
6777 classes.
6778 * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
6779 (CLASS_PROTECTED): Likewise.
dba41d30 6780 (struct lang_type): New bitfield `poic'.
11b26d72
APB
6781 * parse.y (jdep_resolve_class): Call check_inner_class_access on
6782 inner classes only.
6783 (check_inner_class_access): Renamed arguments, added
6784 comments. Handles protected inner classes (fixes gcj/225)
6785 (not_accessible_p): Fixed comments. Avoid handling inner classes.
6786
67872000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
6788
6789 * parse.y (resolve_qualified_expression_name): Verify qualified
dba41d30 6790 access to `this'. Fixes gcj/239.
11b26d72 6791
e67eb1a0 67922000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
2f2bd00a 6793
e67eb1a0
APB
6794 * jcf-write.c (generate_classfile): Don't install ConstantValue
6795 for null pointers.
2f2bd00a 6796
11b26d72
APB
67972000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
6798
6799 * parse.y (resolve_qualified_expression_name): Handle inner class
6800 access. Fixes gcj/256.
6801
629d4b4d
APB
68022000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
6803
6804 * jcf-write.c (generate_classfile): Properly install the
6805 ConstantValue attribute and the initial value constant pool index
6806 on string constants.
6807 * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
6808 class files.
6809
0c2b8145
APB
68102000-07-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
6811
6812 * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
6813 construct.
6814 * parse.y (find_as_inner_class): Fixed typo.
6815 (do_resolve_class): Explore enclosing contexts when searching for
6816 innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
6817 (check_inner_class_access): Check `decl' which can be null in case
6818 of previous errors.
6819
68202000-07-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
6821
dba41d30 6822 * java-tree.h (java_debug_context): Declared `extern'.
0c2b8145
APB
6823 (safe_layout_class): Likewise.
6824 * parse.y (resolve_field_access): Field must be `static' in order
6825 to be replaced by its initial value. Added comments.
6826 (find_applicable_accessible_methods_list): Fixed typo.
6827 (find_most_specific_methods_list): Methods found in innerclasses
6828 take over methods founds in the enclosing contexts.
6829 (java_complete_tree): Loosen restrictions on the type of DECLs
6830 that can be replaced by their initialization values.
dba41d30 6831 (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
0c2b8145 6832
0267da64
TT
68332000-07-05 Tom Tromey <tromey@cygnus.com>
6834
6835 * Make-lang.in (PARSE_DIR): New macro.
6836 (PARSE_RELDIR): Likewise.
6837 (PARSE_C): Likewise.
6838 (PARSE_SCAN_C): Likewise.
6839 ($(PARSE_C)): New target.
6840 ($(PARSE_SCAN_C)): Likewise.
6841 (SET_BISON): New macro.
6842 (BISONFLAGS): Likewise.
6843 (JAVABISONFLAGS): Likewise.
6844
1bbee75b
BM
68452000-07-02 Bryce McKinlay <bryce@albatross.co.nz>
6846
f6bbde28
ZW
6847 * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
6848 argument on the first pass for CNI as well as JNI.
6849 (print_method_info): Set up method name on the first pass only.
6850
98a52c2c
APB
68512000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
6852
6853 * parse.y (parser_qualified_classname): Removed parameter
6854 `is_static'.
6855 (create_interface): Removed first passed parameter to
6856 parser_qualified_classname.
6857 (create_class): Likewise. Don't install alias on static
6858 innerclasses. Fixes gcj/275.
6859
68602000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
6861
6862 * parse.y (maybe_generate_pre_expand_clinit): Don't build a
6863 debugable statement with empty_stmt_node. Fixes gcj/272
6864
68652000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
6866
6867 * expr.c (build_instanceof): Layout type after it's loaded. Fixes
6868 gcj/271.
6869
c1c8f8cc
APB
68702000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
6871
6872 * jcf-write.c (push_long_const): Appropriately cast short negative
6873 constant to jword.
6874
cf1b2274
APB
68752000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
6876
6877 * parse.y (verify_constructor_super): Use loop variable
6878 `m_arg_type' initialized with `mdecl_arg_type'.
6879
6eaeeb55
TT
68802000-06-29 Tom Tromey <tromey@cygnus.com>
6881
6882 * parse.y (resolve_field_access): Handle case where `type_found'
6883 is NULL.
6884
18ee3d5e
APB
68852000-06-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
6886
6887 * expr.c (lookup_field): The same field can be found through two
6888 different interface. Don't declare it ambiguous in that case.
6889
61d5c158
TT
68902000-06-27 Tom Tromey <tromey@cygnus.com>
6891
6892 * lex.c (java_lineterminator): Don't recognize \r after \n. If \r
6893 follows \r, then unget it at a lower level.
6894
70541f45
TT
68952000-06-26 Tom Tromey <tromey@cygnus.com>
6896
6897 * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
6898 java_complete_tree.
6899
774d2baf
TT
69002000-06-25 Tom Tromey <tromey@cygnus.com>
6901
6902 * parse.y (for_statement): Wrap expression in a WFL if it is a
6903 constant. For PR gcj/268.
6904
d6baf6f5
APB
69052000-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
6906
6907 * parse.y (do_resolve_class): Minor optimiztion in the package
17126208 6908 list search. Removed unnecessary test and return statement.
d6baf6f5
APB
6909 (valid_ref_assignconv_cast_p): Order of arguments to
6910 enclosing_context_p fixed.
6911
120f0c10
TT
69122000-06-24 Tom Tromey <tromey@cygnus.com>
6913
ae4a4c88
TT
6914 * expr.c (lookup_field): Print error and return error_mark_node if
6915 field reference is ambiguous.
6916
120f0c10
TT
6917 * parse.y (check_abstract_method_definitions): Also check if
6918 `other_method' is abstract.
6919
cf1748bf
APB
69202000-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
6921
6922 * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
6923 classes.
6924 * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
dba41d30 6925 (struct lang_type): New field `pic'.
cf1748bf
APB
6926 (CLASS_PRIVATE): New macro.
6927 * parse.y (check_inner_class_access): New function.
6928 (jdep_resolve_class): Call it.
6929
f1ff439a
TT
69302000-06-23 Tom Tromey <tromey@cygnus.com>
6931
6932 * parse.y (patch_incomplete_class_ref): Initialize the returned
6933 class. For PR gcj/260.
6934
9a7ab4b3
APB
69352000-06-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
6936
6937 * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
6938
69392000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
6940
6941 * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
6942 Java specific checks.
6943 * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
6944 screened by DECL_P.
6945 * java-tree.def (CASE_EXPR): Marked 'e'.
6946 (DEFAULT_EXPR): Likewise.
6947 * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
6948 screened by DECL_P.
6949 * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
6950 Java specific checks.
6951 (generate_bytecode_insns): Test try_block for BLOCK before using
6952 BLOCK_EXPR_BODY.
6953 * parse.y (build_wfl_wrap): Added `location' argument. Set
6954 EXPR_WFL_LINECOL accordingly.
6955 (dim_expr:): Wrap constants with WFLs.
6956 (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
6957 (resolve_package): Check for `stmt' not being a BLOCK before
6958 building a debuggable statement with it.
6959 (make_qualified_primary): Added extra parameter to build_wfl_wrap
6960 invocation.
6961 (resolve_field_access): Make sure `decl' is a DECL before treating
6962 it as such.
6963 (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
6964 IDENTIFIER_NODE before treating it as such.
6965 (patch_new_array_init): Make sure `elt' is a TREE_LIST before
6966 treating it as such.
6967 (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
6968 to be applied only on non array types.
6969
69702000-06-16 Per Bothner <per@bothner.com>
6971
6972 * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN): Don't
6973 define in terms of DECL_RESULT, as that fails when --enable-checking.
f6bbde28 6974
ffb1f63d
KG
69752000-06-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6976
6977 * jcf-write.c (CHECK_PUT): Add static prototype. Make pointer
6978 types the same in comparison.
6979 (CHECK_OP): Add static prototype.
6980
11cf4d18
JJ
69812000-06-13 Jakub Jelinek <jakub@redhat.com>
6982
6983 * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
6984 * parse.y (java_complete_class): Set DECL_USER_ALIGN.
6985 * parse.c: Rebuilt.
6986
5ac9118e
KG
69872000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6988
6989 * decl.c (create_primitive_vtable): Prototype.
6990
6991 * jcf-write.c (generate_bytecode_insns): Initialize variable
6992 `saved_context'.
6993
6994 * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
6995
ad69b5b6
BM
69962000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
6997
6998 * parse.y (find_applicable_accessible_methods_list): Use a hashtable
6999 to track searched classes, and do not search the same class more than
7000 once. Call find_applicable_accessible_methods_list on immediate
7001 superclass, instead of search_applicable_method_list on all ancestors.
7002 Fix for PR gcj/238.
7003
cf1748bf
APB
70042000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
7005
7006 * parse.y (register_fields): Permit static fields in inner classes
7007 if they are final. Fix for PR gcj/255.
7008
9a7ab4b3
APB
70092000-06-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
7010
7011 * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
7012 * parse.y (find_in_imports): Returned type changed to void,
7013 leading comment fixed.
7014 (register_package): New function.
7015 (qualify_and_find): Likewise.
7016 (package_declaration:): Use `register_package'.
7017 (single_type_import_declaration:): Removed local variable
7018 `node'. Added missing `;' for consistency.
7019 (type_import_on_demand_declaration:): Use `chainon' to link new
7020 entries.
7021 (lookup_field_wrapper): Lookup local variables defined in outer
7022 contexts first.
7023 (java_complete_class): Don't reverse the list of imported on demand.
7024 (do_resolve_class): Reorganized. Removed local variable
7025 `original_name'. Call `qualify_and_find' with the current package
7026 name, invoke `find_in_imports_on_demand' right after. Call
7027 `qualify_and_find' with the packages we've seen so far. Fixed
7028 operations numbering in comments.
7029 (java_expand_class): Don't reverse `package_list'.
7030 (find_most_specific_methods_list): New local variables `abstract'
7031 and `candidates'. Use them to pick the right method.
7032
62c9aa5f 70332000-06-06 Tom Tromey <tromey@ferrule.cygnus.com>
14d075d8
TT
7034
7035 * parse.y (check_modifiers_consistency): Don't subtract out
7036 `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
7037
603832a0
PT
70382000-06-04 Philipp Thomas <pthomas@suse.de>
7039
7040 * Makefile.in (INTLLIBS): New.
7041 (LIBS): Add above.
7042 (DEPLIBS): Ditto.
7043
62c9aa5f 70442000-06-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
8f975c18
APB
7045
7046 * class.c (get_dispatch_table): Build the vtable dummy entry list
e64c46ce 7047 element with a null purpose. Fixed leading comment.
8f975c18 7048 (build_dtable_decl): Build an accurate dtable type when appropriate
e64c46ce 7049 and use it.
8f975c18 7050
2e761e49
RH
70512000-06-02 Richard Henderson <rth@cygnus.com>
7052
7053 * lang.c (lang_get_alias_set): New.
7054
0f145be8
APB
70552000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
7056
7057 * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
7058 before using it as the accessed field.
7059
2771fe54
TT
70602000-05-31 Tom Tromey <tromey@cygnus.com>
7061
7062 * java-tree.h (boolean_array_vtable, byte_array_vtable,
7063 char_array_vtable, short_array_vtable, int_array_vtable,
7064 long_array_vtable, float_array_vtable, double_array_vtable):
7065 Declare.
7066 * expr.c (get_primitive_array_vtable): New function.
7067 (create_primitive_vtable): New function.
7068 (java_lang_expand_expr): Enable code to statically generate
7069 arrays.
7070 * decl.c (init_decl_processing): Create primitive vtables.
7071 (boolean_array_vtable, byte_array_vtable, char_array_vtable,
7072 short_array_vtable, int_array_vtable, long_array_vtable,
7073 float_array_vtable, double_array_vtable): Define.
7074
30a3caef
ZW
70752000-05-26 Zack Weinberg <zack@wolery.cumb.org>
7076
7077 * java/parse.y (find_applicable_accessible_methods_list):
7078 Don't add an uninitialized value to the list.
7079
b8c5b1c6
TT
70802000-05-25 Tom Tromey <tromey@cygnus.com>
7081
40aaba2b
TT
7082 * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
7083 when trying to see if field's class should be initialized. Always
7084 initialize field's declaring class, not qualified class.
7085 For PR gcj/162.
7086
b8c5b1c6
TT
7087 * parse.y (array_constructor_check_entry): Pass `wfl_value', not
7088 `wfl_operator', to maybe_build_primttype_type_ref.
7089 Fixes PR gcj/235.
7090
6518c7b5
BM
70912000-05-23 Bryce McKinlay <bryce@albatross.co.nz>
7092
7093 * parse.y (patch_method_invocation): Don't try to lookup methods
7094 in primitive types.
7095
611a4b87
APB
70962000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
7097
7098 * parse.y (resolve_field_access): Call the appropriate <clinit>
7099 before accessing the length of a static array. Craft a decl for
7100 the field while its time. Fixes PR gcj/129.
f6bbde28 7101
6b48deee
APB
71022000-05-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
7103
7104 * parse.y (resolve_package): Correctly set `*next' (was off by
7105 one.)
7106 (resolve_qualified_expression_name): Fixed comment.
7107
62c9aa5f 71082000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
0ba154aa 7109
f6bbde28 7110 * jcf-parse.c (jcf_parse_source): Reset current_class and
e64c46ce 7111 current_function_decl to NULL before parsing a new file.
0ba154aa 7112
62c9aa5f 71132000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
c280e37a
APB
7114
7115 * parse.y (block_end:): If the collected block doesn't feature a
e64c46ce 7116 statement, insert an empty statement.
c280e37a 7117
92d83515
APB
71182000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
7119
f6bbde28
ZW
7120 * parse.y (maybe_yank_clinit): New function.
7121 (maybe_generate_pre_expand_clinit): Always link <clinit> at the
7122 end of the list of methods belonging to a class.
7123 (java_complete_expand_method): Check whether <clinit> is really
7124 necessary and expand it accordingly.
92d83515 7125
ec5bb3cf
APB
71262000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
7127
7128 * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
7129 processed by the method's switch statement.
7130
67db0ce7
TT
71312000-05-19 Tom Tromey <tromey@cygnus.com>
7132
7133 * java-tree.h: Added init state enum.
7134 * decl.c (emit_init_test_initialization): Initialize class
7135 initialization check variable by looking at class' state.
7136
43490bec
TT
71372000-05-19 Tom Tromey <tromey@cygnus.com>
7138
7139 * java-tree.h (build_instanceof): Declare.
7140 (build_get_class): Declare.
7141 * parse.y (patch_binop): Use build_instanceof.
7142 * expr.c (build_instanceof): New function. If class is final,
7143 don't make a function call.
7144 (expand_java_INSTANCEOF): Use it.
7145 (build_get_class): New function.
7146
062edaed
AO
71472000-05-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
7148
7149 * jcf-write.c (generate_classfile): Scan the source_file for
7150 slashes with the right pointer variable.
7151
62c9aa5f 71522000-05-17 Andrew Cagney <cagney@b1.cygnus.com>
078721e1
AC
7153
7154 * lang.c (lang_decode_option): Update -Wunused flags by calling
e64c46ce 7155 set_Wunused.
078721e1
AC
7156 * decl.c (poplevel): Replace warn_unused with warn_unused_label.
7157
46543024 71582000-05-09 Zack Weinberg <zack@wolery.cumb.org>
3b304f5b
ZW
7159
7160 * check_init.c (check_init): Constify local char *.
7161 * class.c (push_class): Constify local char *.
7162 * java_tree.h: Update prototypes.
7163 * jcf-io.c (open_class): Constify filename parameter and
7164 return value.
7165 (find_class): Remove redundant string copy. Cast return from
7166 open_class.
7167 * jcf-parse.c (read_class, parse_class_file, yyparse):
7168 Constify local char *.
7169 * jcf-write.c (generate_bytecode_insns, generate_classfile):
7170 Constify local char *.
7171 * jcf.h (JCF): Constify filename and classname.
7172 (JCF_FINISH): Cast args to FREE to char * when appropriate.
7173 * lang.c (init_parse): Constify parameter and return value.
7174 * lex.c (java_get_line_col): Constify filename parameter.
7175 * parse.h: Constify parser_ctxt.filename. Update prototypes.
7176 * parse.y (java_parser_context_suspend,
7177 issue_warning_error_from_context, safe_layout_class): Constify
7178 local char *.
7179 * parse.c: Regenerate.
7180
4c6a8973
TT
71812000-05-08 Tom Tromey <tromey@cygnus.com>
7182
7183 * expr.c (build_jni_stub): Cache the result of
7184 _Jv_LookupJNIMethod.
7185
e117276e
APB
71862000-05-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
7187
7188 * decl.c (predef_filenames_size): Now 7.
7189 (predef_filenames): New seventh entry.
7190
652f2504
TT
71912000-05-04 Tom Tromey <tromey@cygnus.com>
7192
7193 * boehm.c (mark_reference_fields): Don't mark RawData fields.
7194 Keep track of when we've seen a reference field after a
7195 non-reference field.
7196 (get_boehm_type_descriptor): Handle case where we see
7197 non-reference fields but no trailing reference field.
7198 * decl.c (rawdata_ptr_type_node): Define.
7199 (init_decl_processing): Initialize rawdata_ptr_type_node.
7200 * java-tree.h (rawdata_ptr_type_node): Declare.
7201
ccedaff3
KG
72022000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7203
7204 * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
7205 specifiers in calls to fprintf.
7206
dd5d6281
TT
72072000-05-03 Andrew Haley <aph@cygnus.com>
7208
7209 * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
7210
7211 * javaop.h (WORD_TO_INT): New function.
7212 (IMMEDIATE_s4): Use WORD_TO_INT.
7213 * jcf.h (JPOOL_INT): Ditto.
7214
7215 * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
7216 separator.
7217
dd5d6281 72182000-04-19 Tom Tromey <tromey@cygnus.com>
7145d9fe
TT
7219
7220 * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
7221 on native function.
7222 * jcf-parse.c (parse_class_file): Call build_jni_stub for native
7223 JNI methods.
7224 * expr.c (build_jni_stub): New function.
7225 * lang-specs.h: -fjni and -femit-class-file are incompatible.
7226 * parse.c: Rebuilt.
7227 * parse.y (java_complete_expand_methods): Expand a native method
7228 and call build_jni_stub if -fjni given.
7229 * lang-options.h: Document -fjni.
7230 * lang.c (flag_jni): New global.
7231 (lang_f_options): Added `jni' entry.
7232 * java-tree.h (soft_lookupjnimethod_node,
7233 soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
7234 Declare.
7235 (flag_jni): Declare.
7236 (build_jni_stub): Declare.
7237 (struct lang_decl): Added `native' flag.
7238 (METHOD_NATIVE): Redefined to use `native' field of lang specific
7239 structure.
7240 * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
7241 soft_jnipopsystemframe_node): New globals.
7242 (init_decl_processing): Set them. _Jv_InitClass only takes one
7243 argument.
7244
7245 * java-tree.def: Put into `C' mode.
7246
e815887f
TT
72472000-04-27 Tom Tromey <tromey@cygnus.com>
7248
7249 Fix for PR gcj/2:
7250 * expr.c (expand_invoke): Generate check to see if object pointer
7251 is null in nonvirtual invocation case.
7252 * java-tree.h (soft_nullpointer_node): Declare.
7253 * decl.c (soft_nullpointer_node): New global.
7254 (init_decl_processing): Initialize soft_nullpointer_node.
7255 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
7256 or `private' methods.
7257 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
7258
62c9aa5f 72592000-04-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
ad81223c
APB
7260
7261 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
e64c46ce 7262 from <clinit>
ad81223c 7263
f1acc01e
TT
72642000-04-26 Tom Tromey <tromey@cygnus.com>
7265
7266 * zextract.c (find_zip_file_start): New function.
7267 (read_zip_archive): Use it.
7268
e803d3b2
APB
72692000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
7270
7271 * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
7272
152de068
APB
72732000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
7274
7275 * class.c (common_enclosing_context_p): New function.
7276 * java-tree.h (common_enclosing_context_p): Added prototype.
7277 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
7278 classes sharing an outer context with the current instance.
7279 * parse.y (build_access_to_thisn): Fixed leading comment.
7280 (verify_constructor_super): New local `supper_inner'. Skip
7281 enclosing context argument in the case of inner class constructors.
7282 (patch_method_invocation): Insert proper context as second
7283 parameter to pure inner class constructor super invocations.
7284
62c9aa5f 72852000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
93220702
APB
7286
7287 * parse.y (end_class_declaration): Reset the interface number
e64c46ce 7288 counter.
93220702 7289
dfb99c83
APB
72902000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
7291
17126208 7292 * parse.y (source_start_java_method): Deleted unnecessary code.
f6bbde28 7293 (patch_method_invocation): Fixed comment.
dfb99c83 7294
e60a8c26
RL
72952000-04-24 Robert Lipe <robertlipe@usa.net>
7296
7297 * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
7298
3c8c10b8
TT
72992000-04-23 Tom Tromey <tromey@cygnus.com>
7300
7301 * boehm.c (mark_reference_fields): Use int_byte_position.
7302
8a008c41
TT
73032000-04-22 Tom Tromey <tromey@cygnus.com>
7304
7305 * boehm.c (mark_reference_fields): Only call byte_position on
7306 non-static fields.
7307
d5f76aba
TT
73082000-04-22 Tom Tromey <tromey@cygnus.com>
7309
7310 * boehm.c (mark_reference_fields): Added `last_view_index'
7311 argument. Use DECL_FIELD_OFFSET to determine field's offset.
7312
62c9aa5f 73132000-04-20 Mo DeJong <mdejong@cygnus.com>
a40d21da
APB
7314
7315 * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
7316 * parse.y (check_class_interface_creation): Fixed comments. Select
e64c46ce
AJ
7317 permitted modifiers for (inner) interfaces. Changed error message
7318 to report rejected modifiers used with local classes.
a40d21da
APB
7319
73202000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
7321
7322 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
7323 of directly inherited type considered in scope.
7324 * parse.y (do_resolve_class): Search inherited classes for inner
7325 classes.
7326
473e7b07
TT
73272000-04-20 Tom Tromey <tromey@cygnus.com>
7328
7329 * parse.y (not_accessible_p): Use member's class, not current
7330 class, when doing inheritance check for protected reference.
7331 Fixes PR gcj/124.
7332
62c9aa5f 73332000-04-20 Jason Schroeder <shrode@subnature.com>
c52fbf0f
JS
7334
7335 * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
7336
f2760b27
APB
73372000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
7338
7339 * parse.y (lookup_field_wrapper): Search for final local aliases.
7340 (resolve_expression_name): Let lookup_field_wrapper search for
7341 final local aliases. Force the value of `name' if one is found.
7342 (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
7343 an expression name. Fixed comments.
7344
807bc1db
APB
73452000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
7346
7347 * parse.y (yyerror): `msg' can be null, don't use it in that case.
7348
ecb36604
TT
73492000-04-19 Tom Tromey <tromey@cygnus.com>
7350
7351 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
7352
48a840d9
APB
73532000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
7354
7355 * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
7356
83c1f628
TT
73572000-04-18 Tom Tromey <tromey@cygnus.com>
7358
7359 PR gcj/211:
7360 * gjavah.c (utf8_cmp): Changed return value.
7361 (cxx_keyword_subst): Handle all C++ keywords. Allocate new return
7362 result.
7363 (cxx_keywords): New global.
7364 (get_field_name): Handle new result of cxx_keyword_subst.
7365 (print_method_info): Likewise.
7366
a7384840
BM
73672000-04-17 Bryce McKinlay <bryce@albatross.co.nz>
7368
f6bbde28 7369 * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
a7384840 7370 with a newline, for CNI.
f6bbde28 7371 (print_stub_or_jni): Print a space or newline before method name for
a7384840
BM
7372 CNI as well as JNI.
7373 (print_cxx_classname): Don't write leading "::" in CNI stub method.
f6bbde28 7374 (process_file): Include gcj/cni.h if generating CNI stubs.
a7384840 7375
3e0768f0
TT
73762000-04-16 Tom Tromey <tromey@cygnus.com>
7377
7378 * gjavah.c (decompile_method): Use print_field_name.
7379 Fixes PR gcj/205.
7380
48a840d9
APB
73812000-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
7382
7383 * parse.y (java_expand_classes): Reverse the package list once.
7384 (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
7385 reduction.
7386 (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
7387 the `==' and `!=' operators.
7388
cedea510
APB
73892000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
7390
67264b4f 7391 * jcf-write.c (generate_bytecode_insns): At invocation time,
cedea510 7392 always relate an interface method to the type of its selector.
f6bbde28 7393
e803d3b2
APB
73942000-04-05 Tom Tromey <tromey@cygnus.com>
7395
7396 Fix for PR gcj/2:
7397 * expr.c (expand_invoke): Generate check to see if object pointer
7398 is null in nonvirtual invocation case.
7399 * java-tree.h (soft_nullpointer_node): Declare.
7400 * decl.c (soft_nullpointer_node): New global.
7401 (init_decl_processing): Initialize soft_nullpointer_node.
7402 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
7403 or `private' methods.
7404 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
7405
bc2874c9
TT
74062000-04-05 Tom Tromey <tromey@cygnus.com>
7407
7408 Fix for PR gcj/140:
7409 * parse.y (check_final_assignment): Recognize assignments to the
7410 `length' field of an array when generating class files.
7411
256172c4
APB
74122000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
7413
7414 * class.c (decl_hash): Prototype removed.
7415 (decl_compare): Likewise.
7416
e0fc4118
TT
74172000-04-05 Tom Tromey <tromey@cygnus.com>
7418
7419 * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
7420 * parse.y (check_modifiers_consistency): Check for final/volatile
7421 clash. Fixes PR gcj/164.
7422
e0422ed0
APB
74232000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
7424
7425 * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
7426 made global.
7427 (java_hash_compare_tree_node): Renamed from `decl_compare, made
7428 global.
7429 (add_method_1): Use `java_hash_hash_tree_node' and
7430 `java_hash_compare_tree_node'.
7431 * java-tree.h: (java_hash_hash_tree_node): Prototyped.
7432 (java_hash_compare_tree_node): Likewise.
7433 * parse.y (find_applicable_accessible_methods_list): Create,
7434 delete and use a hash table to remember already searched interfaces.
7435
4200941b
MW
74362000-04-03 Matt Welsh <mdw@cs.berkeley.edu>
7437
7438 * jcf-depend.c (add_entry): Fixed bug where list was always replaced
7439 with latest entry.
7440
c0b864fc
KG
74412000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7442
7443 * boehm.c (mark_reference_fields, set_bit): Prototype.
7444 (set_bit): Un-ANSI-fy definition.
7445
7446 * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
7447 Prototype.
7448
7449 * decl.c (emit_init_test_initialization): Likewise.
7450
7451 * gjavah.c (jni_print_char): Likewise.
7452
7453 * parse.y (create_new_parser_context): Likewise.
7454
62c9aa5f 74552000-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
64ea4a5e
APB
7456
7457 * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
7458 patch missing hunk. Fixed indentation.
7459
05411ecf
TT
74602000-03-30 Tom Tromey <tromey@cygnus.com>
7461
7462 * gjavah.c (D_NAN_MASK): Only define as word-reversed when
7463 HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
7464
acbedd7c
APB
74652000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
7466
7467 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
7468 when negative *before* using it as an array index.
7469 * ChangeLog: Fixed typo.
7470
0981a859
APB
74712000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
7472
7473 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
7474 to 0 when it reaches -1.
7475
74762000-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
7477
7478 * jcf-parse.c (get_constant): Properly cast `num' during the
acbedd7c 7479 invocation of `add_double'.
0981a859
APB
7480 * jcf-write.c (push_long_const): Properly cast `lo' before
7481 comparing it to short bounds.
7482 * parse-scan.y (interface_declaration:): Rule re-arrange so that
7483 `interface_body:' is reduced after the current interface is
7484 pushed.
7485
a843e0ce
TT
74862000-03-26 Tom Tromey <tromey@cygnus.com>
7487
7488 * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
7489 Java-specific `-f' option.
7490
62c9aa5f 74912000-03-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
ad41cc2a
RK
7492
7493 * decl.c (init_decl_processing): Only call initialize_sizetypes once.
7494 Adjust order of making types.
7495 Make bitsize_*_node values.
7496
62c9aa5f 74972000-03-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
770ae6cc
RK
7498
7499 * class.c (make_field_value): Use byte_position.
7500 * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
7501 (java_array_data_offset): Likewise.
7502 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
7503 bzero call.
7504
165f37bc
APB
75052000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
7506
7507 * parse.y (check_abstract_method_definitions): New local
7508 `end_type_reached'. Make sure we also consider `end_type'.
0981a859
APB
7509 (java_check_abstract_method_definitions): Make sure we eventually
7510 consider `java.lang.Object'.
7511 (maybe_use_access_method): Don't use access method if not in the
7512 context of a pure inner class or if the method's context is right.
7513 (find_applicable_accessible_methods_list): New static flag
165f37bc 7514 `object_done'. Don't search abstract classes as interfaces. Fixed
0981a859
APB
7515 indentation. Fixed the `java.lang.Object' only search. Search
7516 class interface(s) first, then fully search enclosing contexts.
7517 (find_most_specific_methods_list): Pick the closest candidate when
165f37bc
APB
7518 they're all abstract.
7519
62c9aa5f 75202000-03-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
124906f9
APB
7521
7522 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
dba41d30 7523 properly initialize `finished_label'. Don't emit gotos for empty
124906f9
APB
7524 try statements.
7525
c14f7160
ML
7526