toplev.h: Do not include diagnostic-core.h.
[gcc.git] / gcc / java / ChangeLog
1 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
2
3 * boehm.c: Include diagnostic-core.h in every file that includes
4 toplev.h.
5 * class.c: Likewise.
6 * constants.c: Likewise.
7 * decl.c: Likewise.
8 * except.c: Likewise.
9 * expr.c: Likewise.
10 * jcf-parse.c: Likewise.
11 * mangle.c: Likewise.
12 * mangle_name.c: Likewise.
13 * resource.c: Likewise.
14 * typeck.c: Likewise.
15 * verify-glue.c: Likewise.
16
17 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
18
19 PR bootstrap/44825
20 * class.c (make_class_data): Cast result of VEC_length calls to int.
21
22 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
23
24 * constants.c (build_constants_constructor): Use build_constructor
25 instead of build_constructor_from_list.
26 * class.c (make_method_value): Likewise.
27 (get_dispatch_table): Likewise.
28 (make_class_data): Likewise.
29 (emit_indirect_register_classes): Likewise.
30 (emit_symbol_table): Likewise.
31 (add_assertion_table_entry): Likewise.
32 (emit_assertion_table): Likewise.
33 (make_field_value): Use build_constructor_single instead of
34 build_constructor_from_list.
35
36 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
37
38 * java-tree.h (struct lang_type) [catch_classes]: Change type to a
39 VEC.
40 * except.c (prepare_eh_table_type): Call CONSTRUCTOR_APPEND_ELT
41 instead of tree_cons.
42 * class.c (make_class): Add dummy entry to TYPE_CATCH_CLASSES.
43 (emit_catch_table): Adjust for new type of TYPE_CATCH_CLASSES.
44
45 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
46
47 * lang.c: Do not include except.h
48 * except.c: Likewise.
49 (doing_eh): New, moved from except.c (in gcc/) but removed the
50 do_warning flag.
51 (maybe_start_try): Update doing_eh call.
52 * Make-lang.in: Update dependencies.
53
54 2010-06-23 Anatoly Sokolov <aesok@post.ru>
55
56 * decl.c (java_init_decl_processing): Use double_int_to_tree instead
57 of build_int_cst_wide.
58 * boehm.c (set_bit): Remove.
59 (mark_reference_fields): Use double_int type for 'mask' argument.
60 Use double_int_setbit instead of set_bit.
61 (get_boehm_type_descriptor): Use double_int_setbit instead of
62 set_bit. Use double_int_to_tree instead of build_int_cst_wide.
63
64 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
65
66 * gcj.texi: Move to GFDL version 1.3. Fix copyright years.
67
68 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
69
70 * jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.
71
72 * jcf-parse.c (java_parse_file): Likewise.
73 (process_zip_dir): Likewise.
74
75 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
76 (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
77
78 * expr.c (add_type_assertion): Likewise.
79
80 * decl.c (make_binding_level): Likewise.
81 (java_dup_lang_specific_decl): Likewise.
82
83 * constants.c (set_constant_entry): Likewise.
84 (cpool_for_class): Likewise.
85
86 * class.c (add_method_1): Likewise.
87 (java_treetreehash_new): Likewise.
88
89 * java-tree.h (struct lang_type): Add variable_size GTY option.
90 (struct lang_decl): Likewise.
91
92 * jch.h (struct cpool_entry): Likewise.
93
94 * java-tree.h (java_treetreehash_create): Remove parameter ggc.
95
96 * except.c (prepare_eh_table_type): Update
97 java_treetreehash_create call.
98
99 * class.c (add_method_1): Update java_treetreehash_create call.
100 (java_treetreehash_create): Remove parameter gc. Use
101 htab_create_ggc.
102
103 2010-06-04 Joseph Myers <joseph@codesourcery.com>
104
105 * jvspec.c (lang_specific_driver): Use GCC-specific formats in
106 diagnostics.
107
108 2010-05-30 Steven Bosscher <steven@gcc.gnu.org>
109
110 * except.c: Include tm.h.
111
112 2010-05-28 Joseph Myers <joseph@codesourcery.com>
113
114 * jvspec.c (lang_specific_driver): Use fatal_error instead of
115 fatal. Use warning instead of error for warnings.
116
117 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
118
119 * expr.c (get_symbol_table_index): Add spaces in expression.
120
121 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
122
123 * java-tree.h (method_entry): Declare. Declare VECs containing it.
124 (struct lang_type): Change type of otable_methods, atable_methods, and
125 itable_methods to VECs. Fix comment for atable_methods.
126 (emit_symbol_table): Take a VEC instead of a tree.
127 (get_symbol_table_index): Take a VEC * instead of a tree *.
128 * class.c (add_table_and_syms): Take a VEC instead of a tree.
129 (emit_symbol_table): Update for changed parameter type.
130 * expr.c (get_symbol_table_index): Likewise.
131
132 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
133
134 * buildings.c: Pretend to be a backend file by undefining
135 IN_GCC_FRONTEND (still need rtl.h here).
136
137 2010-05-26 Nathan Froyd <froydnj@codesourcery.com>
138
139 * java-tree.h (struct lang_decl_func): Change type of throws_list
140 field to a VEC.
141 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): Adjust for changed type
142 of DECL_FUNCTION_THROWS.
143 * class.c (make_method_value): Likewise.
144
145 2010-05-26 Nathan Froyd <froydnj@codesourcery.com>
146
147 * class.c (utf8_decl_list): Delete.
148 (build_utf8_ref): Remove references to it.
149 * java-tree.h (all_class_list): Delete.
150 (predef_filenames): Delete.
151 (enum java_tree_index) [JTI ALL_CLASS_LIST,JTI_PREDEF_FILENAMES]:
152 Delete.
153 * jcf-parse.c (parse_roots): Decrease size to 2.
154 (current_file_list): Convert to a VEC.
155 (all_class_list): Declare.
156 (jcf_parse): Adjust for new type of all_class_list.
157 (java_layout_seen_class_methods): Likewise.
158 (predefined_filenames): Declare.
159 (add_predefined_file): Use it.
160 (predefined_filename_p): Likewise.
161 (java_parse_file): Adjust for new type of current_file_list. *
162
163 2010-05-25 Jakub Jelinek <jakub@redhat.com>
164
165 * lang.c (java_classify_record): Return RECORD_IS_INTERFACE
166 for interfaces.
167
168 PR debug/43260
169 * java-tree.h (pending_static_fields): New extern declaration.
170 (java_write_globals): New prototype.
171 * lang.c (LANG_HOOKS_WRITE_GLOBALS): Define.
172 * decl.c (java_mark_class_local): When clearing DECL_EXTERNAL
173 of a static field push it into pending_static_fields vector.
174 * class.c (pending_static_fields): New variable.
175 (add_field): If static field is not DECL_EXTERNAL, push it into
176 pending_static_fields vector.
177 (java_write_globals): New function.
178
179 2010-05-24 Nathan Froyd <froydnj@codesourcery.com>
180
181 * expr.c (quick_stack): Change type to a VEC. Update comment.
182 (tree_list_free_list): Delete.
183 (flush_quick_stack): Update for quick_stack type change.
184 (push_value): Likewise.
185 (pop_value): Likewise.
186
187 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
188
189 * java-gimplify.c: Do not include tm.h, toplev.h.
190 * typeck.c: Do not include tm.h.
191 * mangle_name.c: Do not include tm.h.
192 * jcf-dump.c: Do not include tm.h, ggc.h.
193 * class.c: Do not include rtl.h, tm_p.h, target.h, except.h, cgraph.h.
194 * decl.c: Do not include tm.h, rtl.h, function.h, expr.h, except.h,
195 and timevar.h.
196 * jcf-parse.c: Do not include tm.h and tm_p.h.
197 * resource.c: Do not include tm.h, rtl.h, flags.h, obstack.h,
198 target.h, and expr.h.
199 * except.c: Do not include tm.h, rtl.h, function.h.
200 * builtins.c: Do not include convert.h. Explain why RTL headers
201 have to be included here.
202 * verify-glue.c: Do not include tm.h.
203 * jcf-depend.c: Do not include tm.h.
204 * jcf-reader.c: Include ggc.h.
205 * jcf-io.c: Do not include tm.h, toplev.h.
206 * expr.c: Do not include tm.h, rtl.h, expr.h, except.h, tm_p.h,
207 gimple.h.
208 * lang.c: Do not include rtl.h, expr.h.
209 * Make-lang.in: Update dependencies.
210
211 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
212
213 * jcf-parse.c: Include bitmap.h.
214 * Make-lang.in: Update dependencies.
215
216 2010-05-20 Jakub Jelinek <jakub@redhat.com>
217
218 PR debug/43521
219 * decl.c (start_java_method): Set DECL_ARTIFICIAL on the 'this'
220 PARM_DECL.
221
222 2010-05-19 Anatoly Sokolov <aesok@post.ru>
223
224 * jcf-parse.c (get_constant): Use double_int_to_tree instead of
225 build_int_cst_wide_type.
226
227 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
228
229 * expr.c (pop_arguments): Fix use of undeclared variable.
230
231 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
232
233 * expr.c (expand_java_multianewarray): Use build_call_vec instead of
234 build_call_list.
235 (pop_arguments): Return a VEC instead of a tree. Take a method type
236 rather than a list of argument types.
237 (rewrite_rule): Change signature. of rewrite_arglist member.
238 (rewrite_arglist_getcaller): Update signature.
239 (rewrite_arglist_getclass): Likewise.
240 (maybe_rewrite_invocation): Update for rewrite_arglist change.
241 (build_known_method_ref): Take a VEC instead of a tree.
242 (invoke_build_dtable): Likewise.
243 (expand_invoke): Update calls to pop_arguments. Use build_call_vec
244 instead of build_call_list.
245 (build_jni_stub): Use build_call_vec instead of build_call_list.
246 * java-tree.h (maybe_rewrite_invocation): Update declaration.
247 (build_known_method_ref): Likewise.
248 (invoke_build_dtable): Likewise.
249
250 2010-05-14 Nathan Froyd <froydnj@codesourcery.com>
251
252 PR 44103
253 * java-tree.h (START_RECORD_CONSTRUCTOR): Change first argument to a
254 vector. Move call to build_constructor...
255 (FINISH_RECORD_CONSTRUCTOR): ...here. Add necessary arguments. Clear
256 TREE_CONSTANT on the constructor.
257 (PUSH_SUPER_VALUE): Change first argument to a vector.
258 (PUSH_FIELD_VALUE): Likewise.
259 * resource.c (compile_resource_data): Update calls to above macros.
260 * constants.c (build_constants_constructor): Likewise.
261 * class.c (build_utf8_ref): Likewise.
262 (make_field_value): Likewise.
263 (make_method_value): Likewise.
264 (add_table_and_syms): New function.
265 (make_class_data): Call it. Update calls to above macros.
266 (build_symbol_table_entry): New function.
267 (build_symbol_entry): Call it. Update calls to above macros.
268 (emit_symbol_table): Likewise.
269 (make_catch_class_record): Update calls to above macros.
270 (build_assertion_table_entry): New function.
271 (add_assertion_table_entry): Call it.
272 (emit_assertion_table): Likewise.
273
274 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
275
276 PR 40989
277 * lang.c (java_handle_option): Add argument kind.
278
279 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
280
281 * decl.c (java_init_decl_processing): Remove argument in call to
282 initialize_sizetypes
283
284 2010-04-07 Jakub Jelinek <jakub@redhat.com>
285
286 * exception.cc (_Jv_Throw): Avoid set but not used warning.
287 * include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
288 sizeof to avoid set but not used warnings.
289
290 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
291
292 * lang.c (java_post_options): Constify variable "dot".
293
294 * jcf-parse.c (set_source_filename): Constify variable "dot".
295 (load_class): Constify variable "separator".
296 Use get_identifier_with_length.
297
298 * jvspec.c (lang_specific_driver): Constify two variables named "p".
299
300 2010-01-09 Jakub Jelinek <jakub@redhat.com>
301
302 * jcf-dump.c (version): Update copyright notice dates.
303
304 2009-11-28 Jakub Jelinek <jakub@redhat.com>
305
306 * jvspec.c (lang_specific_driver): Remove unused
307 saw_verbose_flag variable.
308 * jcf-dump.c (main): Remove unused general_purpose_bits
309 variable.
310 * builtins.c (initialize_builtins): Remove unused float_ftype_float
311 variable.
312 * expr.c (java_stack_pop): Remove unused val variable.
313 (build_jni_stub): Remove unused res_type variable.
314 * verify-impl.c (check_field_constant): Remove unused len variable.
315
316 2009-10-20 Joel Dice <dicej@mailsnare.net>
317
318 PR java/28474
319 * mangle_name.c (append_unicode_mangled_name): Fix mangling
320 of names with multiple underscores and "U".
321 (unicode_mangling_length): Likewise.
322
323 2009-10-03 Simon Baldwin <simonb@google.com>
324
325 * config-lang.in (lang_dirs): Remove zlib.
326
327 2009-09-28 Richard Henderson <rth@redhat.com>
328
329 * builtins.c (initialize_builtins): Update call to
330 build_common_builtin_nodes.
331 * lang.c (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
332
333 2009-09-14 Richard Henderson <rth@redhat.com>
334
335 * builtins.c (initialize_builtins): Update call to
336 build_common_builtin_nodes.
337 * decl.c (java_init_decl_processing): Don't call
338 default_init_unwind_resume_libfunc.
339 * except.c: Include tree-iterator.h.
340 (build_exception_object_var): New.
341 (build_exception_object_ref): Use it.
342 (expand_end_java_handler): Initialize it from __builtin_eh_pointer.
343 Attach all CATCH_EXPRs to a single TRY_CATCH_EXPR.
344 * java-tree.h (DECL_FUNCTION_EXC_OBJ): New.
345
346 2009-09-13 Richard Guenther <rguenther@suse.de>
347 Rafael Avila de Espindola <espindola@google.com>
348
349 * decl.c (do_nothing): Remove.
350 (java_init_decl_processing): Do not set lang_eh_runtime_type.
351 * Make-lang.in (lang.o): Add $(EXCEPT_H) dependency.
352 * lang.c (java_eh_personality): New.
353 (java_eh_personality_decl): Likewise.
354 (LANG_HOOKS_EH_PERSONALITY): Define.
355
356 2009-09-03 Diego Novillo <dnovillo@google.com>
357
358 * lang.c (lang_hooks): Remove const qualifier.
359
360 2009-09-01 Jakub Jelinek <jakub@redhat.com>
361
362 * boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT
363 type.
364
365 2009-09-01 Richard Guenther <rguenther@suse.de>
366
367 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
368 * java-tree.h (java_mark_addressable): Likewise.
369 * typeck.c (java_mark_addressable): Likewise.
370
371 2009-08-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
372
373 * Make-lang.in (java.install-pdf): Install gcj.pdf in
374 $(pdfdir)/gcc, alongside the other manuals.
375
376 2009-08-12 Andrew Haley <aph@redhat.com>
377
378 * builtins.c (compareAndSwapInt_builtin): Use
379 flag_use_atomic_builtins.
380 (compareAndSwapLong_builtin): Likewise.
381 (compareAndSwapObject_builtin): Likewise.
382 * jvspec.c: Add flag_use_atomic_builtins.
383 * gcj.texi: Likewise.
384 * java-tree.h: Likewise.
385 * lang.opt: Likewise.
386
387 2009-08-11 Dodji Seketeli <dodji@redhat.com>
388
389 PR debug/40990
390 * lang.c (put_decl_node): Outputs different level of information
391 depending on the verbosity level.
392
393 2009-07-31 Andrew Haley <aph@redhat.com>
394
395 PR java/40867
396 * decl.c (java_replace_references): Set EXPR_LOCATION on all
397 generated expressions.
398 (binding_level.loc): new field.
399 (clear_binding_level): Initialize loc.
400 (set_input_location): New function.
401 (pushlevel): Set new binding_level.loc.
402 (poplevel): Set EXPR_LOCATION on the new BIND_EXPR_BODY.
403 (start_java_method): Set DECL_SOURCE_LOCATION of this new method.
404 (java_add_stmt): Set the EXPR_LOCATION on all subtrees of new_stmt.
405
406 2009-07-17 Richard Guenther <rguenther@suse.de>
407
408 PR c/40401
409 * java-gimplify.c (java_genericize): Do not gimplify here.
410 But replace all local references.
411 (java_gimplify_expr): Do not replace local references here.
412 (java_gimplify_modify_expr): Likewise.
413 * jcf-parse.c (java_parse_file): Do not finalize the CU or
414 optimize the cgraph here.
415 * decl.c (java_replace_reference): Make static.
416 (java_replace_references): New function.
417 (end_java_method): Clear base_decl_map.
418 * java-tree.h (java_replace_references): Declare.
419 (java_replace_reference): Remove.
420
421 2009-07-14 Taras Glek <tglek@mozilla.com>
422 Rafael Espindola <espindola@google.com>
423
424 * Make-lang.in (java.install-plugin): New target for
425 installing plugin headers.
426
427 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
428
429 * class.c: Replace %J by an explicit location. Update all calls.
430
431 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
432
433 * jcf-parse.c: Replace %H by an explicit location. Update all calls.
434
435 2009-06-29 Andrew Haley <aph@redhat.com>
436
437 PR java/40590
438 * java-tree.h (cxx_keyword_p): New declaration.
439 * mangle_name.c (utf8_cmp): Move here from mangle.c.
440 (cxx_keywords): Likewise.
441 (cxx_keyword_p): Likewise.
442 (MANGLE_CXX_KEYWORDS): New macro.
443 (append_gpp_mangled_name): Use MANGLE_CXX_KEYWORDS.
444 (append_gpp_mangled_name): Likewise.
445 * mangle.c: Move code to mangle_name.c.
446 (mangle_member_name): Don't call cxx_keyword_p.
447
448 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
449
450 * java-gimplify.c (java_gimplify_block): New argument to
451 build_empty_stmt.
452 * expr.c (force_evaluation_order): Same.
453 * typeck.c: Add location to build_decl or PUSH_FIELD calls.
454 * class.c: Same.
455 * decl.c: Same.
456 * jcf-parse.c: Same.
457 * constants.c: Same.
458 * resource.c: Same.
459 * except.c: Same.
460 * builtins.c: Same.
461 * expr.c: Same.
462 * java-tree.h (PUSH_FIELD): Add location field.
463
464 2009-06-09 Ian Lance Taylor <iant@google.com>
465
466 * verify.h: Remove extern "C".
467
468 2009-06-07 Ian Lance Taylor <iant@google.com>
469
470 * jcf-parse.c (handle_constant): Change local variable 'kind' to
471 unsigned int.
472
473 2009-06-01 Ian Lance Taylor <iant@google.com>
474
475 * jcf-io.c (find_class): Use CONST_CAST.
476
477 2009-05-27 Ian Lance Taylor <iant@google.com>
478
479 * Make-lang.in ($(XGCJ)$(exeext)): Change $(COMPILER) to
480 $(LINKER).
481 (jc1$(exeext), jcf-dump$(exeext), jvgenmain$(exeext)): Likewise.
482
483 2009-05-26 Ian Lance Taylor <iant@google.com>
484
485 * Make-lang.in (jvspec.o): Use $(COMPILER).
486 ($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise.
487 (jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise.
488
489 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
490
491 * Make-lang.in (GCJ): Renamed to...
492 (XGCJ): ... this.
493
494 2009-04-27 Ian Lance Taylor <iant@google.com>
495
496 * builtins.c (java_builtins): Add casts to enum type.
497 * verify-impl.c (check_class_constant): Add cast to enum type.
498 (check_constant, check_wide_constant): Likewise.
499
500 2009-04-27 Richard Guenther <rguenther@suse.de>
501
502 PR java/38374
503 * constants.c (build_constants_constructor): Retain the old
504 pointer type as valid TYPE_POINTER_TO after patching the
505 type of the constant pool decl.
506
507 2009-04-24 Ian Lance Taylor <iant@google.com>
508
509 * jcf-parse.c (handle_constant): Add cast to enum type.
510
511 2009-04-21 Taras Glek <tglek@mozilla.com>
512
513 * builtins.c: Update GTY annotations to new syntax
514 * decl.c: Likewise
515 * java-tree.h: Likewise
516 * jcf.h: Likewise
517 * lang.c: Likewise
518
519 2009-04-21 Joseph Myers <joseph@codesourcery.com>
520
521 * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
522 license notices.
523
524 2009-04-18 Ian Lance Taylor <iant@google.com>
525
526 * verify-impl.c (verify_instructions_0): Add cast to enum type.
527
528 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
529
530 * builtins.c (compareAndSwapLong_builtin,
531 compareAndSwapInt_builtin, compareAndSwapObject_builtin,
532 VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc.
533
534 2009-03-31 Richard Guenther <rguenther@suse.de>
535
536 * java-gimplify.c (java_gimplify_expr): Do not manually gimplify
537 the first operand of binary and comaprison expressions.
538
539 2009-03-30 Joseph Myers <joseph@codesourcery.com>
540
541 PR rtl-optimization/323
542 * lang.c (java_post_options): Set flag_excess_precision_cmdline.
543 Give an error for -fexcess-precision=standard for processors where
544 the option is significant.
545
546 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
547
548 * lang.opt: Unify help text for -Wdeprecated.
549
550 2009-02-03 Jakub Jelinek <jakub@redhat.com>
551
552 * jcf-dump.c (version): Update copyright notice dates.
553
554 2009-01-16 Richard Guenther <rguenther@suse.de>
555
556 PR tree-optimization/38835
557 PR middle-end/36227
558 * builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR.
559
560 2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
561
562 PR bootstrap/38262
563 * Make-lang.in (jc1): Add BACKENDLIBS, remove GMPLIBS.
564
565 2008-11-04 Andrew Haley <aph@redhat.com>
566
567 PR java/37068
568 * jcf-parse.c (java_emit_static_constructor): Don't call
569 cgraph_build_static_cdtor. Rewrite.
570
571 2008-10-24 Jakub Jelinek <jakub@redhat.com>
572
573 * Make-lang.in (check-java-subtargets): New target.
574
575 2008-10-16 David Edelsohn <edelsohn@gnu.org>
576
577 PR target/35483
578 * Make-lang.in (class.o): Depend on $(TM_P_H).
579 (expr.o): Same.
580 * class.c: Include tm_p.h.
581 * expr.c: Include tm_p.h.
582
583 2008-10-14 Andrew Haley <aph@redhat.com>
584
585 * constants.c (build_constant_data_ref): Make sure we only build
586 one copy of the decl for the constant pool.
587
588 2008-09-22 Andrew Haley <aph@redhat.com>
589
590 * expr.c (rules): Add new rule for
591 gnu.java.lang.VMCPStringBuilder.toString.
592 (rewrite_rule.new_classname): New field.
593 (maybe_rewrite_invocation): Use new_classname field instead of
594 DECL_CONTEXT (*method_p).
595 Allow rewrite_arglist to be NULL.
596
597 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
598
599 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
600 (java_get_callee_fndecl): Kill.
601
602 2008-09-17 Jan Hubicka <jh@suse.cz>
603
604 PR c++/18071
605 * class.c (add_method_1): Do not initialize DECL_INLINE.
606 (make_local_function_alias): Likewise.
607 * expr.c (rewrite_arglist_getcaller): Set DECL_UNINLINABLE.
608 * lang.c (java_decl_ok_for_sibcall): Use DECL_UNINLINABLE.
609
610 2008-09-09 Richard Guenther <rguenther@suse.de>
611
612 * decl.c (build_result_decl): Remove no longer applicable
613 promotion.
614
615 2008-09-05 David Daney <ddaney@avtrex.com>
616
617 * gcj.texi (-freduced-reflection): Clarify option's restrictions.
618
619 2008-08-21 David Daney <ddaney@avtrex.com>
620
621 * class.c (make_class_data): Don't add field_index when
622 flag_reduced_reflection set.
623
624 2008-08-12 Ulrich Weigand <uweigand@de.ibm.com>
625
626 * typeck.c (convert): Do not check for TARGET_FLOAT_FORMAT.
627
628 2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
629
630 PR 28875
631 * lang.c (java_handle_option): Replace set_Wunused with
632 warn_unused.
633
634 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
635
636 * gcj.texi: Update copyright years. Do not list GPL as
637 Invariant Section.
638
639 2008-07-29 Jakub Jelinek <jakub@redhat.com>
640
641 * class.c (build_utf8_ref): Set DECL_SIZE and DECL_SIZE_UNIT
642 from ctype's sizes.
643
644 * class.c (build_utf8_ref): Pad initializer string to utf8const_type's
645 alignment.
646
647 2008-07-29 Jan Hubicka <jh@suse.cz>
648
649 * lang.c (java_post_options): Remove handling of flag_no_inline.
650
651 2008-07-28 Richard Guenther <rguenther@suse.de>
652
653 Merge from gimple-tuples-branch.
654
655 2008-07-18 Richard Guenther <rguenther@suse.de>
656
657 * expr.c: Include tree-iterator.h.
658 * Make-lang.in (expr.o): Add tree-iterator.h dependency.
659
660 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
661
662 * java-gimplify.c: Include gimple.h instead of tree-gimple.h.
663 * expr.c: Same.
664
665 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
666
667 * java-gimplify.c (java_gimplify_expr): Same.
668 (java_gimplify_modify_expr): Same.
669 * java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN.
670
671 2008-05-02 Diego Novillo <dnovillo@google.com>
672
673 * expr.c (build_java_throw_out_of_bounds_exception): Fix
674 mixed declarations and code.
675
676 2008-05-02 Doug Kwan <dougkwan@google.com>
677
678 * expr.c (build_java_throw_out_of_bounds_exception ): Wrap call to
679 _Jv_ThrowBadArrayIndex with a COMPOUND_EXPR to return 0.
680
681 2008-02-19 Diego Novillo <dnovillo@google.com>
682
683 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
684
685 * java-gimplify.c (java_gimplify_self_mod_expr): Change
686 gimple_seq arguments to gimple_seq *. Update all users.
687
688 2007-11-26 Aldy Hernandez <aldyh@redhat.com>
689
690 * java-gimplify.c (java_gimplify_expr): Make pre_p and post_p
691 sequences.
692 (java_gimplify_self_mod_expr): Same.
693 * java-tree.h (java_gimplify_expr): Make pre_p and post_p
694 sequences.
695
696 2008-07-24 Jan Hubicka <jh@suse.cz>
697
698 * java/decl.c: Include cgraph.h
699 (end_java_method): Remove non-unit-at-a-time code.
700 (java_mark_decl_local): Likewise; sanity check that we don't touch
701 finalized nodes.
702
703 2008-07-15 Jan Hubicka <jh@suse.cz>
704
705 * lang.c (java_init_options): Enable unit-at-a-time by default.
706
707 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
708
709 * Make-lang.in (jvspec.o): Fix dependencies.
710
711 2008-07-06 Tom Tromey <tromey@redhat.com>
712
713 * Make-lang.in (java/parse.o-warn): Remove.
714 (java/jcf-io.o-warn): Remove.
715
716 2008-07-05 Tom Tromey <tromey@redhat.com>
717
718 * jcf-io.c: Don't include fnmatch.h. Don't use JCF_USE_SCANDIR.
719 (compare_path): Remove.
720 (java_or_class_file): Likewise.
721 (memoized_dirlist_entry): Likewise.
722 (memoized_dirlist_hash): Likewise.
723 (memoized_dirlist_lookup_eq): Likewise.
724 (memoized_dirlists): Likewise.
725 (caching_stat): Likewise.
726 (find_class): Use stat.
727 * jcf.h (JCF_USE_SCANDIR): Remove.
728
729 2008-06-30 Joshua Sumali <jsumali@redhat.com>
730
731 * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and
732 doc/rebuild-gcj-db.1
733 (java.uninstall): Likewise.
734 (java.maintainer-clean): Likewise.
735 (aot-compile.pod): New rule.
736 (rebuild-gcj-db.pod): New rule.
737 (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1
738 * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db.
739
740 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
741
742 * Make-lang.in (java/jcf-io.o-warn): New.
743
744 2008-06-24 Tom Tromey <tromey@redhat.com>
745
746 * jcf-path.c (jcf_path_init): Don't name variable 'try'.
747 * expr.c (add_type_assertion): Rename argument.
748 (build_java_arrayaccess): Don't name variable 'throw'.
749 (ARRAY_NEW_MULTI): Don't name variable 'class'.
750 * jcf-io.c (find_class): Don't name variable 'class'.
751 * mangle.c (compression_table_add): Don't name variable 'new'.
752 * constants.c (cpool_for_class): Rename argument.
753 (alloc_constant_fieldref): Likewise.
754 * jcf-parse.c (handle_innerclass_attribute): Don't name variable
755 'class'.
756 (read_class): Likewise.
757 (parse_zip_file_entries): Likewise.
758 (process_zip_dir): Likewise.
759 * decl.c (java_mark_class_local): Rename argument.
760 * class.c (GEN_TABLE): Use type_name, not typename.
761 (gen_indirect_dispatch_tables): Likewise.
762 (add_field): Rename argument.
763 (is_compiled_class): Likewise.
764 (safe_layout_class): Likewise.
765 (emit_assertion_table): Likewise.
766 * typeck.c (has_method): Rename argument.
767
768 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
769
770 * class.c (ident_subst, mangled_classname, unmangle_classname,
771 gen_indirect_dispatch_tables, add_method_1,
772 build_fieldref_cache_entry, make_local_function_alias,
773 layout_class, java_treetreehash_find, java_treetreehash_new,
774 split_qualified_name): Fix for -Wc++-compat.
775 * constants.c (set_constant_entry, cpool_for_class): Likewise.
776 * decl.c (make_binding_level, java_dup_lang_specific_decl,
777 start_java_method): Likewise.
778 * except.c (prepare_eh_table_type): Likewise.
779 * expr.c (type_assertion_hash, note_instructions): Likewise.
780 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC,
781 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
782 * jcf-io.c (jcf_filbuf_from_stdio, opendir_in_zip, find_class):
783 Likewise.
784 * jcf-parse.c (reverse, java_read_sourcefilenames,
785 annotation_grow, rewrite_reflection_indexes, java_parse_file,
786 process_zip_dir): Likewise.
787 * jcf-path.c (add_entry, add_path, jcf_path_init,
788 jcf_path_extdirs_arg): Likewise.
789 * jcf-reader.c (jcf_parse_constant_pool): Likewise.
790 * jvgenmain.c (do_mangle_classname): Likewise.
791 * lang.c (put_decl_string): Likewise.
792 * verify-impl.c (make_state_copy, make_state, add_new_state):
793 Likewise.
794
795 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
796
797 * gcj.texi: Expand TABs, remove whitespace from blank lines.
798
799 2008-06-14 Tom Tromey <tromey@redhat.com>
800
801 PR java/36247:
802 * class.c (build_class_ref): Initialize this_classdollar when
803 needed.
804
805 2008-05-23 Andrew Haley <aph@redhat.com>
806
807 * jcf-parse.c (give_name_to_class): Call find_sourcefile to find full
808 pathname of source file.
809
810 2008-05-12 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
811
812 * jcf-dump.c (print_constant): Use
813 HOST_LONG_LONG_FORMAT.
814
815 2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
816
817 * decl.c (java_init_decl_processing): Change DECL_IS_PURE to
818 DECL_PURE_P.
819
820 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
821
822 * class.c (build_utf8_ref): Don't set TREE_INVARIANT.
823 (build_classdollar_field): Don't set TREE_INVARIANT.
824 (get_dispatch_table): Don't set TREE_INVARIANT.
825 (make_class_data): Don't set TREE_INVARIANT.
826 (build_symbol_entry): Don't set TREE_INVARIANT.
827 (emit_symbol_table): Don't set TREE_INVARIANT.
828 * constants.c (build_constant_data_ref): Don't set TREE_INVARIANT.
829 (build_ref_from_constant_pool): Don't set TREE_INVARIANT.
830 * resource.c (compile_resource_data): Don't set TREE_INVARIANT.
831 * expr.c (cache_cpool_data_ref): Don't set TREE_INVARIANT.
832
833 2008-04-03 Tom Tromey <tromey@redhat.com>
834
835 * Make-lang.in (java_OBJS): New variable.
836
837 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
838
839 * java-tree.h (insert_block): Kill.
840 * decl.c (insert_block): Kill.
841
842 2008-04-01 Joseph Myers <joseph@codesourcery.com>
843
844 * gcj.texi: Include gpl_v3.texi instead of gpl.texi
845 * Make-lang.in (TEXI_JAVA_FILES): Include gpl_v3.texi instead of
846 gpl.texi.
847
848 2008-03-27 Tom Tromey <tromey@redhat.com>
849
850 * Make-lang.in: Revert automatic dependency patch.
851
852 2008-03-25 Tom Tromey <tromey@redhat.com>
853
854 * Make-lang.in: Removed most explicit .o targets.
855 (java/jvspec.o): Reduce to variable setting. Moved to java/.
856 ($(GCJ)$(exeext)): Update.
857 (JAVA_OBJS): New variable.
858 (JCFDUMP_OBJS): Reformat.
859 (java_OBJS): New variable.
860 (java/jvspec.o-warn): Update.
861 (java/parse.o-warn): Remove.
862 (JAVA_TREE_H): Remove.
863 (java/jcf-io.o): Reduce to variable setting.
864 (ALL_CPPFLAGS): Likewise.
865
866 2008-03-12 Paolo Bonzini <bonzini@gnu.org>
867
868 * mangle.c (java_mangle_decl): Remove dead check.
869
870 2008-03-11 Paolo Bonzini <bonzini@gnu.org>
871
872 * jcf-parse.c (java_parse_file): Assert binding levels are
873 left in order.
874 * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack):
875 Delete.
876
877 2008-03-02 Jakub Jelinek <jakub@redhat.com>
878
879 * jcf-dump.c (version): Update copyright notice dates.
880
881 2008-02-29 Tom Tromey <tromey@redhat.com>
882
883 * expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on
884 method.
885 * java-tree.h (struct lang_decl_func): Remove obsolete comment.
886
887 2008-02-26 Tom Tromey <tromey@redhat.com>
888
889 * lang.c (java_post_options): Remove conditional.
890 * expr.c (expand_byte_code): Remove old location code.
891 * jcf-parse.c (set_source_filename): Remove old location code.
892 (give_name_to_class): Likewise.
893 (jcf_parse): Likewise.
894 (duplicate_class_warning): Likewise.
895 (parse_class_file): Likewise.
896 (java_parse_file): Likewise.
897 * decl.c (finish_method): Remove old location code.
898 * class.c (push_class): Remove old location code.
899
900 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
901
902 PR other/35107
903 * Make-lang.in (jc1): Add $(GMPLIBS).
904
905 2008-01-23 David Daney <ddaney@avtrex.com>
906
907 * class.c (hide) Rename to...
908 (java_hide_decl) ... this throughout, and make public.
909 * resource.c (Jr_count): Remove.
910 (compile_resource_data): Call java_mangle_resource_name to generate
911 decl name. Make resource decl public and hidden.
912 * mangle.c (java_mangle_resource_name): New function.
913 * java-tree.h (java_hide_decl, java_mangle_resource_name): Declare
914 functions.
915
916 2008-01-04 Andrew Haley <aph@redhat.com>
917
918 PR java/17779
919 * jcf-parse.c (parse_zip_file_entries): Move decl to compile on
920 C90.
921
922 2008-01-03 Andrew Haley <aph@redhat.com>
923
924 PR java/17779
925 * jcf-parse.c (parse_zip_file_entries): Unset TYPE_ALIAS_SET if
926 we're about to re-layout the type.
927
928 2007-12-20 Alexandre Oliva <aoliva@redhat.com>
929
930 * lang.c (java_classify_record): Don't return
931 RECORD_IS_INTERFACE for now.
932
933 2007-12-18 Andrew Haley <aph@redhat.com>
934
935 PR java/27643
936 * jcf-parse.c (java_parse_file): Remove call to
937 java_mark_class_local.
938 (parse_class_file): Reinstate call to java_mark_class_local here.
939 * decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
940 already set, call java_mangle_decl() and make_decl_rtl() to
941 rewrite its name as a hidden alias.
942
943 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
944
945 PR debug/7081
946 * lang.c (java_classify_record): New.
947 (LANG_HOOKS_CLASSIFY_RECORD): Override.
948
949 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
950
951 PR 34081/C++
952 * decl.c (finish_method): Pass 'false' for the new
953 allocate_struct_function parameter.
954
955 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
956
957 * expr.c (build_jni_stub): Use the computed jni func type for
958 variable meth.
959
960 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
961
962 * class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID.
963
964 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
965
966 * expr.c (type_assertion_hash): Hash type uids rather than
967 tree pointers.
968
969 2007-11-17 David Daney <ddaney@avtrex.com>
970 Andrew Haley <aph@redhat.com>
971
972 * constants.c (build_constants_constructor): Use POINTER_SIZE
973 insead of BITS_PER_WORD in big-endian work around.
974
975 2007-11-07 Tom Tromey <tromey@redhat.com>
976
977 PR java/34019:
978 * gcj.texi (Input Options): Add missing noun.
979
980 2007-11-02 Tom Tromey <tromey@redhat.com>
981
982 PR java/33765:
983 * jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files.
984 * zipfile.h (ZIPEMPTYMAGIC): New define.
985
986 2007-11-01 Tom Tromey <tromey@redhat.com>
987
988 * Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
989 (java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h.
990 (java/jcf-io.o): Depend on zipfile.h.
991
992 2007-10-17 Richard Guenther <rguenther@suse.de>
993
994 * Make-lang.in (java/builtins.o): Add $(OPTABS_H) and $(EXPR_H)
995 dependencies.
996
997 2007-10-03 Andrew Haley <aph@redhat.com>
998
999 PR java/33639
1000 * class.c (mangled_classname): Detect and replace illegal
1001 characters in assembly language symbols.
1002 (gen_indirect_dispatch_tables): Call mangled_classname() on
1003 the type.
1004
1005 2007-09-27 Jakub Jelinek <jakub@redhat.com>
1006
1007 * lang.c (java_print_error_function): Add third argument.
1008
1009 2007-09-15 Tom Tromey <tromey@redhat.com>
1010
1011 * java-tree.h (struct lang_decl_func) <function_decl_body>:
1012 Remove.
1013 <init_final>: Likewise.
1014 * lang.c (java_dump_tree): Update.
1015 * java-tree.h (DECL_FUNCTION_BODY): Remove.
1016
1017 2007-09-11 Jan Hubicka <jh@suse.cz>
1018
1019 * decl.c (java_expand_body): Kill.
1020 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
1021
1022 2007-09-06 Tom Tromey <tromey@redhat.com>
1023
1024 * jcf-parse.c (parse_class_file): Re-enter the current file.
1025
1026 2007-09-07 Roman Zippel <zippel@linux-m68k.org>
1027
1028 * boehm.c (mark_reference_fields): Move misaligned pointer check
1029 after JREFERENCE_TYPE_P test
1030
1031 2007-09-06 Roman Zippel <zippel@linux-m68k.org>
1032
1033 * boehm.c (mark_reference_fields): Don't use bitmap as gc_descr
1034 if pointer is misaligned.
1035
1036 2007-09-06 Tom Tromey <tromey@redhat.com>
1037
1038 * lang.c (java_post_options): Update.
1039 * jcf-parse.c (set_source_filename): Update.
1040 (give_name_to_class): Update.
1041 (jcf_parse): Update.
1042 (duplicate_class_warning): Update.
1043 (parse_class_file): Update.
1044 (java_parse_file): Update.
1045 * expr.c (expand_byte_code): Update.
1046
1047 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
1048
1049 * decl.c (finish_method): Use set_cfun.
1050
1051 2007-09-04 Andrew Haley <aph@redhat.com>
1052
1053 * decl.c (java_init_decl_processing): Call "__cxa_end_cleanup"
1054 when using the ARM EABI.
1055
1056 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
1057
1058 * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB.
1059
1060 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1061
1062 * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
1063 CONST_CAST.
1064 * jcf.h (JCF_FINISH): Likewise.
1065
1066 2007-08-28 Tom Tromey <tromey@redhat.com>
1067
1068 * Make-lang.in (java.tags): Don't tag '*.y' files.
1069
1070 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1071
1072 * lang.c (java_decl_ok_for_sibcall): Likewise.
1073
1074 2007-08-21 Paul Brook <paul@codesourcery.com>
1075 Nathan Sidwell <nathan@codesourcery.com>
1076 Mark Mitchell <mark@codesourcery.com>
1077 Joseph Myers <joseph@codesourcery.com>
1078
1079 * jcf-dump.c (version): Use pkgversion_string. Update copyright
1080 date.
1081
1082 2007-08-20 Richard Guenther <rguenther@suse.de>
1083
1084 * lang.c (java_tree_inlining_walk_subtrees): Remove.
1085 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove.
1086
1087 2007-08-17 Tom Tromey <tromey@redhat.com>
1088
1089 * typeck.c (find_method_in_interfaces): Update.
1090 * jcf-parse.c (load_class): Update.
1091 * java-gimplify.c (java_gimplify_component_ref): Removed.
1092 (java_gimplify_modify_expr): Update. Removed pre_p and post_p
1093 arguments.
1094 (java_gimplify_expr): Update.
1095 * decl.c (java_init_decl_processing): Update.
1096 * class.c (set_constant_value): Update.
1097 (make_class_data): Update.
1098 (finish_class): Update.
1099 (build_static_field_ref): Update.
1100 (is_compiled_class): Update.
1101 (maybe_layout_super_class): Update.
1102 (layout_class): Update.
1103 (layout_class_method): Update.
1104 * java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
1105 (lang_decl_var) <am, final_iud, cif>: Removed fields.
1106 (lang_decl_func) <init_calls_this>: Removed field.
1107 (lang_type) <dot_class, verify_method>: Removed fields.
1108 (FIELD_NESTED_ACCESS): Removed.
1109 (FIELD_NESTED_ACCESS_P): Removed.
1110 (DECL_FIELD_FINAL_IUD): Removed.
1111 (DECL_LOCAL_FINAL_IUD): Removed
1112 (LOCAL_FINAL_P): Removed.
1113 (FINAL_VARIABLE_P): Removed.
1114 (CLASS_FINAL_VARIABLE_P): Removed.
1115 (DECL_BIT_INDEX): Removed.
1116 (DECL_INIT_CALLS_THIS): Removed.
1117 (FIELD_LOCAL_ALIAS): Removed.
1118 (FIELD_LOCAL_ALIAS_USED): Removed.
1119 (FIELD_THISN): Removed.
1120 (DECL_FUNCTION_INIT_TEST_CLASS): Removed.
1121 (LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
1122 (LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
1123 (TYPE_DOT_CLASS): Removed.
1124 (TYPE_VERIFY_METHOD): Removed.
1125 (ID_CLASSDOLLAR_P): Removed.
1126 (enum java_tree_index) <JTI_CLASSDOLLAR_IDENTIFIER_NODE>:
1127 Removed.
1128 (classdollar_identifier_node): Removed.
1129 (TYPE_UNKNOWN): Removed.
1130 (CLASS_FROM_SOURCE_P): Removed.
1131 * expr.c (build_jni_stub): Update.
1132 (force_evaluation_order): Update.
1133 (build_java_empty_stmt): Update.
1134 (build_class_init): Update.
1135 (java_stack_swap): Update.
1136 (build_jni_stub): Update.
1137
1138 2007-08-17 Tom Tromey <tromey@redhat.com>
1139
1140 * java-tree.h (LABEL_TYPE_STATE): Removed.
1141 (load_type_state): Removed.
1142 (LABEL_PC): Removed.
1143 (LABEL_VERIFIED): Removed.
1144 (type_states): Declare.
1145 * expr.c (type_states): New global.
1146 (load_type_state): Now static. Use type_states. Changed
1147 argument.
1148 (lookup_label): Don't set LABEL_PC.
1149 (expand_byte_code): Don't use LABEL_VERIFIED.
1150 (note_instructions): Initialize type_states.
1151 * verify-glue.c (vfy_note_stack_depth): Rewrote.
1152 (vfy_note_stack_type): Use type_states.
1153 (vfy_note_local_type): Likewise.
1154
1155 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1156
1157 * jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
1158 * jcf.h (JCF_FINISH): Likewise.
1159
1160 2007-07-31 Nick Clifton <nickc@redhat.com>
1161
1162 * java-gimplify.c: Change copyright header to refer to version 3
1163 of the GNU General Public License and to point readers at the
1164 COPYING3 file and the FSF's license web page.
1165 * typeck.c, lang-specs.h, mangle_name.c, jcf-dump.c, class.c,
1166 decl.c, config-lang.in, jcf-parse.c, constants.c, Make-lang.in,
1167 resource.c, except.c, builtins.c, jvspec.c, java-tree.def,
1168 javaop.def, jcf-path.c, verify-glue.c, jcf-depend.c, lang.opt,
1169 jcf-reader.c, mangle.c, zextract.c, jcf-io.c, jcf.h, zipfile.h,
1170 verify.h, java-except.h, win32-host.c, expr.c, jvgenmain.c,
1171 parse.h, lang.c, java-tree.h, javaop.h, boehm.c: Likewise.
1172
1173 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1174
1175 * jcf-io.c (find_class): Fix -Wcast-qual warnings.
1176
1177 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1178
1179 * lang.c (java_get_callee_fndecl): Constify.
1180
1181 2007-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1182
1183 * mangle.c (set_type_package_list): Constify.
1184 * verify-glue.c (vfy_make_string): Delete.
1185 * verify.h (vfy_make_string): Likewise.
1186
1187 2007-07-26 Tom Tromey <tromey@redhat.com>
1188
1189 * java-tree.h (push_labeled_block, pop_labeled_block): Remove.
1190 (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
1191 EXIT_BLOCK_LABELED_BLOCK): Likewise.
1192 * lang.c (java_tree_inlining_walk_subtrees): Update.
1193 (java_dump_tree): Likewise.
1194 * java-tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRY_EXPR):
1195 Remove.
1196 * decl.c (push_labeled_block, pop_labeled_block): Remove.
1197 * java-gimplify.c (java_gimplify_labeled_block_expr,
1198 java_gimplify_exit_block_expr, java_gimplify_try_expr): Remove.
1199 (java_gimplify_expr): Update.
1200
1201 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1202
1203 * class.c (java_treetreehash_hash, java_treetreehash_compare):
1204 Constify.
1205 * expr.c (type_assertion_eq): Likewise.
1206 * jcf-io.c (compare_path): Likewise.
1207 * jcf-parse.c (cmpstringp): Likewise.
1208 * verify-impl.c (get_one_type, compute_argument_types,
1209 compute_return_type): Likewise.
1210
1211 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1212
1213 PR target/32462
1214 PR libgcj/32465
1215 * class.c (hide): Wrap in HAVE_GAS_HIDDEN.
1216
1217 2007-07-12 Richard Guenther <rguenther@suse.de>
1218
1219 * expr.c (expand_java_return): RETURN_EXPR has void type.
1220 (build_jni_stub): Likewise. Use a comparison against zero
1221 for null-pointer test in COND_EXPR.
1222 (build_field_ref): Build POINTER_PLUS_EXPR with correct
1223 type. Convert result instead.
1224 (build_invokevirtual): Likewise.
1225
1226 2007-07-09 Geoffrey Keating <geoffk@apple.com>
1227
1228 PR 32617
1229 * lang.c (java_init): Remove setting of force_align_functions_log.
1230 * class.c (add_method_1): Set DECL_ALIGN of non-static method
1231 to cope with ptrmemfunc_vbit_in_pfn.
1232
1233 2007-07-03 David Daney <ddaney@avtrex.com>
1234
1235 * java/Make-lang.in (doc/gcj.info): Add $(gcc_docdir) to
1236 include path.
1237 (doc/gcj.dvi): Same.
1238 (doc/gcj.pdf): Same.
1239 (java/index.html): Same.
1240
1241 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
1242
1243 * class.c (make_class_data): Build the index in sizetype.
1244 Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
1245 adding to a pointer type.
1246 (build_symbol_entry): Likewise.
1247 * expr.c (build_java_arrayaccess): Likewise.
1248 (build_field_ref): Likewise.
1249 (build_known_method_ref): Likewise.
1250 (build_invokevirtual): Likewise.
1251 * except.c (build_exception_object_ref): Do a
1252 NEGATIVE and then a POINTER_PLUS_EXPR instead
1253 of a MINUS_EXPR.
1254
1255 2007-06-11 Rafael Ávila de Espíndola <espindola@google.com>
1256
1257 * typeck.c (java_signed_type): Remove.
1258 * lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
1259 * java-tree.h (java_signed_type): Remove.
1260
1261 2007-05-18 Geoffrey Keating <geoffk@apple.com>
1262
1263 * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx.
1264 (print_constant): Likewise.
1265
1266 2007-05-14 Rafael Ávila de Espíndola <espindola@google.com>
1267
1268 * expr.c (build_java_binop): Use unsigned_type_for instead of
1269 java_unsigned_type.
1270 * java-tree.h (java_unsigned_type): Remove.
1271 * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
1272 * typeck.c (java_unsigned_type): Remove.
1273
1274 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
1275
1276 * java-tree.h (lang_tree_node): Use GENERIC_NEXT
1277 instead of checking GIMPLE_STMT_P in chain_next.
1278
1279 2007-04-06 Colin Walters <walters@redhat.com>
1280
1281 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701
1282 * jcf-io.c (open_class): Copy 'filename'.
1283
1284 2007-04-03 Andrew Haley <aph@redhat.com>
1285
1286 * jvgenmain.c (main): Change main to use class$, not class$$.
1287 (do_mangle_classname): Likewise.
1288 * class.c (hide): New function.
1289 (add_field): Hide everything that shouldn't be visible outside a
1290 DSO.
1291 (build_static_class_ref): Likewise.
1292 (build_classdollar_field): Likewise.
1293 (make_class_data): Likewise.
1294 (layout_class_method): Likewise.
1295 * expr.c (special_method_p): New function.
1296
1297 * class.c (push_class): Don't bogusly guess the source filename.
1298 * jcf-parse.c (give_name_to_class): Don't set input_location from
1299 DECL_ARTIFICIAL decls.
1300
1301 2007-03-30 Rafael Ávila de Espíndola <espindola@google.com>
1302
1303 * typeck.c (java_signed_or_unsigned_type): Removed.
1304 (java_signed_type): use get_signed_or_unsigned_type instead of
1305 java_signed_or_unsigned_type.
1306 (java_unsigned_type): Ditto.
1307 * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Removed.
1308 * java-tree.h (java_signed_or_unsigned_type): Removed.
1309
1310 2007-03-26 Tom Tromey <tromey@redhat.com>
1311
1312 * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1.
1313 (java.maintainer-clean): Likewise.
1314 (java.install-man): Likewise.
1315 (.INTERMEDIATE): Removed grmiregistry.pod.
1316 (grmiregistry.pod): Removed.
1317 * gcj.texi (Invoking gcjh): Removed.
1318 (Invoking gjnih): Likewise.
1319 (Invoking grmiregistry): Likewise.
1320 (direntry): Updated.
1321 (Top): Likewise.
1322 (which-gcj): Removed.
1323
1324 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
1325
1326 * Make-lang.in: Add install-pdf target as copied from
1327 automake v1.10 rules.
1328
1329 2007-02-27 Brooks Moses <brooks.moses@codesourcery.com>
1330
1331 * gcj.texi: Standardize title page.
1332
1333 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
1334
1335 * class.c: Fix a comment typo.
1336
1337 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
1338 Brooks Moses <brooks.moses@codesourcery.com>
1339 Lee Millward <lee.millward@codesourcery.com>
1340
1341 * java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
1342 of build3.
1343 (BUILD_MONITOR_EXIT): Likewise.
1344
1345 * java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
1346 (java_gimplify_modify_expr): Likewise.
1347
1348 * class.c (cache_this_class_ref): Use build_call_expr.
1349 (build_static_field_ref): Likewise.
1350 (emit_indirect_register_classes): Likewise.
1351 (emit_register_classes): Likewise.
1352
1353 * resource.c (write_resource_constructor): Use build_call_expr.
1354
1355 * builtins.c (builtin_creator_function): Change interpretation of
1356 the second parameter to be the whole CALL_EXPR instead of the arglist.
1357 (max_builtin): Tweak parameter list. Use new CALL_EXPR accessors.
1358 (min_builtin): Likewise.
1359 (abs_builtin): Likewise.
1360 (java_build_function_call_expr): Likewise.
1361 (convert_real): Likewise.
1362 (UNMARSHAL3): Likewise.
1363 (UNMARSHAL4): Likewise.
1364 (UNMARSHAL5): Likewise.
1365 (build_arglist_for_builtin): Delete. Fix callers to use
1366 build_call_expr instead.
1367 (putObject_builtin): Tweak parameter list. Use new CALL_EXPR
1368 accessors.
1369 (compareAndSwapInt_builtin): Likewise.
1370 (compareAndSwapLong_builtin): Likewise.
1371 (compareAndSwapObject_builtin): Likewise.
1372 (putVolatile_builtin): Likewise.
1373 (getVolatile_builtin): Likewise.
1374 (VMSupportsCS8_builtin): Likewise.
1375 (check_for_builtin): Pass entire CALL_EXPR to builtin expander
1376 instead of arglist.
1377
1378 * expr.c (build_java_athrow): Use build_call_nary instead of build3.
1379 (build_java_throw_out_of_bounds_exception): Likewise.
1380 (java_check_reference): Likewise.
1381 (build_java_arraystore_check): Likewise.
1382 (build_newarray): Likewise.
1383 (build_anewarray): Likewise.
1384 (expand_java_multinewarray): Use build_call_list instead of build3.
1385 (build_java_monitor): Use build_call_nary instead of build3.
1386 (java_create_object): Likewise.
1387 (expand_java_NEW): Likewise.
1388 (build_instanceof): Likewise.
1389 (expand_java_CHECKCAST): Likewise.
1390 (build_java_soft_divmod): Likewise.
1391 (build_java_binop): Likewise.
1392 (build_field_ref): Likewise.
1393 (build_class_init): Likewise.
1394 (rewrite_arglist_getcaller): Use build_call_expr.
1395 (build_invokeinterface): Use build_call_nary instead of build3.
1396 (expand_invoke): Use build_call_list instead of build3.
1397 (build_jni_stub): Use build_call_nary, build_call_list, or
1398 build_call_expr instead of build3.
1399 (expand_java_field_op): Use build_call_expr instead of build3.
1400 (force_evaluation_order): Use new CALL_EXPR accessors.
1401
1402 * lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
1403
1404 2007-02-15 David Daney <ddaney@avtrex.com>
1405
1406 * Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
1407 (java.maintainer-clean):Add gc-analyze.1.
1408 (.INTERMEDIATE): Add gc-analyze.pod.
1409 (gc-analyze.pod): New rule.
1410 (java.install-man): Install gc-analyze.1
1411 * gcj.texi: Add new section for the gc-analyze program.
1412
1413 2007-02-07 Andrew Haley <aph@redhat.com>
1414
1415 * class.c (uncache_this_class_ref): New.
1416 * expr.c (build_jni_stub): Initialize the class.
1417 (expand_byte_code): Call uncache_this_class_ref after generating
1418 code.
1419
1420 2007-02-06 Tom Tromey <tromey@redhat.com>
1421
1422 PR java/30714:
1423 * jvspec.c (lang_specific_driver): Check for the '-' in '-I'.
1424
1425 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
1426
1427 * java-tree.h, javaop.def, jcf-parse.c: Fix comment typos.
1428
1429 2007-02-02 Andrew Haley <aph@redhat.com>
1430
1431 * expr.c (expand_byte_code): Call cache_this_class_ref() and
1432 cache_cpool_data_ref().
1433 Set TYPE_CPOOL_DATA_REF.
1434 (cache_cpool_data_ref): New function.
1435 * constants.c (build_ref_from_constant_pool): Remove special-case
1436 code for flag_indirect_classes.
1437 (build_constant_data_ref): Move special-case code for
1438 flag_indirect_classes here from build_ref_from_constant_pool.
1439 * decl.c (finish_method): Move class initialization from here to
1440 cache_this_class_ref.
1441 * class.c (cache_this_class_ref): New function.
1442 (build_class_ref): Use this_classdollar for the ouput class.
1443
1444 2007-02-02 David Daney <ddaney@avtrex.com>
1445
1446 * class.c (is_compiled_class): Move check to avoid reloading
1447 current class.
1448 (layout_class_method): Don't calculate DECL_EXTERNAL if it is
1449 already set.
1450
1451 2007-02-01 Andrew Haley <aph@redhat.com>
1452
1453 PR java/30641
1454 * jcf-parse.c (jcf_parse): Clear the field_offsets bitmap.
1455
1456 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
1457
1458 * class.c, jcf-parse.c: Fix comment typos.
1459
1460 2007-01-30 Tom Tromey <tromey@redhat.com>
1461
1462 * gcj.texi (Strings): Fix documentation for JvNewString.
1463
1464 2007-01-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1465
1466 * gcj.texi (Invoking gcjh, Invoking gjnih, Arrays): Fix some
1467 typos.
1468
1469 2007-01-30 Ben Elliston <bje@au.ibm.com>
1470
1471 * jvspec.c (lang_specific_driver): Remove unused classpath_args.
1472
1473 2007-01-29 Tom Tromey <tromey@redhat.com>
1474
1475 PR java/30607:
1476 * jvspec.c (lang_specific_driver): Handle separate -I argument.
1477 * lang.opt (-I): Add 'Separate'.
1478
1479 2007-01-29 Andrew Haley <aph@redhat.com>
1480
1481 * class.c (add_method_1): Mark fndecl as external unless we are
1482 compiling it into this object file.
1483
1484 2007-01-24 Andrew Haley <aph@redhat.com>
1485
1486 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a
1487 type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC.
1488
1489 2007-01-22 Andrew Haley <aph@redhat.com>
1490
1491 * builtins.c (VMSupportsCS8_builtin): New function.
1492
1493 2007-01-23 Andrew Pinski <pinskia@gmail.com>
1494
1495 PR java/30454
1496 * jcf-io.c (opendir_in_zip): Close the file
1497 and free zipf before returning after an error.
1498
1499 2007-01-16 Tom Tromey <tromey@redhat.com>
1500
1501 * java-tree.def: Added copyright header.
1502
1503 2007-01-15 Tom Tromey <tromey@redhat.com>
1504
1505 * lang.c (dump_compound_expr) <EXPR_WITH_FILE_LOCATION>: Removed
1506 case.
1507 * java-gimplify.c (java_gimplify_expr) <EXPR_WITH_FILE_LOCATION>:
1508 Removed case.
1509 * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed.
1510 (EXPR_WFL_NODE): Likewise.
1511 (EXPR_WFL_LINECOL): Likewise.
1512 (EXPR_WFL_FILENAME): Likewise.
1513 (EXPR_WFL_LINENO): Likewise.
1514 (build_expr_wfl, expr_add_location): Don't declare.
1515 (build_unknown_wfl): Removed.
1516 (EXPR_WFL_FILENAME_NODE): Removed.
1517 (EXPR_WFL_COLNO): Removed.
1518 (EXPR_WFL_SET_LINECOL): Removed.
1519 (DECL_FUNCTION_WFL): Removed.
1520 (DECL_FIELD_FINAL_WFL): Removed.
1521 (struct lang_decl_func) <wfl>: Removed field.
1522 <called_constructor>: Likewise.
1523 <inner_access>: Likewise.
1524 (struct lang_decl_var) <wfl>: Removed field.
1525 (DECL_CONSTRUCTOR_CALLS): Removed.
1526 (DECL_FUNCTION_ACCESS_DECL): Likewise.
1527 (DECL_FUNCTION_INNER_ACCESS): Likewise.
1528 (DECL_SPECIFIC_COUNT): Likewise.
1529 * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed.
1530 * expr.c (build_expr_wfl): Removed.
1531 (expr_add_location): Likewise.
1532
1533 2007-01-12 Tom Tromey <tromey@redhat.com>
1534
1535 * jcf-dump.c (main): Updated call to find_class.
1536 * lang.c (java_init): Removed dead code.
1537 * jcf-parse.c (read_class): Don't use java_source field. Removed
1538 dead code.
1539 (parse_zip_file_entries): Don't use java_source field.
1540 (process_zip_dir): Likewise.
1541 (jcf_parse): Removed dead code.
1542 (java_parse_file): Likewise.
1543 (read_class): Updated call to find_class.
1544 * jcf-io.c (find_class): Don't use java_source field. Removed
1545 'source_ok' argument, .java logic.
1546 * jcf.h (JCF) <java_source>: Removed field.
1547 (JCF_ZERO): Updated. (find_class): Updated.
1548 * decl.c: Removed dead code.
1549 * class.c: Removed dead code.
1550
1551 2007-01-11 Tom Tromey <tromey@redhat.com>
1552
1553 * typeck.c (convert): Don't use flag_emit_class_files.
1554 * lang.c (java_post_options): Don't use flag_emit_class_files.
1555 (java_handle_option): Don't use flag_extraneous_semicolon or
1556 flag_redundant.
1557 * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use
1558 flag_emit_class_files.
1559 (load_class): Likewise.
1560 * java-tree.h (flag_emit_class_files): Don't declare.
1561 (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files.
1562 (flag_extraneous_semicolon): Don't declare.
1563 (flag_not_overriding): Likewise.
1564 (flag_static_local_jdk1_1): Likewise.
1565 (flag_redundant): Likewise.
1566 * expr.c (build_newarray): Don't use flag_emit_class_files.
1567 * class.c (DEFAULT_ENABLE_ASSERT): Don't use
1568 flag_emit_class_files.
1569 (build_class_ref): Likewise.
1570 * builtins.c (check_for_builtin): Don't use
1571 flag_emit_class_files.
1572
1573 2007-01-10 Tom Tromey <tromey@redhat.com>
1574
1575 * lang.c (java_can_use_bit_fields_p): Removed.
1576 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
1577
1578 2007-01-09 Andrew Haley <aph@redhat.com>
1579
1580 * expr.c (build_java_arrayaccess): Rewrite to generate array
1581 access in canonical form.
1582 (expand_java_arraystore): Use build_fold_addr_expr() on address of
1583 array access.
1584
1585 2007-01-03 Andrew Haley <aph@redhat.com>
1586
1587 PR java/28754
1588 * expr.c (expand_java_field_op): If we're initializing a field's
1589 declaring interface we should not also initialize the class
1590 context in which it was referenced.
1591
1592 2007-01-02 Tom Tromey <tromey@redhat.com>
1593
1594 * java-tree.h (compiling_from_source, current_encoding,
1595 JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE,
1596 JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE,
1597 JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE,
1598 JTI_WFL_OPERATOR): Removed
1599 (finit_identifier_node, instinit_identifier_node,
1600 length_identifier_node, super_identifier_node,
1601 continue_identifier_node, access0_identifier_node, wfl_operator):
1602 Removed.
1603 (cyclic_inheritance_report,
1604 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND,
1605 DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR,
1606 DECL_FIXED_CONSTRUCTOR_P): Removed.
1607 (struct lang_decl_func) <smic, nap, synthetic_ctor, fixed_ctor>:
1608 Removed.
1609 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST,
1610 TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed.
1611 (struct lang_type) <finit_stmt_list, clinit_stmt_list, ii_block,
1612 import_list, import_demand_list>: Removed.
1613 (java_layout_seen_class_methods, init_jcf_parse, init_src_parse,
1614 cxx_keyword_p): Removed.
1615 (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P,
1616 TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED,
1617 CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P,
1618 IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
1619 IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT,
1620 PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P,
1621 CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P,
1622 LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR,
1623 RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P,
1624 IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER,
1625 NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P,
1626 PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
1627 CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P,
1628 CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P,
1629 FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT,
1630 BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count,
1631 java_parse_abort_on_error, extract_field_decl): Removed.
1632 (finput): Declare.
1633 * lang.c: (compiling_from_source, current_encoding): Removed.
1634 (java_handle_option): Ignore -fencoding.
1635 * parse.h: Don't include lex.h.
1636 (java_error_count, int_fits_type_p, stabilize_reference, RULE,
1637 RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW,
1638 YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
1639 INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS,
1640 INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS,
1641 MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context,
1642 ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class,
1643 CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME,
1644 OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2,
1645 BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P,
1646 JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P,
1647 JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P,
1648 IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS,
1649 MANGLE_OUTER_LOCAL_VARIABLE_NAME,
1650 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID,
1651 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING,
1652 SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
1653 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP,
1654 AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION,
1655 AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION,
1656 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
1657 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED,
1658 LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
1659 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
1660 LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK,
1661 PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS,
1662 IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE,
1663 ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER,
1664 INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE,
1665 INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL,
1666 JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS,
1667 JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE,
1668 JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct
1669 jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN,
1670 JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET,
1671 STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE,
1672 BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL,
1673 EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE,
1674 GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0,
1675 COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND,
1676 BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR,
1677 PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED,
1678 CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT,
1679 CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P,
1680 GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE,
1681 GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
1682 GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC,
1683 PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST,
1684 CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST,
1685 CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT,
1686 CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT,
1687 SET_CPC_STATIC_INITIALIZER_STMT,
1688 SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG,
1689 java_complete_class, java_check_circular_reference,
1690 java_fix_constructors, java_layout_classes, java_reorder_fields,
1691 java_method_add_stmt, java_get_line_col, reset_report,
1692 java_init_lex, yyparse, java_parse, yyerror, java_expand_classes,
1693 java_finish_classes, ctxp, ctxp_for_generation,
1694 ctxp_for_generation_last): Removed.
1695 * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR.
1696 * mangle.c (utf8_cmp): New function.
1697 (cxx_keywords): New global.
1698 (cxx_keyword_p): New function.
1699 * jvspec.c (JAVA_START_CHAR): Removed obsolete comment.
1700 * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR,
1701 NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
1702 CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR,
1703 THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT,
1704 CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed.
1705 * Make-lang.in (java.srcextra): Do nothing.
1706 (parse.c, keyword.h, gt-java-parse.h): Removed targets.
1707 (JAVA_OBJS): Don't mention deleted files.
1708 (java.mostlyclean): Likewise.
1709 (java.clean): Likewise.
1710 (JAVA_LEX_C): Removed.
1711 (buffer.o, check-init.o, parse.o): Remove unused targets.
1712 (typeck.o): Updated.
1713 * jcf-parse.c (read_class): Comment out unused code.
1714 (java_layout_seen_class_methods): New function.
1715 (parse_source_file_1, parse_source_file_2, parse_source_file_3):
1716 Removed.
1717 (java_parse_file): Comment out unused code. Don't use 'ctxp'.
1718 (init_jcf_parse): Removed.
1719 * config-lang.in (gtfiles): Remove deleted files.
1720 * decl.c (java_init_decl_processing): Don't initialize
1721 finit_identifier_node, instinit_identifier_node,
1722 length_identifier_node, super_identifier_node,
1723 continue_identifier_node, access0_identifier_node. Don't call
1724 init_jcf_parse.
1725 * class.c (cyclic_inheritance_report): New global.
1726 (add_method_1): Don't use
1727 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND.
1728 (maybe_layout_super_class): Comment out code.
1729 (safe_layout_class): New function.
1730 * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR,
1731 DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR,
1732 UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR,
1733 NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR,
1734 INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR.
1735 (java_gimplify_case_expr): Removed.
1736 (java_gimplify_default_expr): Likewise.
1737 (java_gimplify_new_array_init): Likewise.
1738 * parse.y: Removed.
1739 * keyword.gperf, keyword.h: Removed.
1740 * chartables.h: Removed.
1741 * check-init.c: Removed.
1742 * buffer.c, buffer.h: Removed.
1743 * convert.h: Removed.
1744 * gen-table.pl: Removed.
1745 * lex.c, lex.h: Removed.
1746
1747 2007-01-02 Andrew Haley <aph@redhat.com>
1748
1749 * expr.c (expand_java_arraystore): Make sure we perform a bounds
1750 check at runtime before we perform a type check.
1751
1752 2006-12-19 Andrew Haley <aph@redhat.com>
1753
1754 * decl.c: Bump minor BC ABI version.
1755
1756 2006-12-13 Gary Benson <gbenson@redhat.com>
1757
1758 * jcf-depend.c (jcf_dependency_add_file): Mark filename unused.
1759
1760 2006-12-12 Tom Tromey <tromey@redhat.com>
1761
1762 * lang-specs.h: Pass -M options to jc1.
1763 * jcf-depend.c (jcf_dependency_add_file): Don't emit
1764 dependencies.
1765
1766 2006-12-07 Mohan Embar <gnustuff@thisiscool.com>
1767
1768 * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR.
1769
1770 2006-12-06 Mohan Embar <gnustuff@thisiscool.com>
1771
1772 * lang-specs.h: Pass '%U'-based options as separate arguments.
1773
1774 2006-12-05 Tom Tromey <tromey@redhat.com>
1775
1776 PR java/29495:
1777 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and
1778 classes as well.
1779 * class.c (add_field): Handle ACC_SYNTHETIC.
1780 (add_method_1): Likewise. Handle bridge and varargs.
1781 (get_access_flags_from_decl): Handle synthetic, bridge, varargs,
1782 annotation.
1783 (set_class_decl_access_flags): Handle synthetic and annotation.
1784 * java-tree.h (METHOD_BRIDGE): New macro.
1785 (METHOD_VARARGS): Likewise.
1786 (TYPE_SYNTHETIC): Likewise.
1787 (TYPE_ANNOTATION): Likewise.
1788 (lang_type): New fields 'synthetic' and 'annotation'.
1789 (lang_decl_func): New fields 'varargs' and 'bridge'.
1790
1791 2006-12-04 Andrew Haley <aph@redhat.com>
1792
1793 * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if
1794 there's no map.
1795
1796 2006-11-29 Gary Benson <gbenson@redhat.com>
1797
1798 * expr.c (rewrite_arglist_getcaller): Reorder.
1799
1800 2006-11-29 Andrew Haley <aph@redhat.com>
1801
1802 * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE.
1803 * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE.
1804
1805 2006-11-23 Andrew Haley <aph@redhat.com>
1806
1807 * expr.c (rewrite_arglist_getcaller): New.
1808 (rewrite_arglist_getclass): Fix indentation.
1809 (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and
1810 gnu.classpath.VMStackWalker.getCallingClassLoader().
1811 * builtins.c (initialize_builtins): Remove duplicate def'n of
1812 __sync_synchronize.
1813 Add __builtin_return_address.
1814
1815 2006-11-22 Andrew Haley <aph@redhat.com>
1816
1817 * jcf-reader.c (get_attribute): Mark attr_type unused.
1818
1819 * builtins.c (compareAndSwapObject_builtin): Fix declaration.
1820
1821 2007-01-08 Richard Guenther <rguenther@suse.de>
1822
1823 * lex.c (do_java_lex): Use build_int_cst_wide_type.
1824 * jcf-parse.c (get_constant): Likewise.
1825
1826 2006-11-12 Jan Hubicka <jh@suse.cz>
1827
1828 * resource.c (compile_resource_data): Update for new varpool names.
1829 * java/class.c (build_utf8_ref): Likewise.
1830
1831 2006-11-12 David Daney <ddaney@avtrex.com>
1832
1833 PR java/29805
1834 * typeck.c (build_java_array_type): Increase buffer sizes.
1835
1836 2006-11-11 Richard Guenther <rguenther@suse.de>
1837
1838 * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR,
1839 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1840
1841 2006-11-06 Andrew Haley <aph@redhat.com>
1842
1843 * java-tree.h (CONSTANT_LazyFlag): New.
1844 * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag.
1845 * jcf-parse.c (handle_innerclass_attribute): Write attribute to
1846 reflection_data.
1847 (handle_constant): Return 0 for dummy cpool entries.
1848 Handle constants of kind Class.
1849 Handle constants of kind NameAndType.
1850 (handle_enclosingmethod_attribute): New.
1851 (handle_signature_attribute): New.
1852 (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New.
1853 (HANDLE_SIGNATURE_ATTRIBUTE): New.
1854 (handle_constant): Use unmangle_classname()rather than calling
1855 identifier_subst() directly.
1856
1857 2006-11-02 Andrew Haley <aph@redhat.com>
1858
1859 * java-tree.h (FIELD_ENUM): New.
1860 (lang_decl_var.field_enum): New.
1861 (lang_type.enum_class): New.
1862 (CLASS_ENUM): New.
1863 * class.c (set_class_decl_access_flags): Handle enum types.
1864 (add_field): Handle enum fields.
1865 (get_access_flags_from_decl): Likewise.
1866
1867 * class.c (make_class_data): Put reflection_data into rodata.
1868
1869 2006-11-01 Andrew Haley <aph@redhat.com>
1870
1871 * jcf-parse.c (field_offsets, bit_obstack): New variables.
1872 (jcf_parse): Write end marker to annotation_data.
1873 (java_parse_file): Create field_offsets bitmap. Destroy it.
1874 (annotation_grow, annotation_rewrite_byte)
1875 (annotation_rewrite_short, annotation_rewrite_int)
1876 (annotation_read_short, annotation_write_byte)
1877 (annotation_write_short, annotation_write_int)
1878 (handle_long_constant, handle_constant, handle_element_value)
1879 (handle_annotation, handle_annotations)
1880 (handle_annotation_attribute, rewrite_reflection_indexes)
1881 (handle_member_annotations, handle_parameter_annotations)
1882 (handle_default_annotation): New functions.
1883 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE)
1884 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE)
1885 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
1886 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
1887 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions.
1888 * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New.
1889 (TYPE_REFLECTION_DATA): New.
1890 (TYPE_REFLECTION_DATASIZE): New.
1891 * jcf.h (enum cpool_tag): Convert a bunch of #define constants to
1892 an enum.
1893 * jcf-reader.c (get_attribute): Pass field/method index and
1894 attribute type to get_attribute().
1895 * constants.c (find_class_or_string_constant): Make nonstatic.
1896 (cpool_for_class): Likewise.
1897 (build_constants_constructor): Separate string and scalar types.
1898 * class.c (make_class_data): Generate field_indexes permutation.
1899 Pass it to rewrite_reflection_indexes().
1900 (make_class_data): Generate constructor for reflection_data field.
1901
1902 2006-10-20 Tom Tromey <tromey@redhat.com>
1903
1904 * gcj.texi (Top): Don't mention jv-scan.
1905 (Invoking gcj): Likewise.
1906 (Invoking gcjh): Likewise.
1907 (Invoking gjnih): Likewise.
1908 (Invoking gij): Likewise.
1909 (Invoking gcj-dbtool): Likewise.
1910 (Invoking jv-scan): Removed.
1911 * parse-scan.y: Removed.
1912 * jv-scan.c: Removed.
1913 * config-lang.in (stagestuff): Don't mention jv-scan.
1914 * Make-lang.in (java): Removed jv-scan.
1915 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1916 (JVSCAN_OBJS): Removed.
1917 (jv-scan$(exeext)): Likewise.
1918 (JAVA_MANFILES): Removed jv-scan.1.
1919 (java.uninstall): Don't mention jv-scan.
1920 (java.mostlyclean): Likewise.
1921 (java.maintainer-clean): Likewise.
1922 (.INTERMEDIATE): Likewise.
1923 (java/jv-scan.o): Removed.
1924 (jv-scan.pod): Likewise.
1925 (java.srcextra): Don't mention parse-scan.c.
1926 (java.mostlyclean): Likewise.
1927 (java/parse-scan.c): Removed.
1928 (java/parse-scan.o-warn): Removed.
1929 (java/parse-scan.o): Removed.
1930
1931 2006-10-20 Tom Tromey <tromey@redhat.com>
1932
1933 * lang.c (java_handle_option): Don't use
1934 jcf_write_base_directory.
1935 * jcf.h (jcf_write_base_directory): Removed.
1936 * parse.y (java_expand_classes): Don't call write_classfile.
1937 * config-lang.in (gtfiles): Removed jcf-write.c.
1938 * Make-lang.in (JAVA_OBJS): Removed jcf-write.o.
1939 (java/jcf-write.o): Removed.
1940 * jcf-parse.c (parse_class_file): Don't call write_classfile.
1941 * java-tree.h (write_classfile): Removed declaration.
1942 * jcf-write.c: Removed.
1943
1944 2006-10-20 Tom Tromey <tromey@redhat.com>
1945
1946 * Make-lang.in (java): Removed gjnih, gcjh.
1947 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1948 (GCJH_OBJS): Removed.
1949 (GJNIH_OBJS): Likewise.
1950 (gjnih$(exeext)): Likewise.
1951 (gcjh$(exeext)): Likewise.
1952 (JAVA_MANFILES): Removed gcjh.1, gjnih.1.
1953 (java.install-common): Don't special case gcjh.
1954 (java.uninstall): Don't mention gcjh, gjnih.
1955 (java.mostlyclean): Likewise.
1956 (java.maintainer-clean): Likewise.
1957 (.INTERMEDIATE): Likewise.
1958 (gcjh.pod): Removed.
1959 (gjnih.pod): Likewise.
1960 (GCJH_TARGET_INSTALL_NAME): Removed.
1961 (java/gjavah-jni.o): Removed.
1962 (java/gjavah.o): Likewise.
1963 * config-lang.in (stagestuff): Removed gjnih, gcjh.
1964 * gjavah.c: Removed.
1965
1966 2006-10-17 Tom Tromey <tromey@redhat.com>
1967
1968 * jcf-dump.c (print_element_value): Expect a utf8 constant in the
1969 "string" case.
1970
1971 2006-10-17 Tom Tromey <tromey@redhat.com>
1972
1973 * jvgenmain.c (main): Handle -findirect-dispatch.
1974 * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
1975 jvgenmain.
1976
1977 2006-10-06 Andrew Haley <aph@redhat.com>
1978
1979 * builtins.c (compareAndSwapInt_builtin): Check that we really do
1980 have a compare_and_swap builtin.
1981 (compareAndSwapLong_builtin): Likewise.
1982 (compareAndSwapObject_builtin): Likewise.
1983
1984 2006-10-04 Andrew Haley <aph@redhat.com>
1985
1986 * builtins.c (java_builtins): Add compareAndSwapInt,
1987 compareAndSwapLong, compareAndSwapObject, putOrderedInt,
1988 putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile,
1989 putObjectVolatile, getObjectVolatile, getIntVolatile,
1990 getLongVolatile, getLong.
1991 (UNMARSHAL3): New macro.
1992 (UNMARSHAL4): Likewise.
1993 (UNMARSHAL5): Likewise.
1994 (build_arglist_for_builtin): New function.
1995 (build_addr_sum, build_check_this): New functions.
1996 (putObject_builtin. compareAndSwapInt_builtin,
1997 compareAndSwapLong_builtin, compareAndSwapObject_builtin,
1998 putVolatile_builtin, getVolatile_builtin): New builtins.
1999
2000 2006-06-08 Andrew Haley <aph@redhat.com>
2001
2002 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
2003 get_symbol_table_index().
2004 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
2005 private method.
2006 (build_known_method_ref): New arg: special. Pass it to
2007 get_symbol_table_index.
2008 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
2009 the method list.
2010 (build_invokevirtual): New arg: special. Pass it to
2011 get_symbol_table_index.
2012 (expand_invoke): New variable: special.
2013 Pass it to maybe_rewrite_invocation().
2014 Pass it to build_known_method_ref().
2015 * class.c (build_symbol_entry): Add new arg: special. Use it to
2016 build the symbol table conbstructor.
2017 (emit_symbol_table): Extract SPECIAL from the method list and pass
2018 it to build_symbol_entry().
2019 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
2020 special accordingly.
2021
2022 2006-09-08 Andrew Haley <aph@redhat.com>
2023
2024 * class.c (layout_class_method): Use build_java_signature, not
2025 build_java_argument_signature. Use lookup_java_method, not
2026 lookup_argument_method.
2027
2028 2006-08-16 Jakub Jelinek <jakub@redhat.com>
2029 Bryce McKinlay <bryce@mckinlay.net.nz>
2030
2031 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
2032
2033 2006-07-18 Tom Tromey <tromey@redhat.com>
2034
2035 * lang.opt: Added missing -W options.
2036
2037 2006-07-12 Tom Tromey <tromey@redhat.com>
2038
2039 PR java/28329:
2040 * lang-specs.h: Pass '%U'-based options as separate arguments.
2041 Use -faux-classpath.
2042 * lang.c (java_handle_option): Handle OPT_faux_classpath.
2043 * lang.opt (faux-classpath): New option.
2044
2045 2006-07-07 Tom Tromey <tromey@redhat.com>
2046
2047 * class.c (make_class_data): Set value for reflection_data field.
2048 * decl.c (java_init_decl_processing): Add reflection_data field.
2049
2050 2006-07-07 Tom Tromey <tromey@redhat.com>
2051
2052 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals
2053 earlier.
2054 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2055
2056 2006-07-07 Andrew Haley <aph@redhat.com>
2057
2058 * jcf-parse.c (set_source_filename): Don't check for
2059 CLASS_FROM_CURRENTLY_COMPILED_P.
2060 Remove // comments.
2061
2062 2006-07-07 Andrew Haley <aph@redhat.com>
2063
2064 * java-tree.h (java_read_sourcefilenames): Declare.
2065 * lang.c (java_handle_option): Call java_read_sourcefilenames().
2066 * lang.opt (fsource-filename): New opt.
2067 * lang-specs.h: Add -fsource-filename.
2068 * jcf-parse.c (num_files, filenames): New variables.
2069 (reverse, cmpstringp, java_read_sourcefilenames,
2070 find_sourcefile): New.
2071 (set_source_filename): Call find_sourcefile to find the real name
2072 of a source file.
2073
2074 2006-06-27 Tom Tromey <tromey@redhat.com>
2075
2076 * jcf-reader.c (get_attribute): Handle EnclosingMethod,
2077 Signature, LocalVariableTypeTable, annotation attributes.
2078 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro.
2079 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2080 (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'.
2081 (HANDLE_METHOD): Likewise.
2082 (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro.
2083 (print_annotation): New function.
2084 (print_element_value): Likewise.
2085 (indent): Likewise.
2086 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro.
2087 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise.
2088 (print_parameter_annotations): New function.
2089 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro.
2090 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE):
2091 Likewise.
2092 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise.
2093 (print_annotations): New function.
2094
2095 2006-06-23 Tom Tromey <tromey@redhat.com>
2096
2097 * lang-specs.h: Default -fsource and -ftarget to 1.5. If
2098 emitting class files, always use 1.5.
2099 * gcj.texi (Input Options): Document -fsource.
2100 (Code Generation): Document -ftarget.
2101
2102 2006-06-21 Tom Tromey <tromey@redhat.com>
2103
2104 PR java/28089:
2105 * expr.c (expand_java_field_op): Initialize field's declaring
2106 class.
2107
2108 2006-06-20 Tom Tromey <tromey@redhat.com>
2109
2110 * expr.c (push_value): Always flush quick stack.
2111
2112 2006-06-19 Tom Tromey <tromey@redhat.com>
2113
2114 * expr.c (push_value): Also flush quick stack if value is a
2115 component_ref.
2116
2117 2006-06-19 Tom Tromey <tromey@redhat.com>
2118
2119 * expr.c (push_value): Flush quick stack if value has side
2120 effects.
2121
2122 2006-06-13 Tom Tromey <tromey@redhat.com>
2123
2124 * class.c (is_compiled_class): Explicitly check for current
2125 class.
2126
2127 2006-06-09 Tom Tromey <tromey@redhat.com>
2128
2129 * gjavah.c (decompile_method): Don't decompile a static field
2130 accessor method.
2131
2132 2006-06-06 Tom Tromey <tromey@redhat.com>
2133
2134 * lang-specs.h <jc1>: Add .jar file to command line if
2135 -fsaw-java-file. Also, remove -ffilelist-file in this case.
2136
2137 2006-06-05 Tom Tromey <tromey@redhat.com>
2138
2139 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2140 synthetic, enum, annotation.
2141 * jcf.h (ACC_BRIDGE): New macro.
2142 (ACC_VARARGS): Likewise.
2143 (ACC_SYNTHETIC): Likewise.
2144 (ACC_ENUM): Likewise.
2145 (ACC_ANNOTATION): Likewise.
2146
2147 2006-06-04 Tom Tromey <tromey@redhat.com>
2148
2149 * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options.
2150 * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource,
2151 and -ftarget.
2152 (lang_specific_driver): Removed dead code. Add -fsaw-java-file
2153 when needed. Handle classpath-setting.
2154 * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o.
2155 * lang-specs.h: Rewrote.
2156
2157 2006-06-04 Tom Tromey <tromey@redhat.com>
2158
2159 * jcf-io.c (find_class): Set source_ok to 0.
2160 * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning.
2161 (parse_class_file): Don't call java_mark_class_local.
2162 (java_parse_file): Skip .java files. Call java_mark_class_local
2163 before lowering any code.
2164 (parse_zip_file_entries): Don't call duplicate_class_warning
2165 here.
2166 (process_zip_dir): ... call it here.
2167 * class.c (add_field): Don't mark field external if it is being
2168 compiled into this object.
2169 (make_class_data): Handle situation where class_dtable_decl is
2170 created before Class is compiled.
2171 (is_compiled_class): Don't assume files in zip are compiled into
2172 this object.
2173 (layout_class_method): Don't mark method external if it is being
2174 compiled into this object.
2175
2176 2006-06-04 Tom Tromey <tromey@redhat.com>
2177
2178 * jcf-path.c (jcf_path_compute): New function.
2179 * jcf.h (jcf_path_compute): Declare.
2180
2181 2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2182
2183 * decl.c: Include langhooks.h.
2184 (builtin_function): Remove.
2185 (java_init_decl_processing): Replace calls to builtin_function
2186 with add_builtin_function.
2187 * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o.
2188 (java/decl.o): Depend on langhooks.h.
2189 * java-tree.h (builtin_function): Remove.
2190
2191 2006-10-10 Brooks Moses <bmoses@stanford.edu>
2192
2193 * Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
2194
2195 2006-09-12 Tom Tromey <tromey@redhat.com>
2196
2197 * expr.c (push_value): Always flush quick stack.
2198
2199 2006-09-12 Tom Tromey <tromey@redhat.com>
2200
2201 PR java/29013:
2202 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note
2203 the push of the called method's return result.
2204
2205 2006-09-12 Tom Tromey <tromey@redhat.com>
2206
2207 * jvspec.c (lang_specific_driver): Read spec file even if
2208 -fsyntax-only.
2209
2210 2006-09-12 Tom Tromey <tromey@redhat.com>
2211
2212 PR java/28754:
2213 * expr.c (expand_java_field_op): Initialize field's declaring
2214 interface if necessary.
2215
2216 2006-09-12 Tom Tromey <tromey@redhat.com>
2217
2218 PR java/28892:
2219 * expr.c (expand_java_field_op): No error for assignments not in
2220 class initializer or constructor.
2221
2222 2006-08-22 Andrew Haley <aph@redhat.com>
2223
2224 * decl.c (java_add_stmt): Give the statement list a type.
2225
2226 2006-08-16 Jakub Jelinek <jakub@redhat.com>
2227 Bryce McKinlay <bryce@mckinlay.net.nz>
2228
2229 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
2230
2231 2006-08-10 Simon Martin <simartin@users.sourceforge.net>
2232
2233 PR java/8923
2234 * parse.y (build_incdec): Emit an error instead of an ICE if '++'
2235 or '--' is used with a constant operand.
2236 (java_complete_lhs): When processing a '++' or '--' expression,
2237 don't call java_complete_tree but java_complete_lhs, so that a
2238 static final variable operand is never replaced by its value. This
2239 avoids an ICE later on.
2240 (patch_unaryop): Fixed typo in comment.
2241
2242 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2243
2244 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2245
2246 2006-07-12 Bryce McKinlay <mckinlay@redhat.com>
2247
2248 * builtins.c (check_for_builtin): If a builtin could result in a
2249 direct call being generated, don't use it if flag_indirect_dispatch
2250 is set.
2251
2252 2006-07-12 Bryce McKinlay <mckinlay@redhat.com>
2253
2254 * gcj.texi (Invocation): Corrections for Invocation API example.
2255
2256 2006-07-04 Andrew Haley <aph@redhat.com>
2257
2258 * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the
2259 entry.
2260
2261 2006-06-21 Andrew Haley <aph@redhat.com>
2262
2263 * java-tree.h (update_aliases): Remove
2264 * expr.c (expand_iinc): Remove call to update_aliases().
2265 (STORE_INTERNAL): Likewise.
2266 * decl.c (update_aliases, initialize_local_variable)
2267 (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls.
2268
2269 2006-06-19 Andrew Haley <aph@redhat.com>
2270
2271 PR java/1305
2272 PR java/27908
2273 * expr.c (java_modify_addr_for_volatile): New function.
2274 (expand_java_field_op): Handle volatile fields.
2275 * java-gimplify.c (java_gimplify_component_ref): Call
2276 java_modify_addr_for_volatile to give the field_ref the correct
2277 volatile type.
2278 (java_gimplify_modify_expr): Likewise.
2279 * java-tree.h (java_modify_addr_for_volatile): New decl.
2280
2281 2006-06-17 Karl Berry <karl@gnu.org>
2282
2283 * gcj.texi (@dircategory): Use "Software development" instead
2284 of "Programming", following the Free Software Directory.
2285
2286 2006-06-16 Andrew Haley <aph@redhat.com>
2287
2288 * class.c (make_class_data): When using flag_indirect_classes,
2289 don't initialize the vtable of Class instances.
2290
2291 2006-06-09 Andrew Haley <aph@redhat.com>
2292
2293 PR java/1305
2294 PR java/27908
2295 * builtins.c (initialize_builtins): Add __sync_synchronize().
2296 * class.c (add_field): Mark volatile fields.
2297 * java-gimplify.c (java_gimplify_expr): Call new functions to
2298 handle self-modifying exprs and COMPONENT_REFs.
2299 (java_gimplify_component_ref): New.
2300 (java_gimplify_modify_expr): Add handling for volatiles.
2301
2302 2006-06-08 Tom Tromey <tromey@redhat.com>
2303
2304 * gcj.texi (libgcj Runtime Properties): Document
2305 gnu.gcj.user.realname.
2306
2307 2006-06-08 Andrew Haley <aph@redhat.com>
2308
2309 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
2310 get_symbol_table_index().
2311 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
2312 private method.
2313 (build_known_method_ref): New arg: special. Pass it to
2314 get_symbol_table_index.
2315 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
2316 the method list.
2317 (build_invokevirtual): New arg: special. Pass it to
2318 get_symbol_table_index.
2319 (expand_invoke): New variable: special.
2320 Pass it to maybe_rewrite_invocation().
2321 Pass it to build_known_method_ref().
2322 * class.c (build_symbol_entry): Add new arg: special. Use it to
2323 build the symbol table conbstructor.
2324 (emit_symbol_table): Extract SPECIAL from the method list and pass
2325 it to build_symbol_entry().
2326 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
2327 special accordingly.
2328
2329 2006-06-06 David Daney <ddaney@avtrex.com>
2330
2331 * gcj.texi (libgcj Runtime Properties): Document
2332 gnu.gcj.runtime.NameFinder.show_raw and
2333 gnu.gcj.runtime.NameFinder.remove_unknown.
2334
2335 2006-06-06 Tom Tromey <tromey@redhat.com>
2336
2337 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2338 synthetic, enum, annotation.
2339 * jcf.h (ACC_BRIDGE): New macro.
2340 (ACC_VARARGS): Likewise.
2341 (ACC_SYNTHETIC): Likewise.
2342 (ACC_ENUM): Likewise.
2343 (ACC_ANNOTATION): Likewise.
2344
2345 2006-06-06 Mike Stump <mrs@apple.com>
2346
2347 * Make-lang.in: Rename to htmldir to build_htmldir to avoid
2348 installing during build.
2349
2350 2006-05-31 Thomas Fitzsimmons <fitzsim@redhat.com>
2351
2352 * gcj.texi (Extensions): Document the new gcj-dbtool-based
2353 classname-to-library resolution mechanism.
2354 Declare the old gnu.gcj.runtime.VMClassLoader.library_control
2355 mechanism deprecated.
2356 (libgcj Runtime Properties): Document
2357 gnu.gcj.runtime.VMClassLoader.library_control's new default.
2358
2359 2006-05-29 Jakub Jelinek <jakub@redhat.com>
2360
2361 * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
2362 bit wide type.
2363 (jword): Define to uint64 on 64-bit arches.
2364 * jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
2365
2366 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
2367
2368 * class.c, except.c, expr.c, java-gimplify.c: Fix comment
2369 typos.
2370
2371 2006-05-26 Tom Tromey <tromey@redhat.com>
2372
2373 * expr.c (java_push_constant_from_pool): Handle 'ldc class'.
2374 * verify-glue.c (vfy_class_type): New function.
2375 * verify-impl.c (check_constant): Allow 'ldc class'.
2376 * verify.h (vfy_class_type): Declare.
2377
2378 2006-05-25 Andrew Haley <aph@redhat.com>
2379
2380 PR java/27756
2381 * decl.c (maybe_pushlevels): When variable ranges are non-nested
2382 update all lifetimes, not just the first one.
2383
2384 2006-05-24 Tom Tromey <tromey@redhat.com>
2385
2386 * java-tree.h: Fixed flag documentation.
2387
2388 2006-05-24 Tom Tromey <tromey@redhat.com>
2389
2390 PR libgcj/27729:
2391 * jcf.h (ACC_INVISIBLE): Changed value.
2392
2393 2006-05-24 Andrew Haley <aph@redhat.com>
2394
2395 PR java/27754
2396 * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a
2397 COMPOUND_EXPR.
2398
2399 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
2400
2401 * lang.opt (femit-class-file): Remove VarExists.
2402
2403 2006-05-16 Tom Tromey <tromey@redhat.com>
2404
2405 * verify-impl.c (verify_instructions_0) <op_return>: Special case
2406 for Object.<init>.
2407
2408 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
2409
2410 PR driver/26885
2411 * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
2412 $(GCC_OBJS).
2413
2414 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
2415
2416 * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H).
2417 (java/expr.o): Replace target.h with $(TARGET_H).
2418 (java/parse.o): Likewise.
2419
2420 2006-05-10 Andrew Haley <aph@redhat.com>
2421
2422 * class.c (emit_indirect_register_classes): Fix comment.
2423
2424 2006-05-04 Tom Tromey <tromey@redhat.com>
2425
2426 * java-tree.h (uses_jv_markobj_p): Declare.
2427 * class.c (uses_jv_markobj_p): Removed.
2428 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define.
2429 (get_boehm_type_descriptor): Use it.
2430 (uses_jv_markobj_p): Moved from class.c. Return bool.
2431
2432 2006-05-04 Tom Tromey <tromey@redhat.com>
2433
2434 * java-tree.def (THIS_EXPR): Now a tcc_expression.
2435
2436 2006-05-04 Andrew Haley <aph@redhat.com>
2437
2438 * class.c (make_field_value): Always build_address_of fdecl if
2439 there is an initializer.
2440
2441 2006-05-03 Andrew Haley <aph@redhat.com>
2442
2443 PR libgcj/27352
2444 * expr.c (maybe_rewrite_invocation): New function.
2445 (rewrite_arglist_getclass): Likewise.
2446 (rules): New.
2447 (expand_invoke): Call maybe_rewrite_invocation.
2448 * parse.y (patch_invoke): Likewise.
2449 * java-tree.h: (maybe_rewrite_invocation): New function.
2450
2451 2006-04-21 Andrew Haley <aph@redhat.com>
2452
2453 * lang.c (java_init): Handle flag_indirect_classes.
2454 * jvgenmain.c: Use "class$$" instead of "class$".
2455 * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
2456 DECLs.
2457 (mangle_class_field): Special case "class$$" as well as "class$".
2458 * constants.c (build_ref_from_constant_pool): If
2459 flag_indirect_classes, generate a ref into the heap.
2460 * decl.c (constants_field_decl_node,
2461 constants_data_field_decl_node): New.
2462 * class.c (build_static_class_ref): New.
2463 (build_classdollar_field): Factor out from build_class_ref().
2464 (make_field_value): Handle static fields in heap.
2465 (make_class_data): Make sure we get a static ref to class.
2466 Make class initializer const if flag_indirect_classes.
2467 (register_class): Build a class_ref for initialization if
2468 flag_indirect_classes.
2469 (emit_indirect_register_classes): New.
2470
2471 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
2472
2473 * expr.c, gjavah.c: Fix comment typos.
2474
2475 2006-04-03 Andrew Haley <aph@redhat.com>
2476
2477 PR java/26858
2478 * expr.c (build_field_ref): Don't check the field offset if
2479 flag_syntax_only.
2480
2481 2006-03-30 Andrew Haley <aph@redhat.com>
2482
2483 PR java/26858
2484 * lang.c (java_attribute_table): New.
2485 (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
2486 * expr.c (build_field_ref): Add a null pointer check for all
2487 fields of offset > 4k. Don't do so for accesses via the this
2488 pointer, which we know can never be null.
2489 * class.c (build_java_method_type): Mark arg 1 of all nonstatic
2490 methods nonnull.
2491
2492 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
2493
2494 * Make-lang.in: Rename docdir to gcc_docdir.
2495
2496 2006-03-30 Tom Tromey <tromey@redhat.com>
2497
2498 PR java/26042:
2499 * parse.y (java_reorder_fields): Reset superclass field's size as
2500 well.
2501
2502 2006-03-28 Tom Tromey <tromey@redhat.com>
2503
2504 PR java/26390:
2505 * parse.y (find_most_specific_methods_list): Added 'class'
2506 argument.
2507 (lookup_method_invoke): Updated.
2508
2509 2006-03-15 Tom Tromey <tromey@redhat.com>
2510
2511 * jcf-write.c (generate_bytecode_insns): Use qualifying type for
2512 non-static method calls.
2513
2514 2006-03-15 David Daney <ddaney@avtrex.com>
2515
2516 * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its
2517 declaration.
2518
2519 2006-03-15 David Daney <ddaney@avtrex.com>
2520
2521 * lang.opt (-freduced-reflection): New option.
2522 * lang.c (java_post_options): Generate an error if
2523 -freduced-reflection used with -fjni or -findirect-dispatch.
2524 * java-tree.h (flag_reduced_reflection): Declare new variable.
2525 * boehm.c (get_boehm_type_descriptor): Indicate all pointers
2526 if bitmap overflows and flag_reduced_reflection set.
2527 * class.c (uses_jv_markobj_p): New function.
2528 (make_class_data): Moved generation of vtable to before
2529 reflection data, generate less reflection data if
2530 flag_reduced_reflection set.
2531 * gcj.texi: Document -freduced-reflection.
2532
2533 2006-03-15 Tom Tromey <tromey@redhat.com>
2534
2535 PR java/26638:
2536 * class.c (get_interface_method_index): Don't put <clinit> into
2537 interface table.
2538
2539 2006-03-15 Tom Tromey <tromey@redhat.com>
2540
2541 * parse.y (analyze_clinit_body): Ignore empty statements.
2542
2543 2006-03-08 David Daney <ddaney@avtrex.com>
2544
2545 * gcj.texi: Document -static-libgcj option.
2546
2547 2006-02-20 Andrew Haley <aph@redhat.com>
2548
2549 * jcf-parse.c (parse_class_file): Set input_location from
2550 current_class.
2551
2552 2006-02-15 Andrew Haley <aph@redhat.com>
2553
2554 * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here.
2555 (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL,
2556 TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here.
2557
2558 2006-02-09 Andrew Haley <aph@redhat.com>
2559
2560 PR java/26192
2561 * expr.c (expand_invoke): Allow methods in arrays to be resolved
2562 in their superclass.
2563
2564 * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for
2565 array types.
2566
2567 2006-02-08 Tom Tromey <tromey@redhat.com>
2568
2569 PR java/22578:
2570 * check-init.c (check_init): Handle VIEW_CONVERT_EXPR.
2571 * builtins.c (convert_real): New function.
2572 (java_builtins): Handle Float.intBitsToFloat,
2573 Float.floatToRawIntBits, Double.longBitsToDouble,
2574 Double.doubleToRawLongBits.
2575
2576 2006-02-07 Andrew Haley <aph@redhat.com>
2577
2578 * expr.c (expand_invoke): (BC mode.) If we find a method in a
2579 class other than the one in which we expected to find it, ignore
2580 the result.
2581
2582 PR java/25535
2583 * constants.c (build_constants_constructor): move initializer into
2584 first halfword on a 64-bit big-endian machine.
2585
2586 2006-02-04 Tom Tromey <tromey@redhat.com>
2587
2588 PR java/25676:
2589 * builtins.c (max_builtin): Skip floating point 'max'.
2590 (min_builtin): Skip floating point 'min'.
2591 (check_for_builtin): Never return NULL_TREE.
2592
2593 2006-02-04 Tom Tromey <tromey@redhat.com>
2594
2595 PR java/26097:
2596 * expr.c (push_type): Avoid side effect in gcc_assert.
2597
2598 2006-02-04 Roger Sayle <roger@eyesopen.com>
2599
2600 * decl.c (java_init_decl_processing): Create char_type_node as a
2601 regular INTEGER_TYPE node.
2602 (push_promoted_type): Preserve TYPE_STRING_FLAG on types.
2603 * typeck.c (convert): No longer check for CHAR_TYPEs but instead
2604 test for char_type_node and promoted_char_type_node as special
2605 instances of INTEGER_TYPE tree codes.
2606 (promote_type,build_java_signature): Likewise.
2607 * jcf-write.c (adjust_typed_op): Likewise.
2608 * mangle.c (mangle_type): Likewise.
2609 * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
2610 * parse.h (JINTEGRAL_TYPE_P): Likewise.
2611
2612 2006-02-04 Andreas Tobler <a.tobler@schweiz.ch>
2613
2614 * expr.c (java_stack_swap): Revert gcc_assert patch.
2615
2616 2006-02-03 Ben Elliston <bje@au.ibm.com>
2617
2618 * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout.
2619 * typeck.c: Likewise.
2620 * verify-impl.c: Likewise.
2621 * class.c: Likewise.
2622 * decl.c: Likewise.
2623 * jcf-parse.c: Likewise.
2624 * constants.c: Likewise.
2625 * check-init.c: Likewise.
2626 * jcf-write.c: Likewise.
2627 * verify-glue.c: Likewise.
2628 * mangle.c: Likewise.
2629 * expr.c: Likewise.
2630 * lang.c: Likewise.
2631 * boehm.c: Likewise.
2632
2633 2006-02-01 Jan Hubicka <jh@suse.cz>
2634
2635 * decl.c (end_java_method): Kill hack disabling unit-at-a-time.
2636 * lang.c (java_init_options): Set no_unit_at_a_time_default.
2637
2638 2006-01-30 Andrew Haley <aph@redhat.com>
2639
2640 PR java/21428
2641 * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").
2642
2643 2006-01-21 Joseph S. Myers <joseph@codesourcery.com>
2644
2645 * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version):
2646 Update copyright notice dates.
2647
2648 2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2649
2650 * jvspec.c (lang_specific_spec_functions): Remove.
2651
2652 2006-01-06 Tom Tromey <tromey@redhat.com>
2653
2654 * gcj.texi (Arrays): Added more documentation for
2655 JvNewObjectArray.
2656 (Primitive types): Correct information about primitive classes.
2657 (Reference types): New node.
2658 (Index): New node.
2659
2660 2005-12-16 Alexandre Oliva <aoliva@redhat.com>
2661
2662 * jcf-parse.c (set_source_filename): Set the decl source location
2663 even when returning early.
2664
2665 2005-12-15 Tom Tromey <tromey@redhat.com>
2666 Andrew Haley <aph@redhat.com>
2667
2668 PR java/25429
2669 * parse.y (resolve_expression_name): Don't generate accessor
2670 methods for constant fields.
2671
2672 2005-12-13 Andrew Haley <aph@redhat.com>
2673
2674 PR java/25366
2675 PR java/25368
2676 * class.c (maybe_layout_super_class): Update current_class before
2677 calling do_resolve_class.
2678
2679 2005-12-12 H.J. Lu <hongjiu.lu@intel.com>
2680
2681 PR java/25330
2682 * jcf-write.c (write_classfile): Use PID in temporary class
2683 file. Save/restore errno when reporting error.
2684
2685 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
2686
2687 PR java/9861
2688 * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J'
2689 to bare_function_type and including the return type
2690 * builtins.c (initialize_builtins) : Change builtin mangled name
2691 constants to conform to new mangling scheme
2692
2693 2005-12-08 Andrew Haley <aph@redhat.com>
2694
2695 PR libgcj/25265
2696 * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
2697 (soft_abstractmethod_node): New.
2698 * expr.c (build_field_ref): Add in-line check for missing field.
2699 * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
2700
2701 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2702
2703 * Make-lang.in (java.all.build, java.install-normal): Remove.
2704
2705 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2706
2707 * Make-lang.in: Remove all dependencies on s-gtype, except for
2708 gt-java-parse.h.
2709
2710 2005-12-07 Richard Sandiford <richard@codesourcery.com>
2711
2712 * class.c (build_utf8_ref, emit_register_classes): Use
2713 switch_to_section and get_section.
2714
2715 2005-12-06 Tom Tromey <tromey@redhat.com>
2716
2717 PR java/25283:
2718 * parse.y (patch_new_array_init): Revert previous patch.
2719 (lookup_method_invoke): Use size-less array type when creating an
2720 anonymous constructor.
2721
2722 2005-12-05 Tom Tromey <tromey@redhat.com>
2723
2724 * parse.y (patch_new_array_init): Don't set length on array.
2725
2726 2005-12-02 Richard Guenther <rguenther@suse.de>
2727
2728 * java-gimplify.c (java_gimplify_labeled_block_expr): Use
2729 buildN instead of build.
2730 * class.c (finish_class): Likewise.
2731 * expr.c (java_create_object): Likewise.
2732
2733 2005-11-28 Tom Tromey <tromey@redhat.com>
2734
2735 PR java/18278:
2736 * expr.c (build_jni_stub): Unwrap the return value.
2737 * java-tree.h (soft_unwrapjni_node): New define.
2738 (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
2739 * decl.c (java_init_decl_processing): Initialize
2740 soft_unwrapjni_node.
2741
2742 2005-11-24 Bryce McKinlay <mckinlay@redhat.com>
2743
2744 * gcj.texi (gij options): Add -Xss documentation.
2745
2746 2005-11-08 Wil Mahan <wmahan@gmail.com>
2747
2748 PR java/23617
2749 * zextract.c (read_zip_archive): Fix out of memory error when
2750 reading jar files with zip-style comments.
2751
2752 2005-11-07 Terry Laurenzo <tlaurenzo@gmail.com>
2753
2754 * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
2755 formats.
2756 * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
2757
2758 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
2759 Wil Mahan <wmahan@gmail.com>
2760
2761 PR java/23620
2762 * class.c (make_class): Create empty binfo here.
2763 (set_super_info): Only create binfo if we have superclasses.
2764
2765 2005-10-03 Ranjit Mathew <rmathew@gcc.gnu.org>
2766
2767 PR java/24127
2768 * parse.y (method_header): Make the result of the rule a NULL_TREE
2769 when a parsing error occurs.
2770
2771 2005-09-29 Tom Tromey <tromey@redhat.com>
2772
2773 PR java/24120:
2774 * jcf-io.c (memoized_dirlist_hash): New function.
2775 (caching_stat): Use it.
2776
2777 2005-09-21 Ranjit Mathew <rmathew@gcc.gnu.org>
2778
2779 PR java/21418
2780 * class.c (inherits_from_p): Try to lay out super class
2781 if it is not already laid out.
2782 (maybe_layout_super_class): Handle the case where SUPER_CLASS
2783 is a NULL_TREE.
2784
2785 2005-09-18 James A. Morrison <phython@gcc.gnu.org>
2786
2787 * builtins.c (max_builtin, min_builtin, abs_builtin,
2788 java_build_function_call_expr): Use fold_buildN.
2789 * class.c (layout_class_method): Likewise.
2790 * expr.c (java_truthvalue_conversion, build_java_jsr,
2791 build_java_arrayaccess, expand_java_arrayload, expand_iinc,
2792 build_java_binop, build_field_ref, expand_compare,
2793 build_known_method_ref, build_invokevirtual,
2794 process_jvm_instruction): Likewise.
2795 * parse.y (patch_binop, patch_exit_expr): Likewise.
2796 * typeck.c (convert_ieee_real_to_integer): Likewise.
2797 (convert): Don't call fold after convert_ieee_real_to_integer.
2798
2799 2005-09-14 Bryce McKinlay <mckinlay@redhat.com>
2800
2801 PR java/23891
2802 * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
2803 the newly created type. Set import lists here, not in create_class.
2804 (jdep_resolve_class): Set current_class.
2805 (do_resolve_class): Use current_class's TYPE_PACKAGE to determine
2806 the current package context, not ctxp->package.
2807 (cicp_cache): Removed.
2808 (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
2809 * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
2810 * java-tree.h (TYPE_PACKAGE): New macro.
2811 (struct lang_type): New member 'package'.
2812
2813 2005-09-09 Andrew Haley <aph@redhat.com>
2814
2815 PR libgcj/23182
2816 * expr.c (pop_type_0): If the expected type is object or ptr
2817 (i.e. void*), return the type of the object we just popped from
2818 the stack.
2819
2820 2005-09-06 Andrew Pinski <pinskia@physics.uc.edu>
2821
2822 * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
2823 BLOCK_EXPR_BODY before returning the new BIND_EXPR.
2824
2825 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
2826
2827 * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
2828 jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
2829 typos. Follow spelling conventions.
2830
2831 2005-09-05 Ranjit Mathew <rmathew@hotmail.com>
2832
2833 PR java/23431
2834 * typeck.c (lookup_do): Look up interfaces for the original class,
2835 not the base class.
2836 * parse.y (java_check_regular_methods): Fix diagnostic message for
2837 more restrictive overriding of a method from an interface.
2838
2839 2005-08-16 Tom Tromey <tromey@redhat.com>
2840
2841 * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
2842 class' initial state.
2843
2844 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
2845
2846 PR java/22113
2847 * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
2848 `literal_token' for large numeric input tokens.
2849
2850 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
2851
2852 PR java/19870
2853 * parse.y (nested_field_access_p): Rename to nested_member_access_p
2854 and expand to handle method accesses across nested classes.
2855 (build_outer_method_access_method): Rename to
2856 build_nested_method_access_method. Minor adjustments to comments.
2857 (resolve_expression_name): Use the newly-renamed
2858 nested_member_access_p method.
2859 (resolve_qualified_expression_name): Likewise.
2860 (patch_method_invocation): Also consider static methods for access
2861 method generation. Minor adjustments to comments.
2862 (maybe_use_access_method): Use the more general
2863 nested_memeber_access_p to determine access across nested class
2864 boundaries. Allow THIS_ARG to be NULL (for static methods).
2865
2866 2005-08-15 Tom Tromey <tromey@redhat.com>
2867
2868 PR java/23300.
2869 * expr.c (build_field_ref): Don't generate otable reference when
2870 DECL_FIELD_OFFSET is 0.
2871 * class.c (maybe_layout_super_class): Pass outer class to
2872 do_resolve_class.
2873
2874 2005-08-15 Tom Tromey <tromey@redhat.com>
2875
2876 * java-tree.h (LABEL_IN_SUBR): Removed.
2877 (LABEL_IN_SUBR): Likewise.
2878 (LABEL_IS_SUBR_START): Likewise.
2879 (LABEL_SUBR_START): Likewise.
2880 (LABEL_SUBR_CONTEXT): Likewise.
2881 (LABEL_CHANGED): Likewise.
2882 (LABEL_RETURN_LABEL): Likewise.
2883 (LABEL_RETURN_TYPE_STATE): Likewise.
2884 (LABEL_RETURN_LABELS): Likewise.
2885 (RETURN_MAP_ADJUSTED): Likewise.
2886 (LABEL_PENDING_CHAIN): Likewise.
2887
2888 2005-08-15 Tom Tromey <tromey@redhat.com>
2889
2890 * Make-lang.in (JAVA_OBJS): Removed verify.o
2891 (java/verify.o): Removed.
2892 * verify.c: Removed.
2893 * lang.c (flag_new_verifier): Removed.
2894 (java_post_options): Updated.
2895 * java-tree.h (flag_new_verifier): Removed.
2896 (verify_jvm_instructions): Removed.
2897 * expr.c (pop_type_0): Assume flag_new_verifier is true.
2898 (build_java_check_indexed_type): Likewise.
2899 (expand_java_arraystore): Likewise.
2900 (expand_java_arrayload): Likewise.
2901 (pop_arguments): Likewise.
2902 (expand_byte_code): Likewise.
2903 (process_jvm_instruction): Likewise.
2904
2905 2005-08-10 Andrew Haley <aph@redhat.com>
2906
2907 * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
2908 type mismatches to make legal GIMPLE.
2909
2910 2005-08-10 Robin Green <greenrd@greenrd.org>
2911
2912 PR java/23230:
2913 * parse.y (maybe_use_access_method): Generalize check from
2914 java.lang.Object to any superclass of current_class
2915
2916 2005-08-08 Nathan Sidwell <nathan@codesourcery.com>
2917
2918 * class.c (build_class_ref): Wrap the primary class type in a
2919 NOP_EXPR.
2920 * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
2921 primary class type from the NOP_EXPR in which it was placed.
2922
2923 2005-07-28 Diego Novillo <dnovillo@redhat.com>
2924
2925 * expr.c (expand_load_internal): Fix missing parens in
2926 predicate.
2927
2928 2005-07-28 Andrew Haley <aph@redhat.com>
2929
2930 * expr.c (expand_load_internal): Convert to destination type.
2931
2932 2005-07-22 Manfred Hollstein <mh@suse.com>
2933
2934 * verify-impl.c (check_class_constant): Fix uninitialised warnings.
2935 (check_constant): Likewise.
2936 (check_wide_constant): Likewise.
2937
2938 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
2939
2940 Make CONSTRUCTOR use VEC to store initializers.
2941 * check-init.c (check_init): Update to cope with VEC in
2942 CONSTRUCTOR_ELTS.
2943 * class.c (make_field_value, make_method_value, get_dispatch_table,
2944 make_class_data, emit_symbol_table, emit_catch_table,
2945 emit_assertion_table): Use build_constructor_from_list instead of
2946 build_constructor.
2947 * constants.c (build_constants_constructor): Likewise.
2948 * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
2949 VEC in CONSTRUCTOR_ELTS.
2950 * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
2951 PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
2952 of a TREE_LIST.
2953 * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
2954 CONSTRUCTOR_ELTS.
2955 * parse.y (build_new_array_init): Use build_constructor_from_list
2956 instead of build_constructor.
2957 (patch_new_array_init): Update to cope with VEC in
2958 CONSTRUCTOR_ELTS.
2959 (array_constructor_check_entry): Likewise.
2960
2961 2005-07-12 Tom Tromey <tromey@redhat.com>
2962
2963 * jvspec.c (lang_specific_driver): Put filelist_filename first on
2964 command line.
2965
2966 2005-07-12 Tom Tromey <tromey@redhat.com>
2967
2968 PR java/19674:
2969 * parse-scan.y (interface_member_declaration): Added
2970 empty_statement.
2971
2972 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
2973
2974 * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
2975 (LABEL_PENDING_CHAIN): Ditto.
2976 (LABEL_PC): Ditto.
2977 (DECL_BIT_INDEX): Ditto.
2978
2979 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
2980
2981 PR java/18119
2982 * parse.y (inner_class_accessible): New function. Logic moved from
2983 check_inner_class_access.
2984 (check_inner_class_access): Use inner_class_accessible.
2985 (resolve_inner_class): Simplify arguments. Create circularity hash
2986 here. Keep looking for classes if we found one that was inaccessible.
2987 Return the inaccessible class only if there is no other match.
2988 (do_resolve_class): Update for new resolve_inner_class arguments.
2989 Don't create circularity_hash here.
2990
2991 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
2992
2993 PR java/21045
2994 * parse.y (add_exception_to_throws): New function.
2995 (purge_unchecked_exceptions): Removed.
2996 (get_constructor_super): Renamed from verify_constructor_super. Now
2997 returns the super constructor after verification.
2998 (java_complete_expand_method): Don't use purge_unchecked_exceptions
2999 or save/restore the exception list.
3000 (check_thrown_exceptions): Add uncaught exceptions in anonymous
3001 class initializers and constructors to the throws clause of the method.
3002
3003 2005-07-05 Bryce McKinlay <mckinlay@redhat.com>
3004
3005 PR java/19674
3006 * parse.y (interface_member_declaration): Allow empty statements in
3007 interface declarations.
3008
3009 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
3010
3011 * Makefile.in (parse.o): Adjust dependencies.
3012 * parse.y: Include tree-dump.h.
3013
3014 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
3015
3016 * class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
3017 flag for quoting.
3018
3019 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
3020
3021 * parse.y (issue_warning_error_from_context): Call
3022 pp_output_formatted_text to be able to get the buffer.
3023
3024 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
3025
3026 * parse.y (issue_warning_error_from_context): Update for the
3027 renaming of pp_format_text to pp_format.
3028
3029 2005-06-28 Paul Brook <paul@codesourcery.com>
3030
3031 * decl.c (java_init_decl_processing): Call
3032 default_init_unwind_resume_libfunc.
3033
3034 2005-06-27 Tom Tromey <tromey@redhat.com>
3035
3036 PR java/21540, PR java/13788:
3037 * parse.y (java_complete_lhs) <CASE_EXPR>: Use
3038 fold_constant_for_init.
3039 (patch_binop): Added 'folding' argument. Updated all callers.
3040 (patch_unaryop) <NOP_EXPR>: New case.
3041 (fold_constant_for_init) <NOP_EXPR>: Likewise.
3042 (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
3043
3044 2005-06-25 Jan Hubicka <jh@suse.cz>
3045
3046 * builtins.c (define_builtin): Accept new flags parameter.
3047 (initialize_builtins): Mark the builtins const and nothrow accordingly.
3048
3049 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
3050
3051 * all files: Update FSF address in copyright headers.
3052
3053 2005-06-24 Tom Tromey <tromey@redhat.com>
3054
3055 * verify-impl.c (verify_instructions_0): Correctly handle
3056 situation where PC falls off end.
3057
3058 2005-06-23 Bryce McKinlay <mckinlay@redhat.com>
3059
3060 PR java/20697
3061 * parse.y (find_most_specific_methods_list): Remove special case for
3062 inner classes.
3063
3064 2005-06-15 Tom Tromey <tromey@redhat.com>
3065
3066 PR libgcj/21906:
3067 * class.c (make_method_value): Use soft_abstractmethod_node for
3068 abstract method.
3069 * java-tree.h (soft_abstractmethod_node): New define.
3070 (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
3071 * decl.c (java_init_decl_processing): Initialize
3072 soft_abstractmethod_node.
3073
3074 2005-06-13 Geoffrey Keating <geoffk@apple.com>
3075
3076 * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
3077
3078 2005-06-13 Per Bothner <per@bothner.com>
3079
3080 * expr.c (int highest_label_pc_this_method,
3081 start_label_pc_this_method): New globals.
3082 (lookup_label): Add start_label_pc_this_method to pc for label, and
3083 update highest_label_pc_this_method. This prevents conflicts between
3084 labels from different methods.
3085 * java-tree.h: Declare new globals.
3086 * jcf-parse.c (parse_class_file): If needed bump
3087 start_label_pc_this_method and reset highest_label_pc_this_method.
3088
3089 2005-06-13 Tom Tromey <tromey@redhat.com>
3090
3091 PR java/21844:
3092 * parse.y (nested_field_access_p): Handle case where outer field
3093 is inherited by enclosing class.
3094
3095 2005-06-12 Per Bothner <per@bothner.com>
3096
3097 * class.c (inherits_from_p): Do load_class if needed.
3098
3099 2005-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3100
3101 * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
3102 * java-tree.h (parse_error_context): Move...
3103 * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
3104 * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
3105 * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
3106
3107 2005-06-08 Roger Sayle <roger@eyesopen.com>
3108
3109 * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
3110
3111 2005-06-06 Jakub Jelinek <jakub@redhat.com>
3112
3113 * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
3114 msgid for argument name.
3115 * gjavah.c (error): Likewise.
3116 * java-tree.h (parse_error_context): Likewise.
3117 * parse.y (parse_error_context, parse_warning_context,
3118 issue_warning_error_from_context): Likewise.
3119
3120 2005-06-01 Tom Tromey <tromey@redhat.com>
3121
3122 PR java/21722:
3123 * class.c (build_static_field_ref): Don't fold constant fields if
3124 current class is from a .class file and we're using indirect
3125 dispatch.
3126
3127 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3128
3129 * java/verify-glue.c: Don't include errors.h and include toplev.h.
3130 * java/Make-lang.in: Updates dependencies.
3131
3132 2005-05-26 Ranjit Mathew <rmathew@hotmail.com>
3133
3134 PR java/19870.
3135 * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
3136 NESTED_FIELD_ACCESS_IDENTIFIER_P.
3137 (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
3138 (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
3139 * jcf-write.c (generate_classfile): Use
3140 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3141 OUTER_FIELD_ACCESS_IDENTIFIER_P.
3142 * parse.y (build_outer_field_access): Rename to
3143 build_nested_field_access. Support static fields and outer-to-inner
3144 class accesses.
3145 (outer_field_access_p): Rename to nested_field_access_p. Support
3146 static fields and generalise to outer-to-inner class and sibling
3147 inner class accesses.
3148 (outer_field_expanded_access_p): Rename to
3149 nested_field_expanded_access_p and support static fields.
3150 (outer_field_access_fix): Rename to nested_field_access_fix and
3151 support static fields.
3152 (build_outer_field_access_expr): Rename to
3153 build_nested_field_access_expr and support static fields.
3154 (build_outer_field_access_methods): Rename to
3155 build_nested_field_access_methods and support static fields. For
3156 static fields, generate accessors without class instance parameters.
3157 (build_outer_field_access_method): Rename to
3158 build_nested_field_access_method and support static fields.
3159 (build_outer_method_access_method): Use
3160 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3161 OUTER_FIELD_ACCESS_IDENTIFIER_P.
3162 (resolve_expression_name): Consider static field accesses across
3163 nested classes.
3164 (resolve_qualified_expression_name): Likewise.
3165 (java_complete_lhs): Use nested_field_access_fix instead of
3166 outer_field_access_fix.
3167 (patch_unary_op): Rename outer_field_flag to nested_field_flag.
3168 Use nested_field_expanded_access_p instead of
3169 outer_field_expanded_access_p. Use nested_field_access_fix instead
3170 of outer_field_access_fix.
3171 (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
3172 instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
3173
3174 2005-05-26 Bryce McKinlay <mckinlay@redhat.com>
3175
3176 * decl.c (GCJ_BINARYCOMPAT_ADDITION,
3177 GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
3178 (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
3179 MINOR_BINARYCOMPAT_ABI_VERSION): New.
3180 (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
3181 (parse_version): Calculate version ID using new method. Use bit-flags
3182 for flag_indirect_dispatch and flag_bootstrap_classes.
3183
3184 2005-05-25 Richard Henderson <rth@redhat.com>
3185
3186 PR libgcj/21692
3187 * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
3188 * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
3189 DECL_CONTEXT; avoid pushdecl_top_level.
3190 (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
3191 (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
3192 (layout_class_method): Likewise.
3193 * decl.c (java_mark_cni_decl_local): New.
3194 (java_mark_class_local): Use it.
3195 * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
3196 (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
3197 (struct lang_decl_func): Add local_cni;
3198 (struct lang_decl_var): Add class_field, vtable.
3199 (java_mangle_decl): Declare.
3200 * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
3201 * mangle.c: Remove dup obstack.h; include langhooks-def.h.
3202 (mangle_obstack_1): New.
3203 (java_mangle_decl): Remove obstack argument. Call mangle_class_field,
3204 mangle_vtable, and mangle_local_cni_method_decl. Fall back to
3205 lhd_set_decl_assembler_name for things that don't need mangling.
3206 (mangle_class_field): Rename from java_mangle_class_field, make
3207 static, don't call init_mangling or finish_mangling.
3208 (mangle_vtable): Similarly.
3209 (mangle_local_cni_method_decl): New.
3210 (init_mangling): Remove obstack argument. Use &mangle_obstack_1,
3211 gcc_assert, and MANGLE_RAW_STRING.
3212 (finish_mangling): Use gcc_assert, remove if 0 debugging code.
3213
3214 2005-05-25 DJ Delorie <dj@redhat.com>
3215
3216 * class.c (set_constant_value): Move warning control from if() to
3217 warning(OPT_*).
3218
3219 2005-05-24 Richard Henderson <rth@redhat.com>
3220
3221 * builtins.c (define_builtin): Don't call make_decl_rtl.
3222 * constants.c (build_constant_data_ref): Likewise.
3223 * class.c (build_utf8_ref): Likewise.
3224 (build_fieldref_cache_entry, build_static_field_ref): Likewise.
3225 (get_dispatch_table, layout_class_method): Likewise.
3226 (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
3227 by hand.
3228 (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
3229 (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
3230 to determine if we need a non-zero address.
3231 * decl.c (builtin_function): Don't call make_decl_rtl.
3232 (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
3233 * expr.c (build_known_method_ref): Don't call make_decl_rtl.
3234 * resource.c (compile_resource_data): Likewise.
3235 * parse.y (resolve_field_access): Re-word comment to avoid
3236 building DECL_RTL.
3237
3238 2005-05-24 Richard Henderson <rth@redhat.com>
3239
3240 * class.c (registered_class): Take it out of class_roots; turn into
3241 a vec of trees.
3242 (register_class): Make static. Don't duplicate decl node. Use
3243 VEC_safe_push.
3244 (emit_register_classes): Use VEC_iterate. Use output_constant
3245 instead of assemble_integer. Don't call mark_decl_referenced
3246 directly.
3247 * java-tree.h (register_class): Remove decl.
3248
3249 2005-05-19 Paolo Bonzini <bonzini@gnu.org>
3250
3251 PR java/17845
3252
3253 * parse.y (register_package, package_list): Remove.
3254 (package_declaration): Do not call register_package.
3255 (do_resolve_class): Do not use package_list.
3256
3257 2005-05-15 Gerald Pfeifer <gerald@pfeifer.com>
3258
3259 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
3260 unused variable.
3261
3262 2005-05-15 Tom Tromey <tromey@redhat.com>
3263
3264 PR java/21519:
3265 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
3266 NOTE_PUSH.
3267
3268 2005-05-12 Aaron Luchko <aluchko@redhat.com>
3269
3270 * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
3271
3272 2005-05-11 Tom Tromey <tromey@redhat.com>
3273
3274 * gcj.texi (Code Generation): Document -fbootstrap-classes.
3275 * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
3276 (parse_version): Use it.
3277 * lang.opt (-fbootstrap-classes): New option.
3278
3279 2005-05-10 Paolo Bonzini <bonzini@gnu.org>
3280
3281 PR java/21436
3282 * class.c (maybe_layout_super_class): Look for imports in this_class.
3283 * parse.h (ctxp_for_generation_last): New.
3284 (do_resolve_class): Add a parameter.
3285 * parse.y (ctxp_for_generation_last): New.
3286 (java_pop_parser_context): Add at end of list.
3287 (find_in_imports, find_in_imports_on_demand): Look in ctxp
3288 if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
3289 the given type are NULL.
3290 (do_resolve_class): Look into the imports of the new second parameter.
3291 Adjust recursive calls.
3292 (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
3293 calls to do_resolve_class.
3294 (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
3295 (java_complete_class): Do not do that here.
3296
3297 2005-05-03 Thomas Fitzsimmons <fitzsim@redhat.com>
3298
3299 PR java/20309
3300 * Make-lang.in (java): Add gjnih.
3301 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
3302 (GJNIH_OBJS): New variable.
3303 (gjnih$(exeext)): New target.
3304 (JAVA_MANFILES): Add gjnih.1.
3305 (java.uninstall): Add gjnih.1.
3306 (java.mostlyclean): Add gjnih.
3307 (java.maintainer-clean): Add gjnih.1.
3308 (java/gjavah-jni.o): New target.
3309 (.INTERMEDIATE): Add gjnih.pod.
3310 (gjnih.pod): New target.
3311 * config-lang.in (stagestuff): Add gjnih.
3312 * gcj.texi (Top): Add gjnih node.
3313 (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
3314 -bootclasspath options.
3315 (Invoking gjnih): New node.
3316 * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
3317 (TOOLNAME): New macro.
3318 (error): Replace hard-coded gcjh with TOOLNAME.
3319 (process_file): Likewise.
3320 (usage): Likewise.
3321 (version): Likewise.
3322 (help): Likewise. Add help output for -force, -old, -trace and -J
3323 options.
3324 (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
3325 (options): Add force, old, trace and J fields.
3326 (main): Handle -force, -old, -trace and -J options.
3327
3328 2005-05-03 Tom Tromey <tromey@redhat.com>
3329
3330 PR java/21245:
3331 * gjavah.c (main): Unlink output file on error.
3332
3333 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
3334
3335 * constants.c, jvgenmain.c, lang.opt, resource.c: Update
3336 copyright.
3337
3338 2005-04-29 Tom Tromey <tromey@redhat.com>
3339
3340 * expr.c (build_jni_stub): Updated for change to build_block.
3341
3342 2005-04-29 Andrew Pinski <pinskia@gcc.gnu.org>
3343
3344 * expr.c (force_evaluation_order): Declare 'saved' earlier.
3345
3346 2005-04-28 Andrew Haley <aph@redhat.com>
3347
3348 PR java/19285
3349 * java-tree.h (soft_resolvepoolentry_node): New.
3350 (alloc_constant_fieldref): Declare.
3351 * expr.c (expand_java_field_op): Don't call class_init for
3352 accesses to static fields with indirect dispatch.
3353 * builtins.c (initialize_builtins): Add "__builtin_expect".
3354 * decl.c (soft_resolvepoolentry_node): New variable.
3355 (java_init_decl_processing): Create a decl for
3356 "_Jv_ResolvePoolEntry".
3357 * class.c (build_fieldref_cache_entry): New function.
3358 (build_static_field_ref): Rewrite for indirect dispatch.
3359 * constants.c (find_name_and_type_constant_tree): New function.
3360 (alloc_constant_fieldref): Likewise.
3361 (build_constants_constructor): Handle CONSTANT_Fieldref and
3362 CONSTANT_NameAndType.
3363
3364 PR java/21115
3365 * expr.c (force_evaluation_order): Convert outgoing args smaller
3366 than integer.
3367
3368 2005-04-27 Bryce McKinlay <mckinlay@redhat.com>
3369
3370 * gcj.texi (libgcj Runtime Properties): Remove obsolete
3371 gnu.gcj.runtime.NameFinder.* system properties. Update documentation
3372 for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
3373
3374 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3375
3376 * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
3377 to `unlock_stream' with `unlock_std_streams'.
3378
3379 2005-04-25 Jakub Jelinek <jakub@redhat.com>
3380
3381 * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
3382 instead of just expr.h.
3383
3384 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3385
3386 * gjavah.c (main): Unlock the stdio streams.
3387 * jcf-dump.c (main): Likewise.
3388 * jv-scan.c (main): Likewise.
3389 * jvgenmain.c (main): Likewise.
3390
3391 2005-04-23 DJ Delorie <dj@redhat.com>
3392
3393 * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
3394 parse.y: Adjust warning() callers.
3395
3396 2005-04-21 Bryce McKinlay <mckinlay@redhat.com>
3397
3398 * gcj.texi (Object fields): Change "Integer" to "Int" in example
3399 contructor.
3400
3401 2005-04-20 Bryce McKinlay <mckinlay@redhat.com>
3402
3403 * gcj.texi: Fix typos and bogus example.
3404
3405 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
3406
3407 * except.c: Fix a comment typo.
3408
3409 2005-04-19 Julian Brown <julian@codesourcery.com>
3410
3411 * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
3412 indirect dispatch with PIC.
3413
3414 2005-04-18 Andrew Haley <aph@redhat.com>
3415
3416 * java-except.h (struct eh_range.handler): Remove unused field.
3417 (handle_nested_ranges): Remove function declaration.
3418 (sanity_check_exception_range): Add function declaration.
3419 * verify.c (verify_jvm_instructions): Remove call to
3420 handle_nested_ranges.
3421 * verify-glue.c (verify_jvm_instructions_new): Call
3422 sanity_check_exception_range.
3423 * except.c (link_handler, eh_range_freelist, link_handler,
3424 handle_nested_ranges): Remove.
3425 (add_handler): Rewrite.
3426 (sanity_check_exception_range): New function.
3427 (print_ranges): New function.
3428
3429 2005-04-13 Julian Brown <julian@codesourcery.com>
3430
3431 * decl.c (finish_method): Give methods once-only linkage.
3432
3433 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
3434
3435 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
3436
3437 2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3438
3439 * java-tree.h: Don't use PARAMS().
3440
3441 2005-04-07 Per Bothner <per@bothner.com>
3442
3443 * class.c (push_class): By default, suppress debug output.
3444 (finish_class): Enable debug output for classes we're emitting.
3445
3446 2005-04-07 Andrew Haley <aph@redhat.com>
3447
3448 * gcj.texi: Correct gcj-dbtool instructions.
3449
3450 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
3451
3452 * gcj.texi: Fix a typo.
3453 * lang.c: Fix a comment typo.
3454
3455 2005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com>
3456
3457 * gcj.texi (Invoking gij): Add descriptions of new -X options.
3458 Mention recognized-and-ignored compatibility options.
3459 (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
3460 JvFree.
3461 (About CNI): Add Memory allocation section.
3462
3463 2005-04-01 Tom Tromey <tromey@redhat.com>
3464
3465 * decl.c (java_init_decl_processing): Fix types of
3466 _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
3467 _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
3468 _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
3469
3470 2005-03-31 Jan Hubicka <jh@suse.cz>
3471
3472 * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
3473 * class.c: Include cgraph.h
3474 (make_local_functoin_alias): Mark aslias as needed.
3475 * resource.c: Include cgraph.h
3476 (compile_resource_data): Go via cgraph interface.
3477
3478 2005-03-30 Ian Lance Taylor <ian@airs.com>
3479
3480 * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
3481
3482 2005-03-30 Tom Tromey <tromey@redhat.com>
3483
3484 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
3485 inner_class_info_index==0 or outer_class_info_index==0.
3486
3487 2005-03-29 Tom Tromey <tromey@redhat.com>
3488
3489 * gcj.texi (libgcj Runtime Properties): Document
3490 gnu.gcj.runtime.endorsed.dirs.
3491
3492 2005-03-24 Anthony Green <green@redhat.com>
3493
3494 * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
3495 'gcj-dbtool -p'.
3496
3497 2005-03-23 Tom Tromey <tromey@redhat.com>
3498
3499 * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
3500 (parse_version): Use it.
3501
3502 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
3503
3504 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
3505
3506 2005-03-18 Andrew Haley <aph@redhat.com>
3507
3508 PR java/20522
3509 * decl.c (update_aliases): Don't update variables that are about
3510 to die.
3511 (maybe_poplevels): Add comment.
3512
3513 2005-03-17 Bryce McKinlay <mckinlay@redhat.com>
3514
3515 PR java/20502
3516 * jcf-parse.c (duplicate_class_warning): New function.
3517 (java_parse_file): Call duplicate_class_warning if
3518 CLASS_FROM_CURRENTLY_COMPILED_P is already set.
3519 (parse_zip_file_entries): Likewise. Also set
3520 CLASS_FROM_CURRENTLY_COMPILED_P.
3521
3522 2005-03-16 Andrew Haley <aph@redhat.com>
3523
3524 * expr.c (expand_java_arrayload): Don't generate a
3525 NullPointerException based on the type of the node.
3526 (build_java_array_length_access): Likewise.
3527
3528 2005-03-15 Zack Weinberg <zack@codesourcery.com>
3529
3530 * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
3531
3532 2005-03-11 Tom Tromey <tromey@redhat.com>
3533
3534 * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
3535 (libgcj Runtime Properties): Document the default .db.
3536
3537 2005-03-10 Ranjit Mathew <rmathew@hotmail.com>
3538
3539 PR java/20312
3540 * parse.y (checks_throws_clauses): Check exceptions list even when
3541 the base class does not come from a source file being compiled.
3542 (java_complete_lhs): Remove unused variable 'wfl'.
3543
3544 2005-03-09 Ranjit Mathew <rmathew@hotmail.com>
3545
3546 PR java/20338
3547 * decl.c (finish_method): Emit _Jv_InitClass for private static
3548 methods inside inner classes as well.
3549
3550 2005-03-08 Julian Brown <julian@codesourcery.com>
3551 * Revert patch from 2005-03-08 for causing bootstrap failure on
3552 ppc-darwin.
3553
3554 2005-03-08 Julian Brown <julian@codesourcery.com>
3555
3556 * decl.c (finish_method): Give methods once-only linkage.
3557
3558 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
3559
3560 * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
3561
3562 2005-03-07 Bryce McKinlay <mckinlay@redhat.com>
3563
3564 * verify-glue.c (vfy_is_assignable_from): Perform static check using
3565 can_widen_reference_to if the C++ ABI is in use.
3566 (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
3567 * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
3568 type_isresolved, init_state, set_pc, state_get_pc,
3569 _Jv_BytecodeVerifier): Clean up unused and disabled functions.
3570 (verify_fail): Report the current PC from the verifier context.
3571 (free_state): Remove #if 0 block to enable this function.
3572 (free_verifier_context): Call free_state on state_list iterator
3573 values before freeing them.
3574 * expr.c (pop_type_0): Pop correct type for error message when stack
3575 contains a multi-word type.
3576
3577 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
3578
3579 * expr.c (build_java_array_length_access): Remove !flag_new_verifier
3580 for known NULL array length access.
3581
3582 2005-03-07 Tom Tromey <tromey@redhat.com>
3583
3584 * gcj.texi (Invoking gcj-dbtool): Document '-f'.
3585
3586 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
3587
3588 * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
3589 typeck.c: Update copyright.
3590
3591 2005-03-06 Ranjit Mathew <rmathew@hotmail.com>
3592
3593 Remove xref code.
3594 * xref.c, xref.h: Remove file.
3595 * Make-lang.in (java/xref.o): Remove.
3596 * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
3597 * lang.c (flag_emit_xref): Remove definition.
3598 * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
3599 * typeck.c (convert): Remove use of do_not_fold.
3600 * parse.y (do_not_fold): Remove definition.
3601 (parser grammar): Remove xref code.
3602 (maybe_create_class_interface_decl, create_class): Likewise.
3603 (register_fields, method_header, finish_method_declaration): Likewise.
3604 (declare_local_variables, source_end_java_method): Likewise.
3605 (java_complete_expand_classes): Do not set do_not_fold.
3606 (java_complete_expand_method): Remove xref code.
3607 (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
3608 (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
3609 (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
3610 (patch_synchronized_statement, patch_throw_statement): Likewise.
3611 (maybe_build_class_init_for_field): Likewise.
3612
3613 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3614
3615 * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
3616 instead of IS_NON_TYPE_CODE_CLASS.
3617
3618 2005-03-04 Andrew Haley <aph@redhat.com>
3619
3620 PR java/18362
3621 * class.c (set_method_index): Don't set method_index if it is
3622 NULL_TREE.
3623 (layout_class_method): Don't complain about "non-static method foo
3624 overrides static method" in the case of indirect dispatch.
3625
3626 2005-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3627
3628 * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
3629 warning.
3630 * Make-lang.in: Don't elide warnings in jcf-io.c.
3631
3632 2005-03-01 Per Bothner <per@bothner.com>
3633
3634 PR java/8608
3635 * check-init.c (wfl): Remove static.
3636 (final_assign_error, check_init): Replace calls to parse_error_context
3637 by plain error.
3638 (check_init): Save, set, and restore input_location for each exp.
3639
3640 2005-03-01 Per Bothner <per@bothner.com>
3641
3642 * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
3643 if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
3644 * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
3645
3646 2005-03-01 Per Bothner <per@bothner.com>
3647
3648 * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
3649
3650 2005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
3651
3652 PR libgcj/16923
3653 * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
3654 JvVMOption.
3655
3656 2005-02-22 Tom Tromey <tromey@redhat.com>
3657
3658 PR java/20056:
3659 * verify-impl.c (EITHER): New define.
3660 (types_compatible): Handle it.
3661 (check_field_constant): Use it.
3662
3663 2005-02-18 Tom Tromey <tromey@redhat.com>
3664
3665 PR java/20056:
3666 * verify-impl.c (types_equal): Fixed test.
3667
3668 PR java/20056:
3669 * verify-glue.c (vfy_class_has_field): New function.
3670 * verify.h (vfy_class_has_field): Declare.
3671 * verify-impl.c (check_field_constant): Added 'putfield'
3672 argument.
3673 (verify_instructions_0): Updated.
3674 (types_equal): New function.
3675
3676 2005-02-14 Tom Tromey <tromey@redhat.com>
3677
3678 PR java/19921:
3679 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
3680 stack effect of multianewarray.
3681
3682 2005-02-14 Andrew Haley <aph@redhat.com>
3683
3684 PR java/19907
3685 * expr.c (expand_byte_code): Call promote_arguments().
3686 (promote_arguments): New function.
3687 * decl.c (check_local_unnamed_variable): Remove special case for
3688 new verifier.
3689 (find_local_variable): Promote all boolean types to int
3690 when searching for local variable decls.
3691
3692 2005-02-12 Kazu Hirata <kazu@cs.umass.edu>
3693
3694 * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
3695 parse-scan.y: Update copyright.
3696
3697 2005-02-11 Per Bothner <per@bothner.com>
3698
3699 PR java/15543
3700 * parse-scan.y (input_location): Remove variable.
3701 (main_input_filename): New - replaces input_filename, which isn't
3702 settable if USE_MAPPED_LOCATION.
3703 * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
3704 so we don't reference input_location or wfl_operator in that case.
3705 * jv-scan.c (expand_location): Remove - no longer used.
3706 (main): Set main_input_filename rather than input_filename.
3707
3708 2005-02-09 Richard Henderson <rth@redhat.com>
3709
3710 * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
3711 * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
3712
3713 2005-02-08 Marcin Dalecki <martin@dalecki.de>
3714
3715 * expr.c (add_type_assertion): Use the proper enumeration type,
3716 since this is what htab_find_slot() is expecting.
3717
3718 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
3719
3720 * gcj.texi: Update copyright dates.
3721
3722 2005-02-02 Tom Tromey <tromey@redhat.com>
3723
3724 * gcj.texi (libgcj Runtime Properties): Default library_control
3725 to 'cache'.
3726
3727 2005-02-02 Ranjit Mathew <rmathew@hotmail.com>
3728
3729 PR java/15543
3730 * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
3731 (modifiers) when square brackets are present in a declaration for
3732 a final paramter.
3733 * jv-scan.c (main): Set input_filename and input_line.
3734
3735 2005-02-01 Tom Tromey <tromey@redhat.com>
3736
3737 PR java/19742:
3738 * gjavah.c (get_field_name): Don't override name for JNI header.
3739
3740 2005-02-01 Roger Sayle <roger@eyesopen.com>
3741
3742 * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
3743 of unsigned types using iushr and lushr JVM bytecodes.
3744
3745 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
3746
3747 PR java/19738
3748 * gjavah.c (jni_print_float): Do not emit floating-point
3749 initialiser for a static final field.
3750 (jni_print_double): Likewise.
3751
3752 2005-02-01 Mark Mitchell <mark@codesourcery.com>
3753
3754 Revert:
3755 2005-01-31 Mark Mitchell <mark@codesourcery.com>
3756 * gjavah.c (print_field_info): Mark static data members of
3757 floating-point type with "__extension__".
3758
3759 2005-01-31 Mark Mitchell <mark@codesourcery.com>
3760
3761 * gjavah.c (print_field_info): Mark static data members of
3762 floating-point type with "__extension__".
3763
3764 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
3765
3766 PR java/9157
3767 * parse.y (build_string_concatenation): Remove redundant if.
3768 (patch_conditional_expr): Attempt to patch_string() the condition
3769 of a ?: as well, in addition to its other operands.
3770
3771 2005-01-25 Tom Tromey <tromey@redhat.com>
3772
3773 * Make-lang.in (java/java-tree-inline.o): Removed.
3774
3775 2005-01-25 Ranjit Mathew <rmathew@hotmail.com>
3776
3777 PR java/19070
3778 * parse.y (patch_binop): Allow comparisons against NULL only
3779 if the other operand is of a reference type.
3780
3781 2005-01-24 Tom Tromey <tromey@redhat.com>
3782
3783 * java-tree.h (gcj_abi_version): Declare.
3784 * class.c (make_class_data): Push gcj_abi_version into "next"
3785 field. Renamed field.
3786 * decl.c (gcj_abi_version): New global.
3787 (parse_version): New function.
3788 (java_init_decl_processing): Call it. Renamed 'next' field.
3789 Include version.h.
3790 (GCJ_BINARYCOMPAT_ADDITION): New define.
3791
3792 2005-01-24 Roger Sayle <roger@eyesopen.com>
3793
3794 PR java/19295
3795 * jcf-write.c (generate_bytecode_insns): Conversions between
3796 integer types of the same precision shouldn't generate widening
3797 or narrowing conversion bytecodes.
3798
3799 2005-01-22 Kazu Hirata <kazu@cs.umass.edu>
3800
3801 * java-except.h, java-tree.h: Remove unused prototypes.
3802
3803 2005-01-20 Andrew Pinski <pinskia@gcc.gnu.org>
3804
3805 PR java/18091:
3806 * jcf-write.c (perform_relocations): Don't call memcpy if source
3807 and destination are the same.
3808
3809 2005-01-17 Tom Tromey <tromey@redhat.com>
3810
3811 * verify-impl.c (get_short): Sign extend.
3812 (get_int): Likewise.
3813
3814 2005-01-12 Ranjit Mathew <rmathew@hotmail.com>
3815
3816 * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
3817 with TYPE_SIZE.
3818
3819 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
3820
3821 * verify.c: Revert to the version before the BC-ABI merge.
3822
3823 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
3824
3825 PR java/19277
3826 * check-init.c (check_init): Take care of references that do not
3827 have an explicit final variable declaration (e.g. array length
3828 access) for pre/post in/de-crement operators.
3829
3830 2005-01-08 Mark Wielaard <mark@klomp.org>
3831
3832 * parse.y (process_imports): Allocate (and free) original_name only
3833 when not already defined.
3834 * jcf-parse.c (read_class): Free results of find_class() and
3835 lrealpath().
3836 (java_parse_file): Keep pointer to head of file_list and free when
3837 done. Free result of lrealpath().
3838
3839 2005-01-05 Tom Tromey <tromey@redhat.com>
3840
3841 * gcj.texi (Standard Properties): java.ext.dirs is now used.
3842
3843 2004-12-20 Andrew Haley <aph@redhat.com>
3844
3845 * typeck.c: Use fold_convert for ints and booleans.
3846
3847 2004-12-17 Andrew Haley <aph@redhat.com>
3848
3849 PR java/18931
3850 * typeck.c (convert): Use a CONVERT_EXPR when converting to
3851 BOOLEAN_TYPE or CHAR_TYPE.
3852 (convert_to_boolean, convert_to_char) : Remove.
3853 * convert.h (convert_to_boolean, convert_to_char) : Remove.
3854 * expr.c (expand_load_internal): Do type conversion if type is not
3855 as required.
3856
3857 2004-12-13 Danny Smith <dannysmith@users.sourceforge.net>
3858
3859 PR target/18459
3860 * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
3861 Update comment.
3862
3863 2004-12-07 Andrew Haley <aph@redhat.com>
3864
3865 PR java/18811:
3866 * jcf-parse.c (load_class): Remove sanity test for missing inner
3867 class file.
3868
3869 2004-12-06 Tom Tromey <tromey@redhat.com>
3870
3871 * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
3872 (java.uninstall): Likewise.
3873 (java.maintainer-clean): Likewise.
3874 (.INTERMEDIATE): Likewise.
3875 (java.install-man): Likewise.
3876 (gcj-dbtool.pod): New target.
3877 * gcj.texi (Code Generation): Document -findirect-dispatch.
3878 (libgcj Runtime Properties): Document
3879 gnu.gcj.precompiled.db.path.
3880 (Top): Link to "Invoking gcj-dbtool".
3881
3882 2004-12-06 Tom Tromey <tromey@redhat.com>
3883
3884 PR java/14853:
3885 * java-tree.h (extract_field_decl): Declare.
3886 * parse.y (extract_field_decl): Renamed from
3887 strip_out_static_field_access_decl. No longer static.
3888 * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
3889
3890 2004-12-03 Tom Tromey <tromey@redhat.com>
3891
3892 * lang.c (flag_new_verifier): Define.
3893 (java_post_options): Set flag_new_verifier if indirect dispatch
3894 is being used.
3895 * lang.opt (fnew-verifier): Removed.
3896
3897 2004-12-03 Tom Tromey <tromey@redhat.com>
3898
3899 PR bootstrap/14614:
3900 * Make-lang.in (java.install-common): Only install transformed
3901 gcjh if gcj-cross exists.
3902
3903 2004-12-03 Andrew Haley <aph@redhat.com>
3904
3905 PR java/18812
3906 * except.c (link_handler): Patch 'outer' field of siblings of the
3907 range we're demoting.
3908
3909 2004-12-03 Andrew Haley <aph@redhat.com>
3910
3911 PR java/18697
3912 * class.c (layout_class_method): Don't fail to override a method
3913 simply because it has DECL_ARTIFICIAL set.
3914
3915 2004-12-02 Tom Tromey <tromey@redhat.com>
3916
3917 PR java/16675:
3918 * parse.y (craft_constructor): Special case null_pointer_node.
3919
3920 2004-12-02 Tom Tromey <tromey@redhat.com>
3921
3922 PR java/18741:
3923 * java-gimplify.c (java_gimplify_expr): Don't call
3924 SET_EXPR_LOCATION unless wrapped tree is an expression.
3925
3926 2004-11-27 Per Bothner <per@bothner.com>
3927
3928 * jcf-parse.c (set_source_filename): Improvement to Andrew's fix:
3929 Fix fencepost error in 'i', which got executed one too many times.
3930 Also, fold memcpy into explicit loop, as originally intended.
3931 Also, free temporary 'buf' which otherwise leaks.
3932
3933 2004-11-27 Per Bothner <per@bothner.com>
3934
3935 * expr.c (build_expr_wfl): Only declare last_file and last_filenode
3936 local static variables if not USE_MAPPED_LOCATION.
3937
3938 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
3939
3940 * class.c, decl.c, expr.c: Fix comment typos.
3941
3942 2004-11-26 Andrew Pinski <pinskia@physics.uc.edu>
3943
3944 PR java/18305
3945 * decl.c (end_java_method): Call
3946 attach_init_test_initialization_flags on all the init_decls.
3947 * parse.y (attach_init_test_initialization_flags): Move to ...
3948 * expr.c (attach_init_test_initialization_flags): here and
3949 support BIND_EXPR also.
3950 * java-tree.h (attach_init_test_initialization_flags): Prototype.
3951 * jcf-parse.c (parse_class_file): Don't disable class init
3952 optimization.
3953
3954 2004-11-25 Joseph S. Myers <joseph@codesourcery.com>
3955
3956 * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
3957 in diagnostics.
3958
3959 2004-11-24 Richard Henderson <rth@redhat.com>
3960
3961 * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
3962 vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
3963
3964 2004-11-24 Tom Tromey <tromey@redhat.com>
3965
3966 * verify.c (defer_merging): Don't use C++-style comment.
3967 * verify.h (java_opcode): Added java_opcode_end.
3968 * class.c (build_class_ref): Remove C++ comment and old FIXME.
3969
3970 * verify-impl.c (vfy_push_type): Removed bogus "return".
3971 (initialize_stack): Use vfy_alloc and vfy_free.
3972 (verify_instructions_0): Likewise.
3973
3974 * Merged gcj-abi-2-dev-branch to trunk.
3975
3976 2004-11-24 Andrew Haley <aph@redhat.com>
3977
3978 * jcf-parse.c (parse_class_file): Set file_start_location.
3979
3980 2004-11-10 Tom Tromey <tromey@redhat.com>
3981
3982 * class.c (make_field_value): Don't call build_static_field_ref.
3983 (build_static_field_ref): Don't emit direct references when using
3984 indirect dispatch.
3985
3986 * gcj.texi (Invoking gij): Document -verbose. Put -verbose and
3987 -verbose:class into man page synopsis.
3988
3989 2004-11-09 Tom Tromey <tromey@redhat.com>
3990
3991 * expr.c (build_java_arraystore_check): Still generate check if
3992 element type is itself an array.
3993
3994 2004-11-08 Tom Tromey <tromey@redhat.com>
3995
3996 * java-tree.h (soft_check_assignment_node): Removed.
3997 (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
3998 * decl.c (java_init_decl_processing): Don't initialize
3999 soft_check_assignment_node.
4000
4001 2004-11-05 Tom Tromey <tromey@redhat.com>
4002
4003 * class.c (layout_class_methods): Don't add Miranda methods when
4004 using indirect dispatch.
4005
4006 2004-11-05 Bryce McKinlay <mckinlay@redhat.com>
4007
4008 * class.c (make_class_data): Call emit_assertion_table to set the
4009 'assertion_table' field.
4010 (build_signature_for_libgcj): Move here from expr.c.
4011 (add_assertion_table_entry): New function. Callback for assertion
4012 hashtable traversal.
4013 (emit_assertion_table): New. Take class argument, and generate
4014 assertion table DECL based on the TYPE_ASSERTIONS hashtable.
4015 * decl.c (init_decl_processing): Define assertion_entry_type record.
4016 Push 'assertion_table' class field instead of 'verify'.
4017 * expr.c (type_assertion_eq): Compare 'assertion_code' field.
4018 (type_assertion_hash): Include 'assertion_code' in hash.
4019 (add_type_assertion): Rewritten. Take class and assertion_code
4020 arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
4021 (can_widen_reference_to): Use new add_type_assertion() arguments.
4022 * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
4023 JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
4024 (verify_identifier_node): Removed.
4025 (assertion_entry_type, assertion_table_type): New.
4026 (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
4027 assertion code definitions.
4028 (struct type_assertion): Add assertion_code. Rename 'source_type' and
4029 'target_type' to 'op1' and 'op2'.
4030 (add_type_assertion): Declare.
4031 (lang_printable_name_wls): Remove unused definition.
4032 * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
4033 to emit runtime assertion.
4034 (vfy_note_stack_type): Clean up non-C90 declarations.
4035 (vfy_note_local_type): Likewise.
4036 * verify.h (vfy_is_assignable_from): Declare.
4037 * verify-impl.c (is_assignable_from_slow): Remove unused function.
4038 (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
4039 instead of is_assignable_from_slow().
4040 (types_compatible): Reinstate ref_compatible() call.
4041
4042 2004-11-04 Tom Tromey <tromey@redhat.com>
4043
4044 * class.c (build_static_field_ref): Reverted previous patch.
4045
4046 * class.c (build_static_field_ref): Don't emit direct references
4047 when using indirect dispatch.
4048
4049 2004-11-03 Tom Tromey <tromey@redhat.com>
4050
4051 * expr.c (expand_java_arrayload): Set lhs_type_node.
4052 (expand_java_arraystore): Set rhs_type_node.
4053
4054 2004-11-02 Tom Tromey <tromey@redhat.com>
4055
4056 * jcf-parse.c (compute_class_name): Use filename length from zip
4057 directory, not strlen.
4058
4059 * expr.c (expand_invoke): Mark new interface methods as abstract.
4060
4061 2004-11-01 Tom Tromey <tromey@redhat.com>
4062
4063 * verify-impl.c (push_jump): Removed check for uninitialized
4064 objects.
4065 (push_exception_jump): Likewise.
4066 (handle_ret_insn): Likewise.
4067 (handle_jsr_insn): Likewise.
4068 (state_check_no_uninitialized_objects): Removed.
4069
4070 * decl.c (check_local_unnamed_variable): Recognize
4071 promoted-to-int parameters when using the new verifier.
4072 * expr.c (expand_java_arraystore): Explicitly request array type
4073 when using new verifier.
4074 (expand_java_arrayload): Likewise.
4075 (invoke_build_dtable): Don't pass object_type_node as
4076 expression argument to build_java_indirect_ref.
4077 (build_java_check_indexed_type): Do nothing.
4078 (build_java_arraystore_check): Handle case where array doesn't
4079 have array type.
4080 (build_java_array_length_access): Likewise.
4081 (expand_invoke): Handle case where interface overrides a method
4082 from Object.
4083 (pop_type_0): Always succeed for reference types.
4084 (process_jvm_instruction): Don't pop a value in a dead
4085 exception handler.
4086 (pop_arguments): Convert arguments to correct types.
4087
4088 2004-10-29 Andrew Haley <aph@redhat.com>
4089
4090 * jcf-parse.c (give_name_to_class): Remove line that was
4091 incorrectly merged.
4092
4093 2004-10-29 Andrew Haley <aph@redhat.com>
4094
4095 * jcf-parse.c (set_source_filename): Add code to build new sfname.
4096
4097 2004-10-20 Andrew Haley <aph@redhat.com>
4098
4099 * decl.c (end_java_method): Don't expand if flag_syntax_only.
4100
4101 2004-10-26 Tom Tromey <tromey@redhat.com>
4102
4103 * verify.h (vfy_notify_verified): Removed.
4104 * verify-glue.c (vfy_notify_verified): Removed.
4105
4106 2004-10-26 Tom Tromey <tromey@redhat.com>
4107
4108 * verify-impl.c (debug_print_state): Declare `i' before code.
4109 (merge_types): Modify `t' when it is null_type.
4110
4111 2004-10-26 Tom Tromey <tromey@redhat.com>
4112
4113 * verify-impl.c (type_print): Renamed from print. Now static and
4114 takes an argument.
4115 (debug_print_state): Use type_print.
4116
4117 2004-10-25 Tom Tromey <tromey@redhat.com>
4118
4119 * expr.c (build_invokeinterface): Compute correct offset for
4120 index into interface methods.
4121
4122 2004-10-20 Tom Tromey <tromey@redhat.com>
4123
4124 * java-tree.h (verify_jvm_instructions_new): Declare.
4125
4126 * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
4127 command line.
4128
4129 * verify-impl.c (verify_instructions): Correctly handle wide
4130 types on the stack.
4131 * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
4132 (vfy_get_component_type): Strip pointer types.
4133 (vfy_find_class): Use get_type_from_signature. Strip pointer
4134 types.
4135 Include java-except.h.
4136
4137 2004-10-20 Bryce McKinlay <mckinlay@redhat.com>
4138
4139 * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
4140 vfy_push_type_t, set_variable, add_new_state, merge_into,
4141 handle_jsr_insn, branch_prepass, check_class_constant,
4142 check_wide_constant, get_one_type, compute_static_types,
4143 verify_instructions_0): Clean up C99 declarations after statements.
4144
4145 2004-10-20 Tom Tromey <tromey@redhat.com>
4146
4147 * verify-impl.c (merge_refs): Compare reference against iterator,
4148 not ref2.
4149
4150 * verify-glue.c (vfy_tag): Mask off resolved flag.
4151
4152 2004-10-19 Tom Tromey <tromey@redhat.com>
4153
4154 * verify-impl.c (verify_instructions): Call vfy_note_local_type.
4155 (init_state_with_stack): Initialize `this_type' in state.
4156 (verify_method): Use debug_print.
4157 * verify-glue.c (vfy_is_primitive): Removed debugging print.
4158 (vfy_note_stack_depth): Reverted last patch.
4159 (vfy_note_stack_type): Note pointer to Object, not Object.
4160 (vfy_note_local_type): Likewise.
4161
4162 * verify.h (vfy_note_instruction_seen): Declare.
4163 * verify-glue.c (verify_jvm_instructions_new): Set
4164 BCODE_EXCEPTION_TARGET on target instruction.
4165 (vfy_note_instruction_seen): New function.
4166 * verify-impl.c (FLAG_INSN_SEEN): New define.
4167 (verify_instructions_0): Set flag on instruction. Save state for
4168 PC=0 later.
4169 (verify_instructions): Call vfy_note_instruction_seen.
4170
4171 * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
4172 (verify_jvm_instructions_new): Call method_init_exceptions,
4173 add_handler, and handle_nested_ranges.
4174 * verify-impl.c (verify_method): Return 1 on success.
4175 (verify_instructions_0): Save the state at PC=0.
4176
4177 * verify-impl.c (init_type_from_class): Set is_resolved and
4178 ref_next on new ref_intersection.
4179 (init_type_from_string): Likewise.
4180
4181 2004-10-15 Bryce McKinlay <mckinlay@redhat.com>
4182
4183 * expr.c (expand_bytecode): Use verify_jvm_instructions_new
4184 if flag_new_verifier is set.
4185 * java-tree.h (flag_new_verifier): Declare.
4186 * lang.opt (fnew-verifier): New option.
4187 * verify-impl.c: Work around namespace pollution by undef'ing
4188 'current_class'.
4189 (struct verifier_context): Make 'bytecode' const.
4190 (verify_fail_pc): Pass -1 PC argument to vfy_fail.
4191 (types_compatible): For the BC-ABI, always consider reference types
4192 compatible.
4193 (check_class_constant): Use vfr->current_class.
4194 (check_constant): Likewise.
4195 (check_wide_constant): Likewise.
4196 (check_field_constant): Check for 'L' at start of type name.
4197 (get_one_type): Return pointer instead of type. Set type result in
4198 caller via passed type pointer.
4199 (compute_argument_types): Update to use new get_one_type arguments.
4200 (compute_return_type): Likewise.
4201 (make_verifier_context): New. Allocate and initialize 'vfr'.
4202 (free_verifier_context): New. Free 'vfr' and its contents.
4203 (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
4204 and free_verifier_context.
4205
4206 2004-10-15 Tom Tromey <tromey@redhat.com>
4207
4208 * verify-glue.c (vfy_note_local_type): Mark argument as unused.
4209 * verify.h (vfy_fail): Fixed formatting.
4210
4211 * verify-impl.c (vfr): Fixed comment formatting.
4212 (collapse_type): New function.
4213 (verify_instructions): Notify compiler about type map.
4214 * verify.h (vfy_note_stack_depth): Updated.
4215 (vfy_note_stack_type): Likewise.
4216 (vfy_note_local_type): Likewise.
4217 (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
4218 Declare.
4219 * verify-glue.c (vfy_note_stack_depth): Correctly size type
4220 state. Added `method' argument.
4221 (vfy_note_stack_type): Renamed from vfy_note_type. Added `method'
4222 argument.
4223 (vfy_note_local_type): New function.
4224 (vfy_unsuitable_type): Likewise.
4225 (vfy_return_address_type): Likewise.
4226 (vfy_null_type): Likewise.
4227
4228 * verify.h (VFY_IN_GCC): Removed.
4229 (VFY_WANT_TYPEMAP): Removed.
4230 * verify-impl.c (verify_instructions_0): Removed useless "\".
4231 (struct state) <next>: Uncomment.
4232
4233 2004-10-13 Bryce McKinlay <mckinlay@redhat.com>
4234
4235 * verify-impl.c: Formatting fixes. Reformat C++-style comments to
4236 C-style.
4237
4238 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
4239
4240 * Make-lang.in (verify.o): Re-enabled this target.
4241 * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
4242 (vfy_get_interface): Likewise.
4243 (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
4244 * verify.h (verify_jvm_instructions_new): Declare.
4245 * verify-impl.c (free_state): Temporarily comment out unused
4246 function.
4247
4248 2004-10-06 Tom Tromey <tromey@redhat.com>
4249
4250 * java-tree.h (JV_STATE_READ): New enum value.
4251
4252 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
4253
4254 * verify.h: New file.
4255
4256 2004-10-05 Bryce McKinlay <mckinlay@redhat.com>
4257
4258 * verify-impl.c, verify-glue.c, verify.h: New files.
4259 * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
4260
4261 2004-09-24 Andrew Haley <aph@redhat.com>
4262
4263 * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
4264 for a slot if it's of pointer type.
4265
4266 2004-09-14 Tom Tromey <tromey@redhat.com>
4267
4268 * class.c (make_class_data): Correctly initialize "state" field.
4269 Initialize "engine" field.
4270 * decl.c (java_init_decl_processing): Add "engine" field.
4271
4272 2004-09-10 Andrew Haley <aph@redhat.com>
4273
4274 PR java/12760
4275 * expr.c (build_invokeinterface): Use fast method for interface
4276 dispatch.
4277 * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
4278 JTI_ITABLE_PTR_TYPE.
4279 (struct lang_type): Add itable_methods, itable_decl, itable_syms_decl.
4280 (emit_symbol_table): Add new arg, element_size.
4281 * decl.c (java_init_decl_processing): Initialize Class.itable.
4282 * class.c (GEN_TABLE): New macro.
4283 (gen_indirect_dispatch_tables): Use it. Add itable.
4284 (make_class_data): Add new arg for emit_symbol_table().
4285 Emit itable.
4286 (add_miranda_methods): Make sure search_class has been parsed.
4287 (emit_symbol_table): Add new arg, element_size.
4288
4289 2004-09-06 Andrew Haley <aph@redhat.com>
4290
4291 * verify.c (merge_types): Return Object for all merges of
4292 interfaces.
4293 * expr.c (add_type_assertion): Don't generate assertions when
4294 source type is array of Object.
4295
4296 2004-09-03 Andrew Haley <aph@redhat.com>
4297
4298 * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
4299
4300 * lang.c (java_post_options): Force flag_verify_invocations if
4301 we're not using indirect dispatch.
4302
4303 * expr.c (pop_type_0): Move test for interfaces before call to
4304 can_widen_reference_to().
4305 (build_signature_for_libgcj): Remove generation of canonical array
4306 type.
4307 (add_type_assertion): Canonicalize both arrays.
4308 Don't assert that type X can be assigned to Object.
4309 Don't assert that type X an be assigned to type X.
4310 Don't assert that Object can be assigned to type X.
4311 (can_widen_reference_to): Warn whenever we generate an assertion.
4312 (process_jvm_instruction): Use throwable_type_node for the type of
4313 an exception class.
4314
4315 2004-09-01 Andrew Haley <aph@redhat.com>
4316
4317 * decl.c (java_init_decl_processing): Change
4318 verify_identifier_node to "__verify".
4319 * expr.c (add_type_assertion): Use verify_identifier_node for name.
4320 * java-tree.h (verify_identifier_node): Change to "__verify".
4321
4322 * expr.c (build_signature_for_libgcj): New function.
4323 (add_type_assertion): Use it to construct signatures for
4324 source_type and target_type.
4325
4326 2004-08-27 Andrew Haley <aph@redhat.com>
4327
4328 * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
4329 (verify_identifier_node): New.
4330 (TYPE_VERIFY_METHOD): New.
4331 (struct type_assertion): New type.
4332 * expr.c (type_assertion_eq): New function.
4333 (type_assertion_hash): New function.
4334 (add_type_assertion): New function.
4335 (can_widen_reference_to): Call add_type_assertion().
4336 * decl.c (java_init_decl_processing): Add verify_identifier_node.
4337 * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
4338 (finish_class): Output TYPE_VERIFY_METHOD (type).
4339
4340 * decl.c (end_java_method): Nullify unused fields.
4341
4342 2004-08-17 Andrew Haley <aph@redhat.com>
4343
4344 * verify.c (defer_merging): Quieten.
4345 * jcf-parse.c (load_class): Only try to open a class file if it's
4346 java.lang.Object or if it's part of the current compilation.
4347 Check that the class we just tried to load is the class we just
4348 loaded. Quieten.
4349 (java_parse_file): Set flag_verify_invocations off if we're
4350 compiling from .class.
4351 (parse_zip_file_entries): Abort if we try to read a dummy class.
4352 * expr.c (can_widen_reference_to): Quieten.
4353 (build_invokevirtual): Abort if we try to invokevirtual an
4354 interface.
4355 (expand_invoke): Don't build a non-interface call to an interface.
4356 (build_instanceof): Don't do premature optimization if
4357 flag_verify_invocations is not set.
4358 * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
4359 from superclass.
4360 (build_static_field_ref): Add correct type conversion for
4361 field_address.
4362 (add_miranda_methods): Disable generation of Miranda methods for
4363 dummy classes.
4364 (layout_class_method): Don't complain about non-static method
4365 overrides static method with dummy classes.
4366
4367 2004-08-13 Tom Tromey <tromey@redhat.com>
4368
4369 * class.c (build_static_field_ref): Re-enable atable lookups for
4370 static fields.
4371
4372 * parse.y (strip_out_static_field_access_decl): Indentation fix.
4373
4374 2004-08-11 Tom Tromey <tromey@redhat.com>
4375
4376 * gcj.texi (libgcj Runtime Properties): Document new properties.
4377
4378 2004-08-06 Andrew Haley <aph@redhat.com>
4379
4380 * jcf-parse.c (load_class): Check that we really have loaded the
4381 class we're looking for.
4382
4383 2004-07-19 Andrew Haley <aph@redhat.com>
4384
4385 * verify.c (verify_jvm_instructions): Comment change only.
4386
4387 * typeck.c (build_java_array_type): Add size field to array name.
4388
4389 * java-tree.h (LOCAL_SLOT_P): New.
4390 (update_aliases): Add PC argument.
4391 (pushdecl_function_level): New function.
4392
4393 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
4394 MODIFY_EXPR, and SAVE_EXPR.
4395 (java_gimplify_modify_expr): New function.
4396
4397 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
4398 (expand_iinc): Pass PC to update_aliases().
4399 (STORE_INTERNAL): Likewise.
4400 (process_jvm_instruction): Likewise.
4401
4402 * decl.c (base_decl_map): New variable.
4403 (uniq): New variable.
4404 (update_aliases): Rewrite with more thorough checking.
4405 (debug_variable_p): New function.
4406 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
4407 (check_local_named_variable): Delete whole function.
4408 (initialize_local_variable): New function.
4409 (check_local_unnamed_variable): Add checks and comments.
4410 (find_local_variable): Rewrite.
4411 (java_replace_reference): New function.
4412 (function_binding_level): New variable.
4413 (pushdecl_function_level): New function.
4414 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
4415 (maybe_pushlevels): Call pushdecl() on each of the new decls.
4416 (start_java_method): Reset uniq. Create base_decl_map. Set
4417 function_binding_level.
4418 (end_java_method): Null unused fields to save memory.
4419
4420 2004-06-29 Andrew Haley <aph@redhat.com>
4421
4422 * except.c (expand_start_java_handler): Push a new binding level.
4423 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
4424 register_exception_range() to register where we'll do it.
4425 (expand_end_java_handler): Remove old bogus code. Replace with
4426 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
4427 the top of the expression we're curently building.
4428 (maybe_end_try): Delete.
4429 * decl.c (binding_level.exception_range): New field.
4430 (clear_binding_level): Add field exception_range. Reformat.
4431 (poplevel): Call expand_end_java_handler().
4432 (poplevel): Call java_add_stmt only if functionbody is false.
4433 (maybe_poplevels): Don't call maybe_end_try() from here.
4434 (end_java_method): Clear no longer used trees in function decl.
4435 (register_exception_range): New function.
4436 * java-tree.h (register_exception_range, struct eh_range): Declare.
4437
4438 2004-06-22 Andrew Haley <aph@redhat.com>
4439
4440 * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
4441 the otable.
4442 * check-init.c (get_variable_decl): Teach check-init about
4443 FIELD_DECLs addressed via the otable.
4444 * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
4445 CLASS_PARSED_P.
4446
4447 2004-05-28 Andrew Haley <aph@redhat.com>
4448
4449 * jcf-parse.c (load_class): Don't try to read a class that we've
4450 already read.
4451
4452 * expr.c (build_invokeinterface): Use the old-fashioned way of
4453 doing indirect dispatch: look up interfaces by name.
4454 * java-tree.h (enum java_tree_index): Add
4455 JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
4456 * decl.c (java_init_decl_processing): Add
4457 soft_lookupinterfacemethodbyname_node.
4458
4459 * gjavah.c (print_method_info): Final methods have vtable entries,
4460 so gjavah needs to output them.
4461 * class.c (layout_class_method): Generate vtable entries for final
4462 methods.
4463 * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
4464 dispatch, even if a method is final.
4465
4466 2004-05-25 Andrew Haley <aph@redhat.com>
4467
4468 * class.c (build_symbol_entry): Convert the names of constructors
4469 to init_identifier_node when generating an entry for the indirect
4470 dispatch table.
4471
4472 * expr.c (build_known_method_ref): Generate indirect calls for
4473 all methods marked DECL_EXTERNAL or TREE_PUBLIC.
4474
4475 2004-05-24 Andrew Haley <aph@redhat.com>
4476
4477 * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
4478 atable element is of the right type.
4479
4480 * class.c (build_static_field_ref): Cast pointer to correct type
4481 for field.
4482
4483 2004-04-20 Bryce McKinlay <mckinlay@redhat.com>
4484
4485 * Merged with HEAD as of 20040514. Diff against
4486 gcj-abi-2-merge-20040514.
4487
4488 2004-04-16 Andrew Haley <aph@redhat.com>
4489
4490 * verify.c (check_pending_block): Disable subroutine checks.
4491 (defer_merging): New function.
4492 (merge_types): If types are dummy, use defer_merging to combine them.
4493 (verify_jvm_instructions): If invocation is invokeinterface and
4494 target is dummy, assume target really is an interface.
4495
4496 * parse.y (patch_invoke): Break out call to java_create_object.
4497
4498 * lang.c (flag_verify_invocations): New.
4499
4500 * jcf-parse.c (load_class): If we've already failed to load a
4501 class, don't try again.
4502 (load_class): If we can't find a .class file, don't fail, but emit
4503 a warning.
4504 (parse_class_file): Don't act on dummy methods.
4505
4506 * java-tree.h (flag_verify_invocations): New.
4507 (TYPE_DUMMY): New.
4508 (lang_type.dummy_class): New field.
4509 (java_create_object): New function.
4510 (METHOD_DUMMY): New.
4511
4512 * expr.c (build_field_ref): Widen field offset.
4513 (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
4514 that each of its elements is compatible with the one we're
4515 popping.
4516 (pop_type_0): Issue a warning to say that we need to generate a
4517 runtime check.
4518 (java_create_object): New function.
4519 (build_field_ref): Only generate hard refs if we're not using
4520 indirect dispatch.
4521 (expand_java_field_op): If we're using !verify_invocations and we
4522 see a missing field, generate a decl for it.
4523
4524 (expand_invoke): If a class doesn't have the method we seek and
4525 we're using !flag_verify_invocations, generate a decl for the
4526 method now.
4527
4528 (build_known_method_ref): Always use indirect dispatch via the
4529 atable for static methods.
4530
4531 (expand_java_NEW): Break out object creation into new function,
4532 java_create_object.
4533
4534 (can_widen_reference_to): Issue a warning to say that we need to
4535 generate a runtime check.
4536
4537 * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
4538 (make_method_value): Also use index for interfaces.
4539 (make_class_data): Skip dummy field for inherited data.
4540 Don't build method array for dummy methods.
4541 Set size_in_byte to -1 when using inirect dispatch
4542 Don't build a hard class ref if we don't have a hard ref to our
4543 superclass, or if we're using inirect dispatch.
4544 Null out dispatch tables.
4545
4546 (layout_class_method): Don't complain about non-static method
4547 overrides static method is method is artificial.
4548
4549 (build_static_field_ref): Disable atable references to static
4550 fields for the time being.
4551
4552 (layout_class_methods): Check for CLASS_INTERFACE as
4553 well as CLASS_ABSTRACT.
4554
4555 2004-11-24 Steven Bosscher <stevenb@suse.de>
4556
4557 * class.c (make_class_data): Don't check flag_inline_functions.
4558 * lang.c (flag_really_inline): Remove unused flag.
4559 (java_handle_option): Don't set it here. Remove special handling
4560 of flag_inline_functions for Java.
4561 (java_init): Don't set flag_inline_trees here. Already done...
4562 (java_post_options): ...here. Don't clear flag_inline_functions.
4563
4564 2004-11-24 Steven Bosscher <stevenb@suse.de>
4565
4566 * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
4567 (java_gimplify_exit_block_expr): New function.
4568 (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
4569 LABELED_BLOCK_EXPR.
4570 * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
4571 (EXIT_BLOCK_EXPR): Likewise.
4572 * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
4573 (LABELED_BLOCK_BODY): Likewise.
4574 (EXIT_BLOCK_LABELED_BLOCK): Likewise.
4575 * jcf-write.c (generate_bytecode_insns): Don't handle the unused
4576 EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of
4577 TREE_OPERAND.
4578 * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
4579 (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
4580 EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the
4581 second operand of EXIT_BLOCK_EXPR.
4582 * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
4583 TREE_OPERAND.
4584 (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
4585
4586 2004-11-23 Ben Elliston <bje@au.ibm.com>
4587
4588 * xref.h (xref_flag_value): Remove.
4589 (xref_set_data, xref_get_data): Likewise.
4590 (xref_set_current_fp): Likewise.
4591 (XREF_NONE): Likewise.
4592 (XREF_GET_DATA): Likewise.
4593 * xref.c (xref_flag_value): Remove.
4594 (xref_set_data, xref_get_data): Likewise.
4595 (xref_set_current_fp): Likewise.
4596
4597 2004-11-23 Ben Elliston <bje@au.ibm.com>
4598
4599 * gjavah.c (output_directory): Make static.
4600 (temp_directory): Likewise.
4601
4602 2004-11-15 Tom Tromey <tromey@redhat.com>
4603
4604 * decl.c (instn_ptr_type_node): Removed.
4605 (lineNumbers_ptr_type_node): Removed.
4606 (jint_type): Removed.
4607 (jint_ptr_type): Removed.
4608
4609 2004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
4610
4611 PR java/15576
4612 * check-init.c (check_init): Ignore DECL_EXPR.
4613 * expr.c (always_initialize_class_p): Reenable.
4614 (build_class_init): Use a variable to store the decl. Also use
4615 boolean_false_node instead of integer_zero_node.
4616 * parse.y (attach_init_test_initialization_flags): Add a decl_expr
4617 to the block.
4618
4619 2004-11-08 Tom Tromey <tromey@redhat.com>
4620
4621 PR java/16843:
4622 * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
4623 generating a JNI header.
4624 (print_field_info): Handle JNI headers.
4625 (jni_print_float): Likewise.
4626 (jni_print_double): Likewise.
4627
4628 2004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
4629
4630 * decl.c (end_java_method): Remove duplicated code.
4631
4632 2004-11-06 Zack Weinberg <zack@codesourcery.com>
4633 Gerald Pfeifer <gerald@pfeifer.com>
4634
4635 * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
4636 as well.
4637
4638 2004-11-02 Bryce McKinlay <mckinlay@redhat.com>
4639
4640 PR java/17265
4641 * class.c: Reinstate 2004-08-18 patch.
4642 (make_local_function_alias): Don't create an alias for extern (native)
4643 functions.
4644
4645 2004-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
4646
4647 PR java/17265
4648 * class.c (make_local_function_alias): Revert 2004-08-18 change.
4649 (make_method_value): Likewise.
4650
4651 2004-10-21 Andrew Haley <aph@redhat.com>
4652
4653 PR java/18091:
4654 * jcf-parse.c (set_source_filename): Add code to build new sfname.
4655
4656 2004-10-20 Andrew Haley <aph@redhat.com>
4657
4658 * decl.c (end_java_method): Don't expand if flag_syntax_only.
4659 Remove duplicated code block.
4660
4661 2004-10-18 Steven Bosscher <stevenb@suse.de>
4662
4663 * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
4664 New rules to work around old Bison warnings.
4665
4666 2004-10-17 Steven Bosscher <stevenb@suse.de>
4667
4668 * class.c (ident_subst): Always alloca buffer.
4669 * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
4670 opcode after including javaop.def.
4671 * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
4672 conditional expression that exits, to avoid warnings.
4673 * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
4674 a user of an extension.
4675 * win32-host.c: Move check down to have non-empty file when
4676 WIN32 is not defined.
4677
4678 * Make-lang.in (java-warn): Add STRICT_WARN.
4679 (java/jcf-io.o-warn): Don't have Werror for this file.
4680 * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
4681
4682 2004-10-16 Hans-Peter Nilsson <hp@bitrange.com>
4683
4684 * expr.c (expr_add_location): Move declaration to before all
4685 statements.
4686 * parse.y (java_expand_classes): Ditto.
4687 * lex.c (java_peek_unicode): Ditto.
4688
4689 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
4690
4691 * check-init.c: Use %<, %> and %q for quoting in diagnostics,
4692 if possible, else convert `foo' to 'foo'.
4693 * class.c: Likewise.
4694 * decl.c: Likewise.
4695 * expr.c: Likewise.
4696 * jcf-io.c: Likewise.
4697 * jcf-parse.c: Likewise.
4698 * lang.c: Likewise.
4699 * lex.c: Likewise.
4700 * parse.h: Likewise.
4701
4702 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
4703
4704 * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
4705 rename parameter 'msg' to 'msgid' in function declaration.
4706 (issue_warning_error_from_context): Likewise.
4707 (yyerror): Rename parameter 'msg' to 'msgid'.
4708 (all over): Use new quoting style for diagnostics.
4709
4710 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
4711
4712 * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
4713 jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
4714 Update copyright.
4715
4716 2004-10-14 Matt Austern <austern@apple.com>
4717
4718 * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
4719 pointer_set_t* now.
4720
4721 2004-10-13 Tom Tromey <tromey@redhat.com>
4722
4723 PR java/15578:
4724 * lang.opt (--extdirs): Document.
4725 * jvspec.c (lang_specific_driver): Recognize -encoding and
4726 -extdirs.
4727
4728 2004-10-06 Ulrich Weigand <uweigand@de.ibm.com>
4729
4730 * parse.y (issue_warning_error_from_context): Use va_list *
4731 instead of va_list parameter.
4732 (parse_error_context): Update call.
4733 (parse_warning_context): Likewise.
4734
4735 2004-10-05 Zack Weinberg <zack@codesourcery.com>
4736
4737 * parse.y, parse-scan.y: Add list of diagnostic messages to
4738 insulate translation template from version of yacc/bison used
4739 to compile the grammar.
4740
4741 2004-10-05 Ranjit Mathew <rmathew@hotmail.com>
4742
4743 Prepare for %q, %< and %> in diagnostic message strings.
4744 * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
4745 Name second parameter 'msgid'.
4746 * parse.y: Additionally include pretty-print.h and diagnostic.h.
4747 (issue_warning_error_from_context): Use pretty-printer functions
4748 instead of vsprintf for constructing formatted messages. Rename
4749 parameter 'msg' to 'msgid'.
4750 (parse_error_context): Rename parameter 'msg' to 'msgid'.
4751 (parse_warning_context): Likewise.
4752
4753 2004-10-05 Andrew Haley <aph@redhat.com>
4754
4755 PR java/17779
4756 * jcf-parse.c (parse_zip_file_entries): If a class has a
4757 superclass and a TYPE_SIZE of zero, lay it out.
4758
4759 2004-09-30 Andrew Haley <aph@redhat.com>
4760
4761 PR java/17733
4762 * jcf-parse.c (compute_class_name): Rewrite.
4763
4764 2004-10-01 Jan Hubicka <jh@suse.cz>
4765
4766 * java.c (java_expand_body): Update call of tree_rest_of_compilation.
4767
4768 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
4769
4770 * lex.c: Fix a comment typo.
4771
4772 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
4773
4774 * java-tree.h: Fix a comment typo.
4775
4776 2004-09-30 Per Bothner <per@bothner.com>
4777
4778 Simplify lexer. Implement --enable-mapped-location support.
4779 * jcf-parse.c (parse_class_file): Use linemap_line_start.
4780 (parse_source_file_1): Pass filename as extra parameter, so we can call
4781 linemap_add and set input_location here, rather than in both callers.
4782 (read_class): Pass copied filename to parse_source_file_1.
4783 Don't initialize wfl_operator - only needed for source compilation.
4784 (read_class, jcf_parse): Call linemap_add with LC_LEAVE.
4785 * lex.h: Remove a bunch of debugging macros.
4786 * lex.h (struct_java_line, struct java_error): Remove types.
4787 (JAVA_COLUMN_DELTA): Remove - use java_lexer.next_colums instead.
4788 (struct java_lc_s): Remove prev_col field.
4789 (struct java_lexer): New fields next_unicode, next_columns, and
4790 avail_unicode. New position field, and maybe token_start field.
4791 Don't need hit_eof field - use next_unicode == -1 instead.
4792 (JAVA_INTEGERAL_RANGE_ERROR): Rename to JAVA_RANGE_ERROR.
4793 (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR): Update accordingly.
4794 * parse.h: Various changes for USE_MAPPED_LOCATION.
4795 (EXPR_WFL_EMIT_LINE_NOTE): XXX
4796 (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
4797 (struct parser_ctxt): New file_start_location field.
4798 Remove p_line, c_line fields since we no longer save lines.
4799 Remove elc, lineno, and current_jcf fields - no longer used.
4800 * parse.y: Updates for USE_MAPPED_LOCATION and new lexer.
4801 Don't use EXPR_WFL_ADD_COL since that isn't trivial with
4802 source_location and is probably not needed anymore anyway.
4803 Use new expr_add_Location function.
4804 (SET_EXPR_LOCATION_FROM_TOKEN): New convenience macro.
4805 (java_pop_parser_context): Minor cleanup.
4806 (java_parser_context_save_global, java_parser_context_restore_global,
4807 java_pop_parser_context): Save/restore input_location as a unit.
4808 (issue_warning_error_from_context): If USE_MAPPED_LOCATION take
4809 a source_location instead of a wfl context node.
4810 (check_class_interface_creation): input_filename is not addressable.
4811 (create_artificial_method): Calling java_parser_context_save_global
4812 and java_parser_context_restore_global is overkill. Instead,
4813 temporarily set input_location from class decl.
4814 (java_layout_seen_class_methods): Set input_location from method decl.
4815 (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
4816 (finish_loop_body): Likewise.
4817 * lex.c: Updates for USE_MAPPED_LOCATION. Use build_unknwon_wfl.
4818 (java_sprint_unicode): Take a character, not index in line.
4819 (java_sneak_uncode): Replaced by java_peek_unicode.
4820 (java_unget_unicode): No longer used.
4821 (java_allocate_new_line. java_store_unicode): Removed, since we
4822 no longer remember "lines".
4823 (java_new_lexer): Update for new data structures.
4824 (java_read_char): Move unget_value checking to java_read_unicode.
4825 (java_get_unicode, java_peek_unicode, java_next_unicode): New more
4826 efficient functions that are used directly when lexing.
4827 (java_read_unicode_collapsing_terminators): No longer needed.
4828 (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
4829 Re-organize to use java_peek_unicode to avoid java_unget_unicode.
4830 (java_parse_escape_sequence): Rewrite to be simpler / more efficient.
4831 (do_java_lex): Lots of movings around to avoid java_unget_unicode,
4832 combine switch branches, and test for common token kinds earlier.
4833 (java_lex_error): Rewrite.
4834 * jv-scan.c (expand_location): New function, copied from tree.c.
4835 (main): Set ctxp->filename instead of setting input_filename directly.
4836
4837 2004-09-30 Per Bothner <per@bothner.com>
4838
4839 More cleanup for --enable-mapped-location.
4840 * class.c (push_class): If USE_MAPPED_LOCATION don't set
4841 input_location here. Instead do it in give_name_to_class.
4842 (build_class_ref): Set DECL_ARTIFICIAL, for the sake of dwarf2out.
4843 * expr.c (expand_byte_code): Call linemap_line_start.
4844 * expr.c (build_expr_wfl): If USE_MAPPED_LOCATION, change final
4845 parameters to a source_location. Don't need EXPR_WFL_FILENAME_NODE.
4846 (expr_add_location): New function, if USE_MAPPED_LOCATION.
4847 * class.c (maybe_layout_super_class): Adjust build_expr_wfl call
4848 to USE_MAPPED_LOCATION case.
4849
4850 * java-tree.h (JAVA_FILE_P, ZIP_FILE_P): Remove unused macros.
4851 * jcf-parse.c (java_parse_file): Don't set input_filename.
4852 Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
4853 Create a list of TRANSLATION_UNIT_DECL.
4854 (current_file_list): Is now a TRANSLATION_UNIT_DECL chain. The
4855 reason is so we can set a DECL_SOURCE_LOCATION for each file.
4856 (java_parse_file): Don't set unused ZIP_FILE_P, JAVA_FILE_P..
4857 Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
4858 (file_start_location): New static.
4859 (set_source_filename): Avoid extra access to input_filename macro.
4860 Concatenate new name with class's package prefix.
4861 (set_source_filename, give_name_to_class): Update.
4862 (give_name_to_class): Set class's "line 0" input_location here.
4863 (parse_class_file): Set input_location as a unit.
4864
4865 * jcf-parse.c (load_class): Sanity test if missing inner class file.
4866
4867 2004-09-29 Per Bothner <per@bothner.com>
4868
4869 * java-tree.h: Redefine some macros and add some declaration
4870 to handle the USE_MAPPED_LOCATION case.
4871 * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2.
4872 * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1.
4873 * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
4874 USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
4875
4876 * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
4877 * decl.c (finish_method, java_add_stmt): Likewise.
4878 * java-gimplify.c (java-gimplify.c): Likewise.
4879 * jcf-write.c (generate_bytecode_insns): Likewise.
4880 * lang.c (java_post_options): Likewise - call linemap_add.
4881
4882 2004-09-29 Andrew Haley <aph@redhat.com>
4883
4884 PR java/17007
4885 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
4886 result of TRUNC_MOD_EXPR.
4887 (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
4888 * decl.c (java_init_decl_processing): Mark
4889 soft_lookupinterfacemethod_node and soft_instanceof_node pure.
4890
4891 2004-09-28 Tom Tromey <tromey@redhat.com>
4892
4893 PR java/15710:
4894 * class.c (add_miranda_methods): Load superinterface if not
4895 already loaded.
4896
4897 2004-09-28 Andrew Haley <aph@redhat.com>
4898
4899 PR java/17586
4900 * jcf-parse.c (load_class): Don't try to read a class that we've
4901 already read.
4902
4903 2004-09-28 Andrew Haley <aph@redhat.com>
4904
4905 * jcf-parse.c (load_class): Back out previous broken patch.
4906
4907 2004-09-28 Andrew Haley <aph@redhat.com>
4908
4909 PR java/17586
4910 * jcf-parse.c (load_class): Don't try to read a class that we've
4911 already read.
4912 Check that we really did read the right class.
4913
4914 2004-09-25 Tom Tromey <tromey@redhat.com>
4915
4916 PR java/17500:
4917 * parse.y (create_artificial_method): Use add_method_1.
4918
4919 2004-09-25 Kazu Hirata <kazu@cs.umass.edu>
4920
4921 * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
4922 comment typos.
4923 * gcj.texi: Fix typos.
4924
4925 2004-09-24 Tom Tromey <tromey@redhat.com>
4926
4927 PR java/15656:
4928 * parse.y (class_instance_creation_expression): Set `$$' to NULL
4929 in error parts of rule.
4930 (unary_expression): Don't call error_if_numeric_overflow when $1
4931 is NULL.
4932
4933 2004-09-24 Tom Tromey <tromey@redhat.com>
4934
4935 PR java/16789:
4936 * parse.y (resolve_qualified_expression_name): Set
4937 CAN_COMPLETE_NORMALLY on first call when chaining static calls.
4938 * expr.c (force_evaluation_order): Check for empty argument list
4939 after stripping COMPOUND_EXPR.
4940
4941 2004-09-23 Andrew Haley <aph@redhat.com>
4942
4943 PR java/16927:
4944 * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
4945 COND_EXPRs.
4946
4947 2004-09-23 Tom Tromey <tromey@redhat.com>
4948
4949 PR java/17329:
4950 * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
4951 where operand is null.
4952
4953 2004-09-23 Tom Tromey <tromey@redhat.com>
4954
4955 PR java/17380:
4956 * parse.y (not_accessible_p): Allow access to protected members
4957 even when class is not static.
4958
4959 2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
4960
4961 * Make-lang.in: Revert the gcc-none.o change.
4962
4963 2004-09-22 Nathan Sidwell <nathan@codesourcery.com>
4964
4965 * parse.y (patch_anonymous_class): VEC_space returns true if there
4966 is space.
4967
4968 2004-09-21 Matt Austern <austern@apple.com>
4969
4970 Fix bootstrap.
4971 * gjavah.c (free_method_name_list): Fix function definition so
4972 it's a proper C prototype.
4973
4974 2004-09-21 Tom Tromey <tromey@redhat.com>
4975
4976 PR java/17575:
4977 * gjavah.c (free_method_name_list): New method.
4978 (main): Call it.
4979
4980 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
4981 Zack Weinberg <zack@codesourcery.com>
4982
4983 * java-tree.def: Use tree_code_class enumeration constants
4984 instead of code letters.
4985 * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
4986 new tree-class enumeration constants.
4987
4988 2004-09-13 Tom Tromey <tromey@redhat.com>
4989
4990 PR java/17216:
4991 * class.c (layout_class_method): Put synthetic methods into the
4992 vtable.
4993
4994 2004-09-11 Andrew Pinski <apinski@apple.com>
4995
4996 * Make-lang.in (java/ggc-none.c): Change dependency
4997 for ggc.h into $(GGC_H).
4998
4999 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
5000
5001 * Make-lang.in (java/win32-host.o): Add dependency on
5002 coretypes.h.
5003 * win32-host.c: Add includes for coretypes.h, jcf.h
5004
5005 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
5006
5007 * Make-lang.in (GCJH_OBJS): Change dependency from
5008 ggc-none.o to java/ggc-none.o
5009 (JCFDUMP_OBJS): Likewise.
5010 (java/ggc-none.o): New target.
5011
5012 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
5013
5014 * boehm.c (get_boehm_type_descriptor): Adjust build_int_cst calls.
5015 * class.c (build_utf8_ref, build_static_field_ref,
5016 make_field_value, make_method_value, get_dispatch_table,
5017 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
5018 * constants.c (get_tag_node, build_ref_from_constant_pool,
5019 build_constants_constructor): Likewise.
5020 * decl.c (java_init_decl_processing): Likewise.
5021 * expr.c (build_java_array_length_access, build_newarray,
5022 expand_java_multianewarray, expand_java_pushc, expand_iinc,
5023 build_java_binop, build_field_ref, expand_java_add_case,
5024 expand_java_call, build_known_method_ref, build_invokevirtual,
5025 build_invokeinterface, build_jni_stub): Likewise.
5026 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5027 * jcf-parse.c (get_constant): Likewise.
5028 * lex.c (do_java_lex): Likewise.
5029 * parse.y (patch_binop, patch_unaryop, patch_cast,
5030 build_newarray_node, patch_newarray): Likewise.
5031 * resource.c (compile_resource_data): Likewise.
5032 * typeck.c (build_prim_array_type): Likewise.
5033
5034 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
5035
5036 * decl.c (java_init_decl_processing): Adjust
5037 initialize_sizetypes call.
5038
5039 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
5040
5041 * jv-scan.c (fancy_abort): Add.
5042
5043 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
5044
5045 * expr.c (build_java_arrayaccess): Use convert to change
5046 len's type.
5047
5048 2004-08-19 Bryce McKinlay <mckinlay@redhat.com>
5049
5050 * class.c (make_local_function_alias): Allocate extra space for 'L'
5051 in name buffer. Reported by Thomas Neumann.
5052
5053 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
5054
5055 * parse.h (JAVA_RADIX10_FLAG): Rename to ...
5056 (JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning.
5057 * lex.c (do_java_lex): Adjust.
5058 (error_if_numeric_overflow): Likewise.
5059
5060 2004-08-18 Andrew Pinski <apinski@apple.com>
5061
5062 * class.c (make_local_function_alias): Only make a new decl if we
5063 support alias attribute on all decls.
5064
5065 2004-08-18 Bryce McKinlay <mckinlay@redhat.com>
5066
5067 * class.c (make_local_function_alias): New function. Create local
5068 alias for public method DECL.
5069 (make_method_value): Use make_local_function_alias.
5070 * parse.y (craft_constructor): Don't special-case anonymous classes.
5071 Always set ctor_name to init_identifier_node.
5072 (lookup_method_invoke): Call layout_class_method when creating
5073 anonymous class constructor.
5074
5075 2004-08-18 Richard Henderson <rth@redhat.com>
5076
5077 * java-gimplify.c (java_gimplify_expr): Move '2' handling into
5078 default case. Treat '<' similarly. Update for
5079 is_gimple_formal_tmp_var name change.
5080
5081 2004-08-17 Andrew Haley <aph@redhat.com>
5082
5083 * lang.c (lang_printable_name): Obey verbose flag.
5084 * parse.y (constructor_circularity_msg): Set VERBOSE arg for
5085 lang_printable_name().
5086 (verify_constructor_circularity, get_printable_method_name,
5087 check_abstract_method_definitions, java_check_regular_methods,
5088 java_check_abstract_methods, check_inner_class_access,
5089 fix_constructors, patch_method_invocation, patch_return):
5090 Likewise.
5091 * expr.c (pop_type_0): Likewise.
5092
5093 * java-tree.h (lang_printable_name_wls): Delete.
5094
5095 2004-08-16 Tom Tromey <tromey@redhat.com>
5096
5097 PR java/8473:
5098 * parse.y (primary): Changed for initialized and uninitialized
5099 array creations.
5100 (array_access): Handle array_creation_initialized.
5101 (array_creation_expression): Split into
5102 array_creation_initialized and array_creation_uninitialized.
5103
5104 2004-08-16 Andrew Haley <aph@redhat.com>
5105
5106 * jcf-write.c (find_constant_index): Canonicalize NaNs when
5107 generating bytecode.
5108
5109 2004-08-16 Elliot Lee <sopwith@redhat.com>
5110
5111 PR java/9677
5112 * jcf-parse.c (java_parse_file): Handle filenames with embedded
5113 spaces, and quoted filelists.
5114
5115 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
5116
5117 * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
5118 * class.c (build_utf8_ref, build_static_field_ref,
5119 make_field_value, make_method_value, get_dispatch_table,
5120 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
5121 * constants.c (get_tag_node, build_ref_from_constant_pool,
5122 build_constants_constructor): Likewise.
5123 * decl.c (java_init_decl_processing): Likewise.
5124 * expr.c (build_java_array_length_access, build_newarray,
5125 expand_java_multianewarray, expand_java_pushc, expand_iinc,
5126 build_java_binop, build_field_ref, expand_java_add_case,
5127 expand_java_call, build_known_method_ref, build_invokevirtual,
5128 build_invokeinterface, build_jni_stub): Likewise.
5129 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5130 * jcf-parse.c (get_constant): Likewise.
5131 * lex.c (do_java_lex): Likewise.
5132 * parse.y (patch_binop, patch_unaryop, patch_cast,
5133 build_null_of_type, patch_newarray): Likewise.
5134 * resource.c (compile_resource_data): Likewise.
5135 * typeck.c (build_prim_array_type): Likewise.
5136
5137 2004-08-10 Bryce McKinlay <mckinlay@redhat.com>
5138
5139 * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
5140 Don't create BLOCK here or call java_gimplify_block.
5141
5142 2004-08-09 H.J. Lu <hongjiu.lu@intel.com>
5143
5144 * java-tree.h (flag_deprecated): Removed.
5145 * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
5146 * parse.y (check_deprecation): Check warn_deprecated instead of
5147 flag_deprecated.
5148
5149 2004-08-06 Kelley Cook <kcook@gcc.gnu.org>
5150
5151 * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
5152 flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
5153 flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
5154 flag_check_references, flag_extraneous_semicolon, flag_deprecated,
5155 flag_force_classes_archive_check, flag_optimize_sci,
5156 flag_indirect_dispatch): Remove explicit declarations.
5157 * lang.opt: Add implicit declare/define/assign. Remove obsolete
5158 final comment.
5159
5160 2004-08-05 Michael Chastain <mec.gnu@mindspring.com>
5161
5162 PR bootstrap/14893
5163 * Make-lang.in (java.install-man): Install from either build
5164 tree or source tree, whichever has the file first.
5165
5166 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
5167
5168 * jcf-parse.c (get_constant): Adjust force_fit_type call.
5169 * lex.h (SET_LVAL_NODE_TYPE): Remove.
5170 * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
5171 (do_java_lex): Likewise. Adjust force_fit_type call.
5172
5173 2004-08-04 Roger Sayle <roger@eyesopen.com>
5174 Andrew Haley <aph@redhat.com>
5175
5176 * typeck.c (convert_ieee_real_to_integer): Call fold on the range
5177 checking trees as they're being built.
5178 (convert): Call convert_ieee_real_to_integer if we're
5179 converting a constant, even if we're writing a class file.
5180
5181 2004-08-02 Bryce McKinlay <mckinlay@redhat.com>
5182
5183 PR java/16701
5184 * parse.y (fold_constant_for_init): Call resolve_field_access with
5185 correct current_class context.
5186
5187 2004-08-01 Roger Sayle <roger@eyesopen.com>
5188
5189 * decl.c (update_aliases, initialize_local_variable): Replace calls
5190 to build with calls to buildN.
5191 * java-gimplify.c (java_gimplify_modify_expr): Likewise.
5192 * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
5193 * parse.h (BUILD_THROW): Likewise.
5194 * parse.y (switch_expression, synchronized_statement,
5195 catch_clause_parameter, array_creation_expression,
5196 conditional_expression, make_qualified_name,
5197 resolve_qualified_expression_name, patch_method_invocation,
5198 patch_invoke, build_method_invocation, build_new_invocation,
5199 build_assignment, patch_assignment, build_binop, patch_binop,
5200 build_string_concatenation, build_incdec, patch_unaryop,
5201 patch_cast, build_array_ref, build_newarray_node, patch_newarray,
5202 patch_return, build_if_else_statement, build_labeled_block,
5203 build_new_loop, build_loop_body, build_bc_statement,
5204 build_assertion, encapsulate_with_try_catch, build_try_statement,
5205 build_try_finally_statement, patch_synchronized_statement,
5206 emit_test_initialization): Likewise, replace build with buildN.
5207
5208 2004-07-28 Eric Christopher <echristo@redhat.com>
5209
5210 * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
5211 (java_unsafe_for_reeval): Ditto.
5212
5213 2004-07-26 <hp@bitrange.com>
5214
5215 * parse.y (build_super_invocation): Adjust declaration order to
5216 avoid declaration after statement.
5217
5218 2004-07-25 Bernardo Innocenti <bernie@develer.com>
5219
5220 * decl.c: Rename all identifiers named `class' to `cl'.
5221
5222 2004-07-25 Richard Henderson <rth@redhat.com>
5223
5224 * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
5225
5226 2004-07-23 Mike Stump <mrs@apple.com>
5227
5228 * boehm.c (set_bit): Improve type safety wrt unsignedness.
5229 * gjavah.c (throwable_p, decode_signature_piece,
5230 print_full_cxx_name, print_include, add_namelet, add_class_decl,
5231 process_file): Likewise.
5232 * jcf-dump.c (main): Likewise.
5233 * jcf-io.c (read_zip_member): Likewise.
5234 * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
5235 give_name_to_class, get_class_constant): Likewise.
5236 * jcf-write.c (find_constant_wide, push_long_const,
5237 generate_classfile): Likewise.
5238 * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
5239 * parse.y (read_import_dir): Likewise.
5240 * typeck.c (parse_signature_type): Likewise.
5241 * verify.c (verify_jvm_instructions): Likewise.
5242 * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
5243
5244 2004-07-23 Thomas Fitzsimmons <fitzsim@redhat.com>
5245
5246 * Make-lang.in: Replace rmic and rmiregistry references with
5247 grmic and grmiregistry.
5248 * gcj.texi: Likewise.
5249
5250 2004-07-20 Andrew Haley <aph@redhat.com>
5251
5252 PR java/16431.
5253 * verify.c (verify_jvm_instructions): Comment change only.
5254
5255 * typeck.c (build_java_array_type): Add size field to array name.
5256
5257 * java-tree.h (LOCAL_SLOT_P): New.
5258 (update_aliases): Add PC argument.
5259 (pushdecl_function_level): New function.
5260
5261 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
5262 MODIFY_EXPR, and SAVE_EXPR.
5263 (java_gimplify_modify_expr): New function.
5264
5265 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
5266 (expand_iinc): Pass PC to update_aliases().
5267 (STORE_INTERNAL): Likewise.
5268 (process_jvm_instruction): Likewise.
5269
5270 * decl.c (base_decl_map): New variable.
5271 (uniq): New variable.
5272 (update_aliases): Rewrite with more thorough checking.
5273 (debug_variable_p): New function.
5274 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
5275 (check_local_named_variable): Delete whole function.
5276 (initialize_local_variable): New function.
5277 (check_local_unnamed_variable): Add checks and comments.
5278 (find_local_variable): Rewrite.
5279 (java_replace_reference): New function.
5280 (function_binding_level): New variable.
5281 (pushdecl_function_level): New function.
5282 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
5283 (maybe_pushlevels): Call pushdecl() on each of the new decls.
5284 (start_java_method): Reset uniq. Create base_decl_map. Set
5285 function_binding_level.
5286 (end_java_method): Null unused fields to save memory.
5287
5288 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
5289
5290 * class.c (add_interface_do): Remove.
5291 (set_super_info, interface_of_p, maybe_add_interface,
5292 add_interface, make_class_data, layout_class,
5293 add_miranda_methods): Adjust BINFO accessors and addition.
5294 * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
5295 accessors.
5296 * jcf-write.c (generate_classfile): Likewise.
5297 * parse.y (patch_anonymous_class, check_inner_circular_reference,
5298 check_circular_reference, java_complete_class,
5299 check_abstract_method_definitions,
5300 java_check_abstract_method_definitions,
5301 check_interface_throws_clauses, java_check_abstract_methods,
5302 lookup_java_interface_method2,
5303 find_applicable_accessible_methods_list): Adjust BINFO accessors
5304 and addition.
5305 * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
5306
5307 2004-07-18 Roger Sayle <roger@eyesopen.com>
5308
5309 * builtins.c (max_builtin, min_builtin,
5310 java_build_function_call_expr): Replace calls to build with buildN.
5311 * class.c (build_class_ref, build_static_field_ref,
5312 get_dispatch_table, make_class_data, layout_class_method): Likewise.
5313 * constants.c (build_ref_from_constant_pool): Likewise.
5314 * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
5315 add_stmt_to_compound): Likewise.
5316 * except.c (build_exception_object_ref, expand_end_java_handler):
5317 Likewise.
5318 * java-gimplify.c (java_gimplify_case_expr,
5319 java_gimplify_default_expr, java_gimplify_block,
5320 java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
5321 * jcf-write.c (generate_bytecode_insns): Likewise.
5322 * typeck.c (convert_ieee_real_to_integer): Likewise.
5323
5324 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
5325
5326 * java-tree.h (builtin_function): Declare.
5327
5328 2004-07-16 Steven Bosscher <stevenb@suse.de>
5329
5330 * parse.y (java_complete_expand_methods, java_expand_classes): Don't
5331 abuse restore_line_number_status.
5332
5333 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
5334
5335 g++/15861
5336 * jcf-parse.c (java_emit_static_constructor): Specify default
5337 priority.
5338
5339 2004-07-13 Per Bothner <per@bothner.com>
5340
5341 * java-tree.h (all_class_filename): Remove useless macro.
5342 (enum java_tree_index): Remove JTI_ALL_CLASS_FILENAME constant.
5343 (BUILD_FILENAME_IDENTIFIER_NODE): Remove useless macro.
5344 * parse.y (java_parser_context_restore_global): Replace
5345 BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
5346 * jcf-parse.c (read_class, java_parse_file): Likewise.
5347
5348 2004-07-12 Bryce McKinlay <mckinlay@redhat.com>
5349
5350 PR java/16474
5351 gjavah.c (print_field_info): Emit constant only if field is static.
5352
5353 2004-07-11 Roger Sayle <roger@eyesopen.com>
5354
5355 * expr.c (java_truthvalue_conversion, flush_quick_stack,
5356 java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
5357 build_java_ret, build_java_throw_out_of_bounds_exception,
5358 build_java_array_length_access, java_check_reference,
5359 build_java_arrayaccess, build_java_arraystore_check, build_newarray,
5360 build_anewarray, expand_java_multianewarray, expand_java_arraystore,
5361 expand_java_arrayload, build_java_monitor, expand_java_return,
5362 expand_load_internal, expand_java_NEW, build_get_class,
5363 build_instanceof, expand_java_CHECKCAST, expand_iinc,
5364 build_java_soft_divmod, build_java_binop, build_field_ref,
5365 expand_compare, expand_java_goto, expand_java_switch,
5366 expand_java_add_case, build_class_init, build_known_method_ref,
5367 invoke_build_dtable, build_invokevirtual, build_invokeinterface,
5368 expand_invoke, build_jni_stub, expand_java_field_op,
5369 java_expand_expr, expand_byte_code, STORE_INTERNAL,
5370 force_evaluation_order, emit_init_test_initialization): Convert
5371 calls to "build" into calls to the prefered "buildN" functions.
5372
5373 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
5374
5375 * java-tree.h (set_block): Remove.
5376 * lang.c (java_clear_binding_stack): New.
5377 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
5378 * decl.c (struct binding_level): Remove this_block.
5379 (clear_binding_level): Likewise.
5380 (poplevel): Don't handle this_block.
5381 (set_block): Remove.
5382
5383 2004-07-10 Bryce McKinlay <mckinlay@redhat.com>
5384
5385 * class.c (common_enclosing_context_p): Remove statement with no
5386 side-effects.
5387
5388 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
5389
5390 PR java/8618
5391 * parse.y (create_anonymous_class): Remove 'location' argument. Use
5392 the WFL from TYPE_NAME to get line number for the decl. Fix comment.
5393 (craft_constructor): Inherit access flags for implicit constructor
5394 from the enclosing class.
5395 (create_class): Fix comment typo.
5396 (resolve_qualified_expression_name): Pass type of qualifier to
5397 not_accessible_p, not the type in which target field was found.
5398 (not_accessible_p): Handle inner classes. Expand protected
5399 qualifier-subtype check to enclosing instances, but don't apply this
5400 check to static members. Allow protected access to inner classes
5401 of a subtype. Allow private access within common enclosing context.
5402 (build_super_invocation): Get WFL line number info from current
5403 class decl.
5404 (build_incomplete_class_ref): Update for new create_anonymous_class
5405 signature.
5406 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
5407 common_enclosing_instance_p.
5408 * class.c (common_enclosing_context_p): New. Determine if types
5409 share a common enclosing context, even across static contexts.
5410 (common_enclosing_instance_p): Renamed from
5411 common_enclosing_context_p. Determines if types share a common
5412 non-static enclosing instance.
5413 * java-tree.h (common_enclosing_instance_p): Declare.
5414 * jcf-write.c (get_method_access_flags): New. Surpress private flag
5415 for inner class constructors.
5416 (generate_classfile): Use get_method_access_flags.
5417
5418 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
5419
5420 * class.c (interface_of_p): Check for null TYPE_BINFO.
5421
5422 2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
5423
5424 * class.c (make_class): Do not create binfo here.
5425 (set_super_info): Create it here.
5426 * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
5427
5428 2004-07-08 Richard Henderson <rth@redhat.com>
5429
5430 * expr.c (case_identity, get_primitive_array_vtable,
5431 java_expand_expr, emit_init_test_initialization): Remove.
5432 * java-tree.h (java_expand_expr): Remove.
5433 * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
5434
5435 2004-07-07 Per Bothner <per@bothner.com>
5436
5437 * class.c (build_static_field_ref): Add a NOP_EXPR; otherwise we
5438 get internal error due to mismatched types.
5439
5440 * gcj.texi (Invoking gij): Document new -verbose:class flag.
5441
5442 * gcj.texi (Linking): New node. Document -lgij usage.
5443
5444 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
5445
5446 * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
5447 (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
5448 * java/class.c (set_super_info, class_depth, interface_of_p,
5449 maybe_add_interface, add_interface, make_class_data,
5450 layout_class, add_miranda_methods): Adjust BINFO macros.
5451 * expr.c (can_widen_reference_to, lookup_field): Likewise.
5452 * jcf-write.c (generate_classfile): Likewise.
5453 * parse.y (patch_anonymous_class,
5454 check_inner_circular_reference, check_circular_reference,
5455 java_complete_class, check_abstract_method_definitions,
5456 java_check_abstract_method_definitions,
5457 check_interface_throws_clauses, java_check_abstract_methods,
5458 lookup_java_interface_method2,
5459 find_applicable_accessible_methods_list): Likewise.
5460 * typeck.c (find_method_in_interface): Likewise.
5461 * verify.c (merge_types): Likewise.
5462
5463 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
5464
5465 * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
5466 * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
5467
5468 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
5469
5470 * class.c (make_class): Use make_tree_binfo.
5471 (set_super_info, add_interface_do): Likewise.
5472 * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
5473
5474 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
5475
5476 * verify.c: Correct array element access formatting thinko.
5477
5478 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
5479
5480 * verify.c: Insert a short blurb at the start referring to the JVMS.
5481 (merge_type_state): Remove redundant nested if statement.
5482 (verify_jvm_instructions): Ensure current_subr is initialised to
5483 NULL_TREE.
5484 Minor formatting fixes all over the place.
5485
5486 2004-07-02 Richard Henderson <rth@redhat.com>
5487
5488 * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
5489
5490 2004-07-01 Richard Henderson <rth@redhat.com>
5491
5492 * class.c (registerClass_libfunc): Remove.
5493 (init_class_processing): Don't set it.
5494 (emit_register_classes): Take list_p parameter. Fill it in
5495 with _Jv_RegisterClass calls.
5496 * decl.c (java_init_decl_processing): Don't call
5497 init_resource_processing.
5498 * jcf-parse.c (java_emit_static_constructor): New.
5499 (java_parse_file): Call it.
5500 * resource.c (registerResource_libfunc): Remove.
5501 (init_resource_processing): Remove.
5502 (write_resource_constructor): Take list_p parameter. Fill it in
5503 with _Jv_RegisterResource calls.
5504 * java-tree.h: Update prototypes.
5505
5506 2004-06-29 Bryce McKinlay <mckinlay@redhat.com>
5507
5508 PR java/1262
5509 * class.c (layout_class_method): Do not override package-private
5510 method if its in a different package.
5511 (split_qualified_name): Move here from parse.y. Rename from
5512 breakdown_qualified. Add comment.
5513 (in_same_package): Move here from parse.y. Add comment.
5514 * java-tree.h (break_down_qualified, in_same_package): Declare.
5515 (in_same_package): Likewise.
5516 * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
5517 Callers updated.
5518
5519 2004-06-29 Andrew Haley <aph@redhat.com>
5520
5521 * except.c (expand_start_java_handler): Push a new binding level.
5522 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
5523 register_exception_range() to register where we'll do it.
5524 (expand_end_java_handler): Remove old bogus code. Replace with
5525 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
5526 the top of the expression we're curently building.
5527 (maybe_end_try): Delete.
5528 * decl.c (binding_level.exception_range): New field.
5529 (clear_binding_level): Add field exception_range. Reformat.
5530 (poplevel): Call expand_end_java_handler().
5531 (poplevel): Call java_add_stmt only if functionbody is false.
5532 (maybe_poplevels): Don't call maybe_end_try() from here.
5533 (end_java_method): Clear no longer used trees in function decl.
5534 (register_exception_range): New function.
5535 * java-tree.h (register_exception_range, struct eh_range): Declare.
5536
5537 2004-06-28 Bryce McKinlay <mckinlay@redhat.com>
5538
5539 * jcf-write.c (get_classfile_modifiers): Formatting fixes.
5540
5541 2004-06-27 Ranjit Mathew <rmathew@hotmail.com>
5542
5543 Formatting fixes.
5544 * expr.c (class_has_finalize_method): Fix method name indentation.
5545 (expand_java_call): Remove K&R style parameter declaration.
5546 (expand_invoke): Fix statement indentation.
5547 (expand_java_field_op): Likewise.
5548 * parse-scan.y: Fix typo.
5549 (reset_report): Fix method name indentation.
5550 * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
5551 line. Fix typos.
5552 * verify.c (verify_jvm_instructions): Document parameters, insert
5553 page break.
5554 * lang.c (lang_init_source): Fix method name indentation.
5555 * class.c (common_enclosing_context_p): Likewise.
5556 (emit_symbol_table): Fix parameter list indentation.
5557 * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
5558 parameter declaration.
5559 * constants.c: Fix copyright notice indentation.
5560 * typeck.c (find_method_in_superclasses): Fix parameter list
5561 indentation.
5562 (find_method_in_interfaces): Likewise.
5563 * zextract.c (makelong): Fix method name indentation.
5564
5565 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5566
5567 PR java/15715.
5568 * parse.y (create_interface): Set correct access modifiers for
5569 interfaces.
5570 * jcf-write.c (get_classfile_modifiers): New function.
5571 (generate_classfile): Use get_classfile_modifiers, not
5572 get_access_flags.
5573
5574 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5575
5576 * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
5577 dependency to current parser context, not NULL_TREE, for top-level
5578 classes.
5579 (jdep_resolve_class): Enable member access check for all inner
5580 class dependencies.
5581
5582 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5583
5584 * parse.y (qualify_and_find): Pass type decl, not identifier, to
5585 load_class.
5586
5587 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5588
5589 PR java/15734
5590 * expr.c (expand_java_field_op): Ensure that target class for static
5591 field access has been loaded.
5592
5593 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5594 Ranjit Mathew <rmathew@hotmail.com>
5595
5596 PR java/1207, java/16178
5597 * jcf-parse.c (load_class): Return immediately if passed a type decl
5598 where CLASS_FROM_SOURCE_P is set. Remove FIXME.
5599 * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
5600 before calling load_class.
5601 (qualify_and_find): Likewise.
5602 (find_in_imports_on_demand): Likewise.
5603 (find_applicable_accessible_methods_list): Likewise.
5604
5605 2004-06-24 Bryce McKinlay <mckinlay@redhat.com>
5606
5607 * parse.y (java_layout_seen_class_methods): Don't call load_class
5608 on class defined by source parser.
5609
5610 2004-06-23 Bryce McKinlay <mckinlay@redhat.com>
5611
5612 * parse.y (set_nested_class_simple_name_value): Removed.
5613 (java_complete_expand_class): Remove calls to
5614 set_nested_class_simple_name_value.
5615
5616 2004-06-22 Andrew Haley <aph@redhat.com>
5617 Ranjit Mathew <rmathew@hotmail.com>
5618
5619 Fixes PR java/16113.
5620 * decl.c (force_poplevels): Remove call to expand_end_bindings.
5621
5622 2004-06-22 Ranjit Mathew <rmathew@hotmail.com>
5623
5624 * parse.y (create_class): Correct diagnostic message about
5625 java.lang.Object extending anything else.
5626
5627 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5628
5629 * class.c (build_class_ref): Add new operand for COMPONENT_REF.
5630 (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
5631 * constants.c (build_ref_from_constant_pool): Likewise.
5632 * expr.c (build_java_array_length_access): Likewise.
5633 (build_get_class, build_field_ref, build_known_method_ref): Likewise.
5634 (invoke_build_dtable, build_invokevirtual): Likewise.
5635 (build_invokeinterface, java_expand_expr): Likewise.
5636 (emit_init_test_initialization): Likewise.
5637 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5638 * parse.y (make_qualifed_name, build_array_ref): Likewise.
5639
5640 2004-06-21 Andrew Haley <aph@redhat.com>
5641
5642 * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
5643 block.
5644
5645 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
5646
5647 * jcf.h (struct JCF): Change java_source, right_zip and finished
5648 to unsigned int.
5649 * lex.h (struct java_lexer): Change hit_eof, read_anything,
5650 byte_swap and use_fallback to unsigned int.
5651 * parse.h (struct _jdep): Change flag0 to unsigned int.
5652
5653 2004-06-17 Ranjit Mathew <rmathew@hotmail.com>
5654
5655 Fixes PR java/13948
5656 * parse.y (java_layout_seen_class_methods): Ensure class is loaded
5657 before trying to lay out its methods.
5658 * jcf-parse.c (read_class): Track parsed files using canonical paths
5659 obtained via lrealpath from libiberty.
5660 (java_parse_file): Likewise.
5661 (parse_source_file_1): Rename formal parameter to reflect its
5662 modified purpose. Minor formatting fix.
5663
5664 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
5665
5666 * class.c (emit_register_classes): Make the function uninlinable,
5667 do not set current_function_cannot_inline.
5668 * resource.c (write_resource_constructor): Do not reset
5669 flag_inline_functions around rest_of_compilation.
5670
5671 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
5672
5673 PR java/15769
5674 * expr.c (java_truthvalue_conversion): Handle
5675 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
5676 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
5677 i.e. return the expression.
5678
5679 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
5680
5681 * gjavah.c: Include version.h
5682
5683 2004-05-31 Bryce McKinlay <mckinlay@redhat.com>
5684
5685 * jcf-write.c (generate_bytecode_conditional): Correct handling
5686 of unordered conditionals. Add comment.
5687
5688 2004-05-29 Ranjit Mathew <rmathew@hotmail.com>
5689 Per Bothner <per@bothner.com>
5690
5691 * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
5692 local variable was initialised upon declaration.
5693 * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
5694 variable was final and initialised upon declaration.
5695 * check-init.c (check_final_reassigned): Give error only if a blank
5696 final is not definitely unassigned or if an initialised final is
5697 reassigned.
5698 (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
5699 assignment expressions. Remove case MODIFY_EXPR, label do_default.
5700 (check_init): Perform initialised-variable-removing-optimisation
5701 only on non-final local variables.
5702
5703 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
5704
5705 * jcf-write.c (generate_bytecode_conditional): Handle binops
5706 UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
5707 and LTGT_EXPR.
5708 (generate_bytecode_insns): Likewise.
5709
5710 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
5711
5712 * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
5713 UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
5714
5715 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
5716
5717 * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
5718 (Mixing with C++): Document JvAllocBytes and RawDataManaged.
5719
5720 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
5721
5722 * decl.c (struct binding_level): Add GTY marker. Compile
5723 binding_depth unconditionally.
5724 (current_binding_level, free_binding_level, global_binding_level):
5725 Likewise.
5726 (clear_binding_level): Unconditionally set binding_depth.
5727 (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
5728
5729 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
5730
5731 * lex.c (java_new_lexer): Set 'encoding'.
5732 (java_read_char): Improve error message for unrecognized characters.
5733 * lex.h (struct java_lexer): New field 'encoding'.
5734
5735 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
5736
5737 * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
5738
5739 2004-05-21 Mark Wielaard <mark@klomp.org>
5740
5741 * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
5742 extern.
5743
5744 2004-05-19 Paolo Bonzini <bonzini@gnu.org>
5745
5746 * typeck.c: Remove non-printable character 160.
5747
5748 2004-05-17 Ranjit Mathew <rmathew@hotmail.com>
5749
5750 * check-init.c: Correct minor typos.
5751
5752 2004-05-13 Diego Novillo <dnovillo@redhat.com>
5753
5754 * Make-lang.in, expr.c, java-gimplify.c: Rename
5755 tree-simple.[ch] to tree-gimple.[ch].
5756
5757 2004-05-14 Ranjit Mathew <rmathew@hotmail.com>
5758
5759 * java-gimplify.c (java_gimplify_expr): Correct minor typos.
5760
5761 2004-05-13 Diego Novillo <dnovillo@redhat.com>
5762
5763 Merge from tree-ssa-20020619-branch. See
5764 ChangeLog.tree-ssa for details.
5765
5766 * Make-lang.in, builtins.c, check-init.c, class.c,
5767 constants.c, decl.c, except.c, expr.c, java-except.h,
5768 java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
5769 lang.c, lang.opt, parse.y, resource.c: Merged.
5770 * java-gimplify.c: New file.
5771
5772 2004-05-10 Andrew Haley <aph@redhat.com>
5773
5774 * parse.y (create_class): Set TYPE_VFIELD.
5775 * decl.c (java_init_decl_processing): Likewise.
5776
5777 * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
5778 * class.c (make_method_value): Replace DECL_VINDEX with call to
5779 get_method_index().
5780 (get_dispatch_vector): Likewise.
5781 (layout_class_method): Likewise.
5782 Replace set of DECL_VINDEX with call to set_method_index().
5783 (set_method_index): New function.
5784 (get_method_index): New function.
5785 * java-tree.h (set_method_index): New function decl.
5786 (get_method_index): New function decl.
5787
5788 2004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
5789
5790 * parse.y (check_pkg_class_access): Add new argument
5791 and use it when cl is NULL to call lookup_cl on it.
5792 (parser_check_super_interface): Do not call lookup_cl.
5793 Pass this_decl to check_pkg_class_access and NULL
5794 instead of lookup_cl.
5795 (parser_check_super): Update for change in
5796 check_pkg_class_access.
5797 (do_resolve_class): Likewise.
5798 (process_imports): Likewise.
5799 (find_in_imports_on_demand): Likewise.
5800 (resolve_qualified_expression_name): Likewise.
5801
5802 2004-05-06 Ranjit Mathew <rmathew@hotmail.com>
5803
5804 Fixes PR java/9685, PR java/15073
5805 * parse.y (accessibility_string): New method.
5806 (not_accessible_field_error): Use accessibility_string()
5807 instead of java_accstring_lookup().
5808 (resolve_qualified_expression_name): Check with
5809 check_pkg_class_access() before allowing access using
5810 qualified names.
5811 Fix comment typo.
5812 Use check_pkg_class_access() instead of not_accessible_p()
5813 for unqualified types.
5814 (not_accessible_p): Use DECL_CONTEXT (member) instead of
5815 REFERENCE for package-private access checking.
5816 (patch_method_invocation): Use accessibility_string() instead
5817 of java_accstring_lookup().
5818
5819 2004-04-30 Ranjit Mathew <rmathew@hotmail.com>
5820
5821 Fixes PR java/15133
5822 * gjavah.c (struct method_name): Add member is_native.
5823 (overloaded_jni_method_exists_p): Match candidate method only if
5824 it is native.
5825 (print_method_info): Initialise is_native flag from the method's
5826 access flags.
5827
5828 2004-04-30 Roger Sayle <roger@eyesopen.com>
5829
5830 * builtins.c (java_builtins): Add acos, asin, ceil and floor.
5831 (initialize_builtins): Likewise, define acos, asin, ceil and floor.
5832
5833 2004-04-22 Roger Sayle <roger@eyesopen.com>
5834
5835 * resource.c (write_resource_constructor): Guard call to possibly
5836 NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
5837
5838 2004-04-19 Bryce McKinlay <mckinlay@redhat.com>
5839
5840 * class.c (make_class_data): Add new field aux_info.
5841 * decl.c (java_init_decl_processing): Push type and decl for
5842 `aux_info'.
5843
5844 2004-04-15 Bryce McKinlay <mckinlay@redhat.com>
5845
5846 * expr.c (expand_java_NEW): Don't use size argument for
5847 _Jv_AllocObject calls.
5848 * parse.y (patch_invoke): Likewise.
5849
5850 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
5851
5852 * expr.c (build_invokeinterface): Remove unused variables to
5853 fix warnings.
5854
5855 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
5856
5857 * class.c (get_interface_method_index): New function. Return dispatch
5858 index for interface method.
5859 (make_method_value): For interface methods, set index field to
5860 iface dispatch index, not DECL_VINDEX.
5861 * expr.c (build_invokeinterface): Use get_interface_method_index.
5862
5863 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5864
5865 * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
5866
5867 2004-03-31 Andrew Haley <aph@redhat.com>
5868
5869 PR java/14104
5870 * jcf-io.c (opendir_in_zip): Tidy up error handling.
5871
5872 2004-03-30 Zack Weinberg <zack@codesourcery.com>
5873
5874 * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
5875 form of GTY markers.
5876
5877 2004-03-25 Marcus Meissner <meissner@suse.de>
5878
5879 PR java/14689:
5880 * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
5881
5882 2004-03-23 Tom Tromey <tromey@redhat.com>
5883
5884 PR java/14315:
5885 * jcf-write.c (make_class_file_name): Don't report if mkdir
5886 failed with EEXIST.
5887
5888 2004-03-23 Tom Tromey <tromey@redhat.com>
5889
5890 * gcj.texi (Extensions): Document GCJ_PROPERTIES.
5891
5892 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
5893
5894 * class.c, gjavah.c, lang.c: Fix comment typos.
5895 * gcj.texi: Fix typos.
5896
5897 2004-03-19 Per Bothner <per@bothner.com>
5898
5899 * gcj.texi (Code Generation): Document new flags and assert defaults.
5900
5901 * class.c (assume_compiled_node_struct): Rename type to
5902 class_flag_node_struct, as it is now also used for enable_assertions.
5903 Rename assume_compiled_node typedef. Rename excludep field to value.
5904 (find_assume_compiled_node): Rename function to find_class_flag_node.
5905 Minor optimization - avoid needless strlen.
5906 (add_assume_compiled): Some tweaking and optimization.
5907 Rename and generalize to add_class_flag takem an extra parameter.
5908 (add_assume_compled): New just calls add_class_flag.
5909 (add_enable_assert, enable_assertions): New functions.
5910 (enable_assert_tree): New static.
5911 * java-tree.h (add_enable_assert, enable_assertions): New declarations.
5912 * lang.opt (fenable-assertions, fenable-assertions=,
5913 fdisable-assertions, fdisable-assertions=): New options.
5914 * lang.c (java_handle_option): Handle new options.
5915 * parse.y (build_incomplete_class_ref): Handle class$ in an inner
5916 class in an interface - create helper class nested in outer interface.
5917 (build_assertion): Short-circuit if enable_assertions is false.
5918
5919 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5920
5921 * java-tree.h: Changes throughout to add checking to macros
5922 and numerous whitespace changes.
5923 (VAR_OR_FIELD_CHECK): New macro.
5924 * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
5925 FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
5926
5927 2004-03-16 Per Bothner <per@bothner.com>
5928
5929 * jcf-jump.c (options): New --print-constants option.
5930 * gcj.texi (Invoking jcf-dump): Document --print-constants.
5931
5932 * jcf-dump.c (flag_print_constant_pool): Default to off.
5933 (print_constant_terse_with_index): New helper function.
5934 (various places): Check flag_print_constant_pool where missing.
5935 (main): If verbose set flag_print_constant_pool.
5936 (HANDLE_INNERCLASSES_ATTRIBUTE): Null inner class name is anonymous.
5937
5938 2004-03-15 Andrew Haley <aph@redhat.com>
5939
5940 PR java/14581
5941 * parse.y (java_complete_lhs): Check that final variable has an
5942 initializer.
5943
5944 2004-03-12 Andrew Haley <aph@redhat.com>
5945
5946 PR java/14551
5947 * typeck.c (convert): Clear TREE_OVERFLOW after an integer
5948 conversion.
5949
5950 2004-02-29 Roger Sayle <roger@eyesopen.com>
5951
5952 * jcf-parse.c (java_parse_file): Handle the case that input_filename
5953 is NULL.
5954
5955 2004-02-27 Per Bothner <per@bothner.com>
5956
5957 * parse.y (build_assertion): Re-do 02-25 change following Jeff Sturm
5958 suggestion: Use build_incomplete_class_ref.
5959 This fixes PR java/13508, java/11714.
5960
5961 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
5962
5963 * java/parse.h: Update copyright.
5964
5965 2004-02-26 Andrew Haley <aph@redhat.com>
5966
5967 PR java/14231:
5968 * parse.y (check_interface_throws_clauses): Check for
5969 !METHOD_INVISIBLE (iface_method).
5970 * class.c (layout_class_methods): Check for CLASS_INTERFACE as
5971 well as CLASS_ABSTRACT.
5972
5973 2004-02-25 Per Bothner <per@bothner.com>
5974
5975 * parse.y (build_assertion): If we're in an inner class, create the
5976 class$ helper routine in the outer class.
5977
5978 2004-02-19 Richard Henderson <rth@redhat.com>
5979
5980 * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
5981
5982 2004-02-16 Geoffrey Keating <geoffk@apple.com>
5983
5984 * Make-lang.in (java.install-man): Add extra dependencies.
5985
5986 2004-02-13 Geoffrey Keating <geoffk@apple.com>
5987
5988 * Make-lang.in: Install man pages under the same names
5989 (possibly transformed) as the program they document.
5990
5991 2004-02-10 Joseph S. Myers <jsm@polyomino.org.uk>
5992
5993 * gjavah.c: Include "intl.h".
5994 (error): New function.
5995 (main): Call gcc_init_libintl.
5996 (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
5997 print_stub_or_jni, process_file, main): Use error rather than
5998 fprintf.
5999 (print_method_info, usage, help, version, main): Mark strings for
6000 translation with _. Avoid splitting up sentences. Send
6001 information messages to stdout.
6002 * jcf-dump.c: Include "intl.h".
6003 (main): Call gcc_init_libintl.
6004 (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
6005 Mark error, usage and version messages for translation with _.
6006 Avoid splitting up sentences.
6007 * jv-scan.c: Include "intl.h".
6008 (fatal_error, warning): Change parameter s to msgid. Translate
6009 messages.
6010 (main): Call gcc_init_libintl.
6011 (usage, help, version): Mark error, usage and version messages for
6012 translation with _. Avoid splitting up sentences.
6013 * jvgenmain.c: Include "intl.h".
6014 (main): Call gcc_init_libintl.
6015 (usage, main): Mark error messages for translation with _.
6016 * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
6017 JVGENMAIN_OBJS): Add intl.o.
6018 (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
6019 java/jvgenmain.o): Update dependencies.
6020
6021 2004-02-08 Per Bothner <per@bothner.com>
6022
6023 * parse.y (resolve_qualified_expression_name): In case of inaccessible
6024 class don't use not_accessible_field_error, which can get confused.
6025
6026 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
6027
6028 Make-lang.in (po-generated): Delete.
6029
6030 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
6031
6032 * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
6033 Depend on target.h.
6034 * decl.c: Include target.h.
6035 (start_java_method): Replace PROMOTE_PROTOTYPES with
6036 targetm.calls.promote_prototypes.
6037 * expr.c: Include target.h.
6038 (pop_arguments): Replace PROMOTE_PROTOTYPES with
6039 targetm.calls.promote_prototypes.
6040 * parse.y: Include target.h.
6041 (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
6042 with targetm.calls.promote_prototypes.
6043
6044 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
6045
6046 * typeck.c: Update copyright.
6047
6048 2004-02-02 Tom Tromey <tromey@redhat.com>
6049
6050 * decl.c (java_init_decl_processing): Remove duplicate
6051 gnu/gcj/RawData.
6052
6053 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
6054
6055 * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
6056
6057 2004-01-28 Andrew Pinski <pinskia@physics.uc.edu>
6058
6059 * expr.c (build_field_ref): Move variable
6060 definition up.
6061
6062 2004-01-28 Andrew Haley <aph@redhat.com>
6063
6064 * expr.c (build_field_ref): Widen field offset.
6065
6066 2004-01-27 Andrew Haley <aph@redhat.com>
6067
6068 java/13273
6069 * parse.y (check_interface_throws_clauses): Make sure class_decl
6070 has been loaded.
6071
6072 2004-01-22 Jeff Sturm <jsturm@one-point.com>
6073
6074 PR java/13733
6075 * parse.y (patch_assignment): Don't modify lhs_type for
6076 reference assignments.
6077
6078 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
6079
6080 * Make-lang.in: Replace $(docdir) with doc.
6081 (java.info, java.srcinfo, java.man, java.srcman): New rules.
6082 (java.install-man): Revamp rule.
6083
6084 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
6085
6086 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
6087 GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
6088 instead of deferred backquote.
6089
6090 2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
6091
6092 * typeck.c (find_method_in_interfaces): Move variable
6093 definition up.
6094
6095 2004-01-16 Andrew Haley <aph@redhat.com>
6096
6097 PR java/13273:
6098 * typeck.c (shallow_find_method): New.
6099 (find_method_in_superclasses): New.
6100 (find_method_in_interfaces): New.
6101 (lookup_do): Rewrite.
6102 * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
6103
6104 * jcf-parse.c (read_class): Save and restore output_class.
6105 * decl.c (java_expand_body): Set output_class from fndecl.
6106
6107 2004-01-15 Michael Chastain <mec.gnu@mindspring.com>
6108
6109 * class.c (gen_indirect_dispatch_tables): Fix string length
6110 calculations.
6111
6112 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
6113
6114 * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
6115 (java.srcextra): Copy above back to source directory if requested.
6116 (po-generated): Delete reference to $(parsedir).
6117 (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
6118 Use implicit rule.
6119
6120 2004-01-14 Jan Hubicka <jh@suse.cz>
6121
6122 * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
6123 estimation.
6124
6125 2004-01-09 Mark Mitchell <mark@codesourcery.com>
6126
6127 * java-tree.h (java_expand_expr): Change prototype.
6128 * expr.c (java_expand_expr): Add alt_rtl parameter.
6129
6130 2004-01-09 Andrew Haley <aph@redhat.com>
6131
6132 PR java/12755:
6133 * parse.y (java_fix_constructors): Set output_class.
6134 (java_reorder_fields): Likewise.
6135 (java_layout_classes): Likewise.
6136 (java_expand_classes): Generate indirect dispatch tables.
6137 (java_expand_classes): Set output_class.
6138 (java_finish_classes): Likewise.
6139 * lang.c (java_init): Turn on always_initialize_class_p if we're
6140 using indirect dis[atch.
6141 (java_decl_ok_for_sibcall): Use output_class, not current_class.
6142 (java_get_callee_fndecl): Use class local atable.
6143 * jcf-parse.c
6144 (always_initialize_class_p): Decl moved to java-tree.h.
6145 (HANDLE_CLASS_INFO): Set output_class.
6146 (read_class): Likewise.
6147 (parse_class_file): Call gen_indirect_dispatch_tables.
6148 (parse_zip_file_entries): Set output_class.
6149 (java_parse_file): Set output_class. Don't emit symbol tables.
6150 * java-tree.h (output_class): New.
6151 Remove global declarations for otable, atable, and ctable.
6152 (always_initialize_class_p): moved here from decl.c.
6153 (DECL_OWNER): New.
6154 (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
6155 TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
6156 TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
6157 (struct lang_type): Add otable_methods, otable_decl,
6158 otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
6159 ctable_decl, catch_classes, type_to_runtime_map.
6160 * expr.c (build_field_ref): Make otable, atable, and ctable class
6161 local rather than global.
6162 (build_known_method_ref): Likewise.
6163 (build_invokeinterface): Likewise.
6164 (java_expand_expr): Pass runtime type (rather than actual type) to
6165 expand_start_catch.
6166 * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
6167 this class. Look up each class in that map to delete duplicates.
6168 (expand_end_java_handler): Pass runtime type (rather than actual
6169 type) to expand_start_catch.
6170 * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
6171 (do_nothing): New.
6172 (java_init_decl_processing): Rearrange things. Remove global
6173 declarations of otable, atable, and ctable.
6174 (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
6175 (java_expand_body): Set output_class.
6176 * constants.c (build_constant_data_ref): Use output_class, not
6177 current_class.
6178 (alloc_name_constant): Likewise.
6179 * class.c (gen_indirect_dispatch_tables): New.
6180 (build_class_ref): Generate hard reference to superclass, even if
6181 using indirect dispatch.
6182 (build_static_field_ref): Use class local atable.
6183 (make_class_data): Generate hard reference to superclass, even if
6184 using indirect dispatch.
6185 Generate symbolic references to interfaces when using indirect
6186 dispatch.
6187 (make_class_data): Emit otable, atable, and ctable.
6188 Make otable, atable, and ctable class local rather than global.
6189 (emit_catch_table): Make otable, atable, and ctable class local
6190 rather than global.
6191
6192 2003-12-25 Andrew Pinski <pinskia@physics.uc.edu>
6193
6194 * parse.y (catch_clause_parameter): Fix typo.
6195
6196 PR java/13404
6197 * parse.y: (catch_clause_parameter): Return early if $3, aka
6198 formal_parameter, is null.
6199
6200 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
6201
6202 * class.c: Remove uses of "register" specifier in
6203 declarations of arguments and local variables.
6204 * decl.c: Likewise.
6205 * expr.c: Likewise.
6206 * gjavah.c: Likewise.
6207 * jcf-dump.c: Likewise.
6208 * jcf-io.c: Likewise.
6209 * jcf-parse.c: Likewise.
6210 * jcf-write.c: Likewise.
6211 * keyword.h: Likewise.
6212 * parse.y: Likewise.
6213 * typeck.c: Likewise.
6214 * verify.c: Likewise.
6215
6216 2003-12-06 Kelley Cook <kcook@gcc.gnu.org>
6217
6218 * Make-lang.in (GCJ_CROSS_NAME): Delete.
6219 (java.install_common, java.install-man): Adjust for above.
6220 (java.uninstall): Likewise.
6221
6222 2003-12-03 Michael Koch <konqueror@gmx.de>
6223
6224 * class.c (make_class_data):
6225 Push field value to 'hack_signers' instead of 'signers'.
6226 * decl.c (java_init_decl_processing):
6227 Push field 'hack_signers' instead of 'signers'.
6228
6229 2003-12-03 Zack Weinberg <zack@codesourcery.com>
6230
6231 * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
6232 including iconv.h.
6233
6234 2003-12-03 Ralph Loader <rcl@ihug.co.nz>
6235
6236 PR java/12374:
6237 * parse.y (qualify_ambiguous_name): Remove lots of broken
6238 field access processing - there's no need to do that here,
6239 because we have resolve_field_access. Remove
6240 RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
6241 * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
6242 used.
6243
6244 2003-12-01 Jeff Sturm <jsturm@one-point.com>
6245
6246 Fix PR java/13237
6247 * parse.y (java_complete_lhs): Save location prior to patching
6248 CALL_EXPR.
6249
6250 2003-11-25 Mohan Embar <gnustuff@thisiscool.com>
6251
6252 PR java/12548
6253 * resource.c (write_resource_constructor): Append
6254 "_resource" to constructor identifier name.
6255
6256 2003-11-25 Jeff Sturm <jsturm@one-point.com>
6257
6258 Fix PR java/13183.
6259 * constants.c (cpool_for_class): New function.
6260 (outgoing_cpool): Remove global variable.
6261 (alloc_name_constant): Use cpool_for_class.
6262 (build_constants_constructor): Likewise.
6263 * decl.c (java_expand_body): Set current_class.
6264 * java-tree.h (outgoing_cpool) Remove declaration.
6265 (init_outgoing_cpool): Likewise.
6266 * jcf-parse.c (init_outgoing_cpool): Remove function.
6267 (parse_class_file): Don't call init_outgoing_cpool.
6268 * parse.y (java_complete_expand_methods): Don't call
6269 init_outgoing_cpool. Don't save outgoing_cpool.
6270 (java_expand_classes): Don't restore outgoing_cpool.
6271 (java_finish_classes): Likewise.
6272
6273 2003-11-24 Mohan Embar <gnustuff@thisiscool.com>
6274
6275 * Make-lang.in: (java.install-common) Add
6276 symlink for $(target_noncanonical)-gcjh for
6277 native builds.
6278
6279 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
6280
6281 * Make-lang.in (java.extraclean): Delete.
6282
6283 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
6284
6285 * Make-lang.in (check-java): Add.
6286
6287 2003-11-19 Jeff Sturm <jsturm@one-point.com>
6288
6289 Fix PR java/13024.
6290 * except.c (prepare_eh_table_type): Allocate variable-sized
6291 buffer `buf' with alloca.
6292
6293 2003-11-17 Jeff Sturm <jsturm@one-point.com>
6294
6295 Fix PR java/12857.
6296
6297 decl.c (java_init_decl_processing): Don't initialize
6298 class_not_found_type_node, no_class_def_found_type_node.
6299
6300 java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
6301 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
6302 (class_not_found_type_node, no_class_def_found_type_node):
6303 Don't define.
6304
6305 parse.y (build_dot_class_method_invocation): Add this_class
6306 argument. Qualify method invocations to a different class.
6307 (create_new_parser_context): Initialize saved_data_ctx to 0.
6308 (java_parser_context_save_global): Initialize saved_data_ctx to 1.
6309 (build_dot_class_method): Don't load classes. Register
6310 incomplete types.
6311 (build_incomplete_class_ref): Special cases for interfaces
6312 and inner classes. Move build_dot_class_method call to here...
6313 (patch_incomplete_class_ref): ...from here. Pass current_class
6314 to build_dot_class_method_invocation.
6315 (build_assertion): Pass class_type to
6316 build_dot_class_method_invocation.
6317 (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
6318
6319 2003-11-17 Jeff Sturm <jsturm@one-point.com>
6320
6321 Fix PR java/12739.
6322 * java-tree.h (BLOCK_EMPTY_P): Define.
6323 * parse.y (java_complete_lhs): Check for empty blocks
6324 in TRY_FINALLY_EXPR case.
6325
6326 2003-11-17 Andrew Haley <aph@redhat.com>
6327
6328 * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
6329 (struct lang_decl_var:freed): New variable.
6330 * decl.c (poplevel): Mark local vars that have gone out of scope.
6331 (push_jvm_slot): Don't use the RTL of a var that has gone out of
6332 scope.
6333
6334 2003-11-16 Jason Merrill <jason@redhat.com>
6335
6336 * Make-lang.in (java.tags): Create TAGS.sub files in each directory
6337 and TAGS files that include them for each front end.
6338
6339 2003-11-15 Tom Tromey <tromey@redhat.com>
6340
6341 * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
6342
6343 2003-11-12 Jason Merrill <jason@redhat.com>
6344
6345 PR optimization/12547
6346 * lang.c (java_tree_inlining_walk_subtrees): Just walk
6347 BLOCK_EXPR_BODY directly.
6348
6349 2003-11-12 Andrew Haley <aph@redhat.com>
6350
6351 PR java/11045
6352 * parse.y (fold_constant_for_init): Check that we really do have a
6353 constant.
6354
6355 PR java/11533
6356 * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
6357 init_test_decls being inlined.
6358
6359 PR java/12890:
6360 * parse.y (do_resolve_class): Check return value from
6361 breakdown_qualified().
6362
6363 2003-11-11 Tom Tromey <tromey@redhat.com>
6364
6365 PR java/12915:
6366 * parse.y (merge_string_cste): Handle case where we have a
6367 pointer that happens to be zero, not null_pointer_node.
6368
6369 2003-11-10 Tom Tromey <tromey@redhat.com>
6370
6371 * jcf-parse.c (classify_zip_file): Correctly compare
6372 filename_length against length of manifest file's name.
6373
6374 2003-11-08 Tom Tromey <tromey@redhat.com>
6375
6376 PR java/12894:
6377 * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
6378
6379 2003-11-06 Andrew Haley <aph@redhat.com>
6380
6381 * expr.c (java_stack_swap): Make sure destination stack slots are
6382 of the correct type.
6383
6384 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
6385
6386 * Make-lang.in (dvi): Move targets to $(docobjdir).
6387 (gcj.dvi): Simplify rule and adjust target.
6388 (gcj.info): Simplify rule.
6389 (gcj.pod): New intermediate rule.
6390 (gcjh.pod): Likewise.
6391 (jv-scan.pod): Likewise.
6392 (jcf-dump.pod): Likewise.
6393 (gij.pod): Likewise.
6394 (jv-convert.pod): Likewise.
6395 (rmic.pod): Likewise.
6396 (rmiregistry.pod): Likewise.
6397 (gcj.1): Delete.
6398 (gcjh.1): Delete.
6399 (jv-scan.1): Delete.
6400 (jcf-dump.1): Delete.
6401 (gij.1): Delete.
6402 (jv-convert.1): Delete.
6403 (rmic.1): Delete.
6404 (rmiregistry.1): Delete.
6405
6406 2003-11-02 Jeff Sturm <jsturm@one-point.com>
6407
6408 Fixes PR java/12866.
6409 * parse.y (resolve_qualified_expression_name): Move test
6410 for outer field access methods from here...
6411 (check_thrown_exceptions) ...to here.
6412
6413 2003-11-01 Kelley Cook <kcook@gcc.gnu.org>
6414
6415 * .cvsignore: Delete.
6416
6417 2003-10-28 Frank Ch. Eigler <fche@redhat.com>
6418
6419 * verify.c (verify_jvm_instructions): Don't warn about legal
6420 eh binding regions generated for example by jdk 1.4.1.
6421
6422 2003-10-24 David S. Miller <davem@redhat.com>
6423
6424 * jcf-parse.c (jcf_parse): Fix args to fatal_error().
6425
6426 2003-10-22 Andrew Haley <aph@redhat.com>
6427
6428 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
6429 (java_get_callee_fndecl): New.
6430
6431 * jcf-parse.c (java_parse_file): Call emit_catch_table().
6432
6433 * java-tree.h (ctable_decl): New.
6434 (catch_classes): New.
6435 (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
6436
6437 * decl.c (java_init_decl_processing): Add catch_class_type.
6438 Add ctable_decl.
6439 Add catch_classes field.
6440
6441 * class.c (build_indirect_class_ref): Break out from
6442 build_class_ref.
6443 (make_field_value): Check flag_indirect_dispatch.
6444 (make_class_data): Ditto.
6445 Tidy uses of PUSH_FIELD_VALUE.
6446 Add field catch_classes.
6447 (make_catch_class_record): New.
6448
6449 * java-tree.h (PUSH_FIELD_VALUE): Tidy.
6450
6451 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
6452
6453 * jcf-write.c: Follow spelling conventions.
6454 * parse.y: Likewise.
6455
6456 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
6457
6458 * ChangeLog: Fix typos.
6459 * expr.c: Fix comment typos.
6460 * jcf-write.c: Likewise.
6461 * lang.c: Likewise.
6462 * lex.c: Likewise.
6463 * mangle.c: Likewise.
6464 * parse-scan.y: Likewise.
6465 * parse.y: Likewise.
6466
6467 2003-10-22 Tom Tromey <tromey@redhat.com>
6468
6469 * expr.c (expand_byte_code): Only warn about dead bytecode when
6470 extra_warnings is set.
6471
6472 2003-10-22 Bryce McKinlay <bryce@mckinlay.net.nz>
6473
6474 Fix for PR java/12586.
6475 * mangle.c (find_compression_record_match): Don't iterate through
6476 package namespace elements unless they all match compression_table
6477 entries.
6478
6479 2003-10-20 Kelley Cook <kcook@gcc.gnu.org>
6480
6481 * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
6482 (generate-manpages): Likewise.
6483 (java.maintainer-clean): Likewise.
6484 (gcj.info): Likewise.
6485 (gcj.1): Likewise.
6486 (gcjh.1): Likewise.
6487 (jv-scan.1): Likewise.
6488 (jcf-dump.1): Likewise.
6489 (gij.1): Likewise.
6490 (jv-convert.1): Likewise.
6491 (rmic.1): Likewise.
6492 (rmiregistry.1): Likewise.
6493 (java.install-man): Likewise.
6494 (parse-scan.o): Move and define complete compile line.
6495 (parse.o): Likewise.
6496 (jcf-tree-inline.o): Move.
6497
6498 2003-10-20 Mark Mitchell <mark@codesourcery.com>
6499
6500 * Make-lang.in (info): Update dependencies.
6501 (java.install-info): Remove.
6502 ($(srcdir)/java/gcj.info): Replace with ...
6503 ($(docobjdir)/gcj.info): ... this.
6504
6505 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
6506
6507 * Make-lang.in: Replace uses of $(target_alias) with
6508 $(target_noncanonical).
6509
6510 2003-10-09 Tom Tromey <tromey@redhat.com>
6511
6512 * decl.c (java_init_decl_processing): Declare signers field.
6513 * class.c (make_class_data): Set signers field.
6514
6515 2003-10-09 Jason Merrill <jason@redhat.com>
6516
6517 * parse.y (patch_assignment): Use make_node to create a BLOCK.
6518 * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
6519 POINTER_TYPE.
6520
6521 2003-10-06 Mark Mitchell <mark@codesourcery.com>
6522
6523 * Make-lang.in (java.info): Replace with ...
6524 (info): ... this.
6525 (java.dvi): Replace with ...
6526 (dvi): ... this.
6527 (java.generated-manpages): Replace with ...
6528
6529 2003-10-03 Kelley Cook <kelleycook@wideopenwest.com>
6530
6531 * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
6532
6533 2003-10-01 Andrew Haley <aph@redhat.com>
6534
6535 * jcf-parse.c (java_parse_file): Write otable and atable.
6536 * java-tree.h (atable_methods): New.
6537 (atable_decl): New.
6538 (atable_syms_decl): New.
6539 (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
6540 JTI_ATABLE_SYMS_DECL. Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
6541 (symbol_*type): Rename method_symbol* to symbol*type.
6542 (emit_offset_symbol_table): Delete.
6543 (emit_symbol_table): New.
6544 (get_symbol_table_index): New.
6545 (atable_type): New.
6546 * expr.c (build_field_ref): Handle flag_indirect_dispatch.
6547 (build_known_method_ref): Likewise.
6548 (get_symbol_table_index): Rename from get_offset_table_index.
6549 Parameterize to allow re-use by differing types of symbol table.
6550 (build_invokevirtual): Pass table to get_offset_table_index.
6551 * decl.c (java_init_decl_processing): Push types and decls for
6552 atable and atable_syyms.
6553 * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
6554 (make_class_data): Add new fields atable and atable_syms.
6555 (emit_symbol_table): Rename from emit_offset_symbol_table.
6556 Parameterize to allow re-use by different types of symbol table.
6557 (build_symbol_entry): Renamed from build_method_symbols_entry.
6558
6559 2003-09-30 Roger Sayle <roger@eyesopen.com>
6560
6561 * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
6562 semantics for SAVE_EXPR, by caching the result in a temporary.
6563
6564 2003-09-28 Richard Henderson <rth@redhat.com>
6565
6566 * check-init.c (check_init): Save and restore input_location
6567 instead of file and line separately.
6568 * decl.c (java_expand_body): Likewise.
6569 * jcf-write.c (generate_bytecode_insns): Likewise.
6570 * parse.y (safe_layout_class): Likewise.
6571 * jcf-parse.c (read_class, parse_class_file): Likewise.
6572 (java_parse_file): Use %H for warning locator.
6573
6574 2003-09-28 Roger Sayle <roger@eyesopen.com>
6575
6576 * expr.c (java_check_reference): Use the semantics of COND_EXPRs
6577 with void-type branches instead of using a COMPOUND_EXPR.
6578
6579 2003-09-28 Jeff Sturm <jsturm@one-point.com>
6580
6581 * decl.c (java_optimize_inline, dump_function): Remove.
6582 * java-tree.h (java_optimize_inline): Remove declaration.
6583 * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
6584 * parse.y (source_end_java_method, java_expand_classes):
6585 Likewise. Remove dead code.
6586
6587 2003-09-27 Roger Sayle <roger@eyesopen.com>
6588
6589 * lang.c (java_init_options): Set flag_evaluation_order.
6590 * expr.c (force_evaluation_order): Don't attempt to force
6591 evaluation order of binary operations using save_expr.
6592 * parse.y (java_complete_lhs): No longer need to call
6593 force_evaluation_order when constructing binary operators.
6594
6595 2003-09-27 Alexandre Petit-Bianco <apbianco@redhat.com>
6596 Bryce McKinlay <bryce@mckinlay.net.nz>
6597
6598 PR java/1333:
6599 * parse.y (not_accessible_field_error): New function.
6600 (resolve_expression_name): Check field access permissions.
6601 (resolve_qualified_expression_name): Use
6602 not_accessible_field_error.
6603 (resolve_qualified_expression_name): Likewise.
6604
6605 2003-09-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6606
6607 * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
6608
6609 2003-09-23 Roger Sayle <roger@eyesopen.com>
6610
6611 * jcf-write.c (generate_bytecode_insns): Optimize binary operations
6612 with equal operands without side-effects.
6613
6614 2003-09-22 Jeff Sturm <jsturm@one-point.com>
6615
6616 * decl.c (java_init_decl_processing): Don't emit otable decls
6617 if flag_indirect_dispatch is not set.
6618
6619 2003-09-21 Richard Henderson <rth@redhat.com>
6620
6621 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6622 resource.c: Revert.
6623
6624 2003-09-21 Richard Henderson <rth@redhat.com>
6625
6626 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6627 resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
6628
6629 2003-09-20 Richard Henderson <rth@redhat.com>
6630
6631 * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
6632
6633 2003-09-18 Roger Sayle <roger@eyesopen.com>
6634
6635 * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
6636 * check-init.c (check_init): Likewise.
6637
6638 2003-09-18 Roger Sayle <roger@eyesopen.com>
6639
6640 * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
6641
6642 2003-09-16 Andrew Haley <aph@redhat.com>
6643
6644 * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
6645
6646 2003-09-17 Ranjit Mathew <rmathew@hotmail.com>
6647
6648 Fixes PR java/9577
6649 * mangle.c (find_compression_record_match): Skip
6650 over a "6JArray" (the array template mangled string)
6651 IDENTIFIER_NODE.
6652 (mangle_array_type): Correct minor typo.
6653 (atms): Move definition to the beginning.
6654
6655 2003-09-16 Bryce McKinlay <bryce@mckinlay.net.nz>
6656
6657 * class.c (add_miranda_methods): Ensure super-interfaces are laid
6658 out. Fix for PR java/12254.
6659
6660 2003-09-11 Richard Henderson <rth@redhat.com>
6661
6662 * parse.y (source_end_java_method): Update for new
6663 cgraph_finalize_function argument.
6664
6665 2003-09-09 Richard Henderson <rth@redhat.com>
6666
6667 * parse.y (source_end_java_method): Update call to
6668 cgraph_finalize_function.
6669
6670 2003-09-03 Jeff Sturm <jsturm@one-point.com>
6671
6672 * decl.c (java_expand_body): New function.
6673 * expr.c (build_class_init): Set DECL_IGNORED_P.
6674 * java-tree.h (start_complete_expand_method,
6675 java_expand_body): Declare.
6676 * jcf-parse.c (cgraph.h): Include.
6677 (java_parse_file): Handle flag_unit_at_a_time.
6678 * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
6679 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
6680 (java_estimate_num_insns): Use walk_tree_without_duplicates.
6681 (java_start_inlining): New function.
6682 * parse.h (java_finish_classes): Declare.
6683 * parse.y: Include cgraph.h.
6684 (block): Don't special-case empty block production.
6685 (craft_constructor): Set DECL_INLINE.
6686 (source_end_java_method): Handle flag_unit_at_a_time.
6687 Replace inline code with call to java_expand_body.
6688 (start_complete_expand_method): Remove static modifier.
6689 (java_expand_method_bodies): Patch function tree for
6690 class initialization and/or synchronization as needed.
6691 Don't begin RTL expansion yet.
6692 (java_expand_classes): Check flag_unit_at_a_time before
6693 calling finish_class.
6694 (java_finish_classes): New function.
6695 (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
6696 (patch_assignment): Set DECL_CONTEXT on temporary variable.
6697 (emit_test_initialization): Set DECL_IGNORED_P.
6698
6699 2003-09-03 Roger Sayle <roger@eyesopen.com>
6700
6701 * builtins.c (enum builtin_type): Delete unused enumeration.
6702 * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
6703
6704 2003-08-28 Tom Tromey <tromey@redhat.com>
6705
6706 * gcj.texi (Extensions): Document gcjlib URLs.
6707
6708 2003-08-20 Tom Tromey <tromey@redhat.com>
6709
6710 * gcj.texi (Extensions): Added xref.
6711 (libgcj Runtime Properties): Document
6712 gnu.gcj.runtime.VMClassLoader.library_control.
6713
6714 2003-08-20 Andrew Haley <aph@redhat.com>
6715
6716 * except.c (prepare_eh_table_type): Use new encoding for exception
6717 handlers when using -fno-assume-compiled.
6718
6719 2003-08-13 Tom Tromey <tromey@redhat.com>
6720
6721 * gcj.texi (Invoking gij): Document -X and -?.
6722
6723 2003-08-13 Mohan Embar <gnustuff@thisiscool.com>
6724
6725 * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
6726 GCJH_OBJS, JCFDUMP_OBJS
6727 * win32-host.c: Removed the unnecessary and broken dependency
6728 on jcf.h
6729
6730 2003-08-11 Tom Tromey <tromey@redhat.com>
6731
6732 * parse.y (java_check_regular_methods): Typo fixes. Call
6733 check_interface_throws_clauses. Use
6734 check_concrete_throws_clauses.
6735 (check_interface_throws_clauses): New function.
6736 (check_concrete_throws_clauses): New function.
6737 (hack_is_accessible_p): New function.
6738 (find_most_specific_methods_list): Added FIXME.
6739 * typeck.c (lookup_do): Use `flags' argument to decide what to
6740 do. Reimplemented.
6741 (lookup_argument_method_generic): New function.
6742 (lookup_argument_method2): Removed.
6743 * jcf.h (ACC_INVISIBLE): New define.
6744 * jcf-write.c (generate_classfile): Skip invisible methods.
6745 * class.c (add_miranda_methods): New function.
6746 (layout_class_methods): Use it.
6747 (get_access_flags_from_decl): Use ACC_INVISIBLE.
6748 * java-tree.h (METHOD_INVISIBLE): New define.
6749 (lang_decl_func) [invisible]: New field.
6750 (lookup_argument_method_generic): Declare.
6751 (SEARCH_INTERFACE): New define.
6752 (SEARCH_SUPER): Likewise.
6753 (SEARCH_ONLY_INTERFACE): Likewise.
6754 (SEARCH_VISIBLE): Likewise.
6755 (lookup_argument_method2): Removed declaration.
6756
6757 2003-08-05 Tom Tromey <tromey@redhat.com>
6758
6759 Fix for PR java/11600:
6760 * parse.y (java_complete_lhs): See whether we're calling a method
6761 on an array.
6762 (check_thrown_exceptions): Added `is_array_call' argument;
6763 fixed `clone' checking; updated all callers.
6764
6765 2003-08-05 Steven Bosscher <steven@gcc.gnu.org>
6766
6767 * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
6768
6769 2003-08-03 Tom Tromey <tromey@redhat.com>
6770
6771 * java-tree.h (METHOD_TRANSIENT): Removed.
6772 * decl.c (pushdecl): Removed some dead code.
6773 * class.c (get_access_flags_from_decl): Can't have transient
6774 method.
6775 (add_method_1): Can't have a transient method.
6776
6777 2003-07-28 Andreas Jaeger <aj@suse.de>
6778
6779 * jvspec.c: Convert to ISO C90 prototypes.
6780
6781 2003-07-25 Nathan Sidwell <nathan@codesourcery.com>
6782
6783 * decl.c (force_poplevels): Fix warning call.
6784
6785 2003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
6786
6787 * expr.c (expand_java_field_op): Don't use xxx_with_decl
6788 (expand_java_field_op): Likewise.
6789 * class.c (layout_class_method): Likewise
6790 (emit_register_classes): Likewise.
6791 * decl.c (pushdecl): Likewise.
6792 (poplevel): Likewise.
6793 (force_poplevels): Likewise.
6794 (give_name_to_locals): Likewise.
6795 * check-init.c (check_for_initialization): Likewise.
6796
6797 2003-07-24 Jason Merrill <jason@redhat.com>
6798
6799 * java-tree.h: Move boolean_type_node et al to the back end.
6800
6801 2003-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6802
6803 * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
6804 casts.
6805
6806 2003-07-19 Neil Booth <neil@daikokuya.co.uk>
6807
6808 * lang.opt: Don't show -MD_ and -MDD_.
6809
6810 2003-07-18 Neil Booth <neil@daikokuya.co.uk>
6811
6812 * lang-options.h: Remove.
6813 * lang.opt: Add help text.
6814
6815 2003-07-15 Kazu Hirata <kazu@cs.umass.edu>
6816
6817 * expr.c: Remove the last argument to expand_assignment().
6818
6819 2003-07-09 Jan Hubicka <jh@suse.cz>
6820
6821 * java-tree.h (DECL_NUM_STMTS): Rename to...
6822 (DECL_ESTIMATED_INSNS): ... this.
6823 * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
6824 New static functions.
6825 (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
6826 * parser.y (add_stmt_to_compound): Do not account statements.
6827
6828 2003-07-08 Mark Wielaard <mark@klomp.org>
6829
6830 * gcj.texi: CNI now expands to Compiled Native Interface.
6831
6832 2003-07-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6833
6834 * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
6835
6836 2003-07-07 Nathan Sidwell <nathan@codesourcery.com>
6837
6838 * expr.c (expand_byte_code): Adjist emit_line_note call.
6839
6840 2003-07-06 Neil Booth <neil@daikokuya.co.uk>
6841
6842 * lang.c (java_handle_option): Don't handle filenames.
6843
6844 2003-07-02 Zack Weinberg <zack@codesourcery.com>
6845
6846 * jcf-path.c: Don't default-define PATH_SEPARATOR nor
6847 DIR_SEPARATOR.
6848 Use FILENAME_CMP.
6849 * jcf-write.c: Don't default-define DIR_SEPARATOR.
6850 * jcf.h: Delete COMPARE_FILENAMES definition.
6851
6852 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
6853
6854 * lang.c (java_init_options): Update prototype.
6855
6856 2003-07-01 Nathan Sidwell <nathan@codesourcery.com>
6857
6858 * decl.c (poplevel): Adjust define_label call.
6859
6860 2003-06-27 Zack Weinberg <zack@codesourcery.com>
6861
6862 * gjavah.c (flag_jni): Make non-static.
6863 * parse-scan.y (ctxp): Make non-static.
6864
6865 * class.c (build_method_symbols_entry)
6866 * expr.c (get_offset_table_index)
6867 * jcf-parse.c (jcf_parse):
6868 Mark the definition static, matching the forward declaration.
6869
6870 2003-06-26 Neil Booth <neil@daikokuya.co.uk>
6871
6872 * lang.c (java_handle_option): Don't check for missing arguments.
6873
6874 2003-06-20 Nathan Sidwell <nathan@codesourcery.com>
6875
6876 * class.c (push_class): Use a location_t to save place.
6877 (emit_register_classes): Set input_location. Adjust
6878 expand_function_end call.
6879 * resource.c (write_resource_constructor): Likewise.
6880 * decl.c (end_java_method): Adjust expand_function_end call.
6881 * parse.y (source_end_java_method): Likewise.
6882
6883 2003-06-17 Robert Abeles <rabeles@archaelogic.com>
6884
6885 * lang.c (java_handle_option): Likewise.
6886
6887 2003-06-16 Neil Booth <neil@daikokuya.co.uk>
6888
6889 * lang.c (java_handle_option): Special-casing of optional
6890 joined arguments no longer needed.
6891 * lang.opt: Update switches that take optional argument.
6892
6893 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
6894
6895 * lang.opt: Declare Java.
6896 * lang.c (java_init_options): Update.
6897
6898 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
6899
6900 * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
6901
6902 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
6903
6904 * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
6905 * lang.c (java_handle_option): -MD and -MMD have an underscore.
6906 * lang.opt: -MD and -MMD have an underscore.
6907
6908 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
6909
6910 * class.c (emit_register_classes): Adjust init_function_start
6911 call.
6912 * decl.c (complete_start_java_method): Likewise.
6913 * resource.c (write_resource_constructor): Likewise.
6914
6915 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
6916
6917 * Make-lang.in: Update to use options.c and options.h.
6918 * lang.c: Include options.h not j-options.h.
6919 (java_handle_option): Abort on unrecognized option.
6920 (java_init_options): Request Java switches.
6921
6922 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
6923
6924 * Make-lang.in: Handle mostlyclean.
6925
6926 2003-06-11 Tom Tromey <tromey@redhat.com>
6927
6928 * lang.c (java_handle_option): Update dependency_tracking for
6929 OPT_MF case.
6930
6931 * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
6932 empty argument.
6933
6934 2003-06-10 Andrew Haley <aph@redhat.com>
6935
6936 * resource.c (write_resource_constructor): Use expand_expr to
6937 generate the address of the label attached to a resource.
6938 * Make-lang.in (java/resource.o): Add expr.h
6939
6940 2003-06-10 Andrew Haley <aph@redhat.com>
6941
6942 * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
6943 (java_decl_ok_for_sibcall): New.
6944
6945 2003-06-09 Neil Booth <neil@daikokuya.co.uk>
6946
6947 * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
6948 (java/j-options.c, java/j-options.h): New.
6949 * java-tree.h (resource_name, compile_resource_file,
6950 compile_resource_data): Constify.
6951 * jcf-write.c (jcf_write_base_directory): Similarly.
6952 * jcf.h (jcf_write_base_directory): Similarly.
6953 * lang.c: Include j-options.h.
6954 (cl_options_count, cl_options, string_option, java_decode_option,
6955 lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
6956 process_option_with_no): Remove.
6957 (resource_name): Constify.
6958 (LANG_HOOKS_HANDLE_OPTION): Override.
6959 (java_handle_option): New.
6960 (java_init): Don't call jcf_path_init.
6961 (java_init_options): Call jcf_path_init.
6962 * lang.opt: New.
6963 * resource.c (compile_resource_data, compile_resource_file): Constify.
6964
6965 2003-06-09 Nathan Sidwell <nathan@codesourcery.com>
6966
6967 * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
6968 (struct lang_decl_func): Add last_line field.
6969 * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
6970 DECL_SOURCE_LINE_LAST): Remove.
6971 * parse.y (missing_return_error, finish_method_declaration,
6972 lookup_cl, start_artificial_method_body, source_end_java_method,
6973 start_complete_expand_method): Adjust.
6974
6975 2003-06-08 Tom Tromey <tromey@redhat.com>
6976
6977 * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
6978 fno-assume-compiled.
6979
6980 2003-06-08 Roger Sayle <roger@eyesopen.com>
6981
6982 * builtins.c (define_builtin_type, builtin_types): Delete.
6983 (define_builtin): Rewritten to take just the built-in code,
6984 the function's name, type and fallback library function name.
6985 All built-ins used by Java are implicit and BUILT_IN_NORMAL.
6986 (initialize_builtins): Overhaul to define the GCC builtins
6987 used by gcj manually, providing the Java run-time's
6988 implementations as the fallback library function.
6989
6990 2003-06-08 Anthony Green <green@redhat.com>
6991
6992 * parse.y (patch_cast): Fix conversions from floating-point to
6993 integral types.
6994
6995 2003-06-08 Neil Booth <neil@daikokuya.co.uk>
6996
6997 * Make-lang.in: Update.
6998 * lang.c: Include opts.h. Define cl_options_count and cl_options.
6999
7000 2003-06-07 Neil Booth <neil@daikokuya.co.uk>
7001
7002 * lang.c (java_init_options): Update.
7003
7004 2003-06-05 Jan Hubicka <jh@suse.cz>
7005
7006 * Make-lang.in: Add support for stageprofile and stagefeedback
7007
7008 2003-05-31 Roger Sayle <roger@eyesopen.com>
7009
7010 * lang.c (java_init_options): Prescribe wrap-around two's
7011 complement arithmetic overflow by setting flag_wrapv.
7012
7013 2003-05-29 Roger Sayle <roger@eyesopen.com>
7014
7015 * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
7016 (builtin_record): Add an additional builtin_code field to
7017 record which GCC built-in corresponds to the Java function.
7018 (java_builtins): Add new entries for atan, atan2, exp, log,
7019 pow and tan.
7020 (max_builtin, min_builtin, abs_builtin): Perform constant
7021 folding on the resulting tree.
7022 (java_build_function_call_expr): Likewise, perform constant
7023 folding on the resulting tree.
7024 (initialize_builtins): The NULL creators are now allowed in
7025 the java_builtins table, which is now terminated by an entry
7026 with builtin_code == END_BUILTINS.
7027 (check_for_builtin): Likewise. If the matching creator is
7028 NULL, construct the call using java_build_function_call_expr
7029 directly with the decl for the corresponding builtin_code.
7030
7031 2003-05-23 Nathanael Nerode <neroden@gcc.gnu.org>
7032
7033 * win32-host.c: Normalize copyright boilerplate.
7034
7035 2003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7036
7037 * parse.y (print_int_node): Use string concatentation on
7038 HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
7039 function calls into one.
7040
7041 2003-05-13 Zack Weinberg <zack@codesourcery.com>
7042
7043 * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
7044 fatal_io_error with calls to fatal_error; add ": %m" to the end of
7045 all the affected error messages.
7046
7047 2003-05-13 Richard Henderson <rth@redhat.com>
7048
7049 * class.c (layout_class_method): Set DECL_EXTERNAL.
7050 * decl.c (java_mark_decl_local, java_mark_class_local): New.
7051 * java-tree.h (java_mark_class_local): Declare.
7052 * jcf-parse.c (parse_class_file): Use it.
7053 * parse.y (java_expand_classes): Likewise.
7054
7055 2003-05-04 Nathan Sidwell <nathan@codesourcery.com>
7056
7057 * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
7058 * lex.h: #include input.h.
7059 * jv-scan.c (input_filename): Remove.
7060
7061 2003-05-02 Tom Tromey <tromey@redhat.com>
7062
7063 PR java/10491:
7064 * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
7065 (handle_inner_classes): New function.
7066
7067 2003-05-01 Tom Tromey <tromey@redhat.com>
7068
7069 PR java/10459:
7070 * parse.y (finish_for_loop): Do nothing if update expression is a
7071 EXPR_WFL_NODE wrapping nothing.
7072 (java_complete_lhs) <COMPOUND_EXPR>: Likewise.
7073
7074 2003-05-02 Nathan Sidwell <nathan@codesourcery.com>
7075
7076 * lex.h (input_lineno): Remove declaration.
7077 * parse-scan.y: #include input.h.
7078 (input_filename): Remove declaration.
7079 (input_location): Add definition.
7080 (input_line): Remove definition.
7081
7082 2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
7083
7084 * lex.h (lineno): Rename to ...
7085 (input_line): ... here
7086 * parse-scan.y (lineno): Rename to ...
7087 (input_line): ... here.
7088 (reset_report): Rename lineno to input_line.
7089 * check-init.c (check_init): Likewise.
7090 * class.c (push_class): Likewise.
7091 * decl.c (complete_start_java_method, end_java_method): Likewise.
7092 * expr.c (expand_byte_code): Likewise.
7093 * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
7094 * jcf-write.c (generate_bytecode_insns): Likewise.
7095 * lex.c (java_init_lex, java_allocate_new_line,
7096 do_java_lex): Likewise.
7097 * parse.h (YYNOT_TWICE): Likewise.
7098 * parse.y (empty_statement, expression_statement,
7099 java_pop_parser_context, java_parser_context_save_global,
7100 yyerror, register_fields, method_header, safe_layout_class,
7101 find_in_imports_on_demand, create_artificial_method,
7102 source_end_java_method, start_complete_expand_method,
7103 build_thisn_assign, java_complete_lhs,
7104 maybe_absorb_scoping_block): Likewise.
7105
7106 2003-04-20 Mohan Embar <gnustuff@thisiscool.com>
7107
7108 * jcf-io.c (find_class): use DIR_SEPARATOR instead of
7109 '/' when computing java source filename
7110
7111 2003-04-13 Tom Tromey <tromey@redhat.com>
7112
7113 * gjavah.c (print_c_decl): Indentation fix.
7114
7115 2003-04-12 Zack Weinberg <zack@codesourcery.com>
7116
7117 * class.c (make_field_value, make_method_value, get_dispatch_table)
7118 (make_class_data, emit_offset_symbol_table)
7119 * constants.c (build_constants_constructor)
7120 * java-tree.h (START_RECORD_CONSTRUCTOR)
7121 * parse.y (maybe_build_array_element_wfl):
7122 Use build_constructor.
7123
7124 2003-04-10 Eric Blake <ebb9@email.byu.edu>
7125
7126 PR java/10253:
7127 * parse.y (string_convert_int_cst): Always use at least one digit
7128 in string conversion. Remove ASCII dependence.
7129 (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
7130
7131 2003-03-16 Mohan Embar <gnustuff@thisiscool.com>
7132
7133 * Make-lang.in: added win32-host.c
7134 * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
7135 resolves to open() on non-Win32 platforms and
7136 Win32-specific jcf_open_exact_case() on Win32
7137 * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
7138 when trying .java and .class files
7139 * win32-host.c: added to repository. Defines
7140 Win32-specific jcf_open_exact_case()
7141
7142 2003-04-10 Andrew Haley <aph@redhat.com>
7143
7144 * jcf-write.c (struct jcf_partial): num_jsrs: new field.
7145 (maybe_free_localvar): Renamed from localvar_free.
7146 Add new arg, really.
7147 (generate_bytecode_insns): Set new variable, jsrs.
7148 Only free local vars if no jsr insns have been emittted.
7149 Call maybe_free_localvar, not localvar_free.
7150
7151 2003-03-30 Joseph S. Myers <jsm@polyomino.org.uk>
7152
7153 * gcj.texi: Remove @ at start of file.
7154
7155 2003-03-25 Tom Tromey <tromey@redhat.com>
7156
7157 * parse.y (create_interface): Call CHECK_DEPRECATED.
7158
7159 2003-03-23 Zack Weinberg <zack@codesourcery.com>
7160
7161 * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
7162
7163 2003-03-21 Zack Weinberg <zack@codesourcery.com>
7164
7165 * javaop.h (jfloat, jdouble): Make them structures mirroring
7166 the bit fields of IEEE float and double respectively.
7167 (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
7168 JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
7169 (union Word, union DWord): Delete.
7170 (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
7171
7172 * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
7173 D_NAN_MASK): Delete.
7174 (jni_print_float, jni_print_double): New. Generate
7175 hexadecimal floating constants.
7176 (print_field_info): Use jni_print_float/double.
7177
7178 * jcf-dump.c: Include math.h. Use ldexp/frexp to assemble
7179 finite floating point numbers for output; special case
7180 non-finite floats.
7181
7182 2003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>
7183
7184 * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
7185 Replace 0 and 1 with true and false in return statements.
7186
7187 2003-03-19 Tom Tromey <tromey@redhat.com>
7188
7189 * lex.c (do_java_lex): Renamed from java_lex.
7190 (java_lex): New function.
7191 Include timevar.h.
7192
7193 2003-03-13 Tom Tromey <tromey@redhat.com>
7194
7195 * parse.y (resolve_inner_class): Error if qualifier is a primitive
7196 type.
7197
7198 2003-03-04 Andrew Haley <aph@redhat.com>
7199
7200 * gjavah.c (is_first_data_member): New global variable.
7201 (print_c_decl): If it's the first data member, align it as the
7202 superclass.
7203 (process_file): Set is_first_data_member.
7204
7205 2003-03-11 Tom Tromey <tromey@redhat.com>
7206
7207 * parse.y (resolve_field_access): Initialize class if field is
7208 found in another static field.
7209 * expr.c (build_class_init): Don't optimize out initialization of
7210 implemented interface.
7211
7212 2003-03-11 Andrew Haley <aph@redhat.com>
7213
7214 * jcf-io.c (caching_stat): Initialize origsep to remove compiler
7215 warning.
7216
7217 2003-03-10 Ranjit Mathew <rmathew@hotmail.com>
7218
7219 * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
7220 and DIR_SEPARATOR_2 for a target.
7221 Correct minor typos.
7222
7223 * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
7224 and DIR_SEPARATOR_2 for a target into account.
7225
7226 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
7227
7228 * lang.c (java_init): Update prototype, move code to java_post_options.
7229 (java_post_options): Similarly.
7230
7231 2003-03-05 Ranjit Mathew <rmathew@hotmail.com>
7232
7233 * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
7234 compare file name components depending on the case-sensitivity
7235 or otherwise of the host file system.
7236
7237 * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
7238 "strcmp" to compare file name components.
7239 Use IS_DIR_SEPARATOR instead of comparing directly against
7240 DIR_SEPARATOR.
7241 (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
7242 comparing directly against DIR_SEPARATOR.
7243
7244 2003-03-04 Tom Tromey <tromey@redhat.com>
7245
7246 * Make-lang.in (java.tags): New target.
7247
7248 2003-03-01 Roger Sayle <roger@eyesopen.com>
7249
7250 * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
7251 (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
7252
7253 2003-03-01 Tom Tromey <tromey@redhat.com>
7254
7255 * parse.y (jdep_resolve_class): Only check deprecation if we found
7256 a decl.
7257
7258 2003-02-28 Tom Tromey <tromey@redhat.com>
7259
7260 PR java/9695:
7261 * class.c (maybe_layout_super_class): Always pass a WFL to
7262 do_resolve_class.
7263 * parse.y (do_resolve_class): Updated comment to explain
7264 parameters.
7265
7266 2003-02-26 Tom Tromey <tromey@redhat.com>
7267
7268 * jcf-write.c (generate_classfile): Check whether class is
7269 deprecated before writing attribute count.
7270
7271 2003-02-25 Roger Sayle <roger@eyesopen.com>
7272
7273 * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
7274 built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
7275
7276 2003-02-23 Tom Tromey <tromey@redhat.com>
7277
7278 * lang-options.h: Added -Wdeprecated.
7279 * gcj.texi (Warnings): Document -Wdeprecated.
7280 * java-tree.h (flag_deprecated): Declare.
7281 * lang.c (lang_W_options): Added deprecated.
7282 (flag_deprecated): New global.
7283 * chartables.h: Rebuilt.
7284 * gen-table.pl (process_one): Look at whitespace.
7285 (print_tables): Define LETTER_SPACE, LETTER_MASK.
7286 * parse.h (CLEAR_DEPRECATED): New macro.
7287 (CHECK_DEPRECATED_NO_RESET): New macro.
7288 * jcf-parse.c (handle_deprecated): New function.
7289 (HANDLE_DEPRECATED_ATTRIBUTE): New define.
7290 * jcf-reader.c (get_attribute): Handle Deprecated attribute.
7291 * parse.y (resolve_type_during_patch): Check deprecation.
7292 (jdep_resolve_class): Likewise.
7293 (process_imports): Likewise.
7294 (resolve_expression_name): Likewise.
7295 (check_deprecation): Strip arrays from decl. Check
7296 flag_deprecated.
7297 (patch_method_invocation): Also check the particular constructor
7298 for deprecation.
7299 (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
7300 * jcf-write.c (append_deprecated_attribute): New function.
7301 (generate_classfile): Generate deprecated attribute when
7302 appropriate.
7303 * lex.c (java_parse_doc_section): Return type now void. Rewrote.
7304 (java_lex) [case '*']: Simplify logic.
7305 (java_start_char_p): Use LETTER_MASK.
7306 (java_part_char_p): Likewise.
7307 (java_space_char_p): New function.
7308
7309 2003-02-20 Nathan Sidwell <nathan@codesourcery.com>
7310
7311 Change base class access representation.
7312 * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
7313 (add_interface_do): Likewise.
7314
7315 2003-02-12 Ranjit Mathew <rmathew@hotmail.com>
7316
7317 * decl.c (java_init_decl_processing): Change
7318 soft_lookupjnimethod_node to reflect the change in
7319 signature of _Jv_LookupJNIMethod in libjava/jni.cc
7320 * expr.c (build_jni_stub): Calculate and pass the size
7321 on the stack of the arguments to a JNI function. Use
7322 new target macro MODIFY_JNI_METHOD_CALL to allow a
7323 target to modify the call to a JNI method.
7324
7325 2003-02-08 Roger Sayle <roger@eyesopen.com>
7326
7327 * jcf-io.c (java_or_class_file): Use libiberty's lbasename
7328 instead of basename to avoid compiler warnings on Tru64.
7329
7330 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
7331
7332 * gcj.texi: Update to GFDL 1.2.
7333
7334 2003-01-31 Andrew Haley <aph@redhat.com>
7335
7336 * parse.y (java_expand_classes): Scan the whole class list looking
7337 for access methods that haven't yet been expanded.
7338
7339 2003-01-31 Adrian Bunk <bunk@fs.tum.de>
7340
7341 Fix for java/4269:
7342
7343 * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
7344 to fix bootstrap on sparc-unknown-netbsdelf1.5.
7345 * jcf-parse.c: Likewise.
7346
7347 2003-01-31 Mark Wielaard <mark@klomp.org>
7348
7349 * gjavah.c (throwable_p): Allocate 1 more byte for string.
7350
7351 2003-01-31 Nathan Sidwell <nathan@codesourcery.com>
7352
7353 * class.c (make_class): Use BINFO_ELTS.
7354 (set_super_info): Likewse.
7355 (add_interface_do): Likewise.
7356
7357 2003-01-30 Tom Tromey <tromey@redhat.com>
7358
7359 * jcf-parse.c (read_class): Update identifier's class value if it
7360 changed during parsing.
7361
7362 2003-01-30 Loren James Rittle <ljrittle@acm.org>
7363
7364 * Make-lang.in (po-generated): Find the targets in $(parsedir).
7365 Propagate change to all other rules as required.
7366 (java/parse-scan.o): Add explicit dependency on
7367 $(parsedir)/java/parse-scan.c .
7368
7369 2003-01-29 Tom Tromey <tromey@redhat.com>
7370
7371 * parse.y (patch_assignment): Only transform the rhs of an
7372 assignment when compiling to native.
7373
7374 2003-01-28 Tom Tromey <tromey@redhat.com>
7375
7376 * jcf-write.c (generate_bytecode_conditional): Typo fixes.
7377
7378 2003-01-28 Tom Tromey <tromey@redhat.com>
7379
7380 * lex.c (java_lex): Don't include UEOF as part of token.
7381 (java_read_unicode): Error if \u sequence prematurely terminated.
7382
7383 2003-01-27 Tom Tromey <tromey@redhat.com>
7384
7385 * parse.y (java_check_regular_methods): Check for construct after
7386 checking types in throws clause.
7387
7388 2003-01-24 Tom Tromey <tromey@redhat.com>
7389
7390 * class.c (build_static_field_ref): Only a String or numeric field
7391 can fold to a constant.
7392
7393 2003-01-23 Tom Tromey <tromey@redhat.com>
7394
7395 * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
7396 file name in resource buffer.
7397
7398 2003-01-23 Tom Tromey <tromey@redhat.com>
7399
7400 * expr.c (build_known_method_ref): Use method's context to find
7401 method table index.
7402
7403 2003-01-23 Tom Tromey <tromey@redhat.com>
7404
7405 * constants.c (set_constant_entry): Allocated cleared memory.
7406
7407 2003-01-22 Tom Tromey <tromey@redhat.com>
7408
7409 * java-tree.h: Don't use PARAMS.
7410 * resource.c: Add prototypes for all functions.
7411 (write_resource_constructor): Use `const char *' to avoid
7412 warning.
7413
7414 2003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>
7415
7416 * jcf-parse.c (process_zip_dir): Remove unused variable.
7417
7418 2003-01-22 Tom Tromey <tromey@redhat.com>
7419
7420 * expr.c (build_invokeinterface): Abort if method's context is not
7421 an interface.
7422
7423 2003-01-22 Tom Tromey <tromey@redhat.com>
7424
7425 * gcj.texi (Input and output files): Mention non-class entries.
7426 * decl.c (java_init_decl_processing): Call
7427 init_resource_processing.
7428 * java-tree.h (compile_resource_data, write_resource_constructor,
7429 compile_resource_file, init_resource_processing): Declare.
7430 * config-lang.in (gtfiles): Added resource.c.
7431 * Make-lang.in (gt-java-resource.h): New target.
7432 (JAVA_OBJS): Added resource.o.
7433 (java/resource.o): New target.
7434 * resource.c: New file.
7435 * class.c (compile_resource_file): Moved to resource.c.
7436 (registerResource_libfunc): Likewise.
7437 (utf8_decl_list): Mark with GTY; now static.
7438 * jcf-parse.c (classify_zip_file): New function.
7439 (parse_zip_file_entries): Use it; compile .properties files.
7440 (process_zip_dir): Use classify_zip_file and compute_class_name.
7441 Don't write class name into zip directory.
7442 (java_parse_file): Call write_resource_constructor.
7443 (compute_class_name): New function.
7444 * jcf-io.c (read_zip_member): Reindented.
7445
7446 2003-01-21 Tom Tromey <tromey@redhat.com>
7447
7448 * class.c (supers_all_compiled): New function.
7449 (make_class_data): Use it.
7450
7451 2003-01-21 Tom Tromey <tromey@redhat.com>
7452
7453 * parse.y (method_header): Native method can't be strictfp.
7454 No method can be transient or volatile.
7455
7456 2003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7457
7458 Make-lang.in (jvspec.o-warn): Add -Wno-error.
7459
7460 2003-01-18 Kazu Hirata <kazu@cs.umass.edu>
7461
7462 * check-init.c: Fix comment typos.
7463 * class.c: Likewise.
7464 * constants.c: Likewise.
7465 * decl.c: Likewise.
7466 * except.c: Likewise.
7467 * expr.c: Likewise.
7468 * java-except.h: Likewise.
7469 * java-tree.h: Likewise.
7470 * javaop.h: Likewise.
7471 * jcf-dump.c: Likewise.
7472 * jcf-io.c: Likewise.
7473 * jcf-parse.c: Likewise.
7474 * jcf-write.c: Likewise.
7475 * lang.c: Likewise.
7476 * mangle.c: Likewise.
7477 * typeck.c: Likewise.
7478 * verify.c: Likewise.
7479
7480 2003-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7481
7482 * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
7483 * jcf-write.c: Include "tm_p.h".
7484
7485 2003-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7486
7487 * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
7488
7489 2003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7490
7491 * builtins.c (java_build_function_call_expr): Renamed from
7492 build_function_call_expr. All callers changed.
7493
7494 * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
7495 * jcf-parse.c: Include tm_p.h.
7496
7497 * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
7498 warning.
7499
7500 2003-01-14 Tom Tromey <tromey@redhat.com>
7501
7502 * class.c (make_class_data): Check that super is compiled before
7503 building class reference to it.
7504
7505 2003-01-14 Andrew Haley <aph@redhat.com>
7506
7507 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7508 varargs function -- correct.
7509
7510 2003-01-14 Andrew Haley <aph@redhat.com>
7511
7512 * decl.c (java_init_decl_processing): Temporarily back out previous patch.
7513
7514 2003-01-14 Andrew Haley <aph@redhat.com>
7515
7516 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7517 varargs function -- correct.
7518
7519 * parse.y (patch_assignment): Copy the rhs of an assignment into a
7520 temporary if the RHS is a reference.
7521
7522 2003-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7523
7524 * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
7525 * keyword.h: Regenerated.
7526
7527 * All Files: Convert to ISO C style function definitions.
7528
7529 2003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
7530
7531 * parse.y (check_pkg_class_access): ANSIfy definition.
7532
7533 2003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7534
7535 * decl.c, parse-scan.y, parse.y: Don't cast return value of
7536 xmalloc et al.
7537
7538 * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
7539
7540 2003-01-09 Geoffrey Keating <geoffk@apple.com>
7541
7542 Merge from pch-branch:
7543
7544 2002-12-02 Geoffrey Keating <geoffk@apple.com>
7545
7546 * Make-lang.in (java/gjavah.o): Update dependencies.
7547 * gjavah.c: Include ggc.h.
7548
7549 2002-08-16 Geoffrey Keating <geoffk@redhat.com>
7550
7551 * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
7552 (JCFDUMP_OBJS): Add ggc-none.o.
7553 (java/jcf-dump.o): Depend on GGC_H.
7554 * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
7555 CPool substructures.
7556 * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
7557 * jcf-dump.c: Include ggc.h.
7558
7559 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
7560
7561 * jcf.h (union cpool_entry): New.
7562 (struct CPool): Use gengtype to mark. Change field 'data' to be
7563 an array of unions.
7564 (struct JCF): Use gengtype to mark.
7565 (CPOOL_UINT): Update for new cpool_entry type.
7566 (CPOOL_USHORT1): Likewise.
7567 (CPOOL_USHORT2): Likewise.
7568 (CPOOL_FINISH): Use GC to free cpool subfields.
7569 * parse.h (struct parser_ctxt): Mark field current_jcf.
7570 * lex.c (java_init_lex): Use GC to allocate struct JCF.
7571 * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
7572 (main_jcf): Use gengtype to mark.
7573 (ggc_mark_jcf): Delete.
7574 (get_constant): Update for new cpool_entry type.
7575 (give_name_to_class): Likewise.
7576 (get_class_constant): Likewise.
7577 (init_outgoing_cpool): Use GGC to allocate struct CPool.
7578 (java_parse_file): Use GGC to allocate struct JCF.
7579 (init_jcf_parse): Don't call ggc_add_root.
7580 * jcf-reader.c (jcf_parse_constant_pool): Update for new
7581 cpool_entry type.
7582 * java-tree.h (current_jcf): Use gengtype to mark.
7583 (CPOOL_UTF): Update for new cpool_entry type.
7584 (outgoing_cpool): Use gengtype to mark.
7585 (struct lang_type): GC struct JCF and struct CPool.
7586 * config-lang.in (gtfiles): Add jcf.h.
7587 * constants.c (find_tree_constant): New.
7588 (set_constant_entry): Allocate cpool subfields using GGC. Update
7589 for new cpool_entry type.
7590 (find_constant1): Update for new cpool_entry type.
7591 (find_constant2): Likewise.
7592 (find_utf8_constant): Use find_tree_constant.
7593 (find_class_or_string_constant): Remove unnecessary cast to jword.
7594 Update for new cpool_entry type.
7595 (count_constant_pool_bytes): Update for new cpool_entry type.
7596 (write_constant_pool): Likewise.
7597 (alloc_name_constant): Use find_tree_constant.
7598 (build_constants_constructor): Update for new cpool_entry type.
7599
7600 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
7601
7602 * parse.y (mark_parser_ctxt): Delete.
7603 (goal): Don't use ggc_add_root.
7604 (create_new_parser_context): Use GC to allocate struct parser_ctxt.
7605 (java_pop_parser_context): Let GC free parser_ctxt.
7606 (java_parser_context_resume): Likewise.
7607 * parse.h (struct parser_ctxt): Use gengtype to mark.
7608 (ctxp): Likewise.
7609 (ctxp_for_generation): Likewise.
7610 * lex.h (struct java_lc_s): Mark for gengtype.
7611 (java_lexer): Rearrange for gengtype.
7612 * config-lang.in (gtfiles): Add lex.h, parse.h.
7613
7614 2003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7615
7616 * All Files: Remove PARAMS macro.
7617
7618 * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
7619 jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
7620 `__STDC__' macros.
7621
7622 * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
7623 VA_CLOSE.
7624
7625 2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
7626
7627 * Make-lang.in (java.install-common, java.uninstall,
7628 java.install-info, java.install-man): Prepend $(DESTDIR)
7629 to destination paths in all (un)installation commands.
7630 (java.install-common): Rewrite $(LN) command to support
7631 DESTDIR with "ln" as well as with "ln -s".
7632
7633 2003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>
7634
7635 * java-tree.h: Protect against multiple inclusion.
7636
7637 2003-01-07 Tom Tromey <tromey@redhat.com>
7638
7639 * class.c (add_assume_compiled): Don't adjust parent if we're
7640 already at the root of tree.
7641
7642 2003-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7643
7644 * lang.c (dump_compound_expr): Prototype.
7645
7646 2003-01-03 Tom Tromey <tromey@redhat.com>
7647
7648 Fix for PR java/8712:
7649 * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
7650 when simply checking against `null'.
7651
7652 2003-01-03 Tom Tromey <tromey@redhat.com>
7653
7654 * gcj.texi (Standard Properties): Document http.proxyHost and
7655 http.proxyPort.
7656
7657 * gcj.texi (GNU Classpath Properties): Document new properties.
7658
7659 2003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
7660
7661 * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
7662 java/lang-options.h, java/mangle.c, java/mangle_name.c,
7663 java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
7664
7665 2003-01-01 Steven Bosscher <s.bosscher@student.tudelft.nl>
7666
7667 * Make-lang.in, boehm.c, buffer.c,
7668 buffer.h, builtins.c, class.c,
7669 config-lang.in, constants.c,
7670 convert.h, decl.c, except.c,
7671 expr.c, java-except.h,
7672 java-tree.h, javaop.def,
7673 jcf-parse.c, jcf-write.c,
7674 jv-scan.c, jvgenmain.c,
7675 jvspec.c, keyword.gperf,
7676 keyword.h, lang-options.h,
7677 lang-specs.h, lang.c, lex.c,
7678 lex.h, mangle.c, mangle_name.c,
7679 parse-scan.y, parse.h, parse.y,
7680 typeck.c, verify.c, xref.c,
7681 xref.h: Replace "GNU CC" with
7682 "GCC" in the copyright header.
7683
7684 * check-init.c, gjavah.c, javaop.h,
7685 jcf-depend.c, jcf-dump.c, jcf-io.c,
7686 jcf-path.c, jcf-reader.c, jcf.h,
7687 zextract.c, zipfile.h: These files are
7688 "part of GCC". Also say "GCC" not "GNU CC".
7689
7690 2002-12-30 DJ Delorie <dj@redhat.com>
7691
7692 * Make-lang.in: Protect against texi2pod/pod2man failing.
7693
7694 2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
7695
7696 * gcj.texi: Use @copying.
7697
7698 2002-12-27 Mark Mitchell <mark@codesourcery.com>
7699
7700 * gjavah.c (print_name_for_stub_or_jni): Adjust call to
7701 print_cxx_classname.
7702 (print_cxx_classname): Add add_scope parameter.
7703 (print_class_decls): Do not emit a semicolon after the extern
7704 "Java" block.
7705 (process_file): Adjust calls to print_cxx_classname.
7706
7707 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
7708
7709 * gcj.texi: Include Cover Texts in man page.
7710
7711 2002-12-23 Jeff Sturm <jsturm@one-point.com>
7712
7713 * class.c (build_static_field_ref): Check FIELD_FINAL.
7714
7715 * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
7716 instead of current_constant_pool_data_ref.
7717 * java-tree.h (current_constant_pool_data_ref): Undefine.
7718 (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
7719 * jcf-parse.c (init_outgoing_cpool): Don't initialize
7720 current_constant_pool_data_ref.
7721
7722 * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
7723 not build_internal_class_name.
7724
7725 * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
7726 Use it when class ref isn't certain to be compiled.
7727
7728 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
7729
7730 * gcj.texi: Include gcc-common.texi.
7731 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
7732 $(srcdir)/doc/include/gcc-common.texi.
7733
7734 2002-12-22 Anthony Green <green@redhat.com>
7735
7736 * gcj.texi (Limitations): Add note about org.xml.sax and
7737 org.w3c.dom.
7738
7739 2002-12-20 Tom Tromey <tromey@redhat.com>
7740
7741 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
7742 where minimum case value is Integer.MIN_VALUE.
7743 Fixes PR java/8955.
7744
7745 2002-12-18 Andrew Haley <aph@redhat.com>
7746
7747 * parse.y (patch_invoke): Force evaluation order when `check' is
7748 set. For PR libgcj/8945.
7749
7750 2002-12-16 Mark Mitchell <mark@codesourcery.com>
7751
7752 * gcj.texi: Change version number to 3.4.
7753
7754 2002-12-05 Ranjit Mathew <rmathew@hotmail.com>
7755 Andrew Haley <aph@redhat.com>
7756
7757 * parse.y (source_end_java_method): Remove custom encoding of line
7758 numbers for a function decl before passing it to the back end.
7759
7760 2002-12-03 Andrew Haley <aph@redhat.com>
7761
7762 * class.c (make_class_data): New field, "chain".
7763 * decl.c (java_init_decl_processing): Likewise.
7764
7765 2002-12-02 Tom Tromey <tromey@redhat.com>
7766
7767 For PR java/8740:
7768 * parse.y (do_resolve_class): Handle qualified name via
7769 recursion.
7770
7771 2002-11-30 Zack Weinberg <zack@codesourcery.com>
7772
7773 * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
7774 constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
7775 jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
7776 jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
7777 parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
7778 Include coretypes.h and tm.h.
7779 * Make-lang.in: Update dependencies.
7780
7781 2002-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7782
7783 * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
7784
7785 2002-11-25 Diego Novillo <dnovillo@redhat.com>
7786
7787 * jcf-reader.c: Don't expand JCF_readu4 inside the
7788 expansion of JCF_SKIP.
7789
7790 2002-11-25 Diego Novillo <dnovillo@redhat.com>
7791
7792 * jcf-reader.c: Don't expand JCF_readu4 inside the
7793 expansion of JCF_SKIP.
7794
7795 2002-11-22 Tom Tromey <tromey@redhat.com>
7796
7797 * parse.y (patch_binop): Cast right hand side of shift expression
7798 to `int'. Fixes PR java/8676.
7799
7800 2002-11-22 Ranjit Mathew <rmathew@hotmail.com>
7801 Andrew Haley <aph@redhat.com>
7802
7803 * gcc/java/jcf-write.c (write_classfile): Remove target
7804 class file, if it exists, before renaming the temporary
7805 class file to it.
7806
7807 2002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
7808
7809 * jvspec.c (lang_specific_spec_functions): New.
7810
7811 2002-11-18 Tom Tromey <tromey@redhat.com>
7812
7813 Fix for PR java/7912:
7814 * expr.c (can_widen_reference_to): Allow cast of array to
7815 Cloneable or Serializable.
7816 * java-tree.h (java_lang_cloneable_identifier_node): Declare.
7817 (java_io_serializable_identifier_node): Likewise.
7818 * parse.y (java_lang_cloneable, java_io_serializable): Removed.
7819 (valid_ref_assignconv_cast_p): Use new identifier nodes.
7820 * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
7821 java_io_serializable.
7822 * decl.c (java_init_decl_processing): Initialize
7823 java_lang_cloneable_identifier_node and
7824 java_io_serializable_identifier_node.
7825 (java_lang_cloneable_identifier_node): New global.
7826 (java_io_serializable_identifier_node): Likewise.
7827
7828 2002-11-14 Jens-Michael Hoffmann <jensmh@gmx.de>
7829
7830 * buffer.c: Remove unnecessary casts.
7831 * check-init.c: Likewise.
7832 * class.c: Likewise.
7833 * constants.c: Likewise.
7834 * decl.c: Likewise.
7835 * except.c: Likewise.
7836 * gjavah.c: Likewise.
7837 * jcf-io.c: Likewise.
7838 * jcf-parse.c: Likewise.
7839 * jcf-path.c: Likewise.
7840 * jvspec.c: Likewise.
7841 * lang.c: Likewise.
7842 * lex.c: Likewise.
7843 * verify.c: Likewise.
7844
7845 2002-11-06 Tom Tromey <tromey@redhat.com>
7846
7847 * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
7848 a JNI header.
7849
7850 2002-11-05 Tom Tromey <tromey@redhat.com>
7851
7852 Fix for PR java/6388.
7853 * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
7854 * java-tree.h (enum java_tree_index): New values
7855 JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
7856 (decimal_int_max, decimal_long_max): New defines.
7857 * lex.c (yylex): Rewrote range checking. Sign extend literals.
7858 (error_if_numeric_overflow): Rewrote range checking.
7859 * decl.c (java_init_decl_processing): Initialize decimal_int_max,
7860 decimal_long_max.
7861
7862 2002-11-02 Tom Tromey <tromey@redhat.com>
7863
7864 * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
7865
7866 * class.c (make_method_value): Put class name, not signature, into
7867 `throws' field. For PR java/8415.
7868
7869 2002-10-24 Tom Tromey <tromey@redhat.com>
7870
7871 * gcj.texi (Invoking gij): Document --showversion.
7872 (Standard Properties): java.library.path now set.
7873
7874 2002-10-23 Tom Tromey <tromey@redhat.com>
7875
7876 * gjavah.c (decode_signature_piece): In JNI mode, print
7877 `jobjectArray' when array depth is nonzero.
7878 Fixes PR java/8296.
7879
7880 2002-10-15 Andrew Haley <aph@redhat.com>
7881
7882 * parse.y (patch_invoke): Call force_evaluation_order on a static
7883 arg list.
7884 (resolve_qualified_expression_name): Call force_evaluation_order
7885 on a arg list that is part of a Qualified Expression Name.
7886
7887 * lang.c (dump_compound_expr): New.
7888 (java_dump_tree): New.
7889
7890 2002-10-20 Ranjit Mathew <rmathew@hotmail.com>
7891
7892 * gcj.texi: Added item describing the GCJ runtime property
7893 "gnu.gcj.progname".
7894
7895 2002-10-15 Richard Henderson <rth@redhat.com>
7896
7897 * jcf-parse.c (get_constant): Fix type warning.
7898
7899 2002-10-15 Andrew Haley <aph@redhat.com>
7900
7901 * java-tree.h (java_inlining_merge_static_initializers): Declare.
7902 (java_inlining_map_static_initializers): Declare.
7903
7904 2002-10-14 Andrew Haley <aph@redhat.com>
7905
7906 * tree-inline.c (remap_block): All local class initialization
7907 flags go in the outermost scope.
7908 (expand_call_inline): Call java_inlining_map_static_initializers.
7909 (expand_call_inline): Call java_inlining_merge_static_initializers.
7910 * java/lang.c (merge_init_test_initialization): New.
7911 (java_inlining_merge_static_initializers): New.
7912 (inline_init_test_initialization): New.
7913 (java_inlining_map_static_initializers): New.
7914
7915 2002-10-11 Mark Wielaard <mark@klomp.org>
7916
7917 * gcj.texi (Compatibility): Add Limitations and Extensions section.
7918
7919 2002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7920
7921 * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
7922
7923 2002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7924
7925 * parse.y (merge_string_cste): Add parentheses around & within |.
7926
7927 2002-10-08 Tom Tromey <tromey@redhat.com>
7928
7929 * parse.y (variable_declarator_id): Simplify error path for
7930 array declarator error. For PR java/8003.
7931
7932 2002-10-08 Zack Weinberg <zack@codesourcery.com>
7933
7934 * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
7935 bug_report_url.
7936
7937 2002-10-08 Andrew Haley <aph@redhat.com>
7938
7939 * parse.y (attach_init_test_initialization_flags): Check for
7940 error_mark_node.
7941
7942 2002-10-07 Anthony Green <green@redhat.com>
7943
7944 * parse.y (merge_string_cste): Fix bug in string concatenation.
7945
7946 2002-10-03 Michael Koch <konqueror@gmx.de>
7947
7948 * gcj.texi (Standard properties):
7949 Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
7950
7951 2002-10-02 Roger Sayle <roger@eyesopen.com>
7952
7953 PR optimization/6627
7954 * lang.c (java_init): If storing the vbit in function
7955 pointers, ensure that force_align_functions_log is atleast
7956 one to aid compatability with g++ vtables.
7957
7958 2002-10-01 Nathan Sidwell <nathan@codesourcery.com>
7959
7960 * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
7961 foul of type-based aliasing.
7962
7963 2002-09-30 Anthony Green <green@redhat.com>
7964
7965 * gcj.texi (Invoking jv-scan): Fix texinfo.
7966
7967 2002-09-28 Anthony Green <green@redhat.com>
7968
7969 * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
7970 (Code Generation): Add -fno-assert documentation.
7971 * jv-scan.c (flag_assert): New global.
7972 (options): Add assert option.
7973 (help): Add --no-assert documentation.
7974 * parse-scan.y (flag_assert): New global.
7975 * lang.c (lang_f_options): Add -fassert/-fno-assert support.
7976 (flag_assert): New global.
7977 * java-tree.h (flag_assert): New global.
7978 * lex.c (java_lex): Obey flag_assert.
7979 * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
7980 calling cc1.
7981
7982 2002-09-26 Andrew Haley <aph@redhat.com>
7983
7984 * expr.c (build_java_array_length_access): Check for null pointer.
7985 * expr.c (expand_java_arrayload): Likewise.
7986
7987 2002-09-21 Richard Henderson <rth@redhat.com>
7988
7989 * jcf-parse.c (get_constant): Decode from IEEE no matter
7990 what the target format.
7991
7992 2002-09-20 Kazu Hirata <kazu@cs.umass.edu>
7993
7994 * ChangeLog: Follow spelling conventions.
7995 * class.c: Likewise.
7996 * decl.c: Likewise.
7997 * expr.c: Likewise.
7998 * gjavah.c: Likewise.
7999 * java-tree.h: Likewise.
8000 * jcf-dump.c: Likewise.
8001 * jcf-parse.c: Likewise.
8002 * jvspec.c: Likewise.
8003 * lang.c: Likewise.
8004 * mangle.c: Likewise.
8005 * parse.y: Likewise.
8006
8007 2002-09-17 Tom Tromey <tromey@redhat.com>
8008
8009 * lex.c (java_read_unicode_collapsing_terminators): Handle case
8010 where \r appears at EOF. Fixes PR java/7950.
8011
8012 2002-09-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
8013
8014 * jvspec.c (lang_specific_driver): Remove unused variable.
8015
8016 2002-09-16 Geoffrey Keating <geoffk@apple.com>
8017
8018 * java-tree.h (union lang_tree_node): Add chain_next option.
8019
8020 2002-09-16 Richard Henderson <rth@redhat.com>
8021
8022 * jcf-parse.c (get_constant): Runtime check for IEEE format;
8023 use new real.h interface.
8024 * jcf-write.c (find_constant_index): Use new real.h interface.
8025 * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
8026
8027 2002-09-15 Kazu Hirata <kazu@cs.umass.edu>
8028
8029 * lang.c: Follow spelling conventions.
8030
8031 2002-09-11 Per Bothner <per@bothner.com>
8032
8033 * parse.y (fold_constant_for_init): If a VAR_DECL, convert numerical
8034 constant to the type of the field.
8035 (java_complete_tree): Remove now-redundant code.
8036
8037 * parse.y (fold_constant_for_init): 'null' is not a constant expr.
8038
8039 2002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu>
8040
8041 For PR java/5794:
8042 * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
8043 return label if a ret instruction for the jsr has been reached.
8044
8045 2002-09-09 Ranjit Mathew <rmathew@hotmail.com>
8046
8047 * parse.y (DIR_SEPARATOR): Don't define.
8048 (check_class_interface_creation): Use IS_DIR_SEPARATOR.
8049
8050 2002-08-28 Andrew Haley <aph@redhat.com>
8051
8052 * verify.c (verify_jvm_instructions): Allow exception handler
8053 inside code that is being protected, but generate a warning.
8054 * except.c (link_handler): Initialize `expanded' in new eh_range.
8055 (binding_depth, is_class_level, current_pc): Declare extern.
8056
8057 2002-09-01 Mark Wielaard <mark@klomp.org>
8058
8059 * gcj.texi: Add chapter about system properties.
8060 Fixed some typos.
8061
8062 2002-08-26 Tom Tromey <tromey@redhat.com>
8063
8064 * parse.y (try_builtin_assignconv): Allow narrowing primitive
8065 conversion if RHS_TYPE is byte, short, or char.
8066
8067 2002-08-22 Tom Tromey <tromey@redhat.com>
8068
8069 * gcj.texi (Invoking gij): Document -cp and -classpath.
8070
8071 2002-08-21 Tom Tromey <tromey@redhat.com>
8072
8073 * Make-lang.in (java/jcf-path.o): Use $(datadir), not
8074 $(prefix)/share. For PR libgcj/7633.
8075
8076 For PR java/6005 and PR java/7611:
8077 * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
8078 (java_can_use_bit_fields_p): New function.
8079
8080 2002-08-16 Tom Tromey <tromey@redhat.com>
8081
8082 * gcj.texi (Class Initialization): Mention class initialization of
8083 arrays.
8084
8085 2002-07-30 Andrew Haley <aph@cambridge.redhat.com>
8086
8087 * Make-lang.in (java-tree-inline.o): New.
8088 (JAVA_OBJS): Add java-tree-inline.o.
8089 * parse.y (source_end_java_method): Call java_optimize_inline.
8090 (java_expand_method_bodies): Save method's tree in
8091 DECL_SAVED_TREE.
8092 (add_stmt_to_compound): Keep track of the number of statments.
8093 * lang.c (java_init): Enable flag_inline_trees.
8094 (java_post_options): If flag_inline_functions is on, enable
8095 flag_inline_trees instread.
8096 (decl_constant_value): New.
8097 (java_tree_inlining_walk_subtrees): New.
8098 * java-tree.h (DECL_NUM_STMTS): New macro.
8099 (java_optimize_inline): Declare.
8100 * expr.c (java_expand_expr): Allow a BLOCK to return a value.
8101 Handle a LABEL_EXPR.
8102 * decl.c (build_result_decl): If we already have a DECL_RESULT
8103 don't make another.
8104 (dump_function): New.
8105 (java_optimize_inline): New.
8106 (dump_function): New.
8107
8108 2002-08-13 Jesse Rosenstock <jmr@fulcrummicro.com>
8109
8110 For PR java/7483:
8111 * parse.y (build_assertion): Invert return from
8112 desiredAssertionStatus.
8113
8114 2002-08-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8115
8116 * jcf-write.c (get_access_flags): Return correct access flags for
8117 private and protected inner classes.
8118
8119 2002-08-08 Nathan Sidwell <nathan@codesourcery.com>
8120
8121 * java/Make-lang.in (java.mostlyclean): Remove coverage files.
8122
8123 2002-08-05 Geoffrey Keating <geoffk@redhat.com>
8124
8125 * mangle_name.c: Don't include obstack.h twice.
8126 * xref.c: Don't include obstack.h.
8127
8128 2002-08-04 Geoffrey Keating <geoffk@redhat.com>
8129
8130 * class.c: (permanent_obstack): Delete declaration.
8131 * constants.c: (permanent_obstack): Delete declaration.
8132 * except.c: (permanent_obstack): Delete declaration.
8133 * expr.c: (permanent_obstack): Delete declaration.
8134 * jcf-parse.c: (permanent_obstack): Delete declaration.
8135 (saveable_obstack): Delete declaration.
8136 * parse.h: (permanent_obstack): Delete declaration.
8137 * typeck.c: (permanent_obstack): Delete declaration.
8138
8139 2002-08-04 Joseph S. Myers <jsm@polyomino.org.uk>
8140
8141 * gcj.texi (version-gcc): Increase to 3.3.
8142
8143 2002-07-22 Tom Tromey <tromey@redhat.com>
8144
8145 * lex.c (java_lex): Check for `e' or `E' after 0.
8146
8147 2002-07-21 Richard Henderson <rth@redhat.com>
8148
8149 * lang.c (java_unsafe_for_reeval): New.
8150 (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
8151
8152 2002-07-21 Neil Booth <neil@daikokuya.co.uk>
8153
8154 * jcf-path.c (GET_ENV_PATH_LIST): Remove.
8155 (jcf_path_init): Use GET_ENVIRONMENT.
8156
8157 2002-07-10 Roger Sayle <roger@eyesopen.com>
8158 Zack Weinberg <zack@codesourcery.com>
8159
8160 * builtins.c (initialize_builtins): Remove defines that
8161 handled C/C++ specific junk hereby removed from builtins.def.
8162
8163 2002-07-07 Neil Booth <neil@daikokuya.co.uk>
8164
8165 * lang.c (java_post_options): Update prototype.
8166
8167 2002-07-05 Roger Sayle <roger@eyesopen.com>
8168
8169 * builtins.c (initialize_builtins): Ignore the additional
8170 parameter to DEF_BUILTIN. Handle more C/C++ specific junk in
8171 the builtins.def file.
8172
8173 2002-07-01 Tom Tromey <tromey@redhat.com>
8174
8175 For PR libgcj/7073:
8176 * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
8177 specially.
8178
8179 2002-07-01 Roger Sayle <roger@eyesopen.com>
8180
8181 * java/decl.c (builtin_function): Accept additional parameter.
8182 (java_init_decl_processing): Pass an additional NULL_TREE
8183 argument to builtin_function.
8184
8185 2002-06-29 T.J. Mather <tjmather@maxmind.com>
8186
8187 * gcj.texi: Fixed gcj invocation example so that it compiles.
8188
8189 2002-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8190
8191 * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
8192 * parse.y (mark_parser_ctxt): Likewise.
8193 (check_modifiers, declare_local_variables): Avoid incorrect
8194 hardcoded constant 10.
8195
8196 * lex.c (java_read_char): Avoid "comparison is always true"
8197 warning.
8198
8199 2002-06-25 Andreas Schwab <schwab@suse.de>
8200
8201 * expr.c (JSR): Avoid undefined operation on PC.
8202
8203 2002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8204
8205 * decl.c (clear_binding_level): Const-ify.
8206
8207 2002-06-13 Akim Demaille <akim@epita.fr>
8208
8209 * parse.y (class_declaration, interface_declaration): Make sure
8210 all their rules have an action, in order to avoid meaningless `$$
8211 = $1' and their type clashes.
8212
8213 2002-06-11 Tom Tromey <tromey@redhat.com>
8214
8215 * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
8216 * parse-scan.y (statement_without_trailing_substatement): Added
8217 assert_statement.
8218 (assert_statement): New rule.
8219 * java-tree.h (struct lang_type) [assertions]: New field.
8220 (TYPE_USES_ASSERTIONS): New macro.
8221 (CLASS_USES_ASSERTIONS): Likewise.
8222 (FIELD_SYNTHETIC): New define.
8223 * lex.c (java_lval;): Added ASSERT_TK.
8224 * parse.y (ASSERT_TK): Added.
8225 (statement_without_trailing_substatement): Added assert_statement.
8226 (assert_statement): New rule.
8227 (build_assertion): New function.
8228 (maybe_generate_pre_expand_clinit): Create and initialize
8229 $assertionsDisabled.
8230 (lookup_package_type): Removed decl.
8231 * keyword.h: Rebuilt.
8232 * keyword.gperf (assert): New token.
8233
8234 2002-06-10 Akim Demaille <akim@epita.fr>
8235
8236 * parse.y (interface_type_list, class_member_declaration)
8237 (unary_expression_not_plus_minus): Remove duplicate %type.
8238 Whitespace changes.
8239
8240 2002-06-09 Tom Tromey <tromey@redhat.com>
8241
8242 * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
8243
8244 * parse.y (method_header): Give error message in all cases.
8245 Fixes PR java/6865.
8246
8247 2002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8248
8249 Don't use RTL inlining. Fix for PR java/6820.
8250 * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
8251 (flag_really_inline): New.
8252 (java_decode_option): Set flag_really_inline if -finline-functions
8253 is seen.
8254 (java_post_options): New function. Turn off inlining unless
8255 flag_really_inline is set.
8256
8257 2002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8258
8259 * gjavah.c (throwable_p): Accept argument as either a classname or
8260 signature fragment. Create null-terminated classname string for super
8261 when calling itself recursively.
8262 (decode_signature_piece): Skip first character from class name
8263 signature when calling throwable_p.
8264
8265 2002-06-08 H.J. Lu (hjl@gnu.org)
8266
8267 * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
8268
8269 2002-06-04 Tom Tromey <tromey@redhat.com>
8270
8271 * jcf-write.c (perform_relocations): Optmize a goto to a goto.
8272
8273 2002-06-04 Michael Koch <konqueror@gmx.de>
8274
8275 * gcj.texi (Input Options): Fixed typo.
8276
8277 2002-06-04 Zack Weinberg <zack@codesourcery.com>
8278
8279 * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
8280 typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
8281 all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
8282 and all now-pointless local variables. Rename other local
8283 variables to reflect their not being handles.
8284
8285 * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
8286 #if JCF_USE_STDIO blocks.
8287
8288 * parse.y: Add missing semicolon at end of rule.
8289
8290 2002-06-03 Geoffrey Keating <geoffk@redhat.com>
8291
8292 * check-init.c (attach_initialized_static_class): Delete, unused.
8293 * parse.y: Use htab_t instead of struct hashtable, update
8294 all uses.
8295 * java-tree.h: Include hashtab.h instead of hash.h.
8296 (struct lang_decl_func): Use htab_t, set up for gengtype.
8297 (struct init_test_hash_entry): Delete.
8298 (struct treetreehash_entry): New.
8299 (java_treetreehash_find): New
8300 (java_treetreehash_new): New prototype.
8301 (java_treetreehash_create): New prototype.
8302 (java_mark_tree): Delete prototype.
8303 (java_hash_hash_tree_node): Delete prototype.
8304 (java_hash_compare_tree_node): Delete prototype.
8305 (attach_initialized_static_class): Delete prototype.
8306 * expr.c (build_class_init): Update to use java_treetreehash
8307 functions.
8308 (java_expand_expr): Update to use htab_t.
8309 (emit_init_test_initialization): Likewise.
8310 * decl.c (java_mark_tree): Delete.
8311 * class.c (init_test_hash_newfunc): Delete.
8312 (java_hash_hash_tree_node): Delete.
8313 (java_hash_compare_tree_node): Delete.
8314 (add_method_1): Update to use java_treetreehash functions.
8315 (JAVA_TREEHASHHASH_H): New macro.
8316 (java_treetreehash_hash): New function.
8317 (java_treetreehash_compare): New function.
8318 (java_treetreehash_find): New function.
8319 (java_treetreehash_new): New function.
8320 (java_treetreehash_create): New function.
8321 * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
8322
8323 * Make-lang.in (java/parse.o): Depend on debug.h.
8324 * java-tree.h (struct lang_identifier): Use gengtype.
8325 (union lang_tree_node): New.
8326 (struct lang_decl_func): Use gengtype.
8327 (struct lang_decl_var): Likewise.
8328 (struct lang_decl): Likewise.
8329 * parse.y: Include debug.h.
8330 * lang.c (LANG_HOOKS_MARK_TREE): Delete.
8331
8332 * lang.c (struct language_function): New dummy structure.
8333
8334 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
8335 descriminator for DECL_LANG_SPECIFIC.
8336 (struct lang_decl_func): Rename from struct lang_decl.
8337 (enum lang_decl_desc): New.
8338 (struct lang_decl): Make it a union. Update all the accessor macros.
8339 (struct lang_type): Use gengtype.
8340 * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
8341 * decl.c (java_dup_lang_specific_decl): All lang_decl structures
8342 are now the same size.
8343 (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
8344 use discriminator to mark DECL_LANG_SPECIFIC.
8345
8346 * Make-lang.in (gt-java-builtins.h): New rule.
8347 (java/builtins.o): Add dependency on gt-<filename>.h.
8348 * builtins.c: Use gengtype for roots.
8349 (union string_or_tree): Use gengtype.
8350 (struct builtin_record): Use gengtype.
8351 * config-lang.in (gtfiles): Add builtins.c.
8352
8353 * Make-lang.in (gt-java-class.h, gt-java-constants.h,
8354 gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
8355 gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
8356 gt-java-parse.h, gtype-java.h): Add rules to generate.
8357 (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
8358 (class.o): Add dependency on gt-*.h.
8359 (constants.o): Likewise.
8360 (decl.o): Likewise.
8361 (expr.o): Likewise.
8362 (jcf-parse.o): Likewise.
8363 (jcf-write.o): Likewise.
8364 (lang.o): Likewise.
8365 * config-lang.in (gtfiles): New.
8366 * class.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8367 * constants.c: Replace uses of ggc_add_* with GTY markers.
8368 Include gt-*.h.
8369 * decl.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8370 * expr.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8371 * java-tree.h: Replace uses of ggc_add_* with GTY markers.
8372 * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
8373 Include gt-*.h.
8374 * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
8375 Include gt-*.h.
8376 * lang.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8377 * mangle.c: Replace uses of ggc_add_* with GTY markers. Include
8378 gt-*.h.
8379 * parse.y: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8380 Include gtype-java.h.
8381
8382 2002-06-02 Tom Tromey <tromey@redhat.com>
8383
8384 Fix for PR java/5913:
8385 * parse.y (patch_binop): Call patch_string on op1.
8386
8387 2002-06-02 Tom Tromey <tromey@redhat.com>
8388
8389 Fix for PR java/1343, PR java/6336:
8390 * parse.y (make_nested_class_name): Remove extraneous `else'; fix
8391 formatting. Changed return type.
8392 (anonymous_class_counter): Moved to top of file.
8393 (maybe_make_nested_class_name): Append number to class name for
8394 function-local classes.
8395
8396 2002-05-28 Zack Weinberg <zack@codesourcery.com>
8397
8398 * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
8399 * Make-lang.in: Update dependency lists.
8400
8401 2002-05-18 Mark Mitchell <mark@codesourcery.com>
8402
8403 * gjavah.c (throwable_p): Do not free the name of the class after
8404 passing it to find_class.
8405 * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
8406 * jcf-io.c (dirent.h): Include it.
8407 (fnmatch.h): Likewise.
8408 (compare_path): New function.
8409 (java_or_class_file): Likewise.
8410 (memoized_dirlist_entry): New type.
8411 (memoized_dirlist_lookup_eq): New function.
8412 (memoized_dirlists): New variable.
8413 (caching_stat): New function.
8414 (memoized_class_lookup_eq): New function.
8415 (memoized_class_lookups): Likewise.
8416 (find_class): Use memoized_class_lookups and caching_stat.
8417 * jcf.h (JCF_USE_SCANDIR): Define.
8418 * parse.y (java_expand_classes): Write the class files in reverse
8419 order.
8420
8421 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8422
8423 * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
8424
8425 2002-05-13 Mark Mitchell <mark@codesourcery.com>
8426
8427 * jcf-write.c (write_classfile): Unlink the temporary file if it
8428 cannot be renamed. Use concat to build up the name of the
8429 temporary file.
8430
8431 2002-05-08 Mark Mitchell <mark@codesourcery.com>
8432
8433 * jcf-write.c (write_classfile): Write the file to a
8434 temporary file and then rename it.
8435
8436 2002-05-07 Tom Tromey <tromey@redhat.com>
8437
8438 * gjavah.c (throwable_p): Use xstrdup, not strdup.
8439
8440 Fix for PR java/1200:
8441 * gjavah.c (throwable_p): New function.
8442 (decode_signature_piece): Use it. A `WeakReference' isn't the
8443 same as a `jweak'.
8444 Include hashtab.h.
8445 (gcjh_streq): New function.
8446
8447 2002-05-07 Andreas Jaeger <aj@suse.de>
8448
8449 * parse.y (finish_for_loop): Fix if statement.
8450
8451 2002-05-06 Tom Tromey <tromey@redhat.com>
8452
8453 Fix for PR java/5941:
8454 * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
8455 loop update expression.
8456 (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
8457 * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
8458
8459 2002-05-04 Mark Wielaard <mark@klomp.org>
8460
8461 For PR java/6519:
8462 * parse.y (build_string_concatenation): Return just op1 only when op2
8463 is null and op1 is a STRING_CST, otherwise always construct a
8464 StringBuffer.
8465
8466 2002-04-27 Tom Tromey <tromey@redhat.com>
8467
8468 For PR java/6382:
8469 * parse.y (string_convert_int_cst): New function.
8470 (merge_string_cste): Use it.
8471
8472 2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
8473
8474 * java-tree.h (java_parse_file): Update.
8475 (java_set_yydebug): Remove.
8476 * jcf-parse.c (yydebug): Remove.
8477 (java_set_yydebug): Die.
8478 (java_parse_file): Update.
8479 * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
8480
8481 2002-04-24 Tom Tromey <tromey@redhat.com>
8482
8483 For PR java/6425:
8484 * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
8485 EXPR_WFL_QUALIFICATION of qual_wfl.
8486
8487 2002-04-23 Per Bothner <per@bothner.com>
8488
8489 * expr.c (PRE_JSR): Call NOTE_LABEL for return address.
8490 * java-tree.h (BCODE_RETURN_TARGET): Removed - never set.
8491 (BCODE_TARGET): Remove BCODE_RETURN_TARGET.
8492
8493 2002-04-23 Tom Tromey <tromey@redhat.com>
8494
8495 For PR java/6314:
8496 * jvspec.c (lang_specific_driver): Use --resource, not -R. Also
8497 recognize `-fcompile-resource='.
8498 * gcj.texi (Invoking gcj): Use --resource, not -R. Expanded text
8499 a bit.
8500
8501 2002-04-22 Alexandre Petit-Bianco <apbianco@redhat.com>
8502
8503 * jcf-parse.c: (yyparse): Don't prepend "./" to relative
8504 paths. Fixes PR java/2791.
8505
8506 2002-04-19 Andrew Haley <aph@redhat.com>
8507
8508 * jcf-write.c (push_long_const): lo, hi: New variables.
8509 Use rshift_double to extract the high part of a 64-bit long.
8510 Use WORD_TO_INT to extract the low part.
8511
8512 * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
8513 HOST_WIDE_INT for num. Use JPOOL_UINT to get it.
8514 CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
8515
8516 2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
8517
8518 * typeck.c (incomplete_type_error): Remove.
8519
8520 2002-04-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8521
8522 * class.c (make_class_data): Set DECL_ALIGN on static class data,
8523 for hash synchronization.
8524 * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
8525 * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
8526 class_type_node.
8527
8528 2002-04-16 Mark Wielaard <mark@klomp.org>
8529
8530 * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
8531 negative zero.
8532
8533 2002-04-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8534
8535 Fix for PR java/6294:
8536 * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
8537 interfaces.
8538
8539 2002-04-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8540
8541 Fix for PR java/6085:
8542 * parse.y (patch_method_invocation): Always use build_access_to_thisn
8543 to get enclosing "this" argument for inner-class constructor
8544 invocation. Pass correct arguments to build_access_to_thisn.
8545
8546 2002-04-10 Andreas Jaeger <aj@suse.de>
8547
8548 * gcj.texi (Input Options): Fix extdirs patch.
8549
8550 2002-04-10 Anthony Green <green@redhat.com>
8551
8552 * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
8553
8554 2002-04-09 Anthony Green <green@redhat.com>
8555
8556 * gcj.texi (Input Options): Add --extdirs documentation.
8557 * jcf-dump.c (OPT_extdirs): New macro.
8558 (options): Add extdirs option.
8559 (help): Describe --extdirs.
8560 (main): Handle OPT_extdirs.
8561 * gjavah.c (OPT_extdirs): New macro.
8562 (options): Add extdirs option.
8563 (help): Describe --extdirs.
8564 (main): Handle OPT_extdirs.
8565 * jcf-path.c (jcf_path_init): Add extdirs support.
8566 (jcf_path_extdirs_arg): New function.
8567 (extensions): New variable to hold extensions path entries.
8568 * jvspec.c: Remove -fextdirs= when compiling main().
8569 * lang.c (java_decode_option): Handle -fextdirs=.
8570 * jcf.h (jcf_path_extdirs_arg): Declare new function.
8571 * Make-lang.in: Compile jcf-path with version info for use in
8572 identifying the appropriate libgcj.jar.
8573
8574 2002-04-08 Tom Tromey <tromey@redhat.com>
8575
8576 For PR libgcj/5303:
8577 * .cvsignore: Added rmic.1 and rmiregistry.1.
8578 * gcj.texi (Top): Link to new nodes.
8579 (Invoking rmic): New node.
8580 (Invoking rmiregistry): Likewise.
8581 * Make-lang.in (java.generated-manpages): Added rmic.1 and
8582 rmiregistry.1.
8583 (java.maintainer-clean): Likewise.
8584 ($(srcdir)/java/rmic.1): New target.
8585 ($(srcdir)/java/rmiregistry.1): Likewise.
8586 (java.install-man): Handle rmic.1 and rmiregistry.1.
8587
8588 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8589
8590 * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
8591 Add note about handling uncaught exceptions. Add an exception handler
8592 to example.
8593
8594 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8595
8596 * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
8597 after using it to patch CALL_EXPR.
8598
8599 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8600
8601 * gcj.texi (Invocation): Document CNI invocation API.
8602
8603 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
8604
8605 * expr.c (truthvalue_conversion): Rename. Update.
8606 (expand_compare): Update.
8607 * java-tree.h (java_truthvalue_conversion): New.
8608 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
8609
8610 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
8611
8612 * java-tree.h (java_mark_addressable): New.
8613 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
8614 * typeck.c (mark_addressable): Rename, update.
8615
8616 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
8617
8618 * expr.c (build_java_binop): Update.
8619 * java-tree.h (java_signed_type, java_unsigned_type,
8620 java_signed_or_unsigned_type): Update.
8621 * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
8622 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
8623 * parse.y (patch_binop): Update.
8624 * typeck.c (signed_or_unsigned_type, unsigned_type,
8625 signed_type): Update.
8626
8627 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
8628
8629 * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
8630 (java_dummy_print): Remove.
8631 (lang_print_error): Rename. Exit early if inhibiting output.
8632 (inhibit_error_printing_function): New.
8633 (java_init): Don't set hook.
8634 (lang_init_source): Use new boolean.
8635
8636 2002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
8637
8638 * parse.y (do_resolve_class): Fix infinite recursion.
8639
8640 2002-03-29 Tom Tromey <tromey@redhat.com>
8641
8642 * parse.y (check_inner_circular_reference): Ignore incomplete
8643 types.
8644
8645 2002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
8646
8647 * Make-lang.in (builtins.o): Update.
8648 * boehm.c (get_boehm_type_descriptor): Update.
8649 * builtins.c: Include langhooks.h.
8650 * decl.c (java_init_decl_processing): Update.
8651 * java-tree.h (java_type_for_mode, java_type_for_size): New.
8652 * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
8653 Redefine.
8654 * typeck.c (type_for_mode, type_for_size): Update.
8655
8656 2002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
8657
8658 * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
8659
8660 2002-03-28 Tom Tromey <tromey@redhat.com>
8661
8662 * except.c (expand_end_java_handler): If the handler type is NULL,
8663 use java.lang.Throwable. Fixes PR java/5986.
8664
8665 2002-03-28 Alexandre Petit-Bianco <apbianco@redhat.com>
8666
8667 Fix for PR java/4715:
8668 * jcf-parse.c (parse_source_file_3): New function.
8669 (read_class): Call it.
8670 (java_parse_file): Likewise.
8671
8672 2002-03-28 Jan Hubicka <jh@suse.cz>
8673
8674 * java/lang.c (java_init_options): Set flag_trapping_math to 0.
8675
8676 2002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8677
8678 * parse.y (resolve_package): Initialize "decl".
8679 (lookup_package_type): Remove unused function.
8680
8681 2002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8682
8683 Fix for PR java/5993:
8684 * parse.y (resolve_package): Return the decl if resolution was
8685 successful. Don't special case "java.lang" and "java.lang.reflect"
8686 packages. Set type_name to the merged identifier.
8687 (resolved_qualified_expression_name): Print error using "name" if
8688 resolve_package returns NULL_TREE.
8689
8690 2002-03-27 Tom Tromey <tromey@redhat.com>
8691
8692 * expr.c (expand_invoke): Don't generate null pointer check if
8693 we're calling <init>.
8694
8695 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
8696
8697 * expr.c (java_lang_expand_expr): Rename java_expand_expr,
8698 fix prototype.
8699 * java-tree.h (java_lang_expand_expr): Similarly.
8700 * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
8701 (java_init): Don't set hook.
8702
8703 2002-03-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8704
8705 Fix for PR java/5850:
8706 * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
8707 context if field was not found in the current scope.
8708 * expr.c (lookup_field): Don't look in enclosing contexts.
8709
8710 2002-03-26 Tom Tromey <tromey@redhat.com>
8711
8712 Fix for PR java/5942:
8713 * parse.y (init_src_parse): Added sanity check.
8714 * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
8715 elements, not 11.
8716
8717 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
8718
8719 * decl.c (lang_mark_tree): Rename java_mark_tree.
8720 * java-tree.h (java_mark_tree): New.
8721 * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
8722
8723 2002-03-25 Zack Weinberg <zack@codesourcery.com>
8724
8725 * lex.c: Change java_perform_atof to take normal parameters
8726 instead of a pointer to a parameter block. Call it directly
8727 from java_lex.
8728
8729 2002-03-22 Mark Wielaard <mark@klomp.org>
8730
8731 Fix for PR java/5368:
8732 * parse.y (resolve_qualified_expression_name): Use decl not field_decl
8733 when printing error message.
8734
8735 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
8736
8737 * decl.c (maybe_build_cleanup): Remove.
8738
8739 2002-03-22 Tom Tromey <tromey@redhat.com>
8740
8741 Andrew Haley <aph@cambridge.redhat.com>
8742
8743 * expr.c (build_field_ref): Don't build a check if the field is a
8744 member of `this'.
8745
8746 2002-03-21 Eric Blake <ebb9@email.byu.edu>
8747
8748 Fix for PR java/6026:
8749 * lex.c (java_lex): Fix parsing of consecutive floats.
8750
8751 2002-03-21 Tom Tromey <tromey@redhat.com>
8752
8753 * parse.y (build_access_to_thisn): Stop when FROM is not an inner
8754 class.
8755
8756 2002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
8757
8758 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
8759 insert_block, getdecls, kept_level_p, global_bindings_p): New.
8760
8761 2002-03-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
8762
8763 * gcj.texi: @code{gcj} becomes @command{gcj}.
8764 @code{gcc} becomes @command{gcc}.
8765 GcjRaw changed to gnu.gcc.RawData.
8766
8767 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
8768
8769 * decl.c (start_java_method): Use new hook.
8770 * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
8771 (java_init): Remove old hook.
8772
8773 2002-03-18 Alexandre Petit-Bianco <apbianco@redhat.com>
8774
8775 * builtins.c (define_builtin): Do nothing if `type' is null.
8776 Fixes PR java/5876.
8777
8778 2002-03-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8779
8780 * parse.y (parser_check_super_interface): Fix error message
8781 grammar/order.
8782
8783 2002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8784
8785 * jcf-parse.c (get_constant): Delete unused variables.
8786
8787 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
8788
8789 * java-tree.h (java_parse_file): New.
8790 * jcf-parse.c (yyparse): Rename java_parse_file.
8791 * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
8792
8793 2002-03-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8794
8795 * parse.y (craft_constructor): Return the constructor decl.
8796 (java_expand_classes): Update comments.
8797 (lookup_method_invoke): Call fix_constructors immediately for
8798 anonymous class. Fixes PR java/5935.
8799
8800 2002-03-15 Anthony Green <green@redhat.com>
8801
8802 * jcf-parse.c (yyparse): Don't emit class registration
8803 constructor when compiling resource files.
8804
8805 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8806
8807 * lang.c (java_tree_code_type, java_tree_code_length,
8808 tree_code_name): Delete.
8809 (tree_code_type, tree_code_length, tree_code_name): Define.
8810 (java_init): Don't try to copy into the various tree_code
8811 arrays.
8812
8813 2002-03-12 Tom Tromey <tromey@redhat.com>
8814
8815 * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
8816 UTF-8, not UCS-2. Fixes PR java/5923.
8817
8818 * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
8819 a call_expr wrapped in a convert. Fixes PR java/5848.
8820
8821 2002-03-12 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8822
8823 * jcf-write.c (write_classfile): Improve error strings.
8824
8825 2002-03-11 Eric Blake <ebb9@email.byu.edu>
8826
8827 * lex.c: Adjust comments to GNU standards.
8828
8829 2002-03-11 Eric Blake <ebb9@email.byu.edu>
8830
8831 Fix for PR java/5902:
8832 * lex.c (java_lex): Fix parsing of literals.
8833
8834 2002-03-11 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8835
8836 * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
8837 to prevent it getting evaluated twice in the store checking case.
8838 * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
8839 examining OBJECT.
8840
8841 2002-03-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8842
8843 * decl.c (java_init_decl_processing): Make sure class_type_node
8844 alignment is not less than 64 bits if hash synchronization is enabled.
8845
8846 2002-03-08 Per Bothner <per@bothner.com>
8847
8848 * parse.y (java_complete_lhs): Check if patch_assignment
8849 returned an error-mark.
8850
8851 * parse.y (try_builtin_assignconv): Don't special-case zero.
8852
8853 2002-03-08 Per Bothner <per@bothner.com>
8854
8855 Fix for PR java/5812.
8856 * expr.c (build_java_jsr): Take pc arguments, and do lookup_label
8857 here instead of in JSR macro. Likewise with load_type_state call.
8858 Do the latter on if the return_pc has been verified (the jsr returns).
8859 (JSR): Now just call build_java_jsr.
8860
8861 2002-03-07 Jeff Sturm <jsturm@one-point.com>
8862
8863 * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
8864 (java.install-common): Link native driver to
8865 JAVA_TARGET_INSTALL_NAME.
8866
8867 2002-03-05 David Billinghurst <David.Billinghurst@riotinto.com>
8868
8869 * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
8870 * builtins.c(sin_builtin): Likewise
8871 * builtins.c(sqrt_builtin): Likewise
8872
8873 2002-03-03 Zack Weinberg <zack@codesourcery.com>
8874
8875 * java/expr.c, java/jcf-parse.c, java/lex.c:
8876 Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
8877 REAL_ARITHMETIC blocks unconditional. Delete some further
8878 #ifdef blocks predicated on REAL_ARITHMETIC.
8879
8880 2002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8881
8882 * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
8883 explicit sizeof/sizeof.
8884 * decl.c (java_init_decl_processing): Likewise.
8885 * jcf-parse.c (init_jcf_parse): Likewise.
8886 * parse.y (init_src_parse): Likewise.
8887
8888 2002-03-02 Per Bothner <per@bothner.com>
8889
8890 Make --CLASSPATH by a synonym for --classpath and -classpath.
8891 Implement --bootclasspath.
8892 * jcf-path.c (classpath_u): Rename static variable to classpath_user.
8893 (classpath_l): Remove.
8894 (jcf_path_CLASSPATH_arg): Remove.
8895 (jcf_path_bootclasspath_arg): New function.
8896 (jcf_path_seal): Simplify accordingly.
8897
8898 * jcf.h (jcf_path_bootclasspath_arg): New declarations.
8899 (jcf_path_CLASSPATH): Remove declaration.
8900 * jvspec.c (jvgenmain_spec): Also accept -fbootclasspath*.
8901 (lang_specific_driver): Translate -bootclasspath.
8902 * lang-options.h: Add --bootclasspath. Update --CLASSPATH.
8903 * lang.c (decode_lang_options): Do jcf_path_init first.
8904 Handle -fCLASSPATH same as -fclasspath. Also process -fbootclasspath.
8905 * gjavah.c: Also handle --bootclasspath.
8906 Handle --CLASSPATH as a synonum for --classpath.
8907 * jcf-dump.c: Likewise.
8908
8909 "." is not part of system path, but is the default for --classpath.
8910 * jcf-path.c (jcf_path_init): Don't add "." to sys_dirs.
8911 (jcf_path_seal): Add "." if no CLASSPATH specified.
8912
8913 * gcj.texi: Document changes.
8914
8915 2002-03-01 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8916
8917 * expr.c (build_java_arraystore_check): Fix formatting.
8918
8919 2002-02-28 Alexandre Petit-Bianco <apbianco@redhat.com>
8920
8921 Fix for PR java/5758, java/5632:
8922 * jcf-parse.c (load_class): Renamed local variable, consider `.' an
8923 inner-class separator too.
8924 * parse.y (do_resolve_class): New local `decl_result.'
8925 Progressively build a name for what can have been loaded.
8926
8927 2002-02-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8928
8929 * expr.c (java_array_data_offset): Removed function.
8930 (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
8931 (build_java_array_length_access): Obtain "length" value using a
8932 COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
8933 (build_java_arrayaccess): Correct comment. Access "data" using a
8934 COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
8935 (build_java_arraystore_check): New function.
8936 (expand_java_arraystore): Use build_java_arraystore_check.
8937 * parse.y (patch_assignment): Simplify code to insert a store check
8938 when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
8939 * check-init.c (check_init): Update to reflect that an array length
8940 access is now a COMPONENT_REF.
8941 * gcj.texi (Code Generation): Improve documentation of
8942 -fno-bounds-check. Add documentation for -fno-store-check.
8943 * java-tree.h (flag_store_check): Declare.
8944 (build_java_arraystore_check): Declare.
8945 * lang.c (flag_store_check): Initialize to 1.
8946 (lang_f_options): Add store-check option.
8947 * jvspec.c: Don't pass store-check option to jvgenmain.
8948 * lang-options.h: Add help string for -fno-store-check.
8949
8950 2002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
8951
8952 * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
8953 * java-tree.h (java_dup_lang_specific_decl): New.
8954 * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
8955
8956 2002-02-27 Zack Weinberg <zack@codesourcery.com>
8957
8958 * builtins.c, decl.c: Delete traditional-mode-related code
8959 copied from the C front end but not used, or used only to
8960 permit the compiler to link.
8961
8962 2002-02-22 Tom Tromey <tromey@redhat.com>
8963
8964 Fix for PR java/2369:
8965 * jvspec.c (verify_class_name): New function.
8966 (lang_specific_driver): Call it.
8967 (JAVA_START_CHAR_P): New macro.
8968 (JAVA_PART_CHAR_P): Likewise.
8969
8970 2002-02-22 Per Bothner <per@bothner.com>
8971
8972 * class.c: Change vtable to be more compatible with g++ v3 abi.
8973 (get_dispatch_table): Prepend offset-to-top (always 0) and
8974 type_info pointer (currently unimplemented hence NULL) to vtable.
8975 Specifically, prepend offset-to-top and typeinfo ptr (currently null).
8976 (make_class_data): Variable dtable_start_offset is sizeof 2 pointers.
8977 Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
8978 (build_dtable_decl): Add declarations for new fields.
8979
8980 2002-02-20 Per Bothner <per@bothner.com>
8981
8982 * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
8983 to finit$ (otherwise generate_bytecode_insns drops it). However, we
8984 don't need to set it on the COMPOUND_EXPR - the caller does that.
8985
8986 2002-02-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
8987
8988 * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
8989 `--CLASSPATH' becomes `--classpath.'
8990 * gjavah.c: Likewise.
8991 * jcf-dump.c: Likewise.
8992 * lang-options.h: Likewise.
8993 * lang.c: Likewise.
8994 * jcf-path.c: Updated comment.
8995 (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
8996 (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
8997 * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
8998 (jcf_path_CLASSPATH_arg): Ditto.
8999 (classpath_u): Updated leading comment.
9000
9001 2002-02-20 Per Bothner <per@bothner.com>
9002
9003 * builtins.c (check_for_builtin): New function.
9004 (build_call_or_builtin): Remove.
9005 * java-tree.h: Update accordingly.
9006 * expr.c (expand_invoke): Use build + check_for_builtin instead
9007 of build_call_or_builtin.
9008 * parse.y (patch_invoke): Likewise. This avoids needlessly creating
9009 a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
9010 flag (which had caused jcf-write to incorrectly emit invokevirtual).
9011
9012 2002-02-17 Tom Tromey <tromey@redhat.com>
9013
9014 * java-tree.h (TYPE_STRICTFP): New macro.
9015 (struct lang_type) [strictfp]: New field.
9016 (CLASS_STRICTFP): New macro.
9017 (METHOD_STRICTFP): New macro.
9018 (struct lang_decl) [strictfp]: New field.
9019 * parse.y (method_header): Disallow strictfp constructor or
9020 abstract method.
9021 (STRICT_TK): Move before MODIFIER_TK.
9022 * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
9023 (METHOD_MODIFIERS): Likewise.
9024 (INTERFACE_MODIFIERS): Likewise.
9025 * jcf-write.c (get_access_flags): Likewise.
9026 * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
9027 (add_method_1): Likewise.
9028 (get_access_flags_from_decl): Likewise.
9029 * jcf-dump.c (print_access_flags): Print in standard order. Also,
9030 recognize strictfp flag.
9031 * jcf.h (ACC_STRICT): New define.
9032
9033 2002-02-12 David Billinghurst <Davod.Billinghurst@riotinto.com>
9034
9035 * class.c(build_utf8_ref): Move declaration of decl_size
9036
9037 2002-02-07 Tom Tromey <tromey@redhat.com>
9038
9039 * gcj.texi (Input Options): --CLASSPATH does not suppress system
9040 path.
9041
9042 2002-02-04 Anthony Green <green@redhat.com>
9043
9044 * class.c (build_utf8_ref): Put UTF-8 constants into merged
9045 sections if available.
9046
9047 2002-02-04 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9048
9049 * parse.y (java_expand_classes): Fix typo in static field loop.
9050
9051 2002-02-02 Richard Henderson <rth@redhat.com>
9052
9053 * class.c (add_field): Mark static fields external.
9054 (build_class_ref): Remove redundant set.
9055 * parse.y (java_expand_classes): Mark static fields of classes
9056 to be compiled as local.
9057 * jcf-parse.c (parse_class_file): Likewise.
9058
9059 2002-02-02 Nic Ferrier <nferrier@tapsellferrier.co.uk>
9060
9061 * gcj.texi (About CNI): New node.
9062
9063 2002-02-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
9064
9065 PR java/5080
9066 * jcf-parse.c : Check for HAVE_LOCALE_H before using
9067 setlocale() with LC_CTYPE as a parameter.
9068 * jv-scan.c: Same.
9069
9070 2002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
9071
9072 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
9073 Follow GNU Coding Standards for --version.
9074
9075 2002-01-28 Tom Tromey <tromey@redhat.com>
9076
9077 * expr.c (build_jni_stub): Ensure storage for `meth' is
9078 generated.
9079 * parse.y (java_complete_expand_methods): Set
9080 current_function_decl before building JNI stub.
9081
9082 2002-01-26 Andreas Tobler <a.tobler@schweiz.ch>
9083
9084 * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
9085 BUILT_IN_SQRTF.
9086
9087 2002-01-22 Tom Tromey <tromey@redhat.com>
9088
9089 * decl.c (java_init_decl_processing): Use add_predefined_file.
9090 Predefine RawData.java.
9091 (predef_filenames): Removed.
9092 (java_init_decl_processing): Don't register predef_filenames.
9093 * jcf-parse.c (add_predefined_file): New function.
9094 (predefined_filename_p): Rewrote.
9095 (predefined_filename_p): No longer static.
9096 * decl.c (java_init_decl_processing): Call initialize_builtins.
9097 * Make-lang.in (JAVA_OBJS): Added builtins.o.
9098 (java/builtins.o): New target.
9099 * builtins.c: New file.
9100 * parse.y (patch_invoke): Use build_call_or_builtin.
9101 * java-tree.h (build_call_or_builtin): Declare.
9102 (initialize_builtins): Declare.
9103 (java_set_exception_lang_code): Removed unused declaration.
9104 (PREDEF_FILENAMES_SIZE): Removed.
9105 (java_tree_index): Added JTI_PREDEF_FILENAMES.
9106 (predef_filenames): New define.
9107 (add_predefined_file): Declare.
9108 (predefined_filename_p): Declare.
9109 * expr.c (expand_invoke): Use build_call_or_builtin.
9110
9111 2002-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9112
9113 * parse.y (patch_switch_statement): Fix format specifier.
9114
9115 2002-01-16 Tom Tromey <tromey@redhat.com>
9116
9117 More for PR java/5365:
9118 * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
9119 default.
9120 (process_file): Generate include for
9121 java.lang.UnsupportedOperationExceptions.
9122
9123 2002-01-15 Andreas Jaeger <aj@suse.de>
9124
9125 * .cvsignore: Add man pages.
9126
9127 2002-01-15 Tom Tromey <tromey@redhat.com>
9128
9129 Fix for PR java/5365:
9130 * gjavah.c (process_file): Turn class name into a file name.
9131
9132 2002-01-14 Matthias Klose <doko@debian.org>
9133
9134 * gcj.texi: Fix whitespace and formatting errors in the
9135 synopsis of the man pages. Update copyright.
9136
9137 2002-01-14 Tom Tromey <tromey@redhat.com>
9138
9139 For PR libgcj/5303:
9140 * Make-lang.in (java.install-man): Handle jv-convert man page.
9141 (java.generated-manpages): Added jv-convert.1.
9142 (java.uninstall): Remove jv-convert.1.
9143 (java.maintainer-clean): Likewise.
9144 ($(srcdir)/java/jv-convert.1): New target.
9145 * gcj.texi (Top): Link to jv-convert node.
9146 (Individual utilities): Likewise.
9147 (Invoking jv-convert): New node.
9148
9149 2001-01-10 Jeff Sturm <jsturm@one-point.com>
9150 Martin Kahlert <martin.kahlert@infineon.com>
9151
9152 * jcf-parse.c (get_constant): Don't swap lo/hi for big
9153 endian targets when HOST_BITS_PER_WIDE_INT >= 64.
9154
9155 2002-01-03 Graham Stott <grahams@redhat.com>
9156
9157 * class.c (compile_resource_file): Update copyright date.
9158 Constify filename parameter.
9159 (java-tree.h): Update copyright date.
9160 (compile_resource_file): Constify filename parameter.
9161
9162 2002-01-03 Graham Stott <grahams@redhat.com>
9163
9164 * gcc/jcf-parse.c: Update copyright date.
9165 (yyparse): Constify resource_filename.
9166
9167 2002-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9168
9169 * parse.y (src_parse_roots): Don't needlessly zero init.
9170
9171 2001-12-31 Tom Tromey <tromey@redhat.com>
9172
9173 * parse.y (dump_java_tree): New function.
9174 (source_end_java_method): Call it.
9175 (end_class_declaration): Likewise.
9176 * lang.c (java_decode_option): Call dump_switch_p.
9177
9178 2001-12-28 Tom Tromey <tromey@redhat.com>
9179
9180 * gen-table.pl: Don't process characters after \uffff. Added
9181 comment pointing to input file.
9182
9183 2001-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9184
9185 * gen-table.pl: Const-ify output. Document the location of a
9186 suitable unicode input file.
9187
9188 * chartables.h: Regenerate.
9189
9190 2001-12-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9191
9192 * chartables.h: Const-ify.
9193 * gjavah.c (options): Likewise.
9194 * jcf-dump.c (options): Likewise.
9195 * jv-scan.c (options): Likewise.
9196 * lex.c (java_start_char_p, java_part_char_p): Likewise.
9197 * parse.y (binop_lookup): Likewise.
9198
9199 2001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9200
9201 * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
9202 the static arrays that are output.
9203 * jvspec.c (jvgenmain_spec): Make static.
9204 * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
9205 * keyword.h: Regenerate.
9206 * lang.c (string_option, process_option_with_no, lang_f_options,
9207 lang_W_options): Const-ify.
9208 * lex.c (java_lex): Likewise.
9209
9210 2001-12-21 Richard Henderson <rth@redhat.com>
9211
9212 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
9213 (get_boehm_type_descriptor): ... here. Arrange for the
9214 TREE_TYPE to get set properly.
9215
9216 2001-12-21 Richard Henderson <rth@redhat.com>
9217
9218 * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
9219 only if the target requires collect2.
9220
9221 * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
9222
9223 2001-12-20 Tom Tromey <tromey@redhat.com>
9224
9225 For PR java/4509:
9226 * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
9227 CAN_COMPLETE_NORMALLY for the node.
9228 * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
9229 generate code for second branch if first branch can't complete
9230 normally.
9231 (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
9232 the loop head if the loop body can't complete normally.
9233
9234 2001-12-20 Tom Tromey <tromey@redhat.com>
9235
9236 For PR java/4766:
9237 * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
9238 case where `finally' clause can't complete normally.
9239
9240 2001-12-20 Tom Tromey <tromey@redhat.com>
9241
9242 Fixes PR java/5057:
9243 * parse.y (analyze_clinit_body): Added this_class parameter.
9244 Check for more cases where we must keep <clinit>.
9245 (maybe_yank_clinit): Cleaned up flow control.
9246
9247 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9248
9249 * decl.c (java_init_decl_processing): Don't initialize
9250 finit_leg_identifier_node.
9251 * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
9252 (finit_leg_identifier_node): Remove.
9253 (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
9254
9255 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9256
9257 * mangle.c (mangle_member_name): Don't special-case for
9258 NO_DOLLAR_IN_LABEL.
9259 * mangle_name.c (unicode_mangling_length): Likewise.
9260 (append_unicode_mangled_name): Likewise.
9261 * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
9262 code.
9263
9264 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9265
9266 * expr.c (build_java_array_length_access): Don't force null pointer
9267 check unless flag_check_references is set.
9268
9269 2001-12-20 Tom Tromey <tromey@redhat.com>
9270
9271 Fix for PR java/3417:
9272 * parse.y (patch_assignment): Added special processing for
9273 `return'.
9274 (patch_return): Don't convert booleans to integers, and don't
9275 special-case `null'.
9276
9277 2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
9278
9279 * config-lang.in (diff_excludes): Remove.
9280
9281 2001-12-17 Joseph S. Myers <jsm28@cam.ac.uk>
9282
9283 * gcj.texi: Update link to GCC manual.
9284
9285 2001-12-17 Tom Tromey <tromey@redhat.com>
9286
9287 * parse.y (link_nested_class_to_enclosing): Removed useless
9288 statement.
9289
9290 2001-12-16 Tom Tromey <tromey@redhat.com>
9291
9292 * mangle.c (mangle_method_decl): Never emit `C2' constructor.
9293 Fixes PR java/5088.
9294
9295 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
9296
9297 * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
9298 jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
9299 spelling errors.
9300
9301 2001-12-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9302
9303 * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
9304
9305 2001-12-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9306
9307 * decl.c (java_init_decl_processing): Build otable_type correctly.
9308 otable_decl is an otable_type.
9309
9310 2001-12-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9311
9312 * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
9313 otable_type, otable_ptr_type, method_symbol_type,
9314 method_symbols_array_type, method_symbols_array_ptr_type): New
9315 field/global tree definitions.
9316 (flag_indirect_dispatch): New flag.
9317 * decl.c (java_init_decl_processing): Initialize new otable and
9318 otable_syms type nodes and decls. Add new field "index" to
9319 method_type_node.
9320 * class.c (build_method_symbols_entry): New function.
9321 (make_method_value): Set "index" to to method's vtable index for
9322 virtual methods when indirect-dispatch is not used.
9323 (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
9324 and set vtable_method_count to -1. Set otable and otable_syms field
9325 if indirect-dispatch is used and there was something to put in them.
9326 (build_method_symbols_entry): New function.
9327 (emit_offset_symbol_table): New function.
9328 * expr.c (get_offset_table_index): New function.
9329 (build_invokevirtual): Build array reference to otable at the index
9330 returned by get_offset_table_index, and use the result as the vtable
9331 offset.
9332 (build_invokeinterface): Similar.
9333 * jcf-parse.c (yyparse): If indirect-dispatch, call
9334 emit_offset_symbol_table at the end of compilation, after all classes
9335 have been generated.
9336 * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
9337 * lang.c (flag_indirect_dispatch): Define.
9338 (lang_f_options): Add indirect-dispatch flag.
9339
9340 2001-12-14 Matthias Klose <doko@debian.org>
9341
9342 * gcj.texi: Markup for man page generation. Document missing
9343 options printed by <tool> --help.
9344 Terminate description of gij's -ms option with a dot.
9345 * Make-lang.in ($(srcdir)/java/*.1): New targets.
9346 (java.generated-manpages java.install-man, java.uninstall,
9347 java-maintainer-clean) Updated.
9348
9349 2001-12-14 Hans Boehm <Hans_Boehm@hp.com>
9350
9351 * class.c (get_dispatch_table): Fix java vtable layout
9352 for TARGET_VTABLE_USES_DESCRIPTORS.
9353 * decl.c (java_init_decl_processing): Initialize
9354 alloc_no_finalizer_node, finalize_identifier_node.
9355 * expr.c (class_has_finalize_method): New function.
9356 (expand_java_NEW): Generate calls for finalizer-free allocation.
9357 (build_invokevirtual): Fix java vtable layout for
9358 TARGET_VTABLE_USES_DESCRIPTORS.
9359 * java-tree.h (enum java_tree_index): New entries:
9360 JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
9361 (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
9362 (class_has_finalize_method): declare.
9363 (HAS_FINALIZER_P): New macro.
9364 * parse.y (patch_invoke): Generate calls for finalizer-free
9365 allocation.
9366
9367 2001-12-12 Matthias Klose <doko@debian.org>
9368
9369 * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
9370 whitespace at end of line.
9371
9372 2001-12-11 Tom Tromey <tromey@redhat.com>
9373
9374 * lex.c (java_init_lex): Define wfl_to_string as
9375 gnu.gcj.runtime.StringBuffer unless generating bytecode.
9376
9377 2001-12-11 Jeff Sturm <jsturm@one-point.com>
9378
9379 * class.c (make_method_value): Use null_pointer_node to
9380 represent empty exception table.
9381
9382 2001-12-10 Tom Tromey <tromey@redhat.com>
9383
9384 * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
9385
9386 2001-12-10 Douglas B. Rupp <rupp@gnat.com>
9387
9388 * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
9389
9390 2001-12-09 Per Bothner <per@bothner.com>
9391
9392 * check-init.c (current_switch_has_default): New static field.
9393 (check_init): Case DEFAULT_EXPR: Set current_switch_has_default.
9394 Case SWITCH_EXPR: Save/restore current_switch_has_default. If no
9395 DEFAULT_EXPR seen, simulate a default alternative that copies state.
9396
9397 2001-12-09 Tom Tromey <tromey@redhat.com>
9398
9399 * check-init.c (check_init): Don't allow pre- or post- increment
9400 or decrement of final variable.
9401 (final_assign_error): Minor error message rewording.
9402
9403 2001-12-08 Tom Tromey <tromey@redhat.com>
9404
9405 * java-tree.h: Fixed typo.
9406
9407 * gjavah.c (decompile_method): Don't decompile to `return this'
9408 for static methods.
9409
9410 * gjavah.c (cxx_keywords): Re-sorted.
9411 * lex.c (cxx_keywords): Re-sorted.
9412
9413 * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
9414 else.
9415
9416 * gjavah.c (print_namelet): Clear subnamelets.
9417 (HANDLE_METHOD): Set `method_printed' earlier.
9418
9419 2001-12-07 Tom Tromey <tromey@redhat.com>
9420
9421 * lang.c (lang_f_options): Added
9422 optimize-static-class-initialization.
9423 (java_decode_option): Removed special case.
9424
9425 2001-12-07 Per Bothner <per@bothner.com>
9426
9427 * check-init.c (check_init): Fix typo freeing memory twice.
9428
9429 2001-12-05 Per Bothner <per@bothner.com>
9430
9431 Restore support for static class initialization optimization.
9432 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
9433 * check-init.c (check_int): At end of BLOCK handle initialization
9434 blocks, which used to be done in java_complete_expand_method but did
9435 not handle the case where check_for_initialization might allocate
9436 more than a word of bits.
9437 * decl.c (lang_make_tree): The smic field is now a tree.
9438 * expr.c (build_class_init): Set DECL_FUNCTION_INIT_TEST_CLASS field.
9439 * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE): New macro.
9440
9441 * parse.y (emit_test_initialization): Combine hash_lookup calls.
9442
9443 * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
9444 Change from a hash table to a list.
9445 (struct_lang_decl): Change field 'smic' to match.
9446 * class.c (add_method_1): Initialize
9447 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
9448 * parse.y (adjust_init_test_initialization): Removed - inlined into -
9449 (java_expand_method_bodies): -here, since 'smic' is now a list.
9450 (patch_invoke): Add to 'smic' list, instead of hash_lookup.
9451
9452 * check-init.c (WORD_SIZE): Use BITS_PER_UNIT.
9453
9454 * class.c (java_hash_compare_tree_node): Fix casts.
9455
9456 2001-12-04 Per Bothner <per@bothner.com>
9457
9458 * check-init.c: Handle definite unassignment to finals in addition
9459 to definite assignment.
9460 (loop_current_locals): New field.
9461 (num_current_locals, int start_current_locals, num_current_words):
9462 Make static.
9463 (SET_P, CLEAR_P, SET_BIT): Add needed but missing parentheses.
9464 (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
9465 CLEAR_ASSIGNED, CLEAR_UNASSIGNED): New macros.
9466 (get_variable_decl, check_final_reassigned): New functions.
9467 (check_init, check_bool_init): Modify as needed for checking finals.
9468 (check_for_initialization): Take extra parameter and return void.
9469 Do extra start-up logic to check final fields for assignment.
9470 * parse.y (check_static_final_variable_assignment_flag,
9471 reset_static_final_variable_assignment_flag, check_final_assignment,
9472 check_final_variable_local_assignment_flag,
9473 reset_final_variable_indirect_assignment_flag,
9474 reset_final_variable_global_assignment_flag): Remove functions.
9475 (java_complete_expand_methods, outer_field_access_fix,
9476 patch_assignment): Remove no-longer used logic.
9477 * java-tree.h (DECL_FIELD_FINAL_IUD): Change usage and comments.
9478 * parse.y (register_fields, java_complete_tree): Update accordingly.
9479
9480 * check-init.c (ALLOC_WORDS/FREE_WORDS): Use xmalloc/free, not alloca.
9481 (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER): New.
9482 (check_cond_init, check_bool2_init): Use DECLARE_BUFFERS.
9483
9484 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Temporarily turn off.
9485
9486 * java-tree.h (DECL FINAL): New bit-field.
9487 (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL): Define as DECL_FINAL.
9488 (LOCAL_FINAL_P): Use DECL_FINAL rather than old LOCAL_FINAL.
9489 (DECL_INIT_CALLS_THIS): New macro.
9490 (struct lang_decl): New bit-field init_calls_this.
9491 (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
9492 DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
9493 (DECL_BIT_INDEX): Change to use pointer_alias_set since we now
9494 use it for both local variables and final fields.
9495 (struct lang_decl_var): Remove bit-fields final_liic, final_ierr,
9496 and local_final.
9497 (struct lang_type): Remove hfv bit-field.
9498 (check_for_initialization): Change to return void.
9499
9500 * java-tree.h (IS_ARRAY_LENGTH_ACCESS): New macros.
9501 * expr.c (build_java_array_length_access): Set IS_ARRAY_LENGTH_ACCESS.
9502 * check-init.c (final_assign_error): New helper function.
9503 (check_final_reassigned, check_init): Use it.
9504 (check_init): Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
9505
9506 * java-tree.h (struct lang_decl, struct lang_decl_var): Change all
9507 bit-fields to unsigned.
9508
9509 2001-12-03 Per Bothner <per@bothner.com>
9510
9511 * parse.y (patch_binop): Minor constant folding.
9512
9513 * parse.y (build_current_thisn): Shorter 'buffer'.
9514
9515 2001-12-03 Per Bothner <per@bothner.com>
9516
9517 * decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR
9518 instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
9519 * jcf-write.c (generate_bytecode_insns): Remove support for
9520 CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
9521 * check-init.c (check_init): Likewise.
9522
9523 2001-12-03 Per Bothner <per@bothner.com>
9524
9525 * verify.c (subroutine_nesting): New function.
9526 (verify_jvm_instructions): Use it to fix logic for checking that
9527 we're done with the current subroutine.
9528
9529 * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
9530 OPCODE_instanceof use POP_TYPE macro for better diagnostics.
9531
9532 2001-12-03 Per Bothner <per@bothner.com>
9533
9534 * jcf.h: Fix obvious typo in comment.
9535 * typeck.c (build_null_signature): Add comment.
9536
9537 2001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
9538
9539 * expr.c: Remove leading capital from diagnostic messages, as
9540 per GNU coding standards.
9541 * jcf-io.c: Similarly.
9542 * jcf-parse.c: Similarly.
9543 * jv-scan.c: Similarly.
9544 * jvspec.c: Similarly.
9545 * mangle.c: Similarly.
9546
9547 2001-12-02 Tang Ching-Hui <nicholas@cs.nthu.edu.tw>
9548 Alexandre Petit-Bianco <apbianco@redhat.com>
9549
9550 * expr.c (build_java_arrayaccess): Call save_expr on array for
9551 correct evaluation order, modified comment, fixed indentation.
9552 * parse.y: (patch_assignment): Correctly extract the array base
9553 from the tree generate by build_java_arrayaccess, added comments.
9554 (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
9555 Fixes PR java/3096, PR java/3803, PR java/3965.
9556
9557 2001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
9558
9559 * expr.c (expand_byte_code): Remove trailing periods from messages.
9560 * jcf-parse.c (load_class, jcf_parse): Similarly.
9561 * jcf-write.c (generate_classfile): Similarly.
9562 * lex.c (java_lex): Similarly.
9563
9564 2001-11-30 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9565
9566 * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
9567
9568 2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
9569
9570 * Make-lang.in (java.generated-manpages): New dummy target.
9571
9572 2001-11-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9573
9574 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9575 ASM_FINAL_SPEC.
9576 (lang_specific_pre_link): Use set_input to set input_filename.
9577 Append `main' here.
9578 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9579 (main): Fix definition.
9580 Strip `main' from classname.
9581 Fixes PR java/227.
9582
9583 2001-11-18 Roger Sayle <roger@eyesopen.com>
9584
9585 * parse.h (java_expand_switch): Remove old prototype.
9586
9587 2001-11-18 Tom Tromey <tromey@redhat.com>
9588
9589 Fix for PR java/1401:
9590 * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
9591 arg0 is null.
9592 (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
9593 correctly.
9594
9595 2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
9596
9597 * lang.c (finish_parse): Rename to java_finish.
9598 (LANG_HOOKS_FINISH, java_finish): New.
9599
9600 2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
9601
9602 * decl.c (init_decl_processing): Rename java_init_decl_processing.
9603 * java-tree.h: New prototype.
9604 * lang.c (java_init): Update prototype. Combine with old init_parse.
9605
9606 2001-11-13 Tom Tromey <tromey@redhat.com>
9607
9608 * gjavah.c (method_signature): New global.
9609 (HANDLE_METHOD): Set it.
9610 (decompile_return_statement): New function.
9611 (decompile_method): Use it.
9612 (print_method_info): Removed `synth' argument.
9613
9614 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
9615
9616 * java-tree.h (java_set_yydebug): New.
9617 * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
9618 * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
9619 (print_lang_decl, print_lang_type, print_lang_identifier,
9620 print_lang_statistics, lang_print_xnode): Remove.
9621
9622 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
9623
9624 * jcf-parse.c (init_lex): Remove.
9625 * lang.c (language_string, lang_identify): Remove.
9626 (struct lang_hooks): Constify.
9627 (LANG_HOOKS_NAME): Override.
9628 (init_parse): Update.
9629
9630 2001-11-08 Andreas Franck <afranck@gmx.de>
9631
9632 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
9633 program_transform_name the way suggested by autoconf.
9634 (java.install-common): Also transform auxiliary program names with
9635 program_transform_name.
9636
9637 2001-11-08 Tom Tromey <tromey@cygnus.com>
9638
9639 * parse.y (trap_overflow_corner_case): New rule.
9640 (unary_expression): Use it.
9641 * lex.c (java_init_lex): Don't set minus_seen.
9642 (yylex): Don't use minus_seen. Communicate overflow to parser for
9643 it to handle.
9644 (error_if_numeric_overflow): New function.
9645 * parse.h (minus_seen): Removed field.
9646 (JAVA_RADIX10_FLAG): New define.
9647
9648 2001-11-07 Tom Tromey <tromey@redhat.com>
9649
9650 Patch for PR java/1414:
9651 * parse.y (case_label_list): New global.
9652 (goal): Register case_label_list with GC.
9653 (java_complete_lhs): Save new case on case_label_list.
9654 (patch_switch_statement): Check for duplicate case labels.
9655
9656 2001-11-07 Alexandre Petit-Bianco <apbianco@redhat.com>
9657
9658 * parse.y (patch_assignment): Removed unused third argument.
9659 (java_complete_lhs): Removed unused third argument to patch_assignment.
9660
9661 2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
9662
9663 * lang.c: Include langhooks-def.h.
9664 * Make-lang.in: Update.
9665
9666 2001-10-31 Zack Weinberg <zack@codesourcery.com>
9667
9668 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
9669
9670 2001-10-29 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9671
9672 * mangle.c (find_compression_record_match): Don't match compression
9673 records for package name elements unless they occur at the start of
9674 the name. Fix for PR java/4717.
9675
9676 2001-10-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9677
9678 * expr.c (expand_java_field_op): Don't special-case references to
9679 java.lang.PRIMTYPE.TYPE.
9680 (build_primtype_type_ref): Removed.
9681 * java-tree.h (build_primtype_type_ref): Remove prototype.
9682 * parse.y (maybe_build_primttype_type_ref): Removed.
9683 (complete_function_arguments): Don't special-case references to
9684 java.lang.PRIMTYPE.TYPE.
9685 (patch_assignment): Likewise.
9686 (array_constructor_check_entry): Likewise.
9687
9688 2001-10-24 Alexandre Petit-Bianco <apbianco@redhat.com>
9689
9690 * mangle.c (static tree compression_table): Fixed leading comment.
9691 * parse.h (struct parser_ctxt): Fixed field comment.
9692 * parse.y (check_pkg_class_access): New prototype, fixed leading
9693 comment, new parameter used to emit error only if passed as true.
9694 (parse_check_super): Pass extra argument to check_pkg_class_access.
9695 (do_resolve_class): Likewise.
9696 (process_imports): Likewise.
9697 (read_import_dir): Fixed indentation.
9698 (find_in_imports_on_demand): New local class_type_name. Local
9699 node_to_use deleted. while loop changed into for loop. Report
9700 multiple definition only for accessible classes. Improved error
9701 message.
9702 (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
9703 assigned to parameter list, fixed indentation. while loop changed
9704 into for loop, restore TREE_CHAIN on local `tem' before the next
9705 iteration.
9706
9707 2001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9708
9709 * lang.c (lang_get_alias_set): Deleted.
9710
9711 2001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9712
9713 * gjavah.c (jni_print_char): Fix thinko in last change.
9714
9715 * gjavah.c (jni_print_char, decode_signature_piece): Use
9716 safe-ctype macros and/or fold extra calls into fewer ones.
9717 * lex.c (java_read_unicode, java_lex): Likewise.
9718 * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
9719 JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
9720 * mangle_name.c (append_unicode_mangled_name,
9721 unicode_mangling_length): Likewise.
9722
9723 2001-10-17 Richard Henderson <rth@redhat.com>
9724
9725 * Make-lang.in (java/lang.o): Depend on langhooks.h.
9726
9727 2001-10-15 Alexandre Petit-Bianco <apbianco@redhat.com>
9728
9729 * lang.c (langhooks.h): Included.
9730 (LANG_HOOKS_INIT): Redefined.
9731 (LANG_HOOKS_INIT_OPTIONS): Likewise.
9732 (LANG_HOOKS_DECODE_OPTION): Likewise.
9733 (struct lang_hooks lang_hooks): New initialization.
9734
9735 2001-10-11 Per Bothner <per@bothner.com>
9736
9737 * parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR
9738 rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
9739 The former is simpler, and jcf-write.c handles it better.
9740 (java_complete_lhs): No longer need to handle CLEANUP_POINT_EXPR
9741 or WITH_CLEANUP_EXPR.
9742 * jcf-write.c: Revert Alex's change from 2000-10-18. It is no
9743 longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
9744
9745 * parse.y (patch_if_else_statement): If the condition is constant,
9746 optimize away the test.
9747
9748 2001-10-09 Alexandre Petit-Bianco <apbianco@redhat.com>
9749
9750 * parse.y (patch_cast): Call patch_string on the first operand of
9751 the incoming node, update it if necessary. Fixes PR java/4510.
9752
9753 2001-10-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9754
9755 * parse.y (find_as_inner_class): Don't disregard the enclosing scope
9756 when name qualifier matches a package name.
9757
9758 2001-10-08 Tom Tromey <tromey@redhat.com>
9759
9760 Fix for PR java/4489:
9761 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
9762 force a new label when computing `body_block'.
9763
9764 2001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9765
9766 * jcf-io.c (format_uint): Const-ify.
9767 * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
9768 * lex.c (java_get_line_col): Likewise.
9769 * parse.y (build_incdec): Likewise.
9770
9771 2001-10-05 Alexandre Petit-Bianco <apbianco@redhat.com>
9772
9773 * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
9774 a NULL enclosing context if appropriate. Fixes PR java/4466.
9775
9776 2001-10-03 Alexandre Petit-Bianco <apbianco@redhat.com>
9777
9778 * parse.y (patch_assignment): Use lvalue's original TYPE when
9779 building the final COMPOUND_EXPR.
9780 (try_reference_assignconv): Fixed leading comment.
9781
9782 2001-09-26 Alexandre Petit-Bianco <apbianco@redhat.com>
9783
9784 * parse.y (check_final_variable_indirect_assignment): For
9785 COMPOUND_EXPR, return only if finals were found initialized
9786 properly, if not, keep on checking.
9787 (check_final_variable_global_assignment_flag): New local
9788 error_found, set when appropriate and used to decide whether to
9789 report uninitialized finals. Fixed typo in comment.
9790
9791 2001-09-22 Alexandre Petit-Bianco <apbianco@redhat.com>
9792
9793 * decl.c (init_decl_processing): Fixed typo in predef_filenames
9794 last three initializations. Fixes PR java/4360.
9795
9796 2001-09-21 Richard Henderson <rth@redhat.com>
9797
9798 * class.c (get_dispatch_table): Handle function descriptors.
9799 (build_dtable_decl): Likewise.
9800 * expr.c (build_invokevirtual): Likewise.
9801
9802 2001-09-20 Alexandre Petit-Bianco <apbianco@redhat.com>
9803
9804 * parse.y (patch_method_invocation): Build class initialization
9805 when static finals are used to qualify method invocation.
9806 Fixes PR java/4366.
9807
9808 2001-09-19 Alexandre Petit-Bianco <apbianco@redhat.com>
9809
9810 * parse.h: (WFL_STRIP_BRACKET): Re-written using
9811 build_type_name_from_array_name.
9812 (STRING_STRIP_BRACKETS): New macro.
9813 * parse.y (build_type_name_from_array_name): New function.
9814 (array_creation_expression:): Accumulate []s instead of [s.
9815 (cast_expression:): Accumulate []s instead of [s after cast type
9816 name.
9817 (build_array_from_name): Local string deleted, use
9818 build_type_name_from_array_name.
9819 (build_unresolved_array_type): Accumulate []s instead of [s after
9820 type name.
9821 (register_fields): Fixed comment.
9822 (resolve_class): Local name, base deleted, new locals tname and
9823 array_dims. Use build_type_name_from_array_name. Use array_dims to
9824 build array type.
9825 (purify_type_name): Use STRING_STRIP_BRACKETS.
9826
9827 2001-09-18 Andreas Jaeger <aj@suse.de>
9828
9829 * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
9830 * jv-scan.c: Likewise.
9831
9832 2001-09-17 Alexandre Petit-Bianco <apbianco@redhat.com>
9833
9834 * parse.y (patch_method_invocation): Inner class creation context
9835 check not enforced within constructors. Fixes PR java/1873.
9836
9837 2001-09-16 Tom Tromey <tromey@redhat.com>
9838
9839 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
9840 NOTE_PUSH for single-case push. Fixes PR java/4189.
9841
9842 2001-09-13 Alexandre Petit-Bianco <apbianco@redhat.com>
9843
9844 * java-tree.h (TYPE_IMPORT_LIST): New macro.
9845 (TYPE_IMPORT_DEMAND_LIST): Likewise.
9846 (struct lang_type): New fields import_list and import_demand_list.
9847 * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
9848 TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
9849 (do_resolve_class): New local saved_enclosing_type, initialized,
9850 passed as parameter to find_in_imports and find_in_imports_on_demand.
9851 (find_in_imports): Added paramater enclosing_type, use its
9852 TYPE_IMPORT_LIST when applicable.
9853 (find_in_imports_on_demand): Added parameter enclosing_type, use
9854 its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
9855 declaration and initialization.
9856 (fold_constant_for_init): Switch/restore current_class to the
9857 appropriate context.
9858
9859 2001-09-13 Mark Mitchell <mark@codesourcery.com>
9860
9861 * verify.c (verify_jvm_instructions): Fix typo.
9862
9863 2001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9864
9865 * expr.c (expand_invoke): Const-ification.
9866 * parse.y (patch_method_invocation): Likewise.
9867
9868 2001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9869
9870 * gjavah.c (cxx_keywords): Const-ification.
9871 * keyword.gperf (java_keyword): Likewise.
9872 * lang.c (java_tree_code_name): Likewise.
9873 * lex.c (cxx_keywords): Likewise.
9874 * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
9875
9876 2001-09-11 Richard Henderson <rth@redhat.com>
9877
9878 * parse.h (ctxp_for_generation): Mark extern.
9879
9880 2001-09-10 Richard Henderson <rth@redhat.com>
9881
9882 * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
9883
9884 2001-09-07 Matt Kraai <kraai@alumni.carnegiemellon.edu>
9885
9886 * typeck.c (java_array_type_length, build_prim_array_type):
9887 Represent empty arrays by NULL index.
9888
9889 2001-09-06 Alexandre Petit-Bianco <apbianco@redhat.com>
9890
9891 * java-tree.h (compile_resource_file): Grouped with other prototypes.
9892 * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
9893
9894 2001-09-06 Anthony Green <green@redhat.com>
9895
9896 * class.c (O_BINARY): Define if necessary.
9897 (registerResource_libfunc): Declare.
9898 (init_class_processing): Initilize registerResource_libfunc.
9899 (compile_resource_file): New function.
9900 * java-tree.h (resource_name): Declare.
9901 (compile_resource_file): Declare.
9902 * jcf-parse.c (yyparse): Handle compiling java resource files.
9903 * lang.c (java_decode_option): Handle -fcompile-resource option.
9904 * jvspec.c (lang_specific_driver): Handle -R flag for compiling
9905 resource files.
9906 * gcj.texi (Code Generation): Add documentation for -R flag.
9907
9908 2001-09-05 Alexandre Petit-Bianco <apbianco@redhat.com>
9909
9910 * jcf-write.c (generate_classfile): Issue an error in case of
9911 field/initial value mismatch.
9912 * parse.y (analyze_clinit_body): Keep <clinit> if an array is
9913 being initialized and we're generating bytecode.
9914 (java_complete_lhs): In MODIFY_EXPR section: added comments,
9915 set DECL_INITIAL properly when appropriate.
9916 Fixes PR java/4230
9917 Fixes PR java/4204
9918
9919 2001-09-01 Per Bothner <per@bothner.com>
9920
9921 * parse.y (maybe_yank_clinit): A field without an initializer is not
9922 relevant. All initializers except static final and constant require
9923 <clinit>, regardless of flag_emit_class_files.
9924
9925 2001-08-31 Per Bothner <per@bothner.com>
9926
9927 * class.c (set_constant_value): When not emitting class files, then a
9928 String ConstantValue is a utf8const_ptr_type.
9929
9930 2001-08-30 Per Bothner <per@bothner.com>
9931
9932 * jcf-write.c (generate_classfile): Check that field is primitive
9933 or string before emitting ConstantValue attribute.
9934
9935 2001-08-30 Per Bothner <per@bothner.com>
9936
9937 * parse.y (resolve_qualified_expression_name): If creating a
9938 COMPOUND_EXPR, set it's type correctly.
9939
9940 2001-08-30 Per Bothner <per@bothner.com>
9941
9942 * jcf-io.c (open_class): Set filename field.
9943
9944 * jcf-parse,c (parse_class_file): Set current_function_decl
9945 for better error message when Code attribute is missing.
9946
9947 * lang.c (put_decl_node, lang_print_error): Re-arrange for
9948 better diagnostics, especially for constructors.
9949
9950 2001-08-30 Per Bothner <per@bothner.com>
9951
9952 * jcf-write.c (generate_classfile): Don't write ConstantValue
9953 attribute if field is not final, for compatibility with jdk.
9954
9955 * jcf-write.c (generate_classfile): Convert ConstantValue values
9956 to correct type. Work-around for front-end bug.
9957 * class.c (set_constant_value): Error if constant has wrong type.
9958
9959 2001-08-30 Per Bothner <per@bothner.com>
9960
9961 * jcf-dump.c (print_constant): Fix fencepost error so "Float" and
9962 "Double" are printed at verbosity 1.
9963
9964 * jcf-dump.c (main): Disable flag_print_attributes if --javap.
9965
9966 * jcf-dump.c (SPECIAL_IINC): Remove unneeded casts to long.
9967
9968 2001-08-30 Alexandre Petit-Bianco <apbianco@redhat.com>
9969
9970 * parse.y (patch_assignment): Don't verify final re-assignment here.
9971 (java_complete_lhs): Verify assignments to finals calling
9972 patch_assignment. Verify re-assignments to finals before calling
9973 patch_assignment.
9974
9975 2001-08-29 Alexandre Petit-Bianco <apbianco@redhat.com>
9976
9977 * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
9978 Fixes PR java/1413
9979
9980 2001-08-28 Alexandre Petit-Bianco <apbianco@redhat.com>
9981
9982 * lex.c (java_lex): new local found_hex_digits. Set and then used
9983 in test to reject invalid hexadecimal numbers.
9984 * parse.y (java_complete_tree): Prevent unwanted cast with
9985 initialized floating point finals.
9986 (patch_binop): Emit a warning when detecting a division by zero,
9987 mark result not constant, don't simplify non integer division.
9988
9989 2001-08-28 Per Bothner <per@bothner.com>
9990
9991 * jcf-write.c (generate_bytecode_insns): For increments and
9992 decrements just recurse to push constant. Improvement on Mark's patch.
9993
9994 2001-08-28 Mark Mitchell <mark@codesourcery.com>
9995
9996 * jcf-write.c (generate_bytecode_insns): Generate an integer to
9997 real conversion for increments and decrements of reals.
9998
9999 2001-08-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10000
10001 * parse.y (resolve_qualified_expression_name): Handle unresolved
10002 qualified expressions, prevent numerical qualifiers, fixed typo.
10003 Fixes PR java/4141
10004
10005 2001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com>
10006
10007 * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
10008 don't report anything but deprecated class when marked so. Handle
10009 VAR_DECL.
10010 (patch_method_invocation): Check deprecation on methods and types.
10011 (patch_binop): code becomes an enum tree_code, added default: to
10012 switch to handle that. Detect division by zero, try to fold and
10013 return before using a subroutine.
10014
10015 2001-08-23 Alexandre Petit-Bianco <apbianco@redhat.com>
10016
10017 * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
10018 file smaller than 4 bytes.
10019 * parse.y (check_inner_circular_reference): New function.
10020 (check_circular_reference): Likewise.
10021 (array_initializer:): Accept {,}.
10022 (java_check_circular_reference): Rewritten using
10023 check_circular_reference and check_inner_circular_reference.
10024 (java_complete_expand_method): Unconditionally save and restore
10025 the unpurged exception list.
10026 (build_dot_class_method_invocation): Unmangle signature parameter.
10027
10028 2001-08-21 Tom Tromey <tromey@redhat.com>
10029
10030 * decl.c (init_decl_processing): Add `throws' field to method
10031 descriptor.
10032 * class.c (make_method_value): Compute `throws' field for method.
10033
10034 2001-08-22 Alexandre Petit-Bianco <apbianco@redhat.com>
10035
10036 * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
10037 circularity is detected.
10038 (ctors_unchecked_throws_clause_p): Fixed leading comment.
10039
10040 2001-08-17 Richard Henderson <rth@redhat.com>
10041
10042 * class.c (emit_register_classes): Add align parameter to
10043 call to assemble_integer.
10044
10045 2001-08-16 Alexandre Petit-Bianco <apbianco@redhat.com>
10046
10047 * jcf-parse.c (load_class): New locals saved and class_loaded. If
10048 loading a class_or_name fails, try considering an innerclass name
10049 and load the enclosing context.
10050 * parse.y (resolve_inner_class): New function.
10051 (find_as_inner_class): Added leading comment.
10052 (register_incomplete_type): Keep the current context as enclosing
10053 context for JDEP_FIELD dependencies.
10054 (do_resolve_class): Locals new_class_decl and super initialized to
10055 NULL. Call resolve_inner_class, explore the enclosing context
10056 superclass if necessary.
10057 Fixes PR java/4007
10058
10059 2001-08-16 Tom Tromey <tromey@redhat.com>
10060
10061 * jcf-dump.c (main): Updated for change to jcf_path_seal.
10062 * gjavah.c (main): Updated for change to jcf_path_seal.
10063 * lang.c (version_flag): New global.
10064 (java_decode_option): Recognize `-version'.
10065 (java_init): Update for change to jcf_path_seal.
10066 * jcf.h (jcf_path_seal): Added `print' argument.
10067 * jcf-path.c (jcf_path_seal): Added `print' argument.
10068
10069 2001-08-13 Zack Weinberg <zackw@panix.com>
10070
10071 * Make-lang.in (java/decl.o): Update dependencies.
10072 * decl.c: Include libfuncs.h, don't include toplev.h.
10073
10074 2001-08-12 Alexandre Petit-Bianco <apbianco@redhat.com>
10075
10076 * decl.c (init_decl_processing): exception_type_node,
10077 class_not_found_type_node, and no_class_def_found_type_node
10078 initialized. predef_filenames augmented accordingly.
10079 instinit_identifier_node initialized.
10080 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
10081 * java-tree.h (enum java_tree_index): New entries
10082 JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
10083 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
10084 (exception_type_node): New macro.
10085 (class_not_found_type_node): Likewise.
10086 (no_class_def_found_type_node): Likewise.
10087 (instinit_identifier_node): Likewise.
10088 (PREDEF_FILENAMES_SIZE): Adjusted.
10089 (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
10090 (struct lang_type): Fixed typo in bitfield name.
10091 (DECL_INSTINIT_P): New macro.
10092 (ID_INSTINIT_P): Likewise.
10093 * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
10094 attribute.
10095 * parse.y (encapsulate_with_try_catch): New function.
10096 (generate_instinit): Likewise.
10097 (build_instinit_invocation): Likewise.
10098 (ctors_unchecked_throws_clause_p): Likewise.
10099 (add_instance_initializer): Deleted.
10100 (build_instance_initializer): Likewise.
10101 (in_instance_initializer): Likewise.
10102 (check_method_redefinition): instinit$ not to be verified.
10103 (java_complete_expand_methods): Generate instinit$, simplified code.
10104 (build_dot_class_method): Eliminated unnecessary locals. Use
10105 encapsulate_with_try_catch, removed unnecessary code.
10106 (fix_constructors): New local iii. Use build_instinit_invocation.
10107 (patch_method_invocation): Added comment.
10108 (maybe_use_access_method): Don't consider instinit$.
10109 (find_applicable_accessible_methods_list): Shorten the search for
10110 instinit$ too.
10111 (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
10112 (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
10113 (patch_throw_statement): Likewise. Fixed typo.
10114
10115 2001-08-12 David Edelsohn <edelsohn@gnu.org>
10116
10117 Revert:
10118 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10119 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10120 ASM_FINAL_SPEC.
10121 (lang_specific_pre_link): Use set_input to set input_filename.
10122 Append `main' here.
10123 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10124 (main): Fix definition.
10125 Strip `main' from classname.
10126 Fixes PR java/227.
10127
10128 2001-08-11 Zack Weinberg <zackw@panix.com>
10129
10130 * lex.h: Don't include setjmp.h. Don't define
10131 SET_FLOAT_HANDLER or prototype set_float_handler.
10132
10133 2001-08-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10134
10135 * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
10136 `poplevel' in the right order.
10137
10138 2001-08-09 Richard Henderson <rth@redhat.com>
10139
10140 * Make-lang.in (class.o): Depend on TARGET_H.
10141 * class.c (emit_register_classes): Use target hooks instead of
10142 assemble_constructor and assemble_destructor.
10143
10144 2001-08-08 Alexandre Petit-Bianco <apbianco@redhat.com>
10145
10146 * check-init.c (flags.h): Include
10147 (check_init): Don't report uninitialized static class
10148 initialization flags, don't free bit index when doing static class
10149 initialization optimization.
10150 (check_for_initialization): Return type changed to `unsigned int.'
10151 (attach_initialized_static_class): New function.
10152 * class.c (add_method_1): Create the initialized static class
10153 table if necessary.
10154 (finish_class): Always emit deferred inline methods.
10155 * decl.c (emit_init_test_initialization): Moved to expr.c
10156 (complete_start_java_method): Don't traverse
10157 DECL_FUNCTION_INIT_TEST_TABLE.
10158 (lang_mark_tree): Mark hash tables in function decls.
10159 * expr.c (emit_init_test_initialization): Moved from decl.c.
10160 (build_class_init): Create LAG_DECL_SPECIFIC for the static class
10161 initialization flag, set DECL_CONTEXT and
10162 LOCAL_CLASS_INITIALIZATION_FLAG.
10163 (java_lang_expand_expr): Emit initialization code for static class
10164 initialized flags when entering block, if necessary.
10165 * gcj.texi (-fno-optimize-static-class-initialization): Documented.
10166 * java-tree.h (flag_optimize_sci): New global variable declaration.
10167 (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
10168 (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
10169 (LOCAL_FINAL_P): Fixed typo in comment.
10170 (FINAL_VARIABLE_P): Likewise.
10171 (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
10172 (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
10173 (struct lang_decl): New fields `ict', `smic' and `cif.'
10174 (check_for_initialization): New returned value for global.
10175 (attach_initialized_static_class): New global function.
10176 (STATIC_CLASS_INIT_OPT_P): New macro.
10177 * lang-options.h (-fno-optimize-static-class-initialization): New flag.
10178 * lang.c (java_decode_option): Handle
10179 `-fno-optimize-static-class-initialization'
10180 * parse.y (start_complete_expand_method): New function.
10181 (java_expand_method_bodies): Likewise.
10182 (attach_init_test_initialization_flags): Likewise.
10183 (adjust_init_test_initialization): Likewise.
10184 (emit_test_initialization): Likewise.
10185 (java_complete_expand_methods): Nullify abstract and native method
10186 bodies.
10187 (java_complete_expand_method): New locals `fbody', `block_body'
10188 and `exception_copy.' Reorganized: directly return on empty method
10189 bodies, call `start_complete_expand_method', remember definitely
10190 initialized static class in function, don't expand method bodies.
10191 (java_expand_classes): Call `java_expand_method_bodies' before
10192 `finish_class' when compiling to native.
10193 (resolve_expression_name): Use `orig' after building outer class
10194 field access.
10195 (patch_invoke): Remember static method invocations.
10196
10197 2001-08-06 Richard Henderson <rth@redhat.com>
10198
10199 * class.c (emit_register_classes): Pass a symbol_ref and priority
10200 to assemble_constructor.
10201
10202 2001-08-02 Alexandre Petit-Bianco <apbianco@redhat.com>
10203
10204 * java-tree.h (all_class_filename): New macro.
10205 (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
10206 (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
10207 newly created IDENTIFIER_NODE to `all_class_filename.'
10208
10209 2001-08-01 Jeff Sturm <jsturm@one-point.com>
10210
10211 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
10212 Use ggc_add_tree_root to register roots.
10213
10214 2001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
10215
10216 * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
10217 second operand calling check_init.
10218 * decl.c (complete_start_java_method): Swaped second and third
10219 arguments while creating WITH_CLEANUP_EXPR node.
10220 * jcf-write.c (generate_bytecode_insns): Use second operand
10221 instead of third when handling WITH_CLEANUP_EXPR.
10222 * parse.y (java_complete_lhs): Expand second operand of
10223 WITH_CLEANUP_EXPR nodes.
10224 (patch_synchronized_statement): Swaped second and third arguments
10225 while creating WITH_CLEANUP_EXPR node.
10226
10227 2001-07-18 Alexandre Petit-Bianco <apbianco@redhat.com>
10228
10229 * parse.y (create_interface): Avoid cyclic inheritance report when
10230 syntax error encountered during class definition.
10231 Fixes PR java/2956
10232
10233 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10234
10235 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10236 ASM_FINAL_SPEC.
10237 (lang_specific_pre_link): Use set_input to set input_filename.
10238 Append `main' here.
10239 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10240 (main): Fix definition.
10241 Strip `main' from classname.
10242 Fixes PR java/227.
10243
10244 2001-07-18 Tom Tromey <tromey@redhat.com>
10245
10246 For PR java/2812:
10247 * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
10248 * lex.c (java_new_lexer): Use ICONV_CONST.
10249 (java_read_char): Likewise.
10250 * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
10251 (jv-scan$(exeext)): Likewise.
10252
10253 2001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
10254
10255 * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
10256 * parse.y (check_class_interface_creation): Allow `private' if the
10257 enclosing is not an interface.
10258 (create_interface): Interface tagged public if the enclosing
10259 context is an interface.
10260 (create_class): Class tagged public if the enclosing context
10261 is an interface.
10262 Fixes PR java/2959
10263
10264 2001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
10265
10266 * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
10267 Fixes PR java/2665
10268
10269 2001-07-14 Tim Josling <tej@melbpc.org.au>
10270
10271 * check-init.c (check_init): Remove references to EXPON_EXPR.
10272
10273 2001-07-13 Alexandre Petit-Bianco <apbianco@redhat.com>
10274
10275 * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
10276 TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
10277 Fixes PR java/3602
10278
10279 2001-07-13 Tom Tromey <tromey@redhat.com>
10280
10281 * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
10282 invocation.
10283
10284 2001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
10285
10286 * parse.y (patch_method_invocation): Don't override primary if one
10287 is already provided, but let this$<n> be built. Fixed comment.
10288
10289 2001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
10290
10291 * parse.y (empty_statement:): Report empty statement error only
10292 when found at class declaration level.
10293 Fixes PR java/3635
10294
10295 2001-07-12 Tom Tromey <tromey@redhat.com>
10296
10297 * expr.c (expand_load_internal): New function.
10298 (LOAD_INTERNAL): Use it.
10299
10300 2001-07-11 Alexandre Petit-Bianco <apbianco@redhat.com>
10301
10302 * parse.y (verify_constructor_super): Compare anonymous class ctor
10303 args with `valid_method_invocation_conversion_p.'
10304 Fixes PR java/3285
10305
10306 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
10307
10308 * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
10309 `-fsyntax-only.' Fixes PR java/3248
10310
10311 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
10312
10313 * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
10314
10315 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
10316
10317 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
10318 current function is static. Fixes PR java/1970
10319
10320 2001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10321
10322 * parse.y (patch_method_invocation): Add enclosing context to ctor
10323 calls if necessary. Fixes PR java/2953
10324
10325 2001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10326
10327 * parse.y (resolve_package): Abort if qualified expression member
10328 isn't right.
10329 (qualify_ambiguous_name): Don't qualify as type if `this' in use.
10330 Fixes PR java/1391
10331
10332 2001-07-07 Zack Weinberg <zackw@stanford.edu>
10333
10334 * verify.c: Don't use // comments.
10335
10336 2001-07-05 Tom Tromey <tromey@redhat.com>
10337
10338 * lang.c (flag_assume_compiled): Removed.
10339 * java-tree.h (flag_assume_compiled): Removed.
10340 * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
10341 -fhash-synchronization, -fuse-divide-subroutine,
10342 -fcheck-references, -femit-class-file, -femit-class-files,
10343 -fassume-compiled. Updated --encoding information. Changed
10344 -foutput-class-dir to `-d'.
10345
10346 2001-07-04 Daniel Berlin <dan@cgsoftware.com>
10347
10348 * jcf-parse.c (parse_class_file): Add lineno parameter to
10349 debug_start_source_file call.
10350
10351 2001-07-04 Joseph S. Myers <jsm28@cam.ac.uk>
10352
10353 * gcj.texi: Use gpl.texi.
10354 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
10355 dependencies and use doc/include in search path.
10356
10357 2001-07-03 Jeff Sturm <jsturm@one-point.com>
10358
10359 * parse.y (fix_constructors): Test if a CALL_EXPR invokes
10360 `this'. If so, don't build instance initializers.
10361
10362 2001-07-03 Alexandre Petit-Bianco <apbianco@redhat.com>
10363
10364 * parse.y (resolve_expression_name): Improved error message for
10365 inner class cases. Fixes PR java/1958
10366
10367 2001-06-28 Gabriel Dos Reis <gdr@codesourcery.com>
10368
10369 * lang.c: #include diagnostic.h
10370 (lang_print_error): Add a `diagnostic_context *' parameter.
10371 (java_dummy_print): Likewise.
10372 * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
10373
10374 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10375
10376 * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
10377 * jcf.h (typedef struct JCF): New bitfield `finished.'
10378 (JCF_FINISH): Set `finished.'
10379 (JCF_ZERO): Reset `finished.'
10380 Fixes PR java/2633
10381
10382 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10383
10384 * parse.y (class_body_declaration:): Don't install empty instance
10385 initializers.
10386 Fixes PR java/1314
10387
10388 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10389
10390 * class.c (set_super_info): Call `set_class_decl_access_flags.'
10391 (set_class_decl_access_flags): New function.
10392 * java-tree.h (set_class_decl_access_flags): New prototype.
10393 * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
10394 (parse_class_file): New local `decl_max_locals.' Take wide types
10395 into account to compute DECL_MAX_LOCALS.
10396 * parse.y (type_import_on_demand_declaration:): Ignore duplicate
10397 imports on demand.
10398
10399 2001-06-22 Jan van Male <jan.vanmale@fenk.wau.nl>
10400
10401 * zipfile.h: Use GCC_JCF_H instead of JCF_H.
10402
10403 2001-06-20 Alexandre Petit-Bianco <apbianco@redhat.com>
10404
10405 * class.c (java_hash_tree_node): Fixed indentation in leading comment.
10406 * parse.y (do_resolve_class): Moved comments out to leading comment
10407 section. Removed local `start', New local `_ht' and
10408 `circularity_hash.' Record `enclosing' in hash table and search
10409 it to detect circularity. Use `enclosing' as an argument to
10410 `lookup_cl.' Free the hash table when done.
10411
10412 2001-06-19 Tom Tromey <tromey@redhat.com>
10413
10414 * lex.c (java_read_char): Disallow invalid and overlong
10415 sequences. Fixes PR java/2319.
10416
10417 2001-06-05 Jeff Sturm <jsturm@one-point.com>
10418
10419 * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
10420
10421 2001-06-04 Alexandre Petit-Bianco <apbianco@redhat.com>
10422
10423 * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
10424 arguments accordingly.
10425
10426 2001-06-02 Joseph S. Myers <jsm28@cam.ac.uk>
10427
10428 * gcj.texi: Move contents to just after title page.
10429
10430 2001-06-01 Alexandre Petit-Bianco <apbianco@redhat.com>
10431
10432 * parse.y (type_literals:): Use `build_incomplete_class_ref' with
10433 builtin type.
10434 (patch_incomplete_class_ref): Build the class ref, build the class
10435 init if necessary, complete the tree.
10436 Fixes PR java/2605
10437
10438 2001-05-31 Alexandre Petit-Bianco <apbianco@redhat.com>
10439
10440 * parse.y (lookup_field_wrapper): Test `name' code.
10441 (resolve_qualified_expression_name): Test `qual_wfl' code.
10442 (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
10443 handle `qual_wfl' by code.
10444 (maybe_build_primttype_type_ref): Test `wfl' code.
10445
10446 2001-05-23 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10447
10448 * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
10449 fdl.texi.
10450 (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls. Create
10451 the dvi file in the java directory.
10452
10453 2001-05-25 Sam TH <sam@uchicago.edu>
10454
10455 * gen-table.pl javaop.h jcf.h lex.h,
10456 parse.h: Fix header include guards.
10457
10458 2001-05-23 Joseph S. Myers <jsm28@cam.ac.uk>
10459
10460 * jv-scan.c (version): Update copyright year.
10461
10462 2001-05-21 Per Bothner <per@bothner.com>
10463
10464 * jcf-parse.c (read_class): If class is from .class or .zip file
10465 and it's already been read, don't push/pop parser context.
10466
10467 2001-05-18 Per Bothner <per@bothner.com>
10468
10469 * jvspec.c (lang_specific_pre_link): Re-arrange the linker
10470 command line so the jvgenmain-generated main program comes first.
10471
10472 2001-05-15 Tom Tromey <tromey@redhat.com>
10473
10474 * class.c (build_utf8_ref): Don't generate identifier based on
10475 utf8const contents.
10476
10477 2001-05-12 Richard Henderson <rth@redhat.com>
10478
10479 * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
10480 * expr.c (java_lang_expand_expr): Expand it.
10481 (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
10482 calling build_exception_object_ref.
10483 * parse.y (catch_clause_parameter): Likewise.
10484 (build_dot_class_method): Likewise.
10485 (try_reference_assignconv): Likewise.
10486 * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
10487 * jcf-write.c (generate_bytecode_insns): Likewise.
10488
10489 2001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
10490
10491 * parse.y (build_unresolved_array_type): Set
10492 EXPR_WFL_QUALIFICATION on the newly created wfl.
10493 Fixes PR java/2538. Fixes PR java/2535.
10494
10495 2001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
10496
10497 * parse.y (fix_constructors): Removed unnecessary assignment to
10498 local. Moved assignment to `this$<n>', fixed comments and
10499 indentation.
10500 (build_wfl_wrap): Fixed indentation.
10501 Fixes PR java/2598, java/2579 and java/2658.
10502
10503 2001-05-03 Mo DeJong <mdejong@redhat.com>
10504
10505 * lex.c (java_new_lexer): Call iconv_close on temp handle used to
10506 check for byte swap.
10507
10508 2000-05-02 Jeff Sturm <jsturm@one-point.com>
10509
10510 * expr.c (build_class_init): Move MODIFY_EXPR
10511 outside of COND_EXPR. Remove variable `call'.
10512
10513 2001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10514
10515 * decl.c: NULL_PTR -> NULL.
10516 * jcf-write.c: Likewise.
10517
10518 2001-05-01 Tom Tromey <tromey@redhat.com>
10519
10520 * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
10521 (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
10522 * gcj.texi: Updated copyright text. Include fdl.texi.
10523 (Top): Link to new node.
10524
10525 2001-05-01 Per Bothner <per@bothner.com>
10526
10527 * parse.h (REGISTER_IMPORT): Use tree_cons instead of chainon.
10528
10529 2001-05-01 Per Bothner <per@bothner.com>
10530
10531 * parse.y (java_pop_parser_context): The TREE_VALUE of a link in the
10532 import_list contains the name, not the TREE_PURPOSE.
10533
10534 2001-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10535
10536 * jcf-io.c (read_zip_member): Cast to long in comparison with
10537 signed value.
10538
10539 * jvspec.c (lang_specific_driver): Initialize variables.
10540
10541 * mangle.c (find_compression_record_match): Likewise.
10542
10543 * typeck.c (build_null_signature): Provide static prototype. Mark
10544 parameter with ATTRIBUTE_UNUSED.
10545
10546 * verify.c (verify_jvm_instructions): Initialize variable.
10547
10548 2001-04-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10549
10550 * parse.y (do_resolve_class): Check for cyclic inheritance during
10551 inner class resolution.
10552
10553 2001-04-27 Per Bothner <per@bothner.com>
10554
10555 * parse.y (java_expand_classes): Don't change ctxp_for_generation
10556 while iterating, since that could cause gc to lose stuff.
10557
10558 2001-04-26 Per Bothner <per@bothner.com>
10559
10560 Fix method search wrt scope of inner classes to match JLS2.
10561 * typeck.c (build_null_signature): New static function.
10562 (has_method): New function. Uses build_null_signature and lookup_do.
10563 * java-tree.h (has_method): New declaration.
10564 * parse.y (find_applicable_accessible_methods_list): Do not search
10565 context of inner classes here.
10566 (patch_method_invocation): Search scope, ie. current and outer clases,
10567 for method matching simple name, to find class.
10568
10569 2001-04-26 Per Bothner <per@bothner.com>
10570
10571 * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
10572 Fix thinko: If a single case, use if_icmpeq, not ifeq.
10573
10574 * constants.c (find_methodref_with_class_index): New function.
10575 (find_methodref_index): Use find_methodref_with_class_index.
10576 * java-tree.h (find_methodref_with_class_index): New declaration.
10577 * jcf-write.c (generate_bytecode_insns case CALL_EXPR): Don't change
10578 DECL_CONTEXT, instead use new find_methodref_with_class_index function.
10579 If context changed from interface to class, don't use invokeinterface.
10580
10581 2001-04-25 Per Bothner <per@bothner.com>
10582
10583 * verify.c (verify_jvm_instructions): For field instructions,
10584 check that field index is valid. For invoke instructions, check that
10585 method index is valid.
10586
10587 2001-04-25 Alexandre Oliva <aoliva@redhat.com>
10588
10589 * config-lang.in (target_libs): Copy from $libgcj_saved.
10590
10591 2001-04-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10592
10593 * decl.c (init_decl_processing): Add new class "protectionDomain"
10594 field.
10595 * class.c (make_class_data): Set initial value for "protectionDomain".
10596
10597 2001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10598
10599 * jvspec.c (lang_specific_driver): Fix memory allocation
10600 deficit, by using concat in lieu of xmalloc/sprintf.
10601
10602 2001-04-20 Per Bothner <per@bothner.com>
10603
10604 Fixes to compile multiple .class files at once.
10605 * decl.c (init_decl_processing): Don't set CLASS_LOADED_P.
10606 * java-tree.h (CLASS_PARSED_P): New macro.
10607 (CLASS_LOADED_P): Re-define to use TYPE_SIZE and CLASS_PARSED_P.
10608 * jcf-parse.c (jcf_parse_source): Inline into read_class.
10609 (read_class): Avoid some code duplication.
10610 Don't call JCF_FINISH for a .class file - might be needed later.
10611 (jcf_parse): Don't call layout_class here. Check/set CLASS_PARSED_P
10612 rather than CLASS_LOADED_P, since latter implies class laid out.
10613 (yyparse): Do layout_class and JCF_FINISh here instead, in pass 2.
10614 * parse.y: Don't need to set CLASS_LOADED_P for array types.
10615
10616 2001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10617
10618 * Make-lang.in (java/boehm.o): Depend on toplev.h.
10619
10620 * boehm.c: Include toplev.h.
10621
10622 2001-04-06 Tom Tromey <tromey@redhat.com>
10623 Alexandre Petit-Bianco <apbianco@redhat.com>
10624
10625 Fix for PR gcj/1404 and PR gcj/2332:
10626 * parse.y (build_array_from_name): If we use the type_wfl then
10627 accumulate dimensions from the original type as well.
10628 (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
10629
10630 2001-04-06 Tom Tromey <tromey@redhat.com>
10631
10632 * parse.y (analyze_clinit_body): Return true if the second operand
10633 of a METHOD_EXPR is nonzero.
10634
10635 2001-04-06 Tom Tromey <tromey@redhat.com>
10636
10637 * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
10638 directory.
10639 ($(srcdir)/java/parse.c): Likewise.
10640
10641 2001-04-05 Alexandre Petit-Bianco <apbianco@redhat.com>
10642
10643 * gcj.texi: Use `which-gcj' instead of `which-g77.'
10644 (version-gcc): Initialized.
10645 (which-gcj): Likewise.
10646
10647 2001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
10648
10649 * java-tree.h (struct lang_decl): New macro
10650 `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
10651 * parse.y (build_instance_initializer): New function.
10652 (add_instance_initializer): Use it.
10653 (java_fix_constructors): Set `current_class' before fix pass.
10654 (fix_constructors): Just return if already fixed. Move `super()'
10655 invocation ahead. Use `build_instance_initializer.'
10656 Fixes PR java/1315.
10657
10658 2001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
10659
10660 * parse.y (resolve_qualified_expression_name): Pass field's
10661 DECL_CONTEXT to `not_accessible_p.'
10662 (not_accessible_p): Changed parameters order in `inherits_from_p'
10663 invocation.
10664
10665 2001-03-27 Andrew Haley <aph@cambridge.redhat.com>
10666
10667 * lang-options.h: Add flag_check_references.
10668
10669 2001-04-04 Per Bothner <per@bothner.com>
10670
10671 * java-tree.h (CONSTANT_VALUE_P): New macro.
10672 * jcf-write.c (generate_classfile): Use CONSTANT_VALUE_P.
10673 * parse.y (maybe_build_class_init_for_field): New static function.
10674 (resolve_expression_name, resolve_field_access): Use
10675 maybe_build_class_init_for_field instead of build_class_init
10676 This does not do the init if the field is compile-time-constant.
10677 (resolve_field_access): Simplify.
10678
10679 * parse.y (fold_constant_for_init): Merge test into switch.
10680
10681 2001-04-03 Zack Weinberg <zackw@stanford.edu>
10682
10683 * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
10684 on gansidecl.h.
10685 * buffer.c, jvgenmain.c: Don't include gansidecl.h.
10686
10687 2001-04-02 Zack Weinberg <zackw@stanford.edu>
10688
10689 * expr.c (pop_type_0): Save the result of the first
10690 lang_printable_name call in a scratch buffer, so it
10691 won't be clobbered by the second call.
10692
10693 2001-03-30 Alexandre Petit-Bianco <apbianco@redhat.com>
10694
10695 * parse-scan.y (array_type:): Rewritten.
10696 (type_declaration:): `empty_statement' replaces `SC_TK.'
10697 (class_member_declaration:): `empty statement' added.
10698 (method_body:): Simplified.
10699 (static_initializer:): Likewise.
10700 (primary_no_new_array:): Use `type_literals.'
10701 (type_literals:): New rule.
10702 (dims:): Set and update `bracket_count.'
10703 Fixes PR java/1074. Fixes PR java/2412.
10704
10705 2001-03-28 Hans Boehm <boehm@acm.org>
10706
10707 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
10708 (get_boehm_type_descriptor): Set type on returned value to be a
10709 pointer length integer.
10710
10711 2001-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10712
10713 * expr.c (pop_type_0): Call `concat' rather than building the
10714 string manually.
10715 (pop_type): Add format specifier in call to `error'.
10716
10717 * parse.y (patch_method_invocation): Avoid casting away
10718 const-ness.
10719
10720 2001-03-28 Jeffrey Oldham <oldham@codesourcery.com>
10721
10722 * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
10723
10724 2001-03-28 Richard Henderson <rth@redhat.com>
10725
10726 IA-64 ABI Exception Handling:
10727 * Make-lang.in (except.o): Don't depend on eh-common.h.
10728 * check-init.c (check_init): Handle EXC_PTR_EXPR.
10729 * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
10730 [soft_exceptioninfo_call_node]: Remove.
10731 [eh_personality_libfunc, lang_eh_runtime_type]: New.
10732 (end_java_method): No emit_handlers.
10733 * except.c (java_set_exception_lang_code): Remove.
10734 (method_init_exceptions): Don't call it.
10735 (prepare_eh_table_type): No CATCH_ALL_TYPE.
10736 (build_exception_object_ref): New.
10737 (expand_end_java_handler): Update for except.h name changes.
10738 (emit_handlers, expand_resume_after_catch): Remove.
10739 * expr.c (java_lang_expand_expr): Update for except.h name changes.
10740 (process_jvm_instruction): Use build_exception_object_ref.
10741 * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
10742 (soft_exceptioninfo_call_node): Remove.
10743 (build_exception_object_ref): Declare.
10744 * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
10745 soft_exceptioninfo_call_node. Move processing ...
10746 [EXC_PTR_EXPR]: ... here.
10747 * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
10748 * parse.y (catch_clause_parameter): Use build_exception_object_ref.
10749 (source_end_java_method): No java_set_exception_lang_code or
10750 emit_handlers.
10751 (build_dot_class_method): Use build_exception_object_ref.
10752 (try_reference_assignconv): Check EXC_PTR_EXPR not
10753 soft_exceptioninfo_call_node.
10754
10755 2001-03-28 Richard Henderson <rth@redhat.com>
10756
10757 * java-tree.h (throw_node): Define as a single member of
10758 java_global_trees instead of a separate array.
10759 (JTI_THROW_NODE): New.
10760 * decl.c (throw_node): Don't declare.
10761 (init_decl_processing): Init a scalar throw_node.
10762 Don't register it for gc.
10763 * check-init.c (check_init): Reference scalar throw_node.
10764 * expr.c (build_java_athrow): Likewise.
10765 * jcf-write.c (generate_bytecode_insns): Likewise.
10766 * parse.h (BUILD_THROW): Likewise.
10767
10768 2001-03-28 Richard Henderson <rth@redhat.com>
10769
10770 * decl.c (end_java_method): Do not save and restore
10771 flag_non_call_exceptions.
10772 * parse.y (source_end_java_method): Likewise.
10773 * lang.c (flag_exceptions): Don't declare.
10774 (java_init_options): Set flag_non_call_exceptions. Set
10775 flag_exceptions here ...
10776 (java_init): ... not here.
10777
10778 2001-03-27 Richard Henderson <rth@redhat.com>
10779
10780 * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
10781 exceptions_via_longjmp.
10782
10783 * lang.c (flag_new_exceptions): Don't declare it.
10784 (java_init_options): Or set it.
10785
10786 2001-03-27 Richard Henderson <rth@redhat.com>
10787
10788 * decl.c (end_java_method): Rename asynchronous_exceptions to
10789 flag_non_call_exceptions.
10790 * parse.y (source_end_java_method): Likewise.
10791
10792 2001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10793
10794 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
10795
10796 2001-03-26 Mark Mitchell <mark@codesourcery.com>
10797
10798 * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
10799
10800 2001-03-26 Alexandre Petit-Bianco <apbianco@redhat.com>
10801
10802 * parse.y (find_as_inner_class): Follow current package
10803 indications not to mistakingly load an unrelated class.
10804
10805 2001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10806
10807 * constants.c (PUTN): Use memcpy, not bcopy.
10808
10809 * lex.c (java_read_char): Use memmove, not bcopy.
10810
10811 * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
10812
10813 2001-03-23 Per Bothner <per@bothner.com>
10814
10815 * verify.c (verify_jvm_instructions): Replace 3 pop_type by POP_TYPE
10816 macro for better error pin-pointing.
10817 * java-tree.h: Fix typo in comment.
10818
10819 * jcf-write.c (generate_bytecode_insns): Changes to TRY_FINALLY_EXPR.
10820 Don't include jsr/goto in exception range.
10821 Check if start and end of exception range are the same (also TRY_EXPR).
10822 Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
10823 However, do emit the following goto even if try_block is empty.
10824 Defer freeing exception_decl until after the finalizer, to make
10825 sure the local isn't reused in the finalizer. Fixes PR java/1208.
10826
10827 * parse.y (java_complete_lhs): If the try-clause is empty, just
10828 return the finally-clause and vice versa.
10829
10830 2001-03-23 Alexandre Petit-Bianco <apbianco@redhat.com>
10831
10832 * gcj.texi (Input Options): documented the check for attribute
10833 `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
10834 * java-tree.h (flag_force_classes_archive_check): Declared extern.
10835 * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
10836 (jcf_parse): Check for the right classes archive if necessary.
10837 * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
10838 (jcf_parse_fields): Fixed indentation.
10839 * jcf-write.c (append_gcj_attribute): New function.
10840 (generate_classfile): Compute the attribute count, invoke
10841 `append_gcj_attribute'.
10842 * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
10843 turned into bit-fields. New bit-field `right_zip.'
10844 (JCF_ZERO): Set `right_zip' to zero.
10845 * lang-options.h (-fforce-classes-archive-check): Added flag.
10846 * lang.c (flag_force_classes_archive_check): New flag.
10847 (lang_f_options): New entry `force-classes-archive-check.'
10848 Fixes PR java/1213.
10849
10850 2001-02-07 Andrew Haley <aph@redhat.com>
10851
10852 * gcj.texi (Configure-time Options): Add -fcheck-references.
10853 * expr.c (build_java_indirect_ref): New function.
10854 (java_check_reference): New function.
10855 (build_java_array_length_access): Use build_java_indirect_ref to
10856 check for null references.
10857 (build_java_arrayaccess): Likewise.
10858 (build_get_class): Likewise.
10859 (build_field_ref): Likewise.
10860 (invoke_build_dtable): Likewise.
10861 (build_invokeinterface): Likewise.
10862 * lang.c (lang_f_options): Add flag_check_references.
10863 * jvspec.c (jvgenmain_spec): Add flag_check_references.
10864 * java-tree.h (flag_check_references): New variable.
10865 * lang.c (flag_check_references): Likewise.
10866 * parse.y (patch_invoke): Use java_check_reference.
10867 (patch_assignment): Allow for extra nesting in
10868 _Jv_CheckArrayStore.
10869
10870 2001-03-23 Bryce McKinlay <bryce@albatross.co.nz>
10871
10872 * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
10873 * lex.c (cxx_keywords): Likewise.
10874
10875 2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
10876
10877 * parse.y (qualify_ambiguous_name): Broaden `length'
10878 recognition. Help MODIFY_EXPR be resolved as expression names.
10879 Fixes PR java/2066. Fixes PR java/2400.
10880
10881 2001-03-21 Bryce McKinlay <bryce@albatross.co.nz>
10882
10883 * gjavah.c (process_file): Mark interface definitions with
10884 "__attribute__ ((java_interface))".
10885
10886 2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
10887
10888 * class.c (layout_class): Fixed push_super_field's second
10889 argument. Fixes PR java/2333.
10890 (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
10891 too early to lay innerclasses out.
10892
10893 2001-03-20 Tom Tromey <tromey@redhat.com>
10894 Alexandre Petit-Bianco <apbianco@redhat.com>
10895
10896 * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
10897 inside an array reference. Insertion of the array store check
10898 rewritten. Fixes PR java/2299.
10899
10900 2001-03-20 Tom Tromey <tromey@redhat.com>
10901
10902 * lex.c (java_read_unicode): Only accept leading `u's.
10903
10904 2001-03-20 Tom Tromey <tromey@redhat.com>
10905
10906 * jcf-parse.c (read_class): Initialize `class'.
10907
10908 2001-03-20 Matt Kraai <kraai@alumni.carnegiemellon.edu>
10909
10910 * jcf_parse.c (jcf_parse): Eliminate unused variable.
10911
10912 2001-03-19 Mark Mitchell <mark@codesourcery.com>
10913
10914 * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
10915 (layout_class): Likewise.
10916 (layout_class_method): Likewise.
10917 (emit_register_classes): Likewise.
10918 * decl.c (builtin_function): Likewise.
10919 (give_name_to_locals): Likewise.
10920
10921 2001-03-19 Per Bothner <per@bothner.com>
10922
10923 * jcf-parse.c (load_inner_classes): Check CLASS_LOADED_P
10924 before trying to load an inner class.
10925
10926 Fixes to process to command-line .class files in two passes.
10927 * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P): New flags.
10928 (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P): Rename to ..
10929 (CLASS_FROM_CURRENTLY_COMPILED_P): ... because it is more general now.
10930 * class.c (is_compiled_class): Fix for renamed flag.
10931 * parse.y (maybe_create_class_interface_decl): Likewise.
10932 * jcf-parse.c (yyparse): Also set if compiling .class files.
10933 * jcf-parse.c (read_class); Read current_class.
10934 (jcf_parse): Make static.
10935 (load_inner_classes): New function, with code moved from jcf_parse,
10936 because we need to inner classes after the command-line files are read.
10937 (yyparse): Set finput to NULL when it doesn't need to be closed.
10938 Reduce use of main_jcf (basically only for archive) and
10939 use finput instead of main_jcf->read_state.
10940 Inline jcf_figure_file_type into yyparse.
10941 Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
10942 Defer load_inner_classes and parse_class_file to a second pass,
10943 after we've correctly mapped command-line .clas fiels to classes.
10944 (jcf_figure_file_type): Removed.
10945 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): Removed flags.
10946 (JCF_ZERO): Also clear zipd field.
10947 * zipfile.h: Conditionalize on JCF_H insread of JCF_ZIP.
10948
10949 2001-03-18 Matt Kraai <kraai@alumni.carnegiemellon.edu>
10950
10951 * jcf-parse.c (yyparse): Change ch from char * to char.
10952
10953 2001-03-19 Per Bothner <per@bothner.com>
10954
10955 * jvspec.c (lang_specific_driver): Check for .zip and .jar files.
10956 Add constructed filelist-file at end, following -xjava. Thus any .o
10957 and library files are not affected by the -xjava. Also wrap
10958 explicit @FILE with -xjava and -xnone.
10959
10960 2001-03-19 Andrew Haley <aph@cambridge.redhat.com>
10961
10962 * class.c (build_static_field_ref): Call make_decl_rtl() after
10963 setting the DECL_EXTERNAL flag.
10964
10965 2001-03-17 Per Bothner <per@bothner.com>
10966
10967 * decl.c (clear_binding_level): Fix initializer (broke 03-15).
10968
10969 * jcf-write.c (generate_bytecode_insns): Handle emitting iinc
10970 when result is is needed (target is STACK_TARGET).
10971
10972 * parse.h (JDEP_SOLV): Removed.
10973 * parse.y (register_incomplete_type): Use JDEP_TO_RESOLVE instead.
10974
10975 * parse.y (incomplete_class_list): Removed.
10976 (obtain_incomplete_type): Don't use or set incomplete_class_list.
10977 It doesn't work if resolve_class changes the name of an array type
10978 that is on the list and then someone else looks for the modified name.
10979 Also, seems liable to break when compiling multiple source files at
10980 once. So the simplest is to just remove incomplete_class_list -
10981 it is only a minor space win and it is not even clear it saves time.
10982
10983 * parse.y (resolve_class): Remove unneeded promote_type.
10984
10985 2001-03-15 Per Bothner <per@bothner.com>
10986
10987 * java-tree.h (BLOCK_IS_IMPLICIT): New flag.
10988 * parse.h (BLOCK_EXPR_ORIGIN): Removed macro.
10989 * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
10990 Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
10991
10992 * jcf-parse.c (yyparse): Set/reset input_filename for source file.
10993 * parse.y (java_expand_classes): Likewise.
10994
10995 * parse.y (expand_start_java_method): Was only called once and had a
10996 misleading name, so inline in caller java_complete_expand_method.
10997 (enter_a_block): Likewise inline in enter_block and remove.
10998
10999 Remove junk from when gcc/java was created (by copying from C/C++).
11000 * decl.c (keep_next_level_flag, keep_next_if_subblocks): Remove.
11001 (struct binding_level): Remove fields keep, keep_if_subblocks,
11002 more_cleanups_ok, have_cleanups (which have never been used).
11003 (pushlevel, poplevel): Remove related useless code.
11004
11005 * class.c (make_class_data): The class_dtable_decl (i.e. the
11006 vtable for Class) should be external, except when compiling Class.
11007
11008 * jvspec.c (lang_specific_driver): Fix -C handling.
11009 Check -save-temps to see if temp @FILE should be deleted.
11010 Follow-up to/fix for February 16 patch.
11011
11012 * verify.c (verify_jvm_instructions): Better error msgs for dup.
11013 (type_stack_dup): Remove no-longer neded error check.
11014
11015 2001-03-15 Bryce McKinlay <bryce@albatross.co.nz>
11016
11017 * mangle.c (mangle_record_type): Rename 'from_pointer' argument
11018 to 'for_pointer'. If this type is for a pointer (argument) mangling,
11019 don't surround the element with 'N..E' if the type name is
11020 unqualified.
11021
11022 2001-03-14 Mark Mitchell <mark@codesourcery.com>
11023
11024 * class.c (build_static_field_ref): Use COPY_DECL_RTL,
11025 DECL_RTL_SET_P, etc.
11026 (make_method_value): Likewise.
11027 (get_dispatch_table): Likewise.
11028
11029 * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
11030
11031 2001-03-07 Tom Tromey <tromey@redhat.com>
11032
11033 * config-lang.in (lang_requires): Define.
11034
11035 2001-03-07 Brad Lucier <lucier@math.purdue.edu>
11036
11037 * typeck.c (convert): Check flag_unsafe_math_optimizations,
11038 not flag_fast_math.
11039
11040 2001-03-05 Per Bothner <per@bothner.com>
11041
11042 Fix a problem where rest_of_decl_compilation applied to
11043 class_dtable_decl causes problems because it was done too early,
11044 before output file was opened.
11045 * decl.c (init_decl_processing): Remove init of class_dtable_decl.
11046 * class.c (class_dtable_decl): Add macro - element of class_roots.
11047 (make_class_data): Define class_dtable_decl.
11048 * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl): Removed.
11049
11050 2001-03-01 Zack Weinberg <zackw@stanford.edu>
11051
11052 * java/class.c, java/decl.c, java/java-tree.h: Replace all
11053 uses of 'boolean' with 'bool'.
11054
11055 2001-03-01 Zack Weinberg <zackw@stanford.edu>
11056
11057 * lang-specs.h: Add zero initializer for cpp_spec field to all
11058 array elements.
11059
11060 2001-02-16 Per Bothner <per@bothner.com>
11061
11062 Handle compiling multiple input files at once, and @FILE syntax.
11063 * gcj.texi: Updated documentation to match.
11064 * java-tree.h (flag_filelist_file, init_src_parse): New declarations.
11065 * jcf-parse.c (parse_source_file): Split into ...
11066 (parse_source_file_1): New function - and:
11067 (parse_source_file_2): New function.
11068 (yyparse): On -ffilelist-file, open and scan named file.
11069 On first pass over files, only do parse_source_file_1.
11070 A new second pass calls parse_source_file_2 for each file to compile.
11071 (init_jcf_parse): Call init_src_parse.
11072 * jvspec.c (INDIRECT_FILE_ARG): New flag.
11073 (lang_specific_driver): Support @FILELIST-FILE syntax, as well
11074 as multiple input file combined in one compilation.
11075 * lang-options.h: Add -ffilelist-file
11076 * lang.c (flag_filelist_file): New flag variable.
11077 (lang_f_options): Handle -ffilelist-file.
11078 * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
11079 * parse.h (struct parse_ctxt): Remove fields incomplete_class and
11080 gclass_list - use global fields of src_parse_roots instead.
11081 * parse.y (src_parse_roots): New array.
11082 (incomplete_class_list, gclass_list): New macros.
11083 (push_parser_context, java_pop_parser_context,
11084 java_parser_context_resume): Don't fiddle with deleted fields.
11085 (various): Use incomplete_class gclass_list and global macros
11086 instead of parse_ctxt fields - the lists are global.
11087 (init_src_parse): New function.
11088
11089 2001-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11090
11091 * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
11092
11093 2001-02-20 Alexandre Petit-Bianco <apbianco@redhat.com>
11094
11095 * parse.y (check_inner_class_access): Moved declaration of local
11096 `enclosing_decl_type' to the right location.
11097
11098 2001-02-19 Bryce McKinlay <bryce@albatross.co.nz>
11099
11100 * parse.y (parser_check_super_interface): Don't call
11101 check_pkg_class_access for an inner interface.
11102 (parser_check_super): Don't call check_pkg_class_access for inner
11103 class.
11104 (do_resolve_class): Simplify enclosing type loop. Don't call
11105 check_pkg_class_access if CL and DECL are not set.
11106 (find_in_imports_on_demand): Set DECL if class_type needed to be
11107 loaded. Don't call check_pkg_class_access for an inner class.
11108 (check_inner_class_access): Rewritten to implement member access
11109 rules as per spec 6.6.1.
11110 (check_pkg_class_access): Handle the empty package correctly.
11111 (in_same_package): New function. Determine if two classes are in the
11112 same package.
11113
11114 2001-02-18 Bryce McKinlay <bryce@albatross.co.nz>
11115
11116 * typeck.c (build_java_array_type): Don't try to poke a public `clone'
11117 method into array types.
11118 * parse.y (patch_method_invocation): Bypass access check on clone call
11119 to array instance.
11120
11121 2001-02-15 Alexandre Petit-Bianco <apbianco@redhat.com>
11122
11123 * expr.c (build_instanceof): Check for arrays when trying fold to
11124 false.
11125
11126 2001-02-15 Jim Meyering <meyering@lucent.com>
11127
11128 * Make-lang.in (java.install-common): Depend on `installdirs'.
11129 (java.install-info): Likewise.
11130
11131 2001-02-15 Bryce McKinlay <bryce@albatross.co.nz>
11132
11133 * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
11134
11135 2001-02-14 Tom Tromey <tromey@redhat.com>
11136 Alexandre Petit-Bianco <apbianco@cygnus.com>
11137
11138 Fix for PR java/1261.
11139 * typeck.c (build_java_array_type): Add public `clone' method to
11140 arrays.
11141 * parse.y (resolve_qualified_expression_name): Use current_class
11142 when checking for inaccessibility.
11143 (patch_method_invocation): Fixed error message when accessibility
11144 denied. Added `from_super' argument.
11145
11146 2001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
11147
11148 * parse.y (resolve_class): Don't build a fake decl. Use the one
11149 already built.
11150 * typeck.c (build_java_array_type): Build and assign decl to array
11151 type.
11152
11153 2001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
11154
11155 * parse.y (not_accessible_p): Changed leading comment. Added extra
11156 `where' argument. Use it to enforce protected access rules.
11157 (resolve_qualified_expression_name): Added extra argument to
11158 not_accessible_p.
11159 (patch_method_invocation): Use argument `primary' to provide
11160 not_accessible_p with an extra argument.
11161 (lookup_method_invoke): Added extra argument to not_accessible_p.
11162 (search_applicable_method_list): Likewise.
11163
11164 2001-02-13 Alexandre Petit-Bianco <apbianco@redhat.com>
11165
11166 * parse.y (resolve_qualified_expression_name): Try to resolve as
11167 an inner class access only if `decl' is a TYPE_DECL.
11168
11169 2001-02-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
11170
11171 * decl.c (classdollar_identifier_node): Initialize.
11172 * java-tree.h (enum java_tree_index): New entry
11173 `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
11174 (classdollar_identifier_node): New macro.
11175 (ID_CLASSDOLLAR_P): Likewise.
11176 * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
11177 (build_dot_class_method_invocation): Likewise.
11178 (find_applicable_accessible_methods_list): `class$' can't be
11179 inherited.
11180
11181 2001-02-09 Raja R Harinath <harinath@cs.umn.edu>
11182
11183 * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
11184
11185 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11186
11187 * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
11188 * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
11189 gone.
11190
11191 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11192
11193 * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
11194 outside of the `__U' sequence too.
11195 (unicode_mangling_length): Count `_' or `U' outside of the `__U'
11196 sequence too.
11197
11198 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11199
11200 * jvgenmain.c (error): Reversed 2001-02-01 deletion.
11201
11202 2001-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
11203
11204 * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
11205 (JVGENMAIN_OBJS): Likewise.
11206 * java-tree.h (append_gpp_mangled_name): New prototype.
11207 * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
11208 Removed cast calling `gcc_add_root.'
11209 * jvgenmain.c (mangle_obstack): New global, initialized.
11210 (main): Use it.
11211 (do_mangle_class): Constify local `ptr.'
11212 Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
11213 append_gpp_mangle_name and update `count' if necessary.
11214 Use `mangle_obstack.'
11215 * mangle.c (append_unicode_mangled_name): Removed.
11216 (append_gpp_mangled_name): Likewise.
11217 (unicode_mangling_length): Likewise.
11218 (mangle_member_name): Return type set to `void.'
11219 (mangle_field_decl): Don't append `U' in escaped names.
11220 (mangle_method_decl): Likewise.
11221 (mangle_member_name): Just use `append_gpp_mangled_name.'
11222 * mangle_name.c: New file.
11223
11224 2001-02-07 Per Bothner <per@bothner.com>
11225
11226 * check-init.c (check_init): Fix TRY_FINALLY_EXPR logic.
11227
11228 * check-init.c (check_init): Don't call done_alternative after
11229 processing loop code, as a LOOP_EXPR never terminates normally.
11230
11231 2001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
11232
11233 * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
11234
11235 2001-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
11236
11237 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
11238 DECLs.
11239
11240 2001-02-06 Tom Tromey <tromey@redhat.com>
11241
11242 * lex.c (java_new_lexer): Longer error message.
11243
11244 2001-02-05 Jeff Sturm <jeff.sturm@commerceone.com>
11245 Alexandre Petit-Bianco <apbianco@cygnus.com>
11246
11247 * typeck.c (build_prim_array_type): Added leading comment.
11248 (build_java_array_type): Moved locals out of
11249 block. Always create the `data' field, fixed alignment to match
11250 C++.
11251
11252 2001-02-04 Tom Tromey <tromey@redhat.com>
11253
11254 * expr.c (java_lang_expand_expr): Don't bother recomputing
11255 `length'. Use rest_of_decl_compilation, not make_decl_rtl.
11256 Fixes PR java/1866.
11257
11258 2001-02-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
11259
11260 * parse.y (process_imports): Save the original name of the import
11261 for better error report.
11262
11263 2001-02-04 Bryce McKinlay <bryce@albatross.co.nz>
11264
11265 * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
11266 of macros used when compiling jvspec.c.
11267 * jvspec.c (lang_specific_driver): Link with the shared
11268 libgcc by default.
11269
11270 2001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11271
11272 * check-init.c (check_init): Call internal_error instead of fatal.
11273 * expr.c (java_lang_expand_expr): Likewise.
11274 * jcf-parse.c (get_constant): Likewise.
11275 * mangle.c (java_mangle_decl): Likewise.
11276 * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
11277 (operator_string): Likewise.
11278 * check-init.c (check_init): Call abort instead of fatal.
11279 * class.c (build_class_ref): Likewise.
11280 * constants.c (write_constant_pool): Likewise.
11281 * decl.c (start_java_method): Likewise.
11282 * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
11283 (java_stack_dup, encode_newarray_type): Likewise.
11284 (build_java_array_length_access): Likewise.
11285 (build_java_check_indexed_type, expand_java_pushc): Likewise.
11286 (build_java_soft_divmod, build_invokeinterface): Likewise.
11287 * java-tree.h (INNER_CLASS_P): Likewise.
11288 * jcf-parse.c (parse_signature, get_name_constant): Likewise.
11289 (give_name_to_class, get_class_constant): Likewise.
11290 * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
11291 (find_constant_index, generate_bytecode_conditional): Likewise.
11292 (generate_bytecode_insns, perform_relocations): Likewise.
11293 * lex.c (java_unget_unicode, java_lex): Likewise.
11294 * mangle.c (mangle_type, mangle_record_type): Likewise.
11295 (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
11296 (finish_mangling): Likewise.
11297 * parse.h (MARK_FINAL_PARMS): Likewise.
11298 * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
11299 (obtain_incomplete_type, java_complete_class): Likewise.
11300 (java_check_regular_methods, java_complete_expand_method): Likewise.
11301 (cut_identifier_in_qualified, check_deprecation): Likewise.
11302 (patch_invoke, find_applicable_accessible_methods_list): Likewise.
11303 (java_complete_lhs, lookup_name_in_blocks): Likewise.
11304 (check_final_variable_indirect_assignment, build_unaryop): Likewise.
11305 * typeck.c (set_local_type, parse_signature_type): Likewise.
11306 (parse_signature_string, build_java_signature): Likewise;
11307 (set_java_signature): Likewise.
11308 * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
11309 * class.c (add_method): Call fatal_error instead of fatal.
11310 (build_static_field_ref): Likewise.
11311 * expr.c (build_known_method_ref, expand_invoke): Likewise.
11312 * jcf-parse.c (get_constant, jcf_parse): Likewise.
11313 * lex.c (java_new_new_lexer): Likewise.
11314 * jv-scan.c (main): Likewise.
11315 (fatal_error): Renamed from fatal.
11316 * jcf-parse.c (yyparse): Call fatal_io_error instead of
11317 pfatal_with_name.
11318 * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
11319 (yyparse): Likewise.
11320 * jcf-write.c (make_class_file_name, write_classfile): Likewise.
11321 * lex.c (java_get_line_col): Likewise.
11322 * jcf-parse.c (load_class): Make errors non-fatal.
11323 * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
11324
11325 2001-02-01 Bryce McKinlay <bryce@albatross.co.nz>
11326
11327 * jvgenmain.c (class_mangling_suffix): Remove unused string.
11328 (error): Remove unused function.
11329 (main): Don't use "__attribute__ alias" on generated class symbol.
11330
11331 2001-01-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
11332
11333 * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
11334 argument.
11335 * parse.y (finish_method_declaration): Code accounting for WFLed
11336 method DECL_NAMEs deleted.
11337 (check_abstract_method_definitions): Likewise.
11338 (resolve_type_during_patch): Layout resolved type.
11339 * typeck.c (lookup_do): Removed unused local.
11340
11341 2001-01-30 Bryce McKinlay <bryce@albatross.co.nz>
11342
11343 * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
11344 * decl.c (init_decl_processing): Use integer_minus_one_node, not
11345 integer_negative_one_node.
11346 * expr.c (build_java_binop): Likewise.
11347
11348 2001-01-24 Jeff Sturm <jeff.sturm@commerceone.com>
11349
11350 * zextract.c (read_zip_archive): Read file_offset before writing
11351 zipd and consequently clobbering the header contents.
11352
11353 2001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11354
11355 * Make-lang.in: Remove all dependencies on defaults.h.
11356 * decl.c: Don't include defaults.h.
11357 * expr.c: Likewise.
11358 * parse.y: Likewise.
11359
11360 2001-01-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
11361
11362 * ChangeLog (2001-01-21): Fixed typo.
11363 * class.c (layout_class_method): Code accounting for WFLed
11364 method DECL_NAMEs deleted.
11365 * constant.c (find_methodref_index): Likewise.
11366 * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
11367 * java-tree.h (DECL_FUNCTION_WFL): New macro.
11368 (struct lang_decl): New field `wfl'.
11369 (java_get_real_method_name): Prototype deleted.
11370 * mangle.c (mangle_method_decl): Code accounting for WFLed
11371 method DECL_NAMEs deleted.
11372 * parse.h (GET_METHOD_NAME): Macro deleted.
11373 * parse.y (reset_method_name): Deleted.
11374 (method_header): Set DECL_FUNCTION_WFL.
11375 (check_abstract_method_header): Code accounting for WFLed method
11376 DECL_NAMEs deleted.
11377 (java_get_real_method_name): Deleted.
11378 (check_method_redefinition): Code accounting for WFLed method
11379 DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
11380 (java_check_regular_methods): Likewise.
11381 (java_check_abstract_methods): Likewise.
11382 (java_expand_classes): Don't call `reset_method_name.'
11383 (search_applicable_method_list): Use DECL_NAMEs instead of
11384 GET_METHOD_NAME.
11385 * typeck.c (lookup_do): Code accounting for WFLed method
11386 DECL_NAMEs deleted.
11387
11388 2001-01-25 Richard Earnshaw <rearnsha@arm.com>
11389
11390 * lex.c (java_read_char): Check for EOF from getc first.
11391
11392 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11393
11394 * class.c (layout_class): Don't lay the superclass out if it's
11395 already being laid out.
11396 * jcf-parse.c (handle_innerclass_attribute): New function.
11397 (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
11398 handle_innerclasses_attribute.
11399 (jcf_parse): Don't load an innerclasses if it's already being
11400 laid out.
11401 * jcf-write.c (append_innerclass_attribute_entry): Static
11402 `anonymous_name' and its initialization deleted. `ocii' and `ini'
11403 to be zero for anonymous classes.
11404
11405 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11406
11407 * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
11408 necessary.
11409 * jcf-parse.c (set_source_filename): Use
11410 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
11411
11412 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11413
11414 * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
11415 gets a unique asm name.
11416
11417 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11418
11419 * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
11420 (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
11421 if necessary.
11422 (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
11423 * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
11424 * parse.y (lookup_package_type_and_set_next): Deleted.
11425 (resolve_package): Removed unnecessary code.
11426 (find_applicable_accessible_methods_list): `finit$' can't be
11427 inherited.
11428 * verify.c (pop_argument_types): Added missing prototype.
11429
11430 2001-01-23 Bryce McKinlay <bryce@albatross.co.nz>
11431
11432 * config-lang.in: Disable java by default.
11433
11434 2001-01-23 Tom Tromey <tromey@redhat.com>
11435
11436 * gcj.texi (Copying): New node.
11437 Added copyright information.
11438
11439 2001-01-21 Per Bothner <per@bothner.com>
11440
11441 Various fixes to allow compiling a compressed .jar/.zip archive.
11442 * zipfile.h (struct ZipFileCache): Replace by struct ZipFile.
11443 (struct ZipFile): Add fields name and next (from ZipFileCache).
11444 (struct ZipDirectory): New field zipf points to owning ZipFile.
11445 * jcf.h (struct ZipDirectory): Add forward declaration.
11446 (struct JCF): Declare zipd field to have type struct ZipDirectory.
11447 Remove seen_in_zip and zip_offset fields.
11448 (JCF_SEEN_IN_ZIP): New macro.
11449 * zextract.c (read_zip_archive): Set ZipDirectory's zipf field.
11450 * jcf-io.c: Change all ZipFileCache to ZipFile.
11451 (read_zip_member): New function.
11452 (open_in_zip): Call read_zip_member.
11453 * jcf-parse.c (find_in_current_zip): Remove function.
11454 (read_class): Merge in find_in_current_zip functionality.
11455 Call read_zip_member if needed.
11456 (parse_zip_file_entries): Use read_zip_member.
11457 (process_zip_dir): Update for removed and added JCF fields.
11458 (jcf_figure_file_type): Re-use, don't copy initial ZipFile struct.
11459
11460 2001-01-21 Per Bothner <per@bothner.com>
11461
11462 Minor optimization of static ggc roots.
11463 * jcf-parse.c (parse_roots): New static field.
11464 (current_field, current_method, current_file_list): Replace by macros
11465 naming fields of parse_roots.
11466 (init_jcf_parse): Combine 3 ggc_add_tree_root calls to 1.
11467 * class.c (class_roots): New static field.
11468 (registered_class, fields_ident, info_ident, class_list):
11469 New macros naming fields of parse_roots.
11470 (build_static_field_ref): Don't register roots here.
11471 (layout_class): Static field list replaced by macro class_list.
11472 (init_class_processing): Call ggc_add_tree_root for 4 roots.
11473 Initialize fields_ident and info_ident here.
11474
11475 2001-01-21 Per Bothner <per@bothner.com>
11476
11477 * jcf-parse.c (ggc_mark_jcf): New function.
11478 (init_jcf_parse): Register current_jcf as ggc root.
11479
11480 2001-01-21 Per Bothner <per@bothner.com>
11481
11482 * lang.c (put_decl_node): Print method's name.
11483
11484 2001-01-21 Per Bothner <per@bothner.com>
11485
11486 * verify.c (VERIFICATION_ERROR_WITH_INDEX): New macro.
11487 (verify_jvm_instructions): Use it, for better error messages on loads.
11488
11489 2001-01-21 Per Bothner <per@bothner.com>
11490
11491 * verify.c (merge_type_state): Still may have to merge even if
11492 LABEL_VERIFIED (label).
11493
11494 2001-01-21 Per Bothner <per@bothner.com>
11495
11496 * parse.y (method_header): Don't set the DECL_NAME of a FUNCTION_DECL
11497 to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
11498
11499 2001-01-19 Per Bothner <per@bothner.com>
11500
11501 * expr.c (pop_type_0): Only return object_ptr_type_node on mismatch
11502 if expeting an interface type. Refines Tom's change of 2000-09-12.
11503
11504 2001-01-18 Per Bothner <per@bothner.com>
11505
11506 * gcj.texi (Input Options): Mention .java files.
11507
11508 2001-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
11509
11510 * lang-options.h (-Wunsupported-jdk11): Removed.
11511 * lang.c (flag_not_overriding): Deleted.
11512 (flag_static_local_jdk1_1): Likewise.
11513 (lang_W_options): Removed "unsupported-jdk11" entry.
11514 * parse.y (java_check_methods): Removed dead code.
11515
11516 2001-01-17 Tom Tromey <tromey@redhat.com>
11517
11518 Changes suggested by Per Bothner:
11519 * gcj.texi (Input Options): Don't mention input files.
11520 (Code Generation): Updated --main information.
11521 (Invoking jcf-dump): Mention that --javap is incomplete.
11522 From Alexandre Petit-Bianco:
11523 (Warnings): Don't mention -Wunsupported-jdk11.
11524 My stuff:
11525 (Compatibility): Mention JDK 1.2-ness of libraries.
11526 (Resources): Mention resources used when writing gcj.
11527
11528 2001-01-17 Tom Tromey <tromey@redhat.com>
11529
11530 * gcj.texi: New file.
11531 * Make-lang.in ($(srcdir)/java/gcj.info): New target.
11532 (java.info): Depend on gcj.info.
11533 (java/gcj.dvi): New target.
11534 (java.dvi): Depend on gcj.dvi.
11535 (java.install-info): Wrote.
11536
11537 2001-01-16 Jeff Sturm <jeff.sturm@appnet.com>
11538
11539 * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
11540 having called make_decl_rtl.
11541
11542 2001-01-14 Per Bothner <per@bothner.com>
11543
11544 Various patches to emit better messages on verification errors.
11545 * expr.c (push_type_0): Return error indication on stack overflow,
11546 instead of callinfg fatal.
11547 (push_type): Now just call push_type_0 (nd fatal on overflow).
11548 (pop_type_0): Return detailed error message (in a char** argument).
11549 (pop_type): If pop_type_0 fails, print error message.
11550 (pop_argument_types): Moved to verify.c.
11551 * verify.c (pop_argument_types): Moved from expr.c.
11552 Return a (possible) error message, rather than void.
11553 (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING): New macros.
11554 (verify_jvm_instruction): Use new macros, improving error messages.
11555 For case OPCODE_astore use object_ptr_type_node.
11556 * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED): New macros.
11557 (pop_type_0, push_type_0, pop_argument_types): Update accordingly.
11558
11559 * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
11560 constant, return body without wrapper. (Improves constant folding.)
11561 * lex.c (build_wfl_node): Clear TREE_TYPE from returned node.
11562
11563 2001-01-13 Per Bothner <per@bothner.com>
11564
11565 * expr.c (expand_java_field_op): Assigning to a final field outside
11566 an initializer does not violate JVM spec, so should be warning, not
11567 error. (Sun's verifier does not complain - though MicroSoft's does.)
11568
11569 2001-01-12 Joseph S. Myers <jsm28@cam.ac.uk>
11570
11571 * gjavah.c (version), jcf-dump.c (version): Update copyright year
11572 to 2001.
11573
11574 2001-01-11 Bryce McKinlay <bryce@albatross.co.nz>
11575
11576 * parse.y (resolve_expression_name): Permit instance variables from
11577 enclosing context in super constructor call.
11578 (resolve_qualified_expression_name): Permit enclosing class's qualified
11579 "this" in super constructor call.
11580
11581 2001-01-10 Mark Mitchell <mark@codesourcery.com>
11582
11583 * class.c (build_utf8_ref): Remove last argument in call to
11584 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
11585 (build_class_ref): Likewise.
11586 (build_static_field_ref): Likewise.
11587 (get_dispatch_table): Likewise.
11588 (layout_class_method): Likewise.
11589 (emit_register_classes): Likewise.
11590 * constants.c (build_constant_data_ref): Likewise.
11591 * decl.c (builtin_function): Likewise.
11592 (create_primitive_vtable): Likewise.
11593 * expr.c (build_known_method_def): Likewise.
11594 (build_jni_stub): Likewise.
11595 (java_lang_expand_expr): Likewise.
11596
11597 2001-01-10 Tom Tromey <tromey@redhat.com>
11598
11599 * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
11600
11601 2001-01-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
11602
11603 * java-tree.h (lang_printable_name_wls): New prototype.
11604 * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
11605 rather than `current_class' to print type name. Don't prepend type
11606 names when printing constructor names.
11607 (lang_printable_name_wls): New function.
11608 * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
11609 `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
11610 * parse.y (patch_method_invocation): Message tuned for constructors.
11611 (not_accessible_p): Grant `private' access from within
11612 enclosing contexts.
11613
11614 2001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
11615
11616 All files with updated copyright when applicable.
11617 * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
11618 * class.c (mangle_class_field): Function removed.
11619 (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
11620 (utf8_cmp, cxx_keyword_p): Moved to lex.c.
11621 (build_class_ref): Call `java_mangle_class_field' instead of
11622 `mangle_class_field.'
11623 (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
11624 (layout_class): Call `java_mangle_decl' instead of
11625 `mangle_static_field.'
11626 (cxx_keywords): Initialized static array moved to `lex.c.'
11627 (layout_class_method): Changed leading comment. Simplified to
11628 call `java_mangle_decl.' Local `ptr' moved in for loop body.
11629 * decl.c (lang_mark_tree): Mark field `package_list.'
11630 * java-tree.h (TYPE_PACKAGE_LIST): New macro.
11631 (struct lang_type): New field `package_list.'
11632 (unicode_mangling_length): Prototype removed.
11633 (append_gpp_mangled_name, append_gpp_mangled_classtype,
11634 emit_unicode_mangled_name): Likewise.
11635 (cxx_keyword_p): New prototype.
11636 (java_mangle_decl, java_mangle_class_field,
11637 java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
11638 * jcf-parse.c (jcf_parse_source): Constify `file' argument to
11639 `build_expr_wfl.'
11640 * jvgenmain.c (main_method_prefix): Global variable removed.
11641 (main_method_suffix): Likewise.
11642 (do_mangle_classname): New function.
11643 (main): Call it. Format changed to accommodate new mangling scheme.
11644 * lex.c: (utf8_cmp): Conditionally prototyped.
11645 (cxx_keywords): Moved from class.c, conditionally defined.
11646 (utf8_cmp, cxx_keyword_p): Likewise.
11647 * mangle.c (obstack.h, ggc.h): Included.
11648 (mangle_field_decl): New function.
11649 (mangle_method_decl, mangle_type, mangle_pointer_type,
11650 mangle_array_type, mangle_record_type,
11651 find_compression_pointer_match, find_compression_array_match,
11652 find_compression_record_match,
11653 find_compression_array_template_match, set_type_package_list,
11654 entry_match_pointer_p, emit_compression_string, init_mangling,
11655 finish_mangling, compression_table_add, mangle_member_name): Likewise.
11656 (mangle_obstack): New global.
11657 (MANGLE_RAW_STRING): New macro.
11658 (unicode_mangling_length): Turned static.
11659 (append_unicode_mangled_name): Renamed from
11660 `emit_unicode_mangled_name.' Turned static. `mangle_obstack'
11661 replaces `obstack', removed from the parameter list.
11662 (append_gpp_mangled_name): Turned static. `mangle_obstack'
11663 replaces parameter `obstack', removed from the parameter list. Call
11664 `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
11665 (append_gpp_mangled_classtype): Removed.
11666 (compression_table, compression_next): New static variables.
11667 * parse.y (temporary_obstack): Extern declaration removed.
11668
11669 2001-01-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
11670
11671 * parse.y (patch_binop): Compute missing type in error situations.
11672
11673 2001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
11674
11675 * class.c (make_class_data): Push initial value for "arrayclass".
11676 * decl.c (init_decl_processing): Add new class field "arrayclass".
11677
11678 2001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
11679
11680 From patha@softlab.ericsson.se:
11681 * parse.y (switch_label): Use build, not build1, to construct
11682 DEFAULT_EXPR.
11683
11684 2001-01-04 Neil Booth <neil@daikokuya.demon.co.uk>
11685
11686 * lang.c (lang_decode_option): Change -MA to -MP.
11687 * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
11688 Update to new prototype; do quote targets.
11689 (jcf_dependency_write): Update.
11690
11691 2000-12-22 Bryce McKinlay <bryce@albatross.co.nz>
11692
11693 Shorten primitive array allocation path:
11694 * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
11695 to create new primitive arrays.
11696 * expr.c (build_newarray): If generating native code, call
11697 soft_newarray_node with a reference to the primitive TYPE identifier
11698 instead of type_value.
11699
11700 2000-12-17 Bryce McKinlay <bryce@albatross.co.nz>
11701
11702 Fix for PRs gcj/312 and gcj/253:
11703 * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
11704 dest if they arn't already.
11705 * class.c (layout_class): Call maybe_layout_super_class on
11706 superinterfaces also, but only if compiling from bytecode.
11707
11708 Fix for PR gcj/373:
11709 * parse.y (create_class): Set ACC_STATIC if class is declared in an
11710 interface.
11711
11712 2000-12-15 Tom Tromey <tromey@redhat.com>
11713
11714 * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
11715 set.
11716
11717 2000-12-14 Andrew Haley <aph@redhat.com>
11718
11719 * boehm.c (mark_reference_fields): Change test to correctly detect
11720 bitmap overflow.
11721
11722 2000-12-15 Andreas Jaeger <aj@suse.de>
11723
11724 * config-lang.in (lang_dirs): Added.
11725
11726 2000-12-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
11727
11728 * parse.y (end_artificial_method_body): Fixed undefined behavior.
11729 Credits go to rth for finding it.
11730
11731 2000-12-13 Mike Stump <mrs@wrs.com>
11732
11733 * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
11734
11735 2000-11-07 Tom Tromey <tromey@cygnus.com>
11736
11737 * Make-lang.in (JAVA_LEX_C): Added chartables.h.
11738 * lex.c (java_ignorable_control_p): Removed.
11739 (java_letter_or_digit_p): Removed.
11740 (java_start_char_p): New function.
11741 (java_read_char): Return `int', not `unicode_t'. Changed
11742 callers.
11743 (java_read_unicode): Likewise.
11744 (java_read_unicode_collapsing_terminators): Likewise.
11745 (java_get_unicode): Likewise.
11746 (java_new_lexer): Initialize hit_eof.
11747 (java_parse_end_comment): Take `int' argument.
11748 (java_parse_doc_section): Likewise.
11749 (java_parse_escape_sequence): Don't allow backlash-newline.
11750 Return `int'.
11751 * lex.h (JAVA_DIGIT_P): Removed.
11752 (_JAVA_LETTER_OR_DIGIT_P): Removed.
11753 (_JAVA_IDENTIFIER_IGNORABLE): Removed.
11754 (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
11755 (JAVA_PART_CHAR_P): New macro.
11756 (UEOF): Now -1.
11757 (JAVA_CHAR_ERROR): Now -2.
11758 (java_lexer): New field `hit_eof'.
11759 * chartables.h: New file.
11760 * gen-table.pl: new file.
11761
11762 2000-11-20 Tom Tromey <tromey@cygnus.com>
11763 Alexandre Petit-Bianco <apbianco@cygnus.com>
11764
11765 * parse.y (java_complete_lhs): Only allow compound assignment of
11766 reference type if type is String.
11767
11768 2000-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
11769
11770 * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
11771 jcf-path.c: Likewise.
11772
11773 2000-12-09 Anthony Green <green@redhat.com>
11774
11775 * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
11776 filestart and filename_length as int values.
11777
11778 2000-12-07 Mo DeJong <mdejong@redhat.com>
11779
11780 * jcf-io.c (find_class): Correct the logic that tests to see if a
11781 .java file is newer than its .class file. The compiler was
11782 incorrectly printing a warning when file mod times were equal.
11783
11784 2000-12-07 Zack Weinberg <zack@wolery.stanford.edu>
11785
11786 * jvgenmain.c: Use ISPRINT not isascii.
11787
11788 2000-12-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
11789
11790 * parse.y (end_artificial_method_body): Fixed typo.
11791
11792 2000-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
11793
11794 * parse.y (patch_method_invocation): Pick the correct enclosing
11795 context when creating inner class instances.
11796 Fixes gcj/332.
11797
11798 2000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
11799
11800 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
11801 Update copyright year to 2000.
11802
11803 2000-11-23 Anthony Green <green@redhat.com>
11804
11805 * jcf-parse.c (init_jcf_parse): Register current_file_list root.
11806 Move current_file_list out of yyparse and make it static.
11807
11808 * expr.c: Declare quick_stack and tree_list_free_list as static
11809 (init_expr_processing): Register quick_stack and
11810 tree_list_free_list roots.
11811
11812 2000-11-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
11813
11814 * parse.y (build_outer_field_access): New local `decl_ctx', use
11815 it. Check for field's context and current class immediate outer
11816 context inheritance.
11817 (outer_field_access_p): Consider fields inherited from the last
11818 enclosing context.
11819 (build_access_to_thisn): Stop at the last enclosing context if
11820 necessary.
11821 Fixes gcj/367.
11822
11823 2000-11-23 J"orn Rennecke <amylaar@redhat.com>
11824
11825 * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
11826
11827 2000-11-22 Bryce McKinlay <bryce@albatross.co.nz>
11828
11829 * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
11830 scratch buffer.
11831
11832 2000-11-20 Tom Tromey <tromey@cygnus.com>
11833
11834 * jv-scan.c (help): Document --complexity.
11835 (options): Added --complexity.
11836 (flag_complexity): New global.
11837 (main): Call `report'.
11838 * parse-scan.y (complexity): New global.
11839 (if_then_statement, if_then_else_statement,
11840 if_then_else_statement_nsi, switch_block_statement_group,
11841 while_expression, do_statement, for_begin, continue_statement,
11842 throw_statement, catch_clause, finally, method_invocation,
11843 conditional_and_expression, conditional_or_expression,
11844 conditional_expression): Update complexity.
11845 (reset_report): Reset complexity.
11846 (report): New function.
11847
11848 2000-11-20 Tom Tromey <tromey@cygnus.com>
11849
11850 * lex.c (yylex): Added STRICT_TK case.
11851 * parse.y (STRICT_TK): Added.
11852 * parse-scan.y (STRICT_TK): Added.
11853 * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
11854 `;'. Use 4, not 3, with -k option. Correctly rename resulting
11855 file.
11856 * keyword.h: Rebuilt.
11857 * keyword.gperf (strictfp): Added.
11858
11859 2000-11-20 Tom Tromey <tromey@cygnus.com>
11860
11861 * lex.c (yylex): Recognize floating point constants with leading
11862 0.
11863
11864 2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11865
11866 * java-tree.h (cyclic_inheritance_report): Constify.
11867 * parse.y (cyclic_inheritance_report): Likewise.
11868
11869 2000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
11870
11871 * parse.y (goal): Remove call to ggc_add_string_root.
11872
11873 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
11874
11875 * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
11876 Create string in scratch buffer, then pass to build_string.
11877
11878 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
11879
11880 * parse.y (issue_warning_error_from_context): Add
11881 ATTRIBUTE_PRINTF.
11882
11883 2000-11-11 Anthony Green <green@redhat.com>
11884
11885 * jcf-parse.c (process_zip_dir): Add finput parameter.
11886 (jcf_figure_file_type): Call process_zip_dir with appropriate
11887 argument.
11888
11889 2000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11890
11891 * decl.c (copy_lang_decl): Use memcpy, not bcopy.
11892 * jcf-parse.c (jcf_figure_file_type): Likewise.
11893
11894 2000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
11895
11896 * parse.y (create_new_parser_context): Use memset () instead of
11897 bzero ().
11898
11899 2000-11-08 Tom Tromey <tromey@cygnus.com>
11900
11901 * gjavah.c (process_file): Only include gcj/cni.h when generating
11902 CNI stubs.
11903
11904 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
11905
11906 * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
11907 (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
11908 instead of bzero ().
11909
11910 2000-11-05 Tom Tromey <tromey@cygnus.com>
11911
11912 * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
11913 * lex.c (IS_ZERO): New define.
11914 (java_perform_atof): Error on floating point underflow.
11915
11916 2000-11-04 Tom Tromey <tromey@cygnus.com>
11917
11918 * lex.c (java_parse_escape_sequence): Only read two octal
11919 characters if the first one is greater than 3. Don't allow
11920 "octal" numbers to include the digits 8 or 9.
11921
11922 2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
11923
11924 * Make-lang.in (java.distdir): Remove.
11925
11926 2000-11-03 Tom Tromey <tromey@cygnus.com>
11927
11928 * Make-lang.in (java.dvi): New target.
11929 Partial fix for PR other/567.
11930
11931 * lang-options.h: Mention -Wout-of-date.
11932 * jcf-dump.c (flag_newer): New global.
11933 * gjavah.c (flag_newer): New global.
11934 * jcf-io.c (find_class): Only warn when flag_newer set.
11935 * lang.c (flag_newer): New global.
11936 (struct string_option): New declaration.
11937 (lang_W_options): New global.
11938 (process_option_with_no): New function.
11939 (lang_decode_option): Use it.
11940
11941 * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
11942 * gjavah.c (cxx_keyword_subst): Handle any number of trailing
11943 `$'.
11944
11945 * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
11946 (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
11947 * lex.c (java_read_unicode): Removed `term_context' argument.
11948 Recognize any number of `u' in `\u'.
11949 (java_read_unicode_collapsing_terminators): New function.
11950 (java_get_unicode): Use it.
11951 (java_lineterminator): Removed.
11952 (yylex): Produce error if character literal is newline or single
11953 quote. Return if eof found in middle of `//' comment. EOF in
11954 `//' comment is only an error if pedantic.
11955 (java_ignorable_control_p): New function.
11956 (java_parse_end_comment): Return if eof found in middle of
11957 comment.
11958 Include flags.h.
11959 * jv-scan.c (pedantic): New global.
11960
11961 2000-10-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
11962
11963 * parse.y (outer_field_access_p): Inherited fields aren't
11964 consider outer fields.
11965 (maybe_build_thisn_access_method): Use
11966 PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
11967 (resolve_expression_name): Trigger an error if a static field
11968 is being accessed as an outer field.
11969
11970 2000-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
11971
11972 * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
11973 Fixes gcj/365.
11974
11975 2000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
11976
11977 * Make-lang.in: Move all build rules here from Makefile.in,
11978 adapt to new context. Wrap all rules that change the current
11979 directory in parentheses. Expunge all references to $(P).
11980 When one command depends on another and they're run all at
11981 once, use && to separate them, not ;. Add OUTPUT_OPTION to
11982 all object-file generation rules. Delete obsolete variables.
11983
11984 * Makefile.in: Delete.
11985 * config-lang.in: Delete outputs= line.
11986
11987 2000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
11988
11989 * parse.y (patch_method_invocation): NULLify this_arg when already
11990 inserted.
11991 (maybe_use_access_method): Handle call to methods unrelated to the
11992 current class. Fixed comment.
11993 Fixes gcj/361.
11994
11995 2000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
11996
11997 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
11998 scope.
11999
12000 2000-10-24 Tom Tromey <tromey@cygnus.com>
12001
12002 * lex.c (java_new_lexer): Initialize new fields. Work around
12003 broken iconv() implementations.
12004 (java_read_char): Swap bytes if required. Use fallback decoder if
12005 required.
12006 (byteswap_init, need_byteswap): New globals.
12007 (java_destroy_lexer): Only close iconv handle if it is in use.
12008 * lex.h (java_lexer): New fields read_anything, byte_swap,
12009 use_fallback.
12010 Made out_buffer unsigned.
12011
12012 2000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
12013
12014 * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
12015 where an enclosing context can be set on the jdep.
12016 (do_resolve_class): Fixed identation.
12017
12018 2000-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12019
12020 * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
12021
12022 * jcf-reader.c (peek_attribute, skip_attribute): Only define
12023 when requested.
12024
12025 * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
12026
12027 * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
12028
12029 2000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
12030
12031 * jcf-write.c (OP1): Update `last_bc'.
12032 (struct jcf_block): Fixed indentation and typo in comments. New
12033 field `last_bc'.
12034 (generate_bytecode_insns): Insert `nop' if `jsr' immediately
12035 follows `monitorenter'.
12036 * parse.y (patch_synchronized_statement): New local `tmp'. Call
12037 `patch_string'.
12038 Fixes gcj/232.
12039
12040 2000-10-16 Tom Tromey <tromey@cygnus.com>
12041
12042 * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
12043 * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
12044 * lang-options.h: Added -MA, -MT, -MF..
12045 * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
12046 (DEPEND_TARGET_SET): New macro.
12047 (DEPEND_FILE_ALREADY_SET): Likewise.
12048 (init_parse): Handle new flags.
12049 * jcf.h (jcf_dependency_print_dummies): Declare.
12050 * Make-lang.in (s-java): Added mkdeps.o.
12051 * Makefile.in (BACKEND): Added mkdeps.o.
12052 (../gcjh$(exeext)): Added mkdeps.o.
12053 (../jcf-dump$(exeext)): Added mkdeps.o.
12054 * jcf-depend.c: Include mkdeps.h.
12055 (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
12056 add_entry): Removed.
12057 (jcf_dependency_reset): Rewrote.
12058 (dependencies): New global.
12059 (jcf_dependency_set_target): Rewrote.
12060 (jcf_dependency_add_target): Likewise.
12061 (jcf_dependency_add_file): Likewise.
12062 (munge): Removed.
12063 (print_ents): Removed.
12064 (jcf_dependency_write): Rewrote.
12065 (print_dummies): New global.
12066 (jcf_dependency_print_dummies): New function
12067 (jcf_dependency_write): Call deps_dummy_targets if required.
12068
12069 2000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
12070
12071 * gjavah.c (add_class_decl): Removed unused variables `tname',
12072 `tlen' and `name_index'.
12073 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
12074 * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
12075 in `wfl_operator' with value.
12076 (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
12077 (jcf_figure_file_type): Fixed identation.
12078 * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
12079 * parse.y (analyze_clinit_body): New function.
12080 (static_initializer:): Reset `current_static_block'.
12081 (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
12082 `wfl_operator' with new value.
12083 (lookup_cl): Use EXPR_WFL_FILENAME.
12084 (maybe_yank_clinit): Handle bogus <clinit> bodies, call
12085 analyze_clinit_body.
12086 (build_outer_field_access): Access to this$<n> built from
12087 current_class, not its outer context.
12088 (build_access_to_thisn): Fixed leading comment. Tidied things up.
12089 (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
12090 (patch_method_invocation): Use `is_static_flag' when already
12091 initialized.
12092 (patch_newarray): Removed assignment in ternary operator.
12093
12094 2000-10-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
12095
12096 * except.c (free_eh_ranges): Don't free `whole_range'.
12097
12098 2000-10-15 Anthony Green <green@redhat.com>
12099
12100 * decl.c (init_decl_processing): Call init_class_processing before
12101 anything else.
12102
12103 2000-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12104
12105 * check-init.c (check_init): Fixed leading comment. Use
12106 LOCAL_FINAL_P.
12107 * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12108 (give_name_to_locals): Likewise.
12109 (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
12110 fields in lang_decl_var.
12111 * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
12112 DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
12113 (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
12114 (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
12115 DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
12116 (LOCAL_FINAL): Rewritten.
12117 (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
12118 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
12119 (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
12120 `init_final' fields.
12121 (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
12122 `final_uid', `final_liic', `final_ierr' and `local_final' fields.
12123 (TYPE_HAS_FINAL_VARIABLE): New macro.
12124 (struct lang_type): Added `afv' field.
12125 * parse.y (check_static_final_variable_assignment_flag): New function.
12126 (reset_static_final_variable_assignment_flag): Likewise.
12127 (check_final_variable_local_assignment_flag): Likewise.
12128 (reset_final_variable_local_assignment_flag): Likewise.
12129 (check_final_variable_indirect_assignment): Likewise.
12130 (check_final_variable_global_assignment_flag): Likewise.
12131 (add_inner_class_fields): Use LOCAL_FINAL_P.
12132 (register_fields): Handle local finals and final variables.
12133 (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
12134 (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12135 (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
12136 on local finals.
12137 (java_complete_expand_methods): Loop to set
12138 TYPE_HAS_FINAL_VARIABLE. Call
12139 `reset_final_variable_local_assignment_flag' and
12140 `check_final_variable_local_assignment_flag' accordingly before
12141 and after constructor expansion. Call
12142 `reset_static_final_variable_assignment_flag'
12143 before expanding <clinit> and after call
12144 `check_static_final_variable_assignment_flag' if the
12145 current_class isn't an interface. After all methods have been
12146 expanded, call `check_final_variable_global_assignment_flag' and
12147 `check_static_final_variable_assignment_flag' if the current class
12148 is an interface.
12149 (maybe_yank_clinit): Fixed typo in comment.
12150 (build_outer_field_access_methods): Removed old sanity check. Use
12151 FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12152 Don't create access methods for finals.
12153 (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
12154 (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
12155 existing DECL_INIT has been processed.
12156 (java_complete_lhs): Likewise.
12157 (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
12158 Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
12159 logic.
12160 (patch_assignment): Use LOCAL_FINAL_P.
12161 (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
12162 DECL_INITIAL is nullified.
12163 Fixes gcj/163.
12164
12165 2000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12166
12167 * Make-lang.in (parse.c, parse-scan.c): Create atomically.
12168
12169 * Makefile.in (parse.c, parse-scan.c): Likewise.
12170
12171 2000-10-12 Mark Mitchell <mark@codesourcery.com>
12172
12173 * class.c (temporary_obstack): Remove.
12174 (make_class): Don't mess with obstascks.
12175 (push_class): Likewise.
12176 (set_super_info): Likewise.
12177 (add_method_1): Likewise.
12178 (add_method): Likewise.
12179 (add_field): Likewise.
12180 (build_utf8_ref): Likewise.
12181 (build_class_ref): Likewise.
12182 (build_static_field_ref): Likewise.
12183 (finish_class): Likewise.
12184 (push_super_field): Likewise.
12185 (layout_class): Likewise.
12186 (layout_class_methods): Likewise.
12187 (init_class_processing): Likewise.
12188 * constants.c (get_tag_node): Likewise.
12189 (build_constant_data_ref): Likewise.
12190 * decl.c (ggc_p): Remove.
12191 (copy_lang_decl): Use ggc_alloc.
12192 (complete_start_java_method): Don't mess with obstacks.
12193 (start_java_method): Likewise.
12194 (end_java_method): Likewise.
12195 * except.c (link_handler): Use xmalloc.
12196 (free_eh_ranges): New function.
12197 (method_init_exceptions): Use it.
12198 (add_handler): Use xmalloc.
12199 (expand_start_java_handler): Don't mess with obstacks.
12200 (prepare_eh_table_type): Likewise.
12201 (expand_end_java_handler): Likewise.
12202 * expr.c (push_value): Likewise.
12203 (create_label_decl): Likewise.
12204 (build_jni_stub): Likewise.
12205 (java_lang_expand_expr): Likewise.
12206 (note_instructions): Use xrealloc.
12207 (java_push_constant_from_pool): Don't mess with obstacks.
12208 (process_jvm_instruction): Likewise.
12209 * java-tree.h (cyclic_inheritance_report): Remove duplicate
12210 declaration.
12211 * jcf-parse.c (get_constant): Don't mess with obstacks.
12212 (read_class): Likewise.
12213 (jcf_parse): Likewise.
12214 * lex.c (expression_obstack): Remove.
12215 (java_lex): Don't use obstack_free.
12216 * parse.h (exit_java_complete_class): Don't mess with obstacks.
12217 (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
12218 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
12219 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
12220 * parse.y (gaol): Add more GC roots.
12221 (add_inner_class_fields): Adjust calls to MANGLE_* macros.
12222 (lookup_field_wrapper): Likewise.
12223 (obtain_incomplete_type): Don't mess with obstacks.
12224 (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
12225 macros.
12226 (craft_constructor): Don't mess with obstacks.
12227 (safe_layout_class): Likewise.
12228 (java_complete_class): Likewise.
12229 (source_end_java_method): Likewise.
12230 (build_outer_field_access_methods): Likewise.
12231 (build_outer_method_access_method): Likewise.
12232 (maybe_build_thisn_access_method): Likewise.
12233 (build_dot_class_method_invocation): Likewise.
12234 (java_complete_tree): Likewise.
12235 (java_complete_lhs): Likewise.
12236 (do_merge_string_cste): Likewise.
12237 (patch_string_cst): Likewise.
12238 (array_constructor_check_entry): Likewise.
12239 * typeck.c (build_java_array_type): Likewise.
12240 (parse_signature_string): Likewise.
12241 (build_java_signature): Likewise.
12242
12243 2000-10-12 Tom Tromey <tromey@cygnus.com>
12244
12245 Fix for PR gcj/356:
12246 * gjavah.c (add_class_decl): Don't special-case inner classes.
12247 (add_namelet): Likewise.
12248
12249 2000-10-11 Rodney Brown <RodneyBrown@mynd.com>
12250
12251 * java-tree.h: Constify current_encoding.
12252 * lang.c: Constify current_encoding.
12253
12254 2000-10-10 Jeff Sturm <jeff.sturm@appnet.com>
12255
12256 * jvgenmain.c (class_mangling_suffix): Omit `.'.
12257 (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
12258
12259 2000-10-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12260
12261 * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
12262 patch. Fixes gcj/340.
12263
12264 2000-10-10 Tom Tromey <tromey@cygnus.com>
12265
12266 * lex.c (java_new_lexer): Initialize out_first and out_last
12267 fields.
12268 * lex.h (java_lexer): Added out_buffer, out_first, out_last.
12269
12270 2000-10-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
12271
12272 * parse.y (pop_current_osb): New function.
12273 (array_type:): Use `dims:', changed actions
12274 accordingly. Suggested by Anthony Green.
12275 (array_creation_expression:): Used pop_current_osb.
12276 (cast_expression:): Likewise.
12277 (search_applicable_method_list): Fixed indentation.
12278
12279 2000-10-08 Anthony Green <green@redhat.com>
12280
12281 * parse.y (array_type_literal): Remove production.
12282 (type_literals): Refer to array_type, not array_type_literal.
12283
12284 2000-10-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12285
12286 Patch contributed by Corey Minyard.
12287 * decl.c (check_local_named_variable): New function.
12288 (tree check_local_unnamed_variable): Likewise.
12289 (find_local_variable): Splitted. Call check_local_{un}named_variable.
12290
12291 2000-10-07 Anthony Green <green@redhat.com>
12292
12293 * class.c (layout_class): Handle case where superclass can't be
12294 layed out yet.
12295
12296 2000-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
12297
12298 * Makefile.in (keyword.h): Refer to GNU FTP site for updated
12299 gperf.
12300
12301 2000-10-05 Tom Tromey <tromey@cygnus.com>
12302
12303 * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
12304 * jvgenmain.c (class_mangling_prefix): Removed.
12305 (class_mangling_suffix): New global.
12306 (main): Use it.
12307 * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
12308 `$'.
12309 (print_method_info): Handle overrides for static and final
12310 methods.
12311 (process_file): Generate declaration for class object field.
12312 * class.c (cxx_keywords): New array.
12313 (utf8_cmp): New function.
12314 (cxx_keyword_p): New function.
12315 (layout_class_method): Mangle C++ keywords by appending `$'.
12316 (mangle_field): New function.
12317 (mangle_class_field): Use mangle_field. Mangle class name as
12318 `class$'.
12319 (mangle_static_field): Use mangle_field.
12320
12321 2000-10-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
12322
12323 * decl.c (find_local_variable): Removed uncessary type check and
12324 fixed range check typo. From Corey Minyard.
12325
12326 2000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12327
12328 * decl.c (give_name_to_locals): New local `code_offset'. Call
12329 `maybe_adjust_start_pc'.
12330 * expr.c (note_instructions): New function.
12331 (expand_byte_code): Don't collect insn starts here.
12332 (peek_opcode_at_pc): New function.
12333 (maybe_adjust_start_pc): Likewise.
12334 * java-tree.h (maybe_adjust_start_pc): Declare.
12335 (note_instructions): Likewise.
12336 * jcf-parse.c (parse_class_file): Call `note_instructions'.
12337
12338 2000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12339
12340 * parse.y (field_access:): Fixed indentation.
12341 (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
12342
12343 2000-09-07 Tom Tromey <tromey@cygnus.com>
12344
12345 Fix for PR gcj/307:
12346 * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
12347 JPRIMITIVE_TYPE_P, for arithmetic operators.
12348 (patch_method_invocation): Indentation fix.
12349 (try_builtin_assignconv): Handle boolean specially. Fixed typo.
12350 (valid_builtin_assignconv_identity_widening_p): Handle boolean.
12351 (do_unary_numeric_promotion): Cleaned up code.
12352 (valid_cast_to_p): Handle boolean correctly.
12353
12354 2000-09-27 Tom Tromey <tromey@cygnus.com>
12355
12356 * lex.c (java_read_unicode): Reset bs_count when finished with
12357 `\u' sequence.
12358
12359 2000-10-01 Mark Mitchell <mark@codesourcery.com>
12360
12361 Convert to GC.
12362 * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
12363 * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
12364 (typeck.o): Depend on ggc.h.
12365 * class.c (add_method_1): Use GC functions for allocation.
12366 (init_class_processing): Register roots.
12367 * decl.c (ggc_p): Set to 1.
12368 (pending_local_decls): Make it static.
12369 (push_jvm_slot): Use GC functions for allocation.
12370 (init_decl_processing): Register roots.
12371 (give_name_to_locals): Use GC functions for allocation.
12372 (lang_mark_tree): New function.
12373 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
12374 functions for allocation.
12375 * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
12376 * lex.c (java_lex): Use build_string, rather than replicating it
12377 inline.
12378 * parse.y (goal): Add more roots.
12379 (mark_parser_ctxt): New function.
12380 * typeck.c: Include ggc.h.
12381
12382 2000-09-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12383
12384 * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
12385 contains something else than MODIFY_EXPR.
12386
12387 2000-09-23 Mark Mitchell <mark@codesourcery.com>
12388
12389 * Make-lang.in (JAVA_SRCS): Include java-tree.h.
12390 * Makefile.in (parse.o): Depend on ggc.h.
12391 (class.o): Likewise.
12392 (constants.o): Likewise.
12393 (decl.o): Likewise.
12394 (expr.o): Likewise.
12395 (jcf-parse.o): Likewise.
12396 (jcf-write.o): Likewise.
12397 (mangle.o): Likewise.
12398 * class.c: Include ggc.h.
12399 (build_static_field_ref): Register GC roots.
12400 (layout_class): Likewise.
12401 (init_class_processing): Likewise.
12402 * constants.c: Include ggc.h.
12403 (current_constant_pool_data_ref): Remove.
12404 (tag_nodes): Move it to ...
12405 (get_tag_node): ... here. Register GC roots.
12406 * decl.c: Include ggc.h. Remove many global tree definitions.
12407 (throw_node): Define.
12408 (java_global_trees): Likewise.
12409 (predef_filenames): Make the size a constant.
12410 (init_decl_processing): Adjust accordingly.
12411 (init_decl_processing): Call init_jcf_parse. Register GC roots.
12412 * expr.c: Include ggc.h.
12413 (init_expr_processing): Register GC roots.
12414 (build_invokeinterface): Likewise.
12415 * java-tree.h: Replace extern tree declarations with macros.
12416 (java_global_trees): New variable.
12417 (java_tree_index): New enumeration.
12418 (init_jcf_parse): Declare.
12419 * jcf-parse.c: Include ggc.h.
12420 (current_class): Remove declaration.
12421 (main_class): Likewise.
12422 (all_class_list): Likewise.
12423 (predefined_filename_p): Adjust for constant size of
12424 predef_filenames.
12425 (init_jcf_parse): New function.
12426 * jcf-write.c: Include ggc.h.
12427 (generate_classfile): Register GC roots.
12428 (append_synthetic_attribute): Likewise.
12429 (append_innerclass_attribute_entry): Likewise.
12430 * lang.c: Include ggc.h.
12431 (lang_print_error): Register GC roots.
12432 * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
12433 with macros.
12434 * parse.y: Include ggc.h.
12435 (wfl_operator): Remove.
12436 (goal): Register GC roots.
12437 (java_pop_parser_context): Adjust for new field names.
12438 (java_parser_context_save_global): Likewse.
12439 (java_parser_context_restore_global): Likewise.
12440 (java_parser_context_suspend): Likewise.
12441 (java_parser_context_resume): Likewise.
12442 (verify_constructor_circularity): Register GC roots.
12443 (lookup_cl): Likewise.
12444 (java_reorder_fields): Likewise.
12445 (build_current_this): Likewise.
12446 (class_in_current_package): Likewise.
12447 (argument_types_convertible): Likewise.
12448 (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
12449
12450 2000-09-14 Tom Tromey <tromey@cygnus.com>
12451
12452 * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
12453
12454 2000-09-13 Tom Tromey <tromey@cygnus.com>
12455
12456 * jcf-parse.c: Include <locale.h>.
12457 * jv-scan.c: Include <locale.h>.
12458
12459 2000-09-12 Tom Tromey <tromey@cygnus.com>
12460
12461 * expr.c (pop_type_0): Return `Object' if trying to merge two
12462 interface types.
12463 * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
12464 interface types; `Object' is always a valid supertype.
12465
12466 2000-09-12 Tom Tromey <tromey@cygnus.com>
12467
12468 Fix for PR gcj/33:
12469 * jv-scan.c (help): Document --encoding.
12470 (options): Added `encoding' entry.
12471 (OPT_ENCODING): New define.
12472 (main): Handle --encoding.
12473 Include <langinfo.h> if nl_langinfo exists.
12474 * lang-options.h: Document --classpath, --CLASSPATH, --main, and
12475 --encoding.
12476 * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
12477 (parse_source_file): Correctly call java_init_lex. Added `finput'
12478 argument. Use nl_langinfo to determine default encoding.
12479 * java-tree.h (current_encoding): Declare.
12480 * parse.y (java_parser_context_restore_global): Don't restore
12481 `finput'.
12482 (java_parser_context_save_global): Don't set `finput' field.
12483 (java_pop_parser_context): Don't restore `finput'. Free old lexer
12484 if required.
12485 * lang.c (current_encoding): New global.
12486 (lang_decode_option): Recognize `-fencoding='.
12487 (finish_parse): Don't close finput.
12488 * parse.h (struct parser_ctxt): Removed `finput' and
12489 `unget_utf8_value' fields. Added `lexer' field.
12490 (java_init_lex): Fixed declaration.
12491 * lex.c (java_new_lexer): New function.
12492 (java_destroy_lexer): Likewise.
12493 (java_read_char): Added `lex' argument. Handle iconv case.
12494 (java_read_unicode): Added `lex' argument. Count backslashes in
12495 lexer structure.
12496 (java_init_lex): Added `finput' and `encoding' arguments. Set
12497 `lexer' field in ctxp.
12498 (BAD_UTF8_VALUE): Removed.
12499 (java_lex): Handle seeing UEOF in the middle of a string literal.
12500 * lex.h: Include <iconv.h> if HAVE_ICONV defined.
12501 (java_lexer): New structure.
12502 (UNGETC): Removed.
12503 (GETC): Removed.
12504 (DEFAULT_ENCODING): New define.
12505 (java_destroy_lexer): Declare.
12506
12507 2000-09-12 Tom Tromey <tromey@cygnus.com>
12508
12509 Fix for PR gcj/343:
12510 * lex.c (java_init_lex): Initialize java_io_serializable.
12511 * parse.y (java_io_serializable): New global.
12512 (valid_ref_assignconv_cast_p): An array can be cast to
12513 serializable.
12514
12515 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
12516
12517 * decl.c, expr.c: Include defaults.h if not already included.
12518 Don't define the *_TYPE_SIZE macros.
12519
12520 2000-09-09 Geoffrey Keating <geoffk@cygnus.com>
12521
12522 * typeck.c (build_java_array_type): Correct first parameter
12523 in ADJUST_FIELD_ALIGN invocation.
12524
12525 2000-09-06 Tom Tromey <tromey@cygnus.com>
12526
12527 * lang-specs.h: Also recognize `-femit-class-files'.
12528
12529 2000-09-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
12530
12531 * verify.c (merge_types): Load the types to merge if necessary.
12532
12533 2000-09-02 Anthony Green <green@redhat.com>
12534
12535 * jcf-io.c: Include zlib.h.
12536 (open_in_zip): Read compressed class file archives.
12537 * zipfile.h (ZipDirectory): Add uncompressed_size and
12538 compression_method fields.
12539 * zextract.c (read_zip_archive): Collect file compression info.
12540
12541 2000-08-15 Bryce McKinlay <bryce@albatross.co.nz>
12542
12543 * parse.y (do_resolve_class): Also explore superclasses of
12544 intermediate enclosing contexts when searching for inner classes.
12545
12546 2000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
12547
12548 * parse.y (variable_declarator_id:): Better error message.
12549 (expression_statement:): Use YYNOT_TWICE.
12550 (cast_expression:): Likewise.
12551 (assignment:): Likewise.
12552
12553 2000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
12554
12555 * parse.y (do_merge_string_cste): New locals. Create new
12556 STRING_CSTs each time, use memcpy. Fixes gcj/311.
12557
12558 2000-08-07 Hans Boehm <boehm@acm.org>
12559
12560 * boehm.c (mark_reference_fields): Set marking bits for all words in
12561 a multiple-word record.
12562 (get_boehm_type_descriptor): Use the procedure marking descriptor for
12563 java.lang.Class.
12564
12565 2000-08-31 Mike Stump <mrs@wrs.com>
12566
12567 * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
12568 jcf-dump$(exeext)): Make parallel safe.
12569
12570 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
12571
12572 * jcf-parse.c (set_source_filename): Constify a char *.
12573 * jcf-write.c (append_innerclasses_attribute,
12574 make_class_file_name): Constify a char *. Don't recycle a
12575 variable for an unrelated purpose.
12576 * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
12577 (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
12578
12579 2000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12580
12581 * expr.c (can_widen_reference_to): Fixed indentation.
12582 * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
12583 * parse.y: `finit$' replaces `$finit$' in comments.
12584 (try_builtin_assignconv): Fixed leading comment.
12585
12586 2000-08-25 Greg McGary <greg@mcgary.org>
12587
12588 * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
12589
12590 2000-08-24 Greg McGary <greg@mcgary.org>
12591
12592 * lang.c (lang_decode_option): Use ARRAY_SIZE.
12593 * parse.y (BINOP_LOOKUP): Likewise.
12594
12595 2000-08-22 Andrew Haley <aph@cygnus.com>
12596
12597 * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
12598 sign extending. Fixes gcj/321.
12599 * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
12600 combining to make a jlong. Fixes gcj/321.
12601
12602 2000-08-21 Nix <nix@esperi.demon.co.uk>
12603
12604 * lang-specs.h: Do not process -o or run the assembler if
12605 -fsyntax-only.
12606
12607 2000-08-16 Andrew Haley <aph@cygnus.com>
12608
12609 * typeck.c (build_java_array_type): Rewrite code to do array
12610 alignment. Take into account back-end macros when aligning array
12611 data. Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
12612 user to set alignment. Fixes gcj/252 and 160.
12613
12614 2000-08-09 Tom Tromey <tromey@cygnus.com>
12615
12616 * parse.y (check_abstract_method_definitions): Now return `int'.
12617 Check implemented interfaces. Fixes PR gcj/305.
12618
12619 * parse.y (patch_switch_statement): Disallow `long' in switch
12620 expressions. Fixes PR gcj/310.
12621
12622 2000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
12623
12624 * decl.c (finit_leg_identifier_node): New global.
12625 (init_decl_processing): Use `finit$' to initialize
12626 finit_identifier_node. Use `$finit$' to initialize
12627 finit_leg_identifier_node.
12628 * expr.c (expand_java_field_op): Use ID_FINIT_P.
12629 * java-tree.h (finit_identifier_node): Changed attached comment.
12630 (finit_leg_identifier_node): New declaration.
12631 (ID_FINIT_P): Take finit_identifier_node and
12632 finit_leg_identifier_node into account. This is a backward
12633 compatibility hack.
12634
12635 2000-08-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
12636
12637 * jcf-write.c (generate_bytecode_conditional): Re-installed lost
12638 Jan 6 2000 patch.
12639 (generate_bytecode_insns): Check `nargs' before emitting it.
12640 * verify.c (merge_type_state): Fixed typo.
12641 * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
12642 generate_bytecode_{conditional,insns}.
12643
12644 2000-08-13 Anthony Green <green@redhat.com>
12645
12646 * check-init.c (check_init): Add case for BIT_FIELD_REF (required
12647 for -pg builds).
12648
12649 2000-08-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12650
12651 * class.c (maybe_layout_super_class): Fixed indentation.
12652 * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
12653 (java_check_methods): New function declaration.
12654 * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
12655 instead of `str_ptr'.
12656 * jcf-write.c (generate_bytecode_insns): Emit number the of args
12657 of a `invokeinterface' at the right time.
12658 * parse.h (WFL_STRIP_BRACKET): New macro.
12659 (SET_TYPE_FOR_RESOLUTION): Use it.
12660 * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
12661 (check_class_interface_creation): Don't check for cross package
12662 innerclass name clashes.
12663 (method_header): Behave properly if MDECL is `error_mark_node'.
12664 (method_declarator): Return `error_mark_node' if bogus current
12665 class.
12666 (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
12667 (resolve_and_layout): New local `decl_type', set and used. Call
12668 java_check_methods.
12669 (java_check_methods): New method.
12670 (java_layout_classes): Use it.
12671 (resolve_qualified_expression_name): No EH check necessary in
12672 access$<n>.
12673 (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
12674 `case' statement.
12675 (patch_assignment): Set DECL_INITIAL on integral final local.
12676
12677 2000-08-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
12678
12679 * java-tree.h (flag_extraneous_semicolon): New extern.
12680 * lang-options.h: (-Wextraneous-semicolon): New option.
12681 * lang.c (flag_redundant): Fixed typo in leading comment.
12682 (flag_extraneous_semicolon): New global.
12683 (lang_decode_option): Set `flag_extraneous_semicolon' when
12684 -Wall. Decode `-Wextraneous-semicolon'.
12685 * parse.y (type_declaration:): Removed `SC_TK' hack, added
12686 `empty_statement' rule.
12687 (class_body_declaration): Likewise.
12688 (method_body:): Accept `;' as a method body.
12689 (static_initializer:): Removed `SC_TK' hack.
12690 (constructor_block_end:): Likewise.
12691 (empty_statement:): Report deprecated empty declaration. Fixes
12692 gcj/295
12693
12694 2000-08-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12695
12696 * parse.y (build_dot_class_method_invocation): Changed parameter
12697 name to `type'. Build signature from `type' and convert it to a
12698 STRING_CST if it's an array.
12699 (patch_incomplete_class_ref): `build_dot_class_method_invocation'
12700 to use `ref_type' directly.
12701
12702 2000-08-06 Ovidiu Predescu <ovidiu@cup.hp.com>
12703
12704 * lang-options.h: Added a comma after the last element to avoid
12705 syntax errors when other languages define additional options.
12706
12707 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
12708
12709 * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
12710 * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
12711 (jc1): Link with $(BACKEND).
12712 (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
12713
12714 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
12715
12716 * jvspec.c: Adjust type of second argument to
12717 lang_specific_driver, and update code as necessary.
12718
12719 * class.c (build_dtable_decl): Initialize dummy.
12720
12721 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12722
12723 * parse.y (maybe_yank_clinit): When generating bytecode: non empty
12724 method bodies not to rule out discarding `<clinit>'; don't use
12725 <clinit> to initialize static fields with constant initializers.
12726
12727 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12728
12729 * gjavah.c (print_method_info): Added `synth' parameter. Skip
12730 synthetic methods.
12731 (method_synthetic): New global.
12732 (HANDLE_METHOD): Recognize synthetic method and tell
12733 `print_method_info' about it.
12734 (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
12735 processing a synthetic method.
12736 * jcf-reader.c (skip_attribute): New function.
12737 ( skip_attribute): Likewise.
12738
12739 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12740
12741 * parse.y (build_outer_field_access): Fixed comments.
12742 (fix_constructors): Emit the initialization of this$<n> before
12743 calling $finit$.
12744 (resolve_qualified_expression_name): Build an access to `decl' if
12745 necessary.
12746
12747 2000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
12748
12749 * parse-scan.y (curent_class): Non longer const.
12750 (inner_qualifier, inner_qualifier_length): Deleted.
12751 (current_class_length): New global.
12752 (bracket_count): Fixed typo in leading comment.
12753 (anonymous_count): New global.
12754 (class_instance_creation_expression:): Handle anonymous classes.
12755 (anonymous_class_creation:): New rule.
12756 (push_class_context): Rewritten.
12757 (pop_class_context): Likewise.
12758 (INNER_QUALIFIER): Macro deleted.
12759 (report_class_declaration): call `push_class_context' when
12760 entering the function. `fprintf' format modified not to use
12761 INNER_QUALIFIER.
12762 (report_class_declaration): Assign `package_name' and
12763 `current_class' to NULL separately.
12764
12765 2000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
12766
12767 * expr.c (build_invokeinterface): Call layout_class_methods on
12768 target interface.
12769
12770 2000-07-27 Tom Tromey <tromey@cygnus.com>
12771 Anthony Green <green@cygnus.com>
12772 Alexandre Petit-Bianco <apbianco@cygnus.com>
12773
12774 * class.c (make_class_data): Create vtable for abstract classes.
12775 (get_dispatch_table): Changed to cope with abstract classes.
12776
12777 2000-07-27 Tom Tromey <tromey@cygnus.com>
12778
12779 * parse.y (patch_method_invocation): Don't reverse the argument
12780 list when dealing with anonymous class constructors. Fixed typo in
12781 comment.
12782
12783 2000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
12784
12785 * parse.y (build_alias_initializer_parameter_list): Reverse
12786 crafted list when building aliases for anonymous class
12787 constructors.
12788
12789 2000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12790
12791 * parse.y (jdep_resolve_class): Don't bother checking potential
12792 innerclass access if `decl' is NULL.
12793 (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
12794 WFL.
12795
12796 2000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12797
12798 * parse.c: Remove (again.)
12799
12800 2000-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
12801
12802 * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
12803 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
12804 outside the `if' statement, alias to innerclass removed, `decl'
12805 used to mark the class complete.
12806
12807 2000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
12808
12809 * parse.y (simple_name:): Fixed typo in error message.
12810
12811 2000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
12812
12813 * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
12814 or its first operand can be error marks.
12815
12816 2000-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
12817
12818 * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
12819 * parse.y (method_header): Likewise.
12820
12821 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
12822
12823 * parse.y (process_imports): Consider that one might be trying to
12824 import an innerclass. Fixes gcj/254
12825
12826 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
12827
12828 * parse.y (find_as_inner_class): Handle the case where the
12829 enclosing context of an innerclass has been loaded as bytecode.
12830
12831 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
12832
12833 * parse.y (simple_name:): Reject `$' in type names.
12834 (resolve_type_during_patch): Use `type' as a second
12835 argument to resolve_no_layout. Fixes gcj/257.
12836
12837 2000-07-18 Bryce McKinlay <bryce@albatross.co.nz>
12838
12839 * parse.y (find_most_specific_methods_list): Select the only
12840 non-abstract method even if max has been set.
12841 Fixes gcj/285, gcj/298.
12842
12843 2000-07-18 Jeff Sturm <jeff.sturm@appnet.com>
12844
12845 * lang-specs.h: Added %(jc1) to java compiler options.
12846
12847 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
12848
12849 * .cvsignore: New file.
12850
12851 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12852
12853 * parse.y (not_accessible_p): Access granted to innerclasses
12854 (indirectly) extending the reference type. Fixes gcj/249.
12855
12856 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12857
12858 * parse.y (patch_method_invocation): Fixed comment.
12859 (maybe_use_access_method): Build this$<n>s to the context of the
12860 target method, or a type that extends it. Fixes gcj/242.
12861
12862 2000-07-13 Mark Mitchell <mark@codesourcery.com>
12863
12864 * parse.c: Remove.
12865
12866 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12867
12868 * parse.y (fold_constant_for_init): Avoid bullish conversion.
12869
12870 2000-07-13 Tom Tromey <tromey@cygnus.com>
12871
12872 * lang-specs.h: Added %{I*}.
12873
12874 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
12875
12876 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
12877
12878 2000-07-12 Mark Mitchell <mark@codesourcery.com>
12879
12880 * parse-scan.c: Remove.
12881
12882 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12883
12884 * class.c (set_super_info): Handled protected inner classes.
12885 (common_enclosing_context_p): Bail early if arguments aren't both
12886 inner classes.
12887 (get_access_flags_from_decl): Handle private and protected inner
12888 classes.
12889 * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
12890 (CLASS_PROTECTED): Likewise.
12891 (struct lang_type): New bitfield `poic'.
12892 * parse.y (jdep_resolve_class): Call check_inner_class_access on
12893 inner classes only.
12894 (check_inner_class_access): Renamed arguments, added
12895 comments. Handles protected inner classes (fixes gcj/225)
12896 (not_accessible_p): Fixed comments. Avoid handling inner classes.
12897
12898 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12899
12900 * parse.y (resolve_qualified_expression_name): Verify qualified
12901 access to `this'. Fixes gcj/239.
12902
12903 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12904
12905 * jcf-write.c (generate_classfile): Don't install ConstantValue
12906 for null pointers.
12907
12908 2000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12909
12910 * parse.y (resolve_qualified_expression_name): Handle inner class
12911 access. Fixes gcj/256.
12912
12913 2000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12914
12915 * jcf-write.c (generate_classfile): Properly install the
12916 ConstantValue attribute and the initial value constant pool index
12917 on string constants.
12918 * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
12919 class files.
12920
12921 2000-07-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
12922
12923 * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
12924 construct.
12925 * parse.y (find_as_inner_class): Fixed typo.
12926 (do_resolve_class): Explore enclosing contexts when searching for
12927 innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
12928 (check_inner_class_access): Check `decl' which can be null in case
12929 of previous errors.
12930
12931 2000-07-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
12932
12933 * java-tree.h (java_debug_context): Declared `extern'.
12934 (safe_layout_class): Likewise.
12935 * parse.y (resolve_field_access): Field must be `static' in order
12936 to be replaced by its initial value. Added comments.
12937 (find_applicable_accessible_methods_list): Fixed typo.
12938 (find_most_specific_methods_list): Methods found in innerclasses
12939 take over methods founds in the enclosing contexts.
12940 (java_complete_tree): Loosen restrictions on the type of DECLs
12941 that can be replaced by their initialization values.
12942 (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
12943
12944 2000-07-05 Tom Tromey <tromey@cygnus.com>
12945
12946 * Make-lang.in (PARSE_DIR): New macro.
12947 (PARSE_RELDIR): Likewise.
12948 (PARSE_C): Likewise.
12949 (PARSE_SCAN_C): Likewise.
12950 ($(PARSE_C)): New target.
12951 ($(PARSE_SCAN_C)): Likewise.
12952 (SET_BISON): New macro.
12953 (BISONFLAGS): Likewise.
12954 (JAVABISONFLAGS): Likewise.
12955
12956 2000-07-02 Bryce McKinlay <bryce@albatross.co.nz>
12957
12958 * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
12959 argument on the first pass for CNI as well as JNI.
12960 (print_method_info): Set up method name on the first pass only.
12961
12962 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12963
12964 * parse.y (parser_qualified_classname): Removed parameter
12965 `is_static'.
12966 (create_interface): Removed first passed parameter to
12967 parser_qualified_classname.
12968 (create_class): Likewise. Don't install alias on static
12969 innerclasses. Fixes gcj/275.
12970
12971 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12972
12973 * parse.y (maybe_generate_pre_expand_clinit): Don't build a
12974 debugable statement with empty_stmt_node. Fixes gcj/272
12975
12976 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12977
12978 * expr.c (build_instanceof): Layout type after it's loaded. Fixes
12979 gcj/271.
12980
12981 2000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12982
12983 * jcf-write.c (push_long_const): Appropriately cast short negative
12984 constant to jword.
12985
12986 2000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12987
12988 * parse.y (verify_constructor_super): Use loop variable
12989 `m_arg_type' initialized with `mdecl_arg_type'.
12990
12991 2000-06-29 Tom Tromey <tromey@cygnus.com>
12992
12993 * parse.y (resolve_field_access): Handle case where `type_found'
12994 is NULL.
12995
12996 2000-06-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
12997
12998 * expr.c (lookup_field): The same field can be found through two
12999 different interface. Don't declare it ambiguous in that case.
13000
13001 2000-06-27 Tom Tromey <tromey@cygnus.com>
13002
13003 * lex.c (java_lineterminator): Don't recognize \r after \n. If \r
13004 follows \r, then unget it at a lower level.
13005
13006 2000-06-26 Tom Tromey <tromey@cygnus.com>
13007
13008 * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
13009 java_complete_tree.
13010
13011 2000-06-25 Tom Tromey <tromey@cygnus.com>
13012
13013 * parse.y (for_statement): Wrap expression in a WFL if it is a
13014 constant. For PR gcj/268.
13015
13016 2000-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13017
13018 * parse.y (do_resolve_class): Minor optimiztion in the package
13019 list search. Removed unnecessary test and return statement.
13020 (valid_ref_assignconv_cast_p): Order of arguments to
13021 enclosing_context_p fixed.
13022
13023 2000-06-24 Tom Tromey <tromey@cygnus.com>
13024
13025 * expr.c (lookup_field): Print error and return error_mark_node if
13026 field reference is ambiguous.
13027
13028 * parse.y (check_abstract_method_definitions): Also check if
13029 `other_method' is abstract.
13030
13031 2000-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
13032
13033 * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
13034 classes.
13035 * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
13036 (struct lang_type): New field `pic'.
13037 (CLASS_PRIVATE): New macro.
13038 * parse.y (check_inner_class_access): New function.
13039 (jdep_resolve_class): Call it.
13040
13041 2000-06-23 Tom Tromey <tromey@cygnus.com>
13042
13043 * parse.y (patch_incomplete_class_ref): Initialize the returned
13044 class. For PR gcj/260.
13045
13046 2000-06-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
13047
13048 * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
13049
13050 2000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13051
13052 * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13053 Java specific checks.
13054 * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
13055 screened by DECL_P.
13056 * java-tree.def (CASE_EXPR): Marked 'e'.
13057 (DEFAULT_EXPR): Likewise.
13058 * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
13059 screened by DECL_P.
13060 * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13061 Java specific checks.
13062 (generate_bytecode_insns): Test try_block for BLOCK before using
13063 BLOCK_EXPR_BODY.
13064 * parse.y (build_wfl_wrap): Added `location' argument. Set
13065 EXPR_WFL_LINECOL accordingly.
13066 (dim_expr:): Wrap constants with WFLs.
13067 (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
13068 (resolve_package): Check for `stmt' not being a BLOCK before
13069 building a debuggable statement with it.
13070 (make_qualified_primary): Added extra parameter to build_wfl_wrap
13071 invocation.
13072 (resolve_field_access): Make sure `decl' is a DECL before treating
13073 it as such.
13074 (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
13075 IDENTIFIER_NODE before treating it as such.
13076 (patch_new_array_init): Make sure `elt' is a TREE_LIST before
13077 treating it as such.
13078 (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
13079 to be applied only on non array types.
13080
13081 2000-06-16 Per Bothner <per@bothner.com>
13082
13083 * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN): Don't
13084 define in terms of DECL_RESULT, as that fails when --enable-checking.
13085
13086 2000-06-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13087
13088 * jcf-write.c (CHECK_PUT): Add static prototype. Make pointer
13089 types the same in comparison.
13090 (CHECK_OP): Add static prototype.
13091
13092 2000-06-13 Jakub Jelinek <jakub@redhat.com>
13093
13094 * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
13095 * parse.y (java_complete_class): Set DECL_USER_ALIGN.
13096 * parse.c: Rebuilt.
13097
13098 2000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13099
13100 * decl.c (create_primitive_vtable): Prototype.
13101
13102 * jcf-write.c (generate_bytecode_insns): Initialize variable
13103 `saved_context'.
13104
13105 * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
13106
13107 2000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
13108
13109 * parse.y (find_applicable_accessible_methods_list): Use a hashtable
13110 to track searched classes, and do not search the same class more than
13111 once. Call find_applicable_accessible_methods_list on immediate
13112 superclass, instead of search_applicable_method_list on all ancestors.
13113 Fix for PR gcj/238.
13114
13115 2000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
13116
13117 * parse.y (register_fields): Permit static fields in inner classes
13118 if they are final. Fix for PR gcj/255.
13119
13120 2000-06-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
13121
13122 * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
13123 * parse.y (find_in_imports): Returned type changed to void,
13124 leading comment fixed.
13125 (register_package): New function.
13126 (qualify_and_find): Likewise.
13127 (package_declaration:): Use `register_package'.
13128 (single_type_import_declaration:): Removed local variable
13129 `node'. Added missing `;' for consistency.
13130 (type_import_on_demand_declaration:): Use `chainon' to link new
13131 entries.
13132 (lookup_field_wrapper): Lookup local variables defined in outer
13133 contexts first.
13134 (java_complete_class): Don't reverse the list of imported on demand.
13135 (do_resolve_class): Reorganized. Removed local variable
13136 `original_name'. Call `qualify_and_find' with the current package
13137 name, invoke `find_in_imports_on_demand' right after. Call
13138 `qualify_and_find' with the packages we've seen so far. Fixed
13139 operations numbering in comments.
13140 (java_expand_class): Don't reverse `package_list'.
13141 (find_most_specific_methods_list): New local variables `abstract'
13142 and `candidates'. Use them to pick the right method.
13143
13144 2000-06-06 Tom Tromey <tromey@ferrule.cygnus.com>
13145
13146 * parse.y (check_modifiers_consistency): Don't subtract out
13147 `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
13148
13149 2000-06-04 Philipp Thomas <pthomas@suse.de>
13150
13151 * Makefile.in (INTLLIBS): New.
13152 (LIBS): Add above.
13153 (DEPLIBS): Ditto.
13154
13155 2000-06-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13156
13157 * class.c (get_dispatch_table): Build the vtable dummy entry list
13158 element with a null purpose. Fixed leading comment.
13159 (build_dtable_decl): Build an accurate dtable type when appropriate
13160 and use it.
13161
13162 2000-06-02 Richard Henderson <rth@cygnus.com>
13163
13164 * lang.c (lang_get_alias_set): New.
13165
13166 2000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
13167
13168 * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
13169 before using it as the accessed field.
13170
13171 2000-05-31 Tom Tromey <tromey@cygnus.com>
13172
13173 * java-tree.h (boolean_array_vtable, byte_array_vtable,
13174 char_array_vtable, short_array_vtable, int_array_vtable,
13175 long_array_vtable, float_array_vtable, double_array_vtable):
13176 Declare.
13177 * expr.c (get_primitive_array_vtable): New function.
13178 (create_primitive_vtable): New function.
13179 (java_lang_expand_expr): Enable code to statically generate
13180 arrays.
13181 * decl.c (init_decl_processing): Create primitive vtables.
13182 (boolean_array_vtable, byte_array_vtable, char_array_vtable,
13183 short_array_vtable, int_array_vtable, long_array_vtable,
13184 float_array_vtable, double_array_vtable): Define.
13185
13186 2000-05-26 Zack Weinberg <zack@wolery.cumb.org>
13187
13188 * java/parse.y (find_applicable_accessible_methods_list):
13189 Don't add an uninitialized value to the list.
13190
13191 2000-05-25 Tom Tromey <tromey@cygnus.com>
13192
13193 * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
13194 when trying to see if field's class should be initialized. Always
13195 initialize field's declaring class, not qualified class.
13196 For PR gcj/162.
13197
13198 * parse.y (array_constructor_check_entry): Pass `wfl_value', not
13199 `wfl_operator', to maybe_build_primttype_type_ref.
13200 Fixes PR gcj/235.
13201
13202 2000-05-23 Bryce McKinlay <bryce@albatross.co.nz>
13203
13204 * parse.y (patch_method_invocation): Don't try to lookup methods
13205 in primitive types.
13206
13207 2000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13208
13209 * parse.y (resolve_field_access): Call the appropriate <clinit>
13210 before accessing the length of a static array. Craft a decl for
13211 the field while its time. Fixes PR gcj/129.
13212
13213 2000-05-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13214
13215 * parse.y (resolve_package): Correctly set `*next' (was off by
13216 one.)
13217 (resolve_qualified_expression_name): Fixed comment.
13218
13219 2000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13220
13221 * jcf-parse.c (jcf_parse_source): Reset current_class and
13222 current_function_decl to NULL before parsing a new file.
13223
13224 2000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13225
13226 * parse.y (block_end:): If the collected block doesn't feature a
13227 statement, insert an empty statement.
13228
13229 2000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13230
13231 * parse.y (maybe_yank_clinit): New function.
13232 (maybe_generate_pre_expand_clinit): Always link <clinit> at the
13233 end of the list of methods belonging to a class.
13234 (java_complete_expand_method): Check whether <clinit> is really
13235 necessary and expand it accordingly.
13236
13237 2000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13238
13239 * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
13240 processed by the method's switch statement.
13241
13242 2000-05-19 Tom Tromey <tromey@cygnus.com>
13243
13244 * java-tree.h: Added init state enum.
13245 * decl.c (emit_init_test_initialization): Initialize class
13246 initialization check variable by looking at class' state.
13247
13248 2000-05-19 Tom Tromey <tromey@cygnus.com>
13249
13250 * java-tree.h (build_instanceof): Declare.
13251 (build_get_class): Declare.
13252 * parse.y (patch_binop): Use build_instanceof.
13253 * expr.c (build_instanceof): New function. If class is final,
13254 don't make a function call.
13255 (expand_java_INSTANCEOF): Use it.
13256 (build_get_class): New function.
13257
13258 2000-05-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13259
13260 * jcf-write.c (generate_classfile): Scan the source_file for
13261 slashes with the right pointer variable.
13262
13263 2000-05-17 Andrew Cagney <cagney@b1.cygnus.com>
13264
13265 * lang.c (lang_decode_option): Update -Wunused flags by calling
13266 set_Wunused.
13267 * decl.c (poplevel): Replace warn_unused with warn_unused_label.
13268
13269 2000-05-09 Zack Weinberg <zack@wolery.cumb.org>
13270
13271 * check_init.c (check_init): Constify local char *.
13272 * class.c (push_class): Constify local char *.
13273 * java_tree.h: Update prototypes.
13274 * jcf-io.c (open_class): Constify filename parameter and
13275 return value.
13276 (find_class): Remove redundant string copy. Cast return from
13277 open_class.
13278 * jcf-parse.c (read_class, parse_class_file, yyparse):
13279 Constify local char *.
13280 * jcf-write.c (generate_bytecode_insns, generate_classfile):
13281 Constify local char *.
13282 * jcf.h (JCF): Constify filename and classname.
13283 (JCF_FINISH): Cast args to FREE to char * when appropriate.
13284 * lang.c (init_parse): Constify parameter and return value.
13285 * lex.c (java_get_line_col): Constify filename parameter.
13286 * parse.h: Constify parser_ctxt.filename. Update prototypes.
13287 * parse.y (java_parser_context_suspend,
13288 issue_warning_error_from_context, safe_layout_class): Constify
13289 local char *.
13290 * parse.c: Regenerate.
13291
13292 2000-05-08 Tom Tromey <tromey@cygnus.com>
13293
13294 * expr.c (build_jni_stub): Cache the result of
13295 _Jv_LookupJNIMethod.
13296
13297 2000-05-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13298
13299 * decl.c (predef_filenames_size): Now 7.
13300 (predef_filenames): New seventh entry.
13301
13302 2000-05-04 Tom Tromey <tromey@cygnus.com>
13303
13304 * boehm.c (mark_reference_fields): Don't mark RawData fields.
13305 Keep track of when we've seen a reference field after a
13306 non-reference field.
13307 (get_boehm_type_descriptor): Handle case where we see
13308 non-reference fields but no trailing reference field.
13309 * decl.c (rawdata_ptr_type_node): Define.
13310 (init_decl_processing): Initialize rawdata_ptr_type_node.
13311 * java-tree.h (rawdata_ptr_type_node): Declare.
13312
13313 2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13314
13315 * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
13316 specifiers in calls to fprintf.
13317
13318 2000-05-03 Andrew Haley <aph@cygnus.com>
13319
13320 * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
13321
13322 * javaop.h (WORD_TO_INT): New function.
13323 (IMMEDIATE_s4): Use WORD_TO_INT.
13324 * jcf.h (JPOOL_INT): Ditto.
13325
13326 * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
13327 separator.
13328
13329 2000-04-19 Tom Tromey <tromey@cygnus.com>
13330
13331 * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
13332 on native function.
13333 * jcf-parse.c (parse_class_file): Call build_jni_stub for native
13334 JNI methods.
13335 * expr.c (build_jni_stub): New function.
13336 * lang-specs.h: -fjni and -femit-class-file are incompatible.
13337 * parse.c: Rebuilt.
13338 * parse.y (java_complete_expand_methods): Expand a native method
13339 and call build_jni_stub if -fjni given.
13340 * lang-options.h: Document -fjni.
13341 * lang.c (flag_jni): New global.
13342 (lang_f_options): Added `jni' entry.
13343 * java-tree.h (soft_lookupjnimethod_node,
13344 soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
13345 Declare.
13346 (flag_jni): Declare.
13347 (build_jni_stub): Declare.
13348 (struct lang_decl): Added `native' flag.
13349 (METHOD_NATIVE): Redefined to use `native' field of lang specific
13350 structure.
13351 * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
13352 soft_jnipopsystemframe_node): New globals.
13353 (init_decl_processing): Set them. _Jv_InitClass only takes one
13354 argument.
13355
13356 * java-tree.def: Put into `C' mode.
13357
13358 2000-04-27 Tom Tromey <tromey@cygnus.com>
13359
13360 Fix for PR gcj/2:
13361 * expr.c (expand_invoke): Generate check to see if object pointer
13362 is null in nonvirtual invocation case.
13363 * java-tree.h (soft_nullpointer_node): Declare.
13364 * decl.c (soft_nullpointer_node): New global.
13365 (init_decl_processing): Initialize soft_nullpointer_node.
13366 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13367 or `private' methods.
13368 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13369
13370 2000-04-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
13371
13372 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
13373 from <clinit>
13374
13375 2000-04-26 Tom Tromey <tromey@cygnus.com>
13376
13377 * zextract.c (find_zip_file_start): New function.
13378 (read_zip_archive): Use it.
13379
13380 2000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13381
13382 * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
13383
13384 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
13385
13386 * class.c (common_enclosing_context_p): New function.
13387 * java-tree.h (common_enclosing_context_p): Added prototype.
13388 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
13389 classes sharing an outer context with the current instance.
13390 * parse.y (build_access_to_thisn): Fixed leading comment.
13391 (verify_constructor_super): New local `supper_inner'. Skip
13392 enclosing context argument in the case of inner class constructors.
13393 (patch_method_invocation): Insert proper context as second
13394 parameter to pure inner class constructor super invocations.
13395
13396 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
13397
13398 * parse.y (end_class_declaration): Reset the interface number
13399 counter.
13400
13401 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
13402
13403 * parse.y (source_start_java_method): Deleted unnecessary code.
13404 (patch_method_invocation): Fixed comment.
13405
13406 2000-04-24 Robert Lipe <robertlipe@usa.net>
13407
13408 * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
13409
13410 2000-04-23 Tom Tromey <tromey@cygnus.com>
13411
13412 * boehm.c (mark_reference_fields): Use int_byte_position.
13413
13414 2000-04-22 Tom Tromey <tromey@cygnus.com>
13415
13416 * boehm.c (mark_reference_fields): Only call byte_position on
13417 non-static fields.
13418
13419 2000-04-22 Tom Tromey <tromey@cygnus.com>
13420
13421 * boehm.c (mark_reference_fields): Added `last_view_index'
13422 argument. Use DECL_FIELD_OFFSET to determine field's offset.
13423
13424 2000-04-20 Mo DeJong <mdejong@cygnus.com>
13425
13426 * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
13427 * parse.y (check_class_interface_creation): Fixed comments. Select
13428 permitted modifiers for (inner) interfaces. Changed error message
13429 to report rejected modifiers used with local classes.
13430
13431 2000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13432
13433 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
13434 of directly inherited type considered in scope.
13435 * parse.y (do_resolve_class): Search inherited classes for inner
13436 classes.
13437
13438 2000-04-20 Tom Tromey <tromey@cygnus.com>
13439
13440 * parse.y (not_accessible_p): Use member's class, not current
13441 class, when doing inheritance check for protected reference.
13442 Fixes PR gcj/124.
13443
13444 2000-04-20 Jason Schroeder <shrode@subnature.com>
13445
13446 * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
13447
13448 2000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13449
13450 * parse.y (lookup_field_wrapper): Search for final local aliases.
13451 (resolve_expression_name): Let lookup_field_wrapper search for
13452 final local aliases. Force the value of `name' if one is found.
13453 (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
13454 an expression name. Fixed comments.
13455
13456 2000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13457
13458 * parse.y (yyerror): `msg' can be null, don't use it in that case.
13459
13460 2000-04-19 Tom Tromey <tromey@cygnus.com>
13461
13462 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
13463
13464 2000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
13465
13466 * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
13467
13468 2000-04-18 Tom Tromey <tromey@cygnus.com>
13469
13470 PR gcj/211:
13471 * gjavah.c (utf8_cmp): Changed return value.
13472 (cxx_keyword_subst): Handle all C++ keywords. Allocate new return
13473 result.
13474 (cxx_keywords): New global.
13475 (get_field_name): Handle new result of cxx_keyword_subst.
13476 (print_method_info): Likewise.
13477
13478 2000-04-17 Bryce McKinlay <bryce@albatross.co.nz>
13479
13480 * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
13481 with a newline, for CNI.
13482 (print_stub_or_jni): Print a space or newline before method name for
13483 CNI as well as JNI.
13484 (print_cxx_classname): Don't write leading "::" in CNI stub method.
13485 (process_file): Include gcj/cni.h if generating CNI stubs.
13486
13487 2000-04-16 Tom Tromey <tromey@cygnus.com>
13488
13489 * gjavah.c (decompile_method): Use print_field_name.
13490 Fixes PR gcj/205.
13491
13492 2000-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
13493
13494 * parse.y (java_expand_classes): Reverse the package list once.
13495 (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
13496 reduction.
13497 (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
13498 the `==' and `!=' operators.
13499
13500 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13501
13502 * jcf-write.c (generate_bytecode_insns): At invocation time,
13503 always relate an interface method to the type of its selector.
13504
13505 2000-04-05 Tom Tromey <tromey@cygnus.com>
13506
13507 Fix for PR gcj/2:
13508 * expr.c (expand_invoke): Generate check to see if object pointer
13509 is null in nonvirtual invocation case.
13510 * java-tree.h (soft_nullpointer_node): Declare.
13511 * decl.c (soft_nullpointer_node): New global.
13512 (init_decl_processing): Initialize soft_nullpointer_node.
13513 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13514 or `private' methods.
13515 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13516
13517 2000-04-05 Tom Tromey <tromey@cygnus.com>
13518
13519 Fix for PR gcj/140:
13520 * parse.y (check_final_assignment): Recognize assignments to the
13521 `length' field of an array when generating class files.
13522
13523 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13524
13525 * class.c (decl_hash): Prototype removed.
13526 (decl_compare): Likewise.
13527
13528 2000-04-05 Tom Tromey <tromey@cygnus.com>
13529
13530 * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
13531 * parse.y (check_modifiers_consistency): Check for final/volatile
13532 clash. Fixes PR gcj/164.
13533
13534 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13535
13536 * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
13537 made global.
13538 (java_hash_compare_tree_node): Renamed from `decl_compare, made
13539 global.
13540 (add_method_1): Use `java_hash_hash_tree_node' and
13541 `java_hash_compare_tree_node'.
13542 * java-tree.h: (java_hash_hash_tree_node): Prototyped.
13543 (java_hash_compare_tree_node): Likewise.
13544 * parse.y (find_applicable_accessible_methods_list): Create,
13545 delete and use a hash table to remember already searched interfaces.
13546
13547 2000-04-03 Matt Welsh <mdw@cs.berkeley.edu>
13548
13549 * jcf-depend.c (add_entry): Fixed bug where list was always replaced
13550 with latest entry.
13551
13552 2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13553
13554 * boehm.c (mark_reference_fields, set_bit): Prototype.
13555 (set_bit): Un-ANSI-fy definition.
13556
13557 * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
13558 Prototype.
13559
13560 * decl.c (emit_init_test_initialization): Likewise.
13561
13562 * gjavah.c (jni_print_char): Likewise.
13563
13564 * parse.y (create_new_parser_context): Likewise.
13565
13566 2000-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
13567
13568 * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
13569 patch missing hunk. Fixed indentation.
13570
13571 2000-03-30 Tom Tromey <tromey@cygnus.com>
13572
13573 * gjavah.c (D_NAN_MASK): Only define as word-reversed when
13574 HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
13575
13576 2000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
13577
13578 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13579 when negative *before* using it as an array index.
13580 * ChangeLog: Fixed typo.
13581
13582 2000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
13583
13584 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13585 to 0 when it reaches -1.
13586
13587 2000-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13588
13589 * jcf-parse.c (get_constant): Properly cast `num' during the
13590 invocation of `add_double'.
13591 * jcf-write.c (push_long_const): Properly cast `lo' before
13592 comparing it to short bounds.
13593 * parse-scan.y (interface_declaration:): Rule re-arrange so that
13594 `interface_body:' is reduced after the current interface is
13595 pushed.
13596
13597 2000-03-26 Tom Tromey <tromey@cygnus.com>
13598
13599 * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
13600 Java-specific `-f' option.
13601
13602 2000-03-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13603
13604 * decl.c (init_decl_processing): Only call initialize_sizetypes once.
13605 Adjust order of making types.
13606 Make bitsize_*_node values.
13607
13608 2000-03-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13609
13610 * class.c (make_field_value): Use byte_position.
13611 * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
13612 (java_array_data_offset): Likewise.
13613 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
13614 bzero call.
13615
13616 2000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
13617
13618 * parse.y (check_abstract_method_definitions): New local
13619 `end_type_reached'. Make sure we also consider `end_type'.
13620 (java_check_abstract_method_definitions): Make sure we eventually
13621 consider `java.lang.Object'.
13622 (maybe_use_access_method): Don't use access method if not in the
13623 context of a pure inner class or if the method's context is right.
13624 (find_applicable_accessible_methods_list): New static flag
13625 `object_done'. Don't search abstract classes as interfaces. Fixed
13626 indentation. Fixed the `java.lang.Object' only search. Search
13627 class interface(s) first, then fully search enclosing contexts.
13628 (find_most_specific_methods_list): Pick the closest candidate when
13629 they're all abstract.
13630
13631 2000-03-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13632
13633 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13634 properly initialize `finished_label'. Don't emit gotos for empty
13635 try statements.
13636
13637 2000-03-19 Martin v. Löwis <loewis@informatik.hu-berlin.de>
13638
13639 * except.c (emit_handlers): Clear catch_clauses_last.
13640
13641 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13642
13643 * parse.y (check_method_types_complete): New function.
13644 (create_class): Reset anonymous class counter only when seeing an
13645 non inner classe.
13646 (java_complete_class): JDEP_METHOD: Don't recompute signature
13647 if incomplete.
13648
13649 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13650
13651 * class.c (build_static_ref): Fixed indentation in comment.
13652 * java-tree.def (TRY_EXPR): Fixed typo in name.
13653 (CLASS_LITERAL): Likewise.
13654 * java-tree.h: (TYPE_DOT_CLASS): New macro.
13655 (struct lang_type): New field `dot_class'.
13656 * jcf-write.c (generate_bytecode_insns): Fixed error message.
13657 (generate_classfile): Method `class$' is synthetic.
13658 * parse.y (build_do_class_method): New function.
13659 (build_dot_class_method_invocation): Likewise.
13660 (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
13661 (resolve_qualified_expression_name): Handle CLASS_LITERAL.
13662 (qualify_ambiguous_name): Likewise.
13663 (patch_incomplete_class_ref): Invoke synthetic method if necessary.
13664 (build_try_statement): Fixed leading comment.
13665
13666 2000-03-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13667
13668 * class.c (make_field_value): Properly handle sizes.
13669 (get_dispatch_vector): Use tree_low_cst and host_integerp.
13670 (layout_class_method): Count using trees.
13671 * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
13672 * expr.c (java_array_data_offset): Use int_bit_position.
13673 (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
13674 (build_invokevirtual): Use tree_low_cst and do computations with trees.
13675
13676 2000-03-16 Tom Tromey <tromey@cygnus.com>
13677
13678 * lang.c (flag_hash_synchronization): New global.
13679 (lang_f_options): Added `hash-synchronization'.
13680 * lang-options.h: Mention -fhash-synchronization.
13681 * java-tree.h (flag_hash_synchronization): Declare.
13682 * expr.c (java_lang_expand_expr): Only push `sync_info' value when
13683 hash table synchronization is disabled.
13684 * decl.c (init_decl_processing): Only push `sync_info' value when
13685 hash table synchronization is disabled.
13686 * class.c (make_class_data): Only push `sync_info' field when hash
13687 table synchronization is disabled. Removed dead code.
13688
13689 2000-03-16 Tom Tromey <tromey@cygnus.com>
13690
13691 * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
13692
13693 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13694
13695 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
13696 classes.
13697 * parse.y (patch_method_invocation): Handle anonymous classes
13698 creation in static context.
13699
13700 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13701
13702 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
13703 * parse.y (resolve_qualified_expression_name): Use it.
13704 (patch_method_invocation): Likewise.
13705
13706 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13707
13708 * parse.y (register_incomplete_type): JDEP_ENCLOSING set
13709 depending on the type of dependency which dictates what the
13710 current class is.
13711 (unresolved_type_p): Resolved types limited to the current class.
13712
13713 2000-03-15 Tom Tromey <tromey@cygnus.com>
13714
13715 * decl.c (init_decl_processing): Set type of `sync_info' to be
13716 pointer to Object.
13717
13718 * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
13719 Correctly compute bit number for current slot. Zero `high' and
13720 `low' in DS_LENGTH case. Don't skip inherited fields. Use
13721 mark_reference_fields.
13722 (mark_reference_fields): New function.
13723
13724 2000-03-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
13725
13726 * parse.y (register_incomplete_type): Fixed initialization of
13727 JDEP_ENCLOSING.
13728
13729 2000-02-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
13730
13731 * parse-scan.y (inner_qualifier, inner_qualifier_length): New
13732 static globals.
13733 (push_class_context, pop_class_context): New function.
13734 (class_body:): Call pop_class_context.
13735 (interface_body:): Likewise.
13736 (INNER_QUALIFIER): New macro.
13737 (report_class_declaration): Changed output format and use
13738 INNER_QUALIFIER. Call push_class_context.
13739
13740 2000-02-14 Andrew Haley <aph@cygnus.com>
13741
13742 * check-init.c (check_init): Add new cases for unary and binary
13743 tree nodes.
13744
13745 2000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13746
13747 * parse.y (resolve_package): Set `next' once a type name has been
13748 progressively discovered.
13749 (resolve_qualified_expression_name): Propagate resolution only if
13750 there are remaining qualifiers. Take into account `q' might have
13751 been cleared after re-qualification.
13752 * parse.y (patch_method_invocation): New local `resolved'.
13753 Section dealing with qualified expression rewritten to use
13754 resolve_field_access.
13755
13756 2000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13757
13758 * parse.h (PUSH_CPC): Fixed indentation.
13759 (DEBUG_CPC): New macro.
13760 (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
13761 SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
13762 * parse.y (class_body_declaration:): Use
13763 SET_CPC_INSTANCE_INITIALIZER_STMT.
13764 (method_declaration:): Check for null current_function_decl.
13765 (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
13766 (java_parser_context_pop_initialized_field): Better handling of
13767 empty lists.
13768 (maybe_make_nested_class_name): Mark nested class name as
13769 qualified when necessary.
13770 (end_class_declaration): Don't call java_parse_context_resume when
13771 one or more error occurred.
13772 (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
13773 (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
13774 SET_CPC_INITIALIZER_STMT.
13775 (method_header): Check for inner classes declaring static methods.
13776 (resolve_qualified_expression_name): Handle situation where `this'
13777 is implied.
13778
13779 2000-03-13 Hans Boehm <boehm@acm.org>
13780
13781 * typeck.c (build_prim_array_type): Correctly set the high word too.
13782
13783 2000-03-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
13784
13785 * parse.y (java_complete_expand_methods): Leave <clinit> out of
13786 ordinary methods.
13787 (maybe_generate_pre_expand_clinit): Put <clinit> at the end of the
13788 list of methods for interfaces.
13789
13790 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13791
13792 * parse.y (qualify_ambiguous_name): Properly handle expressions
13793 using `null'.
13794
13795 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13796
13797 * parse.y (check_final_assignment): Extended to process
13798 COMPOUND_EXPR.
13799 (patch_assignment): Have check_final_assignment called only once.
13800
13801 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13802
13803 * java-tree.h (IS_INIT_CHECKED): New flag.
13804 * check-init.c (check_init): Test and set IS_INIT_CHECKED.
13805 * parse.y (patch_string): Call force_evaluation_order on the
13806 completed string concatenation tree.
13807 * expr.c (force_evaluation_order): Call force_evaluation_order on
13808 function's arguments too.
13809
13810 2000-03-06 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13811
13812 * decl.c (emit_init_test_initialization): Mark KEY as unused.
13813 * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13814 (build_anewarray): Likewise.
13815 * parse.y (patch_newarray): Likewise.
13816 * parse.c: Regenerated.
13817
13818 2000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
13819
13820 * decl.c (init_decl_processing): Added new class fields `depth',
13821 `ancestors', and `idt' to class_type_node. Use
13822 _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
13823 * class.c (make_class_data): Push initial values for new fields.
13824 * java-tree.h: Updated prototype for `build_invokeinterface'.
13825 * expr.c (build_invokeinterface): Changed parameters to accept
13826 `method' tree. Calculate index of `method' in its declaring
13827 interface. Build call to _Jv_LookupInterfaceMethodIdx.
13828 (expand_invoke): Call `build_invokeinterface' with new parameters.
13829 * parse.y (patch_invoke): Call `build_invokeinterface' with new
13830 parameters.
13831
13832 2000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
13833
13834 * typeck.c (lookup_do): Search superinterfaces first
13835 when looking up an interface method. From Godmar Back
13836 <gback@cs.utah.edu>
13837
13838 2000-03-06 Tom Tromey <tromey@cygnus.com>
13839
13840 * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
13841
13842 2000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13843
13844 * java-tree.h (lookup_argument_method2): Declared.
13845 (safe_layout_class): Prototype moved from parse.h.
13846 * parse.h (safe_layout_class): Prototype moved to java-tree.h.
13847 * parse.y (java_check_regular_methods): Local `super_class' gone.
13848 Call lookup_argument_method2 instead of lookup_argument_method.
13849 Perform modifier match for methods found declared in implemented
13850 interfaces. Fixed indentation problem. Overriding/hiding error
13851 report to take place only for methods found in classes.
13852 * typeck.c (lookup_argument_method): Changed leading
13853 comment. Re-written by calling lookup_do.
13854 (lookup_argument_method2): New function.
13855 (lookup_java_method): Re-written by calling lookup_do.
13856 (lookup_do): New function.
13857
13858 2000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13859
13860 * check-init.c (check_init): Removed dead code. Handle (blank)
13861 final variables.
13862 * parse.y (declare_local_variables): New local `final_p', set it
13863 and use it to initialize LOCAL_FINAL.
13864 (check_final_assignment): Only check FIELD_DECLs.
13865
13866 2000-02-17 Tom Tromey <tromey@cygnus.com>
13867
13868 * Makefile.in (JAVA_OBJS): Added boehm.o.
13869 (boehm.o): New target.
13870 * Make-lang.in (JAVA_SRCS): Added boehm.c.
13871 * java-tree.h (flag_use_boehm_gc): Declare.
13872 (get_boehm_type_descriptor): Declare.
13873 * lang.c (lang_f_options): Added `use-boehm-gc'.
13874 (flag_use_boehm_gc): New global.
13875 * lang-options.h: Added -fuse-boehm-gc.
13876 * boehm.c: New file.
13877 * class.c (get_dispatch_table): If class uses a Boehm type
13878 descriptor, put it in the vtable.
13879 (make_class_data): Removed dead code.
13880
13881 2000-03-03 Per Bothner <per@bothner.com>
13882
13883 * decl.c (init_decl_processing): Initialize sizetype properly.
13884
13885 2000-03-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13886
13887 * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
13888 (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
13889 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13890 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
13891 (jcf_parse): New local `current'. Load innerclasses seen in outer
13892 context being processed.
13893 * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13894 * jcf-write.c (append_innerclasses_attribute): New function.
13895 (append_innerclasses_attribute_entry): Likewise.
13896 (get_access_flags): Handle static classes. Set anonymous and local
13897 classes to be private.
13898 (generate_classfile): Attribute count adjusted. Call
13899 append_innerclasses_attribute.
13900 * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
13901 PURE_INNER_CLASS_TYPE_P.
13902 * parse.y (parser_qualified_classname): New parameter `is_static',
13903 produce non qualified name accordingly.
13904 (block_statement:): Set LOCAL_CLASS_P when declaring local class.
13905 (create_interface): Added argument to parser_qualified_classname.
13906 (create_class): Added argument to parser_qualified_classname. Setup
13907 alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
13908 (add_inner_class_fields): Fixed indentation.
13909 (method_declarator): Use PURE_INNER_CLASS_DECP_P.
13910 (method_declarator): Fixed typo in comment.
13911 (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
13912 (build_current_thisn): Likewise.
13913 (patch_method_invocation): Likewise.
13914
13915 2000-03-01 Martin von Löwis <loewis@informatik.hu-berlin.de>
13916
13917 * decl.c (current_function_decl): Move to toplev.c.
13918
13919 2000-02-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13920
13921 * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
13922 (DECL_BIT_INDEX): Use underlying representation.
13923 * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
13924
13925 2000-02-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13926
13927 * expr.c (build_java_ret): Pass proper type to size_binop.
13928
13929 2000-02-25 Anthony Green <green@cygnus.com>
13930
13931 * expr.c (build_class_init): Mark the decl to be ignored by
13932 check_init.
13933 * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
13934 * check-init.c: Move DECL_BIT_INDEX to java-tree.h
13935 * class.c (init_test_hash_newfunc): New function.
13936 (decl_hash): New function.
13937 (decl_compare): New function.
13938 * decl.c (emit_init_test_initialization): New function.
13939 (complete_start_java_method): Traverse the init test hashtable,
13940 calling emit_init_test_initialization.
13941 (always_initialize_class_p): Define.
13942 * expr.c (build_class_init): Use initialization tests when
13943 emitting class initialization code.
13944 (always_initialize_class_p): Declare.
13945 * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
13946 1.
13947 * java-tree.h: Include hash.h.
13948 (DECL_FUNCTION_INIT_TEST_TABLE): Define.
13949 (struct lang_decl): Add init_test_table field.
13950 (init_test_hash_entry): Define.
13951
13952 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13953
13954 * gjavah.c (main): Avoid using `argi' to report unimplemented
13955 options.
13956
13957 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13958
13959 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13960 initialize locals to avoid warnings. Local `exception_type' moved
13961 into if statement.
13962
13963 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13964
13965 * parse.y (resolve_expression_name): Use `orig' as a second
13966 argument to resolve_field_access.
13967 (resolve_field_access): Removed unnecessary code when dealing with
13968 static fields.
13969
13970 2000-02-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
13971
13972 * class.c (push_super_field): Don't push the field twice.
13973 * jcf-parse.c (parse_source_file): Call java_reorder_fields.
13974 * parse.h (java_reorder_fields): Prototyped.
13975 * parse.y (java_reorder_fields): New function.
13976 (java_layout_class): Simplified not to worry about re-ordering.
13977
13978 2000-02-23 Tom Tromey <tromey@cygnus.com>
13979
13980 * gjavah.c (print_name): In JNI case, correctly quote string.
13981 (print_method_info): Don't handle overrides in JNI mode.
13982
13983 2000-02-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
13984
13985 * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
13986 value type set to `boolean_type_node'.
13987
13988 2000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
13989
13990 * jcf-dump.c (main): Test for correct condition after
13991 output file creation.
13992
13993 2000-02-19 Anthony Green <green@cygnus.com>
13994
13995 * jcf-depend.c (add_entry): Fix test for first list entry.
13996
13997 2000-02-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13998
13999 * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
14000 * constants.c (build_constants_constructor): Likewise.
14001
14002 2000-02-19 Anthony Green <green@cygnus.com>
14003
14004 * jcf-depend.c (add_entry): Add entries to the end of the list.
14005
14006 1999-11-03 Pekka Nikander <pekka.nikander@hut.fi>
14007
14008 * decl.c (INT_TYPE_SIZE): Define if necessary.
14009 (expand_java_return): Handle the case of a native integer smaller
14010 than a JVM integer.
14011
14012 2000-02-18 Martin von Löwis <loewis@informatik.hu-berlin.de>
14013
14014 * gjavah.c (help): Use GCCBUGURL.
14015 * jv-scan.c (help): Likewise.
14016 * jcf-dump.c (help): Likewise.
14017
14018 2000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14019
14020 * jcf-write.c (generate_bytecode_insns): Don't generate empty
14021 `finally' clauses.
14022
14023 2000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14024
14025 * jcf-parse.c (load_class): Call `fatal' if no file containing
14026 the target class are found.
14027
14028 2000-02-16 Zack Weinberg <zack@wolery.cumb.org>
14029
14030 * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
14031 lex.c, lex.h, and PARSE_H to...
14032 (parse.o, parse-scan.o): ...here, respectively.
14033
14034 * lex.c: Split out code that may trigger SIGFPE from yylex()
14035 to its own function.
14036 * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
14037
14038 2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14039
14040 * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
14041
14042 2000-02-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
14043
14044 * parse.y (outer_field_access_p): Stop in time when outer contexts
14045 are exhausted.
14046 (resolve_qualified_expression_name): Properly qualify *everything*
14047 after a package.type to be resoled as expression names.
14048 (find_applicable_accessible_methods_list): Save/restore `class' to
14049 isolate it from a possible outer context search.
14050
14051 2000-02-15 Tom Tromey <tromey@cygnus.com>
14052
14053 * gjavah.c (jni_print_char): New function.
14054 (print_full_cxx_name): Use it.
14055 (decode_signature_piece): Likewise.
14056 (print_cxx_classname): Likewise.
14057
14058 2000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14059
14060 * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
14061 version.o.
14062 (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
14063
14064 * gjavah.c: Include version.h.
14065
14066 * jcf-dump.c: Likewise.
14067
14068 * jv-scan.c: Likewise.
14069
14070 2000-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
14071
14072 * parse.y (outer_field_access_fix): First parameter now a tree
14073 node. Check for assignment to final. First argument to
14074 build_outer_field_access_fix modified to accommodate prototype.
14075 (build_outer_field_access): Don't check for assignment to final
14076 here.
14077 (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
14078 possibly returned by outer_field_access_fix. Changed
14079 outer_field_access_fix's first argument.
14080 (check_final_assignment): $finit$'s context is OK.
14081 (patch_unaryop): Use node instead of its line/column value when
14082 calling outer_field_access_fix.
14083
14084 2000-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
14085
14086 * parse.y (interface_declaration:): No longer tagged
14087 <node>. Re-installed default action.
14088 (class_member_declaration:): Handle inner interfaces.
14089 (interface_member_declaration): Handle inner interfaces and
14090 classes.
14091 (create_interface): Push error if one seen. Suspend parsing
14092 context when processing an inner interface.
14093 (register_fields): Inner class static field limitations not to
14094 apply to inner interfaces.
14095
14096 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14097
14098 * jcf-parse.c (load_class): Update `java_error_count' when a
14099 class' file can't be found.
14100 (parse.y): Avoid (byte)code generation when errors seen.
14101
14102 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14103
14104 * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
14105 decodes a valid node.
14106 (patch_binop): Handle TRUNC_DIV_EXPR.
14107
14108 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14109
14110 * parse.y (resolve_package): New local `acc'. Try to progressively
14111 build and guess a package and type name.
14112
14113 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14114
14115 * parse.y (find_applicable_accessible_methods_list): Load and
14116 layout the search class if necessary.
14117 (java_complete_tree): Keep to original type of the folded initial
14118 value.
14119
14120 2000-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
14121
14122 * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
14123 Generate error message if circularity is detected. New static
14124 local `list'.
14125 * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro. *
14126 * jcf-write.c (generate_bytecode_insns): Very simply handle
14127 SAVE_EXPR.
14128 * parse.y (java_check_circular_reference): Use
14129 `cyclic_inheritance_report' during report, if necessary.
14130 (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
14131 walking NEW_ARRAY_INIT twice.
14132
14133 2000-02-09 Tom Tromey <tromey@cygnus.com>
14134
14135 * parse.y (check_class_interface_creation): Allow inner classes to
14136 be `private' or `protected', check modifiers' consistency. Prevent
14137 block local classes from bearing any modifiers.
14138
14139 2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14140
14141 * except.c (check_start_handlers): Re-add prototype lost in last
14142 patch.
14143 (maybe_start_try): Remove excess argument to `check_start_handlers'.
14144
14145 2000-02-09 Andrew Haley <aph@cygnus.com>
14146
14147 * decl.c (clear_binding_level): Remove excess initializer.
14148 (maybe_poplevels): Remove unused variable.
14149 (force_poplevels): Ditto.
14150 (struct binding_level): Add comment.
14151
14152 2000-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
14153
14154 * jcf-write.c (generate_classfile): Don't consider
14155 pre-initialization with reference value (use <clinit> instead.)
14156 * parse.y (java_fix_constructors): No generated constructor for
14157 interfaces.
14158 (build_outer_field_access): Removed debug message.
14159 (outer_field_expanded_access_p): Adapted to bytecode generation.
14160 (build_outer_field_access_method): Use fix_method_argument_names.
14161 (build_outer_method_access_method): Fixed indentation. Added
14162 comment. Handle access method generation for static and also void
14163 methods.
14164 (build_access_to_thisn): Inserted debug message.
14165 (maybe_build_thisn_access_method): Use fix_method_argument_names.
14166 (resolve_qualified_expression_name): Fixed comment.
14167 (not_accessible_p): Adapted to bytecode generation. Added comment.
14168 (patch_method_invocation): Added comment.
14169 (maybe_use_access_method): Fixed leading comment. Handle static
14170 methods.
14171 (java_complete_lhs): Don't shortcut handling of initialized upon
14172 declaration String type static fields when generating bytecode.
14173 (patch_unaryop): Handle outer field access when generating
14174 bytecode.
14175
14176 2000-02-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
14177
14178 * java-tree.h (FIELD_THISN): New macro.
14179 * jcf-write.c (append_synthetic_attribute): New function.
14180 (generate_classfile): Set "Synthetic" attribute on this$<n>,
14181 val$<name> fields, access$<n> and $finit$ methods. Fixed indentation.
14182 * parse.y (add_inner_class_fields): Set FIELD_THISN for created
14183 this$<n> fields.
14184 (build_outer_field_access): Turned on access functions usage and
14185 generation when compiling to bytecode.
14186 (maybe_use_access_method): Likewise.
14187
14188 2000-01-25 Andrew Haley <aph@cygnus.com>
14189
14190 * java-except.h (struct eh_range): Add `expanded' field.
14191 (maybe_start_try): Add end_pc arg.
14192 (maybe_end_try): Ditto.
14193 * java-tree.h (force_poplevels): new function.
14194 * expr.c (expand_byte_code): Don't call maybe_start_try or
14195 maybe_end_try.
14196 * except.c (add_handler): Reset expanded.
14197 (expand_start_java_handler): Set expanded.
14198 (check_start_handlers): Don't expand a start handler that's
14199 already been expanded.
14200 (maybe_start_try): Add end_pc arg. Only expand a handler which
14201 ends after end_pc.
14202 (expand_end_java_handler): call force_poplevels.
14203 (force_poplevels): new function.
14204 * decl.c (binding_level): Add start_pc of binding level.
14205 (maybe_pushlevels): Call maybe_start_try when pushing binding
14206 levels.
14207 (maybe_poplevels): Call maybe_end_try when popping binding levels.
14208 (LARGEST_PC): Define.
14209 (clear_binding_level): Use LARGEST_PC.
14210
14211 * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
14212 * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
14213 (binding_depth, is_class_level, current_pc): new variables.
14214 (struct binding_level): ditto.
14215 (indent): new function.
14216 (push_jvm_slot): add debugging info.
14217 (maybe_pushlevels): ditto.
14218 (maybe_poplevels): ditto.
14219 (pushlevel): ditto.
14220 (poplevel): ditto.
14221 (start_java_method): ditto.
14222 (give_name_to_locals): comment only.
14223 * except.c (binding_depth, is_class_level, current_pc):
14224 new variables.
14225 (expand_start_java_handler): add debugging info.
14226 (expand_end_java_handler): ditto.
14227
14228 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14229
14230 * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
14231 (print_name_for_stub_or_jni, process_file): Constify a char*.
14232
14233 2000-02-03 Tom Tromey <tromey@cygnus.com>
14234
14235 * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
14236
14237 2000-01-31 Scott Bambrough <scottb@netwinder.org>
14238
14239 * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
14240 assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
14241 defined to be 1.
14242
14243 2000-02-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
14244
14245 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
14246 * java-tree.h (TYPE_II_STMT_LIST): New macro.
14247 (struct lang_type): New field `ii_block'.
14248 * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
14249 CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
14250 * parse.h (struct parser_ctxt): New field `instance_initializers'.
14251 (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
14252 CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
14253 CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
14254 macros.
14255 * parse.y (add_instance_initializer): New function.
14256 (in_instance_initializer): New static global.
14257 (class_body_declaration:): Link instance initializer block.
14258 (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
14259 (array_creation_expression:): Remove unused local.
14260 (java_parser_context_push_initialized_field): Fixed leading
14261 comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
14262 CPC_INSTANCE_INITIALIZER_LIST.
14263 (java_parser_context_pop_initialized_field): Likewise.
14264 (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
14265 (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
14266 CPC_INITIALIZER_STMT.
14267 (fix_constructors): New local `class_type'. Use it. Call
14268 add_instance_initializer.
14269 (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
14270 (patch_return): Forbid return in instance initializers.
14271 (patch_throw_statement): Enforce exception handling in the context
14272 of instance initializers.
14273
14274 2000-02-03 Tom Tromey <tromey@cygnus.com>
14275
14276 * Make-lang.in (java.mostlyclean): Remove executables in
14277 `mostlyclean'.
14278
14279 2000-01-31 Scott Bambrough <scottb@netwinder.org>
14280
14281 * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
14282 HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
14283 (java_float_finite): Convert to use union Word from javaop.h.
14284 (java_double_finite): Convert to use union DWord from javaop.h.
14285
14286 2000-02-02 Tom Tromey <tromey@cygnus.com>
14287
14288 * gjavah.c (options): Added `jni' entry.
14289 (help): Document -jni.
14290 (flag_jni): New global.
14291 (process_file): Handle JNI output. Don't print text from
14292 -prepend, -add, etc, when generating stubs. Only remove `.class'
14293 suffix if it actually exists.
14294 (main): Create a `.c' file when run with `--jni --stubs'. Create
14295 correct output file name with `--jni'.
14296 (print_include): Mangle header name differently in JNI case.
14297 (HANDLE_METHOD): In JNI mode, call print_method_info to generate
14298 method list.
14299 (print_method_info): Handle JNI case. Put signature info into
14300 method name. Handle case when STREAM is NULL.
14301 (print_name_for_stub_or_jni): New function.
14302 (print_stub_or_jni): Renamed from `print_stub'. Handle JNI.
14303 (print_cxx_classname): Handle JNI.
14304 (print_full_cxx_name): Likewise.
14305 (decode_signature_piece): Likewise.
14306 (overloaded_jni_method_exists_p): New function.
14307 (struct method_name): Added `signature' and `sig_length' fields.
14308 (HANDLE_END_FIELD): Do nothing in JNI mode.
14309
14310 2000-02-02 Tom Tromey <tromey@cygnus.com>
14311
14312 * jv-scan.c: Include version.c, <getopt.h>.
14313 (LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
14314 (options): New array.
14315 (usage): New function.
14316 (version): New function.
14317 (main): Use getopt_long to parse command line.
14318 * jcf-dump.c: Include version.c, <getopt.h>.
14319 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
14320 OPT_JAVAP): New macros.
14321 (options): New array.
14322 (usage): Return `void'. Changed message.
14323 (help): New function.
14324 (version): New function.
14325 (main): Use getopt_long_only to parse command line.
14326 * gjavah.c: Include <getopt.h>.
14327 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
14328 OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
14329 OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
14330 (options): New array.
14331 (java_no_argument): Removed.
14332 (help): Updated with missing options.
14333 (main): Use getopt_long_only to parse command line.
14334 (usage): Changed message.
14335
14336 2000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14337
14338 * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
14339 * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
14340 ANONYMOUS_ARRAY_INITIALIZER): New access macros.
14341 * parse.y (array_creation_expression:): Handle anonymous arrays.
14342 (build_array_from_name): Don't set `ret_name' if null.
14343 (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
14344 (qualify_ambiguous_name): Likewise.
14345 (java_complete_expand_class): Likewise.
14346
14347 2000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14348
14349 * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
14350 * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
14351 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
14352 (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
14353 (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
14354 AIPL_FUNCTION_COMPLETED_INVOCATION.
14355 (AIPL_FUNCTION_CTOR_INVOCATION): Replaces
14356 AIPL_FUNCTION_INVOCATION_READY.
14357 (AIPL_FUNCTION_DECLARATION): New enum entry.
14358 * parse.y (reorder_static_initialized): New function.
14359 (java_parser_context_pop_initialized_field): Use it.
14360 (add_inner_class_fields): Use
14361 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
14362 augmented. Install marker after last alias initializer, if any.
14363 (generate_finit): Fixed typo. Don't try to retain only the used
14364 fields.
14365 (method_header): Compute and set DECL_FUNCTION_NAP.
14366 (method_declarator): Fixed comment. Insert alias initializer in
14367 parameter list.
14368 (build_alias_initializer_parameter_list): Fixed leading
14369 comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
14370 replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
14371 (java_complete_expand_class): Code to retain only used aliases
14372 removed.
14373 (java_complete_expand_methods): New local `first_decl'. Generate
14374 $finit$ first, then expand the constructors, regular methods and
14375 <clinit>.
14376 (java_complete_expand_method): Don't report error on missing
14377 return statement if previously detected bogus.
14378 (fix_constructors): Don't patch constructor parameters list.
14379 (patch_method_invocation): Use new AIPL enum values. Reverse
14380 alias initializer list for anonymous classes.
14381
14382 2000-01-30 Anthony Green <green@redhat.com>
14383
14384 * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
14385 determine how many stack slots to pop.
14386
14387 2000-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
14388
14389 * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
14390 error handling/recovery.
14391 * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
14392
14393 2000-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
14394
14395 * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
14396 FIELD_LOCAL_ALIAS_USED): New macros.
14397 (DECL_FUNCTION_NAP): New macro.
14398 (struct lang_decl): New field `nap'.
14399 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
14400 (struct lang_type): New fields `finit_stmt_list' and
14401 `clinit_stmt_list'.
14402 (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
14403 * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
14404 (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
14405 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
14406 (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
14407 AIPL_FUNCTION_INVOCATION_READY): New enum fields.
14408 (BUILD_THROW): Macro line separator re-indented.
14409 * parse.y (end_class_declaration): New function.
14410 (maybe_generate_pre_expand_clinit): New name for
14411 java_pre_expand_clinit. Create <clinit> off TYPE_CLINIT_STMT_LIST,
14412 pre-expand static fields.
14413 (maybe_generate_clinit): Function deleted.
14414 (check_for_static_method_reference): Prototype's parameter list
14415 indented.
14416 (generate_finit): New name for maybe_generate_finit. Changed
14417 leading comment. Function rewritten to use
14418 TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
14419 (build_alias_initializer_parameter_list): New function.
14420 (java_parser_context_pop_initialized_field): Likewise.
14421 (add_inner_class_fields): Likewise.
14422 (type_declaration:): Call end_class_declaration.
14423 (class_member_declaration:): Likewise.
14424 (formal_parameter_list:): Fixed typos.
14425 (formal_parameter:): Use ARG_FINAL_P to mark created tree list
14426 element. Improved error handling.
14427 (block_statement:): Call end_class_declaration.
14428 (anonymous_class_creation:): Likewise.
14429 (create_anonymous_class): Fixed comments.
14430 (create_class): Call add_inner_class_fields.
14431 (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
14432 (method_header): Use MARK_FINAL_PARMS.
14433 (finish_method_declaration): Use UNMARK_FINAL_PARMS.
14434 (method_declarator): Propagate final argument flag.
14435 (craft_constructor): New local `artificial'. Call
14436 build_alias_initializer_parameter_list. Use
14437 CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
14438 (source_start_java_method): Mark parm decls with LOCAL_FINAL if
14439 necessary.
14440 (complete_expand_class): Get rid of unused outer context local
14441 alias fields.
14442 (java_complete_expand_methods): Fixed leading
14443 comment. Generate/pre-expand <clinit> first. Changed method
14444 expansion order to regular, $finit$, constructors, <clinit>.
14445 (java_complete_expand_method): Set current_function_decl.
14446 (fix_constructors): Fix constructor parameter list to account for
14447 outer context local alias initializers.
14448 (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14449 (resolve_expression_name): Lookup outer context local aliases. New
14450 local `access', use it.
14451 (patch_method_invocation): Patch inner class ctor invocation with
14452 outer context local aliases initialization values. $finit$
14453 invocation patching now includes things generated with
14454 build_alias_initializer_parameter_list.
14455 (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14456 (build_super_invocation): Likewise.
14457 (patch_assignment): Changed comment.
14458
14459 2000-01-27 Andrew Haley <aph@cygnus.com>
14460
14461 * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
14462 (emit_if): Ditto.
14463 (emit_jsr): Ditto.
14464
14465 2000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14466
14467 * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
14468 concatenation.
14469 (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.
14470
14471 * parse.y (register_fields): Don't pass a format specifier to
14472 OBSOLETE_MODIFIER_WARNING.
14473 (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
14474 instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
14475 specifier.
14476 (check_modifiers): Change function into a macro.
14477 (check_class_interface_creation): Pass a literal format string.
14478
14479 2000-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14480
14481 * buffer.h: PROTO -> PARAMS.
14482 * check-init.c: Likewise.
14483 * class.c: Likewise.
14484 * constants.c: Likewise.
14485 * convert.h: Likewise.
14486 * decl.c: Likewise.
14487 * except.c: Likewise.
14488 * expr.c: Likewise.
14489 * gjavah.c: Likewise.
14490 * java-except.h: Likewise.
14491 * java-tree.h: Likewise.
14492 * jcf-depend.c: Likewise.
14493 * jcf-dump.c: Likewise.
14494 * jcf-parse.c: Likewise.
14495 * jcf-path.c: Likewise.
14496 * jcf-reader.c: Likewise.
14497 * jcf-write.c: Likewise.
14498 * jcf.h: Likewise.
14499 * jv-scan.c: Likewise.
14500 * jvgenmain.c: Likewise.
14501 * jvspec.c: Likewise.
14502 * lang.c: Likewise.
14503 * lex.c: Likewise.
14504 * lex.h: Likewise.
14505 * parse-scan.y: Likewise.
14506 * parse.h: Likewise.
14507 * parse.y: Likewise.
14508 * typeck.c: Likewise.
14509 * verify.c: Likewise.
14510 * xref.c: Likewise.
14511 * xref.h: Likewise.
14512 * zextract.c: Likewise.
14513 * zipfile.h: Likewise.
14514
14515 2000-01-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
14516
14517 * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14518 (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
14519 * constants.c (build_constant_data_ref): Check for cached
14520 current_constant_pool_data_ref. Cache current_constant_pool_data_ref
14521 in TYPE_CPOOL_DATE_REF.
14522 * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
14523 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
14524 (struct lang_type): New fields `cpool' and `cpool_data_ref'.
14525 (LOCAL_FINAL): New macro.
14526 * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
14527 constant pool -- don't try to reuse.
14528 (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
14529 TYPE_LANG_SPECIFIC.
14530 (find_in_current_zip): Use TYPE_JCF.
14531 * parse.h (java_check_final): Prototype removed.
14532 * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
14533 (maybe_create_class_interface_decl,
14534 check_class_interface_creation): Likewise.
14535 (java_expand_finals): Function removed.
14536 (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
14537 (block_statement:): Fixed comment.
14538 (anonymous_class_creation:): Likewise.
14539 (check_class_interface_creation): Reversed Jan 12, 2000 extra
14540 argument patch.
14541 (check_class_interface_creation): Loosened error report on (inner)
14542 public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
14543 (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
14544 (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
14545 argument patch.
14546 (create_interface): Likewise.
14547 (anonymous_class_counter): New static global.
14548 (create_anonymous_class): Reversed Jan 12, 2000 extra argument
14549 patch. Fixed comments.
14550 (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
14551 anonymous_class_counter when declaring a toplevel class.
14552 (craft_constructor): Fixed constructor name when handling
14553 anonymous classes. Anonymous class constructors to feature hidden
14554 this$<n> parameter.
14555 (java_fix_constructors): Added comment.
14556 (java_check_final): Function removed.
14557 (java_complete_expand_methods): Fixed comment. Don't generate
14558 class data, save its outgoing constant pool instead.
14559 (verify_constructor_super): Skip anonymous class constructor
14560 hidden this$<n> parameter.
14561 (java_expand_classes): New local `saved_ctxp'. Removed call to
14562 java_expand_finals and java_check_final. Expand anonymous class
14563 constructors. Generate class data.
14564 (build_super_invocation): Skip anonymous class hidden this$<n>
14565 parameter.
14566 * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
14567 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14568 (set_java_signature): Likewise.
14569
14570 2000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
14571
14572 * gjavah.c: Delete ACC_VISIBILITY define.
14573 * jcf.h: Add ACC_VISIBILITY define.
14574 * parse.y: final: rule tagged <value>.
14575 (java_check_regular_methods): Use ACC_VISIBILITY define for
14576 default package access check.
14577 (local_variable_declaration_statement): Use final: rule.
14578
14579 2000-01-17 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
14580
14581 * parse.y (format_parameter:): Use final: rule instead of modifiers:.
14582 (final:): New rule.
14583
14584 2000-01-17 Tom Tromey <tromey@cygnus.com>
14585
14586 * gjavah.c (print_field_info): Allow non-static final fields.
14587
14588 2000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14589
14590 * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
14591 * parse.y (patch_anonymous_class): New function.
14592 (create_anonymous_class): Register incomplete type when the
14593 class/interface to extends/implement isn't known yet.
14594 (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
14595 (verify_constructor_super): Tuned error message.
14596
14597 2000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14598
14599 * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
14600 (ANONYMOUS_CLASS_P): New macro.
14601 (TYPE_SIGNATURE, TYPE_JCF): New macros.
14602 (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
14603 * parse.y (create_class): Added leading argument.
14604 (maybe_create_class_interface_decl,
14605 check_class_interface_creation): Likewise.
14606 (craft_constructor): New function.
14607 (verify_constructor_super): Added argument in prototype.
14608 (class_declaration:): Inserted leading argument.
14609 (for_begin:): Use FOR_LOOP_P.
14610 (anonymous_class_creation): Create WFL of the anonymous class to
14611 instantiate. Call build_new_invocation. Added comments.
14612 (check_class_interface_creation): Handle parameter `anonymous' in
14613 verbose mode class creation announce.
14614 (link_nested_class_to_enclosing): Exclude anonymous classes.
14615 (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
14616 anonymous class, even though they appear to have an enclosing
14617 context.
14618 (create_interface): Pass extra argument to
14619 check_class_interface_creation.
14620 (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
14621 (create_class): Call check_class_interface_creation and
14622 maybe_create_class_interface_decl with extra new argument. Don't
14623 add private this$<n> to anonymous classes.
14624 (method_declarator): Insert hidden this$<n> to anonymous class
14625 constructors.
14626 (java_fix_constructors): Deleted code creating default
14627 constructor. Call craft_constructor instead.
14628 (java_check_regular_methods): Set `saw_constructor' to 1 for
14629 anonymous classes.
14630 (fix_constructors): Pass extra argument to verify_constructor_super.
14631 (verify_constructor_super): New local `sdecl', use it. Search for
14632 matching constructor (possibly featuring arguments) in super
14633 class.
14634 (lookup_method_invoke): Craft constructor according to arguments
14635 list when dealing with anonymous class constructors.
14636 (build_super_invocation): Pass arguments to anonymous class super
14637 constructors.
14638 (search_loop): Use FOR_LOOP_P.
14639 (labeled_block_contains_loop_p): Likewise.
14640
14641 2000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
14642
14643 * class.c (set_super_info): Set CLASS_STATIC when appropriate.
14644 (enclosing_context_p): New function.
14645 (get_access_flags_from_decl): Handle CLASS_STATIC.
14646 (maybe_layout_super_class): Extra first argument passed to
14647 do_resolve_class.
14648 (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
14649 ID_INIT_P.
14650 * decl.c (access0_identifier_node): New global.
14651 (init_decl_processing): access0_identifier_node initialized.
14652 (pushdecl): Set DECL_CONTEXT only on non type decls.
14653 * expr.c (lookup_field): Lookup inner class fields in enclosing
14654 contexts.
14655 (expand_invoke): Use ID_INIT_P.
14656 (expand_java_field_op): Use DECL_CLINIT_P.
14657 * java-tree.def (CLASS_LITERAL): New tree code.
14658 * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
14659 DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
14660 (struct lang_decl): New field `inner_access'.
14661 (enclosing_context_p): Prototyped.
14662 (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
14663 ID_CLINIT_P): New macros.
14664 (CLASS_STATIC): New macro.
14665 (CLASS_ACCESS0_GENERATED_P): New macro.
14666 (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
14667 TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
14668 INNER_CLASS_P): New macros.
14669 (DECL_INNER_CLASS_LIST): New macro.
14670 * jcf-parse.c (yyparse): Avoid the use of ANSI string
14671 concatenation.
14672 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14673 the shift value to int. Fixed typo in comment.
14674 * lex.c (inst_id, wpv_id): Initialize.
14675 * mangle.c (unicode_mangling_length): Take `$' into account.
14676 * parse.h (DRECOVER, RECOVER): Terminate properly.
14677 (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
14678 (typedef struct _jdep): New field `enclosing'.
14679 (JDEP_ENCLOSING): New macro.
14680 (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
14681 (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
14682 (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
14683 GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
14684 GET_ENCLOSING_CPC_CONTEXT): New macros.
14685 (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.
14686 (do_resolve_class): Added extra argument in prototype.
14687 * parse.y (resolve_class): Added extra argument in prototype.
14688 (maybe_create_class_interface_decl): Likewise.
14689 (maybe_use_access_method, build_wfl_wrap): New functions.
14690 (java_complete_expand_classes, java_complete_expand_class):
14691 Likewise.
14692 (java_parser_context_push_initialized_field,
14693 java_parser_context_suspend, java_parser_context_resume):
14694 Likewise.
14695 (maybe_make_nested_class_name, make_nested_class_name,
14696 set_nested_class_simple_name_value,
14697 link_nested_class_to_enclosing, find_as_inner_class,
14698 find_as_inner_class_do, check_inner_class_redefinition,
14699 build_thisn_assign, build_current_thisn, build_access_to_thisn,
14700 maybe_build_thisn_access_method, build_outer_field_access,
14701 build_outer_field_access_methods, build_outer_field_access_expr,
14702 build_outer_method_access_method, build_new_access_id,
14703 build_outer_field_access_method, outer_field_access_p,
14704 outer_field_expanded_access_p, outer_field_access_fix,
14705 build_incomplete_class_ref, patch_incomplete_class_ref,
14706 create_anonymous_class): Likewise.
14707 (inst_id, wpv_id): New static global variables.
14708 (synchronized:): New rule, tagged <node>.
14709 (type_declaration:): No longer tagged <node>. Call POP_CPC in sub
14710 rules.
14711 (anonymous_class_creation:): New rule, tagged <node>.
14712 (NEW_TK): Tagged <node>.
14713 (type_literals, array_type_literal): New rules, tagged <node>.
14714 (class_declaration:): Removed action when reducing by class_body:
14715 (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
14716 using GET_CPC in sub-rules.
14717 (class_member_declaration): Handle inner classes.
14718 (method_declaration): When reducing method_header:, reset
14719 current_function_decl when appropriate.
14720 (method_declarator:): Set the number of formal parameter to 0 for
14721 method declared without arguments.
14722 (constructor_declarator:): Likewise.
14723 (static_initializer:): List of elements kept in a list.
14724 (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
14725 use of the keyword `static' for type declarations.
14726 (block_statement:): Handle inner class declarations.
14727 (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
14728 type qualified `this'.
14729 (class_instance_creation_expression): Use anonymous_class_creation:
14730 to handle inner class instances creation. Handle qualified `new'.
14731 (something_dot_new): Added appropriate actions.
14732 (create_new_parser_context): New function.
14733 (java_push_parser_context, java_parser_context_save_global,
14734 java_parser_context_suspend): Use create_new_parser_context.
14735 (check_modifiers): Changed leading comment.
14736 (check_class_interface_creation): Handle interclasses.
14737 (add_superinterfaces): Fixed comment.
14738 (create_interface): Build qualified name from the raw_name instead
14739 of its matching WFL. Push the initialized fields list. raw_name added
14740 as an extra argument to maybe_create_class_interface_decl.
14741 (create_class): Build qualified name from the raw_name instead of
14742 its matching WFL. Removed assignment to current_parsed_class_un.
14743 Call PUSH_ERROR before returning an error. Suspend the current
14744 parser context when processing an inner class. Push the
14745 initialized fields list. raw_name added as an extra argument to
14746 maybe_create_class_interface_decl. Add the private this$<n>
14747 field.
14748 (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
14749 (register_fields): Get the class type from GET_CPC and handle
14750 previous errors. Added code to handle the creation of static
14751 fields in inner classes. Initialized fields initialization
14752 statements kept in a list of lists.
14753 (maybe_generate_finit): Initialized fields initialization
14754 statements kept in a list of lists. Use GET_CPC.
14755 (maybe_generate_clinit): Likewise.
14756 (method_header): Use GET_CPC and GET_CPC_UN.
14757 (parser_qualified_classname): Handle inner classes.
14758 (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
14759 (java_fix_constructors): Hide pointer to enclosing context
14760 instance in constructor list when dealing with inner classes.
14761 (jdep_resolve_class): Call resolve_class with extra first argument
14762 JDEP_ENCLOSING.
14763 (resolve_class): Add enclosing context as a first extra argument
14764 to do_resolve_class.
14765 (do_resolve_class): Call find_as_inner_class. Handle WFLs
14766 properly.
14767 (resolve_no_layout): Extra argument added to resolve_class
14768 invocation.
14769 (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
14770 (java_get_real_method_name): Use GET_CPC_UN.
14771 (check_abstract_method_definitions): Use DECL_CLINIT_P.
14772 (java_check_abstract_methods): Handle static method declared in
14773 inner classes by an error.
14774 (java_check_regular_methods): Use DECL_CLINIT_P.
14775 (source_start_java_method): Also set DECL_MAX_LOCALS.
14776 (create_artificial_method): Call java_parser_context_save_global
14777 and java_parser_context_restore_global instead of saving/restoring
14778 the context by hand.
14779 (expand_start_java_method): Improved verbose mode message.
14780 (java_complete_expand_methods): Fixed leading comment. Use
14781 DECL_CLINIT_P.
14782 (fix_constructors): Added assignment to this$<n> if necessary.
14783 (java_expand_classes): Call java_complete_expand_classes instead
14784 of java_complete_expand_methods.
14785 (make_qualified_primary): Simplified.
14786 (merge_qualified_name): Optimized for missing left or right parts.
14787 (resolve_expression_name): Handle access to outer class fields from
14788 interclasses.
14789 (resolve_qualified_expression_name): New macro
14790 RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
14791 classes. Report error on non appropriate qualification of
14792 `new'. Handle qualified `this'.
14793 (not_accessible_p): Allow access to outer class private fields from
14794 inner classes.
14795 (patch_method_invocation): Handle method invocations through
14796 access methods and inner class constructor invocations.
14797 (find_applicable_accessible_methods_list): Search enclosing
14798 contexts of an inner class.
14799 (search_applicable_methods_list): Fixed typo.
14800 (argument_types_convertible): Handle inner class constructors'
14801 hidden outer context reference argument.
14802 (qualify_ambiguous_name): Handle qualified `this'.
14803 (java_complete_lhs): Handle use of field accessed through
14804 artificial access methods in various cases of assignments. Handle
14805 CLASS_LITERAL node.
14806 (check_final_assignment): Use DECL_CLINIT_P.
14807 (valid_ref_assignconv_cast_p): Handle the destination being an
14808 enclosing context of the source.
14809 (patch_unaryop): Handle use of field accessed through artificial
14810 access methods.
14811 (patch_return): Use DECL_CLINIT_P.
14812 (patch_throw_statement): Use DECL_CLINIT_P.
14813 (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
14814 * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
14815 ID_INIT_P.
14816
14817 2000-01-16 Anthony Green <green@cygnus.com>
14818
14819 * parse.y (build_string_concatenation): Only use
14820 StringBuffer(String) shortcut if String arg is constant.
14821
14822 2000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
14823
14824 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14825 the shift value to int. Fixed typo in comment.
14826
14827 2000-01-11 Mumit Khan <khan@xraylith.wisc.edu>
14828
14829 * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
14830 * jcf-write.c: Likewise.
14831 * parse.y: Likewise.
14832 * parse.c: Regenerate.
14833
14834 2000-01-09 Anthony Green <green@cygnus.com>
14835
14836 * jcf-write.c (generate_bytecode_insns): Emit invokeinterface
14837 bytecodes in the correct order.
14838
14839 2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14840
14841 * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
14842
14843 2000-01-06 Anthony Green <green@cygnus.com>
14844
14845 * expr.c (java_lang_expand_expr): Switch to permanent obstack
14846 before building constant array decl.
14847
14848 2000-01-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
14849
14850 * jcf-write.c (generate_bytecode_conditional): Fixed indentation in
14851 method invocation and typo in conditional expression.
14852 (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
14853 the appropriate NOTE_POP.
14854 * parse.y (patch_binop): Shift value mask to feature the right
14855 type.
14856
14857 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14858
14859 * class.c (assume_compiled, assume_compiled_node): Add static
14860 prototype.
14861 (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
14862
14863 * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
14864
14865 * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
14866
14867 * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
14868 to `__modifier' to avoid stringifying it.
14869
14870 * parse.y (verify_constructor_circularity): Don't call a variadic
14871 function with a non-literal format string.
14872 (java_check_abstract_methods): Move unreachable code inside
14873 `continue' statement.
14874 (lookup_method_invoke): Call xstrdup, not strdup.
14875
14876 * expr.c (expand_java_field_op): Avoid the use of ANSI string
14877 concatenation.
14878
14879 * jcf-parse.c (yyparse): Likewise.
14880
14881 * jv-scan.c (main): Likewise.
14882
14883 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14884
14885 * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
14886 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
14887 ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
14888 concatenation.
14889
14890 * parse.y (synchronized, variable_redefinition_error,
14891 check_class_interface_creation, create_interface, create_class,
14892 method_header, finish_method_declaration,
14893 check_modifiers_consistency, method_declarator,
14894 complete_class_report_errors, check_abstract_method_definitions,
14895 java_check_regular_methods, check_throws_clauses,
14896 java_check_abstract_methods, read_import_dir,
14897 check_pkg_class_access, declare_local_variables, fix_constructors,
14898 cut_identifier_in_qualified, resolve_expression_name,
14899 resolve_qualified_expression_name, patch_method_invocation,
14900 java_complete_lhs, patch_assignment, try_builtin_assignconv,
14901 patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
14902 patch_exit_expr, patch_exit_expr, patch_switch_statement,
14903 patch_try_statement, patch_synchronized_statement,
14904 patch_throw_statement, check_thrown_exceptions,
14905 patch_conditional_expr): Likewise.
14906
14907 1999-12-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
14908
14909 * Makefile.in (LIBDEPS): Added gcc's errors.o
14910 (../jcf-dump$(exeext):): Link with gcc's errors.o
14911 (../gcjh$(exeext):): Likewise.
14912 * expr.c (expand_java_NEW): Layout the entire target type instead of
14913 laying out its methods only.
14914 (lookup_field): Layout the class after having loaded it.
14915 * java-tree.h (java_debug_context): Declared.
14916 * jcf-io.c (toplev.h): Included.
14917 (find_class): Removed assignment to jcf's outofsynch
14918 field. Force source file to be read if newer than its matching
14919 class file. Tweaked debug messages.
14920 * jcf-parse.c (jcf_out_of_synch): Deleted.
14921 (read_class): Call to jcf_out_of_synch removed.
14922 * jcf.h (typedef struct JCF): Field `outofsynch' deleted.
14923 (jcf_out_of_synch): Prototype deleted.
14924 * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
14925 `deprecated' and `class_err': integer turned into bit-fields.
14926 New bit-fields `saved_data_ctx' and `saved_data'. Fixed comments.
14927 * parse.y (package_list): New global.
14928 (package_declaration:): Record newly parsed package name.
14929 (extra_ctxp_pushed_p): Static global deleted.
14930 (java_parser_context_save_global): Create buffer context for the
14931 purpose of saving globals, if necessary.
14932 (java_parser_context_restore_global): Pop context pushed for the
14933 purpose of saving globals, if necessary.
14934 (java_debug_context_do): New prototype and function.
14935 (java_debug_context): Likewise.
14936 (do_resolve_class): Use already parsed package names to qualify
14937 and lookup class candidate.
14938 (java_pre_expand_clinit): Removed unnecessary local variable.
14939
14940 1999-12-17 Tom Tromey <tromey@cygnus.com>
14941
14942 * gjavah.c (decode_signature_piece): Print "::" in JArray<>. This
14943 fixes PR gcj/119.
14944 (process_file): Use `\n\' at end of each line in string.
14945
14946 1999-12-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
14947
14948 * expr.c (expand_invoke): Layout the loaded class before
14949 attempting to use it.
14950 (expand_java_field_op): Allow final field assignments to take
14951 place in $finit$.
14952 * typeck.c (convert): Return error_mark_node if expr is null.
14953
14954 1999-12-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14955
14956 * class.c (class_depth): Return -1 if the class doesn't load
14957 properly.
14958 * expr.c (can_widen_reference_to): Check for errors during depth
14959 computation and return 0 accordingly.
14960 * jcf-parse.c (parse_source_file): Call java_fix_constructors to
14961 create default constructors and add an other error check.
14962 * parse.h (java_fix_constructors): Prototyped.
14963 * parse.y (java_pre_expand_clinit): Likewise.
14964 (build_super_invocation): Re-prototyped to feature one argument.
14965 (java_check_circular_reference): Directly use `current'.
14966 (java_fix_constructors): New function.
14967 (java_check_regular_methods): Don't create default constructors
14968 here, but abort if none were found.
14969 (java_complete_expand_methods): Pre-process <clinit> calling
14970 java_pre_expand_clinit.
14971 (java_pre_expand_clinit): New function.
14972 (fix_constructors): build_super_invocation invoked with the
14973 current method declaration as an argument.
14974 (build_super_invocation): Use the context of the processed method
14975 decl argument instead of current_class.
14976 * typeck.c (lookup_java_method): Take WFLs in method names into
14977 account.
14978
14979 1999-12-14 Per Bothner <per@bothner.com>
14980
14981 * class.c (make_class_data): flag_keep_inline_functions to keep
14982 private methods in the method array.
14983
14984 1999-12-15 Anthony Green <green@cygnus.com>
14985
14986 * check-init.c (check_init): Take into account both types of
14987 `throw's when checking for uninitialized variables.
14988
14989 1999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14990
14991 * parse.y (java_complete_lhs): Force conversion of array
14992 dimensions to int_type_node, that's what runtime's ABI expects.
14993
14994 1999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14995
14996 * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
14997 operand of a WFL, until the Java front-end gets fixed with regard
14998 to Mark Mitchell's gcc/tree.h patch (1999-12-04.)
14999
15000 1999-12-10 Andrew Haley <aph@cygnus.com>
15001
15002 * parse.h (BUILD_THROW): Add support for sjlj-exceptions.
15003 decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
15004 expr.c (build_java_athrow): Add support for sjlj-exceptions.
15005 java-tree.h: Ditto.
15006 jcf-write.c: Ditto.
15007
15008 1999-12-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
15009
15010 * expr.c (java_lang_expand_expr): Switch to permanent obstack
15011 before calling expand_eh_region_start and expand_start_all_catch.
15012 * except.c (expand_start_java_handler): Switch to permanent
15013 obstack before calling expand_eh_region_start.
15014 (expand_end_java_handler): Switch to permanent obstack before
15015 calling expand_start_all_catch.
15016
15017 1999-12-5 Anthony Green <green@cygnus.com>
15018
15019 * decl.c (init_decl_processing): Mark throw_node as a noreturn
15020 function with side effects.
15021 (init_decl_processing): Mark all memory allocating DECLs with
15022 DECL_IS_MALLOC.
15023
15024 1999-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15025
15026 * except.c (expand_end_java_handler): Call
15027 expand_resume_after_catch and end_catch_handler.
15028
15029 1999-11-30 Anthony Green <green@cygnus.com>
15030
15031 * verify.c (verify_jvm_instructions): Create new return label
15032 chain if non existent (don't rely on the verified state of the jsr
15033 target.)
15034
15035 1999-11-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
15036
15037 * jcf-write.c (generate_bytecode_insns): Fixed indentation for
15038 COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
15039
15040 * parse.y (patch_assignment): Removed bogus final class test on
15041 lhs when checking on whether to emit an ArrayStoreException runtime
15042 check.
15043 * expr.c (expand_java_arraystore): Likewise.
15044
15045 1999-11-28 Anthony Green <green@cygnus.com>
15046
15047 * decl.c (find_local_variable): Reuse single slot decls when
15048 appropriate.
15049
15050 1999-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15051
15052 * jcf-parse.c (saw_java_source): Global variable removed.
15053 (read_class): Don't use `saw_java_source'. Added extra braces.
15054 (yyparse): Code setting `saw_java_source' removed.
15055
15056 1999-11-24 Mark Mitchell <mark@codesourcery.com>
15057
15058 * except.c (emit_handlers): Zero catch_clauses after emitting them.
15059
15060 1999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
15061
15062 * verify.c (merge_type_state): Non verified subroutines being
15063 considered more than once to trigger passive type merge.
15064
15065 1999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
15066
15067 * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
15068 in case of error. Error message tuned.
15069
15070 1999-11-21 Anthony Green <green@cygnus.com>
15071
15072 * constants.c (find_methodref_index): Unwrap method names before
15073 inserting them in the constant pool.
15074
15075 * jcf-parse.c (jcf_parse): Display `interface' when appropriate.
15076
15077 * class.c (assume_compiled_node): New typedef.
15078 (assume_compiled_tree): New static data.
15079 (find_assume_compiled_node): New function.
15080 (add_assume_compiled): New function.
15081 (assume_compiled): New function.
15082 * class.c (make_class_data): Use assume_compiled.
15083 (is_compiled_class): Use assume_compiled.
15084
15085 * java-tree.h (add_assume_compiled): Declare.
15086
15087 * lang.c (lang_decode_option): Parse new options.
15088
15089 1999-11-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15090
15091 * class.c (layout_class): Always convert TYPE_SIZE_UNIT to
15092 int_type_node: that's what `_Jv_AllocObject' expects.
15093
15094 1999-11-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
15095
15096 * parse.y (lookup_method_invoke): Use lang_printable_name to
15097 reliably build the type name during error report. Fixes PR gcj/97.
15098
15099 1999-11-09 Tom Tromey <tromey@cygnus.com>
15100
15101 * jcf-path.c: Include <sys/stat.h>.
15102 (jcf_path_init): Search for libjava.zip. Fixes PR gcj/84.
15103 (DIR_UP): New macro.
15104
15105 1999-11-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
15106
15107 * parse.y (source_end_java_method): Resume permanent allocation,
15108 reversing Apr 27 1998 patch.
15109 (patch_string_cst): Pop obstacks after having pushed the permanent
15110 ones.
15111
15112 1999-11-05 Tom Tromey <tromey@cygnus.com>
15113
15114 * class.c (finish_class): Emit inlined methods if any native
15115 methods exist in the class. Fixes PR gcj/85.
15116
15117 1999-11-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
15118
15119 * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
15120 (qualify_ambiguous_name): Likewise.
15121
15122 1999-11-03 Godmar Back <gback@cs.utah.edu>
15123
15124 * typeck.c: (lookup_java_method): search all inherited
15125 interfaces when looking up interface method.
15126
15127 1999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15128
15129 * parse.y (method_header:): Issue error message for rule `type
15130 error'.
15131 (synchronized:): Error report when not using synchronized.
15132
15133 1999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15134
15135 * parse.y (resolve_qualified_expression_name): Prevent `this' from
15136 being used before the superclass constructor has been called.
15137 (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
15138 instead of `CALL_THIS_CONSTRUCTOR_P'.
15139
15140 1999-10-30 Todd T. Fries <todd@lighthouse.fries.net>
15141
15142 * check-init.c: Fix typo in comment.
15143
15144 1999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
15145
15146 * class.c (add_method_1): Set DECL_INLINE to 1 for private, static
15147 and final method.
15148
15149 1999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
15150
15151 * parse.y (expression_statement:): Call function to report
15152 improper invocation of a constructor.
15153 (parse_ctor_invocation_error): New function.
15154
15155 1999-10-26 Mark Mitchell <mark@codesourcery.com>
15156
15157 * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
15158 remember_end_note.
15159
15160 1999-10-21 Tom Tromey <tromey@cygnus.com>
15161
15162 * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
15163 in generated `main'.
15164
15165 1999-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
15166
15167 * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
15168 (qualify_ambiguous_name): Likewise.
15169
15170 1999-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
15171
15172 * parse.y (java_complete_tree): fold_constant_for_init to work on
15173 permanent_obstack.
15174 (java_complete_lhs): Likewise.
15175 (array_constructor_check_entry): Complete an initializer element
15176 on permanent_obstack.
15177
15178 1999-10-19 Tom Tromey <tromey@cygnus.com>
15179
15180 * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
15181 From Mike Moreton <mike@pillim.demon.co.uk>.
15182
15183 1999-10-15 Greg McGary <gkm@gnu.org>
15184
15185 * java-tree.h (flag_bounds_check): Remove extern decl.
15186 * lang.c (flag_bounds_check): Remove global variable.
15187 (lang_f_options): Remove "bounds-check" entry.
15188 (lang_init_options): Default flag_bounds_check to "on".
15189
15190 1999-10-14 Tom Tromey <tromey@cygnus.com>
15191
15192 * jvgenmain.c (usage): New function.
15193 (main): Use it. Also, handle `-D' options.
15194 * jvspec.c (lang_specific_driver): Recognize -D.
15195 (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.
15196
15197 * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
15198
15199 1999-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15200
15201 * jcf-dump.c (print_constant, disassemble_method): Don't call a
15202 variadic function with a non-literal format string.
15203
15204 * parse-scan.y (report_main_declaration): Likewise.
15205
15206 * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.
15207
15208 * parse.y (read_import_dir, patch_assignment, patch_binop,
15209 patch_array_ref): Likewise.
15210
15211 * typeck.c (build_java_array_type): Likewise.
15212
15213 * verify.c (verify_jvm_instructions): Likewise.
15214
15215 1999-10-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
15216
15217 * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
15218
15219 1999-10-07 Anthony Green <green@cygnus.com>
15220
15221 * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases
15222 where CHECK_PUT may fail for valid reasons.
15223
15224 * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3,
15225 UNSAFE_PUTN): New macros.
15226
15227 1999-10-04 Tom Tromey <tromey@cygnus.com>
15228
15229 * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
15230 well. Fixes Java PR gcj/59.
15231 * parse-scan.y (yyerror): Report errors.
15232
15233 1999-09-24 Glenn Chambers <GChambers@provsol.com>
15234
15235 * decl.c (insert_block): Remove unconditional `abort'.
15236
15237 1999-09-24 Bernd Schmidt <bernds@cygnus.co.uk>
15238
15239 * decl.c (builtin_function): No longer static. New arg CLASS. Arg
15240 FUNCTION_CODE now of type int. All callers changed.
15241 Set the builtin's DECL_BUILT_IN_CLASS.
15242
15243 1999-09-23 Tom Tromey <tromey@cygnus.com>
15244
15245 * jvspec.c (lang_specific_driver): Don't read spec file if
15246 -fsyntax-only given.
15247
15248 1999-09-22 Tom Tromey <tromey@cygnus.com>
15249
15250 * lang-specs.h: Added `%(jc1)' to the jc1 spec.
15251
15252 * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
15253 (WORDS_TO_LONG): Likewise.
15254 (WORDS_TO_DOUBLE): Likewise.
15255
15256 1999-09-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15257
15258 * jcf-write.c (RELOCATION_VALUE_0): New macro.
15259 (RELOCATION_VALUE_1): Likewise.
15260 (emit_iinc, emit_reloc, push_constant1, push_constant2,
15261 push_in_const, push_long_const): Prototyped.
15262 (push_constant1): Argument `index' is of type HOST_WIDE_INT.
15263 (push_constant2): Likewise.
15264 (push_int_const): Cast find_constant1's integer arguments to `jword'.
15265 (find_constant_wide): Cast find_constant2's integer arguments to
15266 `jword'.
15267 (find_constant_index): Cast find_constant2's and find_constant2's
15268 integer arguments to `jword'.
15269 (emit_pop): Argument `value' is of type HOST_WIDE_INT.
15270 (emit_switch_reloc): Use RELOCATION_VALUE_0.
15271 (emit_if): Use RELOCATION_VALUE_1.
15272 (emit_goto): Likewise.
15273 (emit_jsr): Likewise.
15274 (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
15275 argument to push_long_const to HOST_WIDE_INT.
15276
15277 1999-09-15 Andreas Schwab <schwab@suse.de>
15278
15279 * Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
15280
15281 1999-09-20 Nick Clifton <nickc@cygnus.com>
15282
15283 * lang.c (lang_decode_option): Extend comment.
15284
15285 1999-09-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
15286
15287 * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
15288 instead of fndecl.
15289
15290 1999-09-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15291
15292 * gjavah.c (get_field_name, print_method_info, print_include,
15293 add_namelet): Use xmalloc, not malloc.
15294
15295 * jcf-depend.c (add_entry): Likewise. Use xstrdup, not strdup.
15296 (munge): Use xrealloc, not realloc, trust xrealloc to handle a
15297 NULL pointer.
15298
15299 * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
15300
15301 * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
15302
15303 * jcf-path.c (add_entry): Likewise.
15304
15305 * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
15306
15307 * jv-scan.c (xmalloc): Remove definition.
15308
15309 * jvgenmain.c (xmalloc): Likewise.
15310
15311 * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
15312
15313 * lex.c (java_store_unicode): Use xrealloc, not realloc.
15314
15315 * parse-scan.y: Use concat, not of xmalloc/assign/strcpy. Use
15316 concat, not xmalloc/sprintf.
15317 (java_push_parser_context): Use xcalloc, not xmalloc/bzero.
15318 (xstrdup): Remove definition.
15319
15320 * parse.y (duplicate_declaration_error_p,
15321 constructor_circularity_msg, verify_constructor_circularity,
15322 check_abstract_method_definitions, java_check_regular_methods,
15323 java_check_abstract_methods, patch_method_invocation,
15324 check_for_static_method_reference, patch_assignment, patch_binop,
15325 patch_cast, array_constructor_check_entry, patch_return,
15326 patch_conditional_expr): Use xstrdup, not strdup.
15327
15328 * zextract.c (ALLOC): Use xmalloc, not malloc.
15329
15330 1999-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15331
15332 * Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
15333
15334 * jvspec.c: Include gcc.h. Don't include gansidecl.h.
15335 (do_spec, lang_specific_pre_link, lang_specific_driver,
15336 input_filename, input_filename_length): Don't declare.
15337 (main_class_name, jvgenmain_spec, lang_specific_driver):
15338 Constify a char*.
15339 (lang_specific_driver): All calls to the function pointer
15340 parameter now explicitly call `fatal'.
15341
15342 1999-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
15343
15344 * parse.y (find_applicable_accessible_methods_list): Search
15345 abstract classes as interfaces.
15346
15347 1999-09-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
15348
15349 * class.c (finish_class): We're now outside a valid method
15350 declaration. Tell the rest of gcc so.
15351
15352 1999-09-08 Bruce Korb autogen@linuxbox.com
15353
15354 * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
15355
15356 1999-09-07 Tom Tromey <tromey@cygnus.com>
15357
15358 * gjavah.c (add_class_decl): Generate include for gcj/array.h, not
15359 java-array.h.
15360 (decode_signature_piece): Don't emit "::" in JArray<>.
15361 (print_namelet): Only print trailing `;' when printing a class.
15362
15363 1999-09-10 Bernd Schmidt <bernds@cygnus.co.uk>
15364
15365 * java-tree.h: Delete declarations for all tree nodes now moved to
15366 global_trees.
15367 * decl.c: Delete their definitions.
15368
15369 1999-09-04 Mark Mitchell <mark@codesourcery.com>
15370
15371 * Make-lang.in (jc1): Depend on ggc-callbacks.o.
15372 * Makefile.in (OBJS): Add ggc-callbacks.o.
15373 (OBJDEPS): Likewise.
15374
15375 1999-09-03 Tom Tromey <tromey@cygnus.com>
15376
15377 * parse.y (strip_out_static_field_access_decl): Return operand if
15378 it satisfies JDECL_P.
15379
15380 1999-09-02 Tom Tromey <tromey@cygnus.com>
15381
15382 * gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
15383 Handle nested arrays, like `[[I'.
15384
15385 1999-09-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15386
15387 * class.c (finish_class): Remove unused parameter, all callers
15388 changed.
15389
15390 * expr.c (build_java_athrow): Change return type to void.
15391 (java_lang_expand_expr): Make sure each case in switch returns a
15392 value.
15393
15394 * java-tree.h (finish_class): Fix prototype to take void args.
15395
15396 * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
15397 (main): Issue return from main, not exit.
15398
15399 * jcf-parse.c (parse_class_file): Fix call to `finish_class'.
15400
15401 * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.
15402
15403 * jv-scan.c (main): Issue return from main, not exit.
15404
15405 * parse.y (check_abstract_method_definitions,
15406 java_check_abstract_method_definitions): Add static prototypes.
15407 (java_complete_expand_methods): Fix call to `finish_class'.
15408
15409 * verify.c (verify_jvm_instructions): Initialize variables `oldpc'
15410 and `prevpc'.
15411
15412 1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15413
15414 * lang.c (language_string): Constify.
15415
15416 1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15417
15418 * Makefile.in (LIBS): Fix definition so we link with $(CLIB).
15419 Remove hacks for stuff which comes from libiberty.
15420
15421 * Make-lang.in: Likewise.
15422
15423 1999-08-30 Hans-Peter Nilsson <hp@axis.se>
15424
15425 * Makefile.in (xref.o): Depend on xref.c explicitly.
15426
15427 1999-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15428
15429 * java-tree.h (lang_printable_name): Constify a char*.
15430
15431 * lang.c (lang_printable_name): Likewise.
15432
15433 1999-08-27 Jeffrey A Law (law@cygnus.com)
15434
15435 * gjavah.c, jcf-write.c, verify.c: Do not use C++ style
15436 comments in C code.
15437
15438 1999-08-26 Tom Tromey <tromey@cygnus.com>
15439
15440 * gjavah.c (print_cxx_classname): Print "::" before qualified
15441 name.
15442
15443 1999-08-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
15444
15445 * parse.y (lookup_cl): Changed leading comment. Now does its best
15446 to set the column number.
15447 (qualify_ambiguous_name): Take WFL wrappers into account.
15448
15449 1999-08-25 Gregg Townsend <gmt@cs.arizona.edu>
15450
15451 * verify.c (verify_jvm_instructions): Don't check instruction
15452 validity beyond end of method.
15453
15454 1999-08-25 Tom Tromey <tromey@cygnus.com>
15455
15456 * jvspec.c (lang_specific_driver): Correctly handle --help again.
15457
15458 1999-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15459
15460 * gjavah.c (print_name, print_base_classname, utf8_cmp,
15461 cxx_keyword_subst, generate_access, name_is_method_p,
15462 get_field_name, print_field_name, super_class_name, print_include,
15463 decode_signature_piece, print_class_decls, usage, help,
15464 java_no_argument, version, add_namelet, print_namelet): Add static
15465 prototype.
15466 (print_base_classname, utf8_cmp, cxx_keyword_subst,
15467 name_is_method_p): Constify a char*.
15468 (get_field_name): Likewise. Prefer xstrdup over malloc/strcpy.
15469 Provide a final else clause in an if-else-if.
15470 (print_field_info): Add missing final arg in function call to
15471 `print_field_name'.
15472 (print_method_info, decompile_method, decode_signature_piece,
15473 print_c_decl, print_full_cxx_name, print_stub,
15474 print_mangled_classname, super_class_name, print_include,
15475 add_namelet, add_class_decl, print_class_decls, process_file,
15476 help): Constify a char*.
15477
15478 * jcf-write.c (jcf_handler, push_constant1, push_constant2,
15479 push_int_const, find_constant_wide, find_constant_index,
15480 push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
15481 emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
15482 emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
15483 emit_if, emit_goto, emit_jsr, call_cleanups,
15484 make_class_file_name): Add static prototypes.
15485 (generate_bytecode_return, generate_bytecode_insns): Pass a
15486 NULL_PTR, not a NULL_TREE.
15487
15488 * jv-scan.c: Include "jcf.h".
15489 (main): Declare using DEFUN macro.
15490
15491 * jvspec.c (find_spec_file, lang_specific_pre_link,
15492 lang_specific_driver): Add prototypes.
15493 (find_spec_file): Constify a char*.
15494
15495 * keyword.gperf (hash, java_keyword): Add prototypes.
15496
15497 * lang.c (lang_print_error): Add static prototype.
15498 (lang_init): Prefer memcpy over bcopy to avoid casts.
15499
15500 * lex.c (yylex): Add static prototype.
15501
15502 * parse-scan.y: Include "lex.c" earlier.
15503
15504 * parse.h: Remove redundant declaration for `yylex'.
15505
15506 * parse.y (java_decl_equiv, binop_compound_p, search_loop,
15507 labeled_block_contains_loop_p): Add static prototypes.
15508 (not_accessible_p): Make static to match prototype.
15509
15510 * verify.c (start_pc_cmp): Don't needlessly cast away const.
15511
15512 1999-08-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
15513
15514 * parse.y (check_method_redefinition): Changed leading comment.
15515 (check_abstract_method_definitions): New function.
15516 (java_check_abstract_method_definitions): New function.
15517 (java_check_regular_methods): Call it.
15518 (verify_constructor_super): Fixed indentation.
15519 (lookup_method_invoke): Likewise.
15520
15521 1999-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
15522
15523 * parse.y (method_header): Return a null pointer if the current
15524 class node is null.
15525 (finish_method_declaration): Return if the current function decl
15526 is null.
15527 (source_start_java_method): Likewise.
15528 (java_method_add_stmt): Likewise.
15529
15530 1999-08-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
15531
15532 * class.c (emit_register_class): Removed unnecessary call to
15533 start_sequence.
15534 * parse.y (labeled_block_contains_loop_p): Removed unused local
15535 variable.
15536
15537 1999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15538
15539 * parse.y (java_refold): Added prototype.
15540
15541 1999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15542
15543 * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
15544 (java_stabilize_reference): Removed unnecessary `else'.
15545 (java_complete_lhs): Set flag to remember boolean. Call
15546 java_refold. Added comments.
15547 (java_decl_equiv): New function.
15548 (binop_compound_p): Likewise.
15549 (java_refold): Likewise.
15550 (patch_unaryop): Striped static field access assigned to decl and
15551 op. Changed promotion scheme for ++/-- operators.
15552 (search_loop): New function.
15553 (labeled_block_contains_loop_p): Likewise.
15554 (patch_loop_statement): Call labeled_block_contains_loop_p. Added
15555 comment.
15556 (patch_bc_statement): Call search_loop. Fixed comment.
15557
15558 1999-08-14 Anthony Green <green@cygnus.com>
15559
15560 * expr.c (java_lang_expand_expr): Mark static array data as
15561 referenced.
15562
15563 1999-08-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
15564
15565 * jvgenmain.c (main): NUL-terminate name_obstack.
15566
15567 1999-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15568
15569 * check-init.c (check_bool2_init, done_alternative): Add static
15570 prototypes.
15571
15572 * class.c (add_interface_do, maybe_layout_super_class): Likewise.
15573 (add_method, build_utf8_ref, build_class_ref,
15574 append_gpp_mangled_type, layout_class_method): Constify a char*.
15575
15576 * decl.c (push_promoted_type, make_binding_level): Add static
15577 prototypes.
15578 (push_promoted_type, pushdecl): Constify a char*.
15579
15580 * except.c (find_handler_in_range, link_handler,
15581 check_start_handlers): Add static prototypes.
15582
15583 * expr.c (process_jvm_instruction): Constify a char*.
15584
15585 * gjavah.c (main): Constify a char*.
15586
15587 * java-tree.h (verify_jvm_instructions, process_jvm_instruction):
15588 Constify a char*.
15589
15590 * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
15591 static prototypes.
15592 (add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
15593 munge, print_ents): Constify a char*.
15594
15595 * jcf-dump.c (disassemble_method): Constify a char*.
15596 (print_constant_pool, print_exception_table): Add static prototypes.
15597 (print_constant, print_exception_table, main, disassemble_method):
15598 Constify a char*.
15599
15600 * jcf-io.c (find_classfile, find_class): Likewise.
15601
15602 * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
15603 (set_source_filename, predefined_filename_p): Add static prototypes.
15604 (set_source_filename, get_constant, get_class_constant,
15605 find_in_current_zip): Constify a char*.
15606
15607 * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
15608 static prototypes.
15609 (add_entry, add_path, jcf_path_classpath_arg,
15610 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15611
15612 * jcf-reader.c (get_attribute, jcf_parse_preamble,
15613 jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
15614 jcf_parse_one_method, jcf_parse_methods,
15615 jcf_parse_final_attributes): Add static prototypes.
15616 (get_attribute): Constify a char*.
15617
15618 * jcf.h (find_class, find_classfile, jcf_dependency_set_target,
15619 jcf_dependency_add_target, jcf_path_classpath_arg,
15620 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15621
15622 * jv-scan.c (main): Constify a char*.
15623 (gcc_obstack_init): Add prototype arguments.
15624
15625 * jvgenmain.c (gcc_obstack_init): Likewise.
15626 (main): Constify a char*.
15627
15628 * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
15629 static prototypes.
15630 (put_decl_string, lang_print_error): Constify a char*.
15631 (lang_init): Remove redundant extern prototype.
15632
15633 * mangle.c (emit_unicode_mangled_name): Constify a char*.
15634
15635 * typeck.c (convert_ieee_real_to_integer, parse_signature_type):
15636 Add static prototypes.
15637 (get_type_from_signature): Constify a char*.
15638
15639 * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
15640 Add static prototypes.
15641 (start_pc_cmp): Prefer PTR over GENERIC_PTR.
15642 (verify_jvm_instructions): Constify a char*.
15643
15644 * xref.c (xref_flag_value): Likewise.
15645
15646 * xref.h (xref_flag_value): Likewise.
15647
15648 * zextract.c (makeword, makelong): Add static prototypes.
15649 (makeword, makelong): Constify a uch*.
15650
15651 1999-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15652
15653 * lang.c (java_dummy_print): Constify a char*.
15654 (lang_print_error): Likewise.
15655 (lang_init): Remove redundant prototype for `print_error_function'.
15656 (lang_init_source): Likewise.
15657 (lang_identify): Constify a char*.
15658
15659 1999-08-09 Tom Tromey <tromey@cygnus.com>
15660
15661 * javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
15662 (WORDS_TO_LONG): Likewise.
15663 (WORDS_TO_DOUBLE): Likewise.
15664
15665 1999-08-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15666
15667 * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).
15668
15669 * expr.c (java_stack_pop, java_array_data_offset,
15670 build_java_throw_out_of_bounds_exception, case_identity,
15671 build_java_check_indexed_type): Add static prototypes.
15672 (linenumber_table, expand_invoke, expand_java_field_op,
15673 build_primtype_type_ref, expand_byte_code): Constify a char*.
15674
15675 * java-tree.h (build_primtype_type_ref, linenumber_table):
15676 Constify a char*.
15677 (java_lang_expand_expr): Add prototype.
15678
15679 * lang.c: Include rtl.h and expr.h. Remove extern prototype for
15680 `java_lang_expand_expr'.
15681
15682 * lex.c (java_lex_error): Constify a char*.
15683 (java_get_unicode, java_read_char, java_allocate_new_line,
15684 java_unget_unicode, java_sneak_unicode): Prototype.
15685
15686 * parse-scan.y (current_class, package_name, method_declarator,
15687 report_class_declaration, yyerror): Constify a char*.
15688
15689 * parse.h (java_report_errors): Prototype.
15690 (yyerror): Constify a char*.
15691
15692 * parse.y (classitf_redefinition_error, check_modifiers,
15693 parse_jdk1_1_error, lookup_package_type,
15694 lookup_package_type_and_set_next, get_printable_method_name,
15695 purify_type_name): Constify a char*.
15696 (build_super_invocation, maybe_generate_finit,
15697 verify_constructor_super, parser_add_interface,
15698 add_superinterfaces, jdep_resolve_class, note_possible_classname,
15699 java_complete_expand_methods, java_expand_finals,
15700 cut_identifier_in_qualified, java_stabilize_reference,
15701 do_unary_numeric_promotion, operator_string, do_merge_string_cste,
15702 merge_string_cste): Prototype.
15703 (single_type_import_declaration, yyerror,
15704 variable_redefinition_error, build_array_from_name,
15705 build_unresolved_array_type, check_class_interface_creation,
15706 resolve_class, complete_class_report_errors,
15707 note_possible_classname, read_import_dir,
15708 find_in_imports_on_demand, resolve_package, fix_constructors,
15709 check_deprecation, lookup_method_invoke,
15710 maybe_build_primttype_type_ref, array_constructor_check_entry):
15711 Constify a char*.
15712 (java_complete_expand_methods, java_expand_finals): Make static.
15713 (convert_narrow): Remove static prototype.
15714
15715 1999-08-03 J"orn Rennecke <amylaar@cygnus.co.uk>
15716
15717 * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.
15718
15719 1999-08-02 Richard Henderson <rth@cygnus.com>
15720
15721 * decl.c: Include defaults.h instead of expr.h.
15722 * parse.y: Likewise.
15723
15724 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
15725
15726 * java/decl.c (start_java_method): Change all uses of
15727 PROMOTE_PROTOTYPES, so that it tests it as a C expression.
15728 Ensure expr.h is included.
15729 * java/expr.c (pop_arguments): Ditto.
15730 * java/parse.y (expand_start_java_method): Ditto.
15731
15732 1999-08-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15733
15734 * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
15735
15736 1999-07-31 Bernd Schmidt <bernds@cygnus.co.uk>
15737
15738 * decl.c: Include "function.h".
15739 * except.c: Likewise.
15740 * parse.y: Likewise.
15741 * Makefile.in: Update dependencies.
15742
15743 1999-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15744
15745 * expr.c (build_java_soft_divmod): Provide a default case in switch.
15746 (java_lang_expand_expr): Mark parameters `target', `tmode' and
15747 `modifier' with ATTRIBUTE_UNUSED.
15748
15749 * gjavah.c (process_file): Add braces around ambiguous `else'.
15750
15751 * jcf-dump.c (print_access_flags, localvar_free): Change return
15752 type to void.
15753
15754 * parse.y (java_complete_expand_method): Initialize variable
15755 `exception_copy'.
15756 (resolve_qualified_expression_name): Likewise for `field_decl'.
15757 (patch_method_invocation): Likewise for `class_to_search'.
15758 (qualify_ambiguous_name): Likewise for `name' and `ptr_type'.
15759 (patch_assignment): Likewise for `lhs_type'.
15760
15761 * verify.c (verify_jvm_instructions): Remove unused variable
15762 `caller'.
15763
15764 1999-07-25 Richard Henderson <rth@cygnus.com>
15765
15766 * decl.c (va_list_type_node): New.
15767
15768 1999-07-25 Anthony Green <green@cygnus.com>
15769
15770 * gjavah.c (print_stub): New function.
15771 (METHOD_IS_NATIVE): New macro.
15772 (print_mangled_classname): Make static.
15773 (HANDLE_END_FIELD): Don't emit fields during stub generation.
15774 (process_file): Perform stub generation.
15775 (HANDLE_METHOD): Don't emit class decls during stub
15776 generation.
15777 (HANDLE_END_METHOD): Take into account stub generation.
15778 (print_method_info): Handle stub generation.
15779 (print_stub): New function.
15780 (print_cxx_classname): Make signature consistant with others.
15781 (help): Describe -stubs option.
15782 (main): Create stub file.
15783 (version): Use version.c.
15784 (print_full_cxx_name): New function.
15785 (print_c_decl): Use print_full_cxx_name.
15786
15787 1999-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
15788
15789 * check-init.c (check_init): Handle MAX_EXPR.
15790
15791 1999-07-15 Andrew Haley <aph@cygnus.com>
15792
15793 * lang.c (flag_use_divide_subroutine): New variable.
15794 * typeck.c: (convert_ieee_real_to_integer): Bounds check
15795 fp-to-integer conversion.
15796 (convert): Call convert_ieee_real_to_integer when flag_fast_math
15797 is not set.
15798
15799 * expr.c (build_java_soft_divmod): New function.
15800 (build_java_binop): Call build_java_soft_divmod if
15801 flag_use_divide_subroutine is set.
15802 * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15803 soft_lrem_node: new builtin functions.
15804 (init_decl_processing) Initialize the new builtins.
15805 * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15806 soft_lrem_node: new builtin functions.
15807 (build_java_soft_divmod): New function.
15808 * parse.y: Call build_java_soft_divmod if
15809 flag_use_divide_subroutine is set.
15810 * parse.c: Rebuilt.
15811
15812 * jvspec.c (lang_specific_driver): Always allow an extra arg (for
15813 a --specs= arg) even if not linking.
15814 * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
15815 -fuse-divide-subroutine
15816
15817 1999-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
15818
15819 * parse.y (resolve_and_layout): Check methods only once.
15820 (resolve_qualified_expression_name): Verify thrown exceptions
15821 compatibility.
15822 (check_thrown_exceptions): Reject exceptions thrown in
15823 initializer. Error message tuned.
15824
15825 1999-07-14 Andrew Haley <aph@cygnus.com>
15826
15827 * expr.c (expand_expr): Do not return the last statement in a
15828 block as the block's value.
15829
15830 1999-07-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
15831
15832 * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
15833 CALL_EXPR, to avoid order of evaluation changes.
15834
15835 1999-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
15836
15837 * parse.y (qualify_ambiguous_name): Do not use
15838 IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
15839
15840 1999-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15841
15842 * check-init.c (check_init): Handle MAX_EXPR.
15843 * expr.c (force_evaluation_order): Force method call arguments to
15844 be evaluated in left-to-right order.
15845 * parse.y (qualify_ambiguous_name): Loop again to qualify
15846 NEW_ARRAY_EXPR properly.
15847
15848 1999-06-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
15849
15850 * parse.y (patch_invoke): Resolve unresolved invoked method
15851 returned type.
15852 (qualify_ambiguous_name): STRING_CST to qualify expression for
15853 type name resolution.
15854
15855 1999-06-24 Andrew Haley <aph@cygnus.com>
15856
15857 * class.c (finish_class): Whenever a deferred method is
15858 output, rescan the list of methods to see if a new candidate for
15859 output can be found.
15860
15861 1999-06-28 Tom Tromey <tromey@cygnus.com>
15862
15863 * jvspec.c (lang_specific_driver): Recognize --help.
15864
15865 1999-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
15866
15867 * parse.y (resolve_package): Fixed bogus return statement.
15868 (patch_method_invocation): Resolve method invocation beginning with
15869 a package name qualifier.
15870
15871 1999-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15872
15873 * Make-lang.in (java.stage1): Depend on stage1-start.
15874 (java.stage2): Likewise for stage2-start.
15875 (java.stage3): Likewise for stage3-start.
15876 (java.stage4): Likewise for stage4-start.
15877
15878 1999-06-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15879
15880 * parse.y (java_complete_lhs): When doing cross referencing, don't
15881 try to keep file location on a WFL expanded as a CALL_EXPR.
15882
15883 1999-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
15884
15885 * parse.y (finish_method_declaration): Insert a RETURN_EXPR when
15886 compiling to class file a void method with an empty method body.
15887 As a side effect, the bytecode backend will generate the
15888 appropriate `return' instruction.
15889
15890 1999-06-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
15891
15892 * parse.y (lookup_package_type_and_set_next): New function prototype.
15893 (resolve_package): Search current and imported packages.
15894 (lookup_package_type_and_set_next): New function.
15895
15896 1999-06-22 Andrew Haley <aph@cygnus.com>
15897
15898 * verify.c (verify_jvm_instructions): Check for pending blocks
15899 before invalid PC test and opcode switch, not after.
15900
15901 1999-06-21 Andrew Haley <aph@cygnus.com>
15902
15903 * except.c (find_handler_in_range): The upper limit for exception
15904 ranges is exclusive, not inclusive: (start <= pc < end).
15905 (link_handler): find child pointer which points to outer by
15906 searching sibling list: previous code incorrectly assumed that
15907 outer->outer->first_child must point to outer.
15908 * verify.c (verify_jvm_instructions): FIXME added to code for
15909 `athrow'.
15910 (verify_jvm_instructions): Do not assume that the last block
15911 processed in a subroutine is a block which ends with a `ret'
15912 instruction. With some control flows it is possible that the last
15913 block ends with an `athrow'.
15914
15915 1999-06-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15916
15917 * parse.y (qualify_ambiguous_name): Reorganized the post
15918 evaluation of non WFL leading expression nodes.
15919
15920 1999-06-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
15921
15922 * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
15923 CONVERT_EXPR.
15924
15925 1999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
15926
15927 * parse.y (qualify_ambiguous_name): Handle qualified expression
15928 beginning with a STRING_CST.
15929
15930 1999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
15931
15932 * parse.y (register_fields): Set DECL_INITIAL on both
15933 pre-initialized static and public fields.
15934 (resolve_field_access): Static field access expressions to always
15935 use pointer types.
15936 (qualify_ambiguous_name): Work out buried CALL_EXPR for proper
15937 qualification. CONVERT_EXPR to be resolved as an expression name.
15938 (java_complete_lhs): Identify and access qualified final
15939 initialized field in switch statement case expression.
15940 (fold_constant_for_init): Pre-initialized field decl constant to
15941 be folded.
15942
15943 1999-06-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
15944
15945 * parse.y (note_possible_classname): Mark returned node with
15946 QUALIFIED_P only if the original class name contained a '/'.
15947
15948 1999-06-05 Anthony Green <green@cygnus.com>
15949
15950 * Make-lang.in (gcjh): More parallel build fixes.
15951
15952 1999-06-03 Mike Stump <mrs@wrs.com>
15953
15954 * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds.
15955
15956 1999-06-02 Anthony Green <green@cygnus.com>
15957
15958 * except.c (link_handler): Chain exception handlers in order.
15959
15960 1999-06-02 Anthony Green <green@cygnus.com>
15961
15962 * expr.c (expand_byte_code): Fill unreachable bytecode regions
15963 with nops and process as usual in order to always set correct EH
15964 ranges. Emit detailed warnings about unreachable bytecodes.
15965
15966 1999-06-02 Anthony Green <green@cygnus.com>
15967
15968 * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as
15969 constant.
15970
15971 1999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
15972
15973 * parse.y (lookup_field_wrapper): Unified returned value to NULL
15974 or the searched field decl.
15975
15976 1999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
15977
15978 * parse.y (fold_constant_for_init): Convert numerical constant
15979 values to the type of the assigned field.
15980
15981 1999-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
15982
15983 * expr.c (lookup_field): Relaxed the test on class loading error
15984 detection.
15985 * parse.y (fold_constant_for_init): Enabeled old code.
15986
15987 1999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
15988
15989 * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
15990 decide the validity of the cast of a java.lang.Cloneable reference
15991 to an array.
15992 (patch_conditional_expr): Fixed first argument passed to
15993 binary_numeric_promotion.
15994
15995 1999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
15996
15997 * parse.y (qualify_ambiguous_name): Take into account that a
15998 CONVERT_EXPR might specify a type as a WFL.
15999
16000 1999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
16001
16002 * parse.y (patch_assignment): Save the rhs before using it as an
16003 argument to _Jv_CheckArrayStore.
16004
16005 1999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
16006
16007 * lex.c (java_parse_doc_section): Fixed `tag' buffer size.
16008
16009 1999-05-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
16010
16011 * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
16012 floating point literal only when the exponent indicator has been
16013 parsed.
16014
16015 1999-05-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16016
16017 * parse.y (formal_parameter:): Construct argument tree list
16018 element even if a yet unsupported final parameter was encountered.
16019
16020 1999-05-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
16021
16022 * parse.y (finish_method_declaration): Issue errors for native or
16023 abstract methods declared with a method body, as well as for non
16024 native or non abstract methods with no method body.
16025
16026 1999-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16027
16028 * class.c (build_utf8_ref): Initialize variable `field'.
16029
16030 * decl.c (init_decl_processing): Initialize variable `field'.
16031
16032 * expr.c (build_known_method_ref): Mark parameters `method_type',
16033 `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
16034 (process_jvm_instruction): Likewise for parameter `length'.
16035
16036 * jvspec.c (lang_specific_driver): Mark variables `saw_math',
16037 `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
16038 ATTRIBUTE_UNUSED.
16039
16040 * parse.y (maybe_generate_clinit): Remove unused variable
16041 `has_non_primitive_fields'.
16042 (find_in_imports_on_demand): Initialize variables `node_to_use'
16043 and `cl'.
16044 (patch_binop): Likewise for variable `prom_type'.
16045 (patch_unaryop): Likewise for variable `prom_type'.
16046
16047 * verify.c (verify_jvm_instructions): Likewise for variable `last'.
16048
16049 * xref.c (xref_table): Add missing initializer.
16050
16051 1999-05-14 Tom Tromey <tromey@cygnus.com>
16052
16053 * java-except.h (struct eh_range): Removed unused `next' member.
16054 * verify.c (verify_jvm_instructions): Call check_nested_ranges
16055 after adding all exception handlers. Sort exception ranges in
16056 order of start PC.
16057 (struct pc_index): New structure.
16058 (start_pc_cmp): New function.
16059 * except.c (add_handler): Return `void'. Don't call link_handler;
16060 instead construct an ordinary linked list and do range
16061 coalescing.
16062 (check_nested_ranges): New function.
16063 (link_handler): Changed interface to allow merging of eh_ranges.
16064 Split overlapping ranges. Return `void'.
16065
16066 1999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16067
16068 * parse.y (constructor_block_end:): New rule, tagged <node>.
16069 (constructor_body:): Use `constructor_block_end' instead of
16070 `block_end'.
16071
16072 1999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16073
16074 * parse.y (statement_nsi:): Pop `for' statement block.
16075 (java_complete_lhs): Labeled blocks containing no statement are
16076 marked as completing normally.
16077
16078 1999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
16079
16080 * xref.c (xref_set_current_fp): New function, defined.
16081 * xref.h (xref_set_current_fp): New function, prototyped.
16082
16083 1999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
16084
16085 * check-init.c (check_init): Take into account that
16086 LABELED_BLOCK_STMT can be empty.
16087
16088 1999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
16089
16090 * parse.y (java_check_regular_methods): Warning check on not
16091 overriding methods with default access in other packages does not
16092 apply to `<clinit>'.
16093 (java_complete_lhs): If block body is an empty_stmt_node, replace
16094 it by NULL_TREE. This prevents gcc from generating an irrelevant
16095 warning.
16096
16097 1999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
16098
16099 * check-init.c (check_init): Removed code accepting to see things
16100 falling through default:, when doing xrefs.
16101 * java-tree.h (do_not_fold): New global variable, declared.
16102 * parse.y (do_not_fold): New global variable, defined.
16103 (java_complete_expand_method): Set `do_not_fold' to the value of
16104 `flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
16105 and reinstall them after them have been purged; do not check for
16106 initializations; do not issue missing return errors.
16107 (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
16108 when doing xrefs.
16109 (patch_binop): Skip the fold part when doing xrefs.
16110 (build_string_concatenation): Skip the concatenation part when
16111 doing xrefs.
16112 (patch_synchronized_statement): Do not generate a try-finally when
16113 doing xrefs.
16114 (patch_throw_statement): When doing xrefs, do not call BUILD_THROW
16115 and keep the location where the throw was seen.
16116 * typeck.c (convert): When `do_not_fold' is set, do not attempt
16117 any treatment on the converted node an simply return a NOP_EXPR of
16118 the targeted type.
16119 * xref.c (xref_get_data): New function, defined.
16120 * xref.h (xref_get_data): New function, declared.
16121 (XREF_GET_DATA): Use xref_get_data.
16122
16123 1999-05-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16124
16125 * gjavah.c (print_include): Cast the result of `strlen' to int
16126 when comparing against a signed value.
16127 (add_namelet): Likewise.
16128
16129 1999-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16130
16131 * expr.c (expand_invoke): Mark parameter `nargs' with
16132 ATTRIBUTE_UNUSED.
16133 (PRE_LOOKUP_SWITCH): Likewise for variable `match'.
16134
16135 * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with
16136 ATTRIBUTE_UNUSED.
16137
16138 * jcf-reader.c (get_attribute): Cast a value to long
16139 when comparing against a signed expression. Likewise.
16140
16141 * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or
16142 HOST_BITS_PER_CHAR.
16143
16144 1999-05-11 Andrew Haley <aph@cygnus.com>
16145
16146 * parse.y (source_end_java_method): If the current method contains
16147 any exception handlers, force asynchronous_exceptions: this is
16148 necessary because signal handlers in libjava may throw exceptions.
16149 * decl.c (end_java_method): Ditto.
16150
16151 1999-05-11 Tom Tromey <tromey@cygnus.com>
16152
16153 * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x
16154 flags.
16155 * jvspec.c (THREAD_NAME): Removed.
16156 (GC_NAME): Likewise.
16157 (MATHLIB): Likewise.
16158 (WITHLIBC): Likewise.
16159 (GCLIB): Likewise.
16160 (THREADLIB): Likewise.
16161 (MATH_LIBRARY): Likewise.
16162 (lang_specific_driver): Don't add `-l' options to command line.
16163 Instead, add a single --specs option. Recognize `-L' options and
16164 use them to search for spec file.
16165 (find_spec_file): New function.
16166 (SPEC_FILE): New define.
16167
16168 1999-05-11 Dave Brolley <brolley@cygnus.com>
16169
16170 * lang-options.h: -MD, -MMD, -M and -MM not needed here for
16171 cpplib-enabled build.
16172
16173 1999-05-05 Per Bothner <bothner@cygnus.com>
16174
16175 * class.c (make_field_value): DECL_INITIAL may be a string literal;
16176 temporarily zero it while calling rest_of_decl_compilation.
16177
16178 * java-tree.h (string_ptr_type_node): Add declaration.
16179 * decl.c: Define and initialize string_ptr_type_node.
16180 * parse.y (patch_string_cst): Use string_ptr_type_node.
16181
16182 * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P): Removed.
16183 * parse.y (for_statement): Now unconditionally exit_block.
16184 (finish_labeled_statement): No longer exit_block if for-loop.
16185 (patch_loop_statement): Check harder if the loop is already labeled.
16186
16187 * parse.y (patch_initialized_static_field): Removed function.
16188 (maybe_generate_clinit): Removed special handling for interfaces.
16189 (java_complete_expand_methods): Do a preliminary java_complete_tree
16190 on <clinit> to determine if it can be removed.
16191 (java_complete_expand_method): Remove special handling for <clinit>.
16192 (java_complete_lhs): For BLOCK and EXPR_WITH_FILE_LOCATION
16193 optimize if we get back empty_stmt_node.
16194 For MODIFY_EXPR, re-do checking of static initializers.
16195 (fold_constant_for_init): Don't return immediate if VAR_DECL.
16196 For VAR_DECL, pass correct context.
16197
16198 * verify.c (verify_jvm_instructions): Better error messages.
16199
16200 1999-05-03 Tom Tromey <tromey@cygnus.com>
16201
16202 * parse-scan.y (interface_declaration): Call
16203 report_class_declaration for interfaces.
16204
16205 1999-04-30 20:54 -0400 Zack Weinberg <zack@rabi.columbia.edu>
16206
16207 * Makefile.in: Remove -v from bison command lines.
16208
16209 1999-04-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
16210
16211 * check-init.c (check_init): Exclude a case of error when doing
16212 xrefs.
16213 * class.c (layout_class_method): Don't generate the error message
16214 twice when compiling from source.
16215 * lang-options.h: Added `-Wredundant-modifers' and
16216 `-Wunusupported-jdk11' flags and help text.
16217 * lang.c (lang_decode_option): Added support for
16218 `-Wunsupported-jdk11' and `-Wredundant-modifiers'.
16219 flag_static_local_jdk11 and flag_redundant set accordingly.
16220 * lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
16221 * parse.h (EXPR_WFL_ADD_COL): New macro.
16222 (DECL_END_SOURCE_LINE): Likewise.
16223 (DECL_INHERITED_SOURCE_LINE): Likewise.
16224 * parse.y (static_ref_err): New function, prototyped.
16225 (CCB_TK): Now tagged <operator>.
16226 (class_body:): Remember the location of the closing '}' of a class
16227 definition when doing xrefs.
16228 (block:): Likewise.
16229 (block_end:): Likewise.
16230 (create_class): Remember the location of the inherited class
16231 identifier when doing xrefs.
16232 (register_fields): Added test on first operand of `init' before
16233 testing it TREE_CODE.
16234 (method_header): Store the location of the class identifier in the
16235 class decl when doing xrefs.
16236 (finish_method_declaration): Don't combine first/last method line
16237 when doing xref.
16238 (java_check_regular_methods): Warning check on not overriding
16239 methods with default access on other packages move before check on
16240 static methods. Initialization of `aflags' also moved up.
16241 (resolve_expression_name): Call static_ref_err to report the error.
16242 (static_ref_err): New function, implemented.
16243 (resolve_field_access): Returned simplified static field access
16244 when doing xrefs.
16245 (resolve_qualified_expression_name): Check for illegal use of
16246 static fields in a non static context. Call static_ref_err to
16247 report error in various places.
16248 (java_complete_tree): Do not fold initialized static fields when
16249 doing xrefs.
16250 (java_complete_lhs): Likewise.
16251
16252 1999-04-29 Anthony Green <green@cygnus.com>
16253
16254 * expr.c (generate_name): Use ASM_GENERATE_INTERNAL_LABEL to
16255 create internal labels.
16256 (lookup_label): Ditto.
16257
16258 1999-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
16259
16260 * class.c (layout_class_method): Generate <clinit>'s rtl for
16261 interfaces.
16262 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
16263 for interfaces' <clinit>.
16264 * expr.c (lookup_field): Search for fields in interfaces.
16265 (expand_invoke): Fixed indentation.
16266 (expand_java_field_op): Likewise. Use IS_CLINIT.
16267 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed.
16268 (IS_CLINIT): New macro.
16269 * parse.y (type_declaration:): Call maybe_generate_clinit after an
16270 interface was parsed.
16271 (maybe_generate_clinit): Don't generate if the current class is an
16272 interface with only fields of primitive types.
16273 (reset_method_name): Use IS_CLINIT.
16274 (java_complete_expand_method): Expand <clinit> when it exists for
16275 interfaces. Use IS_CLINIT.
16276 (resolve_expression_name): Use DECL_CONTEXT instead of
16277 current_class to build static field references.
16278 (java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on
16279 ARRAY_REF when doing xreferencing.
16280 (check_final_assignment): Fixed typo in leading comment. Use
16281 IS_CLINIT.
16282 (patch_array_ref): Don't fully expand array references when
16283 xreferencing.
16284 (patch_return): Use IS_CLINIT.
16285 (patch_throw_statement): Likewise.
16286
16287 1999-04-22 Tom Tromey <tromey@cygnus.com>
16288
16289 * Make-lang.in (JAVA_SRCS): Added check-init.c.
16290
16291 1999-04-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
16292
16293 * decl.c (predef_filenames, predef_filenames_size): New globals
16294 (init_decl_processing): predef_filenames and predef_filenames_size
16295 initialized.
16296 * java-tree.h (predef_filenames, predef_filenames_size): Declared
16297 extern.
16298 * jcf-parse.c (predefined_filename_p): New function.
16299 (yyparse): Check that files on the command line are specified only
16300 once and issue a warning otherwise.
16301 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro.
16302 * parse.y (source_end_java_method): Nullify NOP method bodies, to
16303 avoid a gcc warning with -W -Wall turned on.
16304 (java_expand_classes): Abort if errors were encountered.
16305 (java_complete_lhs): If the cross reference flag is set, wrap
16306 field DECL node around a WFL when resolving expression name.
16307
16308 1999-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
16309
16310 * lang.c (lang_decode_option): Fixed returned value when parsing
16311 `-fxref=...' and `-Wall'.
16312 * parse.y (source_end_java_method): Do not generate code when
16313 flag_emit_xref is set.
16314 (resolve_expression_name): Do not build static field access when
16315 flag_emit_xref is set.
16316 (resolve_field_access): No special treatment on `length' when
16317 flag_emit_xref is set. Do not build qualified static field access
16318 when flag_emit_xref is set.
16319 (patch_invoke): Keep the method DECL as operand 0 of the CALL_EXPR
16320 when flag_emit_xref is set.
16321 (patch_assignment): Do not generate array store runtime check when
16322 flag_emit_xref is set.
16323 * xref.c (xref_flag_value): Fixed function declaration
16324 indentation.
16325 (xset_set_data): New function.
16326 * xref.h (xref_set_data): Added prototype for new function.
16327 (typedef struct xref_flag_table): New field data.
16328 (XREF_GET_DATA): New macro.
16329
16330 1999-04-19 Tom Tromey <tromey@cygnus.com>
16331
16332 * xref.h (enum): Removed trailing comma.
16333
16334 * parse.y (resolve_qualified_expression_name): Added missing
16335 `break'.
16336
16337 1999-04-15 Anthony Green <green@cygnus.com>
16338
16339 * gjavah.c: New prototypes for java_float_finite and
16340 java_double_finite.
16341
16342 1999-04-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
16343
16344 * parse.y (patch_unaryop): Fixed ++/-- operator check on array
16345 references.
16346
16347 1999-04-06 Jeffrey A Law (law@cygnus.com)
16348
16349 * Makefile.in (TREE_H): Add tree-check.h.
16350 (RTL_H): Add genrtl.h.
16351
16352 1999-04-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
16353
16354 * parse.y (patch_assignment): Added ArrayStoreException runtime
16355 check.
16356
16357 1999-04-06 Per Bothner <bothner@cygnus.com>
16358
16359 * expr.c (pop_type_0): New function.
16360 (pop_type): Use pop_type_0.
16361 * java-tree.h (pop_type_0): New declaration.
16362 * verify.c (verify_jvm_instructions): Check return instructions.
16363
16364 * parse.y (patch_binop): Don't fold if non-constant and emiting
16365 class files.
16366
16367 1999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16368
16369 * Makefile.in (gjavah.o): Depend on $(JAVA_TREE_H).
16370
16371 * gjavah.c: Include math.h earlier. Include tree.h/java-tree.h.
16372 (main_jcf): Don't define.
16373 (process_file): Don't set `main_jcf'.
16374
16375 * java-tree.h (main_jcf): Don't declare.
16376
16377 * jcf-parse.c (main_jcf): Add static definition.
16378
16379 * lang.c (main_jcf): Don't define.
16380
16381 1999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16382
16383 * class.c (add_method_1): Cast the argument of `bzero' to PTR.
16384
16385 * decl.c (copy_lang_decl): Likewise for `bcopy'.
16386
16387 * jcf-depend.c: Include "config.h", not <config.h>.
16388
16389 * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
16390 `bcopy' to PTR.
16391
16392 * jcf-path.c: Include "config.h", not <config.h>.
16393
16394 * lex.c: Don't include various system header files.
16395 (java_init_lex): Cast the argument of `bzero' to PTR
16396
16397 * parse-scan.y (java_push_parser_context): Likewise.
16398
16399 * parse.y (java_push_parser_context): Likewise.
16400 (patch_bc_statement): Match format specifier to variable argument.
16401
16402 * xref.c: Don't include <stdio.h>.
16403
16404 1999-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
16405
16406 * parse.y (struct parser_ctxt *ctxp): Now global.
16407 (declare_local_variables): Use WFL compound value for the
16408 declaration source line value, when doing cross-referencing.
16409
16410 1999-03-31 Tom Tromey <tromey@cygnus.com>
16411
16412 * gjavah.c (print_field_info): Allow constants of other types.
16413 (print_include): Generate include when new name is proper prefix
16414 of already printed name.
16415 (add_namelet): Likewise.
16416 (cxx_keyword_subst): New function.
16417 (print_method_info): Use it.
16418 (print_field_name): New function.
16419 (get_field_name): New function.
16420 (print_field_info): Use get_field_name and print_field_name.
16421
16422 1999-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16423
16424 * Makefile.in (keyword.h): Generate using gperf language 'C', not
16425 'KR-C', so gperf uses the `const' keyword on strings.
16426
16427 * keyword.gperf (java_keyword): Const-ify a char*.
16428
16429 1999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
16430
16431 * parse.y (patch_bc_statement): Fixed identation and a bogus
16432 `printf' format.
16433
16434 1999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
16435
16436 * parse.y (patch_assignment): Allow static variables in other
16437 classes to be assigned.
16438
16439 1999-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16440
16441 * class.c (maybe_add_interface): Remove unused variable
16442 `interface_binfo'.
16443 (make_class_data): Use = for assignment, not ==. Likewise.
16444 (emit_register_classes): Remove unused variable `decl'.
16445
16446 * lex.c: Fix comment so as not to contain an embedded `/*'.
16447
16448 * verify.c (verify_jvm_instructions): Remove unused variable
16449 `self_type'.
16450
16451 1999-03-27 Per Bothner <bothner@cygnus.com>
16452
16453 * parse.y (complete_loop_body): Rename to finish_loop_body.
16454 (complete_labeled_statement): Rename to finish_labeled_statement.
16455 (complete_for_loop): Rename to finish_for_loop.
16456 (complete_method_declaration): Rename to finish_method_declaration.
16457
16458 * java-tree.h (continue_identifier_node): New global node.
16459 * decl.c: Define and initialize continue_identifier_node.
16460 * parse.y (generate_labeled_block): Remove - no longer needed.
16461 (build_loop_body): Use continue_identifier_node for continue block.
16462 (finish_labeled_statement): Also do pop_labeled_block actions.
16463 (java_complete_lhs): POP_LOOP even if error.
16464 (build_labeled_block): Special handling for continue_identifier_node.
16465 (patch_loop_statement): Re-organize.
16466 (patch_bc_statement): Re-write.
16467
16468 1999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
16469
16470 * parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count
16471 using a WFL compound value.
16472 * parse.y (xref.h): Include.
16473 (maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the
16474 WFL compound value.
16475 (register_fields): Set WFL compound value to lineno if doing
16476 xrefs.
16477 (java_complete_expand_method): Call expand_xref if flag_emit_xref
16478 is set.
16479 * xref.c (system.h, jcf.h, parse.h, obstack.h): Include.
16480 * xref.h (expand_xref): Prototype renamed from xref_generate.
16481
16482 1999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
16483
16484 * parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK.
16485 (GET_CURRENT_BLOCK): New macro.
16486 * parse.y (current_static_block): New global variable.
16487 (method_body:): Define action.
16488 (complete_method_declaration): Set current_function_decl to NULL
16489 when work on the current method is done.
16490 (declare_local_variables): Use GET_CURRENT_BLOCK.
16491 (java_method_add_stmt): Likewise.
16492 (java_complete_expand_method): Disable the use of `this' when
16493 expanding <clinit>.
16494 (enter_a_block): If no current method exist, use
16495 current_static_block to link static initializer blocks.
16496 (exit_block): Rewritten to use current_static_block when no current
16497 method decl exists.
16498 (lookup_name_in_blocks): Use GET_CURRENT_BLOCK.
16499 (patch_return): Forbid the use of `return' in static initializers.
16500 (patch_throw_statement): Fixed indentation. Issue specific error
16501 for uncaught thrown checked exception in static initializer
16502 blocks. Removed FIXME.
16503
16504 1999-03-25 Zack Weinberg <zack@rabi.columbia.edu>
16505
16506 * java/Make-lang.in: Remove all references to gcj.o/gcj.c.
16507 Link gcj from gcc.o.
16508
16509 1999-03-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
16510
16511 * parse.y (find_applicable_accessible_methods_list): When dealing
16512 with interface: ensure that a given interface or java.lang.Object
16513 are searched only once.
16514
16515 1999-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16516
16517 * gjavah.c (print_c_decl): Remove unused argument `flags'.
16518
16519 * jcf-dump.c (print_access_flags): Add braces around if-else.
16520
16521 * jvspec.c (lang_specific_driver): Wrap variable `len' in macro
16522 COMBINE_INPUTS.
16523
16524 * lex.c (build_wfl_node): Add static prototype.
16525
16526 * lex.h (build_wfl_node): Remove static prototype.
16527
16528 * parse.y: Include lex.c early enough to declare everything needed.
16529 Ensure calls to `build_wfl_node' pass the proper arguments.
16530 (create_class): Remove unused variable `super_decl'.
16531 (get_printable_method_name): Initialize variable `name'.
16532
16533 1999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16534
16535 * Changelog: Fixed 1999-03-22 typos.
16536 * lang.c (lang_decode_option): Fixed typo in error string in the
16537 XARG section.
16538
16539 1999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16540
16541 * Makefile.in (JAVA_OBJS): Added entry xref.o.
16542 (xref.o): New rule.
16543 * java-tree.h (flag_emit_xref): Declared extern.
16544 * lang.c (xref.h): Included.
16545 (flag_emit_xref): New global variable.
16546 (lang_decode_option): Added support for -fxref.
16547 * xref.c: Created.
16548 * xref.h: Likewise.
16549
16550 1999-03-21 Manfred Hollstein <manfred@s-direktnet.de>
16551
16552 * Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be
16553 linked with.
16554
16555 1999-03-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16556
16557 * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
16558 $(srcdir)/../system.h and $(JAVA_TREE_H).
16559 (jcf-io.o): Depend on $(JAVA_TREE_H).
16560 (mangle.o): Likewise.
16561
16562 * check-init.c (check_cond_init): Add static prototype.
16563
16564 * class.c (build_java_method_type, hashUtf8String,
16565 make_field_value, get_dispatch_vector, get_dispatch_table,
16566 append_gpp_mangled_type, mangle_static_field): Likewise.
16567 (strLengthUtf8): Hide unused definition.
16568 (hashUtf8String): Const-ify.
16569 (make_field_value): Un-ANSI-fy.
16570
16571 * constants.c: Move inclusion of jcf.h above java-tree.h.
16572 (set_constant_entry, find_class_or_string_constant,
16573 find_name_and_type_constant, get_tag_node,
16574 build_constant_data_ref): Add static prototype.
16575
16576 * decl.c (push_jvm_slot, builtin_function,
16577 lookup_name_current_level): Likewise.
16578 (builtin_function): Const-ify.
16579
16580 * except.c (expand_start_java_handler, expand_end_java_handler):
16581 Add static prototype.
16582
16583 * expr.c (flush_quick_stack, push_value, pop_value,
16584 java_stack_swap, java_stack_dup, build_java_athrow,
16585 build_java_jsr, build_java_ret, expand_java_multianewarray,
16586 expand_java_arraystore, expand_java_arrayload,
16587 expand_java_array_length, build_java_monitor, expand_java_pushc,
16588 expand_java_return, expand_java_NEW, expand_java_INSTANCEOF,
16589 expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label,
16590 expand_compare, expand_test, expand_cond, expand_java_goto,
16591 expand_java_call, expand_java_ret, pop_arguments, expand_invoke,
16592 expand_java_field_op, java_push_constant_from_pool): Likewise.
16593
16594 (decode_newarray_type, expand_iinc): Un-ANSI-fy.
16595 (build_java_arraynull_check): Mark parameters `node' and `type'
16596 with ATTRIBUTE_UNUSED.
16597 (note_label): Likewise for parameter `current_pc'.
16598 (expand_java_call, expand_java_ret): Hide unused definition.
16599
16600 * java-tree.h (make_class, build_constants_constructor,
16601 java_set_exception_lang_code, pop_labeled_block, emit_handlers,
16602 init_outgoing_cpool, register_class, emit_register_classes,
16603 java_layout_seen_class_methods): Prototype.
16604 (unicode_mangling_length): Const-ify.
16605 (append_gpp_mangled_name, append_gpp_mangled_classtype,
16606 emit_unicode_mangled_name, format_int, format_uint,
16607 jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
16608 jcf_print_utf8_replace, open_class): Prototype.
16609
16610 * jcf-dump.c: Include "config.h", not <config.h>. Don't include
16611 <stdio.h>. Include tree.h/java-tree.h.
16612 (utf8_equal_string usage, process_class): Add static prototype.
16613 (open_class): Don't prototype this here.
16614 (utf8_equal_string): Match arguments to format specifiers.
16615 (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
16616 TABLE_SWITCH, disassemble_method): Likewise.
16617
16618 * jcf-io.c: Include tree.h/java-tree.h.
16619 (open_class, find_classfile, jcf_print_utf8,
16620 jcf_print_utf8_replace): Const-ify.
16621
16622 * jcf-parse.c (parse_zip_file_entries, process_zip_dir,
16623 parse_class_file): Add static prototype.
16624 (find_in_current_zip): Match definition to existing static
16625 prototype.
16626
16627 * jcf-write.c: Include jcf.h before tree.h/java-tree.h.
16628 (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label,
16629 finish_jcf_block, define_jcf_label, get_jcf_label_here,
16630 put_linenumber, localvar_alloc, localvar_free, get_access_flags,
16631 write_chunks, adjust_typed_op, generate_bytecode_conditional,
16632 generate_bytecode_return, perform_relocations, init_jcf_state,
16633 init_jcf_method, release_jcf_state, generate_classfile):
16634 Add static prototype.
16635 (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED.
16636 (make_class_file_name): Const-ify.
16637
16638 * jcf.h (find_classfile): Const-ify.
16639
16640 * jv-scan.c (reset_report): Remove prototype.
16641
16642 * jvgenmain.c: Include jcf.h/tree.h/java-tree.h.
16643 (error): Rewrite to allow varargs.
16644
16645 * lang.c (lang_f_options): Const-ify.
16646
16647 * lex.c (java_parse_escape_sequence): Add static prototype.
16648 (java_allocate_new_line): Match definition to existing static
16649 prototype.
16650
16651 * mangle.c Include tree.h/java-tree.h.
16652 (unicode_mangling_length, emit_unicode_mangled_name,
16653 append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
16654
16655 * parse.h (jdep_code): Remove trailing comma in enumeration.
16656 (java_get_line_col): Move prototype outside of !JC1_LITE test.
16657 (reset_report): Add prototype.
16658
16659 * verify.c (push_pending_label, merge_types): Add static
16660 prototypes.
16661
16662 * zipfile.h (opendir_in_zip, open_in_zip): Prototype.
16663
16664 1999-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
16665
16666 * parse.y (find_applicable_accessible_methods_list): Extend the
16667 search to superinterfaces when relevant.
16668 (search_applicable_methods_list): New function.
16669
16670 1999-03-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
16671
16672 * class.c (unmangle_classname): Implemented stricter testing
16673 before setting the QUALIFIED_P flag on an identifier.
16674
16675 1999-03-16 Per Bothner <bothner@cygnus.com>
16676
16677 * parse.y (java_complete_lhs): Call force_evaluation_order
16678 after patch_newarray.
16679 (patch_binop): Don't call fold if there are side effects.
16680
16681 1999-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
16682
16683 * parse.y (java_stabilize_reference): Use save_expr instead of
16684 building a SAVE_EXPR node.
16685 (java_complete_lhs): Patch the resulting string of the `+='
16686 operator (if necessary) and complete the RHS after having built
16687 the cast.
16688
16689 1999-03-15 Per Bothner <bothner@cygnus.com>
16690
16691 * class.c (make_class): Don't set CLASS_P here (because
16692 this function is also called by build_java_array_type).
16693 (push_class): Set CLASS_P here instead.
16694 * parse.h (TYPE_CLASS_P): Check for TYPE_ARRAY_P is redundant.
16695
16696 * jcf-dump.c (print_access_flags): Take extra parameter to indicate
16697 context. If the context is class, perfer "super" over "synchronized".
16698 * jcf-write.c (generate_classfile): Don't add ACC_SUPER if interface.
16699
16700 * parse.y (create_class): Don't call parser_check_super here;
16701 it is not robust. Always wait until later.
16702
16703 * parse.y (method_header): For interfaces, set ACC_ABSTRACT (to
16704 match what JDK 1.2 does), but don't set ACC_PUBLIC.
16705
16706 1999-03-13 Per Bothner <bothner@cygnus.com>
16707
16708 * lex.c (java_read_char): UNGET invalid non-initial utf8 character.
16709 * lex.h (UNGETC): Change misleading macro.
16710
16711 1999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
16712
16713 * parse.y (java_stabilize_reference): Return NODE when patching a
16714 COMPOUND_EXPR.
16715 (java_complete_lhs): Put parenthesis around truth values.
16716
16717 1999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
16718
16719 * class.c (layout_class_method): Don't make rtl for interface
16720 methods.
16721 * parse.h (GET_TYPE_NAME): New macro.
16722 * parse.y (if_then_statement:): Fixed indentation.
16723 (if_then_else_statement:): Likewise.
16724 (for_statement:): Fixed spacing.
16725 (try_statement:): Fixed indentation.
16726 (create_interface): Don't force interfaces to be abstract.
16727 (method_header): Abstract methods are OK in interfaces.
16728 (declare_local_variables): Fixed typo in comment.
16729 (java_complete_expand_method): Fixed indentation.
16730 (resolve_qualified_expression_name): Use GET_TYPE_NAME to report
16731 non accessible fields.
16732 (java_stabilize_reference): New function.
16733 (java_complete_lhs): Fixed indentation. Use
16734 java_stabilize_reference in compound assignment. Insert the
16735 cast. If not processing `+' fix string constants before processing
16736 binop.
16737
16738 1999-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16739
16740 * constants.c (find_class_or_string_constant): Cast variable `j'
16741 to a `jword' when comparing against one.
16742
16743 * expr.c (java_lang_expand_expr): Remove unused variables
16744 `has_finally_p' and `op0'.
16745
16746 * gjavah.c (print_field_info): Cast a value to jint when comparing
16747 against one. Likewise for a jlong.
16748 (add_namelet): Likewise cast a `sizeof' to an int when comparing
16749 against a signed quantity.
16750
16751 * jcf-dump.c (print_signature_type): Remove unused variable `digit'.
16752 (print_signature): Don't needlessly dereference variable `str'
16753
16754 * jcf-reader.c (get_attribute): Mark variables `max_stack' and
16755 `max_locals' with ATTRIBUTE_UNUSED.
16756 (jcf_parse_class): Likewise for variable `index'.
16757
16758 * parse.h (reverse_jdep_list): Remove static prototype.
16759
16760 * parse.y (build_jump_to_finally): Remove prototype and definition.
16761 (reverse_jdep_list): Add static prototype.
16762
16763 * typeck.c (convert_ieee_real_to_integer): Remove unused variables
16764 `assignment' and `expr_decl'.
16765
16766 * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'.
16767
16768 1999-03-12 Andrew Haley <aph@cygnus.com>
16769
16770 * jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes;
16771 we'll need a directory separator and a null character.
16772
16773 1999-03-10 Per Bothner <bothner@cygnus.com>
16774
16775 * jcf-write.c (generate_bytecode_insns): Handle __builtin_fmod, for %.
16776
16777 Tue Mar 9 11:52:08 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
16778
16779 * parse.y (method_header): Don't set ACC_ABSTRACT flags on
16780 interfaces.
16781
16782 1999-03-05 Per Bothner <bothner@cygnus.com>
16783
16784 * lex.c (java_parse_end_comment): Take extra parameter (next char).
16785
16786 * class.c (build_utf8_ref): Fix possible name class/ambiguity.
16787
16788 * class.c (layout_class_method): A static method in a base class
16789 is never overridden, so treat it like it doesn't exist.
16790 However, do complain about private non-static method overriding
16791 public static method.
16792
16793 * parse.y: Don't set unused INITIALIZED_P flag.
16794 * java-tree.h (INITIALIZED_P): Removed no-longer needed flag.
16795
16796 * parse.y (find_expr_with_wfl): Optimize tail-calls.
16797 (build_array_from_name): Re-order &index[string] to &string[index].
16798
16799 * parse.y (java_complete_lhs): Don't call patch_assignment if rhs is
16800 error_mark (it might catch more errors, but it is more likely to lose).
16801
16802 1999-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16803
16804 * Makefile.in (jcf-parse.o): Depend on $(PARSE_H).
16805 (parse-scan.o): Depend on toplev.h.
16806
16807 * class.c (make_method_value): Add prototype. Make it static.
16808 Remove unused second argument, caller changed.
16809
16810 * expr.c (java_lang_expand_expr): Remove unused variable
16811 `return_label'.
16812
16813 * java-tree.h: Don't prototype find_in_current_zip.
16814 Add prototypes for verify_constant_pool, start_java_method,
16815 end_java_method, give_name_to_locals, expand_byte_code,
16816 open_in_zip, set_constant_value, find_constant1, find_constant2,
16817 find_utf8_constant, find_string_constant, find_class_constant,
16818 find_fieldref_index, find_methodref_index, write_constant_pool,
16819 count_constant_pool_bytes and encode_newarray_type.
16820
16821 * jcf-dump.c: Remove unused variable `LONG_temp'.
16822
16823 * jcf-parse.c: Include parse.h.
16824 (jcf_parse_source): Remove unused parameter, all callers changed.
16825 (jcf_figure_file_type): Add static prototype.
16826 (find_in_current_zip): Likewise. Also remove unused parameter,
16827 all callers changed.
16828 (read_class): Initialize variable `saved_pos'.
16829
16830 * jcf-reader.c (jcf_parse_preamble): Mark variables
16831 `minor_version' and `major_version' with ATTRIBUTE_UNUSED.
16832
16833 * lex.c (java_is_eol): Wrap prototype and definition in !JC1_LITE.
16834 (java_init_lex): Wrap variable `java_lang_imported' in !JC1_LITE.
16835 (java_parse_doc_section): Initialize variable `seen_star'.
16836 (java_lex): Wrap variable `number_beginning' in !JC1_LITE.
16837 (java_lex_error): Mark parameters `msg' and `forward' with
16838 ATTRIBUTE_UNUSED.
16839 (java_get_line_col): Mark parameters `filename' and `line' with
16840 ATTRIBUTE_UNUSED.
16841
16842 * parse-scan.y: Include toplev.h.
16843 (yyerror): Mark parameter `msg' with ATTRIBUTE_UNUSED.
16844
16845 * parse.h: use `struct JCF', not plain `JCF'.
16846 (java_parser_context_save_global, java_expand_classes
16847 java_parser_context_restore_global, java_parse): Add prototypes.
16848
16849 * typeck.c (convert_ieee_real_to_integer): Remove unused variable
16850 `node'.
16851
16852 1999-02-24 Per Bothner <bothner@deneb.cygnus.com>
16853
16854 * check-init.c (check_init): COPYN takes word count, not bit count.
16855
16856 1999-02-26 Per Bothner <bothner@cygnus.com>
16857
16858 * typeck.c (convert_ieee_real_to_integer): Use save_expr instead of
16859 explicit build_decl. (Avoids crash in reload when optimizing.)
16860
16861 1999-02-25 Per Bothner <bothner@cygnus.com>
16862
16863 * decl.c (complete_start_java_method): Handle synchronized method
16864 even when compiling from bytecode.
16865
16866 1999-02-26 Tom Tromey <tromey@cygnus.com>
16867
16868 * gjavah.c (add_class_decl): Only generate `#include' if outer
16869 class is not the name of the class we are processing. Correctly
16870 append `.h' in #include.
16871 (process_file): Clean up newlines around generated `#include's.
16872 (decode_signature_piece): Correctly handle inner classes.
16873 (struct include): New structure.
16874 (all_includes): New global.
16875 (print_include): New function.
16876 (add_class_decl): Use it.
16877 (process_file): Likewise.
16878 (add_class_decl): Generate include for java-array.h if array
16879 seen.
16880 (process_file): Don't generate java-array.h include.
16881
16882 * gjavah.c (add_namelet): Check for standard package names here.
16883 (add_class_decl): Don't check for standard package names here.
16884
16885 1999-02-25 Tom Tromey <tromey@cygnus.com>
16886
16887 * parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
16888 When reading a zip file, only use strncmp if both strings are
16889 bigger than the buffer length. Initialize `k' when looping
16890 through zip file.
16891
16892 1999-02-24 Tom Tromey <tromey@cygnus.com>
16893
16894 * gjavah.c (struct namelet): New structure.
16895 (add_namelet): New function.
16896 (print_namelet): New function.
16897 (print_class_decls): Use add_namelet and print_namelet to generate
16898 namespaces and not classes.
16899 (method_printed): New global.
16900 (HANDLE_END_METHOD): Examine method_printed.
16901 (print_method_info): Set method_printed when required. Print
16902 error if function to be ignored is marked virtual. Handle $finit$
16903 method.
16904 (METHOD_IS_FINAL): New macro.
16905 (print_field_info): Use it.
16906 (HANDLE_METHOD): Clear method_printed.
16907 (method_pass): New global.
16908 (HANDLE_END_FIELD): Call add_class_decl on the first pass.
16909 (process_file): Do two passes over both fields and methods.
16910 (HANDLE_METHOD): Examine method_pass.
16911 (root): New global.
16912 (add_class_decl): New function.
16913 (print_class_decls): Don't scan over entire constant pool.
16914
16915 1999-02-23 Tom Tromey <tromey@cygnus.com>
16916
16917 * jvspec.c (lang_specific_driver): Recognize -fsyntax-only and
16918 disable linking in that case.
16919
16920 1999-02-20 Tom Tromey <tromey@cygnus.com>
16921
16922 * jcf.h (UTF8_GET): Mask first byte of 3-byte encoding with 0x0f,
16923 not 0x1f.
16924
16925 1999-02-21 Per Bothner <bothner@cygnus.com>
16926
16927 * decl.c (build_result_decl), java-tree.h: New method.
16928 (complete_start_java_method): Handle synchronized methods.
16929 Don't build DECL_RESULT here. (Ordering dependency problem.)
16930 (start_java_method): Call build_result_decl here instead ...
16931 * parse.y (java_complete_expand_method): ... and here.
16932 (expand_start_java_method): Don't call complete_start_java_method here.
16933 (java_complete_expand_method): Call it here instead.
16934 * parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Moved to ..
16935 * java-tree.h: ... here.
16936
16937 * expr.c (force_evaluation_order): Fix typo, don't handle ARRAY_REF.
16938 * parse.y (java_complete_lhs): Don't call force_evaluation_order
16939 for ARRAY_REF - it doesn't work when array bounds are checked.
16940 (patch_array_ref): Handle it here instead.
16941
16942 * jcf-write.c (generate_classfile): Emit "Exceptions" attribute.
16943
16944 1999-02-19 Per Bothner <bothner@cygnus.com>
16945
16946 Force left-to-right evaluation of binary operations etc.
16947 * expr.c (force_evaluation_order), java-tree.h: New function.
16948 * parse.y (java_complete_lhs): Pass binary operations, procedure
16949 calls, and ARRAY_REFs to force_evaluation_order.
16950 (various): Set TREE_SIDE_EFFECTS more carefully.
16951
16952 Tolerate random (non-UTF8) encoding in comments without complaining.
16953 * lex.c (java_read_char): Return 0xFFFE if bad UTF8 encoding.
16954 (java_is_eol): Handle '\r' followed by '\n' instead of vice versa.
16955
16956 * parse.y (resolve_qualified_expression_name): Handle error_mark.
16957 (java_complete_node case EXPR_WITH_FILE_LOCATION): Likewise.
16958
16959 * parse.y (java_complete_lhs): Ignore an empty statement in a
16960 COMPOUND_EXPR. Don't complain about empty statement after return.
16961
16962 1999-02-19 Per Bothner <bothner@cygnus.com>
16963
16964 * parse.y (obtain_incomplete_type): Don't wrap unknown types
16965 in TREE_LIST - just chain the POINTER_TYPEs together.
16966 (resolve_class): If type already resolved, return decl.
16967 After resolving, update TREE_TYPE(class_type), and name (if array).
16968 * parse.h (do_resolve_class), parse.y: Make non-static.
16969 * class.c (maybe_layout_super_class): Take this_class argument.
16970 Do do_resolve_class if necessary.
16971 (layout_class, layout_class_methods): Adjust calls appropriately.
16972 * parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
16973 JDEP_RESOLVED_P): Redefined for new TREE_LIST-less convention.
16974 * typeck.c (build_java_array_type): Don't call layout_class.
16975
16976 1999-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16977
16978 * parse.y (check_pkg_class_access): Allow private class access
16979 within the same package.
16980 (strip_out_static_field_access_decl): New function.
16981 (patch_unaryop): Call strip_out_static_field_access_decl on ++/--
16982 operator argument before testing its nature.
16983
16984 1999-02-03 Per Bothner <bothner@cygnus.com>
16985
16986 * java-tree.def (FINALLY_EXPR): Removed. (Now uses TRY_FINALLY_EXPR.)
16987 (TRY_EXPR): Simplify - it no longer has a finally clause.
16988 * check-init.c (check_init): Handle TRY_FINALLY_EXPR.
16989 Simpler handling of TRY_EXPR, which no longer has a finally clause.
16990 * expr.c (java_lang_expand_expr): Likewise.
16991 * java-tree.h (CATCH_EXPR_GET_EXPR): Removed - no longer needed.
16992 * parse.h (java_get_catch_block), parse.y: Removed - no longer needed.
16993 * parse.y (java_complete_lhs): Add support for TRY_FIANLLY_EXPR.
16994 (build_try_statement): Remove finally parameter and handling.
16995 (build_try_finally_statement): New function.
16996 (patch_try_statement): No longer need to support finally clause.
16997 (try_statement): Update grammar action rules.
16998 * jcf-write.c (generate_bytecode_insns): Handle TRY_FINALLY_EXPR.
16999 Simpler handling of TRY_EXPR, which no longer has a finally clause.
17000
17001 1998-11-26 Andrew Haley <aph@viagra.cygnus.co.uk>
17002
17003 * jcf-parse.c (get_constant): Add braces around computation of 'd'
17004 when REAL_ARITHMETIC is not defined. [Oct 26 fix got overwritten -PB]
17005
17006 1999-02-17 Andrew Haley <aph@cygnus.com>
17007
17008 * class.c (build_utf8_ref): Back out broken patch which was
17009 intended to to output signatures using '.' as a separator.
17010
17011 * class.c (make_class_data): Output signatures using '.' as a
17012 separator, rather than '/'.
17013 (mangled_classname): Likewise.
17014 (make_field_value): Likewise.
17015 (make_method_value): Likewise.
17016 * constants.c (alloc_class_constant): Likewise.
17017 * expr.c (build_invokeinterface): Likewise.
17018
17019 1999-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
17020
17021 * parse.y (valid_builtin_assignconv_identity_widening_p): Got rid
17022 of an ancient workaround.
17023
17024 1999-02-10 Jeffrey A Law (law@cygnus.com)
17025
17026 * jvspec.c (xmalloc): Kill the prototype. It does not belong
17027 here anymore.
17028
17029 1999-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
17030
17031 * lex.c (yylex): Encode \0 as UTF8.
17032
17033 1999-02-10 Tom Tromey <tromey@cygnus.com>
17034
17035 * jvspec.c (lang_specific_driver): Use libgcj, not libjava.
17036 * Makefile.in (jcf-path.o): Define LIBGCJ_ZIP_FILE.
17037 (libgcj_zip): Renamed.
17038 * jcf-path.c (add_entry): Use LIBGCJ_ZIP_FILE, not
17039 LIBJAVA_ZIP_FILE.
17040 (jcf_path_init): Use LIBGCJ_ZIP_FILE.
17041
17042 * jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
17043 (GC_NAME): Renamed -lgc to -lgcjgc.
17044
17045 1999-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
17046
17047 * lex.c (java_lang_cloneable): Initialize.
17048 * parse.y (java_lang_cloneable): New static variable.
17049 (qualify_ambiguous_name): Take CONVERT_EXPR into account when
17050 doing one more qualification round.
17051 (valid_ref_assignconv_cast_p): Reject null source or
17052 destination. Allow an array to be cast into java.lang.Cloneable.
17053 (patch_cast): Swapped two first arguments to first call to
17054 valid_ref_assignconv_cast_p.
17055
17056 1999-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
17057
17058 * parse.h: DECL_P renamed JDECL_P.
17059 * parse.y: DECL_P replaced by JDECL_P.
17060 (build_array_from_name): Always use pointer's type.
17061 (patch_bc_statement): Extra code to search continue target in a
17062 for loop. Fixed comments. Continue target is current loop when
17063 unlabeled.
17064
17065 1999-02-05 Andrew Haley <aph@cygnus.com>
17066
17067 * class.c (make_class_data): The superclass of an interface should
17068 be null, not class Object.
17069
17070 * lex.c (java_lex): Sign extend hex literals.
17071
17072 1999-02-04 Andrew Haley <aph@cygnus.com>
17073
17074 * class.c (build_utf8_ref): Output signatures using '.' as a
17075 separator, rather than '/'.
17076 (make_class_data): Likewise.
17077
17078 1999-02-03 Marc Espie <Marc.Espie@liafa.jussieu.fr>
17079
17080 * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
17081 mkstemp.o. Get them from libiberty now.
17082
17083 1999-02-02 Jeffrey A Law (law@cygnus.com)
17084
17085 * jcf-io.c: Do not include sys/stat.h or sys/wait.h
17086
17087 1999-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17088
17089 * jvspec.c (xmalloc): Fix the prototype to match the one obtained
17090 from libiberty.h
17091
17092 1999-02-02 Per Bothner <bothner@cygnus.com>
17093
17094 Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'.
17095 * jcf-write.c (generate_bytecode_return): New function.
17096 (generate_bytecode_insns): Use it, for RETURN_EXPR.
17097
17098 * jcf-write.c (generate_bytecode_insns): For REAL_CST that is 0 or 1,
17099 generate special [fd]const_[01] instructions.
17100
17101 * jcf-parse.c (yyparse): Don't emit_register_classes if -fsyntax-only.
17102
17103 * verify.c (verify_jvm_instructions): Do INVALIDATE_PC after
17104 handling OPCODE_lookupswitch or OPCODE_tableswitch.
17105
17106 1999-02-01 Per Bothner <bothner@cygnus.com>
17107
17108 * parse.y (patch_method_invocation): Handle calling static methods,
17109 even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS).
17110
17111 * parse.y (java_complete_lhs): Don't complain about unreachable
17112 exit condition in a do-while statement.
17113
17114 1999-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
17115
17116 * lex.c (java_read_char): Fixed utf8 decoding.
17117 (java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
17118 range.
17119 * parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
17120 comments. Local variable `all_primitive' is gone. Broadened
17121 acceptance of `0' to floating point targets. `long' can now be
17122 widened to `double' or `float'.
17123 (valid_method_invocation_conversion_p): Added leading
17124 comment. Fixed tabulation.
17125 (build_string_concatenation): Optimize out left or right empty
17126 string constants.
17127
17128 1999-01-28 Per Bothner <bothner@cygnus.com>
17129
17130 * jcf-write.c (localvar_alloc): Only emit entry for
17131 LocalVariableTable if debug_info_level > DINFO_LEVEL_TERSE.
17132 (generate_bytecode_insns): Only call put_linenumber if
17133 debug_info_level > DINFO_LEVEL_NONE.
17134 * jvspec.c (lang_specific_driver): If no -O* or -g* option
17135 is specified, add -g1 (for compatibility wih javac).
17136
17137 1999-01-28 Hans-Peter Nilsson <hp@axis.se>
17138
17139 * java/Makefile.in: Add missing dependencies for jcf-dump.o,
17140 gjavah.o, check-init.o, jv-scan.o
17141
17142 1999-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17143
17144 * Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
17145
17146 * gjavah.c: Include config.h and system.h.
17147
17148 * javaop.h (inline): Don't define, its handled by system.h.
17149 (WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these
17150 from `inline' to `static inline'.
17151
17152 * jcf.h (inline): Don't define, its handled by system.h.
17153
17154 * lex.c (inline): Likewise.
17155
17156 1999-01-31 Zack Weinberg <zack@rabi.columbia.edu>
17157
17158 * lang-specs.h: Map -Qn to -fno-ident.
17159
17160 1999-01-29 Richard Henderson <rth@cygnus.com>
17161
17162 * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo.
17163
17164 1999-01-29 Tom Tromey <tromey@cygnus.com>
17165
17166 * parse.h (BUILD_APPEND): If ARG is a non-String object reference,
17167 then cast it to Object before calling `append' method.
17168
17169 1999-01-28 Per Bothner <bothner@cygnus.com>
17170
17171 * check-init.c (check_bool2_init, check_bool_init, check_init):
17172 Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
17173 * jcf-write.c (generate_bytecode_insns): Likewise.
17174
17175 1999-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
17176
17177 * jcf-parse.c (jcf_parse): Don't parse the same class file twice.
17178 * parse.y (patch_cast): Allow a boolean to be cast into a
17179 boolean.
17180
17181 1999-01-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
17182
17183 * parse.y: (class_declaration:): Fixed indentation.
17184 (class_member_declaration:): Extra `;' after field declaration now
17185 accepted.
17186 (interface_declaration:): Removed debug messages in error reports.
17187 (patch_binop): Nodes created and returned inherit the orignal
17188 node's COMPOUND_ASSIGN_P flag value.
17189 (patch_cast): Fix cast from char to floating point.
17190
17191 1999-01-25 Andrew Haley <aph@cygnus.com>
17192
17193 * except.c, java-except.h (expand_resume_after_catch): new
17194 function.
17195 * expr.c (java_lang_expand_expr): call expand_resume_after_catch
17196 to branch back to main flow of control after a catch block.
17197
17198 1999-01-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17199
17200 * Makefile.in (parse.o): Depend on $(CONFIG_H) and
17201 $(srcdir)/../system.h.
17202 (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
17203 (jcf-parse.o): Depend on $(srcdir)/../toplev.h.
17204 (jcf-write.o): Likewise.
17205 (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17206 (mangle.o): Depend on $(srcdir)/../toplev.h.
17207 (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17208 (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17209
17210 * class.c: Include output.h and parse.h.
17211 (mangled_classname): Add the `const' keyword to a char*.
17212 (find_named_method): Hide unused function definition.
17213 (build_utf8_ref): Change type of variable `c' to unsigned char.
17214 Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
17215 (build_class_ref): Add the `const' keyword to a char*.
17216 (layout_class_method): Remove unused variable `buf'.
17217
17218 * decl.c (find_local_variable): Remove unused variable `rtl'.
17219 (pushdecl): Likewise for variables `different_binding_level' and
17220 `oldglobal'.
17221 (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
17222 (maybe_build_cleanup): Likewise for parameter `decl'.
17223
17224 * except.c (expand_start_java_handler): Mark parameter `range'
17225 with ATTRIBUTE_UNUSED.
17226
17227 * expr.c: Include except.h.
17228 (pop_type): Remove unused variable `i'.
17229 (pop_value): Likewise for variables `n_words' and `i'.
17230 (expand_java_arrayload): Likewise for variable `convert'.
17231 (java_lang_expand_expr): Likewise for variables `op0', `type',
17232 `mode', `unsignedp', `node' and `elements'.
17233 (expand_byte_code): Likewise for variables `prev_eh_ranges' and
17234 `eh_ranges'.
17235 (process_jvm_instruction): Add a `const' qualifier to a char*.
17236
17237 * gjavah.c (output_directory): Add the `const' keyword to a char*.
17238 (temp_directory): Likewise.
17239 (print_c_decl): Likewise.
17240 (print_method_info): Likewise.
17241 (decode_signature_piece): Likewise.
17242 (print_mangled_classname): Likewise.
17243
17244 * java-except.h: Provide prototypes for maybe_start_try,
17245 maybe_end_try and add_handler.
17246
17247 * java-tree.h (mangled_classname): Add the `const' keyword to a char*.
17248 (parse_error_context): Likewise. Also add ATTRIBUTE_PRINTF_2.
17249 (pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
17250 init_expr_processing, push_super_field, init_class_processing,
17251 can_widen_reference_to, class_depth, verify_jvm_instructions,
17252 maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
17253 set_local_type, merge_type_state, push_type, load_type_state,
17254 add_interface, find_in_current_zip, append_gpp_mangled_classtype,
17255 emit_unicode_mangled_name): Add prototypes.
17256
17257 * jcf-dump.c (print_constant): Add the `const' keyword to a char*.
17258 (print_signature_type): Use ISDIGIT, not isdigit.
17259 (print_signature): Remove unused variable `j'.
17260
17261 * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
17262 int when comparing against one.
17263
17264 * jcf-parse.c: Include toplev.h.
17265
17266 * jcf-write.c: Likewise. Don't include <string.h> or <sys/stat.h>.
17267 (localvar_free): Remove unused variable `i'.
17268 (generate_bytecode_conditional): Likewise for variable `kind'.
17269
17270 * jv-scan.c: Include config.h and system.h. Remove redundant
17271 OS header and gansidecl.h includes.
17272 (warning): Add the `const' keyword to a char*. Also add
17273 ATTRIBUTE_PRINTF_1 to the prototype. Check ANSI_PROTOTYPES, not
17274 __STDC__, when determining whether to use ANSI-isms.
17275 (fatal): Likewise. Also add ATTRIBUTE_UNUSED.
17276 (xmalloc): Don't redundantly prototype here.
17277 (main): Remove unused parameter `envp'. Also fix the arguments
17278 passed to function `fatal' to match the format specifier.
17279
17280 * lang.c (java_tree_code_name): Add the `const' keyword to a char*.
17281
17282 * mangle.c: Include toplev.h.
17283 (emit_unicode_mangled_name): Declare parameter `len'.
17284
17285 * parse.y (parse_warning_context): Add the `const' keyword to a
17286 char*. Also add ATTRIBUTE_PRINTF_2 to the prototype. Check
17287 `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
17288 (issue_warning_error_from_context): Add the `const' keyword to
17289 a char*.
17290 (parse_error_context): Likewise. Also check `ANSI_PROTOTYPES'
17291 not `__STDC__' for whether to use ANSI-isms.
17292
17293 * typeck.c (incomplete_type_error): Mark parameters `value' and
17294 `type' with ATTRIBUTE_UNUSED.
17295 (parse_signature_type): Use ISDIGIT, not isdigit.
17296
17297 * verify.c (check_pending_block): Add the `const' keyword to a char*.
17298 (verify_jvm_instructions): Likewise. Remove unused variables
17299 `field_name' and `default_val'.
17300
17301 * zextract.c: Include config.h and system.h. Remove redundant
17302 OS header includes.
17303
17304 * zipfile.h: Prototype `read_zip_archive'.
17305
17306 1999-01-21 Andrew Haley <aph@cygnus.com>
17307
17308 * typeck.c (convert): Allow conversions to void type: some
17309 optimizations in gcc do this.
17310
17311 1999-01-21 Andrew Haley <aph@cygnus.com>
17312
17313 * typeck.c (convert_ieee_real_to_integer): New function.
17314 (convert): When not using fast-math and using hardware fp, convert
17315 an IEEE NaN to zero.
17316
17317 1999-01-18 Andrew Haley <aph@cygnus.com>
17318
17319 * parse.y (patch_binop): Do a type conversion from signed to
17320 unsigned and then back to signed when a ">>>" is found.
17321
17322 1999-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
17323
17324 * java-tree.h: (check_for_initialization): Added prototype.
17325 * lex.c (java_parse_doc_section): `\n' breaks the `*/' string.
17326 * parse.y (do_resolve_class): Removed unused locals.
17327 (read_import_dir): Likewise.
17328 (resolve_qualified_expression_name): Array creation
17329 expressions are valid primary expressions.
17330 (qualify_ambiguous_name): Likewise.
17331 (patch_synchronized_statement): Removed unused local.
17332
17333 1999-01-17 Jeffrey A Law (law@cygnus.com)
17334
17335 * Makefile.in (zextract.o): Add dependencies.
17336
17337 * Makefile.in: Do not put ^Ls at the start of a line.
17338
17339 1999-01-15 Per Bothner <bothner@cygnus.com>
17340
17341 * expr.c (process_jvm_instruction): Coerce to correct Throwable
17342 sub-type the result of the call that gets the exception value.
17343
17344 * parse.y (java_complete_expand_methods): If flags_syntax_only,
17345 don't call finish_class.
17346
17347 * parse.y (java_check_regular_methods): If METHOD_PRIVATE,
17348 clear found before continuing.
17349
17350 * verify.c (verify_jvm_instructions): On an array load, allow
17351 and handle top of stack to be TYPE_NULL.
17352
17353 * gjavah.c (generate_access): Translate Java package private or
17354 protected access to C++ public, but with a comment.
17355
17356 1999-01-13 Andrew Haley <aph@cygnus.com>
17357
17358 * expr.c (generate_name): Name prefix changed to avoid clashes
17359 with assembler temp labels.
17360
17361 * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
17362 MODIFY_EXPR. Without this, code for the assignment may not be
17363 generated at all and the synchronized statement will read an
17364 uninitialized variable.
17365
17366 1999-01-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
17367
17368 * class.c (maybe_layout_super_class): Fixed returned value.
17369 * lex.c: Added 1999 to the copyright.
17370 (java_init_lex): Initialize java_lang_imported.
17371 * lex.h: Added 1999 to the copyright.
17372 * parse.h: Added 1999 to the copyright.
17373 (REGISTER_IMPORT): Fixed typo in trailing macro.
17374 (CURRENT_OSB): New macro.
17375 (struct parser_ctxt): New fields osb_depth, osb_limit.
17376 * parse.y (java_lang_id): New global variable.
17377 (type_import_on_demand_declaration): Don't import java.lang.* twice.
17378 (array_creation_expression:): Use CURRENT_OSB.
17379 (dims:): Uses a stack to keep track of array dimensions.
17380 (cast_expression:): Use CURRENT_OSB.
17381 (find_expr_with_wfl): Return NULL if node found doesn't meet the
17382 conditions.
17383 (register_fields): Fixed typos in comment.
17384 (check_method_redefinition): Fixed comment indentation.
17385 (java_check_regular_methods): Set saved found wfl to NULL after
17386 having reinstalled it in the previously found DECL_NAME.
17387
17388 1999-01-10 Richard Henderson <rth@cygnus.com>
17389
17390 * gjavah.c (java_float_finite): Use a union to do type punning.
17391 (java_double_finite): Likewise.
17392
17393 1999-01-09 Per Bothner <bothner@cygnus.com>
17394
17395 * parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL
17396 on CONSTRUCTOR (since that trashes TREE_CST_RTL).
17397 (patch_new_array_init): Clear TREE_CONSTANT also if INDIRECT_REF.
17398 (register_fields): Set TREE_STATIC on NEW_ARRAY_INIT, not on
17399 CONSTRUCTOR (which causes expand_expr to call output_constant_def).
17400 * expr.c (java_lang_expand_expr): Check TREE_STATIC of NEW_ARRAY_INIT.
17401
17402 1999-01-08 Per Bothner <bothner@cygnus.com>
17403
17404 * check-init.c (check_init): If compiling to native, we don't
17405 see THROW_EXPR. Instead, look for a call to throw_node (_Jv_Throw).
17406
17407 1999-01-08 Tom Tromey <tromey@cygnus.com>
17408
17409 * parse-scan.y (variable_declarator_id): Set or increment
17410 bracket_count.
17411 (bracket_count): New global.
17412 (formal_parameter): Handle case where bracket pairs trail variable
17413 declarator id.
17414
17415 1999-01-07 Andrew Haley <aph@viagra.cygnus.co.uk>
17416
17417 * jcf-parse.c (yyparse): variable len changed from a char to an
17418 int to prevent overflow.
17419
17420 1999-01-06 Per Bothner <bothner@cygnus.com>
17421
17422 * java-tree.h: Declare read_class.
17423 * jcf-parse.c (read_class): New function.
17424 (load_class): Now just call read_class.
17425
17426 * java-tree.h (java_parse_abort_on_error): Only return if new errors.
17427 * jcf-parse.c (parse_source_file): Declare save_error_count,
17428 which is needed by java_parse_abort_on_error macro,
17429 * parse.y (java_layout_classes, java_expand_classes): Likewise.
17430
17431 * parse.y (register_fields): Set TREE_STATIC flag of NEW_ARRAY_INIT
17432 constructor, if initializing a static field.
17433 (patch_new_array_init): Set TREE_CONSTANT if it is.
17434 * expr.c (java_lang_expand_expr): For a static array constructor
17435 of primitive elements, allocate the array itself statically.
17436 Disabled until we can set the vtable field statically.
17437
17438 * check-init.c: New file. Checks for definite assignment.
17439 * Makefile.in (JAVA_OBJS): Add check-init.o.
17440 * parse.y (java_complete_expand_method): Call check_for_initialization.
17441 * parse.h (BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY): Moved to java-tree.h.
17442
17443 1999-01-06 Graham <grahams@rcp.co.uk>
17444
17445 * parse.y : include system.h instead of including
17446 standard headers directly with the exception of <dirent.h>.
17447
17448 1999-01-06 Per Bothner <bothner@cygnus.com>
17449
17450 * lex.h: Moved static function declarations to lex.c,
17451 to shut up some -Wall warnings.
17452 * lex.c: Static function declarations moved here.
17453 * jcf-dump.c: Small fixes to shut up -Wall warnings.
17454
17455 1999-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17456
17457 * Make-lang.in ($(GCJ).o): Depend on prefix.h.
17458
17459 1998-12-22 Per Bothner <bothner@cygnus.com>
17460
17461 * expr.c (process_jvm_instruction): Do load_type_state after JSR.
17462 * verify.c (verify_jvm_instructions): Fix off-by-one error.
17463
17464 * jcf-write.c (CHECK_PUT): Add (void) cast to avoid -Wall warnings.
17465 (localvar_alloc): Change return type to void,
17466 (emit_unop): Remove unused variable size.
17467
17468 * jcf-write.c (struct jcf_block): Add new union.
17469 (PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC): New macros.
17470 (call_cleanups): New functions.
17471 (struct jcf_partial): New fields num_finalizers and return_value_decl.
17472 (generate_bytecode_insns): Support CLEANUP_POINT_EXPR and
17473 WITH_CLEANUP_EXPR. Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
17474 * lang.c (lang_init): Call using_eh_for_cleanups.
17475 * parse.y (java_complete_lhs): For SYNCHRONIZED_EXPR, defer
17476 completing operands to patch_synchronized_statement.
17477 Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
17478 (patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
17479 WITH_CLEANUP_EXPR instead of TRY_EXPR.
17480
17481 1998-12-20 John F. Carr <jfc@mit.edu>
17482
17483 * Make-lang.in: Comment out control-Ls; they upset some makes.
17484
17485 1998-12-18 Tom Tromey <tromey@cygnus.com>
17486
17487 * parse.y (check_class_interface_creation): Use DIR_SEPARATOR
17488 consistently.
17489
17490 1998-12-17 Tom Tromey <tromey@cygnus.com>
17491
17492 * parse.y (DIR_SEPARATOR): New define.
17493 (check_class_interface_creation): Use it.
17494
17495 * parse-scan.y (report_main_declaration): Recognize
17496 `java.lang.String' in argument to main.
17497
17498 1998-12-16 Per Bothner <bothner@cygnus.com>
17499
17500 * parse.y (create_interface): Remove bogus test.
17501
17502 1998-12-16 Per Bothner <bothner@cygnus.com>
17503
17504 * jcf-parse.c (get_constant): Set TREE_TYPE for string constants.
17505 (HANDLE_CONSTANTVALUE): If flag_emit_class_files, call get_constant.
17506
17507 1998-12-16 Tom Tromey <tromey@cygnus.com>
17508
17509 * parse-scan.y (qualified_name): Use correct sprintf format.
17510
17511 1998-12-15 Tom Tromey <tromey@cygnus.com>
17512
17513 * gjavah.c (print_field_info): Changed how most negative number is
17514 printed.
17515
17516 1998-12-14 Per Bothner <bothner@cygnus.com>
17517
17518 * parse.y (fold_constant_for_init): New function.
17519 (resolve_expression_name): Don't replace static final
17520 constant-initialized fields by its value.
17521 (java_complete_lhs): New. Same as java_complete_tree, except does
17522 not replace static final constant-initialized fields by their values.
17523 (register_fields): If there is an initializer, set DECL_INITIAL and
17524 MODIFY_EXPR_FROM_INITIALIZATION_P.
17525 (java_complete_tree): For MODIFY_EXPR, use java_complete_lhs for lhs.
17526 Only call patch_initialized_static_field if
17527 MODIFY_EXPR_FROM_INITIALIZATION_P.
17528 (patch_initialized_static_field): If not valid constant, clear
17529 DECL_INITIAL.
17530
17531 * parse.y (lookup_field_wrapper): Fix thinko.
17532
17533 * parse.y (java_complete_tree): In EXPR_WITH_FILE_LOCATION,
17534 set and restore global lineno.
17535
17536 1998-12-14 Tom Tromey <tromey@cygnus.com>
17537
17538 * gjavah.c (print_field_info): If value to print is the smallest
17539 value of its size, then print as hex to avoid later warnings from
17540 C++ compiler.
17541
17542 1998-12-14 Tom Tromey <tromey@cygnus.com>
17543
17544 * gjavah.c (decompile_method): Decompile `return null'.
17545 (process_file): Generate `#pragma interface'.
17546 (method_declared): New global.
17547 (print_method_info): Set it.
17548 (HANDLE_CODE_ATTRIBUTE): Only print it method_declared set.
17549 (print_method_info): Handle abstract methods.
17550
17551 1998-12-13 Per Bothner <bothner@cygnus.com>
17552
17553 * parse.y (patch_method_invocation): If class_decl is null
17554 (e.g. an array type), use original type.
17555
17556 * parse.y (check_thrown_exceptions): Temporary hack to suppress
17557 errors about uncaught exception from clone (of array, specifically).
17558
17559 1998-12-13 Tom Tromey <tromey@cygnus.com>
17560
17561 * gjavah.c (decompile_method): Handle all types of `return'
17562 opcode. Decompile `return this' and `return'.
17563 (method_access): New global.
17564 (print_method_info): Set it.
17565 (decompile_method): Don't decompile a synchronized method.
17566
17567 1998-12-13 Tom Tromey <tromey@cygnus.com>
17568
17569 * jcf-reader.c (jcf_parse_one_method): Recognize
17570 HANDLE_END_METHOD.
17571 * gjavah.c (HANDLE_END_METHOD): New macro.
17572 (HANDLE_CODE_ATTRIBUTE): New macro.
17573 (decompile_method): New function.
17574 (print_method_info): Don't print `;\n' at end of function decl.
17575 Include java-opcodes.h.
17576 (decompiled): New global.
17577
17578 1998-12-12 Per Bothner <bothner@cygnus.com>
17579
17580 * class.c (build_class_ref): Handle PRIMTYPE.class if
17581 flag_emit_class_files.
17582 * expr.c (expand_java_field_op): Don't optimize java.lang.XXX.TYPE
17583 if flag_emit_class_files.
17584 * parse.y (java_complete_tree): Pre-liminary support for
17585 COMPONENT_REF - only to handle PRIMCLASS.TYPE.
17586
17587 * parse.y (patch_synchronized_statement): Don't call monitorexit
17588 unless block CAN_COMPLETE_NORMALLY. Propagate that flag properly.
17589
17590 * java-tree.h (DECL_LOCAL_STATIC_VALUE): Removed - no longer used.
17591
17592 * zipfile.h (opendir_in_zip): New declaration.
17593 * jcf-io.c (saw_java_source): Moved to jcf-parse.c.
17594 (opendir_in_zip): New function, using code from open_in_zip.
17595 (open_in_zip): Call opendir_in_zip.
17596 (find_class): Remove no-longer-used do_class_file parameter,
17597 but add source_ok parameter. Change logic so if we find a .java file,
17598 we don't look for .class in later classpath emtries.
17599 * jcf-parse.c (load_class): Pass saw_java_source to find_class.
17600 (jcf_figure_file_type): Only call open_in_zip if correct magic number.
17601 * gjavah.c: Update call to find_class.
17602 * jcf-dump.c: Likewise.
17603
17604 * jcf-write.c (put_linenumber): Handle duplicate line numbers.
17605 (generate_bytecode_insns): For EXPR_WITH_FILE_LOCATION, do
17606 nothing if body is empty_stmt_node.
17607 Various little fixes so SP gets correctly adjusted.
17608 For NEW_ARRAY_INIT, handle IGNORE_TARGET.
17609 For CALL_EXPR, test if static first.
17610 (generate_classfile): Ignore fields that are DECL_ARTIFICIAL,
17611 such as the ones we create for Object and Class.
17612 Set and restore current_function_decl.
17613 * parse.y: Check/set IS_AN_IMPORT_ON_DEMAND_P in read_import_dir.
17614 (note_possible_classname): New function.
17615 (read_import_entry): Removed. Merged with read_import_dir.
17616 (read_import_dir): Don't call find_class - that only gives us
17617 the first classpath entry having the needed package.
17618 Use the struct buffer data structure from buffer.h.
17619 (read_import_dir, find_in_imports_on_demand): The remembered
17620 class names now use '.' (not '/') as package separator.
17621
17622 * parse.y (java_complete_expand_methods): Call write_classfile
17623 here, and not in java_expand_classes (which only gets first class).
17624
17625 1998-12-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
17626
17627 * parse.y (<type_declaration>): Do maybe_generate_clinit last.
17628 (register_fields): If a static fields has an initializer, just
17629 chain it on ctxp->static_initialized, and handle later.
17630 (java_complete_expand_methods): Force <clinit> first.
17631 (resolve_expression_name, resolve_field_access): Just get DECL_INITIAL
17632 - it's already been completed.
17633 (patch_initialized_static_field): New function.
17634 (java_complete_field): Call it.
17635
17636 1998-12-12 Per Bothner <bothner@cygnus.com>
17637
17638 * expr.c (encode_newarray_type, build_new_array): New functions.
17639 * java-tree.h: Declare build_new_array.
17640 * jcf-write.c (patch_newarray): Use build_new_array.
17641
17642 * expr.c (java_lang_expand_exp): Support NEW_ARRAY_INIT.
17643 * jcf-write.c (generate_bytecode_insns): Support NEW_ARRAY_INIT.
17644
17645 * parse.y (patch_new_array_init): Re-organize.
17646 Now is passed the actual array (pointer) type of the value.
17647 Set the type of the CONSTRUCTOR to be an ARRAY_TYPE.
17648 (patch_array_constructor): Removed - merged into patch_new_array_init.
17649 (java_complete_tree): Update patch_new_array_init.
17650
17651 * jcf-write.c (find_constant_index): New function.
17652 (generate_bytecode_insns): Use find_constant_index.
17653 (generate_classfile): Use find_constant_index for ConstantValue.
17654
17655 1998-12-11 Tom Tromey <tromey@cygnus.com>
17656
17657 * expr.c (invoke_build_dtable): Renamed dtable -> vtable.
17658 * decl.c (init_decl_processing): Renamed dtable -> vtable.
17659 * class.c (make_class_data): Renamed dtable -> vtable, and
17660 dtable_method_count -> vtable_method_count.
17661
17662 1998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
17663
17664 * decl.c (long_zero_node, float_zero_node, double_zero_node): New
17665 global variables, initialized.
17666 * java-tree.h (long_zero_node, float_zero_node, double_zero_node):
17667 Declared new global variables.
17668 * lex.c (java_lex): Return long_zero_node, float_zero_node,
17669 double_zero_node, integer_zero_node upon direct matching.
17670 * parse.y (purify_type_name): Added function prototype.
17671 (duplicate_declaration_error_p): Consider new_type as potentially
17672 being a incomplete type. Use purify_type_name on type string.
17673 (method_header): saved_type: unused variable removed. Don't figure
17674 return type if method name is invalid.
17675 (java_complete_tree): Set CAN_COMPLETE_NORMALLY after `node' was
17676 processed by patch_unaryop.
17677 (patch_unaryop): Fixed typo in comment. Re-convert pre/post
17678 increment/decrement node into its original type after binary
17679 numeric promotion on its operands.
17680
17681 1998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
17682
17683 * parse.y (array_initializer:): Array init operand is NULL_TREE
17684 instead of a TREE_LIST of NULL_TREEs when parsing `{}'. `{,}' is
17685 now an error. Fixed indentation problems.
17686 (patch_string): Handle error_mark_node as an argument.
17687 (patch_new_array_init): Fixed indentation problems.
17688 (array_constructor_check_entry): Removed check on null wfl_value.
17689 Return an error if wfl_value's walk returns an error.
17690
17691 1998-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
17692
17693 * java-tree.def (NEW_ARRAY_INIT): New Java tree code.
17694 * lex.c (java_lex): Remember column position before advancing one
17695 token. Retain location information on OCB_TK.
17696 * lex.h (typedef struct java_lc): Added new field.
17697 * parse.h (GET_SKIP_TYPE): New macro.
17698 (QUAL_DECL_TYPE): Redefined using GET_SKIP_TYPE.
17699 * parse.y (build_new_array_init, patch_new_array_init,
17700 patch_array_constructor, maybe_build_array_element_wfl,
17701 array_constructor_check_entry): New function prototypes.
17702 (switch_block:): Tagged <node>.
17703 (OCB_TK): Tagged <operator>.
17704 (array_initializer:): Installed actions.
17705 (variable_initializer): Build location information on element if
17706 necessary.
17707 (switch_statement:): Fixed indentation typo.
17708 (switch_block:): Redefined default action.
17709 (java_complete_tree): Handle NEW_ARRAY_INIT in MODIFY_EXPR:.
17710 (patch_assignment): Removed duplicate code.
17711 (maybe_build_array_element_wfl, build_new_array_init,
17712 patch_new_array_init, patch_array_constructor,
17713 array_constructor_check_entry): New functions.
17714
17715 1998-12-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
17716
17717 * parse.y (array_initializer): Tagged <node>.
17718 (variable_initializer:): Use default rule.
17719 (array_initializer:): Defined actions.
17720 (variable_initializers:): Likewise.
17721 (resolve_qualified_expression_name): Use DECL_CONTEXT to build
17722 non-static field accesses.
17723 (patch_invoke): Fixed indentation typo.
17724 (java_complete_tree): Likewise.
17725 (build_labeled_block): Changed leading comment. Generate an error
17726 in case of duplicate loop labels.
17727 (patch_conditional_expr): Patch results of string concatenation
17728 operations.
17729
17730 1998-12-06 Per Bothner <bothner@cygnus.com>
17731
17732 * constants.c (find_methodref_index): When the class is an interface,
17733 generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
17734
17735 * decl.c (finit_identifier_node): Use "$finit$", rather than
17736 "<finit>" (which Sun's verifier rejects).
17737 * parse.y (maybe_generate_finit): Leave out meaningless final flag.
17738 (generate_field_initialization_code): Removed.
17739 (fix_constructors) Don't add call to $finit$ here (wrong order).
17740 (patch_method_invocation): Add $finit$ call here.
17741
17742 * java-tree.h (CALL_USING_SUPER): New macro.
17743 * parse.y (patch_invoke): Remove im local variable.
17744 (patch_method_invocation, patch_invoke): Don't pass super parameter.
17745 (patch_invoke): Use CALL_USING_SUPER instead of from_super parameter.
17746 (resolve_qualified_expression_name): Maybe set CALL_USING_SUPER.
17747
17748 * jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL.
17749
17750 * parse.y (java_complete_tree): Don't complain about unreachable
17751 statement if it is empty_stmt_node.
17752
17753 * jcf-write.c (find_constant_wide): New function.
17754 (push_long_const): Use find_constant_wide.
17755
17756 * jcf-write.c (generate_bytecode_insn): Fix bug in switch handling.
17757 (generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR.
17758 Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
17759 Emit invokeinterface when calling an interface method.
17760 Emit invokespecial also when calling super or private methods.
17761
17762 * jcf-write.c (generate_classfile): Emit ConstantValue attributes.
17763
17764 1998-12-06 Per Bothner <bothner@cygnus.com>
17765
17766 * jcf-dump.c (INVOKE): If invokeinterface, print number of args.
17767
17768 1998-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
17769
17770 * java-tree.h (java_layout_seen_class_methods): New function
17771 prototype.
17772 (LAYOUT_SEEN_CLASS_METHODS): Macro removed.
17773 * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods.
17774 * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro.
17775 * parse.y (method_declarator:): Defined action.
17776 (issue_warning_error_from_context): input_filename saved, set to
17777 the appropriate value and restored after java_error is called.
17778 (build_unresolved_array_type): Fixed comment.
17779 (register_fields): Use PROMOTE_RECORD_IF_COMPLETE.
17780 (method_header): Deal with return type the same way type are
17781 handled for fields and method's parameters and local variables
17782 types are handled.
17783 (check_method_redefinition): Removed extra CR.
17784 (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE.
17785 (java_layout_seen_class_methods): New function.
17786 (java_layout_classes): Call java_layout_seen_class_methods.
17787
17788 1998-12-03 Per Bothner <bothner@cygnus.com>
17789
17790 * parse,y (patch_synchronized_statement): Set CAN_COMPLETE_NORMALLY.
17791
17792 1998-12-03 Per Bothner <bothner@cygnus.com>
17793
17794 * jcf-dump.c (main): Fix error message.
17795 * jcf-path.c (add_entry): Style fix.
17796
17797 1998-12-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
17798
17799 * class.c (layout_class_method): Call build_java_argument_signature
17800 on constructors too.
17801 * parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE.
17802 (patch_method_invocation): Define a primary when resolving an
17803 expression name. Augmented comment on code checking illegal `this'
17804 usage. Loosened it test by accepting NEW_CLASS_EXPR.
17805
17806 1998-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
17807
17808 * class.c (layout_class_method): Don't report error on non-static
17809 overriding static if the method is private.
17810 * java-tree.h (finish_class): Prototype added.
17811 * lex.c (java_get_line_col): Handle col argument -2 value.
17812 * parse.h: All static method declarations moved to parse.y.
17813 * parse.y: Now contains all static method declarations previously
17814 found in parse.h.
17815 (find_expr_with_wfl, missing_return_error,
17816 unreachable_stmt_error): New functions.
17817 (java_get_real_method_name): Identify constructors bearing class
17818 names in source code compiled classes only.
17819 (java_complete_expand_methods): Call missing_return_error.
17820 (invocation_mode): Private methods invoked as static methods.
17821 (java_complete_tree): Call unreachable_stmt_error.
17822
17823 1998-12-01 Tom Tromey <tromey@cygnus.com>
17824
17825 * Makefile.in (+target): Removed.
17826 (+xmake_file): Likewise.
17827 (+tmake_file): Likewise.
17828 (.NOEXPORT): Removed duplicate.
17829
17830 1998-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17831
17832 * Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
17833
17834 * jv-scan.c: Fix xmalloc prototype. Provide an xmalloc definition.
17835
17836 * jvgenmain.c: Remove the xmalloc prototype, we get it from
17837 libiberty.h. Provide an xmalloc definition.
17838
17839 * jvspec.c: Remove the xmalloc prototype.
17840
17841 * parse-scan.y: Include config.h and system.h. Don't include
17842 OS headers or gansidecl.h. Don't prototype xmalloc/xstrdup.
17843 Provide an xstrdup definition.
17844
17845 1998-11-26 Alexandre Oliva <oliva@dcc.unicamp.br>
17846
17847 * jcf-path.c (add_entry): Recognize ".jar" too.
17848 * lang-specs.h: Likewise.
17849
17850 1998-11-26 Per Bothner <bothner@cygnus.com>
17851
17852 * jcf-write.c (generate_bytecode_insns): In Call_EXPR, handle
17853 soft_monitorenter_node, soft_monitorexit_node, throw_node.
17854
17855 * jcf-write.c (generate_bytecode_insns):
17856 Handle pre/post-increment/decrement of long.
17857
17858 * jcf-write.c (generate_bytecode_insns):
17859 Handle missing exception handler (finally for synchronized).
17860
17861 1998-11-25 Per Bothner <bothner@cygnus.com>
17862
17863 * java-tree.h (end_params_node): Declare global.
17864 * decl.c (end_params_node): New global.
17865 (init_decl_processing, start_java_method): Use end_params_node for
17866 end of list of parameter types. Follows correct gcc conventions.
17867 * expr.c (pop_argument_types, pop_arguments): Likewise.
17868 * lang.c (put_decl_node): Likewise.
17869 * typeck.c (various places): Likewise.
17870 * class.y (various places): Likewise.
17871 * parse.y (various places): Likewise.
17872
17873 * parse.y (java_complete_tree): Move CAN_COMPLETE_NORMALLY.
17874 (build_jump_to_finally): Add missing CAN_COMPLETE_NORMALLY.
17875
17876 * class.c: Add #include flags.h, remove no-longer needed declaration.
17877
17878 * class.c (layout_class_method): Remove commented-out code, re-format.
17879 Don't add vtable entry (or index) for private methods.
17880 * expr.c (expand_invoke): A private method is implicitly final.
17881 * class.c (make_class_data): If inlining or optimizing,
17882 skip private methods.
17883
17884 * class.c (finish_class): New function. Calls existing methods,
17885 but alls emits deferred inline functions.
17886 * jcf-parse.c (parse_class_file): Call finish_class.
17887 * parse.y (java_complete_expand_methods): Likewise.
17888
17889 * expr.c (build_java_binop): Explicit default, to silence -Wall.
17890
17891 * expr.c (CHECK_PC_IN_RANGE): Add void cast to kill warnings.
17892
17893 1998-11-25 Marc Espie <espie@quatramaran.ens.fr>
17894
17895 * jcf-write.c (generate_bytecode_conditional): Fix typo.
17896
17897 1998-11-24 Per Bothner <bothner@cygnus.com>
17898
17899 * (generate_classfile): Always write class access flag with
17900 ACC_SUPER set.
17901
17902 1998-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
17903
17904 * class.c (maybe_layout_super_class): New function.
17905 (layout_class): Reorganized. Loop on class methods dispatched into
17906 a new function. Call maybe_layout_super_class.
17907 (layout_class_methods, layout_class_method): New functions.
17908 * expr.c (expand_java_NEW): Call layout_class_methods on loaded
17909 class.
17910 (expand_invoke): Likewise.
17911 * java-tree.h (all_class_list): New global variable declared.
17912 (layout_class_methods, layout_class_method): New function
17913 prototypes.
17914 (LAYOUT_SEEN_CLASS_METHODS): New macro.
17915 * jcf-parse.c (all_class_list): New global variable.
17916 (load_class): Extended what class_or_name can be. Use parser
17917 context mechanism to save globals before calling jcf_parse.
17918 (jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
17919 is set on the file name.
17920 (jcf_parse): Layout class methods when Object is loaded, otherwise
17921 record class in all_class_list for delayed method layout.
17922 (parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
17923 * lang.c (put_decl_node): Decode <init> into the decl context
17924 class name.
17925 * lex.c (java_allocate_new_line): Use xmalloc.
17926 * parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
17927 pointers, not TREE_LIST elements.
17928 (struct parser_ctxt): Fixed comment indentations, added comments
17929 and reordered some fields.
17930 (java_check_methods): Function prototype removed.
17931 * parse.y (java_push_parser_context): Use xmalloc.
17932 (java_parser_context_restore_global): Pop extra pushed ctxp only
17933 when there's nothing next.
17934 (maybe_create_class_interface_decl): Fixed comment, add new
17935 created class decl to all_class_list.
17936 (method_header): Use GET_REAL_TYPE on argument's types.
17937 (method_declarator): Use GET_REAL_TYPE, change type to the real
17938 type in TREE_LIST dependency node. Build argument list with the
17939 real type.
17940 (create_jdep_list): Use xmalloc. Removed allocation error message.
17941 (obtain_incomplete_type): Fixed leading comment. Broadened
17942 incoming argument meaning.
17943 (register_incomplete_type): Use xmalloc. Removed allocation error
17944 message.
17945 (safe_layout_class): Fixed leading comment.
17946 (jdep_resolve_class): Reversed if statement condition and switch
17947 if and else bodies.
17948 (resolve_and_layout): Fixed leading comment. Broadened incoming
17949 argument meaning.
17950 (complete_class_report_errors): New local variable name, for
17951 clarity. purify_type_name used for all error cases.
17952 (java_get_real_method_name): Stricter check on constructors.
17953 (java_check_regular_methods): Reverse methods list only if not
17954 already laid out. Layout artificial constructor.
17955 (java_check_methods): Deleted.
17956 (source_start_java_method): Obtain incomplete type for patchable
17957 method arguments.
17958 (java_layout_classes): Fixed leading comment. Use
17959 LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
17960 statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
17961 before returning. Fixed comments.
17962 (java_expand_classes): Check for errors up front.
17963 (patch_method_invocation): Class to search is resolved and laid
17964 out.
17965
17966 1998-11-24 Per Bothner <bothner@cygnus.com>
17967
17968 * expr.c (java_lang_expand_expr): Add missing emit_queue.
17969
17970 * javaop.h (int8): Removed - not used.
17971 (jbyte): Redefine portably with correct signedness.
17972
17973 * jcf-write.c (generate_bytecode_insns): Don't free sw_state.cases.
17974
17975 * jcf-write.c (generate_bytecode_insns): Fix typo
17976 OPCODE_getstatic to OPCODE_getfield.
17977
17978 * java-tree.def (CASE_EXPR, DEFAULT_EXPR): Kind is 'x', not '1'.
17979 * parse.y (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR,
17980 set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
17981
17982 1998-11-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
17983
17984 * jcf-parse.c (jcf_parse_source): Function returned type is
17985 void. Added prototype.
17986 (jcf_parse): Function returned type is void.
17987 (yyparse): Remove call to fclose on the last parsed file.
17988
17989 * java-tree.h (jcf_parse): Changed jcf_parse prototype.
17990
17991 1998-11-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
17992
17993 * class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
17994 (layout_class): Cope with methods featuring WFL in decl names.
17995 * decl.c (unqualified_object_id_node): New global variable,
17996 initialized.
17997 (build_decl_no_layout): Removed.
17998 * expr.c (build_primtype_type_ref): Handle Double.
17999 (java_lang_expand_expr): Fixed indentations.
18000 * java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted.
18001 (flag_wall, flag_redundant, flag_not_overriding,
18002 flag_static_local_jdk1_1, unqualified_object_id_node): Global
18003 variable declarations.
18004 (build_decl_no_layout): Removed prototype.
18005 (java_get_real_method_name): Added prototype.
18006 (IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P.
18007 (java_parse_abort_on_error): Macro now just returns.
18008 * jcf-parse.c (jcf_parse_source): Check fclose returned
18009 value. Call emit_register_classes if java_report_errors returns
18010 zero.
18011 * lanc.c (flag_wall, flag_redundant, flag_not_overriding,
18012 flag_static_local_jdk1_1): New integer flags.
18013 (lang_decode_option): New flags set here.
18014 * parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros.
18015 (OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to
18016 the flag_redundant variable.
18017 (SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object
18018 when parsing java.lang.Object class.
18019 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal
18020 NULL_TREE to build.
18021 (resolve_qualified_expression_name): Fixed indentation.
18022 (patch_array_ref): Changed prototype.
18023 (not_initialized_as_it_should_p): Prototype removed.
18024 (java_report_errors): Added function prototype.
18025 * parse.y (formal_parameter:): Changed error message for not yet
18026 supported final parameters.
18027 (class_type_list:): Set both PURPOSE and VALUE of created
18028 TREE_LIST to be class_type.
18029 (primary_no_new_array:): Handle class literals on primitive types.
18030 (parse_warning_context): Reinstalled correct force_error and
18031 do_warning flags setups.
18032 (java_report_errors): Changed prototype. Return java_error_count
18033 value.
18034 (variable_redefinition_error): Consider treating variable type as
18035 a fake pointer.
18036 (create_interface): Warn about redundant abstract modifier if
18037 flag_redundant is set. Changed error message.
18038 (lookup_field_wrapper): Save/restore globals before/after looking
18039 up field.
18040 (duplicate_declaration_error_p): Consider treating declaration
18041 type as a fake pointer.
18042 (register_fields): Extract real type from dependency node. Check
18043 for duplicate field declaration after type adjustment. Use
18044 DECL_INITIAL to store static final initialized values.
18045 (method_header): Extract real function type from dependency node.
18046 (check_abstract_method_header): Use GET_METHOD_NAME.
18047 (obtain_incomplete_type): Layout fake pointer type.
18048 (safe_layout_class): Don't try to check for methods before layout.
18049 (java_complete_class): Don't check for correct throws clause
18050 elements inheritance here.
18051 (resolve_and_layout): Broadened name parameter meaning.
18052 (reset_method_name): Use GET_METHOD_NAME.
18053 (java_get_real_method_name): New function.
18054 (java_check_regular_methods): Don't check methods in
18055 java.lang.Object. Verify lineage of throws clause elements. Use
18056 flag_no_overriding in warning report.
18057 (check_throws_clauses): Don't check if class was from
18058 bytecode. Use IS_UNCHECKED_EXCEPTION_P macro.
18059 (java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag.
18060 (declare_local_variables): Use flag_static_local_jdk1_1 to report
18061 warning on unsupported final local variables. Use build_decl
18062 instead of build_decl_no_layout. Get real local variable type from
18063 dependency node.
18064 (source_start_java_method): Get real parameter type from
18065 dependency node. Call build_decl instead of build_decl_no_layout.
18066 (java_layout_classes): Reverse tree and layout type and class as
18067 required. Mark class as loaded when done.
18068 (resolve_field_access): Fixed indentation. Restricted condition
18069 leading to static field access code generation. Set field_type
18070 decl's TREE_TYPE if QUAL_DECL_TYPE not available.
18071 (resolve_qualified_expression_name): Initialize type_found to
18072 null. Handle static field resolved during qualification. Fixed
18073 layout on non primitive field decl types.
18074 (not_accessible_p): Fixed typo in comment.
18075 (patch_method_invocation): Resolve and layout class to search from
18076 type.
18077 (lookup_method_invoke): Keep integer constant 0 as is. Resolve and
18078 layout non primitive type, if necessary. Make method node only to
18079 report errors.
18080 (find_applicable_accessible_methods_list): Consider WFL'ed method
18081 decl names. Fixed indentation.
18082 (argument_types_convertible): Resolve and layout target type if
18083 necessary.
18084 (java_complete_tree): Fixed indentation problems. Rewrote
18085 CALL_EXPR thrown exceptions check. Re-installed further processing
18086 of the assignment in certain cases.
18087 (patch_assignment): Call maybe_build_primttype_type_ref to perform
18088 inlining on class literals.
18089 (valid_builtin_assignconv_identity_widening_p): Cope with constant
18090 0 literal.
18091 (valid_method_invocation_conversion_p): Likewise.
18092 (patch_string): Temporary disable forbidden use of `this' in
18093 explicit constructor invocations when doing string concatenation
18094 within their scope.
18095 (patch_unaryop): Added comment. Reinstalled code to disable
18096 further check on assignment operation with cast expression RHS.
18097 (patch_switch_statement): Fixed indentation.
18098 (build_try_statement): Call build_decl instead of
18099 build_decl_no_layout.
18100 (patch_synchronized_statement): Likewise.
18101 (patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of
18102 IS_UNCHECKED_EXPRESSION_P.
18103 (check_thrown_exceptions_do): Changed leading comment. Resolve and
18104 layout argument exception type.
18105 (purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
18106 of IS_UNCHECKED_EXPRESSION_P.
18107
18108 1998-11-18 Anthony Green <green@cygnus.com>
18109
18110 * jcf-parse.c (yyparse): Open class file in binary mode.
18111
18112 1998-11-15 Per Bothner <bothner@cygnus.com>
18113
18114 * jvgenmain.c: Need to #include "gansidecl.h" (to get PROTO).
18115
18116 * jcf-write.c (perform_relocations): Move check out one loop.
18117
18118 1998-11-15 Anthony Green <green@hoser.cygnus.com>
18119
18120 * Make-lang.in: Fix reference to srcdir.
18121 * jv-scan.c: Add missing xmalloc prototype.
18122 * jvgenmain.c: Ditto.
18123
18124 1998-11-15 Per Bothner <bothner@cygnus.com>
18125
18126 * decl.c (error_mark_node), java-tree.h: New global.
18127 * parse.y: Use empty_stmt_node instead of size_zero_node.
18128 (build_if_else_statement): If missing else, use empty_stmt_node.
18129
18130 * parse.y (not_initialized_as_it_should_p): Removed, with its callers.
18131 (java_complete_expand_method): Complain if return is missing.
18132 (java_check_regular_methods): Comment out incorrect error check.
18133 (not_accessible_p): Fix incorrect handling of protected methods.
18134 (patch_method_invocation): Pass correct context to not_accessible_p.
18135 (find_applicable_accessible_methods_list): Likewise.
18136 (qualify_ambiguous_name): If ARRAY_REF, it's an expression name.
18137 (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR, set
18138 TREE_TYPE (to void_type_node); otherwise expand_expr crashes.
18139 (patch_if_else_statement): Fix setting of CAN_COMPLETE_NORMALLY.
18140
18141 * jcf-write.c (CHECK_OP, CHECK_PUT): Add some error checking.
18142 (push_int_const): Remove reundant NOTE_PUSH.
18143 (generate_bytecode_insns - case STRING_CST): Do NOTE_PUSH.
18144 (- case SWITCH_EXPR): Fix code generation bug.
18145 (- case PREDECREMENT_EXPR etc): Remove redundant NOTE_PUSH.
18146 (generate_classfile): More robust for abstract methods.
18147
18148 1998-11-15 Anthony Green <green@cygnus.com>
18149
18150 * Makefile.in: jv-scan and jvgenmain all require libiberty.
18151 * Make-lang.in: Ditto.
18152
18153 * jv-scan.c: Remove xmalloc and xstrdup definitions.
18154 * jvgenmain: Ditto.
18155
18156 1998-11-15 Per Bothner <bothner@cygnus.com>
18157
18158 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): New macro.
18159
18160 * jcf-io.c (find_class): Simpler/cleaner structure fixes a bug.
18161
18162 1998-11-14 Per Bothner <bothner@cygnus.com>
18163
18164 Allow uses of interface types to verify. This is not really
18165 type-safe, but it matches what Sun does, and is OK as long as
18166 there are appropriate run-time checks.
18167 * verify.c (merge_types): If merging two interface types,
18168 just set the result to java.lang.Object.
18169 * expr.c (pop_type): Any interface is matches by java.lang.Object.
18170
18171 1998-11-13 Tom Tromey <tromey@cygnus.com>
18172
18173 * gjavah.c (main): Handle --output-class-directory argument.
18174 * jvspec.c (lang_specific_driver): Translate `-d' into
18175 -foutput-class-dir.
18176 * jcf.h (jcf_write_base_directory): Declare.
18177 * lang.c (lang_decode_option): Recognize -foutput-class-dir.
18178 * lang-options.h: Mention -foutput-class-dir.
18179 * jcf-write.c (jcf_write_base_directory): New global.
18180 (make_class_file_name): Put generated .class file into `-d'
18181 directory, or into source directory if -d not given. Function now
18182 static.
18183 (write_classfile): Free class file name. Handle case where class
18184 file name is NULL.
18185 (DIR_SEPARATOR): New macro.
18186 Include <sys/stat.h>
18187
18188 * Makefile.in (prefix): New macro.
18189
18190 1998-11-12 Per Bothner <bothner@cygnus.com>
18191
18192 * parse.y (patch_invoke): Do less if flag_emit_class_files.
18193 * expr.c (build_known_method_ref): Don't check flag_emit_class_files
18194 here (done in patch_invoke instead).
18195 (case_identity): Moved here from parse.y.
18196
18197 * java-tree.h (CAN_COMPLETE_NORMALLY): New macro.
18198 * parse.y (java_complete_tree etc): Maybe set CAN_COMPLETE_NORMALLY.
18199 * parse.y (java_complete_tree): Re-order COMPOUND_EXPR in BLOCK
18200 so they can be efficiently scanned without recursion.
18201 Error it ! CAN_COMPLETE_NORMALLY first part of COMPOUND_EXPR.
18202 * expr.c (java_lang_expand_expr): Expand statements of COMPOUND_EXPR
18203 in BLOCK iteratively, rather than recursively.
18204
18205 * parse.y (do_unary_numeric_promotion): New function.
18206 (patch_unaryop, patch_binop, patch_array_ref): Use it.
18207
18208 * parse.y (patch_newarray): Various fixes.
18209
18210 Re-do handling of switch statements (for proper block scoping).
18211 * parse.y: Add just a single block for the enture switch block,
18212 but don't create any "case blocks".
18213 (group_of_labels): Rmeoved unneeded non-terminal.
18214 CASE_EXPR and DEFAULT_EXPR are added to current block.
18215 * expr.c (java_lang_expand_expr): Inline SWITCH_EXPR here.
18216 Now also need to handle CASE_EXPR and DEFAULT_EXPR.
18217 * java-tree.h (SWITCH_HAS_DEFAULT): New macro.
18218 * parse.y (wfl_operator, print_int_node): Make non-static.
18219 (java_complete_tree): CASE_EXPR and DEFAULT_EXPR are now processed
18220 as part of recursive scan of block.
18221 (java_expand_switch ): Removed - inlined into java_lang_expand_expr.
18222 (patch_switch_statement): Most tests move dinto java_complete_tree.
18223
18224 * parse.y: Make various production be non-typed (void).
18225 * parse.y (parse_error): Merged into issue_warning_error_from_context.
18226 * parse.y (add_stmt_to_compound): Don't create/change extra node.
18227 (patch_method_invocation_stmt): Renamed to patch_method_invocation.
18228
18229 * jcf-write.c (struct jcf_handler): New type.
18230 (struct jcf_switch_state): New type.
18231 (SWITCH_ALIGN_RELOC, BLOCK_START_RELOC): New relocation kinds.
18232 (alloc_handler, emit_unop, emit_reloc): New functions.
18233 (adjust_typed_op): Add extra parameter ("max type" offset).
18234 (emit_switch_reloc, emit_case-reloc): New function.
18235 (generate_bytecode_conditional): Handle REAL_TYPE comparisons.
18236 (generate_bytecode_insns): Support REAL_CST, switch statements,
18237 exception handling, method calls, object/array creation, and more.
18238
18239 * class.c: Remove some unused variables.
18240 * constants.c (find_string_constant): New function.
18241 (count_constant_pool_bytes): Fix to correctly handle wide constants.
18242 * decl.c (complete_start_java_method): Don't _Jv_InitClass
18243 if flag_emit_class_files.
18244
18245 1998-11-12 Tom Tromey <tromey@cygnus.com>
18246
18247 * jcf-io.c (find_class): Added explanatory comment.
18248
18249 * jcf-path.c (add_entry): Look for `.zip' at end of filename. Add
18250 trailing slash to `.zip' entries.
18251
18252 * jvspec.c (lang_specific_driver): Correctly handle case where
18253 GC_NAME not defined.
18254
18255 1998-11-11 Tom Tromey <tromey@cygnus.com>
18256
18257 * jvspec.c (GC_NAME): New define.
18258 (lang_specific_driver): Use GC_NAME. Add GC_NAME to command line
18259 if required.
18260 * Make-lang.in (jvspec.o): Define WITH_GC_<name>.
18261
18262 1998-11-11 Per Bothner <bothner@cygnus.com>
18263
18264 * jcf-dump.c (TABLE_SWITCH): Fix typos.
18265
18266 1998-11-11 Tom Tromey <tromey@cygnus.com>
18267
18268 * jcf-dump.c (main): Correctly recognize `--'-style long options.
18269
18270 1998-11-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
18271
18272 * class.c (is_compiled_class): Call safe_layout_class for class
18273 compiled from source.
18274 * conver.h (convert_to_integer, convert_to_real,
18275 convert_to_pointer): Added prototypes.
18276 * decl.c (init_decl_processing): Non longer push the decls of
18277 `methodtable', `constants', `Class', `Field', `dispatchTable'
18278 `jexception' and `Method'.
18279 * expr.c (build_invokeinterface): New function.
18280 (expand_invoke): static variable CLASS_IDENT now in
18281 build_invokeinterface. Use build_invokeinterface.
18282 (expand_java_field_op): Moved code to inline
18283 java.lang.PRIMTYPE.TYPE into a function.
18284 (build_primtype_type_ref): New function.
18285 * java-tree.def (INSTANCEOF_EXPR): New tree code.
18286 * java-tree.h (CLASS_METHOD_CHECKED_P, METHOD_DEPRECATED,
18287 FIELD_DEPRECATED, CLASS_DEPRECATED): New flag macros.
18288 (DECL_CONSTRUCTOR_P): Fixed typo in comment.
18289 (DECL_LOCAL_STATIC_VALUE): New macro.
18290 (build_invokeinterface, build_primtype_type_ref): New function
18291 prototypes.
18292 (java_parse_abort_on_error): Macro rewritten.
18293 * jcf-parse.c (current_method): Add comment to declaration.
18294 (parse_zip_file_entries, process_zip_dir, void parse_source_file):
18295 Function prototypes fixed.
18296 (jcf_parse_source): push/pop parser context. save/restore global.
18297 (parse_source_file): Fixed leading comment. Now take a
18298 IDENTIFIER_NODE as an argument. Doesn't check methods, layout
18299 classes and pop the parser context anymore.
18300 (yyparse): Push parser context, save globals, parse the source
18301 file, restore globals and pop the parser context when processing a
18302 source file.
18303 * jcf.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG define.
18304 * lex.c (java_parse_doc_section): New function.
18305 (java_lex): Call java_parse_doc_section when appropriate. Build an
18306 operator around INSTANCEOF_TK.
18307 * lex.h (java_lineterminator, java_sprint_unicode,
18308 java_unicode_2_utf8, java_lex_error, java_store_unicode):
18309 Prototypes rewritten.
18310 (java_parse_escape_sequence, java_letter_or_digit_p,
18311 java_parse_doc_section, java_parse_end_comment, java_get_unicode,
18312 java_read_unicode, java_store_unicode, java_read_char,
18313 java_allocate_new_line, java_unget_unicode, java_sneak_unicode):
18314 Added function prototypes.
18315 * parse.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG
18316 define.
18317 (JNULLP_TYPE_P, CHECK_METHODS, CHECK_DEPRECATED, REGISTER_IMPORT):
18318 New macros
18319 (struct parser_ctxt): New fields: deprecated,
18320 current_parsed_class_un, gclass_list.
18321 (fix_method_argument_names, issue_warning_error_from_context,
18322 resolve_package, lookup_package_type): New function prototypes.
18323 (resolve_expression_name): Fixed function prototype.
18324 (find_applicable_accessible_methods_list): Fixed indentation, added
18325 extra argument in prototype.
18326 (check_final_assignment, build_null_of_type, check_deprecation,
18327 check_method_redefinition, reset_method_name,
18328 java_check_regular_methods, java_check_abstract_methods,
18329 maybe_build_primttype_type_ref): New function prototype.
18330 * parse.y (conver.h): Include.
18331 (INSTANCEOF_TK): Tagged <operator>.
18332 (single_type_import_declaration): Use REGISTER_IMPORT macro.
18333 (relational_expression:): Build binop for instanceof.
18334 (java_push_parser_context): Remember ctxp->gclass_list across
18335 contexts.
18336 (java_pop_parser_context): Simply return if no context
18337 exists. Remember gclass_list across contexts.
18338 (issue_warning_error_from_context): New function.
18339 (parse_error_context): Don't setup ctxp->elc here. Call
18340 issue_warning_error_from_context instead.
18341 (parse_warning_context): Likewise.
18342 (maybe_create_class_interface_decl): Removed DECL_ARTIFICIAL
18343 setup. Link new class/interface to ctxp->gclass_list.
18344 (add_superinterfaces): Register interface as incomplete if not
18345 loaded.
18346 (create_class): Remember class unqualified name in
18347 ctxp->current_parsed_class_un. Check class deprecation.
18348 (register_fields): Check field deprecation. Remember static final
18349 field value in DECL_LOCAL_STATIC_VALUE. Changed comment in part
18350 processing INIT.
18351 (method_header): New local variable ORIG_ARG. Use unqualified
18352 current class name for check on constructor errors. Promote return
18353 type if of record type. Argument list fix moved in
18354 fix_method_argument_names, called here. Check method deprecation.
18355 (fix_method_argument_names): New function.
18356 (method_declarator): Promote record typed arguments.
18357 (safe_layout_class): Check class methods before layout.
18358 (java_complete_class): Compute field layout when patched.
18359 (do_resolve_class): Try to load class after having it renamed
18360 after the package name.
18361 (get_printable_method_name): Use DECL_CONTEXT.
18362 (reset_method_name): New function.
18363 (check_method_redefinition): Use reset_method_name.
18364 (java_check_regular_methods): New local variable
18365 SAVED_FOUND_WFL. Temporarily reinstall overriding/hiding method
18366 names for error report. Check for compile-time error when method
18367 found has default (package) access.
18368 (java_check_abstract_methods): Now takes an interface DECL node as
18369 an argument. Also reinstall real name on unchecked
18370 overriding/hiding methods for error report.
18371 (java_check_methods): Fixed leading comment. Get classes to verify
18372 from ctxp->gclass_list. Use CHECK_METHODS macro and set
18373 CLASS_METHOD_CHECKED_P on class verification.
18374 (lookup_java_method2): Get real method name if necessary.
18375 (find_in_imports): Don't check package class access here.
18376 (resolve_package, lookup_package_type): New functions.
18377 (java_layout_classes): Fixed leading comment. Take classes to be
18378 laid out from ctxp->gclass_list.
18379 (java_complete_expand_methods): Don't expand native and abstract
18380 methods.
18381 (java_expand_classes): New function.
18382 (resolve_expression_name): Use additional argument ORIG. Retrieve
18383 values of static final field of primitive types.
18384 (resolve_field_access): Handles static final field of promotive
18385 type.
18386 (resolve_qualified_expression_name): Handle STRING_CST as
18387 primaries and package name resolution. Check deprecation on found
18388 decls. Set where_found and type_found on non static field resolved
18389 during qualification. Layout non primitive field decl types.
18390 (check_deprecation): New function.
18391 (maybe_access_field): Simplified.
18392 (patch_method_invocation_stmt): Local variable CLASS_TYPE
18393 removed. Reverse method's argument when primary is a type. Don't
18394 use CLASS_TYPE to report problems, use IDENTIFIER_WFL
18395 instead. Include abstract class in the list of class searchable
18396 for constructors. Use DECL_CONTEXT of found method for access
18397 checks. Check method deprecation.
18398 (patch_invoke): Pay extra care to NEW_CLASS_EXPR type call when
18399 converting arguments. Handle INVOKE_INTERFACE.
18400 (lookup_method_invoke): Search constructor using existing
18401 infrastructure (don't rely on lookup_java_constructor anymore).
18402 (find_applicable_accessible_methods_list): Extra argument flag
18403 LC. Now include constructor in the search.
18404 (qualify_ambiguous_name): Conditional expression are primaries.
18405 (not_initialized_as_it_should_p): static final are always
18406 initialized.
18407 (java_complete_tree): Pass extra NULL argument to
18408 resolve_expression_name. Stricter test to carry on patching
18409 assignments. New case for INSTANCEOF_EXPR.
18410 (complete_function_arguments): Inline PRIMTYPE.TYPE read access.
18411 (check_final_assignment, maybe_build_primttype_type_ref): New
18412 functions.
18413 (patch_assignment): Detect resolved static finals and carry normal
18414 assignment error check on them. Inline PRIMTYPE.TYPE read access.
18415 (try_builtin_assignconv): Access constant 0 on all primitive
18416 types.
18417 (valid_builtin_assignconv_identity_widening_p): Accept identical
18418 types. Accept all promoted type on int type.
18419 (valid_ref_assignconv_cast_p): Accept a null pointer to be
18420 assigned to a reference.
18421 (valid_method_invocation_conversion_p): Accept to check null
18422 pointers.
18423 (build_binop): Merge declaration and initialization of local
18424 variable BINOP.
18425 (patch_binop): New case for INSTANCEOF_EXPR. NE_EXPR to accept all
18426 numeric types. Improved validity test for qualify operators on
18427 references.
18428 (patch_unaryop): Broadened rejection test for PREDECREMENT_EXPR
18429 and PREINCREMENT_EXPR. Also detect resolved static finals of a
18430 primitive type and issue the appropriate error message.
18431 (resolve_type_during_patch): Mark class loaded when resolved.
18432 (patch_cast): Allow null to be cased to reference types.
18433 (build_null_of_type): New function.
18434 (patch_array_ref): Handle array on references correctly.
18435 (patch_return): Removed unused local variable MODIFY. Force
18436 boolean to be returned as integers. Allows null to be returned by
18437 a function returning a reference.
18438 * typeck.c (convert_to_integer, convert_to_real,
18439 convert_to_pointer): Prototypes moved to convert.h
18440 (lookup_argument_method): Use method real name, if necessary.
18441
18442 1998-10-30 Tom Tromey <tromey@cygnus.com>
18443
18444 * class.c (build_class_ref): Changed name of primitive classes to
18445 start with `_Jv_'.
18446
18447 * class.c (make_class_data): Renamed fields: nmethods to
18448 method_count, method_count to dtable_method_count. Always set
18449 `state' field to 0.
18450 * decl.c (init_decl_processing): Likewise.
18451
18452 1998-10-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
18453
18454 * class.c (layout_class): Don't mangle <finit>, produce
18455 __finit<class> instead. Don't verify artificial methods.
18456 * decl.c (finit_identifier_node): New declared global.
18457 (init_decl_processing): finit_identifier_node initialized.
18458 * java-tree.def (CONDITIONAL_EXPR): New Java tree code.
18459 * java-tree.h (finit_identifier_node): Declared as extern.
18460 (struct lang_decl): New field called_constructor.
18461 (DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor.
18462 (CLASS_HAS_FINIT_P): New macro.
18463 (CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks
18464 explicit constructor invocation.
18465 (CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P,
18466 CALL_SUPER_CONSTRUCTOR_P): New macros.
18467 (write_classfile): Added prototype.
18468 * jcf-parse.c (jcf_parse_source): Parse and remember for
18469 generation if the file was seen on the command line.
18470 (parse_source_file): Don't write the class file here.
18471 (yyparse): Loop on files rewritten. Set current_jcf.
18472 (parse_zip_file_entries): Parse class file only if it was found.
18473 * lang.c (init_parse): Don't open command line provided filename
18474 here.
18475 (lang_parse): Don't set main_jcf anymore.
18476 * parse.h (ABSTRAC_CHECK): Capitalized arguments.
18477 (JCONSTRUCTOR_CHECK): New macro.
18478 (JBSC_TYPE_P): New macro.
18479 (IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment.
18480 (COMPLETE_CHECK_OP_2): New macro.
18481 (struct parse_ctxt): New field explicit_constructor_p.
18482 (check_class_interface_creation): Fixed prototype indentation.
18483 (patch_method_invocation_stmt): Prototype reflects added argument.
18484 (patch_invoke): Likewise.
18485 (complete_method_declaration, build_super_invocation,
18486 verify_constructor_circularity,
18487 build_this_super_qualified_invocation, get_printable_method_name,
18488 patch_conditional_expr, maybe_generate_finit, fix_constructors,
18489 verify_constructor_super, create_artificial_method,
18490 start_artificial_method_body, end_artificial_method_body,
18491 generate_field_initialization_code): New function prototypes.
18492 * parse.y: Fixed leading comment
18493 (constructor_header:, constructor_body:, block_end:): Rules tagged
18494 <node>.
18495 (type_declaration:): Call maybe_generate_finit.
18496 (method_declaration:): Action for method_body: placed in new
18497 function complete_method_declaration, called here.
18498 (constructor_declaration:): Defined actions. Removed leading
18499 FIXME.
18500 (constructor_header:): New rule with action.
18501 (constructor_body:): Rule rewritten using block_begin: and
18502 block_end:. Defined actions.
18503 (constructor_declarator:, explicit_constructor_invocation:):
18504 Defined actions.
18505 (block:): Use new rules block_begin: block_end:.
18506 (block_begin:, block_end:): New rules and actions.
18507 (block_statements:): Fixed error message for explicit
18508 constructors.
18509 (method_invocation:): Call build_this_super_qualified_invocation
18510 if primary is `this' or `super' was seen.
18511 (conditional_expression:): Action defined.
18512 (extra_ctxp_pushed_p): New static global flag.
18513 (java_parser_context_save_global): Create parser context if
18514 necessary. Use extra_ctxp_pushed_p to remember it.
18515 (java_parser_context_restore_global): Pop extra parser context if
18516 one exists.
18517 (build_array_from_name): Array on primitive types are marked
18518 loaded.
18519 (register_fields): Restore new name in field initializer
18520 expression if type was altered. Non static fields initialized upon
18521 declaration marked initialized.
18522 (maybe_generate_finit): New function.
18523 (maybe_generate_clinit): Use create_artificial_method,
18524 start_artificial_method_body, end_artificial_method_body. Generate
18525 debug info for enclosed initialization statements.
18526 (method_header): Fixed leading comment. Check constructor
18527 flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P
18528 accordingly.
18529 (complete_method_declaration, constructor_circularity_msg,
18530 verify_constructor_circularity): New functions.
18531 (get_printable_method_name): New function.
18532 (check_method_redefinition): Don't rename <finit> methods. Fix
18533 declared constructor names. Error message for
18534 constructors modified.
18535 (java_check_regular_methods): Local variable seen_constructor
18536 renamed saw_constructor. Skip verification on constructors. Create
18537 default constructor with create_artificial_method.
18538 (java_check_methods): Removed unnecessary empty line.
18539 (create_artificial_method, start_artificial_method_body,
18540 end_artificial_method_body): New functions.
18541 (java_layout_classes): Changed leading comment. Reverse fields
18542 list if necessary. Always layout java.lang.Object if being
18543 defined.
18544 (java_complete_expand_methods): Verify constructor circularity.
18545 (java_complete_expand_method): Call fix_constructor on
18546 constructors. Local variable no_ac_found removed. Restore
18547 bindings if method body expansion failed.
18548 (fix_constructors, verify_constructor_super,
18549 generate_field_initialization_code): New function.
18550 (java_expand_classes): Fixed leading comment. Write class file
18551 here.
18552 (resolve_expression_name): Check for illegal instance variable
18553 usage within the argument scope of an explicit constructor
18554 invocation.
18555 (resolve_qualified_expression_name): Pass extra from_super flag
18556 when invoking patch_method_invocation_stmt. New case for
18557 conditional expression when used as a primary. Check for error
18558 when acquiring super.
18559 (patch_method_invocation_stmt): Added extra argument super. New
18560 local variable is_static_flag. Set class_to_search according to
18561 the nature of the constructor invocation. Don't add `this'
18562 argument when expanding NEW_CLASS_EXPR. Check for illegal method
18563 invocation within the argument scope of explicit constructor
18564 invocation. Set is_static according to is_static_flag. Provide
18565 extra `super' argument to patch_invoke invocation.
18566 (patch_invoke): New argument from_super. Loop on arguments
18567 indentation fixed. Pass from_super to invocation_mode. New switch
18568 case INVOKE_SUPER. Fixed error message in switch default case.
18569 Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node
18570 value.
18571 (invocation_mode): Return INVOKE_SUPER mode when appropriate.
18572 (lookup_method_invoke): Fixed prototypes in candidates list. Error
18573 message takes constructors into account.
18574 (find_applicable_accessible_methods_list): Fixed indentation.
18575 (qualify_ambiguous_name): Take explicit constructor invocation
18576 into account. Deal with a conditional expression as a primary to
18577 a method call.
18578 (java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR
18579 case. Added extra argument to patch_method_invocation_stmt.
18580 Register calls made to explicit constructor `this'. Don't call
18581 save_expr in ARRAY_REF case when emitting class files. Check for
18582 illegal use of this when expanding explicit constructor invocation
18583 arguments.
18584 (complete_function_arguments): Set and reset parser context
18585 explicit_constructor_p field value when appropriate.
18586 (build_super_invocation, build_this_super_qualified_invocation):
18587 New functions.
18588 (patch_assignment): Fixed typo.
18589 (patch_unaryop): Check on final fields occurs only when a decl
18590 exits.
18591 (patch_return): Take constructors into account.
18592 (patch_conditional_expr): New function.
18593 * typeck.c (build_java_signature): Removed unnecessary empty line.
18594
18595 1998-10-28 Jeffrey A Law (law@cygnus.com)
18596
18597 * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
18598
18599 1998-10-28 Tom Tromey <tromey@cygnus.com>
18600
18601 * decl.c (init_decl_processing): Renamed fields.
18602 * class.c (make_class_data): Renamed bfsize, nfields, nsfields,
18603 interface_len, msize fields.
18604
18605 * class.c (make_class_data): Removed subclass_head and
18606 subclass_next fields.
18607 * decl.c (init_decl_processing): Removed subclass_head and
18608 subclass_next fields.
18609
18610 1998-10-28 Jeffrey A Law (law@cygnus.com)
18611
18612 * jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
18613 * mangle.c (emit_unicode_mangled_name): Similarly.
18614
18615 1998-10-26 Nick Clifton <nickc@cygnus.com>
18616
18617 * jcf-parse.c (get_constant): Place braces around code to compute
18618 'd' when REAL_ARITHMETIC is not defined.
18619
18620 1998-10-25 H.J. Lu (hjl@gnu.org)
18621
18622 * Make-lang.in (jv-scan$(exeext)): Add stamp-objlist to
18623 dependency.
18624
18625 1998-10-23 Tom Tromey <tromey@cygnus.com>
18626
18627 * lang-specs.h: `.zip' files are input to jc1.
18628
18629 1998-10-22 Per Bothner <bothner@cygnus.com>
18630
18631 * jvspecs.c: Add (but don't enable) support for combining multiple
18632 .class and .java input filenames to a single jc1 invocation.
18633 Add support for -C flag (copile to .class files).
18634 Translate -classpath and -CLASSPATH arguments.
18635 * lang-specs.h: Don't set %2 spec.
18636
18637 1998-10-22 Tom Tromey <tromey@cygnus.com>
18638
18639 * jcf-path.c (add_entry): Don't add trailing separator if entry is
18640 a .zip file.
18641 (add_path): Don't add trailing separator to non-empty path
18642 elements.
18643
18644 * lang.c (lang_decode_option): Check for -fclasspath and
18645 -fCLASSPATH before examining other `-f' options.
18646
18647 * java-tree.h (finalize_identifier_node): Don't declare.
18648 * class.c (make_class_data): Don't push "final" field.
18649 * decl.c (init_decl_processing): Don't push "final" field.
18650 (finalize_identifier_node): Removed.
18651 (init_decl_processing): Don't set finalize_identifier_node.
18652
18653 * config-lang.in (stagestuff): Added jcf-dump and jv-scan.
18654
18655 1998-10-11 Anthony Green <green@cygnus.com>
18656
18657 * Make-lang.in (java): Depend on jcf-dump and jv-scan.
18658 (JV_SCAN_SOURCES): New macro.
18659 (JCF_DUMP_SOURCES): Likewise.
18660 (jcf-dump$(exeext)): New target.
18661 (jv-scan$(exeext)): New target.
18662
18663 1998-10-22 Tom Tromey <tromey@cygnus.com>
18664
18665 * Makefile.in (LEX): Removed.
18666 (LEXFLAGS): Likewise.
18667 (SET_BISON): New macro.
18668 (BISON): Removed.
18669 ($(PARSE_C)): Use SET_BISON. Run bison from srcdir to avoid
18670 spurious diffs in parse.c.
18671 ($(PARSE_SCAN_C)): Likewise.
18672 (PARSE_DIR): New macro.
18673 (PARSE_C): Use it.
18674 (PARSE_SCAN_C): Likewise.
18675 (PARSE_RELDIR): New macro.
18676
18677 * jcf-io.c (saw_java_source): Define here, not in jcf-parse.c.
18678
18679 * jcf-io.c (find_class): Use saw_java_source to determine when to
18680 look for `.java' file.
18681 * jcf-parse.c (saw_java_source): New global.
18682 (yyparse): Set it if `.java' file seen.
18683
18684 * Make-lang.in (JAVA_SRCS): Added jcf-path.c.
18685 (GCJH_SOURCES): Likewise.
18686 * Makefile.in (datadir): New macro.
18687 (libjava_zip): Likewise.
18688 (JAVA_OBJS): Added jcf-path.o.
18689 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18690 (../gcjh$(exeext)): Likewise.
18691 (jcf-path.o): New target.
18692 * java-tree.h (fix_classpath): Removed decl.
18693 * jcf-parse.c (fix_classpath): Removed.
18694 (load_class): Don't call fix_classpath.
18695 * parse.y (read_import_dir): Don't call fix_classpath.
18696 * lex.h: Don't mention classpath.
18697 * lex.c (java_init_lex): Don't initialize classpath.
18698 * jcf-io.c (classpath): Removed global.
18699 (find_class): Use jcf_path iteration functions. Correctly search
18700 class path for .java file.
18701 (open_in_zip): New argument `is_system'.
18702 * jcf-dump.c (main): Call jcf_path_init. Recognize all new
18703 classpath-related options.
18704 * lang.c (lang_decode_option): Handle -fclasspath, -fCLASSPATH,
18705 and -I.
18706 (lang_init): Call jcf_path_init.
18707 * lang-options.h: Mention -I, -fclasspath, and -fCLASSPATH.
18708 * lang-specs.h: Handle -I. Minor cleanup to -M options.
18709 Correctly put braces around second string in each entry.
18710 * gjavah.c (main): Call jcf_path_init. Recognize all the new
18711 classpath-related options.
18712 (help): Updated for new options.
18713 * jcf.h: Declare functions from jcf-path.c. Don't mention
18714 `classpath' global.
18715 * jcf-path.c: New file.
18716
18717 * jcf-depend.c: Include jcf.h.
18718
18719 * jcf-write.c (localvar_alloc): Returns `void'.
18720 (localvar_free): Removed unused variable.
18721
18722 * lang.c (OBJECT_SUFFIX): Define if not already defined.
18723 (init_parse): Use OBJECT_SUFFIX, not ".o".
18724
18725 1998-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
18726
18727 * class.c (emit_register_classes): Renamed from
18728 emit_register_class.
18729 * java-tree.h (emit_register_classes): Prototype renamed from
18730 emit_register_class.
18731 * jcf-parse.c (yyparse): Call emit_register_classes once before
18732 returning.
18733 * parse.y (java_expand_classes): No longer register classes.
18734
18735 1998-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
18736
18737 * class.c (is_compiled_class): New local variable
18738 seen_in_zip. Identify classes found in currently compiled source
18739 file(s).
18740 * decl.c (complete_start_java_method): Fixed typo.
18741 * java-tree.h (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P,
18742 HAS_BEEN_ALREADY_PARSED_P, IS_A_COMMAND_LINE_FILENAME_P): New macros.
18743 (CLASS_P): Moved around.
18744 (java_parse_abort_on_error): Macro moved from jcf-parse.c
18745 * jcf-parse.c (java_parse_abort_on_error): Macro moved to
18746 java-tree.h
18747 (jcf_parse_source): Changed leading comment. Removed unnecessary
18748 fclose and CLASS_FROM_SOURCE_P marking.
18749 (parse_source_file): New local variables remember_for_generation
18750 and filename. Mark parsed file name identifier node. Removed block
18751 executed when parse_only was null. Set remember_for_generation.
18752 Use it as an argument to java_pop_parser_context.
18753 (yyparse): New local variables several_files, list, next node and
18754 current_file_list. Split ampersand separated file names into
18755 current_file_list. Iterate through the list and parse accordingly.
18756 * parse.h (java_pop_parser_context): New function prototype.
18757 * parse.y (ctxp_for_generation): New static global variable.
18758 (java_pop_parser_context): New argument generate. Link popped ctxp
18759 to ctxp_for_generation list accordingly.
18760 (java_complete_expand_methods): Fixed indentation.
18761 (java_expand_classes): New function.
18762
18763 1998-10-17 Per Bothner <bothner@cygnus.com>
18764
18765 * Makefile.in: Link with libiberty.a instead of memmove.o.
18766
18767 1998-10-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
18768
18769 * lex.c (setjmp.h): No longer included.
18770 * lex.h (setjmp.h): Included.
18771 * parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
18772 (duplicate_declaration_error_p): Renamed from
18773 duplicate_declaration_error.
18774 (build_array_from_name): New function prototype.
18775 * parse.y (setjmp.h): No longer included.
18776 (variable_declarator_id): Define action.
18777 (build_array_from_name): New function.
18778 (duplicate_declaration_error_p): Renamed from
18779 duplicate_declaration_error. Fixed leading comment.
18780 (register_fields): Main `for' loop reorganized. Uses
18781 SET_TYPE_FOR_RESOLUTION and build_array_from_name.
18782 (method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
18783 build_array_from_name.
18784 (resolve_class): Set CLASS_LOADED_P on newly build array dimension
18785 types.
18786 (read_import_dir): Don't try to skip `.' and `..'.
18787 (declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
18788 build_array_from_name. Main `for' loop reorganized.
18789 (resolve_qualified_expression_name): When building access to a
18790 field, use the type where the field was found, not its own type.
18791 (maybe_access_field): Use field DECL_CONTEXT if the type where the
18792 field was found is null.
18793 (qualify_ambiguous_name): Sweep through all successive array
18794 dimensions.
18795
18796 1998-10-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
18797
18798 * java-tree.h (pop_labeled_block, lang_printable_name,
18799 maybe_add_interface, set_super_info, get_access_flags_from_decl,
18800 interface_of_p, inherits_from_p, fix_classpath,
18801 complete_start_java_method, emit_handlers, init_outgoing_cpool,
18802 make_class_data, register_class, alloc_name_constant): New
18803 function prototypes.
18804 * lang.c (lang_decode_option): Set argc argument unused. Fixed
18805 indentation. Added cast to remove warning.
18806 (lang_printable_name): Set v argument unused.
18807 (lang_print_error): Added argument to lang_printable_name call.
18808 (java_dummy_print, print_lang_decl, print_lang_type,
18809 print_lang_identifier, lang_print_xnode): All argument marked
18810 unused.
18811 * lex.c (java_unget_unicode): Removed unnecessary argument.
18812 (java_allocate_new_line): Unused local variable is gone.
18813 (java_read_char): Added parenthesis in expressions to remove
18814 warnings. Added final return statement.
18815 (java_read_unicode): Added parenthesis in expression to remove
18816 warning.
18817 (java_parse_end_comment): Fixed java_unget_unicode invocation.
18818 (java_parse_escape_sequence): Likewise.
18819 (java_lex): Unused local variables are gone. Fixed
18820 java_unget_unicode invocation.
18821 * lex.h (set_float_handler): Prototype added when JC1_LITE not
18822 defined.
18823 * parse.h (ERROR_CANT_CONVERT_TO_BOOLEAN): Fixed
18824 lang_printable_name invocation in macro.
18825 (ERROR_CANT_CONVERT_TO_NUMERIC, ERROR_CAST_NEEDED_TO_INTEGRAL):
18826 Likewise.
18827 (duplicate_declaration_error): Suppressed unused argument in
18828 prototype.
18829 (identical_subpath_p): Function declaration is gone.
18830 (patch_invoke): Suppressed unused argument in prototype.
18831 (patch_cast, build_labeled_block, check_thrown_exceptions):
18832 Likewise.
18833 * parse.y (setjmp.h): Included
18834 (toplev.h): Likewise.
18835 (field_declaration:): Suppressed unused local
18836 (label_decl:): Fixed build_labeled_block invocation.
18837 (java_pop_parser_context): Put extra parenthesis around assignment
18838 in if.
18839 (yyerror): Suppressed unused local variables.
18840 (variable_redefinition_error): Fixed lang_printable_name
18841 invocation.
18842 (create_interface): Suppressed unused local variables.
18843 (create_class): Likewise.
18844 (duplicate_declaration_error): Suppressed unused argument. Fixed
18845 lang_printable_name invocation.
18846 (register_fields): Suppressed unused local variable. Fixed
18847 duplicate_declaration_error invocation.
18848 (method_header): Suppressed unused local variable.
18849 (method_declarator, parser_check_super): Likewise.
18850 (java_complete_class): Suppressed unused local variable. Fixed
18851 fatal error message.
18852 (complete_class_report_errors): Added default: in switch.
18853 (java_check_regular_methods): Fixed lang_printable_name
18854 invocations.
18855 (check_throws_clauses): Likewise.
18856 (java_check_abstract_methods): Suppressed unused local
18857 variable. Fixed lang_printable_name invocation.
18858 (read_import_entry): Added supplemental return statement.
18859 (read_import_dir): Suppressed unused local variables.
18860 (check_pkg_class_access, declare_local_variables): Likewise.
18861 (source_start_java_method): Suppressed unused extern variable
18862 declarations
18863 (expand_start_java_method): Suppressed unused extern and local
18864 variable declarations.
18865 (java_complete_expand_methods): Likewise.
18866 (java_complete_expand_method): Suppressed unused local variables.
18867 (make_qualified_name): Likewise.
18868 (resolve_qualified_expression_name): Added default: in
18869 switch. Fixed lang_printable_name invocation.
18870 (class_instance_creation_expression): Added parenthesis around
18871 expressions.
18872 (patch_method_invocation_stmt): Fixed lang_printable_name and
18873 patch_invoke invocations.
18874 (check_for_static_method_reference): Fixed lang_printable_name
18875 invocation.
18876 (patch_invoke): Suppressed unused arguments and local variables.
18877 (lookup_method_invoke): Suppressed unused local variables.
18878 (qualify_ambiguous_name): Added default: in switch.
18879 (identical_subpath_p): Function removed.
18880 (patch_assignment): Suppressed unused local variables. Suppressed
18881 unnecessary if statement. Fixed lang_printable_name invocations.
18882 (try_builtin_assignconv): Fixed lang_printable_name invocations.
18883 (valid_ref_assignconv_cast_p): Parenthesis around
18884 expression. Suppressed unused local variables.
18885 (build_binop): Suppressed unused local variables. fixed
18886 lang_printable_name invocations.
18887 (string_constant_concatenation): Suppressed unused local
18888 variables.
18889 (patch_unaryop): Fixed lang_printable_name invocation.
18890 (patch_cast): Suppressed unnecessary argument. Fixed
18891 lang_printable_name invocation.
18892 (patch_array_ref): Fixed lang_printable_name invocation.
18893 (patch_newarray, patch_return, patch_if_else_statement): Likewise.
18894 (build_labeled_block): Suppressed unused argument.
18895 (generate_labeled_block): Fixed build_labeled_block invocation.
18896 (build_loop_body): Suppressed unused local variables.
18897 (patch_loop_statement): Likewise.
18898 (patch_exit): Fixed lang_printable_name invocation.
18899 (patch_switch_statement): Likewise.
18900 (case_identity): First argument marked unused.
18901 (patch_try_statement): Fixed lang_printable_name invocations.
18902 (patch_synchronized_statement, patch_throw_statement): Likewise.
18903 (check_thrown_exceptions): Fixed check_thrown_exceptions and
18904 lang_printable_name invocations.
18905 (check_thrown_exceptions_do): Suppressed unused argument.
18906
18907 1998-10-14 Tom Tromey <tromey@cygnus.com>
18908
18909 * jcf-write.c (write_classfile): Add output class file as target.
18910 * lang-options.h: Added -MD, -MMD, -M, and -MM.
18911 * jcf.h: Added declarations for dependency-tracking functions.
18912 * lang-specs.h: Handle -M, -MM, MD, and -MMD.
18913 * lang.c (lang_decode_option): Recognize -MD and -MMD.
18914 (finish_parse): Call jcf_dependency_write.
18915 (dependency_tracking): New global.
18916 (DEPEND_SET_FILE): New define.
18917 (DEPEND_ENABLE): New define.
18918 (init_parse): Enable dependency tracking if required.
18919 Include "flags.h".
18920 * Makefile.in (JAVA_OBJS): Added jcf-depend.o.
18921 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18922 (../gcjh$(exeext)): Likewise.
18923 (jcf-depend.o): New target.
18924 * Make-lang.in (JAVA_SRCS): Added jcf-depend.c.
18925 (GCJH_SOURCES): Likewise.
18926 * jcf-io.c (open_class): Call jcf_dependency_add_file. Added
18927 dep_name argument.
18928 (find_classfile): Added dep_name argument.
18929 (find_class): Compute name of dependency.
18930 (open_in_zip): Call jcf_dependency_add_file.
18931 * gjavah.c (output_file): No longer global.
18932 (usage): Don't mention "gjavah".
18933 (help): Likewise.
18934 (java_no_argument): Likewise.
18935 (version): Likewise.
18936 (main): Recognize and handle -M family of options.
18937 (print_mangled_classname): Return is void.
18938 (process_file): Handle case where output is suppressed.
18939 (HANDLE_END_FIELD): Likewise.
18940 (HANDLE_METHOD): Likewise.
18941 * jcf-depend.c: New file.
18942
18943 1998-10-13 Jeffrey A Law (law@cygnus.com)
18944
18945 * java-tree.def: Add missing newline at EOF.
18946
18947 1998-10-13 Tom Tromey <tromey@cygnus.com>
18948
18949 * jcf-dump.c (process_class): Use FATAL_EXIT_CODE, not -1.
18950 (main): Likewise. Exit with SUCCESS_EXIT_CODE at end of
18951 function.
18952 Include <config.h> and "system.h".
18953 (disassemble_method): Undefine RET to avoid clash with
18954 config/i386/i386.h.
18955
18956 1998-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
18957
18958 * decl.c (runtime_exception_type_node, error_exception_type_node):
18959 New global variables.
18960 (init_decl_processing): Initialized.
18961 * expr.c (java_lang_expand_expr): Set caught exception type to
18962 null if catch handler argument doesn't exit.
18963 * java-tree.def (SYNCHRONIZED_EXPR, THROW_EXPR): New Java specific
18964 tree codes.
18965 * java-tree.h (runtime_exception_type_node,
18966 error_exception_type_node): Global variables declared.
18967 (DECL_FUNCTION_THROWS): New macro.
18968 (DECL_FUNCTION_BODY): Modified comment.
18969 (DECL_SPECIFIC_COUNT): Likewise.
18970 (struct lang_decl): New field throws_list.
18971 (IS_UNCHECKED_EXPRESSION_P): New macro.
18972 * lex.c (java_lex): Generate location information for THROW_TK.
18973 * parse.h (PUSH_EXCEPTIONS, POP_EXCEPTIONS, IN_TRY_BLOCK_P,
18974 EXCEPTIONS_P): New macros.
18975 (enum jdep_code): New value JDEP_EXCEPTION.
18976 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT,
18977 BUILD_ASSIGN_EXCEPTION_INFO, BUILD_THROW, SET_WFL_OPERATOR,
18978 PATCH_METHOD_RETURN_ERROR): New macros.
18979 (patch_method_invocation_stmt): Added new argument to prototype.
18980 (patch_synchronized_statement, patch_throw_statement,
18981 check_thrown_exceptions, check_thrown_exceptions_do,
18982 purge_unchecked_exceptions, check_throws_clauses): New function
18983 prototypes.
18984 * parse.y Fixed typo in keyword section.
18985 (throw:): Rule tagged <node>.
18986 (THROW_TK): Keyword tagged <operator>.
18987 (method_header:): Last argument to call to method_header passed
18988 from throws: rule.
18989 (throws:, class_type_list:, throw_statement:,
18990 synchronized_statement:, synchronized:): Defined actions.
18991 (method_header): New local variable current. Register exceptions
18992 from throws clause.
18993 (java_complete_tree): Complete and verify exceptions from throws
18994 clause.
18995 (complete_class_report_errors): Error message on exceptions not
18996 found
18997 (java_check_regular_methods): Fixed typo. Shortcut on private
18998 overriding methods. Changed error message on method
18999 redefinition. Check for throws clause compatibility.
19000 (check_throws_clauses): New function.
19001 (java_check_abstract_methods): Use DECL_NAME for wfl or current
19002 method. Changed error message on method redefinition.
19003 (currently_caught_type_list): New static variable.
19004 (java_complete_expand_methods): Purge unchecked exceptions from
19005 throws clause list. Call PUSH_EXCEPTIONS before walk and
19006 POP_EXCEPTIONS after.
19007 (resolve_qualified_expression_name): Pass new argument as NULL to
19008 patch_method_invocation_stmt.
19009 (patch_method_invocation_stmt): New argument ref_decl. Invoke
19010 PATCH_METHOD_RETURN_ERROR when returning with error. Reverse
19011 argument list when appropriate. Use new argument if non null to
19012 store selected method decl.
19013 (patch_invoke): Convert if necessary args of builtin types before
19014 forming CALL_EXPR. Argument list no longer reversed here.
19015 (invocation_mode): Treat final methods as static methods.
19016 (java_complete_tree): New cases for THROW_EXPR: and
19017 SYNCHRONIZED_EXPR:. Check thrown exceptions when completing
19018 function call.
19019 (complete_function_arguments): No more RECORD_TYPE
19020 conversion. Function parameter nodes no longer saved.
19021 (valid_ref_assignconv_cast_p): Avoid handling null type.
19022 (patch_binop): Fixed null constant reference handling.
19023 (build_try_statement): Use BUILD_ASSIGN_EXCEPTION_INFO and
19024 BUILD_THROW macros.
19025 (patch_try_statement): Fixed comments. Record caught types in
19026 list, push the list, expand try block and pop the list.
19027 (patch_synchronized_statement, patch_throw_statement,
19028 check_thrown_exceptions, check_thrown_exceptions_do,
19029 purge_unchecked_exceptions): New functions.
19030 * typeck.c (lookup_argument_method): Allow WFL in place of method
19031 DECL_NAME during method definition check
19032
19033 1998-10-09 Tom Tromey <tromey@cygnus.com>
19034
19035 * gjavah.c (decode_signature_piece): New function.
19036 (print_c_decl): Use it. Added `name_override' argument.
19037 (print_method_info): Use name_override argument to print_c_decl.
19038 (seen_fields): Removed.
19039 (print_field_info): Don't update seen_fields.
19040 (struct method_name): New structure.
19041 (method_name_list): New global.
19042 (print_method_info): Add new method to list of methods.
19043 (name_is_method_p): New function.
19044 (print_field_info): If field name has same name as method, then
19045 change field name.
19046 (process_file): Parse methods before fields.
19047 (field_pass): New global.
19048 (HANDLE_END_FIELD): Take field_pass into account.
19049
19050 1998-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19051
19052 * Makefile.in (keyword.h): Add -L KR-C -F ', 0' flags to gperf.
19053 (keyword.h): Regenerate using gperf 2.7.1 (19981006 egcs).
19054
19055 1998-10-03 Anthony Green <green@cygnus.com>
19056
19057 * jvspec.c: Fix bug in jvgenmain_spec patch.
19058
19059 1998-10-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
19060
19061 * Makefile.in (lang.o:): Install dependency on java-tree.def.
19062 * decl.c (soft_exceptioninfo_call_node): New global variable.
19063 (init_decl_processing): Fixed indentation. soft_badarrayindex_node
19064 takes extra integer argument. soft_exceptioninfo_call_node
19065 initialized.
19066 * except.c (java_set_exception_lang_code): New function
19067 (method_init_exceptions): Called here.
19068 (prepare_eh_table_type): New function.
19069 (expand_end_java_handler): Called here.
19070 * expr.c (build_java_throw_out_of_bounds_exception): Now features
19071 one argument. Modified generation of call to
19072 soft_badarrayindex_node to use new argument.
19073 (build_java_arrayaccess): Pass faulty index value to
19074 build_java_throw_out_of_bounds_exception.
19075 (generate_name): New function.
19076 (java_lang_expand_expr): New local variables node, current,
19077 has_finally_p. Expand TRY_EXPR node.
19078 (process_jvm_instruction): Replace top of the stack with thrown
19079 object reference when entering exception handler.
19080 * java-tree.def (TRY_EXPR, CATCH_EXPR, FINALLY_EXPR): New Java
19081 specific tree codes.
19082 * java-tree.h (soft_exceptioninfo_call_node): Declaration of new
19083 global.
19084 (DECL_SPECIFIC_COUNT): New macro.
19085 (prepare_eh_table_type, java_set_exception_lang_code,
19086 generate_name): New function declarations.
19087 (match_java_method): Declaration deleted.
19088 (FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, CATCH_EXPR_GET_EXPR): New
19089 macros.
19090 * lex.c (TRY_TK, CATCH_TK): Generate location information.
19091 * parse.h (redefinition_error, refine_accessible_methods_list,
19092 can_cast_to_p): Function declaration removed.
19093 (classitf_redefinition_error, variable_redefinition_error,
19094 parse_jdk1_1_error, find_applicable_accessible_methods_list,
19095 find_most_specific_methods_list, argument_types_convertible,
19096 enter_a_block, valid_builtin_assignconv_identity_widening_p,
19097 valid_cast_to_p, valid_method_invocation_conversion_p,
19098 try_reference_assignconv, add_stmt_to_compound,
19099 build_jump_to_finally, build_tree_list, patch_try_statement,
19100 java_get_catch_block): New function declarations.
19101 * parse.y (string_buffer_type): Global variable deleted.
19102 (group_of_labels, catches, catch_clause, catch_clause_parameter,
19103 finally): Rules tagged <node>.
19104 (TRY_TK, CATCH_TK): Token tagged <operator>.
19105 (class_body_declaration:, class_member_declaration:,
19106 formal_parameter:, explicit_constructor_invocation:,
19107 interface_member_declaration:, constant_declaration:,
19108 primary_no_new_array:, class_instance_creation_expression:,
19109 array_creation_expression:): Issue error on unsuported JDK1.1
19110 features.
19111 (try_statement:, catches:, finally:): Define actions.
19112 (catch_clause_parameter): New rule.
19113 (catch_clause:): Use new rule catch_clause_parameter.
19114 (parse_jdk1_1_error): New function.
19115 (redefinition_error): Renamed classitf_redefinition_error.
19116 (variable_redefinition_error): New function.
19117 (check_class_interface_creation): Call
19118 classitf_redefinition_error.
19119 (java_complete_tree): Added error message on JDEP_TYPE: case.
19120 (complete_class_report_errors): Fixed indentation.
19121 (declare_local_variables): Call variable_redefinition_error.
19122 (source_end_java_method): Call java_set_exception_lang_code and
19123 emit_handlers where appropriate.
19124 (java_method_add_stmt): Call add_stmt_to_block.
19125 (add_stmt_to_block): New function.
19126 (lookup_method_invoke): Fixed outside comment. new local variable
19127 candicates. Call find_applicable_accessible_methods_list and
19128 find_most_specific_methods_list when searching for a
19129 method. Modified error report to list possible candidates when
19130 applicable.
19131 (find_applicable_accessible_methods_list,
19132 find_most_specific_methods_list, argument_types_convertible): New
19133 function.
19134 (refine_accessible_methods_list): Function deleted.
19135 (java_complete_tree): Handle TRY_EXPR. ARRAY_REF handling: save
19136 expr (if applicable) before calling patch_array_ref.
19137 (build_expr_block): Fixed BLOCK_EXPR_BODY assignment.
19138 (enter_block): Fixed comment.
19139 (enter_a_block): New function.
19140 (patch_assignment): Reorganized. Call try_reference_assignconv for
19141 references. Call valid_cast_to_p instead of can_cast_to_p.
19142 (try_reference_assignconv,
19143 valid_builtin_assignconv_identity_widening_p): New functions.
19144 (valid_ref_assignconv_cast_p): Fixed inverted test on CLASS_FINAL.
19145 (valid_cast_to_p, valid_method_invocation_conversion_p): New
19146 functions.
19147 (build_string_concatenation): Don't resolve StringBuffer.
19148 (patch_cast): Fixed inverted arguments.
19149 (patch_array_ref): Code to save array expr deleted. Call
19150 valid_cast_to_p instead of can_cast_to_p.
19151 (generate_labeled_block): Call generate_name.
19152 (build_jump_to_finally, build_try_statement, java_get_catch_block,
19153 patch_try_statement): New functions.
19154 * typeck.c (match_java_method): Function deleted.
19155
19156 1998-10-02 Anthony Green <green@cygnus.com>
19157
19158 * jvspec.c: jvgenmain_spec uses different temporary file names.
19159
19160 1998-10-02 Anthony Green <green@cygnus.com>
19161
19162 * jvspec.c (lang_specific_driver): Fail if user specifies
19163 --main= when not linking.
19164
19165 1998-09-28 Tom Tromey <tromey@cygnus.com>
19166
19167 * class.c (make_class_data): Push value for `thread' field.
19168 * decl.c (init_decl_processing): Added `thread' field to class.
19169
19170 * class.c (add_field): Always make static fields externally
19171 visible.
19172
19173 1998-09-26 Anthony Green <green@cygnus.com>
19174
19175 * expr.c (build_java_athrow,
19176 build_java_throw_out_of_bounds_exception, expand_invoke,
19177 build_newarray, expand_java_multianewarray, build_java_monitor):
19178 Update comments to reflect _Jv_* function names.
19179
19180 1998-09-25 Per Bothner <bothner@cygnus.com>
19181
19182 * decl.c (complete_start_java_method): DECL_RESULT is always promoted.
19183 * decl.c (start_java_method): Handle PROMOTE_PROTOTYPES target macro.
19184 * parse.y (expand_start_java_method): Likewise.
19185
19186 1998-09-24 Per Bothner <bothner@cygnus.com>
19187
19188 * expr.c (pop_arguments): Handle PROMOTE_PROTOTYPES target macro.
19189
19190 * class.c (push_class): IDENTIFIER_SIGNATURE_TYPE is now POINTER_TYPE.
19191 (add_field): No longer need to convert from RECORD_TYPE to pointer,
19192 * expr.c: Remove no-longer-needed calls to promote_type.
19193 * decl.c (give_name_to_locals): Liekwise.
19194 * jcf-parse.c (get_class_constant): Compensate for new signatures.
19195 * parse.y: Add/remove promote_type calls as appropriate.
19196 * typeck.c (parse_signature_type): Returns POINTER_TYPE for objects.
19197 (parse_signature_string): Likewise.
19198 (build_java_array_type): Fix for now signature convenions.
19199
19200 * lex.c (java_lex): Fix (from Alex) for JC1_LITE problem.
19201
19202 1998-09-23 Tom Tromey <tromey@cygnus.com>
19203
19204 * class.c (init_class_processing): libjava function renamed to
19205 _Jv_RegisterClass.
19206
19207 1998-09-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
19208
19209 * expr.c (java_lang_expand_expr): New case for SWITCH_EXPR.
19210 * java-tree.def: Fixed DEFTREECODE third argument.
19211 (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
19212 CASE_EXPR, DEFAULT_EXPR): New tree codes for Java.
19213 * java-tree.h: (IS_CRAFTED_STRING_BUFFER_P): New macro.
19214 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19215 JAVA_THIS_EXPR): Now replaced by tree code definitions.
19216 (CALL_CONSTRUCTOR_P): Now uses NEW_CLASS_EXPR.
19217 * lang.c (java_tree_code_type, java_tree_code_length,
19218 java_tree_code_name): New arrays.
19219 (lang_init): Append Java tree node definitions to Gcc ones.
19220 * lex.c (expression_obstack): Declared as extern when JC1_LITE
19221 defined.
19222 (java_init_lex): Initialize wfl_append, wfl_string_buffer,
19223 wfl_to_string.
19224 (java_lex): Allow declaration of empty string constants. Retain
19225 location information on CASE_TK and DEFAULT_TK.
19226 * parse.h (JFLOAT_TYPE_P, JINTEGRAL_TYPE_P, JNUMERIC_TYPE_P,
19227 JPRIMITIVE_TYPE_P, JSTRING_TYPE_P, JSTRING_P, JREFERENCE_TYPE_P):
19228 Modified to be more robust.
19229 (BUILD_APPEND, BUILD_STRING_BUFFER): New macros.
19230 (build_new_invocation, try_builtin_assignconv,
19231 patch_switch_statement, string_constant_concatenation,
19232 build_string_concatenation, patch_string_cst, patch_string,
19233 java_expand_switch): New function declarations.
19234 * parse.y: Rules related to switch and EH tagged <node>.
19235 (label_id): Set to NULL_TREE
19236 (wfl_string_buffer, wfl_append, wfl_to_string): New static global
19237 tree nodes.
19238 (this_or_super:): Fixed indentation.
19239 (statement:, statement_nsi:, statement_without_trailing_substatement:,
19240 statement_expression:): Removed call to RULE on all sub-rules.
19241 (switch_expression:, switch_labels:): New rules.
19242 (switch_statement:, switch_block:, switch_block_statement_groups:,
19243 switch_block_statement_group:, switch_labels:, switch_label:):
19244 Defined actions.
19245 (throw_statement:, synchronized_statement:, try_statement:):
19246 Defined temporary actions.
19247 (class_instance_creation_expression:): Call
19248 build_new_invocation. Fixed indentation.
19249 (field_access): Fixed indentation.
19250 (method_invocation): Likewise.
19251 (make_qualified_primary): Use THIS_EXPR.
19252 (resolve_qualified_expression_name): Use NEW_CLASS_EXPR. When
19253 resolving from SUPER, set *type_found.
19254 (qualify_ambiguous_name): Use NEW_CLASS_EXPR.
19255 (java_complete_tree): Removed unused local variable `location'. Case
19256 for SWITCH_EXPR, sharing code with LOOP_EXPR. Use NEW_ARRAY_EXPR,
19257 NEW_CLASS_EXPR, UNARY_PLUS_EXPR and THIS_EXPR. New string handling
19258 on MODIFY_EXPR: and all binary operator tree code cases. Removed
19259 STRING_CST: case. default: checks for patchable strings.
19260 (complete_function_arguments): Transform string constant or
19261 crafted StringBuffer if necessary.
19262 (build_method_invocation): Fixed comments.
19263 (build_new_invocation): New function.
19264 (patch_assignment): Call try_builtin_assignconv to figure a valid
19265 assignment conversion between builtin types.
19266 (try_builtin_assignconv): New function.
19267 (build_binop): Use URSHIFT_EXPR directly to call build.
19268 (operator_string): Use UNARY_PLUS_EXPR.
19269 (patch_binop): Use UNARY_PLUS_EXPR. Handle string concatenation
19270 operator.
19271 (do_merge_string_cste, merge_string_cste,
19272 string_constant_concatenation, build_string_concatenation,
19273 patch_string, patch_string_cst): New function.
19274 (build_unary_op): Use UNARY_PLUS_EXPR and CONVERT_EXPR.
19275 (patch_unaryop): Likewise. New test of valid ++/-- operands.
19276 (build_newarray_node): Use NEW_ARRAY_EXPR.
19277 (build_this): Use THIS_EXPR.
19278 (build_return): Enable debug information on return statement.
19279 (build_if_else_statement): Likewise.
19280 (complete_labeled_statement): Fixed related comment.
19281 (build_loop_body): Fixed comment.
19282 (build_bc_statement): Enable debug information on break/continue
19283 statements.
19284 (patch_bc_statement): Fixed typos. Handle SWITCH statement
19285 context.
19286 (patch_switch_statement, case_identity, java_expand_switch): New
19287 functions.
19288
19289 1998-09-21 Per Bothner <bothner@cygnus.com>
19290
19291 * buffer.h (BUFFER_INIT): New macro.
19292 * jcf-write.c (struct jcf_partial): New type. Put global stuff here.
19293 Pass (struct jcf_partial *state) to most functions.
19294 (jcf_block, jcf_relocation): New types.
19295 Support labels, branches, conditionals, loops.
19296
19297 1998-09-21 Tom Tromey <tromey@cygnus.com>
19298
19299 * decl.c (INT_TYPE_SIZE): Define as BITS_PER_WORD if not defined.
19300
19301 1998-09-21 Per Bothner <bothner@cygnus.com>
19302
19303 * decl.c (integer_type_node): Make it have INT_TYPE_SIZE.
19304 * verify.c (verify_jvm_instructions): Use int_type_not (32 bits),
19305 not integer_type_node (INT_TYPE_SIZ bits).
19306
19307 * parse.y (patch_if_else_statement): Accept promoted_boolean_type_node.
19308
19309 * jcf-reader.c (get_attribute): New HANDLE_EXCEPTION_TABLE hook.
19310 * jcf-dump.c (print_exception_table): New function.
19311 (disassemble_method): Better handling of wide instructions.
19312 Make more robust for bad input.
19313
19314 1998-09-30 Jeffrey A Law (law@cygnus.com)
19315
19316 * jcf-write.c (OP2, OP4): Use "_i", not "_I" to avoid problems on
19317 FreeBSD.
19318
19319 1998-09-17 Jeffrey A Law (law@cygnus.com)
19320
19321 * Makefile.in (jcf-dump, jvgenmain): Link in memmove.o too.
19322
19323 1998-09-17 Tom Tromey <tromey@cygnus.com>
19324
19325 * Makefile.in ($(PARSE_H)): Removed target.
19326
19327 1998-09-17 Jeffrey A Law (law@cygnus.com)
19328
19329 * Makefile.in (JAVA_OBJS): Add memmove.o
19330 (memmove.o): New target & rules.
19331
19332 1998-09-15 Tom Tromey <tromey@cygnus.com>
19333
19334 * expr.c (expand_invoke): Don't generate a call to the class init
19335 code.
19336
19337 1998-09-14 Jeffrey A Law (law@cygnus.com)
19338
19339 * Makefile.in: Add many missing dependencies.
19340 * buffer.c, class.c, constants.c, decl.c: Use system.h and toplev.h
19341 as appropriate.
19342 * except.c, expr.c, jcf-io.c jcf-parse.c, jcf-write.c: Likewise.
19343 * jvgenmain.c lang.c mangle.c typeck.c verify.c: Likewise.
19344
19345 1998-09-11 Per Bothner <bothner@cygnus.com>
19346
19347 * decl.c (complete_start_java_method): If method is static (and
19348 not private) call _Jv_InitClass.
19349 * expr.c (expand_invoke): Don't call build_class_init.
19350
19351 * jvspec.c (jvgenmain_spec): Fix spec for generated .o file.
19352
19353 1998-09-10 Jeffrey A Law (law@cygnus.com)
19354
19355 * Make-lang.in (GCJ): Define before using.
19356
19357 1998-09-09 Jeffrey A Law (law@cygnus.com)
19358
19359 * gjavah.c (java_no_argument): Renamed from no_argument to avoid
19360 losing due to namespace pollution in GNU getopt.h
19361
19362 1998-09-09 Tom Tromey <tromey@cygnus.com>
19363
19364 * Make-lang.in (java.all.build): Don't mention jvgenmain or gcjh.
19365 (java.all.cross): Likewise.
19366 (java.rest.encap): Likewise.
19367
19368 1998-09-08 Jeffrey A Law (law@cygnus.com)
19369
19370 * gjavah.c (print_class_decls): Fix thinko in arglist
19371 * jcv-io.c (find_classfile): Similarly.
19372
19373 1998-09-07 Jeffrey A Law (law@cygnus.com)
19374
19375 * Makefile.in (INCLUDES): Update for recent toplevel gcc changes.
19376
19377 1998-09-05 Tom Tromey <tromey@cygnus.com>
19378
19379 * Make-lang.in (java.maintainer-clean): Don't remove parse.h.
19380 (java.mostlyclean): Remove parse.c and parse-scan.c, not parse.h.
19381 * Makefile.in (PARSE_C): New macro.
19382 (PARSE_H): Likewise.
19383 (PARSE_SCAN_C): Likewise.
19384 ($(PARSE_C)): Target renamed from parse.c.
19385 ($(PARSE_SCAN_C)): Target renamed from parse-scan.c.
19386 (clean): Remove parse-scan.c as well.
19387 (parse.o): Depend on $(PARSE_C).
19388
19389 1998-09-05 Anthony Green <green@cygnus.com>
19390
19391 * README, license.terms: Removed.
19392
19393 * Make-lang.in, Makefile.in, class.c, config-lang.in, constants.c,
19394 decl.c, except.c, expr.c, gjavah.c, java-except.h, java-tree.h,
19395 javaop.def, javaop.h, jcf-dump.c, jcf-io.c, jcf-parse.c,
19396 jcf-reader.c, jcf-write.c, jcf.h, jvgenmain.c, jvspec.c,
19397 keyword.gperf, keyword.h, lang-options.h, lang-specs.h, lang.c,
19398 lex.c, lex.h, mangle.c, parse-scan.y, parse.h, parse.y, typeck.c,
19399 verify.c, zextract.c, zipfile.h: Fixed copyright assignment,
19400 and Java trademark attribution.
19401
19402 1998-09-04 Tom Tromey <tromey@cygnus.com>
19403
19404 * Makefile.in: Use gcjh, not gjavah.
19405 * config-lang.in (stagestuff): Use gcjh, not gjavah.
19406 * Make-lang.in: Changed gjavah to gcjh everywhere.
19407
19408 1998-09-03 Per Bothner <bothner@cygnus.com>
19409
19410 * gjavah.c: Support new -prepend -add -append flags.
19411 (print_method_info): Method is not virtual if class is final.
19412
19413 1998-09-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
19414
19415 * jv-scan.c: Fixed copyright assignment.
19416 * keyword.gperf: Likewise.
19417 * keyword.h: Likewise.
19418 * lex.c: Fixed copyright assignment.
19419 (java_lex): Push unicode back when parsing '<'.
19420 * lex.h: Fixed copyright assignment.
19421 * parse-scan.y: Likewise.
19422 * parse.h: Fixed copyright assignment.
19423 (build_debugable_stmt, complete_for_loop): New function prototypes.
19424 * parse.y: Fixed copyright assignment.
19425 (for_statement:): Call complete_for_loop. Set EXIT_EXPR to be
19426 size_zero_node when completing a loop with no exit condition.
19427 (for_statement_nsi:): Define action.
19428 (for_init:, for_update:): Return size_zero_node when empty.
19429 (declare_local_variables): Call build_debugable_stmt.
19430 (build_debugable_stmt): New function.
19431 (build_loop_body): Build debugable statement around loop
19432 condition part.
19433 (complete_loop_body): Take into account the debugable statement
19434 around the EXIT_EXPR.
19435 (complete_loop_body): New function.
19436 (patch_exit_expr): Fixed condition inversion.
19437
19438 1998-09-02 Tom Tromey <tromey@cygnus.com>
19439
19440 * Make-lang.in (jvspec.o): Use GCC_THREAD_FILE to compute correct
19441 name of thread define.
19442 * jvspec.c (THREAD_NAME): New macro.
19443 (GCLIB): Likewise.
19444 (THREADLIB): Likewise.
19445 (lang_specific_driver): Recognize attempt to link with thread
19446 library or gc library. Recognize -ljava on command line so it
19447 isn't linked against more than once.
19448
19449 1998-09-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
19450
19451 * parse-scan.y (report_main_declaration): Name of the class
19452 containing `main' can be a qualified name.
19453
19454 1998-08-31 Tom Tromey <tromey@cygnus.com>
19455
19456 * config-lang.in: Changed gjavac to gjc everywhere.
19457 * Make-lang.in: Changed gjavac to gjc everywhere.
19458
19459 1998-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
19460
19461 * Make-lang.in (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): New variable.
19462 (java.install-common:): Loop over JAVA_TARGET_INDEPENDENT_BIN_TOOLS
19463 and install the files.
19464 * Makefile.in (JAVA_OBJS_LITE): New variable.
19465 (compiler:): Now include jv-scan as a dependency.
19466 (../jv-scan$(exeext), parse-scan.c): New targets.
19467 (../jcf-dump$(exeext)): Was jcf-dump$(exeext) before.
19468 * config-lang.in (compilers): Removed gcj, gjavah from the list.
19469 * jcf-parse.c (parse_source_file): Call java_layout_classes and
19470 check for errors even if parse_only.
19471 * lex.c (java_init_lex): Reorganized and skip parts if JC1_LITE is
19472 defined.
19473 (yylex): New function. Uses java_lex body.
19474 (java_lex): Removed commented out statement. Remove local variable
19475 literal. Use SET_LVAL_NODE_TYPE and SET_LVAL_NODE where
19476 appropriate. Use macros FLOAT_TYPE_NODE, DOUBLE_TYPE_NODE,
19477 DCONST0, SET_FLOAT_HANDLER, SET_REAL_VALUE_ATOF,
19478 SET_LVAL_NODE_TYPE and GET_TYPE_PRECISION. Don't create STRING_CST
19479 if JC1_LITE is defined. Use BUILD_ID_WFL to build identifiers. Use
19480 SET_MODIFIER_CTX, SET_LVAL_NODE, BUILD_ID_WFL and GET_IDENTIFIER
19481 where appropriate.
19482 (java_lex_error): Empty if JC1_LITE is defined.
19483 (java_get_line_col): Return 0 if JC1_LITE is defined.
19484 * lex.h (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR,
19485 SET_MODIFIER_CTX): Moved into the section containing the macros
19486 conditionally defined by JC1_LITE.
19487 (BUILD_OPERATOR,BUILD_OPERATOR2): Just return the TOKEN
19488 argument if JC1_LITE is defined.
19489 (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, REAL_VALUE_ATOF,
19490 REAL_VALUE_ISINF, REAL_VALUE_ISNAN): Preset to values if JC1_LITE
19491 is defined.
19492 (DCONST0, SET_FLOAT_HANDLER, GET_IDENTIFIER, SET_REAL_VALUE_ATOF,
19493 FLOAT_TYPE, DOUBLE_TYPE, SET_MODIFIER_CTX, GET_TYPE_PRECISION,
19494 SET_LVAL_NODE, SET_LVAL_NODE_TYPE, BUILD_ID_WFL): New macros, set
19495 to different values according to JC1_LITE.
19496 * parse.h (int_fits_type_p, stabilize_reference): Prototype not
19497 declared if JC1_LITE set.
19498 (jdep_code, typedef struct _jdep, typedef struct _jdeplist): Not
19499 defined if JC1_LITE not set.
19500 (struct parser_ctx): Reorganized and skip the jc1 front end part
19501 if JC1_LITE set.
19502 (java_layout_classes): New function definition.
19503 (java_push_parser_context, java_init_lex, yyparse, yylex,
19504 yyerror): Prototype always declared. All other static function
19505 prototypes declared only if JC1_LITE is not set.
19506 * parse.y (yyparse, yylex, yyerror): No longer declared here. Now
19507 declared in parse.h.
19508 (java_layout_classes): New function.
19509 (java_complete_expand_methods): No longer layout the class here.
19510 * parse-scan.y: New file.
19511 * jv-scan.c: New file.
19512
19513 1998-08-25 Tom Tromey <tromey@cygnus.com>
19514
19515 * gjavah.c (main): Handle -friend option.
19516 (friend_specs): New global.
19517 (generate_access): Handle friend_specs.
19518 (process_file): Likewise.
19519 (MAX_FRIENDS): New macro.
19520 (friend_count): New global.
19521 (print_cxx_classname): Added `prefix' argument. Ignore arrays.
19522 Changed all callers.
19523
19524 1998-08-24 Per Bothner <bothner@cygnus.com>
19525
19526 * jcf-dump.c (process_class): Move JCF_FINISH use to main,
19527 (main): Handle processing all the entries of a named .zip archive.
19528 * jcf-io.c (jcf_trim_old_input): New function.
19529 * jcf.h (GET_u2_le,GET_u4_le,JCF_readu2_le,JCF_readu4_le): New macros.
19530
19531 1998-08-24 Per Bothner <bothner@cygnus.com>
19532
19533 * lang.c (flag_assume_compiled): Make default be on.
19534
19535 1998-08-21 Per Bothner <bothner@cygnus.com>
19536
19537 * jcf-dump.c: Add bunches of flags to control output more.
19538 (process_class): New function; support printing more than one class.
19539 (main): Support new --print-main and --javap flags.
19540 * jcf-reader.c (IGNORE_ATTRIBUTE): New hook.
19541 * jcf.h (CPOOL_INDEX_IN_RANGE): New macro.
19542
19543 1998-08-20 Per Bothner <bothner@cygnus.com>
19544
19545 Change mangling of dispatch table to match C++ vtable (w/thunks).
19546 * class.c (build_dtable_decl), java-tree.h: New function.
19547 (make_class_data): Call it.
19548 * decl.c (init_decl_processing): Likewise.
19549
19550 1998-08-19 Warren Levy <warrenl@cygnus.com>
19551
19552 * decl.c (init_decl_processing): Use _Jv_NewObjectArray, not
19553 soft_anewarray; adjust args passed.
19554 * expr.c (build_anewarray): Adjust args for soft_anewarray_node to
19555 match _Jv_NewObjectArray.
19556
19557 1998-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
19558
19559 * decl.c (push_labeled_block, pop_labeled_block): New functions.
19560 * expr.c (loopup_label): Call create_label_decl.
19561 (create_label_decl): New function.
19562 (java_lang_expand_expr): Call expand_start_bindings with argument
19563 set to zero.
19564 * java-tree.h Added space after PROTO in function declarations
19565 when necessary.
19566 (IS_FOR_LOOP_P, IS_BREAK_STMT_P): New macros.
19567 (create_label_decl, push_labeled_block): New function
19568 declarations.
19569 * lex.c (label_id): Initialize.
19570 (SUPER_TK, THIS_TK, RETURN_TK): Merged common actions in final
19571 switch.
19572 * parse.h Added space after PROTO in function declarations when
19573 necessary.
19574 (LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
19575 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
19576 LOOP_EXPR_BODY_BODY_EXPR, LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P,
19577 PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, PUSH_LOOP, POP_LOOP): New
19578 macros.
19579 (struct parser_ctxt): New fields current_loop,
19580 current_labeled_block.
19581 (build_if_else_statement, patch_if_else_statement,
19582 add_stmt_to_compound, patch_exit_expr, build_labeled_block,
19583 generate_labeled_block, complete_labeled_statement,
19584 build_bc_statement, patch_bc_statement, patch_loop_statement,
19585 build_new_loop, build_loop_body, complete_loop_body): New function
19586 declarations.
19587 * parse.y (java_warning_count): New global variable.
19588 (label_id): New static variable.
19589 (BREAK_TK, CONTINUE_TK): Token tagged <operator>.
19590 (block:): Return size_zero_node when block is empty.
19591 (empty_statement:): Return size_zero_node.
19592 (statement:): Implement supplemental action when for_statement: is
19593 reduced.
19594 (label_decl:): New rule.
19595 (labeled_statement:): Rewritten using label_decl. Actions
19596 implemented.
19597 (labeled_statement_nsi:): Likewise.
19598 (if_then_statement): Actions implemented.
19599 (while_expression): New rule.
19600 (while_statement:): Rewritten using while_expression. Actions
19601 implemented.
19602 (while_statement_nsi:): Likewise.
19603 (do_statement_begin:): New rule.
19604 (do_statement:): Rewritten using do_statement_begin. Actions
19605 implemented.
19606 (for_statement:): Rewritten using for_begin. Actions implemented.
19607 (for_statement_nsi:): Likewise.
19608 (for_header:, for_begin:): New rules.
19609 (for_init:): Actions implemented.
19610 (statement_expression_list:, break_statement:,
19611 continue_statement:): Likewise.
19612 (yyerror): Count number of issued warning(s).
19613 (java_report_errors): Report error(s) and/or warning(s).
19614 (java_complete_class): Use build_java_argument_signature to
19615 recompute completed method signature.
19616 (java_check_regular_methods): New locals method_wfl and aflags.
19617 Use method_wfl instead of lookup_cl during error reports. Fixed
19618 indentation and modified some error messages. Use
19619 lang_printable_name in method instead of the DECL_NAME. New code
19620 to issue warnings on methods not overriding corresponding methods
19621 private to a different package.
19622 (java_method_add_stmt): Call add_stmt_to_compound.
19623 (add_stmt_to_compound): New function.
19624 (java_complete_tree): Handle LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR,
19625 LOOP_EXPR, EXIT_EXPR and COND_EXPR.
19626 (build_if_else_statement, patch_if_else_statement,
19627 build_labeled_block, generate_labeled_block,
19628 complete_labeled_statement, build_new_loop, build_loop_body,
19629 complete_loop_body, patch_loop_statement, build_bc_statement,
19630 patch_bc_statement, patch_exit_expr): New functions.
19631 * typeck.c (build_java_signature): Build argument signature before
19632 enclosing it in between parenthesis.
19633
19634 1998-08-17 Warren Levy <warrenl@cygnus.com>
19635
19636 * Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in
19637 (JAVA_OBJS): Added reminder comment
19638
19639 1998-08-13 Nick Clifton <nickc@cygnus.com>
19640
19641 * gjavah.c (D_NAN_MASK): Append LL to the constant to force it to
19642 be interpreted as a long long.
19643
19644 1998-08-13 Warren Levy <warrenl@cygnus.com>
19645
19646 * decl.c (init_decl_processing): Use _Jv_InitClass, not
19647 soft_initialise_class. Use _Jv_NewMultiArray, not
19648 soft_multianewarray. Use _Jv_ThrowBadArrayIndex, not
19649 soft_badarrayindex. Use _Jv_CheckCast, not soft_checkcast. Use
19650 _Jv_CheckArrayStore, not soft_checkarraystore. Use
19651 _Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod.
19652
19653 1998-08-12 Per Bothner <bothner@cygnus.com>
19654
19655 * decl.c, java-tree.h (this_identifier_node, super_identifier_node,
19656 length_identifier_node): New global tree node constants.
19657 * parse.y (kw_super, kw_this, kw_length): Removed globals.
19658 Replace uses by super_identifier_node etc.
19659 * lex.c (kw_super, kw_this, kw_length): Don't initialize.
19660
19661 * parse.y (resolve_field_access): Don't special-case ".length" if
19662 flag_emit_class_files.
19663 (patch_array_ref): Leave as ARRAY_REF if flag_emit_class_files.
19664 * jcf-write.c (generate_bytecode_insns): Handle ARRAY_REF opcode
19665 and ARRAY.length.
19666
19667 1998-08-11 Per Bothner <bothner@cygnus.com>
19668
19669 * decl.c (init_decl_processing): Remove unused method_type_node fields.
19670 * class.c (make_method_value): Remove init for removed fields.
19671
19672 * class.c (layout_class): Use build_java_argument_signature.
19673 * java-tree.h (TYPE_ARGUMENT_SIGNATURE): New macro.
19674
19675 * typeck.c (push_java_argument_signature): Removed. Merged into ...
19676 (build_java_argument_signature): Use TYPE_ARGUMENT_SIGNATURE cache.
19677 (build_java_signature): Don't use push_java_argument_signature.
19678
19679 * typeck.c (lookup_argument_method): New function.
19680 * parse.y (java_check_regular_methods): Use lookup_argument_method
19681 instead of lookup_java_method2 followed by lookup_java_method.
19682
19683 * parse.y (check_method_redefinition): Minor optimization.
19684
19685 * jcf-write.c (generate_bytecode_insns): Handle RETURN_EXPR,
19686 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR.
19687
19688 1998-08-10 Tom Tromey <tromey@cygnus.com>
19689
19690 * Make-lang.in (jc1$(exeext)): Don't depend on c-common.o or
19691 c-pragma.o.
19692
19693 * gjavah.c (java_float_finite): Use K&R-style definition.
19694 (java_double_finite): Likewise.
19695 (generate_access): Now returns void. Changed all callers.
19696 (last_access_generated): Removed.
19697 (process_file): Only make a single pass over the .class file.
19698
19699 1998-07-29 Per Bothner <bothner@cygnus.com>
19700
19701 * class.c (get_dispatch_table): Add extra dummy vtable entry,
19702 for compatibility for G++ (with -fvtable-thunks).
19703 * expr.c (build_invokevirtual): Add one for extra dummy vtable entry.
19704
19705 * gjavah.c (process_file): Use public inheritance for super-class.
19706
19707 1998-07-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
19708
19709 * lex.c (java_init_lex): Initialize ctxp->package.
19710 * parse.h (struct parser_ctxt): package and package_len replaced
19711 by tree package, an identifier node. Field method_decl_list is
19712 gone. Fixed comments.
19713 (lookup_field_wrapper, merge_qualified_name, not_accessible,
19714 class_in_current_package): New function prototypes.
19715 * parse.y (array_type:): Set class loaded flag on primitive type
19716 arrays.
19717 (package_declaration:): Assign ctxp->package to the
19718 identifier node.
19719 (method_invocation:): Handle invocation of method qualified by
19720 `super'.
19721 (single_type_import_declaration:): Removed ambiguity check.
19722 (java_pop_parser_context): New local variable `next'. Reset and
19723 set IMPORT_CLASSFILE_NAME flags on current and previous import
19724 list.
19725 (java_accstring_lookup): Use new local macro COPY_RETURN.
19726 (lookup_field_wrapper): New function.
19727 (parser_qualified_classname): Use merge_qualified_name.
19728 (parser_check_super_interface): Broaden error message.
19729 (do_resolve_class): Check for qualified class name in the current
19730 compilation unit if appropriate.
19731 (process_imports): Check for already defined classes.
19732 (check_pkg_class_access): Got rid of call to
19733 get_access_flags_from_decl.
19734 (java_complete_expand_methods): Call safe_layout_class based on
19735 the current class size.
19736 (make_qualified_primary): Build a WFL qualification on primary if
19737 none exists.
19738 (merge_qualified_name): New function.
19739 (make_qualified_name): Use merge_qualified_name.
19740 (resolve_expression_name): Use safe_lookup_field.
19741 (resolve_field_access): Got rid of call to get_access_flags_from_decl.
19742 (resolve_qualified_expression_name): Likewise. Check on resolved
19743 element accessibility.
19744 (not_accessible_p, class_in_current_package): New functions.
19745 (maybe_access_field): Got rid of call to get_access_flags_from_decl.
19746 (patch_method_invocation_stmt): Merged common pieces. Check
19747 accessibility of invoked method.
19748 (check_for_static_method_reference): Add returned type in error
19749 message.
19750 (invocation_mode): Get rid of bogus check on PRIVATE methods.
19751 (refine_accessible_methods_list): Merged two conditions in test.
19752 (java_complete_class): Sanity check on stabilize_ref gone.
19753 * zextract.c (read_zip_archive): Cast lseek second argument to long.
19754
19755 1998-07-28 Per Bothner <bothner@cygnus.com>
19756
19757 * class.c (hashUtf8String): Fix - use new JavaSoft specification.
19758
19759 1998-07-24 Tom Tromey <tromey@cygnus.com>
19760
19761 * gjavah.c (F_NAN): Removed.
19762 (F_NAN_MASK): New macro.
19763 (F_POSITIVE_INFINITY): Removed.
19764 (F_NEGATIVE_INFINITY): Likewise.
19765 (java_float_finite): Rewrote.
19766 (D_NAN_MASK): Renamed.
19767 (java_double_finite): Rewrote.
19768 (D_POSITIVE_INFINITY): Removed.
19769 (D_NEGATIVE_INFINITY): Likewise.
19770
19771 * jcf-dump.c (print_constant): [CONSTANT_Double, CONSTANT_Float]
19772 If verbose, print underlying representation of value in hex.
19773
19774 1998-07-24 Per Bothner <bothner@cygnus.com>
19775
19776 * buffer.h, buffer.c: New files.
19777 * Makefile.in (JAVA_OBJS): Add buffer.o.
19778
19779 Support locals variables and writing their debug entries to .class.
19780 * jcf-write.c: Simplify some by user new buffer type.
19781 (vode_buffer_grow): Removed.
19782 (struct localvar_info): New type.
19783 (localsvars, localvartable): New buffers.
19784 (localvar_alloc, localvar_free): New functions.
19785 (generate_bytecode_insns): Handle local variables.
19786 (generate_classfile): Write LocalVariableTable attribute.
19787
19788 1998-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
19789
19790 * jcf-io.c (open_in_zip): Check the zipfile magic number.
19791 * zipfile.h (ZIPMAGIC): New macro.
19792
19793 1998-07-24 Tom Tromey <tromey@cygnus.com>
19794
19795 * Makefile.in (gjavah.o): Updated dependencies.
19796 (jcf-dump.o): Likewise.
19797 (all.indirect): Use ../gjavah.
19798 (../gjavah$(exeext)): Likewise.
19799 (clean): Don't remove gjavah.
19800 (clean): Remove parse.c, not java/parse.c.
19801 * Make-lang.in (java): Added gjavah.
19802 (gjavah$(exeext)): New target.
19803 (GJAVAH_SOURCES): New macro.
19804 (java.all.build): Added gjavah.
19805 (java.all.cross): Likewise.
19806 (java.rest.encap): Likewise.
19807 * config-lang.in (compilers, stagestuff): Added gjavah.
19808
19809 1998-07-23 Tom Tromey <tromey@cygnus.com>
19810
19811 * gjavah.c (java_float_finite): New function.
19812 (java_double_finite): Likewise.
19813 (F_POSITIVE_INFINITY): New macro.
19814 (F_NEGATIVE_INFINITY): Likewise.
19815 (F_NAN): Likewise.
19816 (D_POSITIVE_INFINITY): Likewise.
19817 (D_NEGATIVE_INFINITY): Likewise.
19818 (D_NAN): Likewise.
19819 (print_field_info): Use java_float_finite and java_double_finite.
19820
19821 1998-07-23 Per Bothner <bothner@cygnus.com>
19822
19823 * parse.y (method_header): Name "this" implicit argument.
19824
19825 1998-07-22 Per Bothner <bothner@cygnus.com>
19826
19827 * jcf-write.c: Write out LineNumberTable attribute in .class file.
19828 (linenumber_buffer, linenumber_ptr, linenumber_limit): New statics.
19829 (put_linenumber): New function.
19830 (generate_bytecode_insns, generate_classfile): Write line numbers.
19831
19832 1998-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
19833
19834 * java-tree.h (CALL_EXPR_FROM_PRIMARY_P): Changed in PRIMARY_P.
19835 (lookup_name, build_known_method_ref, build_class_init,
19836 build_invokevirtual, invoke_build_dtable, match_java_method,
19837 build_field_ref, pushdecl_force_head, build_java_binop,
19838 binary_numeric_promotion, build_decl_no_layout,
19839 build_java_arrayaccess, build_newarray, build_anewarray,
19840 build_java_array_length_access, build_java_arraynull_check): New
19841 extern function prototypes.
19842 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19843 JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in
19844 java-tree.h.
19845 * jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref
19846 to NULL
19847 * jcf.h (jcf_out_of_synch): New extern function prototype.
19848 * parse.h: Static/global function implemented in parse.y
19849 prototyped and declarations moved at the end of the file.
19850 (DECL_P): Check that the argument isn't null.
19851 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19852 JAVA_THIS_EXPR): No longer defined here. See java-tree.h
19853 (QUAL_DECL_TYPE): New macro.
19854 (PARAMS): Macro definition removed.
19855 * parse.y: (yyparse, yyerror): Use PROTO instead of PARAMS.
19856 (return_statement:): Call build_return.
19857 (field_access:): Call make_qualified_primary in sub rule.
19858 (method_invocation:): Build method invocation and call
19859 make_qualified_primary when processing primaries.
19860 (java_complete_class): Set IDENTIFIER_SIGNATURE_TYPE by calling
19861 get_type_from_signature.
19862 (java_check_regular_method): Extra integer 0 argument when calling
19863 lookup_java_method2.
19864 (lookup_java_interface_method2): Extra method DECL argument when
19865 calling lookup_java_interface_method2.
19866 (java_method_add_stmt): Set TREE_SIDE_EFFECTS on newly created
19867 COMPOUND_EXPR node.
19868 (java_complete_expand_method): Layout current class iff not
19869 already done. Don't process interface's methods.
19870 (java_complete_expand_method): Use super class only if it
19871 exists. Use current class otherwise.
19872 (make_qualified_primary): New function.
19873 (resolve_expression_name): Process qualified expression or
19874 expression from primary the same way.
19875 (resolve_expression_name): Two last arguments to
19876 resolve_field_access are now NULL_TREEs.
19877 (resolve_field_access): New variable is_static. Local field must
19878 be DECLs. is_static computed on field DECLs only. Append code in
19879 where_found to the field access if necessary. Use QUAL_DECL_TYPE
19880 to initialize field_type.
19881 (resolve_qualified_expression_name): New local variable,
19882 previous_call_static and is_static. Handle primaries with function
19883 calls, casts, array references and `this'. `super' now handled as
19884 `(super_class)this'. Use is_static to clarify boolean expressions.
19885 Added code to handle case where a proper handle is required to
19886 access a field. Use QUAL_DECL_TYPE where applicable.
19887 (maybe_access_field): New function.
19888 (patch_method_invocation_stmt): New arguments primary, where,
19889 is_static. Branch of the test on CALL_EXPR_FROM_PRIMARY_P
19890 deleted. Use `where' as a type to search from if specified. Check
19891 for static method reference where forbidden. Append primary or
19892 current_this to the argument list if not calling constructor nor
19893 static methods.
19894 (check_for_static_method_reference): New function.
19895 (patch_invoke): Layout the class on which new is done if
19896 necessary.
19897 (lookup_method_invoke): Changed format to report errors on
19898 methods.
19899 (qualify_ambiguous_name): New local variable this_found. Now
19900 handle things from primaries. Method call are considered
19901 expression names.
19902 (identical_subpath_p): NULL_TREE arguments to breakdown_qualified
19903 changed into NULLs.
19904 (not_initialized_as_it_should_p): Comply with the new DECL_P.
19905 (java_complete_tree): New case fo RETURN_EXPR. Process function
19906 call arguments in separate function.
19907 (complete_function_arguments): New function.
19908 (build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P
19909 anymore.
19910 (patch_assignment): Take the return function slot into account as
19911 a RHS. Distinguish assignment from a return.
19912 (valid_ref_assignconv_cast_p): Use build_java_argument_signature
19913 when checking methods in interfaces.
19914 (resolve_type_during_patch): NULL argument to unresolve_type_p
19915 instead of NULL_TREE.
19916 (patch_newarray): Fixed typo in comment.
19917 (buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL.
19918 (build_return, patch_return): New functions.
19919 * typeck.c (lookup_java_constructor): Fixed typo in comment.
19920
19921 1998-07-21 Per Bothner <bothner@cygnus.com>
19922
19923 * constants.c (find_name_and_type_constant, find_fieldref_index,
19924 find_methodref_index): New methods.
19925 * expr.c (build_invoke_non_interface): If flag_emit_class_files,
19926 just return given method. Also, rename to build_known_method_ref.
19927 (expand_invoke): Rename call to build_invoke_non_interface.
19928 * java-tree.h, parse.h: Update prototype.
19929 * parse.y, decl.c, jcf-parse.c: Suppress calls to back-end functions
19930 (such as expand_expr_stmt) if flag_emit_class_files.
19931 * jcf-write.c (RESERVE, OP1, OP2, OP4, NOTE_PUSH, NOTE_POP,
19932 STACK_TARGET, IGNORE_TARGET): New macros.
19933 (code_buffer, code_ptr, code_limit, code_S, code_SP_max): New globals.
19934 (generate_bytecode_insn): New function to generate method's bytecode.
19935 (generate_classfile): Node generate Code attribute for a method.
19936 (code_buffer_grow, push_constant1, push_constant2, push_int_const,
19937 push_long_const, field_op, adjust_typed_op, maybe_wide):
19938 New functions used by generate_bytecode_insn.
19939
19940 * typeck.c (signature_include_return): Remove variable.
19941 (push_java_argument_signature, build_java_argument_signature): New.
19942 (build_java_signature): Use push_java_argument_signature.
19943 * parse.y: Use build_java_argument_signature instead of fiddling
19944 with signature_include_return.
19945
19946 1998-07-17 Tom Tromey <tromey@cygnus.com>
19947
19948 * gjavah.c (print_c_decl): Always generate JArray<>* for array
19949 types.
19950
19951 * Makefile.in (all.indirect): Added gjavah$(exeext).
19952 (gjavah$(exeext)): Added $(exeext).
19953 (clean): Likewise.
19954
19955 1998-07-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
19956
19957 * class.c (layout_class): Call to java_layout_parsed_class replace
19958 by safe_layout_class.
19959 * expr.c (build_java_array_length_access): Removed static storage
19960 class in the function definition.
19961 (build_java_arraynull_check): Likewise.
19962 Also fixed typos in two comments.
19963 * lex.c (java_init_lex): Initialize static global kw_length.
19964 (java_lex): Use BUILD_OPERATOR on RETURN_TK.
19965 * lex.h (JAVA_FLOAT_RANGE_ERROR): Add extra argument to
19966 java_lex_error.
19967 (JAVA_INTEGRAL_RANGE_ERROR): Likewise.
19968 * parse.h (resolve_no_layout): New static function declaration.
19969 (get_identifier_in_static): Declaration removed.
19970 (java_layout_parsed_class): Function name declaration changed to
19971 safe_layout_class.
19972 (build_newarray_node, patch_newarray, resolve_type_during_patch,
19973 not_initialized_as_it_should_p, build_this): New static function
19974 declarations.
19975 (pushdecl_force_head, build_java_binop, int_fits_type_p,
19976 binary_numeric_promotion, stabilize_reference,
19977 build_decl_no_layout, build_java_arrayaccess): Extern function
19978 declarations moved into their own section.
19979 (build_newarray, build_anewarray, build_java_array_length_access,
19980 build_java_arraynull_check): New extern function declarations.
19981 (UNARY_PLUS_EXPR): Macro renamed into JAVA_UNARY_PLUS_EXPR.
19982 (JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, JAVA_THIS_EXPR): New
19983 fake tree codes.
19984 (CALL_CONSTRUCTOR_P): New macro.
19985 * parse.y (kw_length): New static global tree node.
19986 (return_statement): Tagged <node>.
19987 (RETURN_TK): Tagged <operator>.
19988 (variable_declarator_id:): Build variable declaration with an
19989 empty initialization value if a syntax error was found in the
19990 initialization part of the variable declaration.
19991 (statement_without_trailing_substatement:): return_statement: now
19992 uses the default rule.
19993 (return_statement:): Temporarily fixed to return NULL_TREE.
19994 (primary_no_new_array:): Call build_this when THIS_TK was parsed.
19995 (class_instance_creation_expression:): Class creation rules now
19996 call build_method_invocation upon reduction.
19997 (array_creation_expression:): Rules call build_newarray_node upon
19998 reduction.
19999 (dim_exprs:): Build a list of dimension expressions.
20000 (dim_expr:): Store location of the OSB_TK in the dimension
20001 expression node.
20002 (method_invocation:): Added a new error rule.
20003 (build_unresolved_array_type): WFL argument may also be an array
20004 on a primitive type. Name of the argument changed to reflect this.
20005 (method_declarator): Insert argument type at the beginning of the
20006 argument type list and later reverse the list.
20007 (unresolved_type_p): Argument 'returned' may be optionally
20008 NULL_TREE.
20009 (java_layout_class_from_source): Function renamed
20010 safe_layout_class.
20011 (resolve_and_layout): Now call resolve_no_layout and
20012 safe_layout_class.
20013 (resolve_no_layout): New function.
20014 (purify_type_name): New function.
20015 (complete_class_report_errors): Call purify_type_name during error
20016 report on a type not found.
20017 (process_imports): error_found local variable doesn't need to be
20018 initialized to zero.
20019 (declare_local_variables): New local type_wfl. Fixed typo in error
20020 message. type_wfl assigned to unresolved type and used to register
20021 incomplete type. Build a WFL around the variable initialization
20022 statement so that debug info can be generated on it.
20023 (source_start_java_method): Reverse argument list after they've
20024 been processed.
20025 (current_this): New static global variable.
20026 (java_complete_expand_methods): Set current_this when appropriate.
20027 (resolve_expression_name): Build correct static and non static
20028 field access bearing a simple name.
20029 (resolve_field_access): Resolve the length field of arrays. Handle
20030 f.m() cases.
20031 (patch_method_invocation_stmt): Set the type of the method
20032 invocation to error_mark_node. This value is later overridden by a
20033 valid type, if any. Don't handle qualified constructor invocation
20034 as qualified method invocation. Call lookup_method_invoke with its
20035 new flag. It's no longer necessary to access the selected method
20036 as the value of a tree list. Handle constructor invocation.
20037 (patch_invoke): Reverse argument list when invoking non interface
20038 methods. Insert call to new as the first argument of the
20039 constructor.
20040 (invocation_mode): Return a INVOKE_STATIC is the invoked method is
20041 defined within a final class. Return INVOKE_STATIC if the invoked
20042 method is a constructor.
20043 (lookup_method_invoke): New lc argument is a flag to indicate a
20044 constructor lookup. Now handle constructor lookup. Choose the most
20045 specific method in case several were matching the invocation
20046 requirements. Return a method decl instead of a tree list featuring
20047 one single method decl element.
20048 (refine_accessible_methods_list): New lc flag argument to
20049 indicate that a constructor is being looked up.
20050 (not_initialized_as_it_should_p): New function.
20051 (java_complete_tree): Now process fake tree codes
20052 JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR and JAVA_THIS_EXPR. Call
20053 save_expr on resolved function call arguments. Case on
20054 UNARY_PLUS_EXPR changed into a case on JAVA_UNARY_PLUS_EXPR.
20055 (patch_assignment): LHS can be a field access expression. When
20056 dealing with reference, lhs_type is the promoted type of the
20057 rhs_type, not the RHS. Use not_initialized_as_it_should_p where
20058 applicable.
20059 (operator_string): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20060 (patch_binop): Use not_initialized_as_it_should_p where
20061 applicable.
20062 (build_unaryop): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20063 (patch_unaryop): Likewise. And use not_initialized_as_it_should_p
20064 where applicable.
20065 (resolve_type_during_patch): New function.
20066 (patch_cast): Call resolve_type_during_patch to resolve type and
20067 report error accordingly.
20068 (patch_array_ref): Use not_initialized_as_it_should_p where
20069 applicable. Array base expression is saved before being
20070 used. Promote the type of an array elements if it contains non
20071 builtin types.
20072 (build_newarray_node, patch_newarray, build_this): New functions.
20073
20074 1998-07-16 Tom Tromey <tromey@cygnus.com>
20075
20076 * gjavah.c (print_c_decl): UTF8_GET increments pointer; don't
20077 increment it in `for' statement.
20078 (print_field_info): If number is inf or nan, don't print it.
20079 (print_method_info): If method name is `delete', just ignore it.
20080 (print_c_decl): Special-case jstringArray.
20081
20082 * gjavah.c (help): New function.
20083 (no_argument): New function.
20084 (usage): Changed text.
20085 (main): Rewrote argument handling. Now handles -v, --help,
20086 --version.
20087 (version): New function.
20088 (found_error): New global.
20089 (main): Return found_error.
20090 (generate_access): Set found_error.
20091 (print_c_decl): Likewise.
20092
20093 1998-07-15 Tom Tromey <tromey@cygnus.com>
20094
20095 * gjavah.c (print_c_decl): Don't print "," when examining field.
20096 Skip type name when looking at "[L" types.
20097 (process_file): Now static.
20098 (generate_access): Now returns int.
20099 (last_access_generated): New global.
20100 (process_file): Clear last_access_generated; make multiple passes
20101 over the class.
20102 (print_field_info): Just return if generate_access returns true.
20103 (print_method_info): Likewise. Also, allow <init> functions to
20104 pass through.
20105 (print_c_decl): Added is_init argument. Print constructors
20106 properly.
20107 (print_cxx_classname): Use UTF8_GET to extract characters from
20108 string.
20109 (print_base_classname): New function.
20110 (print_class_decls): New function.
20111 (process_file): Use it.
20112 (utf8_cmp): New function.
20113
20114 1998-07-13 Nick Clifton <nickc@cygnus.com>
20115
20116 * lang-options.h: Format changed to match changes in gcc/toplev.c
20117 to implement a --help option.
20118
20119 1998-07-10 Brendan Kehoe <brendan@cygnus.com>
20120
20121 * decl.c (init_decl_processing): Revert change to dtable_type.
20122
20123 1998-07-09 Per Bothner <bothner@cygnus.com>
20124
20125 * java-tree.h (CLASS_P): Changed DECL_LANG_FLAG_7 -> TYPE_LANG_FLAG_4.
20126
20127 1998-07-08 Brendan Kehoe <brendan@cygnus.com>
20128
20129 * decl.c (init_decl_processing): Set CLASS_LOADED_P on dtable_type.
20130
20131 * lang.c (lang_init): Default flag_exceptions to 1, without
20132 checking to see if it's 2 first.
20133
20134 1998-07-08 Jeffrey A Law (law@cygnus.com)
20135
20136 * constants.c: Include "system.h".
20137 * decl.c: Likewise.
20138 * lang.c (flag_new_exceptions): Get via extern now.
20139 (lang_init_options): New functions. Turn on flag_new_exceptions.
20140
20141 1998-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
20142
20143 * lex.c (java_lex): Return 0 when we see an invalid character in
20144 the input.
20145
20146 * lex.c (java_read_char): Specify extra argument when calling
20147 java_lex_error.
20148 (java_read_unicode, java_parse_end_comment,
20149 java_parse_escape_sequence): Likewise,
20150 (java_lex): Specify extra argument when calling
20151 java_lex_error. Test that IDs are beginning with a legal character
20152 for IDs. Handle invalid characters with an error message and a
20153 call to java_lex_error.
20154 (java_lex_error): Adjust column position by new argument
20155 `forward'. Issue an error even if in the middle of reporting an
20156 other error.
20157
20158 1998-07-07 Brendan Kehoe <brendan@cygnus.com>
20159
20160 * jcf-io.c (find_class): Zero out BUFFER before we use it, since
20161 we don't explicitly put a null pointer when we're copying it.
20162
20163 1998-07-07 Tom Tromey <tromey@cygnus.com>
20164
20165 * gjavah.c (print_cxx_classname): New function.
20166 (super_class_name): Likewise.
20167 (print_super_fields): Removed.
20168 (in_super): Removed.
20169 (print_field_info): Never generate #defines.
20170 (print_c_decl): Changed generated types to match JNI. No longer
20171 print class name before method name.
20172 (print_method_info): Print "static" before static methods.
20173 Print "virtual" before non-final methods.
20174 (usage): Use exit(1), not exit(-1).
20175 (main): Likewise.
20176 (print_field_info): Use %.17g to print a double.
20177 (last_access): New globals.
20178 (process_file): Initialize last_access.
20179 (usage): Now static.
20180 (ACC_VISIBILITY): New define.
20181 (generate_access): New function.
20182 (print_field_info): Call it.
20183 (print_method_info): Likewise. Also, generate information for all
20184 methods, not just native methods. Return void.
20185 (print_c_decl): Return void.
20186 (print_field_info): Return void.
20187
20188 1998-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
20189
20190 * Makefile.in (JAVABISONFLAGS): Specific flag for bison when
20191 processing the jc1 grammar file. Prefix bison functions and
20192 variables with java_.
20193 (parse.c): Dependencies on parse.h and lex.h
20194 * expr.c (build_java_arrayaccess): Function now global.
20195 * java-tree.h: Comment reorganized to carry on previous
20196 classification effort.
20197 (RESOLVE_EXPRESSION_NAME_P, RESOLVE_PACKAGE_NAME_P,
20198 RESOLVE_TYPE_NAME_P): New flags on WFLs.
20199 * jcf-parse.c (parse_source_file): java_parse_source_file renamed
20200 java_parse (new prefix java_ generated by bison).
20201 (java_layout_parsed_class, java_register_parsed_class): Function
20202 call removed.
20203 (yyparse): Removed unnecessary call to init_outgoing_cpool.
20204 * lex.c (static tree wfl_op): Variable deleted.
20205 (java_init_lex): Initialize kw_super and kw_this. Initialize more
20206 ctxp fields to NULL_TREE.
20207 (java_lex): No longer create WFL for operators. Filename caching
20208 mechanism deleted. Call BUILD_OPERATOR for `.', '(', '['. Strings
20209 created as STRING_CST and later expanded. Removed extra argument
20210 to BUILD_OPERATOR and BUILD_OPERATOR2. Build operators for THIS
20211 and SUPER.
20212 (build_wfl_node): Removed code in comments.
20213 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): No longer build a WFL but
20214 store token and location data in the current bison token.
20215 * parse.h: Removed pre-processor based symbol prefixes hack. Moved
20216 static/extern function declaration at the beginning of the file.
20217 (struct qualification): Data structure definition deleted.
20218 (RESOLVE_CHAIN_REMAINDER): Macro definition deleted.
20219 (qualify_ambiguous_name): Function declaration modified. Function
20220 now returns nothing.
20221 (build_array_ref, patch_array_ref, make_qualified_name,
20222 resolve_qualified_expression_name, maybe_generate_clinit,
20223 resolve_field_access): New static function declarations.
20224 (build_java_arrayaccess): New extern function declaration.
20225 (enum { RESOLVE_EXPRESION_NAME...}): Enum deleted.
20226 (CALL_EXPR_PRIMARY): Macro deleted.
20227 (EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION): New macros.
20228 (struct parser_ctxt): Field initialized_final
20229 removed. non_static_initialized, static_initialized: New fields.
20230 * parse.y (static tree kw_super, static tree kw_this): New global
20231 static.
20232 (%union): tree wfl field of operator member replaced by int
20233 location. WFLs are non longer created for operators.
20234 (OSB_TK, DOT_TK, THIS_TK, SUPER_TK): Tagged <operator>.
20235 (qualified_name:): Now calls make_qualified_name to build the
20236 identifier.
20237 (type_declaration:): Consider generating <clinit> when class
20238 parsing completed.
20239 (variable_declarator:): Directly build an assignment node when the
20240 variable is initialized when declared.
20241 (this_or_super:): Build a WFL and set current location when THIS
20242 or SUPER are parsed.
20243 (expression_statement:): Wrap statement around a WFL.
20244 (primary_no_new_array:): Fixed typo. Changed value returned by
20245 THIS_TK because of its new type (temporary).
20246 (dim_exprs:): Temporary fix because of OSB_TK's new type.
20247 (field_access:): Build qualified name with SUPER.
20248 (method_invocation:): Fixed returned value because of SUPER's new
20249 type.
20250 (array_access:): Use OSB_TK location information.
20251 (post_increment_expression:, post_decrement_expression:,
20252 unary_expression:, pre_increment_expression:,
20253 pre_decrement_expression:, unary_expression_not_plus_minus:,
20254 cast_expression:, multiplicative_expression:,
20255 additive_expression:, shift_expression:, relational_expression:,
20256 equality_expression:, and_expression:, exclusive_or_expression:,
20257 inclusive_or_expression:, conditional_and_expression:,
20258 conditional_or_expression:, assignment:): Use new location/token
20259 information available on operators.
20260 (create_class): Set super_decl_type to NULL_TREE when processing
20261 java.lang.Object.
20262 (register_fields): Field initialization is now a MODIFY_EXPR
20263 node. Chain initialization code to the matching lists (according
20264 to the field declaration modifiers).
20265 (maybe_generate_clinit): New function.
20266 (method_header): Don't set method's DECL_NAME to a WFL when adding
20267 methods to java.lang.Object.
20268 (resolve_and_layout): Now can return NULL_TREE if the type
20269 resolution fails. Otherwise, return the class DECL instead of its
20270 TYPE.
20271 (check_method_redefinition): Don't patch method DECL_NAME if it
20272 belongs to java.lang.Object.
20273 (process_imports): Simply assign error_found to the value returned
20274 by check_pkg_class_access.
20275 (declare_local_variables): Don't use their init statements (if
20276 any) when parsing error were previously found. Reuse MODIFY_EXPR
20277 build during parsing as an init statement.
20278 (java_method_add_stmt): Now return the current method body.
20279 (java_layout_parsed_class, java_register_parsed_class): Functions
20280 removed.
20281 (java_complete_expand_methods): Initialize the constant pool on a
20282 per class basis. Layout the classes before expanding their method
20283 bodies. Don't try expand artificial constructor code if error were
20284 found. Make the classes data and register them if no error were
20285 found.
20286 (java_complete_expand_method): Retrieve an artificial constructor
20287 argument list before entering its body. Assign the top block to
20288 the artificial constructor function body and set types of declared
20289 blocks and compound statements to void. Walk method body if not an
20290 artificial constructor.
20291 (make_qualified_name, cut_identifier_in_qualified): New functions.
20292 (resolve_expression_name): Fixed comments. Save/restore the
20293 current class CLASS_LOADED_P flag value. Build non qualified
20294 static field access and handle qualified expression names.
20295 (resolve_field_access, resolve_qualified_expression_name): New
20296 functions.
20297 (patch_method_invocation_stmt): Use the new expression resolution
20298 scheme, calling resolve_field_access when the function call is
20299 resolved as an expression.
20300 (qualify_ambiguous_name): Function rewritten to work on qualified
20301 expression produced by make_qualified_name.
20302 (java_complete_tree): Promote type when function's argument are
20303 RECORD_TYPEs. While processing the MODIFY_EXPR case: don't patch
20304 the assignment to discover further errors if RHS is a expression
20305 name that fails to evaluate. Declare LHS initialized even though
20306 the assignment failed. Don't use the location variable and removed
20307 extra argument in patch function calls. Now handle the ARRAY_REF
20308 case and build internal string representation when STRING_CSTs are
20309 walked.
20310 (build_method_invocation): Don't wrap function call around a WFL.
20311 (build_assignment): Likewise. Use the operator location
20312 information.
20313 (patch_assignment): Handle array access LHSs. Handle error
20314 provenance, resulting in a better error report.
20315 (build_binop): Use op_location from operator as binop location
20316 information.
20317 (build_unaryop, build_incdec, build_cast): Likewise.
20318 (patch_binop): Extract location information from the node. Fixed
20319 typo in error message.
20320 (patch_unary_op): Extract location information from the node.
20321 (build_array_ref, patch_array_ref): New functions.
20322
20323 1998-07-01 Tom Tromey <tromey@cygnus.com>
20324
20325 * expr.c (expand_java_INSTANCEOF): Changed calling convention to
20326 match _Jv_IsInstanceOf.
20327 * decl.c (init_decl_processing): Use _Jv_NewArray, not
20328 soft_newarray. Use _Jv_IsInstanceOf, not soft_instanceof.
20329
20330 1998-06-30 Tom Tromey <tromey@cygnus.com>
20331
20332 * decl.c (init_decl_processing): Functions are now named
20333 _Jv_MonitorEnter and _Jv_MonitorExit, and return jint.
20334
20335 1998-06-29 Per Bothner <bothner@cygnus.com>
20336
20337 * java-tree.h (load_class): Add prototype.
20338 * class.c (is_compiled_class): Add missing arg to load_class.
20339 * expr.c (expand_java_NEW): Call load_class.
20340 * parse.y (process_import): Removed bogus use of void return value.
20341
20342 1998-06-25 Per Bothner <bothner@cygnus.com>
20343
20344 * decl.c, java-tree.h (soft_athrow_node): Renamed to soft_node.
20345 Function name is "_Jv_Throw" instead of "soft_athrow".
20346 * decl.c, java-tree.h (soft_new_node): Renamed to alloc_object_node.
20347 Function name is "_Jv_AllocObject" instead of "soft_new".
20348 Takes an extra parameter (object size).
20349 * expr.c: Update calls.
20350
20351 1998-06-24 Per Bothner <bothner@cygnus.com>
20352
20353 * lex.c (java_get_line_col): Handle end-of-file.
20354 * except.c (expand_end_java_handler): Handle null type (i.e. finally).
20355
20356 1998-06-24 Andrew MacLeod <amacleod@cygnus.com>
20357
20358 * lang.c (lang_init): Make -fexceptions the default.
20359 * except.c (maybe_start_try, maybe_end_try): Don't do anything if
20360 exception handling is not turned on.
20361
20362 1998-06-23 Andrew MacLeod <amacleod@cygnus.com>
20363
20364 * lang.c (flag_new_exceptions): Make this this default.
20365 * decl.c (end_java_method): Call emit_handlers.
20366 * except.c (method_init_exceptions): Set language code and version.
20367 (expand_start_java_handler): Enable exception, and call
20368 expand_eh_region_start.
20369 (expand_end_java_handler): Enable exception, and set up catch blocks.
20370 (emit_handlers): New routine to generate the saved handlers.
20371 * java-except.h (emit_handlers): Add prototype.
20372
20373 1998-06-12 Per Bothner <bothner@cygnus.com>
20374
20375 We used to have three different representations of the constant pool:
20376 the CPool structure, the tree_constant_pool, and the constructures
20377 used to build the Class object (which may need class and string
20378 constants) in compiled code. None were appropriate for compiling
20379 to .class files, so I did a major overhaul.
20380
20381 First, the tree_constant_pool array was removed. Things were
20382 modified to the CPool structure in the JCF could be used.
20383 Second, a "capacity" field was added to the CPool, and functions
20384 written to search for a matching constant, adding one if not found.
20385 The code that generated the Class object was changed to use a CPool.
20386 The actual TREE_LISTs used to build the CONSTRUCTORs used for
20387 the static Class object are now only in build_constants_constructor.
20388 Finally, I wrote code which can generate a .class file (including its
20389 constant pool) from the RECORD_TYPE of a class. This is a big step
20390 on the way to compiling Java source into .class files.
20391
20392 * jcf-write.c: New file. Writes out a RECORD_TYPE as a .class file.
20393 * Makefile.in (JAVA_OBJS): Added jcf-write.o.
20394
20395 * java-tree.h (CPOOL_UTF, CONSTANT_ResolvedFlag,
20396 CONSTANT_ResolvedString, CONSTANT_ResolvedClass): New macros.
20397 (NAME_AND_TYPE_NAME, NAME_AND_TYPE_SIGNATURE, COMPONENT_REF_NAME,
20398 COMPONENT_REF_NAME_AND_TYPE, COMPONENT_REF_SIGNATURE): Redefined.
20399 (COMPONENT_REF_CLASS): Replaced by COMPONENT_REF_CLASS_INDEX.
20400 (lang_type): Removed constant_pool field.
20401 * jcf.h (CPool): Renamed size to count. Added field capacity.
20402 (CPOO_COUNT, CPOOL_UINT, CPOOL_USHORT1, CPOOL_USHORT2,
20403 CPOOL_FINISH, CPOOL_INIT, CPOOL_REINIT): New macros.
20404 Rewrite some of the old JCF_XXX in terms of CPOOL_XXX macros.
20405
20406 * constants.c (current_constant_pool_tags, current_constant_pool_data,
20407 current_constant_pool_length), java-tree.h: Replaced by outgoing_cpool.
20408 * constants.c (build_constants_constructor): Use new outgoing_cpool.
20409 (set_constant_entry, find_constant1, find_constant2,
20410 find_class_constant, count_constant_pool_bytes, write_constant_pool,
20411 find_utf8_constant, find_class_or_string_constant): New functions.
20412
20413 * jcf-parse.c (load_class): Don't save/restore tree-constant_pool.
20414 (get_constant): Use current_jcf.cpool instead of tree_constant_pool.
20415 (give_name_to_class, get_class_constant): Likewise.
20416 * jcf-parse.c, java-tree.h (tree_constant_pool): Removed.
20417 (get_name_and_type_constant, get_ref_constant): Removed.
20418 * parse.h (parser_ctxt): Remove field tree_constant_pool.
20419 * parse.y: Don't save/restore tree_constant_pool.
20420 * verify.c (verify_jvm_instructions): Update for new approach.
20421 * expr.c (expand_invoke, expand_java_field_op): Likewise.
20422
20423 * lang-options.h: Added -femit-class-file, -femit-class-files.
20424 * lang.c (flag_emit_class_files), java-tree.h: New flag.
20425 (lang_f_options): Added "emit-class-file(s)".
20426
20427 * expr.c (build_java_arrayaccess): Generate more efficient array
20428 bounds checking, by using unsigned compare.
20429
20430 * expr.c (expand_invoke): Re-arrange error checks to make more robust.
20431
20432 1998-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
20433
20434 * parse.h: New comment on the handling of unresolved type
20435 identifiers. JDEPs are now part of the jdep_code enum.
20436 (typedef struct jdep): Now use enum jdep_code or int, depending on
20437 availability. Both are narrowed down to an 8 bits bitfield.
20438 (CALL_EXPR_PRIMARY): Fixed comment.
20439
20440 1998-06-10 Tom Tromey <tromey@cygnus.com>
20441
20442 * Make-lang.in (java): Added gjavac and jvgenmain.
20443 (java.start.encap): Depend on gjavac.
20444 (java.rest.encap): Depend on jvgenmain.
20445
20446 * Make-lang.in (JAVA_INSTALL_NAME): Name is gjavac, not c++.
20447 (JAVA_CROSS_NAME): Likewise.
20448 (java.all.build): Depend on jvgenmain and gjavac.
20449 (java.all.cross): Depend on jvgenmain and gjavac-cross.
20450 (jvgenmain$(exeext)): New target.
20451 (java.install-common): Wrote.
20452 * config-lang.in (compilers, stagestuff): Added gjavac and
20453 jvgenmain.
20454
20455 1998-06-10 Dave Brolley <brolley@cygnus.com>
20456
20457 * lang.c (lang_decode_option): New argc/argv interface.
20458
20459 1998-06-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
20460
20461 * ChangeLog: Fixed entries not compliant with the Gnu Coding Standard.
20462 * decl.c (build_decl_no_layout): New function.
20463 * expr.c (java_lang_expand_expr): Layout declarations found in
20464 blocks before they're pushed.
20465 * jcf-parse.c (load_class): Save current line when parsing class
20466 file.
20467 (parse_source_file): Register class before expanding their
20468 methods.
20469 * lang.c (put_decl_node): Produce `null' when `void *' is
20470 processed.
20471 * lex.c (static tree wfl_op): New static global, for error report
20472 on casts.
20473 (java_init_lex): wfl_operator and wfl_op initialized
20474 here. Filename caching added for wfl_op. Return wfl_op when `(' is
20475 parsed.
20476 * parse.h (build_unaryop, build_incdec, patch_unaryop, build_cast,
20477 patch_cast, valid_ref_assignconv_cast_p, can_cast_to_p,
20478 build_unresolved_array_type): New static function definitions.
20479 (build_decl_no_layout): New extern function declared.
20480 (OBSOLETE_MODIFIER_WARNING): Report error only if the WFL of the
20481 faulty modifier exists.
20482 (TYPE_INTERFACE_P, TYPE_CLASS_P): New macros.
20483 (ERROR_CAST_NEEDED_TO_INTEGRAL): Error message tuned.
20484 (UNARY_PLUS_EXPR): New fake operator.
20485 (struct parser_ctxt): New field osb_number.
20486 * parse.y (static tree wfl_operator): New static WFL for operator
20487 bound error messages.
20488 (DECR_TK, INCR_TK): Moved.
20489 (OP_TK): Tagged <operator>.
20490 (array_type:): Now call build_unresolved_array_type.
20491 (dim_expr:): Count the number of '[' seen.
20492 (post_increment_expression, post_decrement_expression,
20493 pre_increment_expression, pre_decrement_expression,
20494 unary_expression_not_plus_minus, unary_expression:): Actions are
20495 now building the corresponding unary expressions.
20496 (cast_expression:): Actions are now building cast expressions.
20497 (build_unresolved_array_type): New function.
20498 (create_interface): Reset the number of declared interfaces.
20499 (create_class): Likewise.
20500 (method_header): Methods declared within the scope of an interface
20501 are now implicitly set public and abstract.
20502 (java_complete_class): Variable's and parameter's type are patched
20503 with a promoted type.
20504 (declare_local_variables): Resolved non builtin types are promoted
20505 before being used to build a variable decl. Removed type patch
20506 posted on variable initialization statement.
20507 (source_start_java_method): Use build_decl_no_layout to build the
20508 decl of a parameter of incomplete type.
20509 (java_register_parsed_class): Process interfaces too. Call
20510 rest_of_decl_compilation on each processed class declarations.
20511 (java_complete_expand_methods): Don't attempt to expand things in
20512 interfaces.
20513 (java_complete_tree): Process CONVERT_EXPR, even though it always
20514 has a type. Propagate error_mark_node to node's type too. Promote
20515 method's call argument type and return error_mark_node if
20516 argument's completion didn't work. MODIFY_EXPR can have a WFL as a
20517 RHS. Fixed bug in the handling of bogus RHS of a fixed type. Now
20518 handle unary operator nodes.
20519 (build_assignment): Added comment.
20520 (print_int_node): New function.
20521 (patch_assignment): New second argument. New error handling. Use
20522 print_int_node. Handle references. Use can_cast_to_p to issue
20523 different error message according to the context and check upon
20524 the initialization of the RHS.
20525 (can_cast_to_p, valid_ref_assignconv_cast_p): New functions.
20526 (operator_string): Handle more operators.
20527 (patch_binop): No longer use a function static
20528 wfl_operator. Improved error message on shift distance.
20529 (build_unaryop, build_incdec, build_cast, patch_unaryop,
20530 patch_cast): New functions.
20531
20532 1998-06-05 Per Bothner <bothner@cygnus.com>
20533
20534 * jvspec.c: New file.
20535 * Make-lang.in: New rules to build gjavac from jvspec.c and ../gcc.c.
20536
20537 * java-tree.h (identifier_subst): Add declaration.
20538
20539 1998-06-04 Tom Tromey <tromey@cygnus.com>
20540
20541 * jvgenmain.c (main): Generate call to JvRunMain.
20542
20543 * class.c (make_class_data): Push value for "sync_info" field.
20544 * decl.c (init_decl_processing): Push "sync_info" field.
20545
20546 1998-06-03 Per Bothner <bothner@cygnus.com>
20547
20548 * typeck.c (build_java_array_type): Set TYPE_NAME to actual
20549 Java (source) name, not signature.
20550 Set TYPE_ALIGN to (at least) that of element_type.
20551
20552 1998-06-02 Per Bothner <bothner@cygnus.com>
20553
20554 * class.c: Moved classname-mangling-rekated code to ...
20555 * mangle.c: ... this new file.
20556 * jvgenmain.c: New program (needs mangle.c) to generate main program.
20557 * Makefile.in: Update for above changes.
20558
20559 1998-06-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
20560
20561 * expr.c (truthvalue_conversion): Convert integer and floating
20562 point value to their truth value.
20563 * lex.c (java_lex): Handle the `null' literal.
20564 * parse.h (JREFERENCE_TYPE_P, DECL_P): New macros.
20565 (ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
20566 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED):
20567 New macros.
20568
20569 * parse.y: Reorganization/documentation on token declaration.
20570 (binop_lookup[]): New added new tree codes.
20571 (relational_expression): Build corresponding binary operators.
20572 (equality_expression, conditional_and_expression,
20573 conditional_or_expression): Likewise.
20574 (java_complete_class): Fix crash in debug message.
20575 (java_complete_tree): Check initialization of method call
20576 arguments. Further bogus node evaluation to detect more error
20577 during assignments. Handles more binary operators.
20578 (patch_assignment): Use DECL_P.
20579 (build_binop): Fix crash when using URSHIFT_EXPR, a Java only tree
20580 code.
20581 (operator_string): Handle more case. Compacted source.
20582 (patch_binop): Changed function comment. Checking for
20583 uninitialized first operand takes the compound assignment into
20584 account and uses DECL_P. Checking for uninitialized second operand
20585 delayed to routine's end. Use macros to issue type bound error
20586 messages and issue messages on both operands if their types are
20587 different. Force fixed type into node. Handle all binary
20588 operators.
20589
20590 1998-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
20591
20592 * java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros.
20593 * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
20594 build operator node and return tokens.
20595 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
20596 * parse.h (java_complete_tree): Changed returned type in prototype.
20597 (build_method_invocation, build_assignment, patch_assignment,
20598 patch_binop): New static function declarations.
20599 (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
20600 BUILD_EXPR_WFL): New macros.
20601 * parse.y (enum tree_code binop_lookup[]): New static for token to
20602 TREE_CODE lookup.
20603 (%union): Parser union has new sub-structure `operator'.
20604 (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
20605 PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
20606 ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
20607 ASSIGN_ANY_TK): Tokens tagged `operator'.
20608 (EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK,
20609 AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK,
20610 MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK,
20611 REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'.
20612 (assignment_operator:): Rule tagged `operator'.
20613 (expression_statement:): Re-installed default rule.
20614 (method_invocation:): Sub rules call build_method_invocation.
20615 (postfix_expression:): Don't attempt to resolve name here. Just
20616 return an ID.
20617 (multiplicative_expression:): Sub-rules build corresponding binop
20618 expression node.
20619 (additive_expression:, shift_expression:, and_expression:,
20620 exclusive_or_expression:, inclusive_or_expression:): Likewise.
20621 (assignment:): Sub rule invoke build_assignment.
20622 (assignment_operator:): Default rules on sub rules.
20623 (force_error): Added documentation on this variable.
20624 (declare_local_variables): Build initialization calling
20625 build_assignment.
20626 (expand_start_java_method): Removed unused rtx declaration. Mark
20627 arguments as already initialized.
20628 (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
20629 (java_complete_expand_methods): Don't process next method if
20630 completion of the previous one triggered errors.
20631 (java_complete_expand_method): Call source_end_java_method if no
20632 error were found during completion.
20633 (resolve_expression_name): Use IDENTIFIER_LOCAL_VALUE to retrieve
20634 locals declaratilon. Handle names found within a class. Return
20635 error_mark_node when things aren't found.
20636 (patch_method_invocation_stmt): Return error_mark_node on failures.
20637 (patch_invoke): Removed unused local. Return the correct node.
20638 (java_complete_tree): Now returns a value. The BLOCK section binds
20639 local identifiers and the type of a BLOCK is now void. Assign the
20640 result of operand completion on COMPOUND_EXPR. Assign the
20641 encapsulated node of a WFL to the result of its completion, except
20642 when the node is an identifier. Now handle MODIFY_EXPR and several
20643 binary operators. Return error_mark_node on errors.
20644 (build_method_invocation, build_assignment, patch_assignment,
20645 build_binop, operator_string, patch_binop): New functions.
20646 * typeck.c (binary_numeric_promotion): New function.
20647
20648 1998-05-21 Per Bothner <bothner@cygnus.com>
20649
20650 * class.c (identifier_subst): New convenience wrapper for ident_subst.
20651 Replace most uses of ident_subst by identifier_subst.
20652
20653 * class.c (push_class_static_dummy_field): Removed function.
20654 (build_class_ref): Find Class object decl by looking up "CNAME.class",
20655 instead of looking got "class" static field. Create that decl here.
20656 (class_identifier_node): Removed; no longer needed.
20657 (init_class_processing): Don't init class_identifier_node.
20658 * jcf-parse.c (jcf_parse): Don't call push_class_static_dummy_field.
20659 Do nreverse 0 times (instead of twice) for Object and Class.
20660 * parse.y (java_layout_parsed_class): No push_class_static_dummy_field.
20661
20662 1998-05-20 Per Bothner <bothner@cygnus.com>
20663
20664 * jcf-parse.c (parse_class-file): Set lino to smallest line number,
20665 while initializing linenumber_count and linenumber_table.
20666 Do it before init_function_start (which calls emit_line_note).
20667 * expr.c (expand_byte_code): Don't need to clear lineno here.
20668
20669 1998-05-18 Tom Tromey <tromey@cygnus.com>
20670
20671 * class.c (append_gpp_mangled_type): If `qualifications' is >=9,
20672 then mangle number as _N_.
20673
20674 * class.c (mangle_class_field): New function.
20675 (build_class_ref): Set assembler name of class reference using
20676 mangle_class_field.
20677 (push_class_static_dummy_field): Likewise.
20678
20679 1998-05-17 Michael Tiemann <tiemann@cygnus.com>
20680
20681 * parse.y (source_start_java_method): Use TREE_SET_CODE instead
20682 of assigning to TREE_CODE. The latter method exploits a feature
20683 of GCC that is not ANSI compliant.
20684
20685 1998-05-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
20686
20687 * decl.c (pushdecl_force_head): New function.
20688 (pushlevel): Removed conditional printf.
20689 (complete_start_java_method): Don't enter local variable scope if
20690 function is compiled from source code.
20691 * expr.c: parse.h now included
20692 (java_lang_expand_expr): New function.
20693 * jcf-io.c (find_class): Use SOURCE_FRONTEND_DEBUG instead of
20694 printf. Terminate buffer when doing directories.
20695 * jcf-parse.c (parse_source_file): Call lang_init_source before
20696 parsing and before code generation.
20697 * jcf.h (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally
20698 use printf if the macro is defined.
20699 * lang.c (lang_init): Install lang_expand_expr hook on
20700 java_lang_expand_expr.
20701 (java_dummy_print): New function.
20702 (lang_init_source): New function.
20703 * lex.c (java_lex): Remember location of an opening brace at the
20704 second nesting level.
20705 (java_is_eol): Unget character seen after a CR if it is EOF.
20706 * parse.h: Now includes lex.h
20707 (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally use
20708 printf if the macro is defined.
20709 (expand_start_java_method, build_expr_block, enter_block,
20710 exit_block, lookup_name_in_blocks, maybe_absorb_scoping_blocks):
20711 New static function declarations.
20712 (pushdecl_force_head): New extern function declaration.
20713 (INCOMPLETE_TYPE_P): New macro.
20714 (JDEP_PARM, JDEP_TYPE): New entries in JDEPs enum.
20715 (BLOCK_CHAIN_DECL, BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY,
20716 BLOCK_EXPR_ORIGIN): New macros.
20717 (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
20718 DECL_SOURCE_LINE_LAST): New macros.
20719 (struct parser_ctxt): Removed field current_method_decl, redundant
20720 with the field current_function_decl. Added fields
20721 first_ccb_indent1 and pending_block.
20722 * parse.y (method_body, literal, INT_LIT_TK, FP_LIT_TK,
20723 BOOL_LIT_TK, CHAR_LIT_TK, STRING_LIT_TK, NULL_TK, VOID_TK): Rules
20724 tagged <node>
20725 (SOURCE_FRONTEND_DEBUG): Used as macro accepting varargs.
20726 (compilation_unit:): Cosmetic on sub rule.
20727 (type_declaration:): Cosmetic on sub rules. Added an error rule.
20728 (variable_initializer:): Installed default rule on expression:.
20729 (method_declaration:): method_header: starts a new
20730 method. method_body: installs the function body, absorbs blocks
20731 emitted for temporary variable scopings, pops function's body block
20732 and merges function's last statement lineno in DECL_SOURCE_LINE.
20733 (method_body:): Installed default rules.
20734 (block:): Call enter_block when an opening brace is seen. Absorb
20735 scoping blocks and call exit_block when a closing brace is seen.
20736 (block_statement:): Cosmetic changes.
20737 (method_invocation:): Create WFL around CALL_EXPR node.
20738 (patch_stage): Added comment around definition.
20739 (method_header): Try to use first_ccb_indent1 as the first line of
20740 the method, so BP debug info are emitted at the first opening
20741 brace of the function. If the function has no body, use the
20742 location of the function's name. Override currently defined method
20743 name with the matching WFL so we can point redefinition errors
20744 using the location where the function's name was declared.
20745 (check_abstract_method_header): Interprets DECL_NAME as an
20746 identifier or as a WFL, accordingly.
20747 (java_complete_class): New cases for JDEP_TYPE and JDEP_PARM.
20748 (check_method_redefinition): Use DECL_NAME as a WFL. Extract
20749 location and name information out of it and reinstall DECL_NAME to
20750 its original identifier node value.
20751 (lookup_cl): Use DECL_SOURCE_LINE_FIRST (first line of the
20752 function's source code).
20753 (read_import_dir): Test the value returned by find_class and issue
20754 a fatal accordingly.
20755 (declare_local_variables): Push a new block for the scope of the
20756 new variable(s) if code has been already generated at that nesting
20757 level. Pinpoint redefinition errors using the variable id
20758 WFLs. Generate initialization code if necessary. If the variable
20759 type is incomplete, register a patch on its decl.
20760 (source_start_java_method): Rewritten. Define a new block for the
20761 function's parameters. Build parameter decl out of function's
20762 arguments and register them for a patch if their types are
20763 incomplete.
20764 (expand_start_java_method): Includes the part of
20765 source_start_java_method that was pushing the parameter decls and
20766 completing the method start code.
20767 (source_end_java_method): Removed call the expand_end_bindings and
20768 poplevel (already taken care of). Reinstall function's arguments
20769 and get function's last line of code before calling
20770 expand_function_end.
20771 (java_method_add_stmt): New comment before the function's
20772 code. Complement the second operand of the current COMPOUND_EXPR
20773 if necessary.
20774 (java_complete_expand_methods): Don't generate debug info on line
20775 zero when expanding a generated constructor.
20776 (java_complete_expand_method): Set start and end line numbers for
20777 a artificially generated constructor to one and manually call
20778 enter_block and exit_block when defining it. For all methods:
20779 expand function's start calling the new expand_start_java_method
20780 and invoke java_complete_tree on the effective method's body, if
20781 any.
20782 (resolve_expression_name): Now use lookup_name_in_blocks to search
20783 local variable decls and print out an error when variables are
20784 undefined.
20785 (patch_method_invocation_stmt): Inserted comment before the
20786 function's code.
20787 (lookup_method_invoke): Chain method's arguments using chainon
20788 with the current arg list as a second argument. Inserted missing
20789 IDENTIFIER_POINTER when reporting an error on methods not found.
20790 (refine_accessible_methods_list): Don't retain constructors.
20791 (patch_arguments): Function removed.
20792 (java_complete_tree): Inserted comment before the function's
20793 code. New case for BLOCKs. Moved the WFL case a bit
20794 further. Complete function's arguments.
20795 (build_expr_block, enter_block, exit_block, lookup_name_in_blocks,
20796 maybe_absorb_scoping_blocks): New functions.
20797
20798 1998-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
20799
20800 * jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if
20801 previously set.
20802 * jcf-parse.c (parse_source_file, java_error_count): New forward
20803 and extern declarations.
20804 (java_parse_abort_on_error): Macro moved.
20805 (jcf_parse_source): fatal called if fopen fails. Now calls
20806 parse_source_file.
20807 (parse_source_file): New parse_only parameter. Reflects the
20808 elimination of the second pass.
20809 (yyparse): parse_source_file called with argument set to 0.
20810 * jcf.h (JCF_ZERO): Sets java_source to zero.
20811 * lex.c (java_init_lex): pass argument is gone. Function modified
20812 to be called once during the analysis of a file.
20813 (java_unget_unicode): Fixed typo in fatal message.
20814 (java_get_line_col): Likewise.
20815 (java_lval): Likewise. String literals no longer built during
20816 second pass.
20817 * lex.h (JAVA_COLUMN_DELTA): Take the tabulation character into
20818 account.
20819 * parse.h (MODIFIER_WFL): New macro.
20820 (parse_check_super, parser_check_super_interface): Now return int.
20821 (parser_chain_incomplete_item, not_builtin_p,
20822 complete_method_decl): Declarations removed.
20823 (build_method_invocation_stmt, build_invoke): Renamed using the
20824 `patch' instead of `build'
20825 (register-incomplete_type, obtain_incomplete_type,
20826 java_complete_tree, java_complete_expand_method,
20827 unresolved_type_p, create_jdep_list): New function declarations.
20828 (IC_TYPE, IC_DEPEND, DEPEND_DECL, DEPEND_WFL, BEGIN_ONLY_PASS,
20829 END_ONLY_PASS, ELSE_ONLY_PASS): Macro deleted.
20830 (jdep): New typedef on new struct _jdep.
20831 (JDEP_DECL, JDEP_DECL_WFL, JDEP_KIND, JDEP_SOLV, JDEP_WFL,
20832 JDEP_MISC, JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN,
20833 JDEP_TO_REVOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
20834 JDEP_RESOLVED_P): New macros.
20835 (JDEP_NO_PATCH, JDEP_SUPER, JDEP_FIELD, JDEP_METHOD,
20836 JDEP_METHOD_RETURN, JDEP_METHOD_END, JDEP_INTERFACE,
20837 JDEP_VARIABLE): New enum values and jdep kinds.
20838 (jdeplist): New typedef on struct _jdeplist.
20839 (CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, JDEP_INSERT): New
20840 macros.
20841 (CALL_EXPR_PRIMARY): New macro.
20842 (struct parser_ctxt): Fields java_pass, current_method_decl,
20843 method_decl_list deleted. New field jdeplist.
20844 (INCOMPLETE_P): Macro deleted.
20845 * parse.y (single_type_import_declaration:): Removed pass switch.
20846 (type_import_on_demand_declaration): Likewise.
20847 (field_declaration:): Removed pass switch on all sub rules.
20848 (class_declaration:): Call the complete_class_decl removed on
20849 class_body rules.
20850 (method_declaration:): Removed second pass switch. No longer chain
20851 methods decl when method_header reduced.
20852 (method_header:): Sub rules no longer depend on pass switch.
20853 (method_declarator:): Likewise.
20854 (method_body:): Likewise.
20855 (abstract_method_declaration:): Likewise.
20856 (block_statement:): Likewise.
20857 (local_variable_declaration:): Likewise.
20858 (argument_list:): Likewise.
20859 (method_invocation:): Likewise. Call to build_method_invocation_stmt
20860 removed. Partial CLASS_EXPR tree node built instead.
20861 (postfix_expression:): Removed pass switch on all sub rules.
20862 (java_pop_parser_context): Free classd_list content.
20863 (yyerror): Call obstrack_grow0 to finalize error message.
20864 (check_class_interface_creation): Comment modified to reflect new
20865 returned value meaning. Removed second pass switch. Return 1 if an
20866 error was found, 0 otherwise. Adjust pointer on filename if a
20867 leading path separator was found.
20868 (maybe_create_class_interface_decl): Removed first pass switch
20869 when linking the class decl to the class_list. Install a new
20870 jdep_list for the class.
20871 (add_superinterfaces): List of unresolved interfaces is
20872 gone. Unresolved interfaces are directly added to the current
20873 dependencies list.
20874 (create_interface): Second pass shortcut removed.
20875 ctpx->modifier_ctx access through MODIFIER_WFL.
20876 (create_class): Second pass shortcut removed. Call to
20877 register_incomplete_type replaces the call to
20878 parser_chain_incomplete_item.
20879 (complete_class_decl): Function removed.
20880 (duplicate_declaration_error): New way of retrieving redeclared
20881 item type.
20882 (register_fields): Call to lookup_modifier_cl replaced by
20883 MODIFIER_WFL. New way of handling unresolved type, using
20884 unresolved_type_p and obtain_incomplete_type.
20885 register_incomplete_type replaces call to parser_chain_incomplete_item.
20886 (patch_stage): New static global variable.
20887 (method_header): New way of handling unresolved type, using
20888 unresolved_type_p and obtain_incomplete_type. patch_stage used to
20889 indicates that the method decl needs to be patched.
20890 (check_abstract_method_header): Call to lookup_modifier_cl
20891 replaced by MODIFIER_WFL.
20892 (method_declarator): Incomplete argument type are registered
20893 calling register_incomplete_type. Patch on the declared method is
20894 issued in that case.
20895 (unresolved_type_p): New function.
20896 (parser_check_super_interface): New comment to reflect function's
20897 modified returned type (int). Function and has a new argument
20898 this_wfl. Call to parse_error_context uses this_wfl instead of
20899 relying on lookup_cl.
20900 (parser_check_super): Comment reflects function's new returned
20901 type (int). Function returns nonzero value on error.
20902 (create_jdep_list, reverse_jdep_list, obtain_incomplete_type,
20903 register_incomplete_type, jdep_resolve_class): New functions to
20904 handle incomplete types in declarations.
20905 (java_complete_class): Rewritten to work with the new incomplete
20906 type handling scheme.
20907 (complete_class_report_errors): Likewise.
20908 (complete_method_decl): Removed: it jobs is now handled by
20909 java_complete_class.
20910 (do_resolve_class): Class loaded in not already loaded and not
20911 found in Java source code.
20912 (java_check_regular_methods, java_check_abstract_methods): Don't
20913 call complete_method_decl anymore.
20914 (lookup_modifier_cl, not_builtin_p): Functions deleted.
20915 (read_import_dir): Got rid of the pass number dependency.
20916 (declare_local_variables): New handling of unresolved types (patch
20917 issued).
20918 (source_start_java_method): New parameter level. Function called
20919 with level set to 1 when argument types are potentially
20920 unresolved. Called to complete the job with level set to 2 once
20921 types are complete.
20922 (source_end_java_method): Call to permanent_allocation
20923 removed. Waiting to be replaced by a more suitable obstack
20924 management.
20925 (java_complete_expand_methods, java_complete_expand_method,
20926 java_expand_finals): New functions.
20927 (build_method_invocation_stmt): Renamed
20928 patch_method_invocation_stmt. Extracts function call expression
20929 (wfl) and arguments (args) from CALL_EXPR tree operands.
20930 (build_invoke): Renamed patch_invoke. Fixed typo in fatal
20931 call. Patch the function and argument operand of the CALL_EXPR
20932 tree argument.
20933 (patch_argument, java_complete_tree): New functions.
20934
20935 1998-04-20 Per Bothner <bothner@cygnus.com>
20936
20937 Recover from missing fields and methods (i.e. error instead of fatal).
20938 * decl.c, java-tree.h (TYPE_identifier_node): New global constant.
20939 * expr.c (expand_invoke): Recover from missing method.
20940 (expand_java_field_op): Recover from missing field.
20941 Inline references to java.lang.{Integer,Char,...}.TYPE.
20942 * typeck.c (get_type_from_signature), java-tree.h: New function.
20943 * class.c (add_method): Use get_type_from_signature.
20944 (build_class_ref): Handle a class that was not found.
20945 * typeck.c (convert): Handle conversion to pointers (for convenience).
20946 * verify.c (verify_jvm_instructions): Use get_type_from_signature
20947 instead of lookup_field to handle missing fields.
20948
20949 * jcf-parse.c (process_zip_dir): Set java_source.
20950
20951 1998-04-20 Brendan Kehoe <brendan@cygnus.com>
20952
20953 * jcf-parse.c (set_source_filename): Use TYPE_NAME, not DECL_NAME.
20954
20955 1998-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
20956
20957 * jcf-parse.c (load_class): Don't change input_filename before
20958 calling jcf_parse_source (but still do it before calling
20959 jcf_parse).
20960 (jcf_parse_source): Assign input_filename after having saved the
20961 parser context.
20962 * lex.c (java_init_lex): Chain a WFL node to the import on demand
20963 list. ctxp->modifier_ctx zeroed according to its new
20964 definition. ctxp->filename initialized. Removed
20965 JAVA_MODIFIER_CTX_UNMARK.
20966 (java_unget_unicode): Update the character based column position.
20967 (java_allocate_new_line): ref_count not used anymore. Always free
20968 ctxp->p_line. Initialize c_line->char_col to 0.
20969 (java_get_unicode): Update the character based column position.
20970 (java_lex): Use ctxp->elc to store current position in source
20971 file, at the beginning of the parsed token. Set modifier_ctx entry
20972 corresponding to the parse modifier to a WFL node. Return a WFL
20973 node when an identifier is parsed.
20974 (java_lex_error): Now uses ctxp->elc to store current position in
20975 source.
20976 (build_wfl_node, java_is_eol, java_get_line_col): New functions.
20977 * lex.h (build_wfl_node): New function definitions.
20978 (struct java_line): ref_count and next fields are gone. New field
20979 char_col.
20980 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
20981 JAVA_LINE_UNMARK, ID_NAME, ID_CL): Macro definitions deleted.
20982 (JAVA_COLUMN_DELTA): New macro.
20983 (java_lc): New typedef on new struct _java_lc.
20984 * parse.h (lookup_cl, lookup_modifier_cl): Changed returned types.
20985 (parse_error_context, parse_warning_context): Changed prototypes.
20986 (java_get_line_col): Added as an available global function.
20987 (JAVA_MODIFIER_CTX_UNMARK): Macro removed.
20988 (IC_DECL): Replaced by macro IC_TYPE
20989 (DEPEND_WFL): New macro.
20990 (THIS_MODIFIER_ONLY): Now works with WFL and only remembers the first
20991 wrong modifier.
20992 (exit_java_complete_class): Removed a commented out statement.
20993 (struct parser_ctxt): Added comments on fields. modifier_ctx is
20994 now an array of tree nodes. Deleted fields line_list and
20995 e_line. New field elc, to replace e_line.
20996 * parse.y (array_type:): Build WFL node.
20997 (qualified_name:): Build a single WFL node out of two. Retain
20998 the location information of the first node in the resulting node.
20999 (package_declaration:): Use package name as a WFL node
21000 (single_type_import_declaration:): Use imported name as a WFL node.
21001 (type_import_on_demand_declaration:): Use root of the imported
21002 packages as a WFL node.
21003 (field_declaration:): Removed unused local variable cl.
21004 (method_declaration:): Don't call JAVA_MODIFIER_CTX_UNMARK.
21005 (yyerror): New static elc. Removed static error_line, error_pos.
21006 New local code_from_source. Save ctxp->elc into elc at the first
21007 pass. Call java_get_line_col to get a string of the line where
21008 the error occurred.
21009 (debug_line): Removed static function.
21010 (parse_error_context, parse_warning_context): Parameter cl is now
21011 a WFL node. Use its value to initialize ctxp->elc.
21012 (redefinition_error): Parameter cl is now a WFL node.
21013 (parse_add_interface): New parameter wfl. No longer call
21014 lookup_cl, use wfl instead.
21015 (check_class_interface_creation): Parameter cl is now a WFL node.
21016 (maybe_create_class_interface_decl): Likewise.
21017 (add_superinterfaces): New function.
21018 (create_interface): Removed local cl, node, super_decl,
21019 super_decl_type. Function now uses id as a WFL node. Better
21020 warning/error report on obsolete or forbidden mix of
21021 modifiers. Now calls add_superinterfaces to register interfaces.
21022 (create_class): Removed local cl, node. Local variable id is used
21023 as a WFL node. Better error report on forbidden modifier
21024 mix. Uses add_superinterfaces to register interfaces.
21025 (find_field): Argument cl is now a WFL node. Now store the WFL
21026 node of a fields that needs to be checked for their
21027 initialization.
21028 (method_header): Local variable node non longer used. Local
21029 variable id replaces cl.
21030 (check_modifiers_consistency): Local variable cl is now a WFL
21031 node.
21032 (method_declarator): Local variable cl replaced by parameter id.
21033 (parser_qualified_name): Now uses parameter name as a WFL node.
21034 (parser_check_super_interface): New parameter wfl, for achieve
21035 greater accuracy during error reports.
21036 (parser_chain_incomplete_item): New parameter named location. Used,
21037 along the decl, to construct the incomplete item node.
21038 (java_complete_class): resolve_class now uses WFL node extracted
21039 from the incomplete item node. Macro IC_TYPE replaces TREE_PURPOSE
21040 where appropriate.
21041 (complete_method_decl): Unresolved function's argument types are WFL.
21042 (resolve_class): Parameter cl is now a WFL node.
21043 (resolve_and_layout): Likewise.
21044 (do_resolve_class): Likewise. Try first to use cl and then do the
21045 lookup on the decl when calling check_pkg_class_access.
21046 (complete_class_report_errors): Use IC_TYPE in place of
21047 TREE_PURPOSE where appropriate. Use DEPEND_WFL on dependency
21048 instead of doing a lookup over the decl.
21049 (java_check_final): Use WFL info from field tree list.
21050 (lookup_cl): Rewritten and returns a statically defined WFL node.
21051 (lookup_modifier_cl): Now uses information from WFL nodes.
21052 (process_imports): Likewise.
21053 (read_import_dir): name and cl arguments replaced by a single WFL
21054 node. Function modified accordingly.
21055 (find_in_imports_on_demand): Now uses WFL node.
21056 (check_pkg_class_access): cl argument is now a WFL node.
21057 (declare_local_variables): Fixed to use WFL nodes.
21058 (resolve_expression_name): Likewise.
21059 (build_method_invocation_stmt): name_combo argument renamed
21060 wfl. Function modified to use WFL nodes.
21061 (build_invoke): cl used as a WFL node when calling build_expr_wfl.
21062 (lookup_method_invoke): cl is now a WFL node. Added missing
21063 IDENTIFIER_POINTER to class type decl name.
21064
21065 1998-04-14 Dave Brolley <brolley@cygnus.com>
21066
21067 * lang.c (init_parse): Now returns char* containing the filename.
21068
21069 1998-04-10 Per Bothner <bothner@cygnus.com>
21070
21071 * class.c (layout_class): Mangle repeated arg types to match cc1plus.
21072
21073 * decl.c, java-tree.h (integer_four_node): New INTEGER_CST node.
21074 * class.c (make_class_data): If flag_assume_compiled, initial class
21075 state is CSTATE_PREPARED; make superclass and interfaces direct
21076 references, rather than constant pool indexes.
21077
21078 1998-04-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
21079
21080 * parser.y: Include flags.h. Removed debug variable pl.
21081 (method_declaration:): Uses ctxp->parser_ccb_indent instead of pl.
21082 (block:): Likewise.
21083 (labeled_statement_nsi:): Generate debug info when reducing
21084 expression_statement:.
21085 (check_pkg_class_access): get_access_flags_from_decl invocation
21086 fixed for new CLASS_* flags location.
21087 (source_end_java_method): Save/restore parser context when
21088 entering/leaving this routine. Restore lineno to its right value
21089 before calling expand_end_bindings.
21090 (build_method_invocation_stmt): build_invoke called with the
21091 current line information.
21092 (build_invoke): New argument cl. Wrap the function call around a
21093 wfl node.
21094 (refine_accessible_methods_list): Changed comment, removed
21095 unnecessary code.
21096 * parse.h: Fixed typo in comments.
21097 (CLASS_OR_INTERFACE): Handle the new CLASS_* flags location.
21098 (JAVA_MAYBE_GENERATE_DEBUG_INFO): New macro.
21099 (struct parser_ctxt): New fields ccb_indent, last_ccb_indent1,
21100 parser_ccb_indent.
21101 * lex.c (java_lex): Record the last closing curly bracket of a
21102 function.
21103 * jcf-parse.c (jcf_parse_source): Now calls
21104 java_check_methods. Clarified comment, fixed typo.
21105
21106 1998-04-09 Dave Brolley <brolley@cygnus.com>
21107
21108 * lang.c (init_parse): Expose for non USE_CPPLIB builds.
21109 (finish_parse): Expose for non USE_CPPLIB builds.
21110
21111 1998-04-08 Jeffrey A Law (law@cygnus.com)
21112
21113 * lang.c (lang_print_xnode): New function.
21114
21115 1998-04-03 Per Bothner <bothner@cygnus.com>
21116
21117 * decl.c (class_dtable_decl), java-tree.h: New tree node.
21118 * class.c (get_dispatch_vector, get_dispatch_table): New functions
21119 used to build a class's dispatch table.
21120 (make_class_data): Generate dispatch table if flag_assume_compiled.
21121 Set dtable of class object to address of class_dtable_decl.
21122
21123 * decl.c (int_decl_processing): Make soft_badarrayindex_node
21124 be volatile and have side effects - generates better code.
21125
21126 * class.c, expr.c, parse.y: CLASS_INTERFACE, CLASS_FINAL, etc:
21127 These flags were defined for TYPE_DECLs, but used on RECORD_TYPEs.
21128
21129 * expr.c (expand_invoke): If class is final, method is
21130 effectively final, so can call it directly.
21131
21132 * java-tree.h (TYPE_NVIRTUALS, TYPE_VTABLE): New macros.
21133
21134 * Makefile.in, Make-lang.in: Add missing $(exeext)s.
21135
21136 1998-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
21137
21138 * parse.y (build_method_invocation_stmt): Removed extra argument
21139 to build_invoke.
21140
21141 1998-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
21142
21143 * expr.c (dtable_indent): Now static global.
21144 (expand_invoke): Now call invoke_build_dtable and
21145 build_invokevirtual.
21146 (invoke_build_dtable, build_invokevirtual): New functions.
21147 * jcf-io.c (find_class): Defer issuing a warning by setting
21148 jcf->outofsynch to 1.
21149 * jcf-parse.c (jcf_out_of_synch): New function.
21150 (load_class): Test this_jcf.outofsynch flag and call
21151 jcf_out_of_synch accordingly.
21152 * jcf.h: (typedef struct JCF): New flag outofsynch. Fixed typo in
21153 comment indentation.
21154 * lex.c (java_get_unicode): Fixed code indentation.
21155 (java_lex): Create string literal. Fixed typo. Removed several
21156 premature obstack_free.
21157 * parse.h: New enums for name resolution and invocation mode.
21158 (struct qualification): New data structure.
21159 (RESOLVE_CHAIN_REMAINDER, BUILD_PTR_FROM_NAME): New macros.
21160 (do_resolve_class, build_method_invocation_stmt,
21161 breakdown_qualified, qualify_ambiguous_name, resolve_and_layout,
21162 debug_line, identical_subpath_p, invocation_mode,
21163 refine_accessible_methods_list, build_invoke,
21164 lookup_method_invoke): New functions declared.
21165 (build_invokevirtual, invoke_build_dtable, match_java_method,
21166 build_field_ref, jcf_out_of_synch): New references to external
21167 functions.
21168 (struct parse_ctxt): Removed artificial_constructor field.
21169 * parse.y: (array_type:): Type defined for this rule.
21170 (class_type:): Installed default rule for interface_type:.
21171 (array_type:): Now build Java array type.
21172 (qualified_name:): Now use obstack_grow0.
21173 (method_declaration:): Skip the artificial constructor added to
21174 the list, if any.
21175 (abstract_method_declaration:): Execute the code only during pass 1.
21176 (block:): Installed default rule in block_statements:.
21177 (block_statement:): Add the statement to the method during pass 2.
21178 (statement_expression): Installed default rule for
21179 method_invocation:.
21180 (argument_list:): Added code to build the argument list.
21181 (method_invocation:): Added call to create the method invocation
21182 node.
21183 (yyerror): Now use obstack_grow0. Removed bogus obstack_free.
21184 (debug_line): New function for debug.
21185 (complete_class_decl): No longer do something during pass 1.
21186 (method_header): Use BUILD_PTR_FROM_NAME.
21187 (parser_qualified_classname): Use obstack_grow0. Removed bogus
21188 obstack_free.
21189 (parser_chain_incomplete_item): Use BUILD_PTR_FROM_NAME. Modified
21190 function's main comment.
21191 (java_complete_class): Set CLASS_LOADED_P on all fixed incomplete
21192 classes.
21193 (complete_method_decl): Use BUILD_PTR_FROM_NAME and promote types.
21194 (resolve_class): Now works with arrays.
21195 (do_resolve_class, resolve_and_layout): New functions.
21196 (java_check_regular_methods): Reverse method list before and after
21197 having processed it. No longer set ctxp->artificial_constructor.
21198 (read_import_dir): Test jcf->outofsynch and call jcf_out_of_synch
21199 accordingly. Fixed typo in issued error message. Now use
21200 obstack_grow0.
21201 (find_in_imports_on_demand): Now use obstack_grow0.
21202 (declare_local_variables): Use BUILD_PTR_FROM_NAME.
21203 (source_end_java_method): Call expand_expr_stmt instead of
21204 expand_expr. Calls it before calling expand_function_end.
21205 (java_method_add_stmt): Do nothing if errors were found during
21206 parsing.
21207 (java_layout_parsed_class): Set CLASS_LOADED_P and fixed typo.
21208 (build_method_invocation_stmt, build_invoke, invocation_mode,
21209 lookup_method_invoke, refine_accessible_methods_list,
21210 qualify_ambiguous_name, breakdown_qualified, identical_subpath_p):
21211 New functions.
21212 * typeck.c (build_java_signature): Properly end method signature
21213 if return type skipped.
21214 (match_java_method): New function.
21215
21216 1998-03-16 Per Bothner <bothner@cygnus.com>
21217
21218 * jcf-io.c (find_classfile): If USE_JCF_STDIO, fopen in binary mode.
21219
21220 1998-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
21221
21222 * expr.c (build_invoke_non_interface): New function.
21223 (methods_ident, ncode_ident): Now static globals.
21224 (expand_invoke): Use build_invoke_non_interface.
21225 * java-tree.h (struct lang_decl): New field function_decl_body.
21226 (DECL_FUNCTION_BODY): New macro.
21227 * jcf-parse.c (jcf_parse_source): Deeper check before setting
21228 CLASS_FROM_SOURCE_P.
21229 (parse_source_file): Fixed typos. Call java_layout_parsed_class
21230 before starting pass 2. Call to java_generate_parsed_class replaced
21231 by java_register_parsed_class.
21232 * lex.c: Fixed typo in header. Some line width related formating.
21233 * lex.h: Some line width related formating.
21234 * parse.h (source_end_java_method, resolve_expression_name,
21235 complete_class_decl, maybe_create_class_interface_decl,
21236 check_class_interface_creation): New static function declarations.
21237 (java_layout_parsed_class, java_method_add_stmt): New function
21238 declarations.
21239 (struct parser_ctxt): Field mark_class_generate removed. New
21240 fields class_list and artificial_constructor.
21241 * parse.y: Fixed typo in header.
21242 (class_declaration:): Call complete_class_decl when class body
21243 parsed.
21244 (method_declaration:): Call source_end_java_method in pass 2 when
21245 the method body is defined.
21246 (postfix_expression:): Do expression name resolution on sub-rule
21247 name during pass 2.
21248 (create_class, create_interface): Merged common pieces.
21249 (check_class_interface_creation, maybe_create_class_interface_decl):
21250 New functions.
21251 (complete_class_decl): New function.
21252 (register_fields): Fixed line width related typo.
21253 (method_header): Correctly skip first argument when fixing
21254 argument line. Changed the loop.
21255 (java_check_circular_reference): Now use ctxp->class_list.
21256 (java_complete_class): Removed start/stop marking.
21257 (java_check_regular_methods): Now takes a class decl as an
21258 argument. Add default constructor if none were encountered.
21259 (java_check_methods): Now use ctxp->class_list. Changed call to
21260 java_check_regular_methods.
21261 (source_start_java_method): Set DECL_ARG_TYPE for each function
21262 arguments.
21263 (source_end_java_method, java_method_add_stmt): New functions.
21264 (java_generate_parsed_class): No longer exists.
21265 (java_layout_parsed_class, java_register_parsed_class): New functions.
21266 (resolve_expression_name): New function.
21267
21268 1998-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
21269
21270 * jcf-parse.c: (parse_source_file): Check on errors after init lex.
21271 * lex.c: (java_init_lex): Defer ctxp->java_pass initialization
21272 until pass initializations are done. Call read_import_dir with
21273 pass set to 0.
21274 * parse.h: (lookup_modifier_cl): New function declared.
21275 (INTERFACE_FIELD_MODIFIERS): New macro.
21276 (OBSOLETE_MODIFIER_WARNING): New macro.
21277 * parse.y: (register_fields): Class type and current field name in
21278 local variables. Check modifier(s) if adding field(s) to an interface.
21279 (check_abstract_method_header): Now use OBSOLETE_MODIFIER_WARNING
21280 and report errors using the faulty modifier line context.
21281 (lookup_modifier_cl): New function.
21282 (read_import_dir): Detect and report default import processing
21283 failure.
21284
21285 1998-02-11 Brendan Kehoe <brendan@cygnus.com>
21286
21287 Add a pair of -fassume-compiled/-fno-assume-compiled options.
21288 * class.c (is_compiled_class): Return 1 after making sure it
21289 qualifies as loaded, if FLAG_ASSUME_COMPILED is set.
21290 * lang-options.h: Add -fassume-compiled/-fno-assume-compiled.
21291 * java-tree.h (flag_assume_compiled): Add decl.
21292 * lang.c (lang_f_options): Add the flag.
21293 (flag_assume_compiled): Add decl, default to 0.
21294
21295 1998-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
21296
21297 * class.c (class_depth): Call to load_class uses extra VERBOSE arg.
21298 (is_compiled_class): Likewise.
21299 (layout_class): Likewise.
21300 (layout_class): Detect and lay out classes defined in source code.
21301 (interface_of_p, add_interface_do, may_add_interface): New
21302 function.
21303 (add_interface): Now use add_interface_do.
21304 (add_method_1): New function.
21305 (add_method): Now use add_method_1.
21306 (pushlevel): Debug message conditional to SOURCE_FRONTEND_DEBUG.
21307 (complete_start_java_method): New function.
21308 (start_java_mehod): Now call complete_start_java_method.
21309 * expr.c (lookup_field): Call to load_class uses extra VERBOSE arg.
21310 (expand_invoke): Likewise and fixed typo.
21311 *gjava.c: (print_super_field): Use new argument to find_class
21312 DO_CLASS_FILE.
21313 (main): Likewise.
21314 *java-tree.h: (CLASS_FROM_SOURCE_P): New flag on RECORD_TYPE.
21315 (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
21316 QUALIFIED_P, IS_AN_IMPORT_ON_DEMAND_P): New flags on
21317 IDENTIFIER_NODE.
21318 (CLASS_COMPLETE_P): New flag on TYPE_DECL.
21319 (add_method_1, push_class): New prototypes.
21320 *jcf-dump.c: find_class now uses new DO_CLASS_FILE argument.
21321 *jcf-io.c: (open_in_zip): jcf now stores a pointer to the Zip
21322 directory where the class was found.
21323 (find_class): New argument DO_CLASS_FILE. Function find_class
21324 modified accordingly.
21325 *jcf-parse.c: (fix_class_path): New function.
21326 (load_class): Use new VERBOSE argument. load_class now finds and
21327 loads/parses .class/.java files. Save read_state of current_jcf
21328 if necessary.
21329 (java_parser_abort_on_error): New macro.
21330 (jcf_parse_source, parse_source_file): New function.
21331 (jcf_parse): Fixed typo.
21332 (yyparse): Call parse_source_file () only.
21333 (process_zip_dir): Fixed typo, fix zdir->filename_length when
21334 writing the real class name back in the zip directory entry.
21335 (find_in_current_zip): IDENTIFIER_CLASS_VALUE may be null.
21336 (jcf_figure_file_type): Fixed bogus alloc and bcopy.
21337 *jcf.h: (typedef struct JCF): New fields java_source and zipd.
21338 (find_class): Prototype fixed.
21339 *lex.c: Added 1998 time stamp.
21340 Removed all static global variables, moved into the parser
21341 context data structure.. Now include unistd.h if SEEK_SET not
21342 defined.
21343 (java_init_lex): Rewritten.
21344 (java_sneak_unicode): Modified current unicode access in current line.
21345 (java_unget_unicode): Likewise.
21346 (java_allocate_new_line): New allocation management.
21347 (java_read_char): Modified access and storage of unget_utf8_value.
21348 New way of processing current unicode.
21349 (java_store_unicode, java_read_unicode): Fixed typo in declaration.
21350 (java_get_unicode): Now use the parser context.
21351 (java_lineterminator): Likewise.
21352 (java_lex): Now used java_lval argument (pointer to YYSTYPE), part
21353 of the reentrant parser implementation. Function now use the
21354 parser context data structure and java_lval. Fixed production of
21355 the float and double constant "out of range" error message. Fixed
21356 obstack use. Return integer value when hitting a modifier. Now
21357 return type for TRUE, FALSE and other predefined types. Return
21358 identifier as a TREE_LIST list containing the current line context
21359 as the TREE_VALUE sub-node.
21360 (java_unicode_2_utf8): Fixed typo in declaration.
21361 (java_lex_error): Now use the parser context data structure.
21362 *lex.h: Added 1998 time stamp.
21363 (struct java_line): New fields ref_count and next.
21364 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
21365 JAVA_LINE_UNMARK, ID_NAME, ID_CL): New macros.
21366 (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, UNGETC): Fixed.
21367 *parse.h: Added 1998 time stamp.
21368 (java_parse_source_file): Renamed from parse_source_file.
21369 (YYERROR_NOW, YYNOT_TWICE): Fixed.
21370 (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
21371 INTERFACE_MODIFIER, INTERFACE_METHOD_MODIFIERS,
21372 JAVA_MODIFIER_CTX_UNMARK, IC_DECL, IC_DEPEND, DEPEND_DECL,
21373 THIS_MODIFIER_ONLY, ABSTRACT_CHECK, BEGIN_ONLY_PASS,
21374 END_ONLY_PASS, ELSE_ONLY_PASS, exit_java_complete_class,
21375 CLASS_OR_INTERFACE, INCOMPLETE_P): New macros.
21376 (struct parser_ctxt): New data structure to keep the parser context.
21377 *parse.y: Added 1998 time stamp, got rid of static global variables.
21378 (java_error_count, ctxp): New global variables.
21379 (%union): New value field.
21380 (numeric_type, integral_type): Rules removed.
21381 (primitive_type): Rule defined to handle integral, float, double and
21382 boolean types.
21383 (qualified_name, package_declaration,
21384 single_type_import_declaration, type_import_on_demand_declaration,
21385 modifiers, class_declaration, super, interfaces,
21386 interface_type_list, class_body, field_declaration,
21387 field_declaration, variable_declarators, variable_declarator,
21388 variable_declarator_id, method_declaration, method_header,
21389 formal_parameter_list, formal_parameter, method_body, block,
21390 static, interface_declaration, extends_interfaces,
21391 abstract_method_declaration, local_variable_declarators): Rules now
21392 define actions.
21393 (force_error, do_warning): New global statics.
21394 (push_parser_context, parser_context_save_global,
21395 parser_context_restore_global, pop_parser_context): New functions.
21396 (yyerror): Now uses the global parser context. Fixed use of obstack.
21397 (parse_error, parse_error_context, parse_warning_context,
21398 java_accstring_lookup, redefinition_error, check_modifiers,
21399 parser_add_interface, create_interface, create_class, find_field,
21400 duplicate_declaration_error, register_fields, method_header,
21401 check_modifiers_consistency, check_abstract_method_header,
21402 method_declarator, parser_qualified_classname,
21403 parser_check_super_interface, parser_check_super,
21404 parser_chain_incomplete_item, java_check_circular_reference,
21405 layout_class_from_source, java_complete_class,
21406 complete_method_decl, resolve_class, complete_class_report_errors,
21407 java_check_final, check_method_redefinition,
21408 java_check_regular_methods, java_check_abstract_methods,
21409 java_check_methods, lookup_java_interface_method2,
21410 lookup_java_method2, lookup_cl, find_name_in_single_imports,
21411 process_imports, find_in_imports, read_import_entry,
21412 read_import_dir, find_in_imports_on_demand,
21413 check_pkg_class_access, not_builtin_p, declare_local_variables,
21414 source_start_java_method, java_generate_parsed_class): New
21415 functions.
21416 *typeck.c: (signature_include_return): New global variable.
21417 (build_java_signature): Use SIGNATURE_INCLUDE_RETURN figure whether
21418 to add the function returned type in the signature.
21419
21420 1998-02-09 Brendan Kehoe <brendan@cygnus.com>
21421
21422 * jcf-io.c (open_in_zip): Use strncmp and LEN.
21423
21424 1998-01-29 Dave Brolley <brolley@cygnus.com>
21425
21426 * Make-lang.in (java.info): Added.
21427 (java.install-info): Added
21428
21429 1998-01-27 Brendan Kehoe <brendan@cygnus.com>
21430
21431 * Makefile.in (clean): Also remove java/parse.c.
21432
21433 1998-01-26 Brendan Kehoe <brendan@cygnus.com>
21434
21435 Add a pair of -fbounds-check/-fno-bounds-check options.
21436 * lang.c (lang_decode_option): Add code to grok arguments.
21437 (flag_bounds_check): Add decl.
21438 (lang_f_options): New array w/ the option in it.
21439 * java-tree.h (flag_bounds_check): Add decl.
21440 * lang-options.h: New file.
21441 * expr.c (build_java_arrayaccess): Use flag_bounds_check instead
21442 of a static macro value.
21443 (JAVA_ARRAY_EXCEPTION): Delete macro.
21444
21445 1998-01-23 Per Bothner <bothner@cygnus.com>
21446
21447 * typeck.c (build_java_array_type): Fix two bugs in previous change.
21448 * expr.c (build_anewarray): Add missing promote_type.
21449
21450 1998-01-22 Per Bothner <bothner@cygnus.com>
21451
21452 Add array types with known length to optimize bounds checking.
21453 * typeck.c (build_java_array_type): Take length parameter.
21454 (java_array_type_length, build_prim_array_type): New functions.
21455 * java-tree.h: Update for new functions.
21456 * expr.c, typeck.c, verify.c: Update build_java_array_type calls.
21457 * class.c: Use build_prim_array_type.
21458 * expr.c (can_widen_reference_to): Handle known-length array types.
21459 (verify_jvm_instructions): Keep track of integer push instructions
21460 followed by newarray/anewarray, so we can build known-length arrays.
21461 (JAVA_ARRAY_DATA_OFFSET): Replace by ...
21462 (java_array_data_offset): New function.
21463 (build_java_array_length_access): New function. Optimize if constant.
21464 (build_java_arrayaccess): Constant fold bounds check.
21465 (expand_java_newarray, expand_java_anewarray): Replaced by ...
21466 (build_newarray, build_anewarray): New functions.
21467 (ARRAY_NEW_NUM, ARRAY_NEW_PTR): Use build_{a,}newarray.
21468 * verify.c (merge_types): Handle known-lengh array types.
21469
21470 1998-01-19 Per Bothner <bothner@cygnus.com>
21471
21472 * expr.c (expand_byte_code): Fix performace bug, which caused
21473 searching linenumber_table to be linear rather than constant.
21474
21475 1997-12-12 Per Bothner <bothner@cygnus.com>
21476
21477 * Makefile.in (BISON, BISONFLAGS): Add missing macros.
21478
21479 * decl.c, java-tree.h (soft_fmod_node): New global.
21480 * decl.c (init_decl_processing): Define __builtin_fmod.
21481 * expr.c (build_java_binop): Implement TRUNC_MOD_EXPR for REAL_TYPE
21482 using __builtin_fmod.
21483
21484 1997-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
21485
21486 * keyword.h: New file, output of keyword.gperf as processed by
21487 gperf.
21488 * lex.c (java_lex_init): Initialize java_error_flag.
21489 * parse.c (YYERROR_NOW): Uses java_error_flag.
21490 * parse.y: New static java_error_flag. Useless definition of
21491 buffer_error gone.
21492 * parse.y (java_error): Portable error recovery using
21493 java_error_flag (not yet completely tuned).
21494
21495 1997-12-04 Brendan Kehoe <brendan@lisa.cygnus.com>
21496
21497 * Makefile.in (parse.c): Use $(srcdir) for parse.y.
21498
21499 1997-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
21500
21501 * Makefile.in: (JAVA_OBJS): New object jcf-parse.o.
21502 (parse.c, lex.c, keyword.h): New rules for Java source code
21503 front-end.
21504 * parse.c: Renamed into jcf-parse.c.
21505 * jcf-parse.c (yyparse): Invoke the parser to process Java source code.
21506 * keyword.gperf: New file, Java keywords.
21507 * parse.y: New file, Java language grammar.
21508 * parse.h: New file, Java language grammar definitions.
21509 * lex.c: New file, Java language lexer.
21510 * lex.h: New file, Java language lexer definitions.
21511
21512 1997-12-03 Per Bothner <bothner@cygnus.com>
21513
21514 * decl.c (clinit_identifier_node), java-tree.h: New global.
21515 * java-tree.h (IS_METHOD_INIT_P, IS_METHOD_CLINIT_P): Removed.
21516 * verify.c (verify_jvm_instructions): Inline use of removed macros.
21517 * expr.c (expand_java_field_op): Check for invalid assignment
21518 to final field.
21519
21520 * jcf-reader.c (get_attribute): Test for wrong attribute length.
21521
21522 1997-10-27 Per Bothner <bothner@cygnus.com>
21523
21524 * verify.c (verify_jvm_instructions): When processing a handler,
21525 attempt to set the current_subr to the right value.
21526 (More complicated code combines Sep 17 and Oct 22 versions.)
21527
21528 1997-10-24 Per Bothner <bothner@cygnus.com>
21529
21530 * class.c (push_class): Figure out (guess) name of source file.
21531 * parse.c (set_source_filename): Set DECL_SOURCE_FILE of class decl.
21532 (give_name_to_class): Don't guess source name; use DECL_SOURCE_FILE.
21533 (parse_class_file): Change return type from int to void.
21534 Call debug_start_source_file/debug_end_source_file.
21535
21536 * expr.c (build_java_binop): Fix masking 2nd operand.
21537 * decl.c (init_decl_processing): Set sizetype first.
21538
21539 1997-10-22 Per Bothner <bothner@cygnus.com>
21540
21541 * verify.c (verify_jvm_instructions): Don't set current_subr to NULL.
21542 (Revert Sep 17 change.)
21543
21544 1997-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
21545
21546 * parse.c (process_zip_dir): Skip ZIP entries not bearing the
21547 .class extension in their name and fix thing so we don't process
21548 them parse_zip_file_entries().
21549 (parse_zip_file_entries): Cleaned unused local variables.
21550
21551 1997-10-20 Per Bothner <bothner@cygnus.com>
21552
21553 * expr.c (can_widen_reference_to): Allows equal array element types.
21554 (expand_byte_code): PRE_RET must expand OPERAND_VALUE (to get index).
21555 * jcf-dump.c (RET): Get (and print) index.
21556
21557 * verify.c (verify_jvm_instructions case OPCODE_anewarray):
21558 Promote element type to POINTER_TYPE.
21559
21560 1997-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
21561
21562 * jcf-reader.c, parse.c: (parse_zip_file, process_zip_dir,
21563 find_in_current_zip, jcf_figure_file_type): Moved from
21564 jcf-reader.c to parse.c.
21565 * zextract.c: (read_zip_archive): takes file_comment_length possible
21566 field into account.
21567
21568 1997-10-20 Per Bothner <bothner@cygnus.com>
21569
21570 * verify.c (verify_jvm_instructions): Var can also be promoted to int.
21571
21572 * verify.c (merge_types): Handle array types even better ...
21573
21574 1997-10-17 Per Bothner <bothner@cygnus.com>
21575
21576 * expr.c (java_stack_pop): Fix use of NULL_TREE for TYPE_SECOND.
21577
21578 * java-tree.h (PUSH_FIELD): Set DECL_ARTIFICIAL.
21579 * class.c (make_class_data): Don't build fields_decl if no fields.
21580 When building fields_decl, skip if DECL_ARTIFICIAL.
21581
21582 * expr.c (java_stack_swap): Update stack_type_map.
21583 * verify.c (merge_types): Handle array types better.
21584
21585 1997-10-15 Per Bothner <bothner@cygnus.com>
21586
21587 * class.c (add_field): Don't promote short integral fields to
21588 int any more (unless JAVA_PROMOTE_TO_INT), since Kaffe doesn't.
21589 * expr.c (push_value): Promote and convert short integral values.
21590
21591 * decl.c, java-tree.h (integer_two_node): New constant node.
21592 * verify.c (merge_types): Check for TYPE_RETURN_ADDR.
21593
21594 1997-10-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
21595
21596 * class.c (append_gpp_mangled_type): Use function argument
21597 unpromoted type to generate mangled name.
21598
21599 1997-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
21600
21601 * constants.c (build_constant_data_ref): Now uses current_class
21602 instead of main_class.
21603 (build_constants_constructor): Now uses current_class instead of
21604 main_class.
21605 * zipfile.h: (struct ZipFileCache): Now defined here. Declaration
21606 of the global variable SeepZipFiles done here.
21607 * zextract.c (read_zip_archive): extra_field optional field taken
21608 into account while computing the position of the class file in the
21609 archive.
21610 * verify.c (verify_jvm_instructions): Use current_jcf to search
21611 the constant pool.
21612 * parse.c (load_class): First search for the class to load in the
21613 current zip file. Saves current_jcf (restored before returning
21614 from that function). Don't call JCF_FINISH in the class was found
21615 in the current ZIP file.
21616 (jcf_parse): If the class was found in the current ZIP file, save
21617 its tree_constant_pool (for later reuse).
21618 (parse_class_file): New function. Process each method defined in
21619 the current class and record the class as to be later registered.
21620 (yyparse): Rewritten. Figure the type of the current file and switch
21621 accordingly.
21622 * lang.c: New global variable current_jcf.
21623 (lang_init): Removed compiling_from_source test (done later, in
21624 yyparse). Removed call the jcf_parse ().
21625 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): New defined values.
21626 (typedef struct JCF): New fields seen_in_zip (to mark a class found
21627 in the current ZIP file) and zip_offset (offset to the class data in
21628 the current zip file).
21629 * jcf-reader.c: zipfile.h included.
21630 localToFile: New ZipFileCache static global variable
21631 (parse_zip_file_entries): New function. Browse the current ZIP
21632 file directory and process each class found.
21633 (process_zip_dir): New function. Register each class found in the
21634 ZIP file directory. The class aren't parsed but a valid JCF is
21635 link to each of them.
21636 (find_in_current_zip): New function. Search for a class in the
21637 current ZIP file directory. If found, prepare the class so that it
21638 can be loaded.
21639 (jcf_figure_file_type): New function. Examine the file structure
21640 to figure a class file, a ZIP file. If none of these categories are
21641 matched, a source file is assumed.
21642 * jcf-io.c: Removed definition of ZipFileCache (moved in zipfile.h).
21643 SeenZipFile: New global variable.
21644 (open_in_zip): Use zipmember's length to accelerate the search for
21645 a member. If zipmember was NULL and zip file successfully read,
21646 return 0.
21647 * java-tree.h: New global variable current_jcf declared. Added
21648 declaration for current_constant_pool_tags, current_constant_pool_data,
21649 current_constant_pool_length, current_constant_pool_data_ref.
21650 (struct lang_type): Augmented with two fields. struct JCF *jcf (to
21651 store the JCF of classes seen in a zip file) and tree *constant_pool
21652 (to save a loaded class constant pool). current_class declared here.
21653 * expr.c (expand_invoke): Use current_jcf instead of main_jcf to
21654 retrieve method_ref_constant.
21655 (PUSHC): java_push_constant_from_pool now uses current_jcf.
21656 (OBJECT): get_class_constant now uses current_jcf.
21657 (ARRAY_NEW_PTR): get_class_constant now uses current_jcf.
21658 (ARRAY_NEW_MULTI): get_class_constant now uses current_jcf.
21659 (expand_invoke): Now uses current_class instead of main_class
21660 (build_class_init): Now uses current_class instead of main_class
21661 * class.c: New static global variable registered_class.
21662 (register_class): New function.
21663 (emit_register_class): Modified to use registered_class instead of
21664 main_class
21665 (is_compiled_class): Now take into account class seen in the archive.
21666
21667 1997-10-06 Per Bothner <bothner@cygnus.com>
21668
21669 * except.h: Renamed to: java-except.h.
21670 * parse.c, except.c, expr.c, verify.c: Update #include accordingly.
21671 * except.c: Add semi-working (commented out) implementation.
21672
21673 * expr.c (expand_iinc): Add needed flush_quick_stack.
21674 * parse.c (set_source_filename): New function.
21675 (give_name_to_class): Set input_filename from package.classname.java.
21676
21677 * jcf-io.c (find_class): Don't look first in ".".
21678
21679 1997-10-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
21680
21681 * zextract.c (read_zip_archive): Now takes into account the
21682 extra_field field.
21683 * expr.c (can_widen_reference_to): Modified to handle sub-interfaces.
21684
21685 1997-09-20 Per Bothner <bothner@cygnus.com>
21686
21687 * constants.c, java-tree.h (build_internal_class_name): New function.
21688 (alloc_class_constant): Re-implement using build_internal_class_name.
21689 * class.c (make_class_data): Likewise.
21690 * class.c (hashUtf8String): Make hash algorithm match String.hashCode.
21691
21692 1997-09-17 Per Bothner <bothner@cygnus.com>
21693
21694 * verify.c (verify_jvm_instructions): Temporarily set current_subr
21695 to NULL before pushing an exception handler target.
21696
21697 * expr.c (flush_quick_stack): Save from low stack indexes to high.
21698 (java_stack_swap, java_stack_dup): Re-write to be safe from
21699 clobbering registers.
21700 (build_class_init): New function.
21701
21702 1997-09-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
21703
21704 * typeck.c (build_java_array_type): Temporary use
21705 permanent_obstack to create the array 'length' field.
21706 * expr.c (lookup_label): Temporay use permanent_obstack to create
21707 label if not found.
21708 * class.c (push_super_field): Tempory use permanent_obstack.
21709
21710 1997-09-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
21711
21712 * typeck.c (type_for_mode): Now handles double_type_node and
21713 float_type_node.
21714 * verify.c (verify_jvm_instructions): The instruction following
21715 the wide bytecode is checked. OPCODE_ret added to the list of
21716 wide.
21717
21718 1997-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
21719
21720 * class.c (make_class): Temporary use permanent_obstack. Set the
21721 class CLASS_P field to 1.
21722 (push_class): Temporary use permanent_obstack.
21723 (set_super_info): Temporary use permanent_obstack.
21724 (add_method): Temporary use permanent_obstack, set
21725 METHOD_TRANSIENT().
21726 (add_field): Temporary use permanent_obstack. Sets
21727 FIELD_VOLATILE() and FIELD_TRANSIENT().
21728 (build_class_ref): Temporary use permanent_obstack if the class
21729 isn't compiled.
21730 (build_static_field_ref): Temporary use permanent_obstack when
21731 creating field's rtl.
21732 (get_access_flags_from_decl): Handle ACC_VOLATILE, ACC_TRANSIENT,
21733 ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT flags for methods
21734 and fields. Function finalized, as far as flag handling.
21735 (push_class_static_dummy_field): Temporary use permanent_obstack.
21736 (emit_register_class): Force generation of class registration at
21737 -O3 or deeper.
21738 * decl.c (end_java_method): Call permanent_allocation() before
21739 returning.
21740 * expr.c (can_widen_reference_to): Added comment to interface
21741 handling, fixed typo.
21742 (lookup_field): Now uses CLASS_P() to correct FIXME
21743 (expand_invoke): Verification on public && !static &&
21744 !abstract moved into soft_lookupinterfacemethod (kaffe).
21745 Use Object class dtable if objectref is an array when expanding
21746 invokeinterface.
21747 (java_push_constant_from_pool): Temporary use permanent_obstack
21748 for CONSTANT_string
21749 * parse.c (get_ref_constant): Temporary use permanent_obstack to
21750 create constant references.
21751 (get_constant): Temporary use permanent_obstack to create constant.
21752 (load_class): Temporary use permanent_obstack to load class.
21753 (jcf_parse): Temporary use permanent_obstack to perform class
21754 layout.
21755 * typeck.c: (parse_signature_string): Temporary use permanent_obstack.
21756 (build_java_signature): Temporary use permanent_obstack.
21757 * verify.c: (verify_jvm_instruction): removed unnecessary verification
21758 on ACC_SUPER flag.
21759 * java-tree.h (METHOD_NATIVE, METHOD_TRANSIENT): Defined.
21760 (FIELD_VOLATILE, FIELD_TRANSIENT): Defined.
21761 (CLASS_P): Defined
21762
21763 1997-09-11 Per Bothner <bothner@cygnus.com>
21764
21765 * class.c (append_gpp_mangled_type): Fix typo.
21766 (emit_register_class): Use main_class to get class object, rather
21767 than looking for no-longer-existing static decl starting with _CL.
21768 * typeck.c (parse_signature_type): Promote array element type
21769 if it is a RECORD_TYPE.
21770
21771 1997-09-10 Per Bothner <bothner@cygnus.com>
21772
21773 * class.c (push_class_static_dummy_field): New function.
21774 (mangle_static_field): New. Do G++-style mangling of static fields.
21775 (layout_class): Mandle static fields here, not in add_field.
21776 (build_class_ref): The class object is now a dummy static field.
21777 * decl.c (find_local_variable): Look for best, instead of first match.
21778 * expr.c (push_type): Always promote_type, not just for RECORD_TYPE.
21779 (build_java_athrow): Don't check here if exception is Throwable.
21780 * java-tree.h (TYPE_UNSET): Renamed to TYPE_UNKNOWN.
21781 (TYPE_USED): Removed. No longer used ...
21782 * parse.c (jcf_parse): Call push_class_static_dummy_field.
21783 * verify.c (push_pending_label): New function.
21784 (push_pending_block): Renamed to check_pending_block.
21785 (merge_types): Remove unneeded suuport for TYPE_UNUSED.
21786 (verify_jvm_instructions): Only reset prev_eh_ranges (to force
21787 re-checking possible handlers) after a store (less wasted work).
21788 Check for null handler (finally) before calling add_handler.
21789 Various changes to (finally?) correctly handle try/finally.
21790
21791 1997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
21792
21793 * class.c: Include stdio.h.
21794
21795 1997-09-04 Per Bothner <bothner@cygnus.com>
21796
21797 * expr.c (expand_invoke): Use COMPOUND_EXPR (and TREE_SIDE_EFFECTS)
21798 to make sure class is initialized before static/special invoke.
21799
21800 * verify.c (verify_jvm_instructions): On a store instruction,
21801 call find_local_variable to force pre-allocation of decl and rtx.
21802 * decl.c (push_jvm_slot): Set DECL_REGISTER on stack slots.
21803
21804 1997-09-03 Per Bothner <bothner@cygnus.com>
21805
21806 * class.c (build_class_ref): Strip off "promoted_" if need be.
21807 (make_field_value): Call build_java_signature when needed.
21808 (layout_class): Don't make_function_rtl if METHOD_ABSTRACT.
21809 * expr.c (build_java_athrow): Don't push_value of exception.
21810 (build_java_binop): Implement COMPARE_L_EXPR and COMPARE_G_EXPR to
21811 match specification of [fd]cmp[lg] for NaNs.
21812 (expand_byte_code): Add support for exception handler ranges.
21813 * except.c: Add skeleton for EH code-generation.
21814 * verify.c (merge_types): Treat all promoted integral types as equal.
21815 * constants.c (build_constants_constructor): To force creation of
21816 current_constant_pool_data_ref, call build_constant_data_ref.
21817
21818 * javaop.def (lload): Fix typo.
21819 * jcf-dump.c (main): Clear filename to prevent possibly-bad free.
21820
21821 1997-09-02 Brendan Kehoe <brendan@lisa.cygnus.com>
21822
21823 * parse.c: Don't include function.h.
21824
21825 1997-08-27 Per Bothner <bothner@cygnus.com>
21826
21827 * except.[ch]: New files.
21828 * Makefile.in (JAVA_OBJS): Add except.o
21829 * expr.c: Temporary warning about unimplemented exceptions.
21830 * verify.c: Verify exception handlers.
21831
21832 * jcf-dump.c (disassemble_method): Print exception table.
21833
21834 1997-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
21835
21836 * expr.c (verify_jvm_instructions): Started a thorough
21837 verification of invoke* bytecodes.
21838 (expand_byte_code): flush quick stack if PC is the target of a
21839 branch. and undef RET (conflicting with config/i386/i386.h).
21840 (expand_java_arrayload): Fixed bogus cast, when Boolean type is
21841 used.
21842 (expand_invoke): Now handles invokeinterface and do more
21843 verification according to the bytecode.
21844 (lookup_field): Don't try to load the class if processing
21845 dtable_type.
21846 (can_widen_reference_to): Now handles interfaces.
21847 * decl.c (init_decl_processing): New global variable
21848 soft_lookupinterfacemethod_node, declared in java-tree.h.
21849 Call set_super_info on string_type_node.
21850 * java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now
21851 defined.
21852 * class.c (set_super_info): Fills the CLASS_* flags according to
21853 access_flags.
21854 (get_access_flags_from_decl): Handles all class flags.
21855
21856 1997-08-26 Per Bothner <bothner@cygnus.com>
21857
21858 * class.c (add_method): Zero out newly-allocated DECL_LANG_SPECIFIC.
21859 * parse.c (yyparse): Check for abstract method, and missing code.
21860 * expr.c (expand_byte_code): Change interface.
21861 * lang.c (put_decl_node): Print promoted types prettier.
21862 * verify.c (verify_jvm_instruction): Change interface.
21863 Partial support for scanning exception table.
21864 For load instructions, handle promoted integral types.
21865
21866 1997-08-21 Per Bothner <bothner@cygnus.com>
21867
21868 * verify.c: New file, with contents moved from expr.c.
21869 * expr.c: Bunch of stuff (mostly verification) moved to verify.c.
21870 * typeck.c (is_array_type_p): Moved here from expr.c.
21871 * java-tree.h: Add some now-needed function declarations.
21872 * Makefile.in (JAVA_OBJS): Added verify.o.
21873
21874 1997-08-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
21875
21876 * class.c (add_method): Sets the METHOD_SYNCHRONIZED flag, sets the
21877 METHOD_ABSTRACT flag.
21878
21879 * java-tree.h (METHOD_SYNCHRONIZED): Set to DECL_LANG_FLAG_4.
21880 (IS_METHOD_CLINIT_P, IS_METHOD_INIT_P): New macros.
21881 (METHOD_ABSTRACT): Set to DECL_LANG_FLAG_5
21882
21883 * decl.c (soft_monitorenter_node, soft_monitorexit_node): New global
21884 variables.
21885 (start_java_method): Hook for SYNCHRONIZED methods.
21886
21887 * expr.c (build_java_jsr, build_java_ret): New functions
21888 (JSR,PRE): New macros
21889 (PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured.
21890 (verify_jvm_instructions): tableswitch, lookupswitch,
21891 monitorenter, monitorexit, goto_w: verified.
21892 (LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label
21893 (build_java_monitor): New function.
21894 (MONITOR_OPERATION): Modified to call build_java_monitor()
21895 (verify_jvm_instructions): Started a thorough verification of
21896 invoke* bytecodes.
21897
21898 1997-08-19 Per Bothner <bothner@cygnus.com>
21899
21900 Support verification of jsr/ret subroutines (used for try/finally).
21901 * decl.c (return_address_type_node): New type node.
21902 * java-tree.h (LABEL_RETURN_LABEL, LABEL_RETURN_TYPE_STATE,
21903 RETURN_MAP_ADJUSTED, LABEL_RETURN_LABELS, LABEL_IN_SUBR,
21904 LABEL_SUBR_START, LABEL_SUBR_CONTEXT, BCODE_VERIFIED): New macros.
21905 (TYPE_UNSET, TYPE_SECOND, TYPE_NULL, TYPE_RETURN_ADDR, TYPE_UNUSED,
21906 TYPE_USED): New macros for special types in type_map.
21907
21908 * java-tree.h (BCODE_JUMP_TARGET): Renamed to BCODE_TARGET.
21909 (BCODE_BACKWARDS_TARGET, CODE_FORWARDS_TARGET): Replaced by
21910 BCODE_JUMP_TARGET.
21911 * expr.c (expand_byte_code): Fix logic to warn of unused instructions.
21912
21913 * expr.c (can_widen_reference_to): New function.
21914 (pop_type): Use it.
21915 (merge_type_state): Support handling start of subroutine.
21916 (push_pending_block): Return char* error message, instead of calling
21917 fatal on an error. Also handle subroutines.
21918 (verify_jvm_instructions): Handle errors from push_poending_block.
21919 Support jsr and ret instructions.
21920
21921 1997-08-19 Per Bothner <bothner@cygnus.com>
21922
21923 * jcf-io.c (find_classfile): Fix thinko.
21924 * jcf-dump.c: Add CONVERT2 (to match changed javaop.def).
21925
21926 1997-08-12 Jason Merrill <jason@yorick.cygnus.com>
21927
21928 * Makefile.in (BISON): Remove.
21929
21930 1997-08-07 Per Bothner <bothner@cygnus.com>
21931
21932 * Makefile.in: Convert to autoconf.
21933 * config-lang.in (outputs): Added java/Makefile.
21934
21935 * Make-lang.in, lang-specs.h, config-lang.in, Makefile.in:
21936 Rename cc1java to jc1.
21937
21938 * lang.c (init_parse, finihs_parse): New functions #ifdef USE_CPPLIB.
21939 * Makefile.in (INTERNAL_CFLAGS): Add @extra_c_flags.
21940
21941 * class.c (class_depth): Do load_class if needed.
21942
21943 Mostly better verification.
21944 * decl.c (pushdecl): Set TYPE_STUB_DECL for a type.
21945 (init_decl_processing): Change return type of soft_checkcast.
21946 * expr.c (expand_java_CHECKCAST): Do push_value of the "casted" value.
21947 * lang.c (put_decl_string, put_decl_node, lang_printable_name,
21948 lang_print_error): New functions.
21949 (lang_init): Set global hook print_error_function to lang_print_error.
21950 * expr.c: In the type_map ptr_type_node is only used for null now.
21951 (pop_type, merge_types): Hence ptr_type_node matches any reference.
21952 (merge_types): Dererence pointer to record types before comparing.
21953 (decode_newarray_type, merge_types): On error just return NULL.
21954 (build_java_binop): Add preliminary implementation (with warning)
21955 for COMPARE_L_EXPR and COMPARE_G_EXPR (i.e. [fd]cmp[lg]).
21956 (lookup_label): Set DECL_IGNORED_P (for dwarf2out).
21957 (expand_compare, expand_java_goto, expand_java_call): Don't
21958 push_pending_block, since that only makes sense when verifying.
21959 (merge_type_state): Different return codes.
21960 (push_pending_block): A block may need to be verified more than once.
21961 (expand_byte_code): Warn about unused code at code generation time.
21962 (verify_jvm_instruction): Changed logic, since code may need to be
21963 re-verified if type-state has changed. Also, better error handling.
21964 Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof.
21965 Improve newarray, anewarray, ?aload, athrow,
21966 * java-tree.h (LABEL_CHANGED): New macro.
21967
21968 1997-08-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
21969
21970 * decl.c (soft_athrow_node): New global variable initialized.
21971 * javaop.def (i2b, i2c, i2s): Invoke CONVERT2
21972 * typeck.c (convert): Added support for REAL_TYPE.
21973 (convert_to_char): New function.
21974 (convert): Handle CHAR_TYPE.
21975 * expr.c (expand_java_arraystore): Modified because CHAR/BYTE/BOOLEAN/
21976 SHORT now expect INT but store as CHAR/BYTE/BOOLEAN/SHORT.
21977 (expand_java_arrayload): CHAR/BYTE/BOOLEAN/SHORT now convert result to
21978 promoted type.
21979 (verify_jvm_instructions): Added break a the end of bogus unop: label.
21980 (OPCODE_<b|c|s>astore): Pop an int operand from the type stack
21981 (OPCODE_<b|c|s>astore): Push the promoted type onto the stack
21982 (process_jvm_instruction): New macro CONVERT2 for i2c, i2s and i2b.
21983 (JAVA_ARRAY_LENGTH_OFFSET, JAVA_ARRAY_DATA_OFFSET): Modified
21984 to Use The Right Things.
21985 (pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as
21986 compatible with INT. BOOLEAN is made equivalent to BYTE.
21987 (OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull,
21988 OPCODE_ifnonnull): Now supported.
21989 (build_java_athrow): New function.
21990
21991 1997-08-04 Per Bothner <bothner@cygnus.com>
21992
21993 Rename method name <init> to match G++ (and fix mangling).
21994 * class.c (layout_class): Replace method name of <init> by class name.
21995 (make_method_value): Do inverse renaming of constructor from <init>.
21996 * java-tree.h (DECL_CONSTRUCTOR_P): New macro.
21997 * typeck.c (lookup_java_constructor): New function.
21998 * expr.c (expand_invoke): If method_name is <init>, call
21999 lookup_java_constructor to find constructor.
22000
22001 * parse.c (get_constant): Handle CONSTANT_Float and CONSTANT_Double.
22002
22003 1997-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
22004
22005 * parse.c (get_class_constant): Modified to handle array "classes"
22006 * typeck.c (set_local_type): Bug fixed when filling type_map[] with
22007 wide type.
22008 (convert): Modified to handle real type.
22009 * java-tree.h (soft_badarrayindex_node, soft_anewarray_node,
22010 soft_multianewarray, soft_newarray_node, soft_throw_node): New global
22011 variables declared.
22012 * decl.c (soft_badarrayindex_node, soft_anewarray_node,
22013 soft_multianewarray, soft_newarray_node, soft_throw_node): New
22014 global variables initialized.
22015 (find_local_variable): Handles the case of a pointer
22016 (end_java_method): Restore the use of one more scope
22017 * expr.c (build_java_arraynull_check, build_java_arrayaccess,
22018 build_java_array_length_access, expand_java_arrayload,
22019 expand_java_arraystore, expand_java_array_length,
22020 expand_java_multianewarray, expand_java_anewarray,
22021 build_java_check_indexed_type, is_array_type_p,
22022 build_java_throw_out_of_bound_exception): New functions.
22023 (STORE_INTERNAL): Now forces type of the decl to be type of the value.
22024 (OPCODE_arraylength, OPCODE_newarray, OPCODE_<t>astore,
22025 OPCODE_<t>aload): Implemented code for verification.
22026 (ARRAY_STORE, ARRAY_LOAD, ARRAY_LENGTH, ARRAY_NEW_PTR, ARRAY_NEW_NUM
22027 ARRAY_NEW_MULTI): Macro defined.
22028 (CONVERT): Modified to invoke convert().
22029 (case OPCODE_aload2): Fixed index typo from 2 to 1.
22030
22031 1997-07-31 Per Bothner <bothner@cygnus.com>
22032
22033 * class.c (push_class): Set DECL_ARTIFICIAL (for dbxout.c).
22034 (build_class_ref, is_compiled_class): Handle pointer-to-record types.
22035 (make_class_data): Field name needs '/' as package prefix.
22036 * expr.c (type_stack_dup, java_stack_dup): Fix fencepost errors.
22037
22038 1997-07-25 Per Bothner <bothner@cygnus.com>
22039
22040 Implement debug information for local variables.
22041 * java-tree.h (DECL_CODE_LENGTH, DECL_ARG_SLOT_COUNT,
22042 DECL_LOCAL_SLOT_NUMBER, DECL_LOCAL_START_PC, DECL_LOCAL_END_PC,
22043 DECL_LOCAL_SLOT_CHAIN): New macros.
22044 (struct lang_decl_var): New type.
22045 * parse.c (give_name_to_locals): Move to decl.c.
22046 * decl.c (give_name_to_locals): Re-written to Do The Right Thing.
22047 (start_java_method): Re-write parameter handling.
22048 (pending_local_decls): New global variable.
22049 (push_jvm_slot, maybe_pushlevels, maybe_poplevels): New functions.
22050 (find_local_variable): Accept pc so we can skips decls not in range.
22051 (struct binding_level): Add end_pc field.
22052 * expr.c (expand_byte_code): Call maybe_pushlevels and maybe_poplevels.
22053 (various): Change so current pc gets passed to find_local_variable.
22054
22055 * decl.c (init_decl_processing): Re-arrange fields in
22056 class_type_node and and method_type_node to match kaffe 0.9.1.
22057 * class.c (make_method_value, make_class_data): Update
22058 initializations to match.
22059
22060 1997-07-16 Per Bothner <bothner@cygnus.com>
22061
22062 * class.c (unicode_mangling_length, emit_unicode_mangled_name,
22063 append_gpp_mangled_name, append_gpp_mangled_type): New functions.
22064 (push_super_field): New function.
22065 (make_class_data): Handle inheritance of class static initializer.
22066 (layout_class): New name mangling.
22067 * constants.c (build_constant_data_ref): Init type of data array
22068 to a one-element array.
22069 (build_constants_constructor): Set DECL_SIZE from complete array type.
22070 * decl.c: Rename class_type, object_type etc to class_type_node,
22071 object_type_node etc. Make former inherit from latter.
22072 * expr.c (expand_invoke): Add cast of function address.
22073 * java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE): New.
22074 * parse.c (yyparse): Don't call layout_class here.
22075 * typeck.c (build_java_array_type): Set TYPE_ARRAY_ELEMENT.
22076
22077 1997-06-14 Per Bothner <bothner@cygnus.com>
22078
22079 * decl.c, class.c: Update method type to match latest Kaffe snapshot.
22080 * constants.c (lookup_name_constant): Renamed to alloc_name_constant.
22081 (alloc_class_constant): New.
22082 * expr.c (expand_invoke): Make sure method's class is initialized.
22083 * class.c (interits_from_p, emit_register_class): New functions.
22084 * parse.c (yyparse): Call emit_register_class.
22085
22086 1997-06-09 Per Bothner <bothner@cygnus.com>
22087
22088 * constants.c: New file, to handle constant pool.
22089 * Makefile.in (JAVA_OBJS): Add constants.o.
22090 * decl.c (init_decl_processing): Update, fix, finish various structs.
22091 (pushdecl_top_level): New.
22092 * parse.c (layout_class): Moved to class.c.
22093 * expr.c (java_push_constant_from_pool): New function.
22094 * class.c (build_class_ref): Make work fully
22095 (make_class_data): Emit super-class, constant pool, interface vector.
22096
22097 1997-06-03 Per Bothner <bothner@cygnus.com>
22098
22099 java-tree.h (DECL_SIGNATURE, BCODE_EMITTED): Remove.
22100 (LABEL_VERIFIED, BCODE_EXCEPTION_TARGET, TYPE_ARRAY_P): New.
22101 * class.c (class_depth): New function.
22102 (lookup_named_class): Replaced by new function lookup_class.
22103 * decl.c (object_type_node, string_type_node): New.
22104 Remove various types that we no longer need.
22105 * expr.c (verify_jvm_instructions): New separate verifier pass.
22106 (push_type, pop_type): New functions for verifier.
22107 (type_stack_dup, pop_argument_types, merge_types): Likewise.
22108 (expand_byte_code): Simplify, since we assume already verified.
22109 (expand_invoke): Now mostly works.
22110 * javaop.def: Rename ldc1->ldc, ldc2->ldc_w, ldc2w->ldc2_w.
22111 * lang.c (main_class): Move to parse.c. Don't make_class yet.
22112 * parse.c: Wait to allocate class object until we know its name.
22113 (layout_class): Calculate DECL_VINDEX for each virtual method.
22114 * typeck.c (get_array_type): Rename to ...
22115 (build_java_array_type): ... and provide working implementation.
22116 (build_java_signature): New function - build Java signature of type.
22117 (set_java_signature): New function - cache signature with type.
22118 (lookup_java_method): New function.
22119
22120 1997-05-06 Per Bothner <bothner@deneb.cygnus.com>
22121
22122 * class.c (ident_subst): Take extra SUFFIX parameter.
22123 (add_field): Set DECL_ASSEMBLER_NAME of static fields; more.
22124 (set_constant_value, build_static_field_ref, is_compiled_class): New.
22125 (build_class_ref): Actually implement.
22126 * decl.c, java-tree.h: Renamed some xx_type to xx_type_node.
22127 * decl.c (builtin_function): New.
22128 (init_decl_processing): Update for current Kaffe. Declare some
22129 builtin Kaffe functions.
22130 * expr.c (build_address_of): New.
22131 (expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST):
22132 Renamed (from expand_java_new etc), and added working implementations.
22133 (build_field_ref): Now also handle static fields.
22134 (expand_invoke): Implement invokestatic, and start implement rest.
22135 * java-opcodes.h: Use javaop.def to avoid duplicated list.
22136 * javaop.def: Rename invokevirt -> invokevirtual.
22137 * lang.c (use_handles): Removed.
22138 * parse.c: Add support for ConstantValue attribute.
22139 Handle nested loading of a class. (JPOOL_UTF): New.
22140
22141 1997-03-11 Per Bothner <bothner@deneb.cygnus.com>
22142
22143 * expr.c (expand_java_pushc): Support #ifndef REAL_ARITHMETIC case.
22144
22145 1997-02-27 Per Bothner <bothner@deneb.cygnus.com>
22146
22147 * Make-lang.in (java.install-man): New empty rule.
22148 * typeck.c (set_local_type): New function.
22149 * expr.c (STORE_INTERNAL): Call find_local_variable,
22150 not find_stack_slot. Call set_local_type.
22151
22152 1997-02-12 Per Bothner <bothner@kalessin.cygnus.com>
22153
22154 * java-tree.h: Various new macros for constructing RECORD_TYPEs,
22155 and building RECORD_TYPE CONSTRUCTORs.
22156 Also support for creating Utf8Const objects from an INDETIFIER_NODE.
22157
22158 * lang.c (use_handles): Change the default to 0.
22159 * decl.c: Define and build class_type, field_type, utf8const_type.
22160 * class.c (make_class_data, make_field_value,
22161 get_access_flags_from_decl, build_class_ref, build_utf8_ref,
22162 hashUtf8String, strLengthUtf8, mangled_classname:
22163 Functions to build reflective data structures.
22164 * parse.c (yyparse): Call make_class_data.
22165
22166 * jcf-io.c (open_class, find_classfile): New functions.
22167 * jcf-dump.c: Support reading classfile from explicitly-named
22168 class file (without CLASSPATH searching).
22169
22170 1996-10-24 Per Bothner <bothner@deneb.cygnus.com>
22171
22172 * jcf-reader.c: Add parameter list to HANDLE_CONSTANT_Utf8.
22173 * parse.c (JPOOL_UTF_LENGTH, JPOOL_UTF_DATA, HANDLE_CONSTANT_Utf8):
22174 Override jcf-reader macros so CONSTANT_Utf8 becomes tree node here.
22175 (get_constant): Now trivial for CONSTANT_Utf8.
22176
22177 * jcf.h: Make NEW_CPOOL the default.
22178 * jcf.h, jcf-reader.c, parse.c: Remove support for !NEW_CPOOL.
22179
22180 1996-10-24 Per Bothner <bothner@deneb.cygnus.com>
22181
22182 New directory.
22183
22184 \f
22185 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
22186 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
22187
22188 Copying and distribution of this file, with or without modification,
22189 are permitted in any medium without royalty provided the copyright
22190 notice and this notice are preserved.