]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/java/ChangeLog
gcc/ChangeLog:
[thirdparty/gcc.git] / gcc / java / ChangeLog
1 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
2
3 * lang.c: Do not include except.h
4 * except.c: Likewise.
5 (doing_eh): New, moved from except.c (in gcc/) but removed the
6 do_warning flag.
7 (maybe_start_try): Update doing_eh call.
8 * Make-lang.in: Update dependencies.
9
10 2010-06-23 Anatoly Sokolov <aesok@post.ru>
11
12 * decl.c (java_init_decl_processing): Use double_int_to_tree instead
13 of build_int_cst_wide.
14 * boehm.c (set_bit): Remove.
15 (mark_reference_fields): Use double_int type for 'mask' argument.
16 Use double_int_setbit instead of set_bit.
17 (get_boehm_type_descriptor): Use double_int_setbit instead of
18 set_bit. Use double_int_to_tree instead of build_int_cst_wide.
19
20 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
21
22 * gcj.texi: Move to GFDL version 1.3. Fix copyright years.
23
24 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
25
26 * jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.
27
28 * jcf-parse.c (java_parse_file): Likewise.
29 (process_zip_dir): Likewise.
30
31 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
32 (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
33
34 * expr.c (add_type_assertion): Likewise.
35
36 * decl.c (make_binding_level): Likewise.
37 (java_dup_lang_specific_decl): Likewise.
38
39 * constants.c (set_constant_entry): Likewise.
40 (cpool_for_class): Likewise.
41
42 * class.c (add_method_1): Likewise.
43 (java_treetreehash_new): Likewise.
44
45 * java-tree.h (struct lang_type): Add variable_size GTY option.
46 (struct lang_decl): Likewise.
47
48 * jch.h (struct cpool_entry): Likewise.
49
50 * java-tree.h (java_treetreehash_create): Remove parameter ggc.
51
52 * except.c (prepare_eh_table_type): Update
53 java_treetreehash_create call.
54
55 * class.c (add_method_1): Update java_treetreehash_create call.
56 (java_treetreehash_create): Remove parameter gc. Use
57 htab_create_ggc.
58
59 2010-06-04 Joseph Myers <joseph@codesourcery.com>
60
61 * jvspec.c (lang_specific_driver): Use GCC-specific formats in
62 diagnostics.
63
64 2010-05-30 Steven Bosscher <steven@gcc.gnu.org>
65
66 * except.c: Include tm.h.
67
68 2010-05-28 Joseph Myers <joseph@codesourcery.com>
69
70 * jvspec.c (lang_specific_driver): Use fatal_error instead of
71 fatal. Use warning instead of error for warnings.
72
73 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
74
75 * expr.c (get_symbol_table_index): Add spaces in expression.
76
77 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
78
79 * java-tree.h (method_entry): Declare. Declare VECs containing it.
80 (struct lang_type): Change type of otable_methods, atable_methods, and
81 itable_methods to VECs. Fix comment for atable_methods.
82 (emit_symbol_table): Take a VEC instead of a tree.
83 (get_symbol_table_index): Take a VEC * instead of a tree *.
84 * class.c (add_table_and_syms): Take a VEC instead of a tree.
85 (emit_symbol_table): Update for changed parameter type.
86 * expr.c (get_symbol_table_index): Likewise.
87
88 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
89
90 * buildings.c: Pretend to be a backend file by undefining
91 IN_GCC_FRONTEND (still need rtl.h here).
92
93 2010-05-26 Nathan Froyd <froydnj@codesourcery.com>
94
95 * java-tree.h (struct lang_decl_func): Change type of throws_list
96 field to a VEC.
97 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): Adjust for changed type
98 of DECL_FUNCTION_THROWS.
99 * class.c (make_method_value): Likewise.
100
101 2010-05-26 Nathan Froyd <froydnj@codesourcery.com>
102
103 * class.c (utf8_decl_list): Delete.
104 (build_utf8_ref): Remove references to it.
105 * java-tree.h (all_class_list): Delete.
106 (predef_filenames): Delete.
107 (enum java_tree_index) [JTI ALL_CLASS_LIST,JTI_PREDEF_FILENAMES]:
108 Delete.
109 * jcf-parse.c (parse_roots): Decrease size to 2.
110 (current_file_list): Convert to a VEC.
111 (all_class_list): Declare.
112 (jcf_parse): Adjust for new type of all_class_list.
113 (java_layout_seen_class_methods): Likewise.
114 (predefined_filenames): Declare.
115 (add_predefined_file): Use it.
116 (predefined_filename_p): Likewise.
117 (java_parse_file): Adjust for new type of current_file_list. *
118
119 2010-05-25 Jakub Jelinek <jakub@redhat.com>
120
121 * lang.c (java_classify_record): Return RECORD_IS_INTERFACE
122 for interfaces.
123
124 PR debug/43260
125 * java-tree.h (pending_static_fields): New extern declaration.
126 (java_write_globals): New prototype.
127 * lang.c (LANG_HOOKS_WRITE_GLOBALS): Define.
128 * decl.c (java_mark_class_local): When clearing DECL_EXTERNAL
129 of a static field push it into pending_static_fields vector.
130 * class.c (pending_static_fields): New variable.
131 (add_field): If static field is not DECL_EXTERNAL, push it into
132 pending_static_fields vector.
133 (java_write_globals): New function.
134
135 2010-05-24 Nathan Froyd <froydnj@codesourcery.com>
136
137 * expr.c (quick_stack): Change type to a VEC. Update comment.
138 (tree_list_free_list): Delete.
139 (flush_quick_stack): Update for quick_stack type change.
140 (push_value): Likewise.
141 (pop_value): Likewise.
142
143 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
144
145 * java-gimplify.c: Do not include tm.h, toplev.h.
146 * typeck.c: Do not include tm.h.
147 * mangle_name.c: Do not include tm.h.
148 * jcf-dump.c: Do not include tm.h, ggc.h.
149 * class.c: Do not include rtl.h, tm_p.h, target.h, except.h, cgraph.h.
150 * decl.c: Do not include tm.h, rtl.h, function.h, expr.h, except.h,
151 and timevar.h.
152 * jcf-parse.c: Do not include tm.h and tm_p.h.
153 * resource.c: Do not include tm.h, rtl.h, flags.h, obstack.h,
154 target.h, and expr.h.
155 * except.c: Do not include tm.h, rtl.h, function.h.
156 * builtins.c: Do not include convert.h. Explain why RTL headers
157 have to be included here.
158 * verify-glue.c: Do not include tm.h.
159 * jcf-depend.c: Do not include tm.h.
160 * jcf-reader.c: Include ggc.h.
161 * jcf-io.c: Do not include tm.h, toplev.h.
162 * expr.c: Do not include tm.h, rtl.h, expr.h, except.h, tm_p.h,
163 gimple.h.
164 * lang.c: Do not include rtl.h, expr.h.
165 * Make-lang.in: Update dependencies.
166
167 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
168
169 * jcf-parse.c: Include bitmap.h.
170 * Make-lang.in: Update dependencies.
171
172 2010-05-20 Jakub Jelinek <jakub@redhat.com>
173
174 PR debug/43521
175 * decl.c (start_java_method): Set DECL_ARTIFICIAL on the 'this'
176 PARM_DECL.
177
178 2010-05-19 Anatoly Sokolov <aesok@post.ru>
179
180 * jcf-parse.c (get_constant): Use double_int_to_tree instead of
181 build_int_cst_wide_type.
182
183 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
184
185 * expr.c (pop_arguments): Fix use of undeclared variable.
186
187 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
188
189 * expr.c (expand_java_multianewarray): Use build_call_vec instead of
190 build_call_list.
191 (pop_arguments): Return a VEC instead of a tree. Take a method type
192 rather than a list of argument types.
193 (rewrite_rule): Change signature. of rewrite_arglist member.
194 (rewrite_arglist_getcaller): Update signature.
195 (rewrite_arglist_getclass): Likewise.
196 (maybe_rewrite_invocation): Update for rewrite_arglist change.
197 (build_known_method_ref): Take a VEC instead of a tree.
198 (invoke_build_dtable): Likewise.
199 (expand_invoke): Update calls to pop_arguments. Use build_call_vec
200 instead of build_call_list.
201 (build_jni_stub): Use build_call_vec instead of build_call_list.
202 * java-tree.h (maybe_rewrite_invocation): Update declaration.
203 (build_known_method_ref): Likewise.
204 (invoke_build_dtable): Likewise.
205
206 2010-05-14 Nathan Froyd <froydnj@codesourcery.com>
207
208 PR 44103
209 * java-tree.h (START_RECORD_CONSTRUCTOR): Change first argument to a
210 vector. Move call to build_constructor...
211 (FINISH_RECORD_CONSTRUCTOR): ...here. Add necessary arguments. Clear
212 TREE_CONSTANT on the constructor.
213 (PUSH_SUPER_VALUE): Change first argument to a vector.
214 (PUSH_FIELD_VALUE): Likewise.
215 * resource.c (compile_resource_data): Update calls to above macros.
216 * constants.c (build_constants_constructor): Likewise.
217 * class.c (build_utf8_ref): Likewise.
218 (make_field_value): Likewise.
219 (make_method_value): Likewise.
220 (add_table_and_syms): New function.
221 (make_class_data): Call it. Update calls to above macros.
222 (build_symbol_table_entry): New function.
223 (build_symbol_entry): Call it. Update calls to above macros.
224 (emit_symbol_table): Likewise.
225 (make_catch_class_record): Update calls to above macros.
226 (build_assertion_table_entry): New function.
227 (add_assertion_table_entry): Call it.
228 (emit_assertion_table): Likewise.
229
230 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
231
232 PR 40989
233 * lang.c (java_handle_option): Add argument kind.
234
235 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
236
237 * decl.c (java_init_decl_processing): Remove argument in call to
238 initialize_sizetypes
239
240 2010-04-07 Jakub Jelinek <jakub@redhat.com>
241
242 * exception.cc (_Jv_Throw): Avoid set but not used warning.
243 * include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
244 sizeof to avoid set but not used warnings.
245
246 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
247
248 * lang.c (java_post_options): Constify variable "dot".
249
250 * jcf-parse.c (set_source_filename): Constify variable "dot".
251 (load_class): Constify variable "separator".
252 Use get_identifier_with_length.
253
254 * jvspec.c (lang_specific_driver): Constify two variables named "p".
255
256 2010-01-09 Jakub Jelinek <jakub@redhat.com>
257
258 * jcf-dump.c (version): Update copyright notice dates.
259
260 2009-11-28 Jakub Jelinek <jakub@redhat.com>
261
262 * jvspec.c (lang_specific_driver): Remove unused
263 saw_verbose_flag variable.
264 * jcf-dump.c (main): Remove unused general_purpose_bits
265 variable.
266 * builtins.c (initialize_builtins): Remove unused float_ftype_float
267 variable.
268 * expr.c (java_stack_pop): Remove unused val variable.
269 (build_jni_stub): Remove unused res_type variable.
270 * verify-impl.c (check_field_constant): Remove unused len variable.
271
272 2009-10-20 Joel Dice <dicej@mailsnare.net>
273
274 PR java/28474
275 * mangle_name.c (append_unicode_mangled_name): Fix mangling
276 of names with multiple underscores and "U".
277 (unicode_mangling_length): Likewise.
278
279 2009-10-03 Simon Baldwin <simonb@google.com>
280
281 * config-lang.in (lang_dirs): Remove zlib.
282
283 2009-09-28 Richard Henderson <rth@redhat.com>
284
285 * builtins.c (initialize_builtins): Update call to
286 build_common_builtin_nodes.
287 * lang.c (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
288
289 2009-09-14 Richard Henderson <rth@redhat.com>
290
291 * builtins.c (initialize_builtins): Update call to
292 build_common_builtin_nodes.
293 * decl.c (java_init_decl_processing): Don't call
294 default_init_unwind_resume_libfunc.
295 * except.c: Include tree-iterator.h.
296 (build_exception_object_var): New.
297 (build_exception_object_ref): Use it.
298 (expand_end_java_handler): Initialize it from __builtin_eh_pointer.
299 Attach all CATCH_EXPRs to a single TRY_CATCH_EXPR.
300 * java-tree.h (DECL_FUNCTION_EXC_OBJ): New.
301
302 2009-09-13 Richard Guenther <rguenther@suse.de>
303 Rafael Avila de Espindola <espindola@google.com>
304
305 * decl.c (do_nothing): Remove.
306 (java_init_decl_processing): Do not set lang_eh_runtime_type.
307 * Make-lang.in (lang.o): Add $(EXCEPT_H) dependency.
308 * lang.c (java_eh_personality): New.
309 (java_eh_personality_decl): Likewise.
310 (LANG_HOOKS_EH_PERSONALITY): Define.
311
312 2009-09-03 Diego Novillo <dnovillo@google.com>
313
314 * lang.c (lang_hooks): Remove const qualifier.
315
316 2009-09-01 Jakub Jelinek <jakub@redhat.com>
317
318 * boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT
319 type.
320
321 2009-09-01 Richard Guenther <rguenther@suse.de>
322
323 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
324 * java-tree.h (java_mark_addressable): Likewise.
325 * typeck.c (java_mark_addressable): Likewise.
326
327 2009-08-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
328
329 * Make-lang.in (java.install-pdf): Install gcj.pdf in
330 $(pdfdir)/gcc, alongside the other manuals.
331
332 2009-08-12 Andrew Haley <aph@redhat.com>
333
334 * builtins.c (compareAndSwapInt_builtin): Use
335 flag_use_atomic_builtins.
336 (compareAndSwapLong_builtin): Likewise.
337 (compareAndSwapObject_builtin): Likewise.
338 * jvspec.c: Add flag_use_atomic_builtins.
339 * gcj.texi: Likewise.
340 * java-tree.h: Likewise.
341 * lang.opt: Likewise.
342
343 2009-08-11 Dodji Seketeli <dodji@redhat.com>
344
345 PR debug/40990
346 * lang.c (put_decl_node): Outputs different level of information
347 depending on the verbosity level.
348
349 2009-07-31 Andrew Haley <aph@redhat.com>
350
351 PR java/40867
352 * decl.c (java_replace_references): Set EXPR_LOCATION on all
353 generated expressions.
354 (binding_level.loc): new field.
355 (clear_binding_level): Initialize loc.
356 (set_input_location): New function.
357 (pushlevel): Set new binding_level.loc.
358 (poplevel): Set EXPR_LOCATION on the new BIND_EXPR_BODY.
359 (start_java_method): Set DECL_SOURCE_LOCATION of this new method.
360 (java_add_stmt): Set the EXPR_LOCATION on all subtrees of new_stmt.
361
362 2009-07-17 Richard Guenther <rguenther@suse.de>
363
364 PR c/40401
365 * java-gimplify.c (java_genericize): Do not gimplify here.
366 But replace all local references.
367 (java_gimplify_expr): Do not replace local references here.
368 (java_gimplify_modify_expr): Likewise.
369 * jcf-parse.c (java_parse_file): Do not finalize the CU or
370 optimize the cgraph here.
371 * decl.c (java_replace_reference): Make static.
372 (java_replace_references): New function.
373 (end_java_method): Clear base_decl_map.
374 * java-tree.h (java_replace_references): Declare.
375 (java_replace_reference): Remove.
376
377 2009-07-14 Taras Glek <tglek@mozilla.com>
378 Rafael Espindola <espindola@google.com>
379
380 * Make-lang.in (java.install-plugin): New target for
381 installing plugin headers.
382
383 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
384
385 * class.c: Replace %J by an explicit location. Update all calls.
386
387 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
388
389 * jcf-parse.c: Replace %H by an explicit location. Update all calls.
390
391 2009-06-29 Andrew Haley <aph@redhat.com>
392
393 PR java/40590
394 * java-tree.h (cxx_keyword_p): New declaration.
395 * mangle_name.c (utf8_cmp): Move here from mangle.c.
396 (cxx_keywords): Likewise.
397 (cxx_keyword_p): Likewise.
398 (MANGLE_CXX_KEYWORDS): New macro.
399 (append_gpp_mangled_name): Use MANGLE_CXX_KEYWORDS.
400 (append_gpp_mangled_name): Likewise.
401 * mangle.c: Move code to mangle_name.c.
402 (mangle_member_name): Don't call cxx_keyword_p.
403
404 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
405
406 * java-gimplify.c (java_gimplify_block): New argument to
407 build_empty_stmt.
408 * expr.c (force_evaluation_order): Same.
409 * typeck.c: Add location to build_decl or PUSH_FIELD calls.
410 * class.c: Same.
411 * decl.c: Same.
412 * jcf-parse.c: Same.
413 * constants.c: Same.
414 * resource.c: Same.
415 * except.c: Same.
416 * builtins.c: Same.
417 * expr.c: Same.
418 * java-tree.h (PUSH_FIELD): Add location field.
419
420 2009-06-09 Ian Lance Taylor <iant@google.com>
421
422 * verify.h: Remove extern "C".
423
424 2009-06-07 Ian Lance Taylor <iant@google.com>
425
426 * jcf-parse.c (handle_constant): Change local variable 'kind' to
427 unsigned int.
428
429 2009-06-01 Ian Lance Taylor <iant@google.com>
430
431 * jcf-io.c (find_class): Use CONST_CAST.
432
433 2009-05-27 Ian Lance Taylor <iant@google.com>
434
435 * Make-lang.in ($(XGCJ)$(exeext)): Change $(COMPILER) to
436 $(LINKER).
437 (jc1$(exeext), jcf-dump$(exeext), jvgenmain$(exeext)): Likewise.
438
439 2009-05-26 Ian Lance Taylor <iant@google.com>
440
441 * Make-lang.in (jvspec.o): Use $(COMPILER).
442 ($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise.
443 (jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise.
444
445 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
446
447 * Make-lang.in (GCJ): Renamed to...
448 (XGCJ): ... this.
449
450 2009-04-27 Ian Lance Taylor <iant@google.com>
451
452 * builtins.c (java_builtins): Add casts to enum type.
453 * verify-impl.c (check_class_constant): Add cast to enum type.
454 (check_constant, check_wide_constant): Likewise.
455
456 2009-04-27 Richard Guenther <rguenther@suse.de>
457
458 PR java/38374
459 * constants.c (build_constants_constructor): Retain the old
460 pointer type as valid TYPE_POINTER_TO after patching the
461 type of the constant pool decl.
462
463 2009-04-24 Ian Lance Taylor <iant@google.com>
464
465 * jcf-parse.c (handle_constant): Add cast to enum type.
466
467 2009-04-21 Taras Glek <tglek@mozilla.com>
468
469 * builtins.c: Update GTY annotations to new syntax
470 * decl.c: Likewise
471 * java-tree.h: Likewise
472 * jcf.h: Likewise
473 * lang.c: Likewise
474
475 2009-04-21 Joseph Myers <joseph@codesourcery.com>
476
477 * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
478 license notices.
479
480 2009-04-18 Ian Lance Taylor <iant@google.com>
481
482 * verify-impl.c (verify_instructions_0): Add cast to enum type.
483
484 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
485
486 * builtins.c (compareAndSwapLong_builtin,
487 compareAndSwapInt_builtin, compareAndSwapObject_builtin,
488 VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc.
489
490 2009-03-31 Richard Guenther <rguenther@suse.de>
491
492 * java-gimplify.c (java_gimplify_expr): Do not manually gimplify
493 the first operand of binary and comaprison expressions.
494
495 2009-03-30 Joseph Myers <joseph@codesourcery.com>
496
497 PR rtl-optimization/323
498 * lang.c (java_post_options): Set flag_excess_precision_cmdline.
499 Give an error for -fexcess-precision=standard for processors where
500 the option is significant.
501
502 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
503
504 * lang.opt: Unify help text for -Wdeprecated.
505
506 2009-02-03 Jakub Jelinek <jakub@redhat.com>
507
508 * jcf-dump.c (version): Update copyright notice dates.
509
510 2009-01-16 Richard Guenther <rguenther@suse.de>
511
512 PR tree-optimization/38835
513 PR middle-end/36227
514 * builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR.
515
516 2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
517
518 PR bootstrap/38262
519 * Make-lang.in (jc1): Add BACKENDLIBS, remove GMPLIBS.
520
521 2008-11-04 Andrew Haley <aph@redhat.com>
522
523 PR java/37068
524 * jcf-parse.c (java_emit_static_constructor): Don't call
525 cgraph_build_static_cdtor. Rewrite.
526
527 2008-10-24 Jakub Jelinek <jakub@redhat.com>
528
529 * Make-lang.in (check-java-subtargets): New target.
530
531 2008-10-16 David Edelsohn <edelsohn@gnu.org>
532
533 PR target/35483
534 * Make-lang.in (class.o): Depend on $(TM_P_H).
535 (expr.o): Same.
536 * class.c: Include tm_p.h.
537 * expr.c: Include tm_p.h.
538
539 2008-10-14 Andrew Haley <aph@redhat.com>
540
541 * constants.c (build_constant_data_ref): Make sure we only build
542 one copy of the decl for the constant pool.
543
544 2008-09-22 Andrew Haley <aph@redhat.com>
545
546 * expr.c (rules): Add new rule for
547 gnu.java.lang.VMCPStringBuilder.toString.
548 (rewrite_rule.new_classname): New field.
549 (maybe_rewrite_invocation): Use new_classname field instead of
550 DECL_CONTEXT (*method_p).
551 Allow rewrite_arglist to be NULL.
552
553 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
554
555 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
556 (java_get_callee_fndecl): Kill.
557
558 2008-09-17 Jan Hubicka <jh@suse.cz>
559
560 PR c++/18071
561 * class.c (add_method_1): Do not initialize DECL_INLINE.
562 (make_local_function_alias): Likewise.
563 * expr.c (rewrite_arglist_getcaller): Set DECL_UNINLINABLE.
564 * lang.c (java_decl_ok_for_sibcall): Use DECL_UNINLINABLE.
565
566 2008-09-09 Richard Guenther <rguenther@suse.de>
567
568 * decl.c (build_result_decl): Remove no longer applicable
569 promotion.
570
571 2008-09-05 David Daney <ddaney@avtrex.com>
572
573 * gcj.texi (-freduced-reflection): Clarify option's restrictions.
574
575 2008-08-21 David Daney <ddaney@avtrex.com>
576
577 * class.c (make_class_data): Don't add field_index when
578 flag_reduced_reflection set.
579
580 2008-08-12 Ulrich Weigand <uweigand@de.ibm.com>
581
582 * typeck.c (convert): Do not check for TARGET_FLOAT_FORMAT.
583
584 2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
585
586 PR 28875
587 * lang.c (java_handle_option): Replace set_Wunused with
588 warn_unused.
589
590 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
591
592 * gcj.texi: Update copyright years. Do not list GPL as
593 Invariant Section.
594
595 2008-07-29 Jakub Jelinek <jakub@redhat.com>
596
597 * class.c (build_utf8_ref): Set DECL_SIZE and DECL_SIZE_UNIT
598 from ctype's sizes.
599
600 * class.c (build_utf8_ref): Pad initializer string to utf8const_type's
601 alignment.
602
603 2008-07-29 Jan Hubicka <jh@suse.cz>
604
605 * lang.c (java_post_options): Remove handling of flag_no_inline.
606
607 2008-07-28 Richard Guenther <rguenther@suse.de>
608
609 Merge from gimple-tuples-branch.
610
611 2008-07-18 Richard Guenther <rguenther@suse.de>
612
613 * expr.c: Include tree-iterator.h.
614 * Make-lang.in (expr.o): Add tree-iterator.h dependency.
615
616 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
617
618 * java-gimplify.c: Include gimple.h instead of tree-gimple.h.
619 * expr.c: Same.
620
621 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
622
623 * java-gimplify.c (java_gimplify_expr): Same.
624 (java_gimplify_modify_expr): Same.
625 * java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN.
626
627 2008-05-02 Diego Novillo <dnovillo@google.com>
628
629 * expr.c (build_java_throw_out_of_bounds_exception): Fix
630 mixed declarations and code.
631
632 2008-05-02 Doug Kwan <dougkwan@google.com>
633
634 * expr.c (build_java_throw_out_of_bounds_exception ): Wrap call to
635 _Jv_ThrowBadArrayIndex with a COMPOUND_EXPR to return 0.
636
637 2008-02-19 Diego Novillo <dnovillo@google.com>
638
639 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
640
641 * java-gimplify.c (java_gimplify_self_mod_expr): Change
642 gimple_seq arguments to gimple_seq *. Update all users.
643
644 2007-11-26 Aldy Hernandez <aldyh@redhat.com>
645
646 * java-gimplify.c (java_gimplify_expr): Make pre_p and post_p
647 sequences.
648 (java_gimplify_self_mod_expr): Same.
649 * java-tree.h (java_gimplify_expr): Make pre_p and post_p
650 sequences.
651
652 2008-07-24 Jan Hubicka <jh@suse.cz>
653
654 * java/decl.c: Include cgraph.h
655 (end_java_method): Remove non-unit-at-a-time code.
656 (java_mark_decl_local): Likewise; sanity check that we don't touch
657 finalized nodes.
658
659 2008-07-15 Jan Hubicka <jh@suse.cz>
660
661 * lang.c (java_init_options): Enable unit-at-a-time by default.
662
663 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
664
665 * Make-lang.in (jvspec.o): Fix dependencies.
666
667 2008-07-06 Tom Tromey <tromey@redhat.com>
668
669 * Make-lang.in (java/parse.o-warn): Remove.
670 (java/jcf-io.o-warn): Remove.
671
672 2008-07-05 Tom Tromey <tromey@redhat.com>
673
674 * jcf-io.c: Don't include fnmatch.h. Don't use JCF_USE_SCANDIR.
675 (compare_path): Remove.
676 (java_or_class_file): Likewise.
677 (memoized_dirlist_entry): Likewise.
678 (memoized_dirlist_hash): Likewise.
679 (memoized_dirlist_lookup_eq): Likewise.
680 (memoized_dirlists): Likewise.
681 (caching_stat): Likewise.
682 (find_class): Use stat.
683 * jcf.h (JCF_USE_SCANDIR): Remove.
684
685 2008-06-30 Joshua Sumali <jsumali@redhat.com>
686
687 * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and
688 doc/rebuild-gcj-db.1
689 (java.uninstall): Likewise.
690 (java.maintainer-clean): Likewise.
691 (aot-compile.pod): New rule.
692 (rebuild-gcj-db.pod): New rule.
693 (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1
694 * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db.
695
696 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
697
698 * Make-lang.in (java/jcf-io.o-warn): New.
699
700 2008-06-24 Tom Tromey <tromey@redhat.com>
701
702 * jcf-path.c (jcf_path_init): Don't name variable 'try'.
703 * expr.c (add_type_assertion): Rename argument.
704 (build_java_arrayaccess): Don't name variable 'throw'.
705 (ARRAY_NEW_MULTI): Don't name variable 'class'.
706 * jcf-io.c (find_class): Don't name variable 'class'.
707 * mangle.c (compression_table_add): Don't name variable 'new'.
708 * constants.c (cpool_for_class): Rename argument.
709 (alloc_constant_fieldref): Likewise.
710 * jcf-parse.c (handle_innerclass_attribute): Don't name variable
711 'class'.
712 (read_class): Likewise.
713 (parse_zip_file_entries): Likewise.
714 (process_zip_dir): Likewise.
715 * decl.c (java_mark_class_local): Rename argument.
716 * class.c (GEN_TABLE): Use type_name, not typename.
717 (gen_indirect_dispatch_tables): Likewise.
718 (add_field): Rename argument.
719 (is_compiled_class): Likewise.
720 (safe_layout_class): Likewise.
721 (emit_assertion_table): Likewise.
722 * typeck.c (has_method): Rename argument.
723
724 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
725
726 * class.c (ident_subst, mangled_classname, unmangle_classname,
727 gen_indirect_dispatch_tables, add_method_1,
728 build_fieldref_cache_entry, make_local_function_alias,
729 layout_class, java_treetreehash_find, java_treetreehash_new,
730 split_qualified_name): Fix for -Wc++-compat.
731 * constants.c (set_constant_entry, cpool_for_class): Likewise.
732 * decl.c (make_binding_level, java_dup_lang_specific_decl,
733 start_java_method): Likewise.
734 * except.c (prepare_eh_table_type): Likewise.
735 * expr.c (type_assertion_hash, note_instructions): Likewise.
736 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC,
737 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
738 * jcf-io.c (jcf_filbuf_from_stdio, opendir_in_zip, find_class):
739 Likewise.
740 * jcf-parse.c (reverse, java_read_sourcefilenames,
741 annotation_grow, rewrite_reflection_indexes, java_parse_file,
742 process_zip_dir): Likewise.
743 * jcf-path.c (add_entry, add_path, jcf_path_init,
744 jcf_path_extdirs_arg): Likewise.
745 * jcf-reader.c (jcf_parse_constant_pool): Likewise.
746 * jvgenmain.c (do_mangle_classname): Likewise.
747 * lang.c (put_decl_string): Likewise.
748 * verify-impl.c (make_state_copy, make_state, add_new_state):
749 Likewise.
750
751 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
752
753 * gcj.texi: Expand TABs, remove whitespace from blank lines.
754
755 2008-06-14 Tom Tromey <tromey@redhat.com>
756
757 PR java/36247:
758 * class.c (build_class_ref): Initialize this_classdollar when
759 needed.
760
761 2008-05-23 Andrew Haley <aph@redhat.com>
762
763 * jcf-parse.c (give_name_to_class): Call find_sourcefile to find full
764 pathname of source file.
765
766 2008-05-12 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
767
768 * jcf-dump.c (print_constant): Use
769 HOST_LONG_LONG_FORMAT.
770
771 2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
772
773 * decl.c (java_init_decl_processing): Change DECL_IS_PURE to
774 DECL_PURE_P.
775
776 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
777
778 * class.c (build_utf8_ref): Don't set TREE_INVARIANT.
779 (build_classdollar_field): Don't set TREE_INVARIANT.
780 (get_dispatch_table): Don't set TREE_INVARIANT.
781 (make_class_data): Don't set TREE_INVARIANT.
782 (build_symbol_entry): Don't set TREE_INVARIANT.
783 (emit_symbol_table): Don't set TREE_INVARIANT.
784 * constants.c (build_constant_data_ref): Don't set TREE_INVARIANT.
785 (build_ref_from_constant_pool): Don't set TREE_INVARIANT.
786 * resource.c (compile_resource_data): Don't set TREE_INVARIANT.
787 * expr.c (cache_cpool_data_ref): Don't set TREE_INVARIANT.
788
789 2008-04-03 Tom Tromey <tromey@redhat.com>
790
791 * Make-lang.in (java_OBJS): New variable.
792
793 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
794
795 * java-tree.h (insert_block): Kill.
796 * decl.c (insert_block): Kill.
797
798 2008-04-01 Joseph Myers <joseph@codesourcery.com>
799
800 * gcj.texi: Include gpl_v3.texi instead of gpl.texi
801 * Make-lang.in (TEXI_JAVA_FILES): Include gpl_v3.texi instead of
802 gpl.texi.
803
804 2008-03-27 Tom Tromey <tromey@redhat.com>
805
806 * Make-lang.in: Revert automatic dependency patch.
807
808 2008-03-25 Tom Tromey <tromey@redhat.com>
809
810 * Make-lang.in: Removed most explicit .o targets.
811 (java/jvspec.o): Reduce to variable setting. Moved to java/.
812 ($(GCJ)$(exeext)): Update.
813 (JAVA_OBJS): New variable.
814 (JCFDUMP_OBJS): Reformat.
815 (java_OBJS): New variable.
816 (java/jvspec.o-warn): Update.
817 (java/parse.o-warn): Remove.
818 (JAVA_TREE_H): Remove.
819 (java/jcf-io.o): Reduce to variable setting.
820 (ALL_CPPFLAGS): Likewise.
821
822 2008-03-12 Paolo Bonzini <bonzini@gnu.org>
823
824 * mangle.c (java_mangle_decl): Remove dead check.
825
826 2008-03-11 Paolo Bonzini <bonzini@gnu.org>
827
828 * jcf-parse.c (java_parse_file): Assert binding levels are
829 left in order.
830 * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack):
831 Delete.
832
833 2008-03-02 Jakub Jelinek <jakub@redhat.com>
834
835 * jcf-dump.c (version): Update copyright notice dates.
836
837 2008-02-29 Tom Tromey <tromey@redhat.com>
838
839 * expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on
840 method.
841 * java-tree.h (struct lang_decl_func): Remove obsolete comment.
842
843 2008-02-26 Tom Tromey <tromey@redhat.com>
844
845 * lang.c (java_post_options): Remove conditional.
846 * expr.c (expand_byte_code): Remove old location code.
847 * jcf-parse.c (set_source_filename): Remove old location code.
848 (give_name_to_class): Likewise.
849 (jcf_parse): Likewise.
850 (duplicate_class_warning): Likewise.
851 (parse_class_file): Likewise.
852 (java_parse_file): Likewise.
853 * decl.c (finish_method): Remove old location code.
854 * class.c (push_class): Remove old location code.
855
856 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
857
858 PR other/35107
859 * Make-lang.in (jc1): Add $(GMPLIBS).
860
861 2008-01-23 David Daney <ddaney@avtrex.com>
862
863 * class.c (hide) Rename to...
864 (java_hide_decl) ... this throughout, and make public.
865 * resource.c (Jr_count): Remove.
866 (compile_resource_data): Call java_mangle_resource_name to generate
867 decl name. Make resource decl public and hidden.
868 * mangle.c (java_mangle_resource_name): New function.
869 * java-tree.h (java_hide_decl, java_mangle_resource_name): Declare
870 functions.
871
872 2008-01-04 Andrew Haley <aph@redhat.com>
873
874 PR java/17779
875 * jcf-parse.c (parse_zip_file_entries): Move decl to compile on
876 C90.
877
878 2008-01-03 Andrew Haley <aph@redhat.com>
879
880 PR java/17779
881 * jcf-parse.c (parse_zip_file_entries): Unset TYPE_ALIAS_SET if
882 we're about to re-layout the type.
883
884 2007-12-20 Alexandre Oliva <aoliva@redhat.com>
885
886 * lang.c (java_classify_record): Don't return
887 RECORD_IS_INTERFACE for now.
888
889 2007-12-18 Andrew Haley <aph@redhat.com>
890
891 PR java/27643
892 * jcf-parse.c (java_parse_file): Remove call to
893 java_mark_class_local.
894 (parse_class_file): Reinstate call to java_mark_class_local here.
895 * decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
896 already set, call java_mangle_decl() and make_decl_rtl() to
897 rewrite its name as a hidden alias.
898
899 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
900
901 PR debug/7081
902 * lang.c (java_classify_record): New.
903 (LANG_HOOKS_CLASSIFY_RECORD): Override.
904
905 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
906
907 PR 34081/C++
908 * decl.c (finish_method): Pass 'false' for the new
909 allocate_struct_function parameter.
910
911 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
912
913 * expr.c (build_jni_stub): Use the computed jni func type for
914 variable meth.
915
916 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
917
918 * class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID.
919
920 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
921
922 * expr.c (type_assertion_hash): Hash type uids rather than
923 tree pointers.
924
925 2007-11-17 David Daney <ddaney@avtrex.com>
926 Andrew Haley <aph@redhat.com>
927
928 * constants.c (build_constants_constructor): Use POINTER_SIZE
929 insead of BITS_PER_WORD in big-endian work around.
930
931 2007-11-07 Tom Tromey <tromey@redhat.com>
932
933 PR java/34019:
934 * gcj.texi (Input Options): Add missing noun.
935
936 2007-11-02 Tom Tromey <tromey@redhat.com>
937
938 PR java/33765:
939 * jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files.
940 * zipfile.h (ZIPEMPTYMAGIC): New define.
941
942 2007-11-01 Tom Tromey <tromey@redhat.com>
943
944 * Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
945 (java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h.
946 (java/jcf-io.o): Depend on zipfile.h.
947
948 2007-10-17 Richard Guenther <rguenther@suse.de>
949
950 * Make-lang.in (java/builtins.o): Add $(OPTABS_H) and $(EXPR_H)
951 dependencies.
952
953 2007-10-03 Andrew Haley <aph@redhat.com>
954
955 PR java/33639
956 * class.c (mangled_classname): Detect and replace illegal
957 characters in assembly language symbols.
958 (gen_indirect_dispatch_tables): Call mangled_classname() on
959 the type.
960
961 2007-09-27 Jakub Jelinek <jakub@redhat.com>
962
963 * lang.c (java_print_error_function): Add third argument.
964
965 2007-09-15 Tom Tromey <tromey@redhat.com>
966
967 * java-tree.h (struct lang_decl_func) <function_decl_body>:
968 Remove.
969 <init_final>: Likewise.
970 * lang.c (java_dump_tree): Update.
971 * java-tree.h (DECL_FUNCTION_BODY): Remove.
972
973 2007-09-11 Jan Hubicka <jh@suse.cz>
974
975 * decl.c (java_expand_body): Kill.
976 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
977
978 2007-09-06 Tom Tromey <tromey@redhat.com>
979
980 * jcf-parse.c (parse_class_file): Re-enter the current file.
981
982 2007-09-07 Roman Zippel <zippel@linux-m68k.org>
983
984 * boehm.c (mark_reference_fields): Move misaligned pointer check
985 after JREFERENCE_TYPE_P test
986
987 2007-09-06 Roman Zippel <zippel@linux-m68k.org>
988
989 * boehm.c (mark_reference_fields): Don't use bitmap as gc_descr
990 if pointer is misaligned.
991
992 2007-09-06 Tom Tromey <tromey@redhat.com>
993
994 * lang.c (java_post_options): Update.
995 * jcf-parse.c (set_source_filename): Update.
996 (give_name_to_class): Update.
997 (jcf_parse): Update.
998 (duplicate_class_warning): Update.
999 (parse_class_file): Update.
1000 (java_parse_file): Update.
1001 * expr.c (expand_byte_code): Update.
1002
1003 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
1004
1005 * decl.c (finish_method): Use set_cfun.
1006
1007 2007-09-04 Andrew Haley <aph@redhat.com>
1008
1009 * decl.c (java_init_decl_processing): Call "__cxa_end_cleanup"
1010 when using the ARM EABI.
1011
1012 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
1013
1014 * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB.
1015
1016 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1017
1018 * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
1019 CONST_CAST.
1020 * jcf.h (JCF_FINISH): Likewise.
1021
1022 2007-08-28 Tom Tromey <tromey@redhat.com>
1023
1024 * Make-lang.in (java.tags): Don't tag '*.y' files.
1025
1026 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1027
1028 * lang.c (java_decl_ok_for_sibcall): Likewise.
1029
1030 2007-08-21 Paul Brook <paul@codesourcery.com>
1031 Nathan Sidwell <nathan@codesourcery.com>
1032 Mark Mitchell <mark@codesourcery.com>
1033 Joseph Myers <joseph@codesourcery.com>
1034
1035 * jcf-dump.c (version): Use pkgversion_string. Update copyright
1036 date.
1037
1038 2007-08-20 Richard Guenther <rguenther@suse.de>
1039
1040 * lang.c (java_tree_inlining_walk_subtrees): Remove.
1041 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove.
1042
1043 2007-08-17 Tom Tromey <tromey@redhat.com>
1044
1045 * typeck.c (find_method_in_interfaces): Update.
1046 * jcf-parse.c (load_class): Update.
1047 * java-gimplify.c (java_gimplify_component_ref): Removed.
1048 (java_gimplify_modify_expr): Update. Removed pre_p and post_p
1049 arguments.
1050 (java_gimplify_expr): Update.
1051 * decl.c (java_init_decl_processing): Update.
1052 * class.c (set_constant_value): Update.
1053 (make_class_data): Update.
1054 (finish_class): Update.
1055 (build_static_field_ref): Update.
1056 (is_compiled_class): Update.
1057 (maybe_layout_super_class): Update.
1058 (layout_class): Update.
1059 (layout_class_method): Update.
1060 * java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
1061 (lang_decl_var) <am, final_iud, cif>: Removed fields.
1062 (lang_decl_func) <init_calls_this>: Removed field.
1063 (lang_type) <dot_class, verify_method>: Removed fields.
1064 (FIELD_NESTED_ACCESS): Removed.
1065 (FIELD_NESTED_ACCESS_P): Removed.
1066 (DECL_FIELD_FINAL_IUD): Removed.
1067 (DECL_LOCAL_FINAL_IUD): Removed
1068 (LOCAL_FINAL_P): Removed.
1069 (FINAL_VARIABLE_P): Removed.
1070 (CLASS_FINAL_VARIABLE_P): Removed.
1071 (DECL_BIT_INDEX): Removed.
1072 (DECL_INIT_CALLS_THIS): Removed.
1073 (FIELD_LOCAL_ALIAS): Removed.
1074 (FIELD_LOCAL_ALIAS_USED): Removed.
1075 (FIELD_THISN): Removed.
1076 (DECL_FUNCTION_INIT_TEST_CLASS): Removed.
1077 (LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
1078 (LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
1079 (TYPE_DOT_CLASS): Removed.
1080 (TYPE_VERIFY_METHOD): Removed.
1081 (ID_CLASSDOLLAR_P): Removed.
1082 (enum java_tree_index) <JTI_CLASSDOLLAR_IDENTIFIER_NODE>:
1083 Removed.
1084 (classdollar_identifier_node): Removed.
1085 (TYPE_UNKNOWN): Removed.
1086 (CLASS_FROM_SOURCE_P): Removed.
1087 * expr.c (build_jni_stub): Update.
1088 (force_evaluation_order): Update.
1089 (build_java_empty_stmt): Update.
1090 (build_class_init): Update.
1091 (java_stack_swap): Update.
1092 (build_jni_stub): Update.
1093
1094 2007-08-17 Tom Tromey <tromey@redhat.com>
1095
1096 * java-tree.h (LABEL_TYPE_STATE): Removed.
1097 (load_type_state): Removed.
1098 (LABEL_PC): Removed.
1099 (LABEL_VERIFIED): Removed.
1100 (type_states): Declare.
1101 * expr.c (type_states): New global.
1102 (load_type_state): Now static. Use type_states. Changed
1103 argument.
1104 (lookup_label): Don't set LABEL_PC.
1105 (expand_byte_code): Don't use LABEL_VERIFIED.
1106 (note_instructions): Initialize type_states.
1107 * verify-glue.c (vfy_note_stack_depth): Rewrote.
1108 (vfy_note_stack_type): Use type_states.
1109 (vfy_note_local_type): Likewise.
1110
1111 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1112
1113 * jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
1114 * jcf.h (JCF_FINISH): Likewise.
1115
1116 2007-07-31 Nick Clifton <nickc@redhat.com>
1117
1118 * java-gimplify.c: Change copyright header to refer to version 3
1119 of the GNU General Public License and to point readers at the
1120 COPYING3 file and the FSF's license web page.
1121 * typeck.c, lang-specs.h, mangle_name.c, jcf-dump.c, class.c,
1122 decl.c, config-lang.in, jcf-parse.c, constants.c, Make-lang.in,
1123 resource.c, except.c, builtins.c, jvspec.c, java-tree.def,
1124 javaop.def, jcf-path.c, verify-glue.c, jcf-depend.c, lang.opt,
1125 jcf-reader.c, mangle.c, zextract.c, jcf-io.c, jcf.h, zipfile.h,
1126 verify.h, java-except.h, win32-host.c, expr.c, jvgenmain.c,
1127 parse.h, lang.c, java-tree.h, javaop.h, boehm.c: Likewise.
1128
1129 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1130
1131 * jcf-io.c (find_class): Fix -Wcast-qual warnings.
1132
1133 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1134
1135 * lang.c (java_get_callee_fndecl): Constify.
1136
1137 2007-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1138
1139 * mangle.c (set_type_package_list): Constify.
1140 * verify-glue.c (vfy_make_string): Delete.
1141 * verify.h (vfy_make_string): Likewise.
1142
1143 2007-07-26 Tom Tromey <tromey@redhat.com>
1144
1145 * java-tree.h (push_labeled_block, pop_labeled_block): Remove.
1146 (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
1147 EXIT_BLOCK_LABELED_BLOCK): Likewise.
1148 * lang.c (java_tree_inlining_walk_subtrees): Update.
1149 (java_dump_tree): Likewise.
1150 * java-tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRY_EXPR):
1151 Remove.
1152 * decl.c (push_labeled_block, pop_labeled_block): Remove.
1153 * java-gimplify.c (java_gimplify_labeled_block_expr,
1154 java_gimplify_exit_block_expr, java_gimplify_try_expr): Remove.
1155 (java_gimplify_expr): Update.
1156
1157 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1158
1159 * class.c (java_treetreehash_hash, java_treetreehash_compare):
1160 Constify.
1161 * expr.c (type_assertion_eq): Likewise.
1162 * jcf-io.c (compare_path): Likewise.
1163 * jcf-parse.c (cmpstringp): Likewise.
1164 * verify-impl.c (get_one_type, compute_argument_types,
1165 compute_return_type): Likewise.
1166
1167 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1168
1169 PR target/32462
1170 PR libgcj/32465
1171 * class.c (hide): Wrap in HAVE_GAS_HIDDEN.
1172
1173 2007-07-12 Richard Guenther <rguenther@suse.de>
1174
1175 * expr.c (expand_java_return): RETURN_EXPR has void type.
1176 (build_jni_stub): Likewise. Use a comparison against zero
1177 for null-pointer test in COND_EXPR.
1178 (build_field_ref): Build POINTER_PLUS_EXPR with correct
1179 type. Convert result instead.
1180 (build_invokevirtual): Likewise.
1181
1182 2007-07-09 Geoffrey Keating <geoffk@apple.com>
1183
1184 PR 32617
1185 * lang.c (java_init): Remove setting of force_align_functions_log.
1186 * class.c (add_method_1): Set DECL_ALIGN of non-static method
1187 to cope with ptrmemfunc_vbit_in_pfn.
1188
1189 2007-07-03 David Daney <ddaney@avtrex.com>
1190
1191 * java/Make-lang.in (doc/gcj.info): Add $(gcc_docdir) to
1192 include path.
1193 (doc/gcj.dvi): Same.
1194 (doc/gcj.pdf): Same.
1195 (java/index.html): Same.
1196
1197 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
1198
1199 * class.c (make_class_data): Build the index in sizetype.
1200 Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
1201 adding to a pointer type.
1202 (build_symbol_entry): Likewise.
1203 * expr.c (build_java_arrayaccess): Likewise.
1204 (build_field_ref): Likewise.
1205 (build_known_method_ref): Likewise.
1206 (build_invokevirtual): Likewise.
1207 * except.c (build_exception_object_ref): Do a
1208 NEGATIVE and then a POINTER_PLUS_EXPR instead
1209 of a MINUS_EXPR.
1210
1211 2007-06-11 Rafael Ávila de Espíndola <espindola@google.com>
1212
1213 * typeck.c (java_signed_type): Remove.
1214 * lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
1215 * java-tree.h (java_signed_type): Remove.
1216
1217 2007-05-18 Geoffrey Keating <geoffk@apple.com>
1218
1219 * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx.
1220 (print_constant): Likewise.
1221
1222 2007-05-14 Rafael Ávila de Espíndola <espindola@google.com>
1223
1224 * expr.c (build_java_binop): Use unsigned_type_for instead of
1225 java_unsigned_type.
1226 * java-tree.h (java_unsigned_type): Remove.
1227 * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
1228 * typeck.c (java_unsigned_type): Remove.
1229
1230 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
1231
1232 * java-tree.h (lang_tree_node): Use GENERIC_NEXT
1233 instead of checking GIMPLE_STMT_P in chain_next.
1234
1235 2007-04-06 Colin Walters <walters@redhat.com>
1236
1237 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701
1238 * jcf-io.c (open_class): Copy 'filename'.
1239
1240 2007-04-03 Andrew Haley <aph@redhat.com>
1241
1242 * jvgenmain.c (main): Change main to use class$, not class$$.
1243 (do_mangle_classname): Likewise.
1244 * class.c (hide): New function.
1245 (add_field): Hide everything that shouldn't be visible outside a
1246 DSO.
1247 (build_static_class_ref): Likewise.
1248 (build_classdollar_field): Likewise.
1249 (make_class_data): Likewise.
1250 (layout_class_method): Likewise.
1251 * expr.c (special_method_p): New function.
1252
1253 * class.c (push_class): Don't bogusly guess the source filename.
1254 * jcf-parse.c (give_name_to_class): Don't set input_location from
1255 DECL_ARTIFICIAL decls.
1256
1257 2007-03-30 Rafael Ávila de Espíndola <espindola@google.com>
1258
1259 * typeck.c (java_signed_or_unsigned_type): Removed.
1260 (java_signed_type): use get_signed_or_unsigned_type instead of
1261 java_signed_or_unsigned_type.
1262 (java_unsigned_type): Ditto.
1263 * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Removed.
1264 * java-tree.h (java_signed_or_unsigned_type): Removed.
1265
1266 2007-03-26 Tom Tromey <tromey@redhat.com>
1267
1268 * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1.
1269 (java.maintainer-clean): Likewise.
1270 (java.install-man): Likewise.
1271 (.INTERMEDIATE): Removed grmiregistry.pod.
1272 (grmiregistry.pod): Removed.
1273 * gcj.texi (Invoking gcjh): Removed.
1274 (Invoking gjnih): Likewise.
1275 (Invoking grmiregistry): Likewise.
1276 (direntry): Updated.
1277 (Top): Likewise.
1278 (which-gcj): Removed.
1279
1280 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
1281
1282 * Make-lang.in: Add install-pdf target as copied from
1283 automake v1.10 rules.
1284
1285 2007-02-27 Brooks Moses <brooks.moses@codesourcery.com>
1286
1287 * gcj.texi: Standardize title page.
1288
1289 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
1290
1291 * class.c: Fix a comment typo.
1292
1293 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
1294 Brooks Moses <brooks.moses@codesourcery.com>
1295 Lee Millward <lee.millward@codesourcery.com>
1296
1297 * java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
1298 of build3.
1299 (BUILD_MONITOR_EXIT): Likewise.
1300
1301 * java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
1302 (java_gimplify_modify_expr): Likewise.
1303
1304 * class.c (cache_this_class_ref): Use build_call_expr.
1305 (build_static_field_ref): Likewise.
1306 (emit_indirect_register_classes): Likewise.
1307 (emit_register_classes): Likewise.
1308
1309 * resource.c (write_resource_constructor): Use build_call_expr.
1310
1311 * builtins.c (builtin_creator_function): Change interpretation of
1312 the second parameter to be the whole CALL_EXPR instead of the arglist.
1313 (max_builtin): Tweak parameter list. Use new CALL_EXPR accessors.
1314 (min_builtin): Likewise.
1315 (abs_builtin): Likewise.
1316 (java_build_function_call_expr): Likewise.
1317 (convert_real): Likewise.
1318 (UNMARSHAL3): Likewise.
1319 (UNMARSHAL4): Likewise.
1320 (UNMARSHAL5): Likewise.
1321 (build_arglist_for_builtin): Delete. Fix callers to use
1322 build_call_expr instead.
1323 (putObject_builtin): Tweak parameter list. Use new CALL_EXPR
1324 accessors.
1325 (compareAndSwapInt_builtin): Likewise.
1326 (compareAndSwapLong_builtin): Likewise.
1327 (compareAndSwapObject_builtin): Likewise.
1328 (putVolatile_builtin): Likewise.
1329 (getVolatile_builtin): Likewise.
1330 (VMSupportsCS8_builtin): Likewise.
1331 (check_for_builtin): Pass entire CALL_EXPR to builtin expander
1332 instead of arglist.
1333
1334 * expr.c (build_java_athrow): Use build_call_nary instead of build3.
1335 (build_java_throw_out_of_bounds_exception): Likewise.
1336 (java_check_reference): Likewise.
1337 (build_java_arraystore_check): Likewise.
1338 (build_newarray): Likewise.
1339 (build_anewarray): Likewise.
1340 (expand_java_multinewarray): Use build_call_list instead of build3.
1341 (build_java_monitor): Use build_call_nary instead of build3.
1342 (java_create_object): Likewise.
1343 (expand_java_NEW): Likewise.
1344 (build_instanceof): Likewise.
1345 (expand_java_CHECKCAST): Likewise.
1346 (build_java_soft_divmod): Likewise.
1347 (build_java_binop): Likewise.
1348 (build_field_ref): Likewise.
1349 (build_class_init): Likewise.
1350 (rewrite_arglist_getcaller): Use build_call_expr.
1351 (build_invokeinterface): Use build_call_nary instead of build3.
1352 (expand_invoke): Use build_call_list instead of build3.
1353 (build_jni_stub): Use build_call_nary, build_call_list, or
1354 build_call_expr instead of build3.
1355 (expand_java_field_op): Use build_call_expr instead of build3.
1356 (force_evaluation_order): Use new CALL_EXPR accessors.
1357
1358 * lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
1359
1360 2007-02-15 David Daney <ddaney@avtrex.com>
1361
1362 * Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
1363 (java.maintainer-clean):Add gc-analyze.1.
1364 (.INTERMEDIATE): Add gc-analyze.pod.
1365 (gc-analyze.pod): New rule.
1366 (java.install-man): Install gc-analyze.1
1367 * gcj.texi: Add new section for the gc-analyze program.
1368
1369 2007-02-07 Andrew Haley <aph@redhat.com>
1370
1371 * class.c (uncache_this_class_ref): New.
1372 * expr.c (build_jni_stub): Initialize the class.
1373 (expand_byte_code): Call uncache_this_class_ref after generating
1374 code.
1375
1376 2007-02-06 Tom Tromey <tromey@redhat.com>
1377
1378 PR java/30714:
1379 * jvspec.c (lang_specific_driver): Check for the '-' in '-I'.
1380
1381 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
1382
1383 * java-tree.h, javaop.def, jcf-parse.c: Fix comment typos.
1384
1385 2007-02-02 Andrew Haley <aph@redhat.com>
1386
1387 * expr.c (expand_byte_code): Call cache_this_class_ref() and
1388 cache_cpool_data_ref().
1389 Set TYPE_CPOOL_DATA_REF.
1390 (cache_cpool_data_ref): New function.
1391 * constants.c (build_ref_from_constant_pool): Remove special-case
1392 code for flag_indirect_classes.
1393 (build_constant_data_ref): Move special-case code for
1394 flag_indirect_classes here from build_ref_from_constant_pool.
1395 * decl.c (finish_method): Move class initialization from here to
1396 cache_this_class_ref.
1397 * class.c (cache_this_class_ref): New function.
1398 (build_class_ref): Use this_classdollar for the ouput class.
1399
1400 2007-02-02 David Daney <ddaney@avtrex.com>
1401
1402 * class.c (is_compiled_class): Move check to avoid reloading
1403 current class.
1404 (layout_class_method): Don't calculate DECL_EXTERNAL if it is
1405 already set.
1406
1407 2007-02-01 Andrew Haley <aph@redhat.com>
1408
1409 PR java/30641
1410 * jcf-parse.c (jcf_parse): Clear the field_offsets bitmap.
1411
1412 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
1413
1414 * class.c, jcf-parse.c: Fix comment typos.
1415
1416 2007-01-30 Tom Tromey <tromey@redhat.com>
1417
1418 * gcj.texi (Strings): Fix documentation for JvNewString.
1419
1420 2007-01-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1421
1422 * gcj.texi (Invoking gcjh, Invoking gjnih, Arrays): Fix some
1423 typos.
1424
1425 2007-01-30 Ben Elliston <bje@au.ibm.com>
1426
1427 * jvspec.c (lang_specific_driver): Remove unused classpath_args.
1428
1429 2007-01-29 Tom Tromey <tromey@redhat.com>
1430
1431 PR java/30607:
1432 * jvspec.c (lang_specific_driver): Handle separate -I argument.
1433 * lang.opt (-I): Add 'Separate'.
1434
1435 2007-01-29 Andrew Haley <aph@redhat.com>
1436
1437 * class.c (add_method_1): Mark fndecl as external unless we are
1438 compiling it into this object file.
1439
1440 2007-01-24 Andrew Haley <aph@redhat.com>
1441
1442 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a
1443 type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC.
1444
1445 2007-01-22 Andrew Haley <aph@redhat.com>
1446
1447 * builtins.c (VMSupportsCS8_builtin): New function.
1448
1449 2007-01-23 Andrew Pinski <pinskia@gmail.com>
1450
1451 PR java/30454
1452 * jcf-io.c (opendir_in_zip): Close the file
1453 and free zipf before returning after an error.
1454
1455 2007-01-16 Tom Tromey <tromey@redhat.com>
1456
1457 * java-tree.def: Added copyright header.
1458
1459 2007-01-15 Tom Tromey <tromey@redhat.com>
1460
1461 * lang.c (dump_compound_expr) <EXPR_WITH_FILE_LOCATION>: Removed
1462 case.
1463 * java-gimplify.c (java_gimplify_expr) <EXPR_WITH_FILE_LOCATION>:
1464 Removed case.
1465 * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed.
1466 (EXPR_WFL_NODE): Likewise.
1467 (EXPR_WFL_LINECOL): Likewise.
1468 (EXPR_WFL_FILENAME): Likewise.
1469 (EXPR_WFL_LINENO): Likewise.
1470 (build_expr_wfl, expr_add_location): Don't declare.
1471 (build_unknown_wfl): Removed.
1472 (EXPR_WFL_FILENAME_NODE): Removed.
1473 (EXPR_WFL_COLNO): Removed.
1474 (EXPR_WFL_SET_LINECOL): Removed.
1475 (DECL_FUNCTION_WFL): Removed.
1476 (DECL_FIELD_FINAL_WFL): Removed.
1477 (struct lang_decl_func) <wfl>: Removed field.
1478 <called_constructor>: Likewise.
1479 <inner_access>: Likewise.
1480 (struct lang_decl_var) <wfl>: Removed field.
1481 (DECL_CONSTRUCTOR_CALLS): Removed.
1482 (DECL_FUNCTION_ACCESS_DECL): Likewise.
1483 (DECL_FUNCTION_INNER_ACCESS): Likewise.
1484 (DECL_SPECIFIC_COUNT): Likewise.
1485 * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed.
1486 * expr.c (build_expr_wfl): Removed.
1487 (expr_add_location): Likewise.
1488
1489 2007-01-12 Tom Tromey <tromey@redhat.com>
1490
1491 * jcf-dump.c (main): Updated call to find_class.
1492 * lang.c (java_init): Removed dead code.
1493 * jcf-parse.c (read_class): Don't use java_source field. Removed
1494 dead code.
1495 (parse_zip_file_entries): Don't use java_source field.
1496 (process_zip_dir): Likewise.
1497 (jcf_parse): Removed dead code.
1498 (java_parse_file): Likewise.
1499 (read_class): Updated call to find_class.
1500 * jcf-io.c (find_class): Don't use java_source field. Removed
1501 'source_ok' argument, .java logic.
1502 * jcf.h (JCF) <java_source>: Removed field.
1503 (JCF_ZERO): Updated. (find_class): Updated.
1504 * decl.c: Removed dead code.
1505 * class.c: Removed dead code.
1506
1507 2007-01-11 Tom Tromey <tromey@redhat.com>
1508
1509 * typeck.c (convert): Don't use flag_emit_class_files.
1510 * lang.c (java_post_options): Don't use flag_emit_class_files.
1511 (java_handle_option): Don't use flag_extraneous_semicolon or
1512 flag_redundant.
1513 * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use
1514 flag_emit_class_files.
1515 (load_class): Likewise.
1516 * java-tree.h (flag_emit_class_files): Don't declare.
1517 (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files.
1518 (flag_extraneous_semicolon): Don't declare.
1519 (flag_not_overriding): Likewise.
1520 (flag_static_local_jdk1_1): Likewise.
1521 (flag_redundant): Likewise.
1522 * expr.c (build_newarray): Don't use flag_emit_class_files.
1523 * class.c (DEFAULT_ENABLE_ASSERT): Don't use
1524 flag_emit_class_files.
1525 (build_class_ref): Likewise.
1526 * builtins.c (check_for_builtin): Don't use
1527 flag_emit_class_files.
1528
1529 2007-01-10 Tom Tromey <tromey@redhat.com>
1530
1531 * lang.c (java_can_use_bit_fields_p): Removed.
1532 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
1533
1534 2007-01-09 Andrew Haley <aph@redhat.com>
1535
1536 * expr.c (build_java_arrayaccess): Rewrite to generate array
1537 access in canonical form.
1538 (expand_java_arraystore): Use build_fold_addr_expr() on address of
1539 array access.
1540
1541 2007-01-03 Andrew Haley <aph@redhat.com>
1542
1543 PR java/28754
1544 * expr.c (expand_java_field_op): If we're initializing a field's
1545 declaring interface we should not also initialize the class
1546 context in which it was referenced.
1547
1548 2007-01-02 Tom Tromey <tromey@redhat.com>
1549
1550 * java-tree.h (compiling_from_source, current_encoding,
1551 JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE,
1552 JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE,
1553 JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE,
1554 JTI_WFL_OPERATOR): Removed
1555 (finit_identifier_node, instinit_identifier_node,
1556 length_identifier_node, super_identifier_node,
1557 continue_identifier_node, access0_identifier_node, wfl_operator):
1558 Removed.
1559 (cyclic_inheritance_report,
1560 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND,
1561 DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR,
1562 DECL_FIXED_CONSTRUCTOR_P): Removed.
1563 (struct lang_decl_func) <smic, nap, synthetic_ctor, fixed_ctor>:
1564 Removed.
1565 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST,
1566 TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed.
1567 (struct lang_type) <finit_stmt_list, clinit_stmt_list, ii_block,
1568 import_list, import_demand_list>: Removed.
1569 (java_layout_seen_class_methods, init_jcf_parse, init_src_parse,
1570 cxx_keyword_p): Removed.
1571 (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P,
1572 TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED,
1573 CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P,
1574 IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
1575 IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT,
1576 PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P,
1577 CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P,
1578 LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR,
1579 RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P,
1580 IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER,
1581 NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P,
1582 PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
1583 CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P,
1584 CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P,
1585 FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT,
1586 BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count,
1587 java_parse_abort_on_error, extract_field_decl): Removed.
1588 (finput): Declare.
1589 * lang.c: (compiling_from_source, current_encoding): Removed.
1590 (java_handle_option): Ignore -fencoding.
1591 * parse.h: Don't include lex.h.
1592 (java_error_count, int_fits_type_p, stabilize_reference, RULE,
1593 RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW,
1594 YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
1595 INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS,
1596 INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS,
1597 MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context,
1598 ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class,
1599 CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME,
1600 OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2,
1601 BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P,
1602 JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P,
1603 JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P,
1604 IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS,
1605 MANGLE_OUTER_LOCAL_VARIABLE_NAME,
1606 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID,
1607 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING,
1608 SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
1609 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP,
1610 AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION,
1611 AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION,
1612 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
1613 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED,
1614 LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
1615 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
1616 LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK,
1617 PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS,
1618 IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE,
1619 ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER,
1620 INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE,
1621 INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL,
1622 JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS,
1623 JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE,
1624 JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct
1625 jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN,
1626 JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET,
1627 STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE,
1628 BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL,
1629 EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE,
1630 GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0,
1631 COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND,
1632 BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR,
1633 PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED,
1634 CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT,
1635 CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P,
1636 GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE,
1637 GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
1638 GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC,
1639 PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST,
1640 CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST,
1641 CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT,
1642 CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT,
1643 SET_CPC_STATIC_INITIALIZER_STMT,
1644 SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG,
1645 java_complete_class, java_check_circular_reference,
1646 java_fix_constructors, java_layout_classes, java_reorder_fields,
1647 java_method_add_stmt, java_get_line_col, reset_report,
1648 java_init_lex, yyparse, java_parse, yyerror, java_expand_classes,
1649 java_finish_classes, ctxp, ctxp_for_generation,
1650 ctxp_for_generation_last): Removed.
1651 * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR.
1652 * mangle.c (utf8_cmp): New function.
1653 (cxx_keywords): New global.
1654 (cxx_keyword_p): New function.
1655 * jvspec.c (JAVA_START_CHAR): Removed obsolete comment.
1656 * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR,
1657 NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
1658 CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR,
1659 THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT,
1660 CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed.
1661 * Make-lang.in (java.srcextra): Do nothing.
1662 (parse.c, keyword.h, gt-java-parse.h): Removed targets.
1663 (JAVA_OBJS): Don't mention deleted files.
1664 (java.mostlyclean): Likewise.
1665 (java.clean): Likewise.
1666 (JAVA_LEX_C): Removed.
1667 (buffer.o, check-init.o, parse.o): Remove unused targets.
1668 (typeck.o): Updated.
1669 * jcf-parse.c (read_class): Comment out unused code.
1670 (java_layout_seen_class_methods): New function.
1671 (parse_source_file_1, parse_source_file_2, parse_source_file_3):
1672 Removed.
1673 (java_parse_file): Comment out unused code. Don't use 'ctxp'.
1674 (init_jcf_parse): Removed.
1675 * config-lang.in (gtfiles): Remove deleted files.
1676 * decl.c (java_init_decl_processing): Don't initialize
1677 finit_identifier_node, instinit_identifier_node,
1678 length_identifier_node, super_identifier_node,
1679 continue_identifier_node, access0_identifier_node. Don't call
1680 init_jcf_parse.
1681 * class.c (cyclic_inheritance_report): New global.
1682 (add_method_1): Don't use
1683 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND.
1684 (maybe_layout_super_class): Comment out code.
1685 (safe_layout_class): New function.
1686 * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR,
1687 DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR,
1688 UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR,
1689 NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR,
1690 INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR.
1691 (java_gimplify_case_expr): Removed.
1692 (java_gimplify_default_expr): Likewise.
1693 (java_gimplify_new_array_init): Likewise.
1694 * parse.y: Removed.
1695 * keyword.gperf, keyword.h: Removed.
1696 * chartables.h: Removed.
1697 * check-init.c: Removed.
1698 * buffer.c, buffer.h: Removed.
1699 * convert.h: Removed.
1700 * gen-table.pl: Removed.
1701 * lex.c, lex.h: Removed.
1702
1703 2007-01-02 Andrew Haley <aph@redhat.com>
1704
1705 * expr.c (expand_java_arraystore): Make sure we perform a bounds
1706 check at runtime before we perform a type check.
1707
1708 2006-12-19 Andrew Haley <aph@redhat.com>
1709
1710 * decl.c: Bump minor BC ABI version.
1711
1712 2006-12-13 Gary Benson <gbenson@redhat.com>
1713
1714 * jcf-depend.c (jcf_dependency_add_file): Mark filename unused.
1715
1716 2006-12-12 Tom Tromey <tromey@redhat.com>
1717
1718 * lang-specs.h: Pass -M options to jc1.
1719 * jcf-depend.c (jcf_dependency_add_file): Don't emit
1720 dependencies.
1721
1722 2006-12-07 Mohan Embar <gnustuff@thisiscool.com>
1723
1724 * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR.
1725
1726 2006-12-06 Mohan Embar <gnustuff@thisiscool.com>
1727
1728 * lang-specs.h: Pass '%U'-based options as separate arguments.
1729
1730 2006-12-05 Tom Tromey <tromey@redhat.com>
1731
1732 PR java/29495:
1733 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and
1734 classes as well.
1735 * class.c (add_field): Handle ACC_SYNTHETIC.
1736 (add_method_1): Likewise. Handle bridge and varargs.
1737 (get_access_flags_from_decl): Handle synthetic, bridge, varargs,
1738 annotation.
1739 (set_class_decl_access_flags): Handle synthetic and annotation.
1740 * java-tree.h (METHOD_BRIDGE): New macro.
1741 (METHOD_VARARGS): Likewise.
1742 (TYPE_SYNTHETIC): Likewise.
1743 (TYPE_ANNOTATION): Likewise.
1744 (lang_type): New fields 'synthetic' and 'annotation'.
1745 (lang_decl_func): New fields 'varargs' and 'bridge'.
1746
1747 2006-12-04 Andrew Haley <aph@redhat.com>
1748
1749 * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if
1750 there's no map.
1751
1752 2006-11-29 Gary Benson <gbenson@redhat.com>
1753
1754 * expr.c (rewrite_arglist_getcaller): Reorder.
1755
1756 2006-11-29 Andrew Haley <aph@redhat.com>
1757
1758 * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE.
1759 * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE.
1760
1761 2006-11-23 Andrew Haley <aph@redhat.com>
1762
1763 * expr.c (rewrite_arglist_getcaller): New.
1764 (rewrite_arglist_getclass): Fix indentation.
1765 (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and
1766 gnu.classpath.VMStackWalker.getCallingClassLoader().
1767 * builtins.c (initialize_builtins): Remove duplicate def'n of
1768 __sync_synchronize.
1769 Add __builtin_return_address.
1770
1771 2006-11-22 Andrew Haley <aph@redhat.com>
1772
1773 * jcf-reader.c (get_attribute): Mark attr_type unused.
1774
1775 * builtins.c (compareAndSwapObject_builtin): Fix declaration.
1776
1777 2007-01-08 Richard Guenther <rguenther@suse.de>
1778
1779 * lex.c (do_java_lex): Use build_int_cst_wide_type.
1780 * jcf-parse.c (get_constant): Likewise.
1781
1782 2006-11-12 Jan Hubicka <jh@suse.cz>
1783
1784 * resource.c (compile_resource_data): Update for new varpool names.
1785 * java/class.c (build_utf8_ref): Likewise.
1786
1787 2006-11-12 David Daney <ddaney@avtrex.com>
1788
1789 PR java/29805
1790 * typeck.c (build_java_array_type): Increase buffer sizes.
1791
1792 2006-11-11 Richard Guenther <rguenther@suse.de>
1793
1794 * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR,
1795 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1796
1797 2006-11-06 Andrew Haley <aph@redhat.com>
1798
1799 * java-tree.h (CONSTANT_LazyFlag): New.
1800 * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag.
1801 * jcf-parse.c (handle_innerclass_attribute): Write attribute to
1802 reflection_data.
1803 (handle_constant): Return 0 for dummy cpool entries.
1804 Handle constants of kind Class.
1805 Handle constants of kind NameAndType.
1806 (handle_enclosingmethod_attribute): New.
1807 (handle_signature_attribute): New.
1808 (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New.
1809 (HANDLE_SIGNATURE_ATTRIBUTE): New.
1810 (handle_constant): Use unmangle_classname()rather than calling
1811 identifier_subst() directly.
1812
1813 2006-11-02 Andrew Haley <aph@redhat.com>
1814
1815 * java-tree.h (FIELD_ENUM): New.
1816 (lang_decl_var.field_enum): New.
1817 (lang_type.enum_class): New.
1818 (CLASS_ENUM): New.
1819 * class.c (set_class_decl_access_flags): Handle enum types.
1820 (add_field): Handle enum fields.
1821 (get_access_flags_from_decl): Likewise.
1822
1823 * class.c (make_class_data): Put reflection_data into rodata.
1824
1825 2006-11-01 Andrew Haley <aph@redhat.com>
1826
1827 * jcf-parse.c (field_offsets, bit_obstack): New variables.
1828 (jcf_parse): Write end marker to annotation_data.
1829 (java_parse_file): Create field_offsets bitmap. Destroy it.
1830 (annotation_grow, annotation_rewrite_byte)
1831 (annotation_rewrite_short, annotation_rewrite_int)
1832 (annotation_read_short, annotation_write_byte)
1833 (annotation_write_short, annotation_write_int)
1834 (handle_long_constant, handle_constant, handle_element_value)
1835 (handle_annotation, handle_annotations)
1836 (handle_annotation_attribute, rewrite_reflection_indexes)
1837 (handle_member_annotations, handle_parameter_annotations)
1838 (handle_default_annotation): New functions.
1839 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE)
1840 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE)
1841 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
1842 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
1843 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions.
1844 * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New.
1845 (TYPE_REFLECTION_DATA): New.
1846 (TYPE_REFLECTION_DATASIZE): New.
1847 * jcf.h (enum cpool_tag): Convert a bunch of #define constants to
1848 an enum.
1849 * jcf-reader.c (get_attribute): Pass field/method index and
1850 attribute type to get_attribute().
1851 * constants.c (find_class_or_string_constant): Make nonstatic.
1852 (cpool_for_class): Likewise.
1853 (build_constants_constructor): Separate string and scalar types.
1854 * class.c (make_class_data): Generate field_indexes permutation.
1855 Pass it to rewrite_reflection_indexes().
1856 (make_class_data): Generate constructor for reflection_data field.
1857
1858 2006-10-20 Tom Tromey <tromey@redhat.com>
1859
1860 * gcj.texi (Top): Don't mention jv-scan.
1861 (Invoking gcj): Likewise.
1862 (Invoking gcjh): Likewise.
1863 (Invoking gjnih): Likewise.
1864 (Invoking gij): Likewise.
1865 (Invoking gcj-dbtool): Likewise.
1866 (Invoking jv-scan): Removed.
1867 * parse-scan.y: Removed.
1868 * jv-scan.c: Removed.
1869 * config-lang.in (stagestuff): Don't mention jv-scan.
1870 * Make-lang.in (java): Removed jv-scan.
1871 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1872 (JVSCAN_OBJS): Removed.
1873 (jv-scan$(exeext)): Likewise.
1874 (JAVA_MANFILES): Removed jv-scan.1.
1875 (java.uninstall): Don't mention jv-scan.
1876 (java.mostlyclean): Likewise.
1877 (java.maintainer-clean): Likewise.
1878 (.INTERMEDIATE): Likewise.
1879 (java/jv-scan.o): Removed.
1880 (jv-scan.pod): Likewise.
1881 (java.srcextra): Don't mention parse-scan.c.
1882 (java.mostlyclean): Likewise.
1883 (java/parse-scan.c): Removed.
1884 (java/parse-scan.o-warn): Removed.
1885 (java/parse-scan.o): Removed.
1886
1887 2006-10-20 Tom Tromey <tromey@redhat.com>
1888
1889 * lang.c (java_handle_option): Don't use
1890 jcf_write_base_directory.
1891 * jcf.h (jcf_write_base_directory): Removed.
1892 * parse.y (java_expand_classes): Don't call write_classfile.
1893 * config-lang.in (gtfiles): Removed jcf-write.c.
1894 * Make-lang.in (JAVA_OBJS): Removed jcf-write.o.
1895 (java/jcf-write.o): Removed.
1896 * jcf-parse.c (parse_class_file): Don't call write_classfile.
1897 * java-tree.h (write_classfile): Removed declaration.
1898 * jcf-write.c: Removed.
1899
1900 2006-10-20 Tom Tromey <tromey@redhat.com>
1901
1902 * Make-lang.in (java): Removed gjnih, gcjh.
1903 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1904 (GCJH_OBJS): Removed.
1905 (GJNIH_OBJS): Likewise.
1906 (gjnih$(exeext)): Likewise.
1907 (gcjh$(exeext)): Likewise.
1908 (JAVA_MANFILES): Removed gcjh.1, gjnih.1.
1909 (java.install-common): Don't special case gcjh.
1910 (java.uninstall): Don't mention gcjh, gjnih.
1911 (java.mostlyclean): Likewise.
1912 (java.maintainer-clean): Likewise.
1913 (.INTERMEDIATE): Likewise.
1914 (gcjh.pod): Removed.
1915 (gjnih.pod): Likewise.
1916 (GCJH_TARGET_INSTALL_NAME): Removed.
1917 (java/gjavah-jni.o): Removed.
1918 (java/gjavah.o): Likewise.
1919 * config-lang.in (stagestuff): Removed gjnih, gcjh.
1920 * gjavah.c: Removed.
1921
1922 2006-10-17 Tom Tromey <tromey@redhat.com>
1923
1924 * jcf-dump.c (print_element_value): Expect a utf8 constant in the
1925 "string" case.
1926
1927 2006-10-17 Tom Tromey <tromey@redhat.com>
1928
1929 * jvgenmain.c (main): Handle -findirect-dispatch.
1930 * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
1931 jvgenmain.
1932
1933 2006-10-06 Andrew Haley <aph@redhat.com>
1934
1935 * builtins.c (compareAndSwapInt_builtin): Check that we really do
1936 have a compare_and_swap builtin.
1937 (compareAndSwapLong_builtin): Likewise.
1938 (compareAndSwapObject_builtin): Likewise.
1939
1940 2006-10-04 Andrew Haley <aph@redhat.com>
1941
1942 * builtins.c (java_builtins): Add compareAndSwapInt,
1943 compareAndSwapLong, compareAndSwapObject, putOrderedInt,
1944 putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile,
1945 putObjectVolatile, getObjectVolatile, getIntVolatile,
1946 getLongVolatile, getLong.
1947 (UNMARSHAL3): New macro.
1948 (UNMARSHAL4): Likewise.
1949 (UNMARSHAL5): Likewise.
1950 (build_arglist_for_builtin): New function.
1951 (build_addr_sum, build_check_this): New functions.
1952 (putObject_builtin. compareAndSwapInt_builtin,
1953 compareAndSwapLong_builtin, compareAndSwapObject_builtin,
1954 putVolatile_builtin, getVolatile_builtin): New builtins.
1955
1956 2006-06-08 Andrew Haley <aph@redhat.com>
1957
1958 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
1959 get_symbol_table_index().
1960 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
1961 private method.
1962 (build_known_method_ref): New arg: special. Pass it to
1963 get_symbol_table_index.
1964 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
1965 the method list.
1966 (build_invokevirtual): New arg: special. Pass it to
1967 get_symbol_table_index.
1968 (expand_invoke): New variable: special.
1969 Pass it to maybe_rewrite_invocation().
1970 Pass it to build_known_method_ref().
1971 * class.c (build_symbol_entry): Add new arg: special. Use it to
1972 build the symbol table conbstructor.
1973 (emit_symbol_table): Extract SPECIAL from the method list and pass
1974 it to build_symbol_entry().
1975 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
1976 special accordingly.
1977
1978 2006-09-08 Andrew Haley <aph@redhat.com>
1979
1980 * class.c (layout_class_method): Use build_java_signature, not
1981 build_java_argument_signature. Use lookup_java_method, not
1982 lookup_argument_method.
1983
1984 2006-08-16 Jakub Jelinek <jakub@redhat.com>
1985 Bryce McKinlay <bryce@mckinlay.net.nz>
1986
1987 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
1988
1989 2006-07-18 Tom Tromey <tromey@redhat.com>
1990
1991 * lang.opt: Added missing -W options.
1992
1993 2006-07-12 Tom Tromey <tromey@redhat.com>
1994
1995 PR java/28329:
1996 * lang-specs.h: Pass '%U'-based options as separate arguments.
1997 Use -faux-classpath.
1998 * lang.c (java_handle_option): Handle OPT_faux_classpath.
1999 * lang.opt (faux-classpath): New option.
2000
2001 2006-07-07 Tom Tromey <tromey@redhat.com>
2002
2003 * class.c (make_class_data): Set value for reflection_data field.
2004 * decl.c (java_init_decl_processing): Add reflection_data field.
2005
2006 2006-07-07 Tom Tromey <tromey@redhat.com>
2007
2008 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals
2009 earlier.
2010 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2011
2012 2006-07-07 Andrew Haley <aph@redhat.com>
2013
2014 * jcf-parse.c (set_source_filename): Don't check for
2015 CLASS_FROM_CURRENTLY_COMPILED_P.
2016 Remove // comments.
2017
2018 2006-07-07 Andrew Haley <aph@redhat.com>
2019
2020 * java-tree.h (java_read_sourcefilenames): Declare.
2021 * lang.c (java_handle_option): Call java_read_sourcefilenames().
2022 * lang.opt (fsource-filename): New opt.
2023 * lang-specs.h: Add -fsource-filename.
2024 * jcf-parse.c (num_files, filenames): New variables.
2025 (reverse, cmpstringp, java_read_sourcefilenames,
2026 find_sourcefile): New.
2027 (set_source_filename): Call find_sourcefile to find the real name
2028 of a source file.
2029
2030 2006-06-27 Tom Tromey <tromey@redhat.com>
2031
2032 * jcf-reader.c (get_attribute): Handle EnclosingMethod,
2033 Signature, LocalVariableTypeTable, annotation attributes.
2034 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro.
2035 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2036 (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'.
2037 (HANDLE_METHOD): Likewise.
2038 (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro.
2039 (print_annotation): New function.
2040 (print_element_value): Likewise.
2041 (indent): Likewise.
2042 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro.
2043 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise.
2044 (print_parameter_annotations): New function.
2045 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro.
2046 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE):
2047 Likewise.
2048 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise.
2049 (print_annotations): New function.
2050
2051 2006-06-23 Tom Tromey <tromey@redhat.com>
2052
2053 * lang-specs.h: Default -fsource and -ftarget to 1.5. If
2054 emitting class files, always use 1.5.
2055 * gcj.texi (Input Options): Document -fsource.
2056 (Code Generation): Document -ftarget.
2057
2058 2006-06-21 Tom Tromey <tromey@redhat.com>
2059
2060 PR java/28089:
2061 * expr.c (expand_java_field_op): Initialize field's declaring
2062 class.
2063
2064 2006-06-20 Tom Tromey <tromey@redhat.com>
2065
2066 * expr.c (push_value): Always flush quick stack.
2067
2068 2006-06-19 Tom Tromey <tromey@redhat.com>
2069
2070 * expr.c (push_value): Also flush quick stack if value is a
2071 component_ref.
2072
2073 2006-06-19 Tom Tromey <tromey@redhat.com>
2074
2075 * expr.c (push_value): Flush quick stack if value has side
2076 effects.
2077
2078 2006-06-13 Tom Tromey <tromey@redhat.com>
2079
2080 * class.c (is_compiled_class): Explicitly check for current
2081 class.
2082
2083 2006-06-09 Tom Tromey <tromey@redhat.com>
2084
2085 * gjavah.c (decompile_method): Don't decompile a static field
2086 accessor method.
2087
2088 2006-06-06 Tom Tromey <tromey@redhat.com>
2089
2090 * lang-specs.h <jc1>: Add .jar file to command line if
2091 -fsaw-java-file. Also, remove -ffilelist-file in this case.
2092
2093 2006-06-05 Tom Tromey <tromey@redhat.com>
2094
2095 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2096 synthetic, enum, annotation.
2097 * jcf.h (ACC_BRIDGE): New macro.
2098 (ACC_VARARGS): Likewise.
2099 (ACC_SYNTHETIC): Likewise.
2100 (ACC_ENUM): Likewise.
2101 (ACC_ANNOTATION): Likewise.
2102
2103 2006-06-04 Tom Tromey <tromey@redhat.com>
2104
2105 * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options.
2106 * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource,
2107 and -ftarget.
2108 (lang_specific_driver): Removed dead code. Add -fsaw-java-file
2109 when needed. Handle classpath-setting.
2110 * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o.
2111 * lang-specs.h: Rewrote.
2112
2113 2006-06-04 Tom Tromey <tromey@redhat.com>
2114
2115 * jcf-io.c (find_class): Set source_ok to 0.
2116 * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning.
2117 (parse_class_file): Don't call java_mark_class_local.
2118 (java_parse_file): Skip .java files. Call java_mark_class_local
2119 before lowering any code.
2120 (parse_zip_file_entries): Don't call duplicate_class_warning
2121 here.
2122 (process_zip_dir): ... call it here.
2123 * class.c (add_field): Don't mark field external if it is being
2124 compiled into this object.
2125 (make_class_data): Handle situation where class_dtable_decl is
2126 created before Class is compiled.
2127 (is_compiled_class): Don't assume files in zip are compiled into
2128 this object.
2129 (layout_class_method): Don't mark method external if it is being
2130 compiled into this object.
2131
2132 2006-06-04 Tom Tromey <tromey@redhat.com>
2133
2134 * jcf-path.c (jcf_path_compute): New function.
2135 * jcf.h (jcf_path_compute): Declare.
2136
2137 2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2138
2139 * decl.c: Include langhooks.h.
2140 (builtin_function): Remove.
2141 (java_init_decl_processing): Replace calls to builtin_function
2142 with add_builtin_function.
2143 * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o.
2144 (java/decl.o): Depend on langhooks.h.
2145 * java-tree.h (builtin_function): Remove.
2146
2147 2006-10-10 Brooks Moses <bmoses@stanford.edu>
2148
2149 * Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
2150
2151 2006-09-12 Tom Tromey <tromey@redhat.com>
2152
2153 * expr.c (push_value): Always flush quick stack.
2154
2155 2006-09-12 Tom Tromey <tromey@redhat.com>
2156
2157 PR java/29013:
2158 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note
2159 the push of the called method's return result.
2160
2161 2006-09-12 Tom Tromey <tromey@redhat.com>
2162
2163 * jvspec.c (lang_specific_driver): Read spec file even if
2164 -fsyntax-only.
2165
2166 2006-09-12 Tom Tromey <tromey@redhat.com>
2167
2168 PR java/28754:
2169 * expr.c (expand_java_field_op): Initialize field's declaring
2170 interface if necessary.
2171
2172 2006-09-12 Tom Tromey <tromey@redhat.com>
2173
2174 PR java/28892:
2175 * expr.c (expand_java_field_op): No error for assignments not in
2176 class initializer or constructor.
2177
2178 2006-08-22 Andrew Haley <aph@redhat.com>
2179
2180 * decl.c (java_add_stmt): Give the statement list a type.
2181
2182 2006-08-16 Jakub Jelinek <jakub@redhat.com>
2183 Bryce McKinlay <bryce@mckinlay.net.nz>
2184
2185 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
2186
2187 2006-08-10 Simon Martin <simartin@users.sourceforge.net>
2188
2189 PR java/8923
2190 * parse.y (build_incdec): Emit an error instead of an ICE if '++'
2191 or '--' is used with a constant operand.
2192 (java_complete_lhs): When processing a '++' or '--' expression,
2193 don't call java_complete_tree but java_complete_lhs, so that a
2194 static final variable operand is never replaced by its value. This
2195 avoids an ICE later on.
2196 (patch_unaryop): Fixed typo in comment.
2197
2198 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2199
2200 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2201
2202 2006-07-12 Bryce McKinlay <mckinlay@redhat.com>
2203
2204 * builtins.c (check_for_builtin): If a builtin could result in a
2205 direct call being generated, don't use it if flag_indirect_dispatch
2206 is set.
2207
2208 2006-07-12 Bryce McKinlay <mckinlay@redhat.com>
2209
2210 * gcj.texi (Invocation): Corrections for Invocation API example.
2211
2212 2006-07-04 Andrew Haley <aph@redhat.com>
2213
2214 * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the
2215 entry.
2216
2217 2006-06-21 Andrew Haley <aph@redhat.com>
2218
2219 * java-tree.h (update_aliases): Remove
2220 * expr.c (expand_iinc): Remove call to update_aliases().
2221 (STORE_INTERNAL): Likewise.
2222 * decl.c (update_aliases, initialize_local_variable)
2223 (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls.
2224
2225 2006-06-19 Andrew Haley <aph@redhat.com>
2226
2227 PR java/1305
2228 PR java/27908
2229 * expr.c (java_modify_addr_for_volatile): New function.
2230 (expand_java_field_op): Handle volatile fields.
2231 * java-gimplify.c (java_gimplify_component_ref): Call
2232 java_modify_addr_for_volatile to give the field_ref the correct
2233 volatile type.
2234 (java_gimplify_modify_expr): Likewise.
2235 * java-tree.h (java_modify_addr_for_volatile): New decl.
2236
2237 2006-06-17 Karl Berry <karl@gnu.org>
2238
2239 * gcj.texi (@dircategory): Use "Software development" instead
2240 of "Programming", following the Free Software Directory.
2241
2242 2006-06-16 Andrew Haley <aph@redhat.com>
2243
2244 * class.c (make_class_data): When using flag_indirect_classes,
2245 don't initialize the vtable of Class instances.
2246
2247 2006-06-09 Andrew Haley <aph@redhat.com>
2248
2249 PR java/1305
2250 PR java/27908
2251 * builtins.c (initialize_builtins): Add __sync_synchronize().
2252 * class.c (add_field): Mark volatile fields.
2253 * java-gimplify.c (java_gimplify_expr): Call new functions to
2254 handle self-modifying exprs and COMPONENT_REFs.
2255 (java_gimplify_component_ref): New.
2256 (java_gimplify_modify_expr): Add handling for volatiles.
2257
2258 2006-06-08 Tom Tromey <tromey@redhat.com>
2259
2260 * gcj.texi (libgcj Runtime Properties): Document
2261 gnu.gcj.user.realname.
2262
2263 2006-06-08 Andrew Haley <aph@redhat.com>
2264
2265 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
2266 get_symbol_table_index().
2267 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
2268 private method.
2269 (build_known_method_ref): New arg: special. Pass it to
2270 get_symbol_table_index.
2271 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
2272 the method list.
2273 (build_invokevirtual): New arg: special. Pass it to
2274 get_symbol_table_index.
2275 (expand_invoke): New variable: special.
2276 Pass it to maybe_rewrite_invocation().
2277 Pass it to build_known_method_ref().
2278 * class.c (build_symbol_entry): Add new arg: special. Use it to
2279 build the symbol table conbstructor.
2280 (emit_symbol_table): Extract SPECIAL from the method list and pass
2281 it to build_symbol_entry().
2282 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
2283 special accordingly.
2284
2285 2006-06-06 David Daney <ddaney@avtrex.com>
2286
2287 * gcj.texi (libgcj Runtime Properties): Document
2288 gnu.gcj.runtime.NameFinder.show_raw and
2289 gnu.gcj.runtime.NameFinder.remove_unknown.
2290
2291 2006-06-06 Tom Tromey <tromey@redhat.com>
2292
2293 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2294 synthetic, enum, annotation.
2295 * jcf.h (ACC_BRIDGE): New macro.
2296 (ACC_VARARGS): Likewise.
2297 (ACC_SYNTHETIC): Likewise.
2298 (ACC_ENUM): Likewise.
2299 (ACC_ANNOTATION): Likewise.
2300
2301 2006-06-06 Mike Stump <mrs@apple.com>
2302
2303 * Make-lang.in: Rename to htmldir to build_htmldir to avoid
2304 installing during build.
2305
2306 2006-05-31 Thomas Fitzsimmons <fitzsim@redhat.com>
2307
2308 * gcj.texi (Extensions): Document the new gcj-dbtool-based
2309 classname-to-library resolution mechanism.
2310 Declare the old gnu.gcj.runtime.VMClassLoader.library_control
2311 mechanism deprecated.
2312 (libgcj Runtime Properties): Document
2313 gnu.gcj.runtime.VMClassLoader.library_control's new default.
2314
2315 2006-05-29 Jakub Jelinek <jakub@redhat.com>
2316
2317 * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
2318 bit wide type.
2319 (jword): Define to uint64 on 64-bit arches.
2320 * jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
2321
2322 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
2323
2324 * class.c, except.c, expr.c, java-gimplify.c: Fix comment
2325 typos.
2326
2327 2006-05-26 Tom Tromey <tromey@redhat.com>
2328
2329 * expr.c (java_push_constant_from_pool): Handle 'ldc class'.
2330 * verify-glue.c (vfy_class_type): New function.
2331 * verify-impl.c (check_constant): Allow 'ldc class'.
2332 * verify.h (vfy_class_type): Declare.
2333
2334 2006-05-25 Andrew Haley <aph@redhat.com>
2335
2336 PR java/27756
2337 * decl.c (maybe_pushlevels): When variable ranges are non-nested
2338 update all lifetimes, not just the first one.
2339
2340 2006-05-24 Tom Tromey <tromey@redhat.com>
2341
2342 * java-tree.h: Fixed flag documentation.
2343
2344 2006-05-24 Tom Tromey <tromey@redhat.com>
2345
2346 PR libgcj/27729:
2347 * jcf.h (ACC_INVISIBLE): Changed value.
2348
2349 2006-05-24 Andrew Haley <aph@redhat.com>
2350
2351 PR java/27754
2352 * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a
2353 COMPOUND_EXPR.
2354
2355 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
2356
2357 * lang.opt (femit-class-file): Remove VarExists.
2358
2359 2006-05-16 Tom Tromey <tromey@redhat.com>
2360
2361 * verify-impl.c (verify_instructions_0) <op_return>: Special case
2362 for Object.<init>.
2363
2364 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
2365
2366 PR driver/26885
2367 * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
2368 $(GCC_OBJS).
2369
2370 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
2371
2372 * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H).
2373 (java/expr.o): Replace target.h with $(TARGET_H).
2374 (java/parse.o): Likewise.
2375
2376 2006-05-10 Andrew Haley <aph@redhat.com>
2377
2378 * class.c (emit_indirect_register_classes): Fix comment.
2379
2380 2006-05-04 Tom Tromey <tromey@redhat.com>
2381
2382 * java-tree.h (uses_jv_markobj_p): Declare.
2383 * class.c (uses_jv_markobj_p): Removed.
2384 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define.
2385 (get_boehm_type_descriptor): Use it.
2386 (uses_jv_markobj_p): Moved from class.c. Return bool.
2387
2388 2006-05-04 Tom Tromey <tromey@redhat.com>
2389
2390 * java-tree.def (THIS_EXPR): Now a tcc_expression.
2391
2392 2006-05-04 Andrew Haley <aph@redhat.com>
2393
2394 * class.c (make_field_value): Always build_address_of fdecl if
2395 there is an initializer.
2396
2397 2006-05-03 Andrew Haley <aph@redhat.com>
2398
2399 PR libgcj/27352
2400 * expr.c (maybe_rewrite_invocation): New function.
2401 (rewrite_arglist_getclass): Likewise.
2402 (rules): New.
2403 (expand_invoke): Call maybe_rewrite_invocation.
2404 * parse.y (patch_invoke): Likewise.
2405 * java-tree.h: (maybe_rewrite_invocation): New function.
2406
2407 2006-04-21 Andrew Haley <aph@redhat.com>
2408
2409 * lang.c (java_init): Handle flag_indirect_classes.
2410 * jvgenmain.c: Use "class$$" instead of "class$".
2411 * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
2412 DECLs.
2413 (mangle_class_field): Special case "class$$" as well as "class$".
2414 * constants.c (build_ref_from_constant_pool): If
2415 flag_indirect_classes, generate a ref into the heap.
2416 * decl.c (constants_field_decl_node,
2417 constants_data_field_decl_node): New.
2418 * class.c (build_static_class_ref): New.
2419 (build_classdollar_field): Factor out from build_class_ref().
2420 (make_field_value): Handle static fields in heap.
2421 (make_class_data): Make sure we get a static ref to class.
2422 Make class initializer const if flag_indirect_classes.
2423 (register_class): Build a class_ref for initialization if
2424 flag_indirect_classes.
2425 (emit_indirect_register_classes): New.
2426
2427 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
2428
2429 * expr.c, gjavah.c: Fix comment typos.
2430
2431 2006-04-03 Andrew Haley <aph@redhat.com>
2432
2433 PR java/26858
2434 * expr.c (build_field_ref): Don't check the field offset if
2435 flag_syntax_only.
2436
2437 2006-03-30 Andrew Haley <aph@redhat.com>
2438
2439 PR java/26858
2440 * lang.c (java_attribute_table): New.
2441 (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
2442 * expr.c (build_field_ref): Add a null pointer check for all
2443 fields of offset > 4k. Don't do so for accesses via the this
2444 pointer, which we know can never be null.
2445 * class.c (build_java_method_type): Mark arg 1 of all nonstatic
2446 methods nonnull.
2447
2448 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
2449
2450 * Make-lang.in: Rename docdir to gcc_docdir.
2451
2452 2006-03-30 Tom Tromey <tromey@redhat.com>
2453
2454 PR java/26042:
2455 * parse.y (java_reorder_fields): Reset superclass field's size as
2456 well.
2457
2458 2006-03-28 Tom Tromey <tromey@redhat.com>
2459
2460 PR java/26390:
2461 * parse.y (find_most_specific_methods_list): Added 'class'
2462 argument.
2463 (lookup_method_invoke): Updated.
2464
2465 2006-03-15 Tom Tromey <tromey@redhat.com>
2466
2467 * jcf-write.c (generate_bytecode_insns): Use qualifying type for
2468 non-static method calls.
2469
2470 2006-03-15 David Daney <ddaney@avtrex.com>
2471
2472 * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its
2473 declaration.
2474
2475 2006-03-15 David Daney <ddaney@avtrex.com>
2476
2477 * lang.opt (-freduced-reflection): New option.
2478 * lang.c (java_post_options): Generate an error if
2479 -freduced-reflection used with -fjni or -findirect-dispatch.
2480 * java-tree.h (flag_reduced_reflection): Declare new variable.
2481 * boehm.c (get_boehm_type_descriptor): Indicate all pointers
2482 if bitmap overflows and flag_reduced_reflection set.
2483 * class.c (uses_jv_markobj_p): New function.
2484 (make_class_data): Moved generation of vtable to before
2485 reflection data, generate less reflection data if
2486 flag_reduced_reflection set.
2487 * gcj.texi: Document -freduced-reflection.
2488
2489 2006-03-15 Tom Tromey <tromey@redhat.com>
2490
2491 PR java/26638:
2492 * class.c (get_interface_method_index): Don't put <clinit> into
2493 interface table.
2494
2495 2006-03-15 Tom Tromey <tromey@redhat.com>
2496
2497 * parse.y (analyze_clinit_body): Ignore empty statements.
2498
2499 2006-03-08 David Daney <ddaney@avtrex.com>
2500
2501 * gcj.texi: Document -static-libgcj option.
2502
2503 2006-02-20 Andrew Haley <aph@redhat.com>
2504
2505 * jcf-parse.c (parse_class_file): Set input_location from
2506 current_class.
2507
2508 2006-02-15 Andrew Haley <aph@redhat.com>
2509
2510 * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here.
2511 (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL,
2512 TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here.
2513
2514 2006-02-09 Andrew Haley <aph@redhat.com>
2515
2516 PR java/26192
2517 * expr.c (expand_invoke): Allow methods in arrays to be resolved
2518 in their superclass.
2519
2520 * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for
2521 array types.
2522
2523 2006-02-08 Tom Tromey <tromey@redhat.com>
2524
2525 PR java/22578:
2526 * check-init.c (check_init): Handle VIEW_CONVERT_EXPR.
2527 * builtins.c (convert_real): New function.
2528 (java_builtins): Handle Float.intBitsToFloat,
2529 Float.floatToRawIntBits, Double.longBitsToDouble,
2530 Double.doubleToRawLongBits.
2531
2532 2006-02-07 Andrew Haley <aph@redhat.com>
2533
2534 * expr.c (expand_invoke): (BC mode.) If we find a method in a
2535 class other than the one in which we expected to find it, ignore
2536 the result.
2537
2538 PR java/25535
2539 * constants.c (build_constants_constructor): move initializer into
2540 first halfword on a 64-bit big-endian machine.
2541
2542 2006-02-04 Tom Tromey <tromey@redhat.com>
2543
2544 PR java/25676:
2545 * builtins.c (max_builtin): Skip floating point 'max'.
2546 (min_builtin): Skip floating point 'min'.
2547 (check_for_builtin): Never return NULL_TREE.
2548
2549 2006-02-04 Tom Tromey <tromey@redhat.com>
2550
2551 PR java/26097:
2552 * expr.c (push_type): Avoid side effect in gcc_assert.
2553
2554 2006-02-04 Roger Sayle <roger@eyesopen.com>
2555
2556 * decl.c (java_init_decl_processing): Create char_type_node as a
2557 regular INTEGER_TYPE node.
2558 (push_promoted_type): Preserve TYPE_STRING_FLAG on types.
2559 * typeck.c (convert): No longer check for CHAR_TYPEs but instead
2560 test for char_type_node and promoted_char_type_node as special
2561 instances of INTEGER_TYPE tree codes.
2562 (promote_type,build_java_signature): Likewise.
2563 * jcf-write.c (adjust_typed_op): Likewise.
2564 * mangle.c (mangle_type): Likewise.
2565 * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
2566 * parse.h (JINTEGRAL_TYPE_P): Likewise.
2567
2568 2006-02-04 Andreas Tobler <a.tobler@schweiz.ch>
2569
2570 * expr.c (java_stack_swap): Revert gcc_assert patch.
2571
2572 2006-02-03 Ben Elliston <bje@au.ibm.com>
2573
2574 * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout.
2575 * typeck.c: Likewise.
2576 * verify-impl.c: Likewise.
2577 * class.c: Likewise.
2578 * decl.c: Likewise.
2579 * jcf-parse.c: Likewise.
2580 * constants.c: Likewise.
2581 * check-init.c: Likewise.
2582 * jcf-write.c: Likewise.
2583 * verify-glue.c: Likewise.
2584 * mangle.c: Likewise.
2585 * expr.c: Likewise.
2586 * lang.c: Likewise.
2587 * boehm.c: Likewise.
2588
2589 2006-02-01 Jan Hubicka <jh@suse.cz>
2590
2591 * decl.c (end_java_method): Kill hack disabling unit-at-a-time.
2592 * lang.c (java_init_options): Set no_unit_at_a_time_default.
2593
2594 2006-01-30 Andrew Haley <aph@redhat.com>
2595
2596 PR java/21428
2597 * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").
2598
2599 2006-01-21 Joseph S. Myers <joseph@codesourcery.com>
2600
2601 * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version):
2602 Update copyright notice dates.
2603
2604 2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2605
2606 * jvspec.c (lang_specific_spec_functions): Remove.
2607
2608 2006-01-06 Tom Tromey <tromey@redhat.com>
2609
2610 * gcj.texi (Arrays): Added more documentation for
2611 JvNewObjectArray.
2612 (Primitive types): Correct information about primitive classes.
2613 (Reference types): New node.
2614 (Index): New node.
2615
2616 2005-12-16 Alexandre Oliva <aoliva@redhat.com>
2617
2618 * jcf-parse.c (set_source_filename): Set the decl source location
2619 even when returning early.
2620
2621 2005-12-15 Tom Tromey <tromey@redhat.com>
2622 Andrew Haley <aph@redhat.com>
2623
2624 PR java/25429
2625 * parse.y (resolve_expression_name): Don't generate accessor
2626 methods for constant fields.
2627
2628 2005-12-13 Andrew Haley <aph@redhat.com>
2629
2630 PR java/25366
2631 PR java/25368
2632 * class.c (maybe_layout_super_class): Update current_class before
2633 calling do_resolve_class.
2634
2635 2005-12-12 H.J. Lu <hongjiu.lu@intel.com>
2636
2637 PR java/25330
2638 * jcf-write.c (write_classfile): Use PID in temporary class
2639 file. Save/restore errno when reporting error.
2640
2641 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
2642
2643 PR java/9861
2644 * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J'
2645 to bare_function_type and including the return type
2646 * builtins.c (initialize_builtins) : Change builtin mangled name
2647 constants to conform to new mangling scheme
2648
2649 2005-12-08 Andrew Haley <aph@redhat.com>
2650
2651 PR libgcj/25265
2652 * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
2653 (soft_abstractmethod_node): New.
2654 * expr.c (build_field_ref): Add in-line check for missing field.
2655 * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
2656
2657 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2658
2659 * Make-lang.in (java.all.build, java.install-normal): Remove.
2660
2661 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2662
2663 * Make-lang.in: Remove all dependencies on s-gtype, except for
2664 gt-java-parse.h.
2665
2666 2005-12-07 Richard Sandiford <richard@codesourcery.com>
2667
2668 * class.c (build_utf8_ref, emit_register_classes): Use
2669 switch_to_section and get_section.
2670
2671 2005-12-06 Tom Tromey <tromey@redhat.com>
2672
2673 PR java/25283:
2674 * parse.y (patch_new_array_init): Revert previous patch.
2675 (lookup_method_invoke): Use size-less array type when creating an
2676 anonymous constructor.
2677
2678 2005-12-05 Tom Tromey <tromey@redhat.com>
2679
2680 * parse.y (patch_new_array_init): Don't set length on array.
2681
2682 2005-12-02 Richard Guenther <rguenther@suse.de>
2683
2684 * java-gimplify.c (java_gimplify_labeled_block_expr): Use
2685 buildN instead of build.
2686 * class.c (finish_class): Likewise.
2687 * expr.c (java_create_object): Likewise.
2688
2689 2005-11-28 Tom Tromey <tromey@redhat.com>
2690
2691 PR java/18278:
2692 * expr.c (build_jni_stub): Unwrap the return value.
2693 * java-tree.h (soft_unwrapjni_node): New define.
2694 (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
2695 * decl.c (java_init_decl_processing): Initialize
2696 soft_unwrapjni_node.
2697
2698 2005-11-24 Bryce McKinlay <mckinlay@redhat.com>
2699
2700 * gcj.texi (gij options): Add -Xss documentation.
2701
2702 2005-11-08 Wil Mahan <wmahan@gmail.com>
2703
2704 PR java/23617
2705 * zextract.c (read_zip_archive): Fix out of memory error when
2706 reading jar files with zip-style comments.
2707
2708 2005-11-07 Terry Laurenzo <tlaurenzo@gmail.com>
2709
2710 * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
2711 formats.
2712 * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
2713
2714 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
2715 Wil Mahan <wmahan@gmail.com>
2716
2717 PR java/23620
2718 * class.c (make_class): Create empty binfo here.
2719 (set_super_info): Only create binfo if we have superclasses.
2720
2721 2005-10-03 Ranjit Mathew <rmathew@gcc.gnu.org>
2722
2723 PR java/24127
2724 * parse.y (method_header): Make the result of the rule a NULL_TREE
2725 when a parsing error occurs.
2726
2727 2005-09-29 Tom Tromey <tromey@redhat.com>
2728
2729 PR java/24120:
2730 * jcf-io.c (memoized_dirlist_hash): New function.
2731 (caching_stat): Use it.
2732
2733 2005-09-21 Ranjit Mathew <rmathew@gcc.gnu.org>
2734
2735 PR java/21418
2736 * class.c (inherits_from_p): Try to lay out super class
2737 if it is not already laid out.
2738 (maybe_layout_super_class): Handle the case where SUPER_CLASS
2739 is a NULL_TREE.
2740
2741 2005-09-18 James A. Morrison <phython@gcc.gnu.org>
2742
2743 * builtins.c (max_builtin, min_builtin, abs_builtin,
2744 java_build_function_call_expr): Use fold_buildN.
2745 * class.c (layout_class_method): Likewise.
2746 * expr.c (java_truthvalue_conversion, build_java_jsr,
2747 build_java_arrayaccess, expand_java_arrayload, expand_iinc,
2748 build_java_binop, build_field_ref, expand_compare,
2749 build_known_method_ref, build_invokevirtual,
2750 process_jvm_instruction): Likewise.
2751 * parse.y (patch_binop, patch_exit_expr): Likewise.
2752 * typeck.c (convert_ieee_real_to_integer): Likewise.
2753 (convert): Don't call fold after convert_ieee_real_to_integer.
2754
2755 2005-09-14 Bryce McKinlay <mckinlay@redhat.com>
2756
2757 PR java/23891
2758 * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
2759 the newly created type. Set import lists here, not in create_class.
2760 (jdep_resolve_class): Set current_class.
2761 (do_resolve_class): Use current_class's TYPE_PACKAGE to determine
2762 the current package context, not ctxp->package.
2763 (cicp_cache): Removed.
2764 (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
2765 * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
2766 * java-tree.h (TYPE_PACKAGE): New macro.
2767 (struct lang_type): New member 'package'.
2768
2769 2005-09-09 Andrew Haley <aph@redhat.com>
2770
2771 PR libgcj/23182
2772 * expr.c (pop_type_0): If the expected type is object or ptr
2773 (i.e. void*), return the type of the object we just popped from
2774 the stack.
2775
2776 2005-09-06 Andrew Pinski <pinskia@physics.uc.edu>
2777
2778 * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
2779 BLOCK_EXPR_BODY before returning the new BIND_EXPR.
2780
2781 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
2782
2783 * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
2784 jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
2785 typos. Follow spelling conventions.
2786
2787 2005-09-05 Ranjit Mathew <rmathew@hotmail.com>
2788
2789 PR java/23431
2790 * typeck.c (lookup_do): Look up interfaces for the original class,
2791 not the base class.
2792 * parse.y (java_check_regular_methods): Fix diagnostic message for
2793 more restrictive overriding of a method from an interface.
2794
2795 2005-08-16 Tom Tromey <tromey@redhat.com>
2796
2797 * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
2798 class' initial state.
2799
2800 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
2801
2802 PR java/22113
2803 * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
2804 `literal_token' for large numeric input tokens.
2805
2806 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
2807
2808 PR java/19870
2809 * parse.y (nested_field_access_p): Rename to nested_member_access_p
2810 and expand to handle method accesses across nested classes.
2811 (build_outer_method_access_method): Rename to
2812 build_nested_method_access_method. Minor adjustments to comments.
2813 (resolve_expression_name): Use the newly-renamed
2814 nested_member_access_p method.
2815 (resolve_qualified_expression_name): Likewise.
2816 (patch_method_invocation): Also consider static methods for access
2817 method generation. Minor adjustments to comments.
2818 (maybe_use_access_method): Use the more general
2819 nested_memeber_access_p to determine access across nested class
2820 boundaries. Allow THIS_ARG to be NULL (for static methods).
2821
2822 2005-08-15 Tom Tromey <tromey@redhat.com>
2823
2824 PR java/23300.
2825 * expr.c (build_field_ref): Don't generate otable reference when
2826 DECL_FIELD_OFFSET is 0.
2827 * class.c (maybe_layout_super_class): Pass outer class to
2828 do_resolve_class.
2829
2830 2005-08-15 Tom Tromey <tromey@redhat.com>
2831
2832 * java-tree.h (LABEL_IN_SUBR): Removed.
2833 (LABEL_IN_SUBR): Likewise.
2834 (LABEL_IS_SUBR_START): Likewise.
2835 (LABEL_SUBR_START): Likewise.
2836 (LABEL_SUBR_CONTEXT): Likewise.
2837 (LABEL_CHANGED): Likewise.
2838 (LABEL_RETURN_LABEL): Likewise.
2839 (LABEL_RETURN_TYPE_STATE): Likewise.
2840 (LABEL_RETURN_LABELS): Likewise.
2841 (RETURN_MAP_ADJUSTED): Likewise.
2842 (LABEL_PENDING_CHAIN): Likewise.
2843
2844 2005-08-15 Tom Tromey <tromey@redhat.com>
2845
2846 * Make-lang.in (JAVA_OBJS): Removed verify.o
2847 (java/verify.o): Removed.
2848 * verify.c: Removed.
2849 * lang.c (flag_new_verifier): Removed.
2850 (java_post_options): Updated.
2851 * java-tree.h (flag_new_verifier): Removed.
2852 (verify_jvm_instructions): Removed.
2853 * expr.c (pop_type_0): Assume flag_new_verifier is true.
2854 (build_java_check_indexed_type): Likewise.
2855 (expand_java_arraystore): Likewise.
2856 (expand_java_arrayload): Likewise.
2857 (pop_arguments): Likewise.
2858 (expand_byte_code): Likewise.
2859 (process_jvm_instruction): Likewise.
2860
2861 2005-08-10 Andrew Haley <aph@redhat.com>
2862
2863 * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
2864 type mismatches to make legal GIMPLE.
2865
2866 2005-08-10 Robin Green <greenrd@greenrd.org>
2867
2868 PR java/23230:
2869 * parse.y (maybe_use_access_method): Generalize check from
2870 java.lang.Object to any superclass of current_class
2871
2872 2005-08-08 Nathan Sidwell <nathan@codesourcery.com>
2873
2874 * class.c (build_class_ref): Wrap the primary class type in a
2875 NOP_EXPR.
2876 * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
2877 primary class type from the NOP_EXPR in which it was placed.
2878
2879 2005-07-28 Diego Novillo <dnovillo@redhat.com>
2880
2881 * expr.c (expand_load_internal): Fix missing parens in
2882 predicate.
2883
2884 2005-07-28 Andrew Haley <aph@redhat.com>
2885
2886 * expr.c (expand_load_internal): Convert to destination type.
2887
2888 2005-07-22 Manfred Hollstein <mh@suse.com>
2889
2890 * verify-impl.c (check_class_constant): Fix uninitialised warnings.
2891 (check_constant): Likewise.
2892 (check_wide_constant): Likewise.
2893
2894 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
2895
2896 Make CONSTRUCTOR use VEC to store initializers.
2897 * check-init.c (check_init): Update to cope with VEC in
2898 CONSTRUCTOR_ELTS.
2899 * class.c (make_field_value, make_method_value, get_dispatch_table,
2900 make_class_data, emit_symbol_table, emit_catch_table,
2901 emit_assertion_table): Use build_constructor_from_list instead of
2902 build_constructor.
2903 * constants.c (build_constants_constructor): Likewise.
2904 * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
2905 VEC in CONSTRUCTOR_ELTS.
2906 * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
2907 PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
2908 of a TREE_LIST.
2909 * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
2910 CONSTRUCTOR_ELTS.
2911 * parse.y (build_new_array_init): Use build_constructor_from_list
2912 instead of build_constructor.
2913 (patch_new_array_init): Update to cope with VEC in
2914 CONSTRUCTOR_ELTS.
2915 (array_constructor_check_entry): Likewise.
2916
2917 2005-07-12 Tom Tromey <tromey@redhat.com>
2918
2919 * jvspec.c (lang_specific_driver): Put filelist_filename first on
2920 command line.
2921
2922 2005-07-12 Tom Tromey <tromey@redhat.com>
2923
2924 PR java/19674:
2925 * parse-scan.y (interface_member_declaration): Added
2926 empty_statement.
2927
2928 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
2929
2930 * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
2931 (LABEL_PENDING_CHAIN): Ditto.
2932 (LABEL_PC): Ditto.
2933 (DECL_BIT_INDEX): Ditto.
2934
2935 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
2936
2937 PR java/18119
2938 * parse.y (inner_class_accessible): New function. Logic moved from
2939 check_inner_class_access.
2940 (check_inner_class_access): Use inner_class_accessible.
2941 (resolve_inner_class): Simplify arguments. Create circularity hash
2942 here. Keep looking for classes if we found one that was inaccessible.
2943 Return the inaccessible class only if there is no other match.
2944 (do_resolve_class): Update for new resolve_inner_class arguments.
2945 Don't create circularity_hash here.
2946
2947 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
2948
2949 PR java/21045
2950 * parse.y (add_exception_to_throws): New function.
2951 (purge_unchecked_exceptions): Removed.
2952 (get_constructor_super): Renamed from verify_constructor_super. Now
2953 returns the super constructor after verification.
2954 (java_complete_expand_method): Don't use purge_unchecked_exceptions
2955 or save/restore the exception list.
2956 (check_thrown_exceptions): Add uncaught exceptions in anonymous
2957 class initializers and constructors to the throws clause of the method.
2958
2959 2005-07-05 Bryce McKinlay <mckinlay@redhat.com>
2960
2961 PR java/19674
2962 * parse.y (interface_member_declaration): Allow empty statements in
2963 interface declarations.
2964
2965 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
2966
2967 * Makefile.in (parse.o): Adjust dependencies.
2968 * parse.y: Include tree-dump.h.
2969
2970 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
2971
2972 * class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
2973 flag for quoting.
2974
2975 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
2976
2977 * parse.y (issue_warning_error_from_context): Call
2978 pp_output_formatted_text to be able to get the buffer.
2979
2980 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
2981
2982 * parse.y (issue_warning_error_from_context): Update for the
2983 renaming of pp_format_text to pp_format.
2984
2985 2005-06-28 Paul Brook <paul@codesourcery.com>
2986
2987 * decl.c (java_init_decl_processing): Call
2988 default_init_unwind_resume_libfunc.
2989
2990 2005-06-27 Tom Tromey <tromey@redhat.com>
2991
2992 PR java/21540, PR java/13788:
2993 * parse.y (java_complete_lhs) <CASE_EXPR>: Use
2994 fold_constant_for_init.
2995 (patch_binop): Added 'folding' argument. Updated all callers.
2996 (patch_unaryop) <NOP_EXPR>: New case.
2997 (fold_constant_for_init) <NOP_EXPR>: Likewise.
2998 (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
2999
3000 2005-06-25 Jan Hubicka <jh@suse.cz>
3001
3002 * builtins.c (define_builtin): Accept new flags parameter.
3003 (initialize_builtins): Mark the builtins const and nothrow accordingly.
3004
3005 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
3006
3007 * all files: Update FSF address in copyright headers.
3008
3009 2005-06-24 Tom Tromey <tromey@redhat.com>
3010
3011 * verify-impl.c (verify_instructions_0): Correctly handle
3012 situation where PC falls off end.
3013
3014 2005-06-23 Bryce McKinlay <mckinlay@redhat.com>
3015
3016 PR java/20697
3017 * parse.y (find_most_specific_methods_list): Remove special case for
3018 inner classes.
3019
3020 2005-06-15 Tom Tromey <tromey@redhat.com>
3021
3022 PR libgcj/21906:
3023 * class.c (make_method_value): Use soft_abstractmethod_node for
3024 abstract method.
3025 * java-tree.h (soft_abstractmethod_node): New define.
3026 (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
3027 * decl.c (java_init_decl_processing): Initialize
3028 soft_abstractmethod_node.
3029
3030 2005-06-13 Geoffrey Keating <geoffk@apple.com>
3031
3032 * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
3033
3034 2005-06-13 Per Bothner <per@bothner.com>
3035
3036 * expr.c (int highest_label_pc_this_method,
3037 start_label_pc_this_method): New globals.
3038 (lookup_label): Add start_label_pc_this_method to pc for label, and
3039 update highest_label_pc_this_method. This prevents conflicts between
3040 labels from different methods.
3041 * java-tree.h: Declare new globals.
3042 * jcf-parse.c (parse_class_file): If needed bump
3043 start_label_pc_this_method and reset highest_label_pc_this_method.
3044
3045 2005-06-13 Tom Tromey <tromey@redhat.com>
3046
3047 PR java/21844:
3048 * parse.y (nested_field_access_p): Handle case where outer field
3049 is inherited by enclosing class.
3050
3051 2005-06-12 Per Bothner <per@bothner.com>
3052
3053 * class.c (inherits_from_p): Do load_class if needed.
3054
3055 2005-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3056
3057 * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
3058 * java-tree.h (parse_error_context): Move...
3059 * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
3060 * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
3061 * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
3062
3063 2005-06-08 Roger Sayle <roger@eyesopen.com>
3064
3065 * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
3066
3067 2005-06-06 Jakub Jelinek <jakub@redhat.com>
3068
3069 * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
3070 msgid for argument name.
3071 * gjavah.c (error): Likewise.
3072 * java-tree.h (parse_error_context): Likewise.
3073 * parse.y (parse_error_context, parse_warning_context,
3074 issue_warning_error_from_context): Likewise.
3075
3076 2005-06-01 Tom Tromey <tromey@redhat.com>
3077
3078 PR java/21722:
3079 * class.c (build_static_field_ref): Don't fold constant fields if
3080 current class is from a .class file and we're using indirect
3081 dispatch.
3082
3083 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3084
3085 * java/verify-glue.c: Don't include errors.h and include toplev.h.
3086 * java/Make-lang.in: Updates dependencies.
3087
3088 2005-05-26 Ranjit Mathew <rmathew@hotmail.com>
3089
3090 PR java/19870.
3091 * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
3092 NESTED_FIELD_ACCESS_IDENTIFIER_P.
3093 (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
3094 (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
3095 * jcf-write.c (generate_classfile): Use
3096 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3097 OUTER_FIELD_ACCESS_IDENTIFIER_P.
3098 * parse.y (build_outer_field_access): Rename to
3099 build_nested_field_access. Support static fields and outer-to-inner
3100 class accesses.
3101 (outer_field_access_p): Rename to nested_field_access_p. Support
3102 static fields and generalise to outer-to-inner class and sibling
3103 inner class accesses.
3104 (outer_field_expanded_access_p): Rename to
3105 nested_field_expanded_access_p and support static fields.
3106 (outer_field_access_fix): Rename to nested_field_access_fix and
3107 support static fields.
3108 (build_outer_field_access_expr): Rename to
3109 build_nested_field_access_expr and support static fields.
3110 (build_outer_field_access_methods): Rename to
3111 build_nested_field_access_methods and support static fields. For
3112 static fields, generate accessors without class instance parameters.
3113 (build_outer_field_access_method): Rename to
3114 build_nested_field_access_method and support static fields.
3115 (build_outer_method_access_method): Use
3116 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3117 OUTER_FIELD_ACCESS_IDENTIFIER_P.
3118 (resolve_expression_name): Consider static field accesses across
3119 nested classes.
3120 (resolve_qualified_expression_name): Likewise.
3121 (java_complete_lhs): Use nested_field_access_fix instead of
3122 outer_field_access_fix.
3123 (patch_unary_op): Rename outer_field_flag to nested_field_flag.
3124 Use nested_field_expanded_access_p instead of
3125 outer_field_expanded_access_p. Use nested_field_access_fix instead
3126 of outer_field_access_fix.
3127 (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
3128 instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
3129
3130 2005-05-26 Bryce McKinlay <mckinlay@redhat.com>
3131
3132 * decl.c (GCJ_BINARYCOMPAT_ADDITION,
3133 GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
3134 (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
3135 MINOR_BINARYCOMPAT_ABI_VERSION): New.
3136 (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
3137 (parse_version): Calculate version ID using new method. Use bit-flags
3138 for flag_indirect_dispatch and flag_bootstrap_classes.
3139
3140 2005-05-25 Richard Henderson <rth@redhat.com>
3141
3142 PR libgcj/21692
3143 * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
3144 * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
3145 DECL_CONTEXT; avoid pushdecl_top_level.
3146 (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
3147 (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
3148 (layout_class_method): Likewise.
3149 * decl.c (java_mark_cni_decl_local): New.
3150 (java_mark_class_local): Use it.
3151 * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
3152 (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
3153 (struct lang_decl_func): Add local_cni;
3154 (struct lang_decl_var): Add class_field, vtable.
3155 (java_mangle_decl): Declare.
3156 * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
3157 * mangle.c: Remove dup obstack.h; include langhooks-def.h.
3158 (mangle_obstack_1): New.
3159 (java_mangle_decl): Remove obstack argument. Call mangle_class_field,
3160 mangle_vtable, and mangle_local_cni_method_decl. Fall back to
3161 lhd_set_decl_assembler_name for things that don't need mangling.
3162 (mangle_class_field): Rename from java_mangle_class_field, make
3163 static, don't call init_mangling or finish_mangling.
3164 (mangle_vtable): Similarly.
3165 (mangle_local_cni_method_decl): New.
3166 (init_mangling): Remove obstack argument. Use &mangle_obstack_1,
3167 gcc_assert, and MANGLE_RAW_STRING.
3168 (finish_mangling): Use gcc_assert, remove if 0 debugging code.
3169
3170 2005-05-25 DJ Delorie <dj@redhat.com>
3171
3172 * class.c (set_constant_value): Move warning control from if() to
3173 warning(OPT_*).
3174
3175 2005-05-24 Richard Henderson <rth@redhat.com>
3176
3177 * builtins.c (define_builtin): Don't call make_decl_rtl.
3178 * constants.c (build_constant_data_ref): Likewise.
3179 * class.c (build_utf8_ref): Likewise.
3180 (build_fieldref_cache_entry, build_static_field_ref): Likewise.
3181 (get_dispatch_table, layout_class_method): Likewise.
3182 (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
3183 by hand.
3184 (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
3185 (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
3186 to determine if we need a non-zero address.
3187 * decl.c (builtin_function): Don't call make_decl_rtl.
3188 (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
3189 * expr.c (build_known_method_ref): Don't call make_decl_rtl.
3190 * resource.c (compile_resource_data): Likewise.
3191 * parse.y (resolve_field_access): Re-word comment to avoid
3192 building DECL_RTL.
3193
3194 2005-05-24 Richard Henderson <rth@redhat.com>
3195
3196 * class.c (registered_class): Take it out of class_roots; turn into
3197 a vec of trees.
3198 (register_class): Make static. Don't duplicate decl node. Use
3199 VEC_safe_push.
3200 (emit_register_classes): Use VEC_iterate. Use output_constant
3201 instead of assemble_integer. Don't call mark_decl_referenced
3202 directly.
3203 * java-tree.h (register_class): Remove decl.
3204
3205 2005-05-19 Paolo Bonzini <bonzini@gnu.org>
3206
3207 PR java/17845
3208
3209 * parse.y (register_package, package_list): Remove.
3210 (package_declaration): Do not call register_package.
3211 (do_resolve_class): Do not use package_list.
3212
3213 2005-05-15 Gerald Pfeifer <gerald@pfeifer.com>
3214
3215 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
3216 unused variable.
3217
3218 2005-05-15 Tom Tromey <tromey@redhat.com>
3219
3220 PR java/21519:
3221 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
3222 NOTE_PUSH.
3223
3224 2005-05-12 Aaron Luchko <aluchko@redhat.com>
3225
3226 * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
3227
3228 2005-05-11 Tom Tromey <tromey@redhat.com>
3229
3230 * gcj.texi (Code Generation): Document -fbootstrap-classes.
3231 * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
3232 (parse_version): Use it.
3233 * lang.opt (-fbootstrap-classes): New option.
3234
3235 2005-05-10 Paolo Bonzini <bonzini@gnu.org>
3236
3237 PR java/21436
3238 * class.c (maybe_layout_super_class): Look for imports in this_class.
3239 * parse.h (ctxp_for_generation_last): New.
3240 (do_resolve_class): Add a parameter.
3241 * parse.y (ctxp_for_generation_last): New.
3242 (java_pop_parser_context): Add at end of list.
3243 (find_in_imports, find_in_imports_on_demand): Look in ctxp
3244 if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
3245 the given type are NULL.
3246 (do_resolve_class): Look into the imports of the new second parameter.
3247 Adjust recursive calls.
3248 (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
3249 calls to do_resolve_class.
3250 (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
3251 (java_complete_class): Do not do that here.
3252
3253 2005-05-03 Thomas Fitzsimmons <fitzsim@redhat.com>
3254
3255 PR java/20309
3256 * Make-lang.in (java): Add gjnih.
3257 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
3258 (GJNIH_OBJS): New variable.
3259 (gjnih$(exeext)): New target.
3260 (JAVA_MANFILES): Add gjnih.1.
3261 (java.uninstall): Add gjnih.1.
3262 (java.mostlyclean): Add gjnih.
3263 (java.maintainer-clean): Add gjnih.1.
3264 (java/gjavah-jni.o): New target.
3265 (.INTERMEDIATE): Add gjnih.pod.
3266 (gjnih.pod): New target.
3267 * config-lang.in (stagestuff): Add gjnih.
3268 * gcj.texi (Top): Add gjnih node.
3269 (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
3270 -bootclasspath options.
3271 (Invoking gjnih): New node.
3272 * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
3273 (TOOLNAME): New macro.
3274 (error): Replace hard-coded gcjh with TOOLNAME.
3275 (process_file): Likewise.
3276 (usage): Likewise.
3277 (version): Likewise.
3278 (help): Likewise. Add help output for -force, -old, -trace and -J
3279 options.
3280 (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
3281 (options): Add force, old, trace and J fields.
3282 (main): Handle -force, -old, -trace and -J options.
3283
3284 2005-05-03 Tom Tromey <tromey@redhat.com>
3285
3286 PR java/21245:
3287 * gjavah.c (main): Unlink output file on error.
3288
3289 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
3290
3291 * constants.c, jvgenmain.c, lang.opt, resource.c: Update
3292 copyright.
3293
3294 2005-04-29 Tom Tromey <tromey@redhat.com>
3295
3296 * expr.c (build_jni_stub): Updated for change to build_block.
3297
3298 2005-04-29 Andrew Pinski <pinskia@gcc.gnu.org>
3299
3300 * expr.c (force_evaluation_order): Declare 'saved' earlier.
3301
3302 2005-04-28 Andrew Haley <aph@redhat.com>
3303
3304 PR java/19285
3305 * java-tree.h (soft_resolvepoolentry_node): New.
3306 (alloc_constant_fieldref): Declare.
3307 * expr.c (expand_java_field_op): Don't call class_init for
3308 accesses to static fields with indirect dispatch.
3309 * builtins.c (initialize_builtins): Add "__builtin_expect".
3310 * decl.c (soft_resolvepoolentry_node): New variable.
3311 (java_init_decl_processing): Create a decl for
3312 "_Jv_ResolvePoolEntry".
3313 * class.c (build_fieldref_cache_entry): New function.
3314 (build_static_field_ref): Rewrite for indirect dispatch.
3315 * constants.c (find_name_and_type_constant_tree): New function.
3316 (alloc_constant_fieldref): Likewise.
3317 (build_constants_constructor): Handle CONSTANT_Fieldref and
3318 CONSTANT_NameAndType.
3319
3320 PR java/21115
3321 * expr.c (force_evaluation_order): Convert outgoing args smaller
3322 than integer.
3323
3324 2005-04-27 Bryce McKinlay <mckinlay@redhat.com>
3325
3326 * gcj.texi (libgcj Runtime Properties): Remove obsolete
3327 gnu.gcj.runtime.NameFinder.* system properties. Update documentation
3328 for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
3329
3330 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3331
3332 * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
3333 to `unlock_stream' with `unlock_std_streams'.
3334
3335 2005-04-25 Jakub Jelinek <jakub@redhat.com>
3336
3337 * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
3338 instead of just expr.h.
3339
3340 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3341
3342 * gjavah.c (main): Unlock the stdio streams.
3343 * jcf-dump.c (main): Likewise.
3344 * jv-scan.c (main): Likewise.
3345 * jvgenmain.c (main): Likewise.
3346
3347 2005-04-23 DJ Delorie <dj@redhat.com>
3348
3349 * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
3350 parse.y: Adjust warning() callers.
3351
3352 2005-04-21 Bryce McKinlay <mckinlay@redhat.com>
3353
3354 * gcj.texi (Object fields): Change "Integer" to "Int" in example
3355 contructor.
3356
3357 2005-04-20 Bryce McKinlay <mckinlay@redhat.com>
3358
3359 * gcj.texi: Fix typos and bogus example.
3360
3361 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
3362
3363 * except.c: Fix a comment typo.
3364
3365 2005-04-19 Julian Brown <julian@codesourcery.com>
3366
3367 * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
3368 indirect dispatch with PIC.
3369
3370 2005-04-18 Andrew Haley <aph@redhat.com>
3371
3372 * java-except.h (struct eh_range.handler): Remove unused field.
3373 (handle_nested_ranges): Remove function declaration.
3374 (sanity_check_exception_range): Add function declaration.
3375 * verify.c (verify_jvm_instructions): Remove call to
3376 handle_nested_ranges.
3377 * verify-glue.c (verify_jvm_instructions_new): Call
3378 sanity_check_exception_range.
3379 * except.c (link_handler, eh_range_freelist, link_handler,
3380 handle_nested_ranges): Remove.
3381 (add_handler): Rewrite.
3382 (sanity_check_exception_range): New function.
3383 (print_ranges): New function.
3384
3385 2005-04-13 Julian Brown <julian@codesourcery.com>
3386
3387 * decl.c (finish_method): Give methods once-only linkage.
3388
3389 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
3390
3391 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
3392
3393 2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3394
3395 * java-tree.h: Don't use PARAMS().
3396
3397 2005-04-07 Per Bothner <per@bothner.com>
3398
3399 * class.c (push_class): By default, suppress debug output.
3400 (finish_class): Enable debug output for classes we're emitting.
3401
3402 2005-04-07 Andrew Haley <aph@redhat.com>
3403
3404 * gcj.texi: Correct gcj-dbtool instructions.
3405
3406 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
3407
3408 * gcj.texi: Fix a typo.
3409 * lang.c: Fix a comment typo.
3410
3411 2005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com>
3412
3413 * gcj.texi (Invoking gij): Add descriptions of new -X options.
3414 Mention recognized-and-ignored compatibility options.
3415 (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
3416 JvFree.
3417 (About CNI): Add Memory allocation section.
3418
3419 2005-04-01 Tom Tromey <tromey@redhat.com>
3420
3421 * decl.c (java_init_decl_processing): Fix types of
3422 _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
3423 _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
3424 _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
3425
3426 2005-03-31 Jan Hubicka <jh@suse.cz>
3427
3428 * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
3429 * class.c: Include cgraph.h
3430 (make_local_functoin_alias): Mark aslias as needed.
3431 * resource.c: Include cgraph.h
3432 (compile_resource_data): Go via cgraph interface.
3433
3434 2005-03-30 Ian Lance Taylor <ian@airs.com>
3435
3436 * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
3437
3438 2005-03-30 Tom Tromey <tromey@redhat.com>
3439
3440 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
3441 inner_class_info_index==0 or outer_class_info_index==0.
3442
3443 2005-03-29 Tom Tromey <tromey@redhat.com>
3444
3445 * gcj.texi (libgcj Runtime Properties): Document
3446 gnu.gcj.runtime.endorsed.dirs.
3447
3448 2005-03-24 Anthony Green <green@redhat.com>
3449
3450 * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
3451 'gcj-dbtool -p'.
3452
3453 2005-03-23 Tom Tromey <tromey@redhat.com>
3454
3455 * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
3456 (parse_version): Use it.
3457
3458 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
3459
3460 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
3461
3462 2005-03-18 Andrew Haley <aph@redhat.com>
3463
3464 PR java/20522
3465 * decl.c (update_aliases): Don't update variables that are about
3466 to die.
3467 (maybe_poplevels): Add comment.
3468
3469 2005-03-17 Bryce McKinlay <mckinlay@redhat.com>
3470
3471 PR java/20502
3472 * jcf-parse.c (duplicate_class_warning): New function.
3473 (java_parse_file): Call duplicate_class_warning if
3474 CLASS_FROM_CURRENTLY_COMPILED_P is already set.
3475 (parse_zip_file_entries): Likewise. Also set
3476 CLASS_FROM_CURRENTLY_COMPILED_P.
3477
3478 2005-03-16 Andrew Haley <aph@redhat.com>
3479
3480 * expr.c (expand_java_arrayload): Don't generate a
3481 NullPointerException based on the type of the node.
3482 (build_java_array_length_access): Likewise.
3483
3484 2005-03-15 Zack Weinberg <zack@codesourcery.com>
3485
3486 * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
3487
3488 2005-03-11 Tom Tromey <tromey@redhat.com>
3489
3490 * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
3491 (libgcj Runtime Properties): Document the default .db.
3492
3493 2005-03-10 Ranjit Mathew <rmathew@hotmail.com>
3494
3495 PR java/20312
3496 * parse.y (checks_throws_clauses): Check exceptions list even when
3497 the base class does not come from a source file being compiled.
3498 (java_complete_lhs): Remove unused variable 'wfl'.
3499
3500 2005-03-09 Ranjit Mathew <rmathew@hotmail.com>
3501
3502 PR java/20338
3503 * decl.c (finish_method): Emit _Jv_InitClass for private static
3504 methods inside inner classes as well.
3505
3506 2005-03-08 Julian Brown <julian@codesourcery.com>
3507 * Revert patch from 2005-03-08 for causing bootstrap failure on
3508 ppc-darwin.
3509
3510 2005-03-08 Julian Brown <julian@codesourcery.com>
3511
3512 * decl.c (finish_method): Give methods once-only linkage.
3513
3514 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
3515
3516 * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
3517
3518 2005-03-07 Bryce McKinlay <mckinlay@redhat.com>
3519
3520 * verify-glue.c (vfy_is_assignable_from): Perform static check using
3521 can_widen_reference_to if the C++ ABI is in use.
3522 (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
3523 * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
3524 type_isresolved, init_state, set_pc, state_get_pc,
3525 _Jv_BytecodeVerifier): Clean up unused and disabled functions.
3526 (verify_fail): Report the current PC from the verifier context.
3527 (free_state): Remove #if 0 block to enable this function.
3528 (free_verifier_context): Call free_state on state_list iterator
3529 values before freeing them.
3530 * expr.c (pop_type_0): Pop correct type for error message when stack
3531 contains a multi-word type.
3532
3533 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
3534
3535 * expr.c (build_java_array_length_access): Remove !flag_new_verifier
3536 for known NULL array length access.
3537
3538 2005-03-07 Tom Tromey <tromey@redhat.com>
3539
3540 * gcj.texi (Invoking gcj-dbtool): Document '-f'.
3541
3542 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
3543
3544 * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
3545 typeck.c: Update copyright.
3546
3547 2005-03-06 Ranjit Mathew <rmathew@hotmail.com>
3548
3549 Remove xref code.
3550 * xref.c, xref.h: Remove file.
3551 * Make-lang.in (java/xref.o): Remove.
3552 * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
3553 * lang.c (flag_emit_xref): Remove definition.
3554 * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
3555 * typeck.c (convert): Remove use of do_not_fold.
3556 * parse.y (do_not_fold): Remove definition.
3557 (parser grammar): Remove xref code.
3558 (maybe_create_class_interface_decl, create_class): Likewise.
3559 (register_fields, method_header, finish_method_declaration): Likewise.
3560 (declare_local_variables, source_end_java_method): Likewise.
3561 (java_complete_expand_classes): Do not set do_not_fold.
3562 (java_complete_expand_method): Remove xref code.
3563 (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
3564 (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
3565 (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
3566 (patch_synchronized_statement, patch_throw_statement): Likewise.
3567 (maybe_build_class_init_for_field): Likewise.
3568
3569 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3570
3571 * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
3572 instead of IS_NON_TYPE_CODE_CLASS.
3573
3574 2005-03-04 Andrew Haley <aph@redhat.com>
3575
3576 PR java/18362
3577 * class.c (set_method_index): Don't set method_index if it is
3578 NULL_TREE.
3579 (layout_class_method): Don't complain about "non-static method foo
3580 overrides static method" in the case of indirect dispatch.
3581
3582 2005-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3583
3584 * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
3585 warning.
3586 * Make-lang.in: Don't elide warnings in jcf-io.c.
3587
3588 2005-03-01 Per Bothner <per@bothner.com>
3589
3590 PR java/8608
3591 * check-init.c (wfl): Remove static.
3592 (final_assign_error, check_init): Replace calls to parse_error_context
3593 by plain error.
3594 (check_init): Save, set, and restore input_location for each exp.
3595
3596 2005-03-01 Per Bothner <per@bothner.com>
3597
3598 * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
3599 if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
3600 * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
3601
3602 2005-03-01 Per Bothner <per@bothner.com>
3603
3604 * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
3605
3606 2005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
3607
3608 PR libgcj/16923
3609 * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
3610 JvVMOption.
3611
3612 2005-02-22 Tom Tromey <tromey@redhat.com>
3613
3614 PR java/20056:
3615 * verify-impl.c (EITHER): New define.
3616 (types_compatible): Handle it.
3617 (check_field_constant): Use it.
3618
3619 2005-02-18 Tom Tromey <tromey@redhat.com>
3620
3621 PR java/20056:
3622 * verify-impl.c (types_equal): Fixed test.
3623
3624 PR java/20056:
3625 * verify-glue.c (vfy_class_has_field): New function.
3626 * verify.h (vfy_class_has_field): Declare.
3627 * verify-impl.c (check_field_constant): Added 'putfield'
3628 argument.
3629 (verify_instructions_0): Updated.
3630 (types_equal): New function.
3631
3632 2005-02-14 Tom Tromey <tromey@redhat.com>
3633
3634 PR java/19921:
3635 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
3636 stack effect of multianewarray.
3637
3638 2005-02-14 Andrew Haley <aph@redhat.com>
3639
3640 PR java/19907
3641 * expr.c (expand_byte_code): Call promote_arguments().
3642 (promote_arguments): New function.
3643 * decl.c (check_local_unnamed_variable): Remove special case for
3644 new verifier.
3645 (find_local_variable): Promote all boolean types to int
3646 when searching for local variable decls.
3647
3648 2005-02-12 Kazu Hirata <kazu@cs.umass.edu>
3649
3650 * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
3651 parse-scan.y: Update copyright.
3652
3653 2005-02-11 Per Bothner <per@bothner.com>
3654
3655 PR java/15543
3656 * parse-scan.y (input_location): Remove variable.
3657 (main_input_filename): New - replaces input_filename, which isn't
3658 settable if USE_MAPPED_LOCATION.
3659 * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
3660 so we don't reference input_location or wfl_operator in that case.
3661 * jv-scan.c (expand_location): Remove - no longer used.
3662 (main): Set main_input_filename rather than input_filename.
3663
3664 2005-02-09 Richard Henderson <rth@redhat.com>
3665
3666 * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
3667 * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
3668
3669 2005-02-08 Marcin Dalecki <martin@dalecki.de>
3670
3671 * expr.c (add_type_assertion): Use the proper enumeration type,
3672 since this is what htab_find_slot() is expecting.
3673
3674 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
3675
3676 * gcj.texi: Update copyright dates.
3677
3678 2005-02-02 Tom Tromey <tromey@redhat.com>
3679
3680 * gcj.texi (libgcj Runtime Properties): Default library_control
3681 to 'cache'.
3682
3683 2005-02-02 Ranjit Mathew <rmathew@hotmail.com>
3684
3685 PR java/15543
3686 * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
3687 (modifiers) when square brackets are present in a declaration for
3688 a final paramter.
3689 * jv-scan.c (main): Set input_filename and input_line.
3690
3691 2005-02-01 Tom Tromey <tromey@redhat.com>
3692
3693 PR java/19742:
3694 * gjavah.c (get_field_name): Don't override name for JNI header.
3695
3696 2005-02-01 Roger Sayle <roger@eyesopen.com>
3697
3698 * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
3699 of unsigned types using iushr and lushr JVM bytecodes.
3700
3701 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
3702
3703 PR java/19738
3704 * gjavah.c (jni_print_float): Do not emit floating-point
3705 initialiser for a static final field.
3706 (jni_print_double): Likewise.
3707
3708 2005-02-01 Mark Mitchell <mark@codesourcery.com>
3709
3710 Revert:
3711 2005-01-31 Mark Mitchell <mark@codesourcery.com>
3712 * gjavah.c (print_field_info): Mark static data members of
3713 floating-point type with "__extension__".
3714
3715 2005-01-31 Mark Mitchell <mark@codesourcery.com>
3716
3717 * gjavah.c (print_field_info): Mark static data members of
3718 floating-point type with "__extension__".
3719
3720 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
3721
3722 PR java/9157
3723 * parse.y (build_string_concatenation): Remove redundant if.
3724 (patch_conditional_expr): Attempt to patch_string() the condition
3725 of a ?: as well, in addition to its other operands.
3726
3727 2005-01-25 Tom Tromey <tromey@redhat.com>
3728
3729 * Make-lang.in (java/java-tree-inline.o): Removed.
3730
3731 2005-01-25 Ranjit Mathew <rmathew@hotmail.com>
3732
3733 PR java/19070
3734 * parse.y (patch_binop): Allow comparisons against NULL only
3735 if the other operand is of a reference type.
3736
3737 2005-01-24 Tom Tromey <tromey@redhat.com>
3738
3739 * java-tree.h (gcj_abi_version): Declare.
3740 * class.c (make_class_data): Push gcj_abi_version into "next"
3741 field. Renamed field.
3742 * decl.c (gcj_abi_version): New global.
3743 (parse_version): New function.
3744 (java_init_decl_processing): Call it. Renamed 'next' field.
3745 Include version.h.
3746 (GCJ_BINARYCOMPAT_ADDITION): New define.
3747
3748 2005-01-24 Roger Sayle <roger@eyesopen.com>
3749
3750 PR java/19295
3751 * jcf-write.c (generate_bytecode_insns): Conversions between
3752 integer types of the same precision shouldn't generate widening
3753 or narrowing conversion bytecodes.
3754
3755 2005-01-22 Kazu Hirata <kazu@cs.umass.edu>
3756
3757 * java-except.h, java-tree.h: Remove unused prototypes.
3758
3759 2005-01-20 Andrew Pinski <pinskia@gcc.gnu.org>
3760
3761 PR java/18091:
3762 * jcf-write.c (perform_relocations): Don't call memcpy if source
3763 and destination are the same.
3764
3765 2005-01-17 Tom Tromey <tromey@redhat.com>
3766
3767 * verify-impl.c (get_short): Sign extend.
3768 (get_int): Likewise.
3769
3770 2005-01-12 Ranjit Mathew <rmathew@hotmail.com>
3771
3772 * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
3773 with TYPE_SIZE.
3774
3775 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
3776
3777 * verify.c: Revert to the version before the BC-ABI merge.
3778
3779 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
3780
3781 PR java/19277
3782 * check-init.c (check_init): Take care of references that do not
3783 have an explicit final variable declaration (e.g. array length
3784 access) for pre/post in/de-crement operators.
3785
3786 2005-01-08 Mark Wielaard <mark@klomp.org>
3787
3788 * parse.y (process_imports): Allocate (and free) original_name only
3789 when not already defined.
3790 * jcf-parse.c (read_class): Free results of find_class() and
3791 lrealpath().
3792 (java_parse_file): Keep pointer to head of file_list and free when
3793 done. Free result of lrealpath().
3794
3795 2005-01-05 Tom Tromey <tromey@redhat.com>
3796
3797 * gcj.texi (Standard Properties): java.ext.dirs is now used.
3798
3799 2004-12-20 Andrew Haley <aph@redhat.com>
3800
3801 * typeck.c: Use fold_convert for ints and booleans.
3802
3803 2004-12-17 Andrew Haley <aph@redhat.com>
3804
3805 PR java/18931
3806 * typeck.c (convert): Use a CONVERT_EXPR when converting to
3807 BOOLEAN_TYPE or CHAR_TYPE.
3808 (convert_to_boolean, convert_to_char) : Remove.
3809 * convert.h (convert_to_boolean, convert_to_char) : Remove.
3810 * expr.c (expand_load_internal): Do type conversion if type is not
3811 as required.
3812
3813 2004-12-13 Danny Smith <dannysmith@users.sourceforge.net>
3814
3815 PR target/18459
3816 * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
3817 Update comment.
3818
3819 2004-12-07 Andrew Haley <aph@redhat.com>
3820
3821 PR java/18811:
3822 * jcf-parse.c (load_class): Remove sanity test for missing inner
3823 class file.
3824
3825 2004-12-06 Tom Tromey <tromey@redhat.com>
3826
3827 * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
3828 (java.uninstall): Likewise.
3829 (java.maintainer-clean): Likewise.
3830 (.INTERMEDIATE): Likewise.
3831 (java.install-man): Likewise.
3832 (gcj-dbtool.pod): New target.
3833 * gcj.texi (Code Generation): Document -findirect-dispatch.
3834 (libgcj Runtime Properties): Document
3835 gnu.gcj.precompiled.db.path.
3836 (Top): Link to "Invoking gcj-dbtool".
3837
3838 2004-12-06 Tom Tromey <tromey@redhat.com>
3839
3840 PR java/14853:
3841 * java-tree.h (extract_field_decl): Declare.
3842 * parse.y (extract_field_decl): Renamed from
3843 strip_out_static_field_access_decl. No longer static.
3844 * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
3845
3846 2004-12-03 Tom Tromey <tromey@redhat.com>
3847
3848 * lang.c (flag_new_verifier): Define.
3849 (java_post_options): Set flag_new_verifier if indirect dispatch
3850 is being used.
3851 * lang.opt (fnew-verifier): Removed.
3852
3853 2004-12-03 Tom Tromey <tromey@redhat.com>
3854
3855 PR bootstrap/14614:
3856 * Make-lang.in (java.install-common): Only install transformed
3857 gcjh if gcj-cross exists.
3858
3859 2004-12-03 Andrew Haley <aph@redhat.com>
3860
3861 PR java/18812
3862 * except.c (link_handler): Patch 'outer' field of siblings of the
3863 range we're demoting.
3864
3865 2004-12-03 Andrew Haley <aph@redhat.com>
3866
3867 PR java/18697
3868 * class.c (layout_class_method): Don't fail to override a method
3869 simply because it has DECL_ARTIFICIAL set.
3870
3871 2004-12-02 Tom Tromey <tromey@redhat.com>
3872
3873 PR java/16675:
3874 * parse.y (craft_constructor): Special case null_pointer_node.
3875
3876 2004-12-02 Tom Tromey <tromey@redhat.com>
3877
3878 PR java/18741:
3879 * java-gimplify.c (java_gimplify_expr): Don't call
3880 SET_EXPR_LOCATION unless wrapped tree is an expression.
3881
3882 2004-11-27 Per Bothner <per@bothner.com>
3883
3884 * jcf-parse.c (set_source_filename): Improvement to Andrew's fix:
3885 Fix fencepost error in 'i', which got executed one too many times.
3886 Also, fold memcpy into explicit loop, as originally intended.
3887 Also, free temporary 'buf' which otherwise leaks.
3888
3889 2004-11-27 Per Bothner <per@bothner.com>
3890
3891 * expr.c (build_expr_wfl): Only declare last_file and last_filenode
3892 local static variables if not USE_MAPPED_LOCATION.
3893
3894 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
3895
3896 * class.c, decl.c, expr.c: Fix comment typos.
3897
3898 2004-11-26 Andrew Pinski <pinskia@physics.uc.edu>
3899
3900 PR java/18305
3901 * decl.c (end_java_method): Call
3902 attach_init_test_initialization_flags on all the init_decls.
3903 * parse.y (attach_init_test_initialization_flags): Move to ...
3904 * expr.c (attach_init_test_initialization_flags): here and
3905 support BIND_EXPR also.
3906 * java-tree.h (attach_init_test_initialization_flags): Prototype.
3907 * jcf-parse.c (parse_class_file): Don't disable class init
3908 optimization.
3909
3910 2004-11-25 Joseph S. Myers <joseph@codesourcery.com>
3911
3912 * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
3913 in diagnostics.
3914
3915 2004-11-24 Richard Henderson <rth@redhat.com>
3916
3917 * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
3918 vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
3919
3920 2004-11-24 Tom Tromey <tromey@redhat.com>
3921
3922 * verify.c (defer_merging): Don't use C++-style comment.
3923 * verify.h (java_opcode): Added java_opcode_end.
3924 * class.c (build_class_ref): Remove C++ comment and old FIXME.
3925
3926 * verify-impl.c (vfy_push_type): Removed bogus "return".
3927 (initialize_stack): Use vfy_alloc and vfy_free.
3928 (verify_instructions_0): Likewise.
3929
3930 * Merged gcj-abi-2-dev-branch to trunk.
3931
3932 2004-11-24 Andrew Haley <aph@redhat.com>
3933
3934 * jcf-parse.c (parse_class_file): Set file_start_location.
3935
3936 2004-11-10 Tom Tromey <tromey@redhat.com>
3937
3938 * class.c (make_field_value): Don't call build_static_field_ref.
3939 (build_static_field_ref): Don't emit direct references when using
3940 indirect dispatch.
3941
3942 * gcj.texi (Invoking gij): Document -verbose. Put -verbose and
3943 -verbose:class into man page synopsis.
3944
3945 2004-11-09 Tom Tromey <tromey@redhat.com>
3946
3947 * expr.c (build_java_arraystore_check): Still generate check if
3948 element type is itself an array.
3949
3950 2004-11-08 Tom Tromey <tromey@redhat.com>
3951
3952 * java-tree.h (soft_check_assignment_node): Removed.
3953 (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
3954 * decl.c (java_init_decl_processing): Don't initialize
3955 soft_check_assignment_node.
3956
3957 2004-11-05 Tom Tromey <tromey@redhat.com>
3958
3959 * class.c (layout_class_methods): Don't add Miranda methods when
3960 using indirect dispatch.
3961
3962 2004-11-05 Bryce McKinlay <mckinlay@redhat.com>
3963
3964 * class.c (make_class_data): Call emit_assertion_table to set the
3965 'assertion_table' field.
3966 (build_signature_for_libgcj): Move here from expr.c.
3967 (add_assertion_table_entry): New function. Callback for assertion
3968 hashtable traversal.
3969 (emit_assertion_table): New. Take class argument, and generate
3970 assertion table DECL based on the TYPE_ASSERTIONS hashtable.
3971 * decl.c (init_decl_processing): Define assertion_entry_type record.
3972 Push 'assertion_table' class field instead of 'verify'.
3973 * expr.c (type_assertion_eq): Compare 'assertion_code' field.
3974 (type_assertion_hash): Include 'assertion_code' in hash.
3975 (add_type_assertion): Rewritten. Take class and assertion_code
3976 arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
3977 (can_widen_reference_to): Use new add_type_assertion() arguments.
3978 * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
3979 JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
3980 (verify_identifier_node): Removed.
3981 (assertion_entry_type, assertion_table_type): New.
3982 (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
3983 assertion code definitions.
3984 (struct type_assertion): Add assertion_code. Rename 'source_type' and
3985 'target_type' to 'op1' and 'op2'.
3986 (add_type_assertion): Declare.
3987 (lang_printable_name_wls): Remove unused definition.
3988 * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
3989 to emit runtime assertion.
3990 (vfy_note_stack_type): Clean up non-C90 declarations.
3991 (vfy_note_local_type): Likewise.
3992 * verify.h (vfy_is_assignable_from): Declare.
3993 * verify-impl.c (is_assignable_from_slow): Remove unused function.
3994 (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
3995 instead of is_assignable_from_slow().
3996 (types_compatible): Reinstate ref_compatible() call.
3997
3998 2004-11-04 Tom Tromey <tromey@redhat.com>
3999
4000 * class.c (build_static_field_ref): Reverted previous patch.
4001
4002 * class.c (build_static_field_ref): Don't emit direct references
4003 when using indirect dispatch.
4004
4005 2004-11-03 Tom Tromey <tromey@redhat.com>
4006
4007 * expr.c (expand_java_arrayload): Set lhs_type_node.
4008 (expand_java_arraystore): Set rhs_type_node.
4009
4010 2004-11-02 Tom Tromey <tromey@redhat.com>
4011
4012 * jcf-parse.c (compute_class_name): Use filename length from zip
4013 directory, not strlen.
4014
4015 * expr.c (expand_invoke): Mark new interface methods as abstract.
4016
4017 2004-11-01 Tom Tromey <tromey@redhat.com>
4018
4019 * verify-impl.c (push_jump): Removed check for uninitialized
4020 objects.
4021 (push_exception_jump): Likewise.
4022 (handle_ret_insn): Likewise.
4023 (handle_jsr_insn): Likewise.
4024 (state_check_no_uninitialized_objects): Removed.
4025
4026 * decl.c (check_local_unnamed_variable): Recognize
4027 promoted-to-int parameters when using the new verifier.
4028 * expr.c (expand_java_arraystore): Explicitly request array type
4029 when using new verifier.
4030 (expand_java_arrayload): Likewise.
4031 (invoke_build_dtable): Don't pass object_type_node as
4032 expression argument to build_java_indirect_ref.
4033 (build_java_check_indexed_type): Do nothing.
4034 (build_java_arraystore_check): Handle case where array doesn't
4035 have array type.
4036 (build_java_array_length_access): Likewise.
4037 (expand_invoke): Handle case where interface overrides a method
4038 from Object.
4039 (pop_type_0): Always succeed for reference types.
4040 (process_jvm_instruction): Don't pop a value in a dead
4041 exception handler.
4042 (pop_arguments): Convert arguments to correct types.
4043
4044 2004-10-29 Andrew Haley <aph@redhat.com>
4045
4046 * jcf-parse.c (give_name_to_class): Remove line that was
4047 incorrectly merged.
4048
4049 2004-10-29 Andrew Haley <aph@redhat.com>
4050
4051 * jcf-parse.c (set_source_filename): Add code to build new sfname.
4052
4053 2004-10-20 Andrew Haley <aph@redhat.com>
4054
4055 * decl.c (end_java_method): Don't expand if flag_syntax_only.
4056
4057 2004-10-26 Tom Tromey <tromey@redhat.com>
4058
4059 * verify.h (vfy_notify_verified): Removed.
4060 * verify-glue.c (vfy_notify_verified): Removed.
4061
4062 2004-10-26 Tom Tromey <tromey@redhat.com>
4063
4064 * verify-impl.c (debug_print_state): Declare `i' before code.
4065 (merge_types): Modify `t' when it is null_type.
4066
4067 2004-10-26 Tom Tromey <tromey@redhat.com>
4068
4069 * verify-impl.c (type_print): Renamed from print. Now static and
4070 takes an argument.
4071 (debug_print_state): Use type_print.
4072
4073 2004-10-25 Tom Tromey <tromey@redhat.com>
4074
4075 * expr.c (build_invokeinterface): Compute correct offset for
4076 index into interface methods.
4077
4078 2004-10-20 Tom Tromey <tromey@redhat.com>
4079
4080 * java-tree.h (verify_jvm_instructions_new): Declare.
4081
4082 * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
4083 command line.
4084
4085 * verify-impl.c (verify_instructions): Correctly handle wide
4086 types on the stack.
4087 * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
4088 (vfy_get_component_type): Strip pointer types.
4089 (vfy_find_class): Use get_type_from_signature. Strip pointer
4090 types.
4091 Include java-except.h.
4092
4093 2004-10-20 Bryce McKinlay <mckinlay@redhat.com>
4094
4095 * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
4096 vfy_push_type_t, set_variable, add_new_state, merge_into,
4097 handle_jsr_insn, branch_prepass, check_class_constant,
4098 check_wide_constant, get_one_type, compute_static_types,
4099 verify_instructions_0): Clean up C99 declarations after statements.
4100
4101 2004-10-20 Tom Tromey <tromey@redhat.com>
4102
4103 * verify-impl.c (merge_refs): Compare reference against iterator,
4104 not ref2.
4105
4106 * verify-glue.c (vfy_tag): Mask off resolved flag.
4107
4108 2004-10-19 Tom Tromey <tromey@redhat.com>
4109
4110 * verify-impl.c (verify_instructions): Call vfy_note_local_type.
4111 (init_state_with_stack): Initialize `this_type' in state.
4112 (verify_method): Use debug_print.
4113 * verify-glue.c (vfy_is_primitive): Removed debugging print.
4114 (vfy_note_stack_depth): Reverted last patch.
4115 (vfy_note_stack_type): Note pointer to Object, not Object.
4116 (vfy_note_local_type): Likewise.
4117
4118 * verify.h (vfy_note_instruction_seen): Declare.
4119 * verify-glue.c (verify_jvm_instructions_new): Set
4120 BCODE_EXCEPTION_TARGET on target instruction.
4121 (vfy_note_instruction_seen): New function.
4122 * verify-impl.c (FLAG_INSN_SEEN): New define.
4123 (verify_instructions_0): Set flag on instruction. Save state for
4124 PC=0 later.
4125 (verify_instructions): Call vfy_note_instruction_seen.
4126
4127 * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
4128 (verify_jvm_instructions_new): Call method_init_exceptions,
4129 add_handler, and handle_nested_ranges.
4130 * verify-impl.c (verify_method): Return 1 on success.
4131 (verify_instructions_0): Save the state at PC=0.
4132
4133 * verify-impl.c (init_type_from_class): Set is_resolved and
4134 ref_next on new ref_intersection.
4135 (init_type_from_string): Likewise.
4136
4137 2004-10-15 Bryce McKinlay <mckinlay@redhat.com>
4138
4139 * expr.c (expand_bytecode): Use verify_jvm_instructions_new
4140 if flag_new_verifier is set.
4141 * java-tree.h (flag_new_verifier): Declare.
4142 * lang.opt (fnew-verifier): New option.
4143 * verify-impl.c: Work around namespace pollution by undef'ing
4144 'current_class'.
4145 (struct verifier_context): Make 'bytecode' const.
4146 (verify_fail_pc): Pass -1 PC argument to vfy_fail.
4147 (types_compatible): For the BC-ABI, always consider reference types
4148 compatible.
4149 (check_class_constant): Use vfr->current_class.
4150 (check_constant): Likewise.
4151 (check_wide_constant): Likewise.
4152 (check_field_constant): Check for 'L' at start of type name.
4153 (get_one_type): Return pointer instead of type. Set type result in
4154 caller via passed type pointer.
4155 (compute_argument_types): Update to use new get_one_type arguments.
4156 (compute_return_type): Likewise.
4157 (make_verifier_context): New. Allocate and initialize 'vfr'.
4158 (free_verifier_context): New. Free 'vfr' and its contents.
4159 (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
4160 and free_verifier_context.
4161
4162 2004-10-15 Tom Tromey <tromey@redhat.com>
4163
4164 * verify-glue.c (vfy_note_local_type): Mark argument as unused.
4165 * verify.h (vfy_fail): Fixed formatting.
4166
4167 * verify-impl.c (vfr): Fixed comment formatting.
4168 (collapse_type): New function.
4169 (verify_instructions): Notify compiler about type map.
4170 * verify.h (vfy_note_stack_depth): Updated.
4171 (vfy_note_stack_type): Likewise.
4172 (vfy_note_local_type): Likewise.
4173 (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
4174 Declare.
4175 * verify-glue.c (vfy_note_stack_depth): Correctly size type
4176 state. Added `method' argument.
4177 (vfy_note_stack_type): Renamed from vfy_note_type. Added `method'
4178 argument.
4179 (vfy_note_local_type): New function.
4180 (vfy_unsuitable_type): Likewise.
4181 (vfy_return_address_type): Likewise.
4182 (vfy_null_type): Likewise.
4183
4184 * verify.h (VFY_IN_GCC): Removed.
4185 (VFY_WANT_TYPEMAP): Removed.
4186 * verify-impl.c (verify_instructions_0): Removed useless "\".
4187 (struct state) <next>: Uncomment.
4188
4189 2004-10-13 Bryce McKinlay <mckinlay@redhat.com>
4190
4191 * verify-impl.c: Formatting fixes. Reformat C++-style comments to
4192 C-style.
4193
4194 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
4195
4196 * Make-lang.in (verify.o): Re-enabled this target.
4197 * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
4198 (vfy_get_interface): Likewise.
4199 (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
4200 * verify.h (verify_jvm_instructions_new): Declare.
4201 * verify-impl.c (free_state): Temporarily comment out unused
4202 function.
4203
4204 2004-10-06 Tom Tromey <tromey@redhat.com>
4205
4206 * java-tree.h (JV_STATE_READ): New enum value.
4207
4208 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
4209
4210 * verify.h: New file.
4211
4212 2004-10-05 Bryce McKinlay <mckinlay@redhat.com>
4213
4214 * verify-impl.c, verify-glue.c, verify.h: New files.
4215 * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
4216
4217 2004-09-24 Andrew Haley <aph@redhat.com>
4218
4219 * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
4220 for a slot if it's of pointer type.
4221
4222 2004-09-14 Tom Tromey <tromey@redhat.com>
4223
4224 * class.c (make_class_data): Correctly initialize "state" field.
4225 Initialize "engine" field.
4226 * decl.c (java_init_decl_processing): Add "engine" field.
4227
4228 2004-09-10 Andrew Haley <aph@redhat.com>
4229
4230 PR java/12760
4231 * expr.c (build_invokeinterface): Use fast method for interface
4232 dispatch.
4233 * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
4234 JTI_ITABLE_PTR_TYPE.
4235 (struct lang_type): Add itable_methods, itable_decl, itable_syms_decl.
4236 (emit_symbol_table): Add new arg, element_size.
4237 * decl.c (java_init_decl_processing): Initialize Class.itable.
4238 * class.c (GEN_TABLE): New macro.
4239 (gen_indirect_dispatch_tables): Use it. Add itable.
4240 (make_class_data): Add new arg for emit_symbol_table().
4241 Emit itable.
4242 (add_miranda_methods): Make sure search_class has been parsed.
4243 (emit_symbol_table): Add new arg, element_size.
4244
4245 2004-09-06 Andrew Haley <aph@redhat.com>
4246
4247 * verify.c (merge_types): Return Object for all merges of
4248 interfaces.
4249 * expr.c (add_type_assertion): Don't generate assertions when
4250 source type is array of Object.
4251
4252 2004-09-03 Andrew Haley <aph@redhat.com>
4253
4254 * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
4255
4256 * lang.c (java_post_options): Force flag_verify_invocations if
4257 we're not using indirect dispatch.
4258
4259 * expr.c (pop_type_0): Move test for interfaces before call to
4260 can_widen_reference_to().
4261 (build_signature_for_libgcj): Remove generation of canonical array
4262 type.
4263 (add_type_assertion): Canonicalize both arrays.
4264 Don't assert that type X can be assigned to Object.
4265 Don't assert that type X an be assigned to type X.
4266 Don't assert that Object can be assigned to type X.
4267 (can_widen_reference_to): Warn whenever we generate an assertion.
4268 (process_jvm_instruction): Use throwable_type_node for the type of
4269 an exception class.
4270
4271 2004-09-01 Andrew Haley <aph@redhat.com>
4272
4273 * decl.c (java_init_decl_processing): Change
4274 verify_identifier_node to "__verify".
4275 * expr.c (add_type_assertion): Use verify_identifier_node for name.
4276 * java-tree.h (verify_identifier_node): Change to "__verify".
4277
4278 * expr.c (build_signature_for_libgcj): New function.
4279 (add_type_assertion): Use it to construct signatures for
4280 source_type and target_type.
4281
4282 2004-08-27 Andrew Haley <aph@redhat.com>
4283
4284 * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
4285 (verify_identifier_node): New.
4286 (TYPE_VERIFY_METHOD): New.
4287 (struct type_assertion): New type.
4288 * expr.c (type_assertion_eq): New function.
4289 (type_assertion_hash): New function.
4290 (add_type_assertion): New function.
4291 (can_widen_reference_to): Call add_type_assertion().
4292 * decl.c (java_init_decl_processing): Add verify_identifier_node.
4293 * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
4294 (finish_class): Output TYPE_VERIFY_METHOD (type).
4295
4296 * decl.c (end_java_method): Nullify unused fields.
4297
4298 2004-08-17 Andrew Haley <aph@redhat.com>
4299
4300 * verify.c (defer_merging): Quieten.
4301 * jcf-parse.c (load_class): Only try to open a class file if it's
4302 java.lang.Object or if it's part of the current compilation.
4303 Check that the class we just tried to load is the class we just
4304 loaded. Quieten.
4305 (java_parse_file): Set flag_verify_invocations off if we're
4306 compiling from .class.
4307 (parse_zip_file_entries): Abort if we try to read a dummy class.
4308 * expr.c (can_widen_reference_to): Quieten.
4309 (build_invokevirtual): Abort if we try to invokevirtual an
4310 interface.
4311 (expand_invoke): Don't build a non-interface call to an interface.
4312 (build_instanceof): Don't do premature optimization if
4313 flag_verify_invocations is not set.
4314 * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
4315 from superclass.
4316 (build_static_field_ref): Add correct type conversion for
4317 field_address.
4318 (add_miranda_methods): Disable generation of Miranda methods for
4319 dummy classes.
4320 (layout_class_method): Don't complain about non-static method
4321 overrides static method with dummy classes.
4322
4323 2004-08-13 Tom Tromey <tromey@redhat.com>
4324
4325 * class.c (build_static_field_ref): Re-enable atable lookups for
4326 static fields.
4327
4328 * parse.y (strip_out_static_field_access_decl): Indentation fix.
4329
4330 2004-08-11 Tom Tromey <tromey@redhat.com>
4331
4332 * gcj.texi (libgcj Runtime Properties): Document new properties.
4333
4334 2004-08-06 Andrew Haley <aph@redhat.com>
4335
4336 * jcf-parse.c (load_class): Check that we really have loaded the
4337 class we're looking for.
4338
4339 2004-07-19 Andrew Haley <aph@redhat.com>
4340
4341 * verify.c (verify_jvm_instructions): Comment change only.
4342
4343 * typeck.c (build_java_array_type): Add size field to array name.
4344
4345 * java-tree.h (LOCAL_SLOT_P): New.
4346 (update_aliases): Add PC argument.
4347 (pushdecl_function_level): New function.
4348
4349 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
4350 MODIFY_EXPR, and SAVE_EXPR.
4351 (java_gimplify_modify_expr): New function.
4352
4353 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
4354 (expand_iinc): Pass PC to update_aliases().
4355 (STORE_INTERNAL): Likewise.
4356 (process_jvm_instruction): Likewise.
4357
4358 * decl.c (base_decl_map): New variable.
4359 (uniq): New variable.
4360 (update_aliases): Rewrite with more thorough checking.
4361 (debug_variable_p): New function.
4362 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
4363 (check_local_named_variable): Delete whole function.
4364 (initialize_local_variable): New function.
4365 (check_local_unnamed_variable): Add checks and comments.
4366 (find_local_variable): Rewrite.
4367 (java_replace_reference): New function.
4368 (function_binding_level): New variable.
4369 (pushdecl_function_level): New function.
4370 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
4371 (maybe_pushlevels): Call pushdecl() on each of the new decls.
4372 (start_java_method): Reset uniq. Create base_decl_map. Set
4373 function_binding_level.
4374 (end_java_method): Null unused fields to save memory.
4375
4376 2004-06-29 Andrew Haley <aph@redhat.com>
4377
4378 * except.c (expand_start_java_handler): Push a new binding level.
4379 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
4380 register_exception_range() to register where we'll do it.
4381 (expand_end_java_handler): Remove old bogus code. Replace with
4382 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
4383 the top of the expression we're curently building.
4384 (maybe_end_try): Delete.
4385 * decl.c (binding_level.exception_range): New field.
4386 (clear_binding_level): Add field exception_range. Reformat.
4387 (poplevel): Call expand_end_java_handler().
4388 (poplevel): Call java_add_stmt only if functionbody is false.
4389 (maybe_poplevels): Don't call maybe_end_try() from here.
4390 (end_java_method): Clear no longer used trees in function decl.
4391 (register_exception_range): New function.
4392 * java-tree.h (register_exception_range, struct eh_range): Declare.
4393
4394 2004-06-22 Andrew Haley <aph@redhat.com>
4395
4396 * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
4397 the otable.
4398 * check-init.c (get_variable_decl): Teach check-init about
4399 FIELD_DECLs addressed via the otable.
4400 * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
4401 CLASS_PARSED_P.
4402
4403 2004-05-28 Andrew Haley <aph@redhat.com>
4404
4405 * jcf-parse.c (load_class): Don't try to read a class that we've
4406 already read.
4407
4408 * expr.c (build_invokeinterface): Use the old-fashioned way of
4409 doing indirect dispatch: look up interfaces by name.
4410 * java-tree.h (enum java_tree_index): Add
4411 JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
4412 * decl.c (java_init_decl_processing): Add
4413 soft_lookupinterfacemethodbyname_node.
4414
4415 * gjavah.c (print_method_info): Final methods have vtable entries,
4416 so gjavah needs to output them.
4417 * class.c (layout_class_method): Generate vtable entries for final
4418 methods.
4419 * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
4420 dispatch, even if a method is final.
4421
4422 2004-05-25 Andrew Haley <aph@redhat.com>
4423
4424 * class.c (build_symbol_entry): Convert the names of constructors
4425 to init_identifier_node when generating an entry for the indirect
4426 dispatch table.
4427
4428 * expr.c (build_known_method_ref): Generate indirect calls for
4429 all methods marked DECL_EXTERNAL or TREE_PUBLIC.
4430
4431 2004-05-24 Andrew Haley <aph@redhat.com>
4432
4433 * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
4434 atable element is of the right type.
4435
4436 * class.c (build_static_field_ref): Cast pointer to correct type
4437 for field.
4438
4439 2004-04-20 Bryce McKinlay <mckinlay@redhat.com>
4440
4441 * Merged with HEAD as of 20040514. Diff against
4442 gcj-abi-2-merge-20040514.
4443
4444 2004-04-16 Andrew Haley <aph@redhat.com>
4445
4446 * verify.c (check_pending_block): Disable subroutine checks.
4447 (defer_merging): New function.
4448 (merge_types): If types are dummy, use defer_merging to combine them.
4449 (verify_jvm_instructions): If invocation is invokeinterface and
4450 target is dummy, assume target really is an interface.
4451
4452 * parse.y (patch_invoke): Break out call to java_create_object.
4453
4454 * lang.c (flag_verify_invocations): New.
4455
4456 * jcf-parse.c (load_class): If we've already failed to load a
4457 class, don't try again.
4458 (load_class): If we can't find a .class file, don't fail, but emit
4459 a warning.
4460 (parse_class_file): Don't act on dummy methods.
4461
4462 * java-tree.h (flag_verify_invocations): New.
4463 (TYPE_DUMMY): New.
4464 (lang_type.dummy_class): New field.
4465 (java_create_object): New function.
4466 (METHOD_DUMMY): New.
4467
4468 * expr.c (build_field_ref): Widen field offset.
4469 (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
4470 that each of its elements is compatible with the one we're
4471 popping.
4472 (pop_type_0): Issue a warning to say that we need to generate a
4473 runtime check.
4474 (java_create_object): New function.
4475 (build_field_ref): Only generate hard refs if we're not using
4476 indirect dispatch.
4477 (expand_java_field_op): If we're using !verify_invocations and we
4478 see a missing field, generate a decl for it.
4479
4480 (expand_invoke): If a class doesn't have the method we seek and
4481 we're using !flag_verify_invocations, generate a decl for the
4482 method now.
4483
4484 (build_known_method_ref): Always use indirect dispatch via the
4485 atable for static methods.
4486
4487 (expand_java_NEW): Break out object creation into new function,
4488 java_create_object.
4489
4490 (can_widen_reference_to): Issue a warning to say that we need to
4491 generate a runtime check.
4492
4493 * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
4494 (make_method_value): Also use index for interfaces.
4495 (make_class_data): Skip dummy field for inherited data.
4496 Don't build method array for dummy methods.
4497 Set size_in_byte to -1 when using inirect dispatch
4498 Don't build a hard class ref if we don't have a hard ref to our
4499 superclass, or if we're using inirect dispatch.
4500 Null out dispatch tables.
4501
4502 (layout_class_method): Don't complain about non-static method
4503 overrides static method is method is artificial.
4504
4505 (build_static_field_ref): Disable atable references to static
4506 fields for the time being.
4507
4508 (layout_class_methods): Check for CLASS_INTERFACE as
4509 well as CLASS_ABSTRACT.
4510
4511 2004-11-24 Steven Bosscher <stevenb@suse.de>
4512
4513 * class.c (make_class_data): Don't check flag_inline_functions.
4514 * lang.c (flag_really_inline): Remove unused flag.
4515 (java_handle_option): Don't set it here. Remove special handling
4516 of flag_inline_functions for Java.
4517 (java_init): Don't set flag_inline_trees here. Already done...
4518 (java_post_options): ...here. Don't clear flag_inline_functions.
4519
4520 2004-11-24 Steven Bosscher <stevenb@suse.de>
4521
4522 * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
4523 (java_gimplify_exit_block_expr): New function.
4524 (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
4525 LABELED_BLOCK_EXPR.
4526 * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
4527 (EXIT_BLOCK_EXPR): Likewise.
4528 * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
4529 (LABELED_BLOCK_BODY): Likewise.
4530 (EXIT_BLOCK_LABELED_BLOCK): Likewise.
4531 * jcf-write.c (generate_bytecode_insns): Don't handle the unused
4532 EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of
4533 TREE_OPERAND.
4534 * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
4535 (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
4536 EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the
4537 second operand of EXIT_BLOCK_EXPR.
4538 * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
4539 TREE_OPERAND.
4540 (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
4541
4542 2004-11-23 Ben Elliston <bje@au.ibm.com>
4543
4544 * xref.h (xref_flag_value): Remove.
4545 (xref_set_data, xref_get_data): Likewise.
4546 (xref_set_current_fp): Likewise.
4547 (XREF_NONE): Likewise.
4548 (XREF_GET_DATA): Likewise.
4549 * xref.c (xref_flag_value): Remove.
4550 (xref_set_data, xref_get_data): Likewise.
4551 (xref_set_current_fp): Likewise.
4552
4553 2004-11-23 Ben Elliston <bje@au.ibm.com>
4554
4555 * gjavah.c (output_directory): Make static.
4556 (temp_directory): Likewise.
4557
4558 2004-11-15 Tom Tromey <tromey@redhat.com>
4559
4560 * decl.c (instn_ptr_type_node): Removed.
4561 (lineNumbers_ptr_type_node): Removed.
4562 (jint_type): Removed.
4563 (jint_ptr_type): Removed.
4564
4565 2004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
4566
4567 PR java/15576
4568 * check-init.c (check_init): Ignore DECL_EXPR.
4569 * expr.c (always_initialize_class_p): Reenable.
4570 (build_class_init): Use a variable to store the decl. Also use
4571 boolean_false_node instead of integer_zero_node.
4572 * parse.y (attach_init_test_initialization_flags): Add a decl_expr
4573 to the block.
4574
4575 2004-11-08 Tom Tromey <tromey@redhat.com>
4576
4577 PR java/16843:
4578 * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
4579 generating a JNI header.
4580 (print_field_info): Handle JNI headers.
4581 (jni_print_float): Likewise.
4582 (jni_print_double): Likewise.
4583
4584 2004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
4585
4586 * decl.c (end_java_method): Remove duplicated code.
4587
4588 2004-11-06 Zack Weinberg <zack@codesourcery.com>
4589 Gerald Pfeifer <gerald@pfeifer.com>
4590
4591 * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
4592 as well.
4593
4594 2004-11-02 Bryce McKinlay <mckinlay@redhat.com>
4595
4596 PR java/17265
4597 * class.c: Reinstate 2004-08-18 patch.
4598 (make_local_function_alias): Don't create an alias for extern (native)
4599 functions.
4600
4601 2004-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
4602
4603 PR java/17265
4604 * class.c (make_local_function_alias): Revert 2004-08-18 change.
4605 (make_method_value): Likewise.
4606
4607 2004-10-21 Andrew Haley <aph@redhat.com>
4608
4609 PR java/18091:
4610 * jcf-parse.c (set_source_filename): Add code to build new sfname.
4611
4612 2004-10-20 Andrew Haley <aph@redhat.com>
4613
4614 * decl.c (end_java_method): Don't expand if flag_syntax_only.
4615 Remove duplicated code block.
4616
4617 2004-10-18 Steven Bosscher <stevenb@suse.de>
4618
4619 * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
4620 New rules to work around old Bison warnings.
4621
4622 2004-10-17 Steven Bosscher <stevenb@suse.de>
4623
4624 * class.c (ident_subst): Always alloca buffer.
4625 * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
4626 opcode after including javaop.def.
4627 * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
4628 conditional expression that exits, to avoid warnings.
4629 * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
4630 a user of an extension.
4631 * win32-host.c: Move check down to have non-empty file when
4632 WIN32 is not defined.
4633
4634 * Make-lang.in (java-warn): Add STRICT_WARN.
4635 (java/jcf-io.o-warn): Don't have Werror for this file.
4636 * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
4637
4638 2004-10-16 Hans-Peter Nilsson <hp@bitrange.com>
4639
4640 * expr.c (expr_add_location): Move declaration to before all
4641 statements.
4642 * parse.y (java_expand_classes): Ditto.
4643 * lex.c (java_peek_unicode): Ditto.
4644
4645 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
4646
4647 * check-init.c: Use %<, %> and %q for quoting in diagnostics,
4648 if possible, else convert `foo' to 'foo'.
4649 * class.c: Likewise.
4650 * decl.c: Likewise.
4651 * expr.c: Likewise.
4652 * jcf-io.c: Likewise.
4653 * jcf-parse.c: Likewise.
4654 * lang.c: Likewise.
4655 * lex.c: Likewise.
4656 * parse.h: Likewise.
4657
4658 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
4659
4660 * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
4661 rename parameter 'msg' to 'msgid' in function declaration.
4662 (issue_warning_error_from_context): Likewise.
4663 (yyerror): Rename parameter 'msg' to 'msgid'.
4664 (all over): Use new quoting style for diagnostics.
4665
4666 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
4667
4668 * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
4669 jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
4670 Update copyright.
4671
4672 2004-10-14 Matt Austern <austern@apple.com>
4673
4674 * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
4675 pointer_set_t* now.
4676
4677 2004-10-13 Tom Tromey <tromey@redhat.com>
4678
4679 PR java/15578:
4680 * lang.opt (--extdirs): Document.
4681 * jvspec.c (lang_specific_driver): Recognize -encoding and
4682 -extdirs.
4683
4684 2004-10-06 Ulrich Weigand <uweigand@de.ibm.com>
4685
4686 * parse.y (issue_warning_error_from_context): Use va_list *
4687 instead of va_list parameter.
4688 (parse_error_context): Update call.
4689 (parse_warning_context): Likewise.
4690
4691 2004-10-05 Zack Weinberg <zack@codesourcery.com>
4692
4693 * parse.y, parse-scan.y: Add list of diagnostic messages to
4694 insulate translation template from version of yacc/bison used
4695 to compile the grammar.
4696
4697 2004-10-05 Ranjit Mathew <rmathew@hotmail.com>
4698
4699 Prepare for %q, %< and %> in diagnostic message strings.
4700 * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
4701 Name second parameter 'msgid'.
4702 * parse.y: Additionally include pretty-print.h and diagnostic.h.
4703 (issue_warning_error_from_context): Use pretty-printer functions
4704 instead of vsprintf for constructing formatted messages. Rename
4705 parameter 'msg' to 'msgid'.
4706 (parse_error_context): Rename parameter 'msg' to 'msgid'.
4707 (parse_warning_context): Likewise.
4708
4709 2004-10-05 Andrew Haley <aph@redhat.com>
4710
4711 PR java/17779
4712 * jcf-parse.c (parse_zip_file_entries): If a class has a
4713 superclass and a TYPE_SIZE of zero, lay it out.
4714
4715 2004-09-30 Andrew Haley <aph@redhat.com>
4716
4717 PR java/17733
4718 * jcf-parse.c (compute_class_name): Rewrite.
4719
4720 2004-10-01 Jan Hubicka <jh@suse.cz>
4721
4722 * java.c (java_expand_body): Update call of tree_rest_of_compilation.
4723
4724 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
4725
4726 * lex.c: Fix a comment typo.
4727
4728 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
4729
4730 * java-tree.h: Fix a comment typo.
4731
4732 2004-09-30 Per Bothner <per@bothner.com>
4733
4734 Simplify lexer. Implement --enable-mapped-location support.
4735 * jcf-parse.c (parse_class_file): Use linemap_line_start.
4736 (parse_source_file_1): Pass filename as extra parameter, so we can call
4737 linemap_add and set input_location here, rather than in both callers.
4738 (read_class): Pass copied filename to parse_source_file_1.
4739 Don't initialize wfl_operator - only needed for source compilation.
4740 (read_class, jcf_parse): Call linemap_add with LC_LEAVE.
4741 * lex.h: Remove a bunch of debugging macros.
4742 * lex.h (struct_java_line, struct java_error): Remove types.
4743 (JAVA_COLUMN_DELTA): Remove - use java_lexer.next_colums instead.
4744 (struct java_lc_s): Remove prev_col field.
4745 (struct java_lexer): New fields next_unicode, next_columns, and
4746 avail_unicode. New position field, and maybe token_start field.
4747 Don't need hit_eof field - use next_unicode == -1 instead.
4748 (JAVA_INTEGERAL_RANGE_ERROR): Rename to JAVA_RANGE_ERROR.
4749 (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR): Update accordingly.
4750 * parse.h: Various changes for USE_MAPPED_LOCATION.
4751 (EXPR_WFL_EMIT_LINE_NOTE): XXX
4752 (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
4753 (struct parser_ctxt): New file_start_location field.
4754 Remove p_line, c_line fields since we no longer save lines.
4755 Remove elc, lineno, and current_jcf fields - no longer used.
4756 * parse.y: Updates for USE_MAPPED_LOCATION and new lexer.
4757 Don't use EXPR_WFL_ADD_COL since that isn't trivial with
4758 source_location and is probably not needed anymore anyway.
4759 Use new expr_add_Location function.
4760 (SET_EXPR_LOCATION_FROM_TOKEN): New convenience macro.
4761 (java_pop_parser_context): Minor cleanup.
4762 (java_parser_context_save_global, java_parser_context_restore_global,
4763 java_pop_parser_context): Save/restore input_location as a unit.
4764 (issue_warning_error_from_context): If USE_MAPPED_LOCATION take
4765 a source_location instead of a wfl context node.
4766 (check_class_interface_creation): input_filename is not addressable.
4767 (create_artificial_method): Calling java_parser_context_save_global
4768 and java_parser_context_restore_global is overkill. Instead,
4769 temporarily set input_location from class decl.
4770 (java_layout_seen_class_methods): Set input_location from method decl.
4771 (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
4772 (finish_loop_body): Likewise.
4773 * lex.c: Updates for USE_MAPPED_LOCATION. Use build_unknwon_wfl.
4774 (java_sprint_unicode): Take a character, not index in line.
4775 (java_sneak_uncode): Replaced by java_peek_unicode.
4776 (java_unget_unicode): No longer used.
4777 (java_allocate_new_line. java_store_unicode): Removed, since we
4778 no longer remember "lines".
4779 (java_new_lexer): Update for new data structures.
4780 (java_read_char): Move unget_value checking to java_read_unicode.
4781 (java_get_unicode, java_peek_unicode, java_next_unicode): New more
4782 efficient functions that are used directly when lexing.
4783 (java_read_unicode_collapsing_terminators): No longer needed.
4784 (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
4785 Re-organize to use java_peek_unicode to avoid java_unget_unicode.
4786 (java_parse_escape_sequence): Rewrite to be simpler / more efficient.
4787 (do_java_lex): Lots of movings around to avoid java_unget_unicode,
4788 combine switch branches, and test for common token kinds earlier.
4789 (java_lex_error): Rewrite.
4790 * jv-scan.c (expand_location): New function, copied from tree.c.
4791 (main): Set ctxp->filename instead of setting input_filename directly.
4792
4793 2004-09-30 Per Bothner <per@bothner.com>
4794
4795 More cleanup for --enable-mapped-location.
4796 * class.c (push_class): If USE_MAPPED_LOCATION don't set
4797 input_location here. Instead do it in give_name_to_class.
4798 (build_class_ref): Set DECL_ARTIFICIAL, for the sake of dwarf2out.
4799 * expr.c (expand_byte_code): Call linemap_line_start.
4800 * expr.c (build_expr_wfl): If USE_MAPPED_LOCATION, change final
4801 parameters to a source_location. Don't need EXPR_WFL_FILENAME_NODE.
4802 (expr_add_location): New function, if USE_MAPPED_LOCATION.
4803 * class.c (maybe_layout_super_class): Adjust build_expr_wfl call
4804 to USE_MAPPED_LOCATION case.
4805
4806 * java-tree.h (JAVA_FILE_P, ZIP_FILE_P): Remove unused macros.
4807 * jcf-parse.c (java_parse_file): Don't set input_filename.
4808 Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
4809 Create a list of TRANSLATION_UNIT_DECL.
4810 (current_file_list): Is now a TRANSLATION_UNIT_DECL chain. The
4811 reason is so we can set a DECL_SOURCE_LOCATION for each file.
4812 (java_parse_file): Don't set unused ZIP_FILE_P, JAVA_FILE_P..
4813 Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
4814 (file_start_location): New static.
4815 (set_source_filename): Avoid extra access to input_filename macro.
4816 Concatenate new name with class's package prefix.
4817 (set_source_filename, give_name_to_class): Update.
4818 (give_name_to_class): Set class's "line 0" input_location here.
4819 (parse_class_file): Set input_location as a unit.
4820
4821 * jcf-parse.c (load_class): Sanity test if missing inner class file.
4822
4823 2004-09-29 Per Bothner <per@bothner.com>
4824
4825 * java-tree.h: Redefine some macros and add some declaration
4826 to handle the USE_MAPPED_LOCATION case.
4827 * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2.
4828 * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1.
4829 * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
4830 USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
4831
4832 * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
4833 * decl.c (finish_method, java_add_stmt): Likewise.
4834 * java-gimplify.c (java-gimplify.c): Likewise.
4835 * jcf-write.c (generate_bytecode_insns): Likewise.
4836 * lang.c (java_post_options): Likewise - call linemap_add.
4837
4838 2004-09-29 Andrew Haley <aph@redhat.com>
4839
4840 PR java/17007
4841 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
4842 result of TRUNC_MOD_EXPR.
4843 (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
4844 * decl.c (java_init_decl_processing): Mark
4845 soft_lookupinterfacemethod_node and soft_instanceof_node pure.
4846
4847 2004-09-28 Tom Tromey <tromey@redhat.com>
4848
4849 PR java/15710:
4850 * class.c (add_miranda_methods): Load superinterface if not
4851 already loaded.
4852
4853 2004-09-28 Andrew Haley <aph@redhat.com>
4854
4855 PR java/17586
4856 * jcf-parse.c (load_class): Don't try to read a class that we've
4857 already read.
4858
4859 2004-09-28 Andrew Haley <aph@redhat.com>
4860
4861 * jcf-parse.c (load_class): Back out previous broken patch.
4862
4863 2004-09-28 Andrew Haley <aph@redhat.com>
4864
4865 PR java/17586
4866 * jcf-parse.c (load_class): Don't try to read a class that we've
4867 already read.
4868 Check that we really did read the right class.
4869
4870 2004-09-25 Tom Tromey <tromey@redhat.com>
4871
4872 PR java/17500:
4873 * parse.y (create_artificial_method): Use add_method_1.
4874
4875 2004-09-25 Kazu Hirata <kazu@cs.umass.edu>
4876
4877 * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
4878 comment typos.
4879 * gcj.texi: Fix typos.
4880
4881 2004-09-24 Tom Tromey <tromey@redhat.com>
4882
4883 PR java/15656:
4884 * parse.y (class_instance_creation_expression): Set `$$' to NULL
4885 in error parts of rule.
4886 (unary_expression): Don't call error_if_numeric_overflow when $1
4887 is NULL.
4888
4889 2004-09-24 Tom Tromey <tromey@redhat.com>
4890
4891 PR java/16789:
4892 * parse.y (resolve_qualified_expression_name): Set
4893 CAN_COMPLETE_NORMALLY on first call when chaining static calls.
4894 * expr.c (force_evaluation_order): Check for empty argument list
4895 after stripping COMPOUND_EXPR.
4896
4897 2004-09-23 Andrew Haley <aph@redhat.com>
4898
4899 PR java/16927:
4900 * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
4901 COND_EXPRs.
4902
4903 2004-09-23 Tom Tromey <tromey@redhat.com>
4904
4905 PR java/17329:
4906 * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
4907 where operand is null.
4908
4909 2004-09-23 Tom Tromey <tromey@redhat.com>
4910
4911 PR java/17380:
4912 * parse.y (not_accessible_p): Allow access to protected members
4913 even when class is not static.
4914
4915 2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
4916
4917 * Make-lang.in: Revert the gcc-none.o change.
4918
4919 2004-09-22 Nathan Sidwell <nathan@codesourcery.com>
4920
4921 * parse.y (patch_anonymous_class): VEC_space returns true if there
4922 is space.
4923
4924 2004-09-21 Matt Austern <austern@apple.com>
4925
4926 Fix bootstrap.
4927 * gjavah.c (free_method_name_list): Fix function definition so
4928 it's a proper C prototype.
4929
4930 2004-09-21 Tom Tromey <tromey@redhat.com>
4931
4932 PR java/17575:
4933 * gjavah.c (free_method_name_list): New method.
4934 (main): Call it.
4935
4936 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
4937 Zack Weinberg <zack@codesourcery.com>
4938
4939 * java-tree.def: Use tree_code_class enumeration constants
4940 instead of code letters.
4941 * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
4942 new tree-class enumeration constants.
4943
4944 2004-09-13 Tom Tromey <tromey@redhat.com>
4945
4946 PR java/17216:
4947 * class.c (layout_class_method): Put synthetic methods into the
4948 vtable.
4949
4950 2004-09-11 Andrew Pinski <apinski@apple.com>
4951
4952 * Make-lang.in (java/ggc-none.c): Change dependency
4953 for ggc.h into $(GGC_H).
4954
4955 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
4956
4957 * Make-lang.in (java/win32-host.o): Add dependency on
4958 coretypes.h.
4959 * win32-host.c: Add includes for coretypes.h, jcf.h
4960
4961 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
4962
4963 * Make-lang.in (GCJH_OBJS): Change dependency from
4964 ggc-none.o to java/ggc-none.o
4965 (JCFDUMP_OBJS): Likewise.
4966 (java/ggc-none.o): New target.
4967
4968 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
4969
4970 * boehm.c (get_boehm_type_descriptor): Adjust build_int_cst calls.
4971 * class.c (build_utf8_ref, build_static_field_ref,
4972 make_field_value, make_method_value, get_dispatch_table,
4973 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
4974 * constants.c (get_tag_node, build_ref_from_constant_pool,
4975 build_constants_constructor): Likewise.
4976 * decl.c (java_init_decl_processing): Likewise.
4977 * expr.c (build_java_array_length_access, build_newarray,
4978 expand_java_multianewarray, expand_java_pushc, expand_iinc,
4979 build_java_binop, build_field_ref, expand_java_add_case,
4980 expand_java_call, build_known_method_ref, build_invokevirtual,
4981 build_invokeinterface, build_jni_stub): Likewise.
4982 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
4983 * jcf-parse.c (get_constant): Likewise.
4984 * lex.c (do_java_lex): Likewise.
4985 * parse.y (patch_binop, patch_unaryop, patch_cast,
4986 build_newarray_node, patch_newarray): Likewise.
4987 * resource.c (compile_resource_data): Likewise.
4988 * typeck.c (build_prim_array_type): Likewise.
4989
4990 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
4991
4992 * decl.c (java_init_decl_processing): Adjust
4993 initialize_sizetypes call.
4994
4995 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
4996
4997 * jv-scan.c (fancy_abort): Add.
4998
4999 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
5000
5001 * expr.c (build_java_arrayaccess): Use convert to change
5002 len's type.
5003
5004 2004-08-19 Bryce McKinlay <mckinlay@redhat.com>
5005
5006 * class.c (make_local_function_alias): Allocate extra space for 'L'
5007 in name buffer. Reported by Thomas Neumann.
5008
5009 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
5010
5011 * parse.h (JAVA_RADIX10_FLAG): Rename to ...
5012 (JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning.
5013 * lex.c (do_java_lex): Adjust.
5014 (error_if_numeric_overflow): Likewise.
5015
5016 2004-08-18 Andrew Pinski <apinski@apple.com>
5017
5018 * class.c (make_local_function_alias): Only make a new decl if we
5019 support alias attribute on all decls.
5020
5021 2004-08-18 Bryce McKinlay <mckinlay@redhat.com>
5022
5023 * class.c (make_local_function_alias): New function. Create local
5024 alias for public method DECL.
5025 (make_method_value): Use make_local_function_alias.
5026 * parse.y (craft_constructor): Don't special-case anonymous classes.
5027 Always set ctor_name to init_identifier_node.
5028 (lookup_method_invoke): Call layout_class_method when creating
5029 anonymous class constructor.
5030
5031 2004-08-18 Richard Henderson <rth@redhat.com>
5032
5033 * java-gimplify.c (java_gimplify_expr): Move '2' handling into
5034 default case. Treat '<' similarly. Update for
5035 is_gimple_formal_tmp_var name change.
5036
5037 2004-08-17 Andrew Haley <aph@redhat.com>
5038
5039 * lang.c (lang_printable_name): Obey verbose flag.
5040 * parse.y (constructor_circularity_msg): Set VERBOSE arg for
5041 lang_printable_name().
5042 (verify_constructor_circularity, get_printable_method_name,
5043 check_abstract_method_definitions, java_check_regular_methods,
5044 java_check_abstract_methods, check_inner_class_access,
5045 fix_constructors, patch_method_invocation, patch_return):
5046 Likewise.
5047 * expr.c (pop_type_0): Likewise.
5048
5049 * java-tree.h (lang_printable_name_wls): Delete.
5050
5051 2004-08-16 Tom Tromey <tromey@redhat.com>
5052
5053 PR java/8473:
5054 * parse.y (primary): Changed for initialized and uninitialized
5055 array creations.
5056 (array_access): Handle array_creation_initialized.
5057 (array_creation_expression): Split into
5058 array_creation_initialized and array_creation_uninitialized.
5059
5060 2004-08-16 Andrew Haley <aph@redhat.com>
5061
5062 * jcf-write.c (find_constant_index): Canonicalize NaNs when
5063 generating bytecode.
5064
5065 2004-08-16 Elliot Lee <sopwith@redhat.com>
5066
5067 PR java/9677
5068 * jcf-parse.c (java_parse_file): Handle filenames with embedded
5069 spaces, and quoted filelists.
5070
5071 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
5072
5073 * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
5074 * class.c (build_utf8_ref, build_static_field_ref,
5075 make_field_value, make_method_value, get_dispatch_table,
5076 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
5077 * constants.c (get_tag_node, build_ref_from_constant_pool,
5078 build_constants_constructor): Likewise.
5079 * decl.c (java_init_decl_processing): Likewise.
5080 * expr.c (build_java_array_length_access, build_newarray,
5081 expand_java_multianewarray, expand_java_pushc, expand_iinc,
5082 build_java_binop, build_field_ref, expand_java_add_case,
5083 expand_java_call, build_known_method_ref, build_invokevirtual,
5084 build_invokeinterface, build_jni_stub): Likewise.
5085 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5086 * jcf-parse.c (get_constant): Likewise.
5087 * lex.c (do_java_lex): Likewise.
5088 * parse.y (patch_binop, patch_unaryop, patch_cast,
5089 build_null_of_type, patch_newarray): Likewise.
5090 * resource.c (compile_resource_data): Likewise.
5091 * typeck.c (build_prim_array_type): Likewise.
5092
5093 2004-08-10 Bryce McKinlay <mckinlay@redhat.com>
5094
5095 * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
5096 Don't create BLOCK here or call java_gimplify_block.
5097
5098 2004-08-09 H.J. Lu <hongjiu.lu@intel.com>
5099
5100 * java-tree.h (flag_deprecated): Removed.
5101 * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
5102 * parse.y (check_deprecation): Check warn_deprecated instead of
5103 flag_deprecated.
5104
5105 2004-08-06 Kelley Cook <kcook@gcc.gnu.org>
5106
5107 * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
5108 flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
5109 flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
5110 flag_check_references, flag_extraneous_semicolon, flag_deprecated,
5111 flag_force_classes_archive_check, flag_optimize_sci,
5112 flag_indirect_dispatch): Remove explicit declarations.
5113 * lang.opt: Add implicit declare/define/assign. Remove obsolete
5114 final comment.
5115
5116 2004-08-05 Michael Chastain <mec.gnu@mindspring.com>
5117
5118 PR bootstrap/14893
5119 * Make-lang.in (java.install-man): Install from either build
5120 tree or source tree, whichever has the file first.
5121
5122 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
5123
5124 * jcf-parse.c (get_constant): Adjust force_fit_type call.
5125 * lex.h (SET_LVAL_NODE_TYPE): Remove.
5126 * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
5127 (do_java_lex): Likewise. Adjust force_fit_type call.
5128
5129 2004-08-04 Roger Sayle <roger@eyesopen.com>
5130 Andrew Haley <aph@redhat.com>
5131
5132 * typeck.c (convert_ieee_real_to_integer): Call fold on the range
5133 checking trees as they're being built.
5134 (convert): Call convert_ieee_real_to_integer if we're
5135 converting a constant, even if we're writing a class file.
5136
5137 2004-08-02 Bryce McKinlay <mckinlay@redhat.com>
5138
5139 PR java/16701
5140 * parse.y (fold_constant_for_init): Call resolve_field_access with
5141 correct current_class context.
5142
5143 2004-08-01 Roger Sayle <roger@eyesopen.com>
5144
5145 * decl.c (update_aliases, initialize_local_variable): Replace calls
5146 to build with calls to buildN.
5147 * java-gimplify.c (java_gimplify_modify_expr): Likewise.
5148 * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
5149 * parse.h (BUILD_THROW): Likewise.
5150 * parse.y (switch_expression, synchronized_statement,
5151 catch_clause_parameter, array_creation_expression,
5152 conditional_expression, make_qualified_name,
5153 resolve_qualified_expression_name, patch_method_invocation,
5154 patch_invoke, build_method_invocation, build_new_invocation,
5155 build_assignment, patch_assignment, build_binop, patch_binop,
5156 build_string_concatenation, build_incdec, patch_unaryop,
5157 patch_cast, build_array_ref, build_newarray_node, patch_newarray,
5158 patch_return, build_if_else_statement, build_labeled_block,
5159 build_new_loop, build_loop_body, build_bc_statement,
5160 build_assertion, encapsulate_with_try_catch, build_try_statement,
5161 build_try_finally_statement, patch_synchronized_statement,
5162 emit_test_initialization): Likewise, replace build with buildN.
5163
5164 2004-07-28 Eric Christopher <echristo@redhat.com>
5165
5166 * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
5167 (java_unsafe_for_reeval): Ditto.
5168
5169 2004-07-26 <hp@bitrange.com>
5170
5171 * parse.y (build_super_invocation): Adjust declaration order to
5172 avoid declaration after statement.
5173
5174 2004-07-25 Bernardo Innocenti <bernie@develer.com>
5175
5176 * decl.c: Rename all identifiers named `class' to `cl'.
5177
5178 2004-07-25 Richard Henderson <rth@redhat.com>
5179
5180 * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
5181
5182 2004-07-23 Mike Stump <mrs@apple.com>
5183
5184 * boehm.c (set_bit): Improve type safety wrt unsignedness.
5185 * gjavah.c (throwable_p, decode_signature_piece,
5186 print_full_cxx_name, print_include, add_namelet, add_class_decl,
5187 process_file): Likewise.
5188 * jcf-dump.c (main): Likewise.
5189 * jcf-io.c (read_zip_member): Likewise.
5190 * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
5191 give_name_to_class, get_class_constant): Likewise.
5192 * jcf-write.c (find_constant_wide, push_long_const,
5193 generate_classfile): Likewise.
5194 * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
5195 * parse.y (read_import_dir): Likewise.
5196 * typeck.c (parse_signature_type): Likewise.
5197 * verify.c (verify_jvm_instructions): Likewise.
5198 * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
5199
5200 2004-07-23 Thomas Fitzsimmons <fitzsim@redhat.com>
5201
5202 * Make-lang.in: Replace rmic and rmiregistry references with
5203 grmic and grmiregistry.
5204 * gcj.texi: Likewise.
5205
5206 2004-07-20 Andrew Haley <aph@redhat.com>
5207
5208 PR java/16431.
5209 * verify.c (verify_jvm_instructions): Comment change only.
5210
5211 * typeck.c (build_java_array_type): Add size field to array name.
5212
5213 * java-tree.h (LOCAL_SLOT_P): New.
5214 (update_aliases): Add PC argument.
5215 (pushdecl_function_level): New function.
5216
5217 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
5218 MODIFY_EXPR, and SAVE_EXPR.
5219 (java_gimplify_modify_expr): New function.
5220
5221 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
5222 (expand_iinc): Pass PC to update_aliases().
5223 (STORE_INTERNAL): Likewise.
5224 (process_jvm_instruction): Likewise.
5225
5226 * decl.c (base_decl_map): New variable.
5227 (uniq): New variable.
5228 (update_aliases): Rewrite with more thorough checking.
5229 (debug_variable_p): New function.
5230 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
5231 (check_local_named_variable): Delete whole function.
5232 (initialize_local_variable): New function.
5233 (check_local_unnamed_variable): Add checks and comments.
5234 (find_local_variable): Rewrite.
5235 (java_replace_reference): New function.
5236 (function_binding_level): New variable.
5237 (pushdecl_function_level): New function.
5238 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
5239 (maybe_pushlevels): Call pushdecl() on each of the new decls.
5240 (start_java_method): Reset uniq. Create base_decl_map. Set
5241 function_binding_level.
5242 (end_java_method): Null unused fields to save memory.
5243
5244 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
5245
5246 * class.c (add_interface_do): Remove.
5247 (set_super_info, interface_of_p, maybe_add_interface,
5248 add_interface, make_class_data, layout_class,
5249 add_miranda_methods): Adjust BINFO accessors and addition.
5250 * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
5251 accessors.
5252 * jcf-write.c (generate_classfile): Likewise.
5253 * parse.y (patch_anonymous_class, check_inner_circular_reference,
5254 check_circular_reference, java_complete_class,
5255 check_abstract_method_definitions,
5256 java_check_abstract_method_definitions,
5257 check_interface_throws_clauses, java_check_abstract_methods,
5258 lookup_java_interface_method2,
5259 find_applicable_accessible_methods_list): Adjust BINFO accessors
5260 and addition.
5261 * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
5262
5263 2004-07-18 Roger Sayle <roger@eyesopen.com>
5264
5265 * builtins.c (max_builtin, min_builtin,
5266 java_build_function_call_expr): Replace calls to build with buildN.
5267 * class.c (build_class_ref, build_static_field_ref,
5268 get_dispatch_table, make_class_data, layout_class_method): Likewise.
5269 * constants.c (build_ref_from_constant_pool): Likewise.
5270 * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
5271 add_stmt_to_compound): Likewise.
5272 * except.c (build_exception_object_ref, expand_end_java_handler):
5273 Likewise.
5274 * java-gimplify.c (java_gimplify_case_expr,
5275 java_gimplify_default_expr, java_gimplify_block,
5276 java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
5277 * jcf-write.c (generate_bytecode_insns): Likewise.
5278 * typeck.c (convert_ieee_real_to_integer): Likewise.
5279
5280 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
5281
5282 * java-tree.h (builtin_function): Declare.
5283
5284 2004-07-16 Steven Bosscher <stevenb@suse.de>
5285
5286 * parse.y (java_complete_expand_methods, java_expand_classes): Don't
5287 abuse restore_line_number_status.
5288
5289 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
5290
5291 g++/15861
5292 * jcf-parse.c (java_emit_static_constructor): Specify default
5293 priority.
5294
5295 2004-07-13 Per Bothner <per@bothner.com>
5296
5297 * java-tree.h (all_class_filename): Remove useless macro.
5298 (enum java_tree_index): Remove JTI_ALL_CLASS_FILENAME constant.
5299 (BUILD_FILENAME_IDENTIFIER_NODE): Remove useless macro.
5300 * parse.y (java_parser_context_restore_global): Replace
5301 BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
5302 * jcf-parse.c (read_class, java_parse_file): Likewise.
5303
5304 2004-07-12 Bryce McKinlay <mckinlay@redhat.com>
5305
5306 PR java/16474
5307 gjavah.c (print_field_info): Emit constant only if field is static.
5308
5309 2004-07-11 Roger Sayle <roger@eyesopen.com>
5310
5311 * expr.c (java_truthvalue_conversion, flush_quick_stack,
5312 java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
5313 build_java_ret, build_java_throw_out_of_bounds_exception,
5314 build_java_array_length_access, java_check_reference,
5315 build_java_arrayaccess, build_java_arraystore_check, build_newarray,
5316 build_anewarray, expand_java_multianewarray, expand_java_arraystore,
5317 expand_java_arrayload, build_java_monitor, expand_java_return,
5318 expand_load_internal, expand_java_NEW, build_get_class,
5319 build_instanceof, expand_java_CHECKCAST, expand_iinc,
5320 build_java_soft_divmod, build_java_binop, build_field_ref,
5321 expand_compare, expand_java_goto, expand_java_switch,
5322 expand_java_add_case, build_class_init, build_known_method_ref,
5323 invoke_build_dtable, build_invokevirtual, build_invokeinterface,
5324 expand_invoke, build_jni_stub, expand_java_field_op,
5325 java_expand_expr, expand_byte_code, STORE_INTERNAL,
5326 force_evaluation_order, emit_init_test_initialization): Convert
5327 calls to "build" into calls to the prefered "buildN" functions.
5328
5329 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
5330
5331 * java-tree.h (set_block): Remove.
5332 * lang.c (java_clear_binding_stack): New.
5333 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
5334 * decl.c (struct binding_level): Remove this_block.
5335 (clear_binding_level): Likewise.
5336 (poplevel): Don't handle this_block.
5337 (set_block): Remove.
5338
5339 2004-07-10 Bryce McKinlay <mckinlay@redhat.com>
5340
5341 * class.c (common_enclosing_context_p): Remove statement with no
5342 side-effects.
5343
5344 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
5345
5346 PR java/8618
5347 * parse.y (create_anonymous_class): Remove 'location' argument. Use
5348 the WFL from TYPE_NAME to get line number for the decl. Fix comment.
5349 (craft_constructor): Inherit access flags for implicit constructor
5350 from the enclosing class.
5351 (create_class): Fix comment typo.
5352 (resolve_qualified_expression_name): Pass type of qualifier to
5353 not_accessible_p, not the type in which target field was found.
5354 (not_accessible_p): Handle inner classes. Expand protected
5355 qualifier-subtype check to enclosing instances, but don't apply this
5356 check to static members. Allow protected access to inner classes
5357 of a subtype. Allow private access within common enclosing context.
5358 (build_super_invocation): Get WFL line number info from current
5359 class decl.
5360 (build_incomplete_class_ref): Update for new create_anonymous_class
5361 signature.
5362 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
5363 common_enclosing_instance_p.
5364 * class.c (common_enclosing_context_p): New. Determine if types
5365 share a common enclosing context, even across static contexts.
5366 (common_enclosing_instance_p): Renamed from
5367 common_enclosing_context_p. Determines if types share a common
5368 non-static enclosing instance.
5369 * java-tree.h (common_enclosing_instance_p): Declare.
5370 * jcf-write.c (get_method_access_flags): New. Surpress private flag
5371 for inner class constructors.
5372 (generate_classfile): Use get_method_access_flags.
5373
5374 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
5375
5376 * class.c (interface_of_p): Check for null TYPE_BINFO.
5377
5378 2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
5379
5380 * class.c (make_class): Do not create binfo here.
5381 (set_super_info): Create it here.
5382 * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
5383
5384 2004-07-08 Richard Henderson <rth@redhat.com>
5385
5386 * expr.c (case_identity, get_primitive_array_vtable,
5387 java_expand_expr, emit_init_test_initialization): Remove.
5388 * java-tree.h (java_expand_expr): Remove.
5389 * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
5390
5391 2004-07-07 Per Bothner <per@bothner.com>
5392
5393 * class.c (build_static_field_ref): Add a NOP_EXPR; otherwise we
5394 get internal error due to mismatched types.
5395
5396 * gcj.texi (Invoking gij): Document new -verbose:class flag.
5397
5398 * gcj.texi (Linking): New node. Document -lgij usage.
5399
5400 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
5401
5402 * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
5403 (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
5404 * java/class.c (set_super_info, class_depth, interface_of_p,
5405 maybe_add_interface, add_interface, make_class_data,
5406 layout_class, add_miranda_methods): Adjust BINFO macros.
5407 * expr.c (can_widen_reference_to, lookup_field): Likewise.
5408 * jcf-write.c (generate_classfile): Likewise.
5409 * parse.y (patch_anonymous_class,
5410 check_inner_circular_reference, check_circular_reference,
5411 java_complete_class, check_abstract_method_definitions,
5412 java_check_abstract_method_definitions,
5413 check_interface_throws_clauses, java_check_abstract_methods,
5414 lookup_java_interface_method2,
5415 find_applicable_accessible_methods_list): Likewise.
5416 * typeck.c (find_method_in_interface): Likewise.
5417 * verify.c (merge_types): Likewise.
5418
5419 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
5420
5421 * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
5422 * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
5423
5424 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
5425
5426 * class.c (make_class): Use make_tree_binfo.
5427 (set_super_info, add_interface_do): Likewise.
5428 * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
5429
5430 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
5431
5432 * verify.c: Correct array element access formatting thinko.
5433
5434 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
5435
5436 * verify.c: Insert a short blurb at the start referring to the JVMS.
5437 (merge_type_state): Remove redundant nested if statement.
5438 (verify_jvm_instructions): Ensure current_subr is initialised to
5439 NULL_TREE.
5440 Minor formatting fixes all over the place.
5441
5442 2004-07-02 Richard Henderson <rth@redhat.com>
5443
5444 * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
5445
5446 2004-07-01 Richard Henderson <rth@redhat.com>
5447
5448 * class.c (registerClass_libfunc): Remove.
5449 (init_class_processing): Don't set it.
5450 (emit_register_classes): Take list_p parameter. Fill it in
5451 with _Jv_RegisterClass calls.
5452 * decl.c (java_init_decl_processing): Don't call
5453 init_resource_processing.
5454 * jcf-parse.c (java_emit_static_constructor): New.
5455 (java_parse_file): Call it.
5456 * resource.c (registerResource_libfunc): Remove.
5457 (init_resource_processing): Remove.
5458 (write_resource_constructor): Take list_p parameter. Fill it in
5459 with _Jv_RegisterResource calls.
5460 * java-tree.h: Update prototypes.
5461
5462 2004-06-29 Bryce McKinlay <mckinlay@redhat.com>
5463
5464 PR java/1262
5465 * class.c (layout_class_method): Do not override package-private
5466 method if its in a different package.
5467 (split_qualified_name): Move here from parse.y. Rename from
5468 breakdown_qualified. Add comment.
5469 (in_same_package): Move here from parse.y. Add comment.
5470 * java-tree.h (break_down_qualified, in_same_package): Declare.
5471 (in_same_package): Likewise.
5472 * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
5473 Callers updated.
5474
5475 2004-06-29 Andrew Haley <aph@redhat.com>
5476
5477 * except.c (expand_start_java_handler): Push a new binding level.
5478 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
5479 register_exception_range() to register where we'll do it.
5480 (expand_end_java_handler): Remove old bogus code. Replace with
5481 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
5482 the top of the expression we're curently building.
5483 (maybe_end_try): Delete.
5484 * decl.c (binding_level.exception_range): New field.
5485 (clear_binding_level): Add field exception_range. Reformat.
5486 (poplevel): Call expand_end_java_handler().
5487 (poplevel): Call java_add_stmt only if functionbody is false.
5488 (maybe_poplevels): Don't call maybe_end_try() from here.
5489 (end_java_method): Clear no longer used trees in function decl.
5490 (register_exception_range): New function.
5491 * java-tree.h (register_exception_range, struct eh_range): Declare.
5492
5493 2004-06-28 Bryce McKinlay <mckinlay@redhat.com>
5494
5495 * jcf-write.c (get_classfile_modifiers): Formatting fixes.
5496
5497 2004-06-27 Ranjit Mathew <rmathew@hotmail.com>
5498
5499 Formatting fixes.
5500 * expr.c (class_has_finalize_method): Fix method name indentation.
5501 (expand_java_call): Remove K&R style parameter declaration.
5502 (expand_invoke): Fix statement indentation.
5503 (expand_java_field_op): Likewise.
5504 * parse-scan.y: Fix typo.
5505 (reset_report): Fix method name indentation.
5506 * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
5507 line. Fix typos.
5508 * verify.c (verify_jvm_instructions): Document parameters, insert
5509 page break.
5510 * lang.c (lang_init_source): Fix method name indentation.
5511 * class.c (common_enclosing_context_p): Likewise.
5512 (emit_symbol_table): Fix parameter list indentation.
5513 * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
5514 parameter declaration.
5515 * constants.c: Fix copyright notice indentation.
5516 * typeck.c (find_method_in_superclasses): Fix parameter list
5517 indentation.
5518 (find_method_in_interfaces): Likewise.
5519 * zextract.c (makelong): Fix method name indentation.
5520
5521 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5522
5523 PR java/15715.
5524 * parse.y (create_interface): Set correct access modifiers for
5525 interfaces.
5526 * jcf-write.c (get_classfile_modifiers): New function.
5527 (generate_classfile): Use get_classfile_modifiers, not
5528 get_access_flags.
5529
5530 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5531
5532 * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
5533 dependency to current parser context, not NULL_TREE, for top-level
5534 classes.
5535 (jdep_resolve_class): Enable member access check for all inner
5536 class dependencies.
5537
5538 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5539
5540 * parse.y (qualify_and_find): Pass type decl, not identifier, to
5541 load_class.
5542
5543 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5544
5545 PR java/15734
5546 * expr.c (expand_java_field_op): Ensure that target class for static
5547 field access has been loaded.
5548
5549 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5550 Ranjit Mathew <rmathew@hotmail.com>
5551
5552 PR java/1207, java/16178
5553 * jcf-parse.c (load_class): Return immediately if passed a type decl
5554 where CLASS_FROM_SOURCE_P is set. Remove FIXME.
5555 * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
5556 before calling load_class.
5557 (qualify_and_find): Likewise.
5558 (find_in_imports_on_demand): Likewise.
5559 (find_applicable_accessible_methods_list): Likewise.
5560
5561 2004-06-24 Bryce McKinlay <mckinlay@redhat.com>
5562
5563 * parse.y (java_layout_seen_class_methods): Don't call load_class
5564 on class defined by source parser.
5565
5566 2004-06-23 Bryce McKinlay <mckinlay@redhat.com>
5567
5568 * parse.y (set_nested_class_simple_name_value): Removed.
5569 (java_complete_expand_class): Remove calls to
5570 set_nested_class_simple_name_value.
5571
5572 2004-06-22 Andrew Haley <aph@redhat.com>
5573 Ranjit Mathew <rmathew@hotmail.com>
5574
5575 Fixes PR java/16113.
5576 * decl.c (force_poplevels): Remove call to expand_end_bindings.
5577
5578 2004-06-22 Ranjit Mathew <rmathew@hotmail.com>
5579
5580 * parse.y (create_class): Correct diagnostic message about
5581 java.lang.Object extending anything else.
5582
5583 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5584
5585 * class.c (build_class_ref): Add new operand for COMPONENT_REF.
5586 (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
5587 * constants.c (build_ref_from_constant_pool): Likewise.
5588 * expr.c (build_java_array_length_access): Likewise.
5589 (build_get_class, build_field_ref, build_known_method_ref): Likewise.
5590 (invoke_build_dtable, build_invokevirtual): Likewise.
5591 (build_invokeinterface, java_expand_expr): Likewise.
5592 (emit_init_test_initialization): Likewise.
5593 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5594 * parse.y (make_qualifed_name, build_array_ref): Likewise.
5595
5596 2004-06-21 Andrew Haley <aph@redhat.com>
5597
5598 * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
5599 block.
5600
5601 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
5602
5603 * jcf.h (struct JCF): Change java_source, right_zip and finished
5604 to unsigned int.
5605 * lex.h (struct java_lexer): Change hit_eof, read_anything,
5606 byte_swap and use_fallback to unsigned int.
5607 * parse.h (struct _jdep): Change flag0 to unsigned int.
5608
5609 2004-06-17 Ranjit Mathew <rmathew@hotmail.com>
5610
5611 Fixes PR java/13948
5612 * parse.y (java_layout_seen_class_methods): Ensure class is loaded
5613 before trying to lay out its methods.
5614 * jcf-parse.c (read_class): Track parsed files using canonical paths
5615 obtained via lrealpath from libiberty.
5616 (java_parse_file): Likewise.
5617 (parse_source_file_1): Rename formal parameter to reflect its
5618 modified purpose. Minor formatting fix.
5619
5620 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
5621
5622 * class.c (emit_register_classes): Make the function uninlinable,
5623 do not set current_function_cannot_inline.
5624 * resource.c (write_resource_constructor): Do not reset
5625 flag_inline_functions around rest_of_compilation.
5626
5627 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
5628
5629 PR java/15769
5630 * expr.c (java_truthvalue_conversion): Handle
5631 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
5632 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
5633 i.e. return the expression.
5634
5635 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
5636
5637 * gjavah.c: Include version.h
5638
5639 2004-05-31 Bryce McKinlay <mckinlay@redhat.com>
5640
5641 * jcf-write.c (generate_bytecode_conditional): Correct handling
5642 of unordered conditionals. Add comment.
5643
5644 2004-05-29 Ranjit Mathew <rmathew@hotmail.com>
5645 Per Bothner <per@bothner.com>
5646
5647 * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
5648 local variable was initialised upon declaration.
5649 * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
5650 variable was final and initialised upon declaration.
5651 * check-init.c (check_final_reassigned): Give error only if a blank
5652 final is not definitely unassigned or if an initialised final is
5653 reassigned.
5654 (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
5655 assignment expressions. Remove case MODIFY_EXPR, label do_default.
5656 (check_init): Perform initialised-variable-removing-optimisation
5657 only on non-final local variables.
5658
5659 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
5660
5661 * jcf-write.c (generate_bytecode_conditional): Handle binops
5662 UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
5663 and LTGT_EXPR.
5664 (generate_bytecode_insns): Likewise.
5665
5666 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
5667
5668 * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
5669 UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
5670
5671 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
5672
5673 * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
5674 (Mixing with C++): Document JvAllocBytes and RawDataManaged.
5675
5676 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
5677
5678 * decl.c (struct binding_level): Add GTY marker. Compile
5679 binding_depth unconditionally.
5680 (current_binding_level, free_binding_level, global_binding_level):
5681 Likewise.
5682 (clear_binding_level): Unconditionally set binding_depth.
5683 (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
5684
5685 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
5686
5687 * lex.c (java_new_lexer): Set 'encoding'.
5688 (java_read_char): Improve error message for unrecognized characters.
5689 * lex.h (struct java_lexer): New field 'encoding'.
5690
5691 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
5692
5693 * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
5694
5695 2004-05-21 Mark Wielaard <mark@klomp.org>
5696
5697 * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
5698 extern.
5699
5700 2004-05-19 Paolo Bonzini <bonzini@gnu.org>
5701
5702 * typeck.c: Remove non-printable character 160.
5703
5704 2004-05-17 Ranjit Mathew <rmathew@hotmail.com>
5705
5706 * check-init.c: Correct minor typos.
5707
5708 2004-05-13 Diego Novillo <dnovillo@redhat.com>
5709
5710 * Make-lang.in, expr.c, java-gimplify.c: Rename
5711 tree-simple.[ch] to tree-gimple.[ch].
5712
5713 2004-05-14 Ranjit Mathew <rmathew@hotmail.com>
5714
5715 * java-gimplify.c (java_gimplify_expr): Correct minor typos.
5716
5717 2004-05-13 Diego Novillo <dnovillo@redhat.com>
5718
5719 Merge from tree-ssa-20020619-branch. See
5720 ChangeLog.tree-ssa for details.
5721
5722 * Make-lang.in, builtins.c, check-init.c, class.c,
5723 constants.c, decl.c, except.c, expr.c, java-except.h,
5724 java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
5725 lang.c, lang.opt, parse.y, resource.c: Merged.
5726 * java-gimplify.c: New file.
5727
5728 2004-05-10 Andrew Haley <aph@redhat.com>
5729
5730 * parse.y (create_class): Set TYPE_VFIELD.
5731 * decl.c (java_init_decl_processing): Likewise.
5732
5733 * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
5734 * class.c (make_method_value): Replace DECL_VINDEX with call to
5735 get_method_index().
5736 (get_dispatch_vector): Likewise.
5737 (layout_class_method): Likewise.
5738 Replace set of DECL_VINDEX with call to set_method_index().
5739 (set_method_index): New function.
5740 (get_method_index): New function.
5741 * java-tree.h (set_method_index): New function decl.
5742 (get_method_index): New function decl.
5743
5744 2004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
5745
5746 * parse.y (check_pkg_class_access): Add new argument
5747 and use it when cl is NULL to call lookup_cl on it.
5748 (parser_check_super_interface): Do not call lookup_cl.
5749 Pass this_decl to check_pkg_class_access and NULL
5750 instead of lookup_cl.
5751 (parser_check_super): Update for change in
5752 check_pkg_class_access.
5753 (do_resolve_class): Likewise.
5754 (process_imports): Likewise.
5755 (find_in_imports_on_demand): Likewise.
5756 (resolve_qualified_expression_name): Likewise.
5757
5758 2004-05-06 Ranjit Mathew <rmathew@hotmail.com>
5759
5760 Fixes PR java/9685, PR java/15073
5761 * parse.y (accessibility_string): New method.
5762 (not_accessible_field_error): Use accessibility_string()
5763 instead of java_accstring_lookup().
5764 (resolve_qualified_expression_name): Check with
5765 check_pkg_class_access() before allowing access using
5766 qualified names.
5767 Fix comment typo.
5768 Use check_pkg_class_access() instead of not_accessible_p()
5769 for unqualified types.
5770 (not_accessible_p): Use DECL_CONTEXT (member) instead of
5771 REFERENCE for package-private access checking.
5772 (patch_method_invocation): Use accessibility_string() instead
5773 of java_accstring_lookup().
5774
5775 2004-04-30 Ranjit Mathew <rmathew@hotmail.com>
5776
5777 Fixes PR java/15133
5778 * gjavah.c (struct method_name): Add member is_native.
5779 (overloaded_jni_method_exists_p): Match candidate method only if
5780 it is native.
5781 (print_method_info): Initialise is_native flag from the method's
5782 access flags.
5783
5784 2004-04-30 Roger Sayle <roger@eyesopen.com>
5785
5786 * builtins.c (java_builtins): Add acos, asin, ceil and floor.
5787 (initialize_builtins): Likewise, define acos, asin, ceil and floor.
5788
5789 2004-04-22 Roger Sayle <roger@eyesopen.com>
5790
5791 * resource.c (write_resource_constructor): Guard call to possibly
5792 NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
5793
5794 2004-04-19 Bryce McKinlay <mckinlay@redhat.com>
5795
5796 * class.c (make_class_data): Add new field aux_info.
5797 * decl.c (java_init_decl_processing): Push type and decl for
5798 `aux_info'.
5799
5800 2004-04-15 Bryce McKinlay <mckinlay@redhat.com>
5801
5802 * expr.c (expand_java_NEW): Don't use size argument for
5803 _Jv_AllocObject calls.
5804 * parse.y (patch_invoke): Likewise.
5805
5806 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
5807
5808 * expr.c (build_invokeinterface): Remove unused variables to
5809 fix warnings.
5810
5811 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
5812
5813 * class.c (get_interface_method_index): New function. Return dispatch
5814 index for interface method.
5815 (make_method_value): For interface methods, set index field to
5816 iface dispatch index, not DECL_VINDEX.
5817 * expr.c (build_invokeinterface): Use get_interface_method_index.
5818
5819 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5820
5821 * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
5822
5823 2004-03-31 Andrew Haley <aph@redhat.com>
5824
5825 PR java/14104
5826 * jcf-io.c (opendir_in_zip): Tidy up error handling.
5827
5828 2004-03-30 Zack Weinberg <zack@codesourcery.com>
5829
5830 * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
5831 form of GTY markers.
5832
5833 2004-03-25 Marcus Meissner <meissner@suse.de>
5834
5835 PR java/14689:
5836 * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
5837
5838 2004-03-23 Tom Tromey <tromey@redhat.com>
5839
5840 PR java/14315:
5841 * jcf-write.c (make_class_file_name): Don't report if mkdir
5842 failed with EEXIST.
5843
5844 2004-03-23 Tom Tromey <tromey@redhat.com>
5845
5846 * gcj.texi (Extensions): Document GCJ_PROPERTIES.
5847
5848 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
5849
5850 * class.c, gjavah.c, lang.c: Fix comment typos.
5851 * gcj.texi: Fix typos.
5852
5853 2004-03-19 Per Bothner <per@bothner.com>
5854
5855 * gcj.texi (Code Generation): Document new flags and assert defaults.
5856
5857 * class.c (assume_compiled_node_struct): Rename type to
5858 class_flag_node_struct, as it is now also used for enable_assertions.
5859 Rename assume_compiled_node typedef. Rename excludep field to value.
5860 (find_assume_compiled_node): Rename function to find_class_flag_node.
5861 Minor optimization - avoid needless strlen.
5862 (add_assume_compiled): Some tweaking and optimization.
5863 Rename and generalize to add_class_flag takem an extra parameter.
5864 (add_assume_compled): New just calls add_class_flag.
5865 (add_enable_assert, enable_assertions): New functions.
5866 (enable_assert_tree): New static.
5867 * java-tree.h (add_enable_assert, enable_assertions): New declarations.
5868 * lang.opt (fenable-assertions, fenable-assertions=,
5869 fdisable-assertions, fdisable-assertions=): New options.
5870 * lang.c (java_handle_option): Handle new options.
5871 * parse.y (build_incomplete_class_ref): Handle class$ in an inner
5872 class in an interface - create helper class nested in outer interface.
5873 (build_assertion): Short-circuit if enable_assertions is false.
5874
5875 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5876
5877 * java-tree.h: Changes throughout to add checking to macros
5878 and numerous whitespace changes.
5879 (VAR_OR_FIELD_CHECK): New macro.
5880 * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
5881 FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
5882
5883 2004-03-16 Per Bothner <per@bothner.com>
5884
5885 * jcf-jump.c (options): New --print-constants option.
5886 * gcj.texi (Invoking jcf-dump): Document --print-constants.
5887
5888 * jcf-dump.c (flag_print_constant_pool): Default to off.
5889 (print_constant_terse_with_index): New helper function.
5890 (various places): Check flag_print_constant_pool where missing.
5891 (main): If verbose set flag_print_constant_pool.
5892 (HANDLE_INNERCLASSES_ATTRIBUTE): Null inner class name is anonymous.
5893
5894 2004-03-15 Andrew Haley <aph@redhat.com>
5895
5896 PR java/14581
5897 * parse.y (java_complete_lhs): Check that final variable has an
5898 initializer.
5899
5900 2004-03-12 Andrew Haley <aph@redhat.com>
5901
5902 PR java/14551
5903 * typeck.c (convert): Clear TREE_OVERFLOW after an integer
5904 conversion.
5905
5906 2004-02-29 Roger Sayle <roger@eyesopen.com>
5907
5908 * jcf-parse.c (java_parse_file): Handle the case that input_filename
5909 is NULL.
5910
5911 2004-02-27 Per Bothner <per@bothner.com>
5912
5913 * parse.y (build_assertion): Re-do 02-25 change following Jeff Sturm
5914 suggestion: Use build_incomplete_class_ref.
5915 This fixes PR java/13508, java/11714.
5916
5917 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
5918
5919 * java/parse.h: Update copyright.
5920
5921 2004-02-26 Andrew Haley <aph@redhat.com>
5922
5923 PR java/14231:
5924 * parse.y (check_interface_throws_clauses): Check for
5925 !METHOD_INVISIBLE (iface_method).
5926 * class.c (layout_class_methods): Check for CLASS_INTERFACE as
5927 well as CLASS_ABSTRACT.
5928
5929 2004-02-25 Per Bothner <per@bothner.com>
5930
5931 * parse.y (build_assertion): If we're in an inner class, create the
5932 class$ helper routine in the outer class.
5933
5934 2004-02-19 Richard Henderson <rth@redhat.com>
5935
5936 * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
5937
5938 2004-02-16 Geoffrey Keating <geoffk@apple.com>
5939
5940 * Make-lang.in (java.install-man): Add extra dependencies.
5941
5942 2004-02-13 Geoffrey Keating <geoffk@apple.com>
5943
5944 * Make-lang.in: Install man pages under the same names
5945 (possibly transformed) as the program they document.
5946
5947 2004-02-10 Joseph S. Myers <jsm@polyomino.org.uk>
5948
5949 * gjavah.c: Include "intl.h".
5950 (error): New function.
5951 (main): Call gcc_init_libintl.
5952 (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
5953 print_stub_or_jni, process_file, main): Use error rather than
5954 fprintf.
5955 (print_method_info, usage, help, version, main): Mark strings for
5956 translation with _. Avoid splitting up sentences. Send
5957 information messages to stdout.
5958 * jcf-dump.c: Include "intl.h".
5959 (main): Call gcc_init_libintl.
5960 (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
5961 Mark error, usage and version messages for translation with _.
5962 Avoid splitting up sentences.
5963 * jv-scan.c: Include "intl.h".
5964 (fatal_error, warning): Change parameter s to msgid. Translate
5965 messages.
5966 (main): Call gcc_init_libintl.
5967 (usage, help, version): Mark error, usage and version messages for
5968 translation with _. Avoid splitting up sentences.
5969 * jvgenmain.c: Include "intl.h".
5970 (main): Call gcc_init_libintl.
5971 (usage, main): Mark error messages for translation with _.
5972 * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
5973 JVGENMAIN_OBJS): Add intl.o.
5974 (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
5975 java/jvgenmain.o): Update dependencies.
5976
5977 2004-02-08 Per Bothner <per@bothner.com>
5978
5979 * parse.y (resolve_qualified_expression_name): In case of inaccessible
5980 class don't use not_accessible_field_error, which can get confused.
5981
5982 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
5983
5984 Make-lang.in (po-generated): Delete.
5985
5986 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
5987
5988 * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
5989 Depend on target.h.
5990 * decl.c: Include target.h.
5991 (start_java_method): Replace PROMOTE_PROTOTYPES with
5992 targetm.calls.promote_prototypes.
5993 * expr.c: Include target.h.
5994 (pop_arguments): Replace PROMOTE_PROTOTYPES with
5995 targetm.calls.promote_prototypes.
5996 * parse.y: Include target.h.
5997 (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
5998 with targetm.calls.promote_prototypes.
5999
6000 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
6001
6002 * typeck.c: Update copyright.
6003
6004 2004-02-02 Tom Tromey <tromey@redhat.com>
6005
6006 * decl.c (java_init_decl_processing): Remove duplicate
6007 gnu/gcj/RawData.
6008
6009 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
6010
6011 * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
6012
6013 2004-01-28 Andrew Pinski <pinskia@physics.uc.edu>
6014
6015 * expr.c (build_field_ref): Move variable
6016 definition up.
6017
6018 2004-01-28 Andrew Haley <aph@redhat.com>
6019
6020 * expr.c (build_field_ref): Widen field offset.
6021
6022 2004-01-27 Andrew Haley <aph@redhat.com>
6023
6024 java/13273
6025 * parse.y (check_interface_throws_clauses): Make sure class_decl
6026 has been loaded.
6027
6028 2004-01-22 Jeff Sturm <jsturm@one-point.com>
6029
6030 PR java/13733
6031 * parse.y (patch_assignment): Don't modify lhs_type for
6032 reference assignments.
6033
6034 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
6035
6036 * Make-lang.in: Replace $(docdir) with doc.
6037 (java.info, java.srcinfo, java.man, java.srcman): New rules.
6038 (java.install-man): Revamp rule.
6039
6040 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
6041
6042 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
6043 GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
6044 instead of deferred backquote.
6045
6046 2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
6047
6048 * typeck.c (find_method_in_interfaces): Move variable
6049 definition up.
6050
6051 2004-01-16 Andrew Haley <aph@redhat.com>
6052
6053 PR java/13273:
6054 * typeck.c (shallow_find_method): New.
6055 (find_method_in_superclasses): New.
6056 (find_method_in_interfaces): New.
6057 (lookup_do): Rewrite.
6058 * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
6059
6060 * jcf-parse.c (read_class): Save and restore output_class.
6061 * decl.c (java_expand_body): Set output_class from fndecl.
6062
6063 2004-01-15 Michael Chastain <mec.gnu@mindspring.com>
6064
6065 * class.c (gen_indirect_dispatch_tables): Fix string length
6066 calculations.
6067
6068 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
6069
6070 * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
6071 (java.srcextra): Copy above back to source directory if requested.
6072 (po-generated): Delete reference to $(parsedir).
6073 (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
6074 Use implicit rule.
6075
6076 2004-01-14 Jan Hubicka <jh@suse.cz>
6077
6078 * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
6079 estimation.
6080
6081 2004-01-09 Mark Mitchell <mark@codesourcery.com>
6082
6083 * java-tree.h (java_expand_expr): Change prototype.
6084 * expr.c (java_expand_expr): Add alt_rtl parameter.
6085
6086 2004-01-09 Andrew Haley <aph@redhat.com>
6087
6088 PR java/12755:
6089 * parse.y (java_fix_constructors): Set output_class.
6090 (java_reorder_fields): Likewise.
6091 (java_layout_classes): Likewise.
6092 (java_expand_classes): Generate indirect dispatch tables.
6093 (java_expand_classes): Set output_class.
6094 (java_finish_classes): Likewise.
6095 * lang.c (java_init): Turn on always_initialize_class_p if we're
6096 using indirect dis[atch.
6097 (java_decl_ok_for_sibcall): Use output_class, not current_class.
6098 (java_get_callee_fndecl): Use class local atable.
6099 * jcf-parse.c
6100 (always_initialize_class_p): Decl moved to java-tree.h.
6101 (HANDLE_CLASS_INFO): Set output_class.
6102 (read_class): Likewise.
6103 (parse_class_file): Call gen_indirect_dispatch_tables.
6104 (parse_zip_file_entries): Set output_class.
6105 (java_parse_file): Set output_class. Don't emit symbol tables.
6106 * java-tree.h (output_class): New.
6107 Remove global declarations for otable, atable, and ctable.
6108 (always_initialize_class_p): moved here from decl.c.
6109 (DECL_OWNER): New.
6110 (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
6111 TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
6112 TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
6113 (struct lang_type): Add otable_methods, otable_decl,
6114 otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
6115 ctable_decl, catch_classes, type_to_runtime_map.
6116 * expr.c (build_field_ref): Make otable, atable, and ctable class
6117 local rather than global.
6118 (build_known_method_ref): Likewise.
6119 (build_invokeinterface): Likewise.
6120 (java_expand_expr): Pass runtime type (rather than actual type) to
6121 expand_start_catch.
6122 * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
6123 this class. Look up each class in that map to delete duplicates.
6124 (expand_end_java_handler): Pass runtime type (rather than actual
6125 type) to expand_start_catch.
6126 * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
6127 (do_nothing): New.
6128 (java_init_decl_processing): Rearrange things. Remove global
6129 declarations of otable, atable, and ctable.
6130 (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
6131 (java_expand_body): Set output_class.
6132 * constants.c (build_constant_data_ref): Use output_class, not
6133 current_class.
6134 (alloc_name_constant): Likewise.
6135 * class.c (gen_indirect_dispatch_tables): New.
6136 (build_class_ref): Generate hard reference to superclass, even if
6137 using indirect dispatch.
6138 (build_static_field_ref): Use class local atable.
6139 (make_class_data): Generate hard reference to superclass, even if
6140 using indirect dispatch.
6141 Generate symbolic references to interfaces when using indirect
6142 dispatch.
6143 (make_class_data): Emit otable, atable, and ctable.
6144 Make otable, atable, and ctable class local rather than global.
6145 (emit_catch_table): Make otable, atable, and ctable class local
6146 rather than global.
6147
6148 2003-12-25 Andrew Pinski <pinskia@physics.uc.edu>
6149
6150 * parse.y (catch_clause_parameter): Fix typo.
6151
6152 PR java/13404
6153 * parse.y: (catch_clause_parameter): Return early if $3, aka
6154 formal_parameter, is null.
6155
6156 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
6157
6158 * class.c: Remove uses of "register" specifier in
6159 declarations of arguments and local variables.
6160 * decl.c: Likewise.
6161 * expr.c: Likewise.
6162 * gjavah.c: Likewise.
6163 * jcf-dump.c: Likewise.
6164 * jcf-io.c: Likewise.
6165 * jcf-parse.c: Likewise.
6166 * jcf-write.c: Likewise.
6167 * keyword.h: Likewise.
6168 * parse.y: Likewise.
6169 * typeck.c: Likewise.
6170 * verify.c: Likewise.
6171
6172 2003-12-06 Kelley Cook <kcook@gcc.gnu.org>
6173
6174 * Make-lang.in (GCJ_CROSS_NAME): Delete.
6175 (java.install_common, java.install-man): Adjust for above.
6176 (java.uninstall): Likewise.
6177
6178 2003-12-03 Michael Koch <konqueror@gmx.de>
6179
6180 * class.c (make_class_data):
6181 Push field value to 'hack_signers' instead of 'signers'.
6182 * decl.c (java_init_decl_processing):
6183 Push field 'hack_signers' instead of 'signers'.
6184
6185 2003-12-03 Zack Weinberg <zack@codesourcery.com>
6186
6187 * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
6188 including iconv.h.
6189
6190 2003-12-03 Ralph Loader <rcl@ihug.co.nz>
6191
6192 PR java/12374:
6193 * parse.y (qualify_ambiguous_name): Remove lots of broken
6194 field access processing - there's no need to do that here,
6195 because we have resolve_field_access. Remove
6196 RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
6197 * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
6198 used.
6199
6200 2003-12-01 Jeff Sturm <jsturm@one-point.com>
6201
6202 Fix PR java/13237
6203 * parse.y (java_complete_lhs): Save location prior to patching
6204 CALL_EXPR.
6205
6206 2003-11-25 Mohan Embar <gnustuff@thisiscool.com>
6207
6208 PR java/12548
6209 * resource.c (write_resource_constructor): Append
6210 "_resource" to constructor identifier name.
6211
6212 2003-11-25 Jeff Sturm <jsturm@one-point.com>
6213
6214 Fix PR java/13183.
6215 * constants.c (cpool_for_class): New function.
6216 (outgoing_cpool): Remove global variable.
6217 (alloc_name_constant): Use cpool_for_class.
6218 (build_constants_constructor): Likewise.
6219 * decl.c (java_expand_body): Set current_class.
6220 * java-tree.h (outgoing_cpool) Remove declaration.
6221 (init_outgoing_cpool): Likewise.
6222 * jcf-parse.c (init_outgoing_cpool): Remove function.
6223 (parse_class_file): Don't call init_outgoing_cpool.
6224 * parse.y (java_complete_expand_methods): Don't call
6225 init_outgoing_cpool. Don't save outgoing_cpool.
6226 (java_expand_classes): Don't restore outgoing_cpool.
6227 (java_finish_classes): Likewise.
6228
6229 2003-11-24 Mohan Embar <gnustuff@thisiscool.com>
6230
6231 * Make-lang.in: (java.install-common) Add
6232 symlink for $(target_noncanonical)-gcjh for
6233 native builds.
6234
6235 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
6236
6237 * Make-lang.in (java.extraclean): Delete.
6238
6239 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
6240
6241 * Make-lang.in (check-java): Add.
6242
6243 2003-11-19 Jeff Sturm <jsturm@one-point.com>
6244
6245 Fix PR java/13024.
6246 * except.c (prepare_eh_table_type): Allocate variable-sized
6247 buffer `buf' with alloca.
6248
6249 2003-11-17 Jeff Sturm <jsturm@one-point.com>
6250
6251 Fix PR java/12857.
6252
6253 decl.c (java_init_decl_processing): Don't initialize
6254 class_not_found_type_node, no_class_def_found_type_node.
6255
6256 java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
6257 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
6258 (class_not_found_type_node, no_class_def_found_type_node):
6259 Don't define.
6260
6261 parse.y (build_dot_class_method_invocation): Add this_class
6262 argument. Qualify method invocations to a different class.
6263 (create_new_parser_context): Initialize saved_data_ctx to 0.
6264 (java_parser_context_save_global): Initialize saved_data_ctx to 1.
6265 (build_dot_class_method): Don't load classes. Register
6266 incomplete types.
6267 (build_incomplete_class_ref): Special cases for interfaces
6268 and inner classes. Move build_dot_class_method call to here...
6269 (patch_incomplete_class_ref): ...from here. Pass current_class
6270 to build_dot_class_method_invocation.
6271 (build_assertion): Pass class_type to
6272 build_dot_class_method_invocation.
6273 (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
6274
6275 2003-11-17 Jeff Sturm <jsturm@one-point.com>
6276
6277 Fix PR java/12739.
6278 * java-tree.h (BLOCK_EMPTY_P): Define.
6279 * parse.y (java_complete_lhs): Check for empty blocks
6280 in TRY_FINALLY_EXPR case.
6281
6282 2003-11-17 Andrew Haley <aph@redhat.com>
6283
6284 * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
6285 (struct lang_decl_var:freed): New variable.
6286 * decl.c (poplevel): Mark local vars that have gone out of scope.
6287 (push_jvm_slot): Don't use the RTL of a var that has gone out of
6288 scope.
6289
6290 2003-11-16 Jason Merrill <jason@redhat.com>
6291
6292 * Make-lang.in (java.tags): Create TAGS.sub files in each directory
6293 and TAGS files that include them for each front end.
6294
6295 2003-11-15 Tom Tromey <tromey@redhat.com>
6296
6297 * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
6298
6299 2003-11-12 Jason Merrill <jason@redhat.com>
6300
6301 PR optimization/12547
6302 * lang.c (java_tree_inlining_walk_subtrees): Just walk
6303 BLOCK_EXPR_BODY directly.
6304
6305 2003-11-12 Andrew Haley <aph@redhat.com>
6306
6307 PR java/11045
6308 * parse.y (fold_constant_for_init): Check that we really do have a
6309 constant.
6310
6311 PR java/11533
6312 * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
6313 init_test_decls being inlined.
6314
6315 PR java/12890:
6316 * parse.y (do_resolve_class): Check return value from
6317 breakdown_qualified().
6318
6319 2003-11-11 Tom Tromey <tromey@redhat.com>
6320
6321 PR java/12915:
6322 * parse.y (merge_string_cste): Handle case where we have a
6323 pointer that happens to be zero, not null_pointer_node.
6324
6325 2003-11-10 Tom Tromey <tromey@redhat.com>
6326
6327 * jcf-parse.c (classify_zip_file): Correctly compare
6328 filename_length against length of manifest file's name.
6329
6330 2003-11-08 Tom Tromey <tromey@redhat.com>
6331
6332 PR java/12894:
6333 * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
6334
6335 2003-11-06 Andrew Haley <aph@redhat.com>
6336
6337 * expr.c (java_stack_swap): Make sure destination stack slots are
6338 of the correct type.
6339
6340 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
6341
6342 * Make-lang.in (dvi): Move targets to $(docobjdir).
6343 (gcj.dvi): Simplify rule and adjust target.
6344 (gcj.info): Simplify rule.
6345 (gcj.pod): New intermediate rule.
6346 (gcjh.pod): Likewise.
6347 (jv-scan.pod): Likewise.
6348 (jcf-dump.pod): Likewise.
6349 (gij.pod): Likewise.
6350 (jv-convert.pod): Likewise.
6351 (rmic.pod): Likewise.
6352 (rmiregistry.pod): Likewise.
6353 (gcj.1): Delete.
6354 (gcjh.1): Delete.
6355 (jv-scan.1): Delete.
6356 (jcf-dump.1): Delete.
6357 (gij.1): Delete.
6358 (jv-convert.1): Delete.
6359 (rmic.1): Delete.
6360 (rmiregistry.1): Delete.
6361
6362 2003-11-02 Jeff Sturm <jsturm@one-point.com>
6363
6364 Fixes PR java/12866.
6365 * parse.y (resolve_qualified_expression_name): Move test
6366 for outer field access methods from here...
6367 (check_thrown_exceptions) ...to here.
6368
6369 2003-11-01 Kelley Cook <kcook@gcc.gnu.org>
6370
6371 * .cvsignore: Delete.
6372
6373 2003-10-28 Frank Ch. Eigler <fche@redhat.com>
6374
6375 * verify.c (verify_jvm_instructions): Don't warn about legal
6376 eh binding regions generated for example by jdk 1.4.1.
6377
6378 2003-10-24 David S. Miller <davem@redhat.com>
6379
6380 * jcf-parse.c (jcf_parse): Fix args to fatal_error().
6381
6382 2003-10-22 Andrew Haley <aph@redhat.com>
6383
6384 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
6385 (java_get_callee_fndecl): New.
6386
6387 * jcf-parse.c (java_parse_file): Call emit_catch_table().
6388
6389 * java-tree.h (ctable_decl): New.
6390 (catch_classes): New.
6391 (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
6392
6393 * decl.c (java_init_decl_processing): Add catch_class_type.
6394 Add ctable_decl.
6395 Add catch_classes field.
6396
6397 * class.c (build_indirect_class_ref): Break out from
6398 build_class_ref.
6399 (make_field_value): Check flag_indirect_dispatch.
6400 (make_class_data): Ditto.
6401 Tidy uses of PUSH_FIELD_VALUE.
6402 Add field catch_classes.
6403 (make_catch_class_record): New.
6404
6405 * java-tree.h (PUSH_FIELD_VALUE): Tidy.
6406
6407 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
6408
6409 * jcf-write.c: Follow spelling conventions.
6410 * parse.y: Likewise.
6411
6412 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
6413
6414 * ChangeLog: Fix typos.
6415 * expr.c: Fix comment typos.
6416 * jcf-write.c: Likewise.
6417 * lang.c: Likewise.
6418 * lex.c: Likewise.
6419 * mangle.c: Likewise.
6420 * parse-scan.y: Likewise.
6421 * parse.y: Likewise.
6422
6423 2003-10-22 Tom Tromey <tromey@redhat.com>
6424
6425 * expr.c (expand_byte_code): Only warn about dead bytecode when
6426 extra_warnings is set.
6427
6428 2003-10-22 Bryce McKinlay <bryce@mckinlay.net.nz>
6429
6430 Fix for PR java/12586.
6431 * mangle.c (find_compression_record_match): Don't iterate through
6432 package namespace elements unless they all match compression_table
6433 entries.
6434
6435 2003-10-20 Kelley Cook <kcook@gcc.gnu.org>
6436
6437 * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
6438 (generate-manpages): Likewise.
6439 (java.maintainer-clean): Likewise.
6440 (gcj.info): Likewise.
6441 (gcj.1): Likewise.
6442 (gcjh.1): Likewise.
6443 (jv-scan.1): Likewise.
6444 (jcf-dump.1): Likewise.
6445 (gij.1): Likewise.
6446 (jv-convert.1): Likewise.
6447 (rmic.1): Likewise.
6448 (rmiregistry.1): Likewise.
6449 (java.install-man): Likewise.
6450 (parse-scan.o): Move and define complete compile line.
6451 (parse.o): Likewise.
6452 (jcf-tree-inline.o): Move.
6453
6454 2003-10-20 Mark Mitchell <mark@codesourcery.com>
6455
6456 * Make-lang.in (info): Update dependencies.
6457 (java.install-info): Remove.
6458 ($(srcdir)/java/gcj.info): Replace with ...
6459 ($(docobjdir)/gcj.info): ... this.
6460
6461 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
6462
6463 * Make-lang.in: Replace uses of $(target_alias) with
6464 $(target_noncanonical).
6465
6466 2003-10-09 Tom Tromey <tromey@redhat.com>
6467
6468 * decl.c (java_init_decl_processing): Declare signers field.
6469 * class.c (make_class_data): Set signers field.
6470
6471 2003-10-09 Jason Merrill <jason@redhat.com>
6472
6473 * parse.y (patch_assignment): Use make_node to create a BLOCK.
6474 * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
6475 POINTER_TYPE.
6476
6477 2003-10-06 Mark Mitchell <mark@codesourcery.com>
6478
6479 * Make-lang.in (java.info): Replace with ...
6480 (info): ... this.
6481 (java.dvi): Replace with ...
6482 (dvi): ... this.
6483 (java.generated-manpages): Replace with ...
6484
6485 2003-10-03 Kelley Cook <kelleycook@wideopenwest.com>
6486
6487 * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
6488
6489 2003-10-01 Andrew Haley <aph@redhat.com>
6490
6491 * jcf-parse.c (java_parse_file): Write otable and atable.
6492 * java-tree.h (atable_methods): New.
6493 (atable_decl): New.
6494 (atable_syms_decl): New.
6495 (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
6496 JTI_ATABLE_SYMS_DECL. Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
6497 (symbol_*type): Rename method_symbol* to symbol*type.
6498 (emit_offset_symbol_table): Delete.
6499 (emit_symbol_table): New.
6500 (get_symbol_table_index): New.
6501 (atable_type): New.
6502 * expr.c (build_field_ref): Handle flag_indirect_dispatch.
6503 (build_known_method_ref): Likewise.
6504 (get_symbol_table_index): Rename from get_offset_table_index.
6505 Parameterize to allow re-use by differing types of symbol table.
6506 (build_invokevirtual): Pass table to get_offset_table_index.
6507 * decl.c (java_init_decl_processing): Push types and decls for
6508 atable and atable_syyms.
6509 * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
6510 (make_class_data): Add new fields atable and atable_syms.
6511 (emit_symbol_table): Rename from emit_offset_symbol_table.
6512 Parameterize to allow re-use by different types of symbol table.
6513 (build_symbol_entry): Renamed from build_method_symbols_entry.
6514
6515 2003-09-30 Roger Sayle <roger@eyesopen.com>
6516
6517 * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
6518 semantics for SAVE_EXPR, by caching the result in a temporary.
6519
6520 2003-09-28 Richard Henderson <rth@redhat.com>
6521
6522 * check-init.c (check_init): Save and restore input_location
6523 instead of file and line separately.
6524 * decl.c (java_expand_body): Likewise.
6525 * jcf-write.c (generate_bytecode_insns): Likewise.
6526 * parse.y (safe_layout_class): Likewise.
6527 * jcf-parse.c (read_class, parse_class_file): Likewise.
6528 (java_parse_file): Use %H for warning locator.
6529
6530 2003-09-28 Roger Sayle <roger@eyesopen.com>
6531
6532 * expr.c (java_check_reference): Use the semantics of COND_EXPRs
6533 with void-type branches instead of using a COMPOUND_EXPR.
6534
6535 2003-09-28 Jeff Sturm <jsturm@one-point.com>
6536
6537 * decl.c (java_optimize_inline, dump_function): Remove.
6538 * java-tree.h (java_optimize_inline): Remove declaration.
6539 * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
6540 * parse.y (source_end_java_method, java_expand_classes):
6541 Likewise. Remove dead code.
6542
6543 2003-09-27 Roger Sayle <roger@eyesopen.com>
6544
6545 * lang.c (java_init_options): Set flag_evaluation_order.
6546 * expr.c (force_evaluation_order): Don't attempt to force
6547 evaluation order of binary operations using save_expr.
6548 * parse.y (java_complete_lhs): No longer need to call
6549 force_evaluation_order when constructing binary operators.
6550
6551 2003-09-27 Alexandre Petit-Bianco <apbianco@redhat.com>
6552 Bryce McKinlay <bryce@mckinlay.net.nz>
6553
6554 PR java/1333:
6555 * parse.y (not_accessible_field_error): New function.
6556 (resolve_expression_name): Check field access permissions.
6557 (resolve_qualified_expression_name): Use
6558 not_accessible_field_error.
6559 (resolve_qualified_expression_name): Likewise.
6560
6561 2003-09-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6562
6563 * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
6564
6565 2003-09-23 Roger Sayle <roger@eyesopen.com>
6566
6567 * jcf-write.c (generate_bytecode_insns): Optimize binary operations
6568 with equal operands without side-effects.
6569
6570 2003-09-22 Jeff Sturm <jsturm@one-point.com>
6571
6572 * decl.c (java_init_decl_processing): Don't emit otable decls
6573 if flag_indirect_dispatch is not set.
6574
6575 2003-09-21 Richard Henderson <rth@redhat.com>
6576
6577 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6578 resource.c: Revert.
6579
6580 2003-09-21 Richard Henderson <rth@redhat.com>
6581
6582 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6583 resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
6584
6585 2003-09-20 Richard Henderson <rth@redhat.com>
6586
6587 * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
6588
6589 2003-09-18 Roger Sayle <roger@eyesopen.com>
6590
6591 * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
6592 * check-init.c (check_init): Likewise.
6593
6594 2003-09-18 Roger Sayle <roger@eyesopen.com>
6595
6596 * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
6597
6598 2003-09-16 Andrew Haley <aph@redhat.com>
6599
6600 * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
6601
6602 2003-09-17 Ranjit Mathew <rmathew@hotmail.com>
6603
6604 Fixes PR java/9577
6605 * mangle.c (find_compression_record_match): Skip
6606 over a "6JArray" (the array template mangled string)
6607 IDENTIFIER_NODE.
6608 (mangle_array_type): Correct minor typo.
6609 (atms): Move definition to the beginning.
6610
6611 2003-09-16 Bryce McKinlay <bryce@mckinlay.net.nz>
6612
6613 * class.c (add_miranda_methods): Ensure super-interfaces are laid
6614 out. Fix for PR java/12254.
6615
6616 2003-09-11 Richard Henderson <rth@redhat.com>
6617
6618 * parse.y (source_end_java_method): Update for new
6619 cgraph_finalize_function argument.
6620
6621 2003-09-09 Richard Henderson <rth@redhat.com>
6622
6623 * parse.y (source_end_java_method): Update call to
6624 cgraph_finalize_function.
6625
6626 2003-09-03 Jeff Sturm <jsturm@one-point.com>
6627
6628 * decl.c (java_expand_body): New function.
6629 * expr.c (build_class_init): Set DECL_IGNORED_P.
6630 * java-tree.h (start_complete_expand_method,
6631 java_expand_body): Declare.
6632 * jcf-parse.c (cgraph.h): Include.
6633 (java_parse_file): Handle flag_unit_at_a_time.
6634 * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
6635 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
6636 (java_estimate_num_insns): Use walk_tree_without_duplicates.
6637 (java_start_inlining): New function.
6638 * parse.h (java_finish_classes): Declare.
6639 * parse.y: Include cgraph.h.
6640 (block): Don't special-case empty block production.
6641 (craft_constructor): Set DECL_INLINE.
6642 (source_end_java_method): Handle flag_unit_at_a_time.
6643 Replace inline code with call to java_expand_body.
6644 (start_complete_expand_method): Remove static modifier.
6645 (java_expand_method_bodies): Patch function tree for
6646 class initialization and/or synchronization as needed.
6647 Don't begin RTL expansion yet.
6648 (java_expand_classes): Check flag_unit_at_a_time before
6649 calling finish_class.
6650 (java_finish_classes): New function.
6651 (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
6652 (patch_assignment): Set DECL_CONTEXT on temporary variable.
6653 (emit_test_initialization): Set DECL_IGNORED_P.
6654
6655 2003-09-03 Roger Sayle <roger@eyesopen.com>
6656
6657 * builtins.c (enum builtin_type): Delete unused enumeration.
6658 * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
6659
6660 2003-08-28 Tom Tromey <tromey@redhat.com>
6661
6662 * gcj.texi (Extensions): Document gcjlib URLs.
6663
6664 2003-08-20 Tom Tromey <tromey@redhat.com>
6665
6666 * gcj.texi (Extensions): Added xref.
6667 (libgcj Runtime Properties): Document
6668 gnu.gcj.runtime.VMClassLoader.library_control.
6669
6670 2003-08-20 Andrew Haley <aph@redhat.com>
6671
6672 * except.c (prepare_eh_table_type): Use new encoding for exception
6673 handlers when using -fno-assume-compiled.
6674
6675 2003-08-13 Tom Tromey <tromey@redhat.com>
6676
6677 * gcj.texi (Invoking gij): Document -X and -?.
6678
6679 2003-08-13 Mohan Embar <gnustuff@thisiscool.com>
6680
6681 * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
6682 GCJH_OBJS, JCFDUMP_OBJS
6683 * win32-host.c: Removed the unnecessary and broken dependency
6684 on jcf.h
6685
6686 2003-08-11 Tom Tromey <tromey@redhat.com>
6687
6688 * parse.y (java_check_regular_methods): Typo fixes. Call
6689 check_interface_throws_clauses. Use
6690 check_concrete_throws_clauses.
6691 (check_interface_throws_clauses): New function.
6692 (check_concrete_throws_clauses): New function.
6693 (hack_is_accessible_p): New function.
6694 (find_most_specific_methods_list): Added FIXME.
6695 * typeck.c (lookup_do): Use `flags' argument to decide what to
6696 do. Reimplemented.
6697 (lookup_argument_method_generic): New function.
6698 (lookup_argument_method2): Removed.
6699 * jcf.h (ACC_INVISIBLE): New define.
6700 * jcf-write.c (generate_classfile): Skip invisible methods.
6701 * class.c (add_miranda_methods): New function.
6702 (layout_class_methods): Use it.
6703 (get_access_flags_from_decl): Use ACC_INVISIBLE.
6704 * java-tree.h (METHOD_INVISIBLE): New define.
6705 (lang_decl_func) [invisible]: New field.
6706 (lookup_argument_method_generic): Declare.
6707 (SEARCH_INTERFACE): New define.
6708 (SEARCH_SUPER): Likewise.
6709 (SEARCH_ONLY_INTERFACE): Likewise.
6710 (SEARCH_VISIBLE): Likewise.
6711 (lookup_argument_method2): Removed declaration.
6712
6713 2003-08-05 Tom Tromey <tromey@redhat.com>
6714
6715 Fix for PR java/11600:
6716 * parse.y (java_complete_lhs): See whether we're calling a method
6717 on an array.
6718 (check_thrown_exceptions): Added `is_array_call' argument;
6719 fixed `clone' checking; updated all callers.
6720
6721 2003-08-05 Steven Bosscher <steven@gcc.gnu.org>
6722
6723 * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
6724
6725 2003-08-03 Tom Tromey <tromey@redhat.com>
6726
6727 * java-tree.h (METHOD_TRANSIENT): Removed.
6728 * decl.c (pushdecl): Removed some dead code.
6729 * class.c (get_access_flags_from_decl): Can't have transient
6730 method.
6731 (add_method_1): Can't have a transient method.
6732
6733 2003-07-28 Andreas Jaeger <aj@suse.de>
6734
6735 * jvspec.c: Convert to ISO C90 prototypes.
6736
6737 2003-07-25 Nathan Sidwell <nathan@codesourcery.com>
6738
6739 * decl.c (force_poplevels): Fix warning call.
6740
6741 2003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
6742
6743 * expr.c (expand_java_field_op): Don't use xxx_with_decl
6744 (expand_java_field_op): Likewise.
6745 * class.c (layout_class_method): Likewise
6746 (emit_register_classes): Likewise.
6747 * decl.c (pushdecl): Likewise.
6748 (poplevel): Likewise.
6749 (force_poplevels): Likewise.
6750 (give_name_to_locals): Likewise.
6751 * check-init.c (check_for_initialization): Likewise.
6752
6753 2003-07-24 Jason Merrill <jason@redhat.com>
6754
6755 * java-tree.h: Move boolean_type_node et al to the back end.
6756
6757 2003-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6758
6759 * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
6760 casts.
6761
6762 2003-07-19 Neil Booth <neil@daikokuya.co.uk>
6763
6764 * lang.opt: Don't show -MD_ and -MDD_.
6765
6766 2003-07-18 Neil Booth <neil@daikokuya.co.uk>
6767
6768 * lang-options.h: Remove.
6769 * lang.opt: Add help text.
6770
6771 2003-07-15 Kazu Hirata <kazu@cs.umass.edu>
6772
6773 * expr.c: Remove the last argument to expand_assignment().
6774
6775 2003-07-09 Jan Hubicka <jh@suse.cz>
6776
6777 * java-tree.h (DECL_NUM_STMTS): Rename to...
6778 (DECL_ESTIMATED_INSNS): ... this.
6779 * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
6780 New static functions.
6781 (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
6782 * parser.y (add_stmt_to_compound): Do not account statements.
6783
6784 2003-07-08 Mark Wielaard <mark@klomp.org>
6785
6786 * gcj.texi: CNI now expands to Compiled Native Interface.
6787
6788 2003-07-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6789
6790 * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
6791
6792 2003-07-07 Nathan Sidwell <nathan@codesourcery.com>
6793
6794 * expr.c (expand_byte_code): Adjist emit_line_note call.
6795
6796 2003-07-06 Neil Booth <neil@daikokuya.co.uk>
6797
6798 * lang.c (java_handle_option): Don't handle filenames.
6799
6800 2003-07-02 Zack Weinberg <zack@codesourcery.com>
6801
6802 * jcf-path.c: Don't default-define PATH_SEPARATOR nor
6803 DIR_SEPARATOR.
6804 Use FILENAME_CMP.
6805 * jcf-write.c: Don't default-define DIR_SEPARATOR.
6806 * jcf.h: Delete COMPARE_FILENAMES definition.
6807
6808 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
6809
6810 * lang.c (java_init_options): Update prototype.
6811
6812 2003-07-01 Nathan Sidwell <nathan@codesourcery.com>
6813
6814 * decl.c (poplevel): Adjust define_label call.
6815
6816 2003-06-27 Zack Weinberg <zack@codesourcery.com>
6817
6818 * gjavah.c (flag_jni): Make non-static.
6819 * parse-scan.y (ctxp): Make non-static.
6820
6821 * class.c (build_method_symbols_entry)
6822 * expr.c (get_offset_table_index)
6823 * jcf-parse.c (jcf_parse):
6824 Mark the definition static, matching the forward declaration.
6825
6826 2003-06-26 Neil Booth <neil@daikokuya.co.uk>
6827
6828 * lang.c (java_handle_option): Don't check for missing arguments.
6829
6830 2003-06-20 Nathan Sidwell <nathan@codesourcery.com>
6831
6832 * class.c (push_class): Use a location_t to save place.
6833 (emit_register_classes): Set input_location. Adjust
6834 expand_function_end call.
6835 * resource.c (write_resource_constructor): Likewise.
6836 * decl.c (end_java_method): Adjust expand_function_end call.
6837 * parse.y (source_end_java_method): Likewise.
6838
6839 2003-06-17 Robert Abeles <rabeles@archaelogic.com>
6840
6841 * lang.c (java_handle_option): Likewise.
6842
6843 2003-06-16 Neil Booth <neil@daikokuya.co.uk>
6844
6845 * lang.c (java_handle_option): Special-casing of optional
6846 joined arguments no longer needed.
6847 * lang.opt: Update switches that take optional argument.
6848
6849 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
6850
6851 * lang.opt: Declare Java.
6852 * lang.c (java_init_options): Update.
6853
6854 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
6855
6856 * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
6857
6858 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
6859
6860 * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
6861 * lang.c (java_handle_option): -MD and -MMD have an underscore.
6862 * lang.opt: -MD and -MMD have an underscore.
6863
6864 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
6865
6866 * class.c (emit_register_classes): Adjust init_function_start
6867 call.
6868 * decl.c (complete_start_java_method): Likewise.
6869 * resource.c (write_resource_constructor): Likewise.
6870
6871 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
6872
6873 * Make-lang.in: Update to use options.c and options.h.
6874 * lang.c: Include options.h not j-options.h.
6875 (java_handle_option): Abort on unrecognized option.
6876 (java_init_options): Request Java switches.
6877
6878 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
6879
6880 * Make-lang.in: Handle mostlyclean.
6881
6882 2003-06-11 Tom Tromey <tromey@redhat.com>
6883
6884 * lang.c (java_handle_option): Update dependency_tracking for
6885 OPT_MF case.
6886
6887 * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
6888 empty argument.
6889
6890 2003-06-10 Andrew Haley <aph@redhat.com>
6891
6892 * resource.c (write_resource_constructor): Use expand_expr to
6893 generate the address of the label attached to a resource.
6894 * Make-lang.in (java/resource.o): Add expr.h
6895
6896 2003-06-10 Andrew Haley <aph@redhat.com>
6897
6898 * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
6899 (java_decl_ok_for_sibcall): New.
6900
6901 2003-06-09 Neil Booth <neil@daikokuya.co.uk>
6902
6903 * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
6904 (java/j-options.c, java/j-options.h): New.
6905 * java-tree.h (resource_name, compile_resource_file,
6906 compile_resource_data): Constify.
6907 * jcf-write.c (jcf_write_base_directory): Similarly.
6908 * jcf.h (jcf_write_base_directory): Similarly.
6909 * lang.c: Include j-options.h.
6910 (cl_options_count, cl_options, string_option, java_decode_option,
6911 lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
6912 process_option_with_no): Remove.
6913 (resource_name): Constify.
6914 (LANG_HOOKS_HANDLE_OPTION): Override.
6915 (java_handle_option): New.
6916 (java_init): Don't call jcf_path_init.
6917 (java_init_options): Call jcf_path_init.
6918 * lang.opt: New.
6919 * resource.c (compile_resource_data, compile_resource_file): Constify.
6920
6921 2003-06-09 Nathan Sidwell <nathan@codesourcery.com>
6922
6923 * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
6924 (struct lang_decl_func): Add last_line field.
6925 * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
6926 DECL_SOURCE_LINE_LAST): Remove.
6927 * parse.y (missing_return_error, finish_method_declaration,
6928 lookup_cl, start_artificial_method_body, source_end_java_method,
6929 start_complete_expand_method): Adjust.
6930
6931 2003-06-08 Tom Tromey <tromey@redhat.com>
6932
6933 * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
6934 fno-assume-compiled.
6935
6936 2003-06-08 Roger Sayle <roger@eyesopen.com>
6937
6938 * builtins.c (define_builtin_type, builtin_types): Delete.
6939 (define_builtin): Rewritten to take just the built-in code,
6940 the function's name, type and fallback library function name.
6941 All built-ins used by Java are implicit and BUILT_IN_NORMAL.
6942 (initialize_builtins): Overhaul to define the GCC builtins
6943 used by gcj manually, providing the Java run-time's
6944 implementations as the fallback library function.
6945
6946 2003-06-08 Anthony Green <green@redhat.com>
6947
6948 * parse.y (patch_cast): Fix conversions from floating-point to
6949 integral types.
6950
6951 2003-06-08 Neil Booth <neil@daikokuya.co.uk>
6952
6953 * Make-lang.in: Update.
6954 * lang.c: Include opts.h. Define cl_options_count and cl_options.
6955
6956 2003-06-07 Neil Booth <neil@daikokuya.co.uk>
6957
6958 * lang.c (java_init_options): Update.
6959
6960 2003-06-05 Jan Hubicka <jh@suse.cz>
6961
6962 * Make-lang.in: Add support for stageprofile and stagefeedback
6963
6964 2003-05-31 Roger Sayle <roger@eyesopen.com>
6965
6966 * lang.c (java_init_options): Prescribe wrap-around two's
6967 complement arithmetic overflow by setting flag_wrapv.
6968
6969 2003-05-29 Roger Sayle <roger@eyesopen.com>
6970
6971 * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
6972 (builtin_record): Add an additional builtin_code field to
6973 record which GCC built-in corresponds to the Java function.
6974 (java_builtins): Add new entries for atan, atan2, exp, log,
6975 pow and tan.
6976 (max_builtin, min_builtin, abs_builtin): Perform constant
6977 folding on the resulting tree.
6978 (java_build_function_call_expr): Likewise, perform constant
6979 folding on the resulting tree.
6980 (initialize_builtins): The NULL creators are now allowed in
6981 the java_builtins table, which is now terminated by an entry
6982 with builtin_code == END_BUILTINS.
6983 (check_for_builtin): Likewise. If the matching creator is
6984 NULL, construct the call using java_build_function_call_expr
6985 directly with the decl for the corresponding builtin_code.
6986
6987 2003-05-23 Nathanael Nerode <neroden@gcc.gnu.org>
6988
6989 * win32-host.c: Normalize copyright boilerplate.
6990
6991 2003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6992
6993 * parse.y (print_int_node): Use string concatentation on
6994 HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
6995 function calls into one.
6996
6997 2003-05-13 Zack Weinberg <zack@codesourcery.com>
6998
6999 * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
7000 fatal_io_error with calls to fatal_error; add ": %m" to the end of
7001 all the affected error messages.
7002
7003 2003-05-13 Richard Henderson <rth@redhat.com>
7004
7005 * class.c (layout_class_method): Set DECL_EXTERNAL.
7006 * decl.c (java_mark_decl_local, java_mark_class_local): New.
7007 * java-tree.h (java_mark_class_local): Declare.
7008 * jcf-parse.c (parse_class_file): Use it.
7009 * parse.y (java_expand_classes): Likewise.
7010
7011 2003-05-04 Nathan Sidwell <nathan@codesourcery.com>
7012
7013 * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
7014 * lex.h: #include input.h.
7015 * jv-scan.c (input_filename): Remove.
7016
7017 2003-05-02 Tom Tromey <tromey@redhat.com>
7018
7019 PR java/10491:
7020 * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
7021 (handle_inner_classes): New function.
7022
7023 2003-05-01 Tom Tromey <tromey@redhat.com>
7024
7025 PR java/10459:
7026 * parse.y (finish_for_loop): Do nothing if update expression is a
7027 EXPR_WFL_NODE wrapping nothing.
7028 (java_complete_lhs) <COMPOUND_EXPR>: Likewise.
7029
7030 2003-05-02 Nathan Sidwell <nathan@codesourcery.com>
7031
7032 * lex.h (input_lineno): Remove declaration.
7033 * parse-scan.y: #include input.h.
7034 (input_filename): Remove declaration.
7035 (input_location): Add definition.
7036 (input_line): Remove definition.
7037
7038 2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
7039
7040 * lex.h (lineno): Rename to ...
7041 (input_line): ... here
7042 * parse-scan.y (lineno): Rename to ...
7043 (input_line): ... here.
7044 (reset_report): Rename lineno to input_line.
7045 * check-init.c (check_init): Likewise.
7046 * class.c (push_class): Likewise.
7047 * decl.c (complete_start_java_method, end_java_method): Likewise.
7048 * expr.c (expand_byte_code): Likewise.
7049 * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
7050 * jcf-write.c (generate_bytecode_insns): Likewise.
7051 * lex.c (java_init_lex, java_allocate_new_line,
7052 do_java_lex): Likewise.
7053 * parse.h (YYNOT_TWICE): Likewise.
7054 * parse.y (empty_statement, expression_statement,
7055 java_pop_parser_context, java_parser_context_save_global,
7056 yyerror, register_fields, method_header, safe_layout_class,
7057 find_in_imports_on_demand, create_artificial_method,
7058 source_end_java_method, start_complete_expand_method,
7059 build_thisn_assign, java_complete_lhs,
7060 maybe_absorb_scoping_block): Likewise.
7061
7062 2003-04-20 Mohan Embar <gnustuff@thisiscool.com>
7063
7064 * jcf-io.c (find_class): use DIR_SEPARATOR instead of
7065 '/' when computing java source filename
7066
7067 2003-04-13 Tom Tromey <tromey@redhat.com>
7068
7069 * gjavah.c (print_c_decl): Indentation fix.
7070
7071 2003-04-12 Zack Weinberg <zack@codesourcery.com>
7072
7073 * class.c (make_field_value, make_method_value, get_dispatch_table)
7074 (make_class_data, emit_offset_symbol_table)
7075 * constants.c (build_constants_constructor)
7076 * java-tree.h (START_RECORD_CONSTRUCTOR)
7077 * parse.y (maybe_build_array_element_wfl):
7078 Use build_constructor.
7079
7080 2003-04-10 Eric Blake <ebb9@email.byu.edu>
7081
7082 PR java/10253:
7083 * parse.y (string_convert_int_cst): Always use at least one digit
7084 in string conversion. Remove ASCII dependence.
7085 (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
7086
7087 2003-03-16 Mohan Embar <gnustuff@thisiscool.com>
7088
7089 * Make-lang.in: added win32-host.c
7090 * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
7091 resolves to open() on non-Win32 platforms and
7092 Win32-specific jcf_open_exact_case() on Win32
7093 * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
7094 when trying .java and .class files
7095 * win32-host.c: added to repository. Defines
7096 Win32-specific jcf_open_exact_case()
7097
7098 2003-04-10 Andrew Haley <aph@redhat.com>
7099
7100 * jcf-write.c (struct jcf_partial): num_jsrs: new field.
7101 (maybe_free_localvar): Renamed from localvar_free.
7102 Add new arg, really.
7103 (generate_bytecode_insns): Set new variable, jsrs.
7104 Only free local vars if no jsr insns have been emittted.
7105 Call maybe_free_localvar, not localvar_free.
7106
7107 2003-03-30 Joseph S. Myers <jsm@polyomino.org.uk>
7108
7109 * gcj.texi: Remove @ at start of file.
7110
7111 2003-03-25 Tom Tromey <tromey@redhat.com>
7112
7113 * parse.y (create_interface): Call CHECK_DEPRECATED.
7114
7115 2003-03-23 Zack Weinberg <zack@codesourcery.com>
7116
7117 * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
7118
7119 2003-03-21 Zack Weinberg <zack@codesourcery.com>
7120
7121 * javaop.h (jfloat, jdouble): Make them structures mirroring
7122 the bit fields of IEEE float and double respectively.
7123 (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
7124 JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
7125 (union Word, union DWord): Delete.
7126 (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
7127
7128 * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
7129 D_NAN_MASK): Delete.
7130 (jni_print_float, jni_print_double): New. Generate
7131 hexadecimal floating constants.
7132 (print_field_info): Use jni_print_float/double.
7133
7134 * jcf-dump.c: Include math.h. Use ldexp/frexp to assemble
7135 finite floating point numbers for output; special case
7136 non-finite floats.
7137
7138 2003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>
7139
7140 * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
7141 Replace 0 and 1 with true and false in return statements.
7142
7143 2003-03-19 Tom Tromey <tromey@redhat.com>
7144
7145 * lex.c (do_java_lex): Renamed from java_lex.
7146 (java_lex): New function.
7147 Include timevar.h.
7148
7149 2003-03-13 Tom Tromey <tromey@redhat.com>
7150
7151 * parse.y (resolve_inner_class): Error if qualifier is a primitive
7152 type.
7153
7154 2003-03-04 Andrew Haley <aph@redhat.com>
7155
7156 * gjavah.c (is_first_data_member): New global variable.
7157 (print_c_decl): If it's the first data member, align it as the
7158 superclass.
7159 (process_file): Set is_first_data_member.
7160
7161 2003-03-11 Tom Tromey <tromey@redhat.com>
7162
7163 * parse.y (resolve_field_access): Initialize class if field is
7164 found in another static field.
7165 * expr.c (build_class_init): Don't optimize out initialization of
7166 implemented interface.
7167
7168 2003-03-11 Andrew Haley <aph@redhat.com>
7169
7170 * jcf-io.c (caching_stat): Initialize origsep to remove compiler
7171 warning.
7172
7173 2003-03-10 Ranjit Mathew <rmathew@hotmail.com>
7174
7175 * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
7176 and DIR_SEPARATOR_2 for a target.
7177 Correct minor typos.
7178
7179 * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
7180 and DIR_SEPARATOR_2 for a target into account.
7181
7182 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
7183
7184 * lang.c (java_init): Update prototype, move code to java_post_options.
7185 (java_post_options): Similarly.
7186
7187 2003-03-05 Ranjit Mathew <rmathew@hotmail.com>
7188
7189 * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
7190 compare file name components depending on the case-sensitivity
7191 or otherwise of the host file system.
7192
7193 * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
7194 "strcmp" to compare file name components.
7195 Use IS_DIR_SEPARATOR instead of comparing directly against
7196 DIR_SEPARATOR.
7197 (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
7198 comparing directly against DIR_SEPARATOR.
7199
7200 2003-03-04 Tom Tromey <tromey@redhat.com>
7201
7202 * Make-lang.in (java.tags): New target.
7203
7204 2003-03-01 Roger Sayle <roger@eyesopen.com>
7205
7206 * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
7207 (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
7208
7209 2003-03-01 Tom Tromey <tromey@redhat.com>
7210
7211 * parse.y (jdep_resolve_class): Only check deprecation if we found
7212 a decl.
7213
7214 2003-02-28 Tom Tromey <tromey@redhat.com>
7215
7216 PR java/9695:
7217 * class.c (maybe_layout_super_class): Always pass a WFL to
7218 do_resolve_class.
7219 * parse.y (do_resolve_class): Updated comment to explain
7220 parameters.
7221
7222 2003-02-26 Tom Tromey <tromey@redhat.com>
7223
7224 * jcf-write.c (generate_classfile): Check whether class is
7225 deprecated before writing attribute count.
7226
7227 2003-02-25 Roger Sayle <roger@eyesopen.com>
7228
7229 * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
7230 built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
7231
7232 2003-02-23 Tom Tromey <tromey@redhat.com>
7233
7234 * lang-options.h: Added -Wdeprecated.
7235 * gcj.texi (Warnings): Document -Wdeprecated.
7236 * java-tree.h (flag_deprecated): Declare.
7237 * lang.c (lang_W_options): Added deprecated.
7238 (flag_deprecated): New global.
7239 * chartables.h: Rebuilt.
7240 * gen-table.pl (process_one): Look at whitespace.
7241 (print_tables): Define LETTER_SPACE, LETTER_MASK.
7242 * parse.h (CLEAR_DEPRECATED): New macro.
7243 (CHECK_DEPRECATED_NO_RESET): New macro.
7244 * jcf-parse.c (handle_deprecated): New function.
7245 (HANDLE_DEPRECATED_ATTRIBUTE): New define.
7246 * jcf-reader.c (get_attribute): Handle Deprecated attribute.
7247 * parse.y (resolve_type_during_patch): Check deprecation.
7248 (jdep_resolve_class): Likewise.
7249 (process_imports): Likewise.
7250 (resolve_expression_name): Likewise.
7251 (check_deprecation): Strip arrays from decl. Check
7252 flag_deprecated.
7253 (patch_method_invocation): Also check the particular constructor
7254 for deprecation.
7255 (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
7256 * jcf-write.c (append_deprecated_attribute): New function.
7257 (generate_classfile): Generate deprecated attribute when
7258 appropriate.
7259 * lex.c (java_parse_doc_section): Return type now void. Rewrote.
7260 (java_lex) [case '*']: Simplify logic.
7261 (java_start_char_p): Use LETTER_MASK.
7262 (java_part_char_p): Likewise.
7263 (java_space_char_p): New function.
7264
7265 2003-02-20 Nathan Sidwell <nathan@codesourcery.com>
7266
7267 Change base class access representation.
7268 * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
7269 (add_interface_do): Likewise.
7270
7271 2003-02-12 Ranjit Mathew <rmathew@hotmail.com>
7272
7273 * decl.c (java_init_decl_processing): Change
7274 soft_lookupjnimethod_node to reflect the change in
7275 signature of _Jv_LookupJNIMethod in libjava/jni.cc
7276 * expr.c (build_jni_stub): Calculate and pass the size
7277 on the stack of the arguments to a JNI function. Use
7278 new target macro MODIFY_JNI_METHOD_CALL to allow a
7279 target to modify the call to a JNI method.
7280
7281 2003-02-08 Roger Sayle <roger@eyesopen.com>
7282
7283 * jcf-io.c (java_or_class_file): Use libiberty's lbasename
7284 instead of basename to avoid compiler warnings on Tru64.
7285
7286 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
7287
7288 * gcj.texi: Update to GFDL 1.2.
7289
7290 2003-01-31 Andrew Haley <aph@redhat.com>
7291
7292 * parse.y (java_expand_classes): Scan the whole class list looking
7293 for access methods that haven't yet been expanded.
7294
7295 2003-01-31 Adrian Bunk <bunk@fs.tum.de>
7296
7297 Fix for java/4269:
7298
7299 * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
7300 to fix bootstrap on sparc-unknown-netbsdelf1.5.
7301 * jcf-parse.c: Likewise.
7302
7303 2003-01-31 Mark Wielaard <mark@klomp.org>
7304
7305 * gjavah.c (throwable_p): Allocate 1 more byte for string.
7306
7307 2003-01-31 Nathan Sidwell <nathan@codesourcery.com>
7308
7309 * class.c (make_class): Use BINFO_ELTS.
7310 (set_super_info): Likewse.
7311 (add_interface_do): Likewise.
7312
7313 2003-01-30 Tom Tromey <tromey@redhat.com>
7314
7315 * jcf-parse.c (read_class): Update identifier's class value if it
7316 changed during parsing.
7317
7318 2003-01-30 Loren James Rittle <ljrittle@acm.org>
7319
7320 * Make-lang.in (po-generated): Find the targets in $(parsedir).
7321 Propagate change to all other rules as required.
7322 (java/parse-scan.o): Add explicit dependency on
7323 $(parsedir)/java/parse-scan.c .
7324
7325 2003-01-29 Tom Tromey <tromey@redhat.com>
7326
7327 * parse.y (patch_assignment): Only transform the rhs of an
7328 assignment when compiling to native.
7329
7330 2003-01-28 Tom Tromey <tromey@redhat.com>
7331
7332 * jcf-write.c (generate_bytecode_conditional): Typo fixes.
7333
7334 2003-01-28 Tom Tromey <tromey@redhat.com>
7335
7336 * lex.c (java_lex): Don't include UEOF as part of token.
7337 (java_read_unicode): Error if \u sequence prematurely terminated.
7338
7339 2003-01-27 Tom Tromey <tromey@redhat.com>
7340
7341 * parse.y (java_check_regular_methods): Check for construct after
7342 checking types in throws clause.
7343
7344 2003-01-24 Tom Tromey <tromey@redhat.com>
7345
7346 * class.c (build_static_field_ref): Only a String or numeric field
7347 can fold to a constant.
7348
7349 2003-01-23 Tom Tromey <tromey@redhat.com>
7350
7351 * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
7352 file name in resource buffer.
7353
7354 2003-01-23 Tom Tromey <tromey@redhat.com>
7355
7356 * expr.c (build_known_method_ref): Use method's context to find
7357 method table index.
7358
7359 2003-01-23 Tom Tromey <tromey@redhat.com>
7360
7361 * constants.c (set_constant_entry): Allocated cleared memory.
7362
7363 2003-01-22 Tom Tromey <tromey@redhat.com>
7364
7365 * java-tree.h: Don't use PARAMS.
7366 * resource.c: Add prototypes for all functions.
7367 (write_resource_constructor): Use `const char *' to avoid
7368 warning.
7369
7370 2003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>
7371
7372 * jcf-parse.c (process_zip_dir): Remove unused variable.
7373
7374 2003-01-22 Tom Tromey <tromey@redhat.com>
7375
7376 * expr.c (build_invokeinterface): Abort if method's context is not
7377 an interface.
7378
7379 2003-01-22 Tom Tromey <tromey@redhat.com>
7380
7381 * gcj.texi (Input and output files): Mention non-class entries.
7382 * decl.c (java_init_decl_processing): Call
7383 init_resource_processing.
7384 * java-tree.h (compile_resource_data, write_resource_constructor,
7385 compile_resource_file, init_resource_processing): Declare.
7386 * config-lang.in (gtfiles): Added resource.c.
7387 * Make-lang.in (gt-java-resource.h): New target.
7388 (JAVA_OBJS): Added resource.o.
7389 (java/resource.o): New target.
7390 * resource.c: New file.
7391 * class.c (compile_resource_file): Moved to resource.c.
7392 (registerResource_libfunc): Likewise.
7393 (utf8_decl_list): Mark with GTY; now static.
7394 * jcf-parse.c (classify_zip_file): New function.
7395 (parse_zip_file_entries): Use it; compile .properties files.
7396 (process_zip_dir): Use classify_zip_file and compute_class_name.
7397 Don't write class name into zip directory.
7398 (java_parse_file): Call write_resource_constructor.
7399 (compute_class_name): New function.
7400 * jcf-io.c (read_zip_member): Reindented.
7401
7402 2003-01-21 Tom Tromey <tromey@redhat.com>
7403
7404 * class.c (supers_all_compiled): New function.
7405 (make_class_data): Use it.
7406
7407 2003-01-21 Tom Tromey <tromey@redhat.com>
7408
7409 * parse.y (method_header): Native method can't be strictfp.
7410 No method can be transient or volatile.
7411
7412 2003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7413
7414 Make-lang.in (jvspec.o-warn): Add -Wno-error.
7415
7416 2003-01-18 Kazu Hirata <kazu@cs.umass.edu>
7417
7418 * check-init.c: Fix comment typos.
7419 * class.c: Likewise.
7420 * constants.c: Likewise.
7421 * decl.c: Likewise.
7422 * except.c: Likewise.
7423 * expr.c: Likewise.
7424 * java-except.h: Likewise.
7425 * java-tree.h: Likewise.
7426 * javaop.h: Likewise.
7427 * jcf-dump.c: Likewise.
7428 * jcf-io.c: Likewise.
7429 * jcf-parse.c: Likewise.
7430 * jcf-write.c: Likewise.
7431 * lang.c: Likewise.
7432 * mangle.c: Likewise.
7433 * typeck.c: Likewise.
7434 * verify.c: Likewise.
7435
7436 2003-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7437
7438 * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
7439 * jcf-write.c: Include "tm_p.h".
7440
7441 2003-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7442
7443 * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
7444
7445 2003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7446
7447 * builtins.c (java_build_function_call_expr): Renamed from
7448 build_function_call_expr. All callers changed.
7449
7450 * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
7451 * jcf-parse.c: Include tm_p.h.
7452
7453 * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
7454 warning.
7455
7456 2003-01-14 Tom Tromey <tromey@redhat.com>
7457
7458 * class.c (make_class_data): Check that super is compiled before
7459 building class reference to it.
7460
7461 2003-01-14 Andrew Haley <aph@redhat.com>
7462
7463 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7464 varargs function -- correct.
7465
7466 2003-01-14 Andrew Haley <aph@redhat.com>
7467
7468 * decl.c (java_init_decl_processing): Temporarily back out previous patch.
7469
7470 2003-01-14 Andrew Haley <aph@redhat.com>
7471
7472 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7473 varargs function -- correct.
7474
7475 * parse.y (patch_assignment): Copy the rhs of an assignment into a
7476 temporary if the RHS is a reference.
7477
7478 2003-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7479
7480 * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
7481 * keyword.h: Regenerated.
7482
7483 * All Files: Convert to ISO C style function definitions.
7484
7485 2003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
7486
7487 * parse.y (check_pkg_class_access): ANSIfy definition.
7488
7489 2003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7490
7491 * decl.c, parse-scan.y, parse.y: Don't cast return value of
7492 xmalloc et al.
7493
7494 * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
7495
7496 2003-01-09 Geoffrey Keating <geoffk@apple.com>
7497
7498 Merge from pch-branch:
7499
7500 2002-12-02 Geoffrey Keating <geoffk@apple.com>
7501
7502 * Make-lang.in (java/gjavah.o): Update dependencies.
7503 * gjavah.c: Include ggc.h.
7504
7505 2002-08-16 Geoffrey Keating <geoffk@redhat.com>
7506
7507 * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
7508 (JCFDUMP_OBJS): Add ggc-none.o.
7509 (java/jcf-dump.o): Depend on GGC_H.
7510 * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
7511 CPool substructures.
7512 * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
7513 * jcf-dump.c: Include ggc.h.
7514
7515 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
7516
7517 * jcf.h (union cpool_entry): New.
7518 (struct CPool): Use gengtype to mark. Change field 'data' to be
7519 an array of unions.
7520 (struct JCF): Use gengtype to mark.
7521 (CPOOL_UINT): Update for new cpool_entry type.
7522 (CPOOL_USHORT1): Likewise.
7523 (CPOOL_USHORT2): Likewise.
7524 (CPOOL_FINISH): Use GC to free cpool subfields.
7525 * parse.h (struct parser_ctxt): Mark field current_jcf.
7526 * lex.c (java_init_lex): Use GC to allocate struct JCF.
7527 * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
7528 (main_jcf): Use gengtype to mark.
7529 (ggc_mark_jcf): Delete.
7530 (get_constant): Update for new cpool_entry type.
7531 (give_name_to_class): Likewise.
7532 (get_class_constant): Likewise.
7533 (init_outgoing_cpool): Use GGC to allocate struct CPool.
7534 (java_parse_file): Use GGC to allocate struct JCF.
7535 (init_jcf_parse): Don't call ggc_add_root.
7536 * jcf-reader.c (jcf_parse_constant_pool): Update for new
7537 cpool_entry type.
7538 * java-tree.h (current_jcf): Use gengtype to mark.
7539 (CPOOL_UTF): Update for new cpool_entry type.
7540 (outgoing_cpool): Use gengtype to mark.
7541 (struct lang_type): GC struct JCF and struct CPool.
7542 * config-lang.in (gtfiles): Add jcf.h.
7543 * constants.c (find_tree_constant): New.
7544 (set_constant_entry): Allocate cpool subfields using GGC. Update
7545 for new cpool_entry type.
7546 (find_constant1): Update for new cpool_entry type.
7547 (find_constant2): Likewise.
7548 (find_utf8_constant): Use find_tree_constant.
7549 (find_class_or_string_constant): Remove unnecessary cast to jword.
7550 Update for new cpool_entry type.
7551 (count_constant_pool_bytes): Update for new cpool_entry type.
7552 (write_constant_pool): Likewise.
7553 (alloc_name_constant): Use find_tree_constant.
7554 (build_constants_constructor): Update for new cpool_entry type.
7555
7556 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
7557
7558 * parse.y (mark_parser_ctxt): Delete.
7559 (goal): Don't use ggc_add_root.
7560 (create_new_parser_context): Use GC to allocate struct parser_ctxt.
7561 (java_pop_parser_context): Let GC free parser_ctxt.
7562 (java_parser_context_resume): Likewise.
7563 * parse.h (struct parser_ctxt): Use gengtype to mark.
7564 (ctxp): Likewise.
7565 (ctxp_for_generation): Likewise.
7566 * lex.h (struct java_lc_s): Mark for gengtype.
7567 (java_lexer): Rearrange for gengtype.
7568 * config-lang.in (gtfiles): Add lex.h, parse.h.
7569
7570 2003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7571
7572 * All Files: Remove PARAMS macro.
7573
7574 * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
7575 jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
7576 `__STDC__' macros.
7577
7578 * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
7579 VA_CLOSE.
7580
7581 2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
7582
7583 * Make-lang.in (java.install-common, java.uninstall,
7584 java.install-info, java.install-man): Prepend $(DESTDIR)
7585 to destination paths in all (un)installation commands.
7586 (java.install-common): Rewrite $(LN) command to support
7587 DESTDIR with "ln" as well as with "ln -s".
7588
7589 2003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>
7590
7591 * java-tree.h: Protect against multiple inclusion.
7592
7593 2003-01-07 Tom Tromey <tromey@redhat.com>
7594
7595 * class.c (add_assume_compiled): Don't adjust parent if we're
7596 already at the root of tree.
7597
7598 2003-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7599
7600 * lang.c (dump_compound_expr): Prototype.
7601
7602 2003-01-03 Tom Tromey <tromey@redhat.com>
7603
7604 Fix for PR java/8712:
7605 * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
7606 when simply checking against `null'.
7607
7608 2003-01-03 Tom Tromey <tromey@redhat.com>
7609
7610 * gcj.texi (Standard Properties): Document http.proxyHost and
7611 http.proxyPort.
7612
7613 * gcj.texi (GNU Classpath Properties): Document new properties.
7614
7615 2003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
7616
7617 * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
7618 java/lang-options.h, java/mangle.c, java/mangle_name.c,
7619 java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
7620
7621 2003-01-01 Steven Bosscher <s.bosscher@student.tudelft.nl>
7622
7623 * Make-lang.in, boehm.c, buffer.c,
7624 buffer.h, builtins.c, class.c,
7625 config-lang.in, constants.c,
7626 convert.h, decl.c, except.c,
7627 expr.c, java-except.h,
7628 java-tree.h, javaop.def,
7629 jcf-parse.c, jcf-write.c,
7630 jv-scan.c, jvgenmain.c,
7631 jvspec.c, keyword.gperf,
7632 keyword.h, lang-options.h,
7633 lang-specs.h, lang.c, lex.c,
7634 lex.h, mangle.c, mangle_name.c,
7635 parse-scan.y, parse.h, parse.y,
7636 typeck.c, verify.c, xref.c,
7637 xref.h: Replace "GNU CC" with
7638 "GCC" in the copyright header.
7639
7640 * check-init.c, gjavah.c, javaop.h,
7641 jcf-depend.c, jcf-dump.c, jcf-io.c,
7642 jcf-path.c, jcf-reader.c, jcf.h,
7643 zextract.c, zipfile.h: These files are
7644 "part of GCC". Also say "GCC" not "GNU CC".
7645
7646 2002-12-30 DJ Delorie <dj@redhat.com>
7647
7648 * Make-lang.in: Protect against texi2pod/pod2man failing.
7649
7650 2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
7651
7652 * gcj.texi: Use @copying.
7653
7654 2002-12-27 Mark Mitchell <mark@codesourcery.com>
7655
7656 * gjavah.c (print_name_for_stub_or_jni): Adjust call to
7657 print_cxx_classname.
7658 (print_cxx_classname): Add add_scope parameter.
7659 (print_class_decls): Do not emit a semicolon after the extern
7660 "Java" block.
7661 (process_file): Adjust calls to print_cxx_classname.
7662
7663 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
7664
7665 * gcj.texi: Include Cover Texts in man page.
7666
7667 2002-12-23 Jeff Sturm <jsturm@one-point.com>
7668
7669 * class.c (build_static_field_ref): Check FIELD_FINAL.
7670
7671 * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
7672 instead of current_constant_pool_data_ref.
7673 * java-tree.h (current_constant_pool_data_ref): Undefine.
7674 (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
7675 * jcf-parse.c (init_outgoing_cpool): Don't initialize
7676 current_constant_pool_data_ref.
7677
7678 * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
7679 not build_internal_class_name.
7680
7681 * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
7682 Use it when class ref isn't certain to be compiled.
7683
7684 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
7685
7686 * gcj.texi: Include gcc-common.texi.
7687 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
7688 $(srcdir)/doc/include/gcc-common.texi.
7689
7690 2002-12-22 Anthony Green <green@redhat.com>
7691
7692 * gcj.texi (Limitations): Add note about org.xml.sax and
7693 org.w3c.dom.
7694
7695 2002-12-20 Tom Tromey <tromey@redhat.com>
7696
7697 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
7698 where minimum case value is Integer.MIN_VALUE.
7699 Fixes PR java/8955.
7700
7701 2002-12-18 Andrew Haley <aph@redhat.com>
7702
7703 * parse.y (patch_invoke): Force evaluation order when `check' is
7704 set. For PR libgcj/8945.
7705
7706 2002-12-16 Mark Mitchell <mark@codesourcery.com>
7707
7708 * gcj.texi: Change version number to 3.4.
7709
7710 2002-12-05 Ranjit Mathew <rmathew@hotmail.com>
7711 Andrew Haley <aph@redhat.com>
7712
7713 * parse.y (source_end_java_method): Remove custom encoding of line
7714 numbers for a function decl before passing it to the back end.
7715
7716 2002-12-03 Andrew Haley <aph@redhat.com>
7717
7718 * class.c (make_class_data): New field, "chain".
7719 * decl.c (java_init_decl_processing): Likewise.
7720
7721 2002-12-02 Tom Tromey <tromey@redhat.com>
7722
7723 For PR java/8740:
7724 * parse.y (do_resolve_class): Handle qualified name via
7725 recursion.
7726
7727 2002-11-30 Zack Weinberg <zack@codesourcery.com>
7728
7729 * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
7730 constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
7731 jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
7732 jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
7733 parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
7734 Include coretypes.h and tm.h.
7735 * Make-lang.in: Update dependencies.
7736
7737 2002-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7738
7739 * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
7740
7741 2002-11-25 Diego Novillo <dnovillo@redhat.com>
7742
7743 * jcf-reader.c: Don't expand JCF_readu4 inside the
7744 expansion of JCF_SKIP.
7745
7746 2002-11-25 Diego Novillo <dnovillo@redhat.com>
7747
7748 * jcf-reader.c: Don't expand JCF_readu4 inside the
7749 expansion of JCF_SKIP.
7750
7751 2002-11-22 Tom Tromey <tromey@redhat.com>
7752
7753 * parse.y (patch_binop): Cast right hand side of shift expression
7754 to `int'. Fixes PR java/8676.
7755
7756 2002-11-22 Ranjit Mathew <rmathew@hotmail.com>
7757 Andrew Haley <aph@redhat.com>
7758
7759 * gcc/java/jcf-write.c (write_classfile): Remove target
7760 class file, if it exists, before renaming the temporary
7761 class file to it.
7762
7763 2002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
7764
7765 * jvspec.c (lang_specific_spec_functions): New.
7766
7767 2002-11-18 Tom Tromey <tromey@redhat.com>
7768
7769 Fix for PR java/7912:
7770 * expr.c (can_widen_reference_to): Allow cast of array to
7771 Cloneable or Serializable.
7772 * java-tree.h (java_lang_cloneable_identifier_node): Declare.
7773 (java_io_serializable_identifier_node): Likewise.
7774 * parse.y (java_lang_cloneable, java_io_serializable): Removed.
7775 (valid_ref_assignconv_cast_p): Use new identifier nodes.
7776 * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
7777 java_io_serializable.
7778 * decl.c (java_init_decl_processing): Initialize
7779 java_lang_cloneable_identifier_node and
7780 java_io_serializable_identifier_node.
7781 (java_lang_cloneable_identifier_node): New global.
7782 (java_io_serializable_identifier_node): Likewise.
7783
7784 2002-11-14 Jens-Michael Hoffmann <jensmh@gmx.de>
7785
7786 * buffer.c: Remove unnecessary casts.
7787 * check-init.c: Likewise.
7788 * class.c: Likewise.
7789 * constants.c: Likewise.
7790 * decl.c: Likewise.
7791 * except.c: Likewise.
7792 * gjavah.c: Likewise.
7793 * jcf-io.c: Likewise.
7794 * jcf-parse.c: Likewise.
7795 * jcf-path.c: Likewise.
7796 * jvspec.c: Likewise.
7797 * lang.c: Likewise.
7798 * lex.c: Likewise.
7799 * verify.c: Likewise.
7800
7801 2002-11-06 Tom Tromey <tromey@redhat.com>
7802
7803 * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
7804 a JNI header.
7805
7806 2002-11-05 Tom Tromey <tromey@redhat.com>
7807
7808 Fix for PR java/6388.
7809 * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
7810 * java-tree.h (enum java_tree_index): New values
7811 JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
7812 (decimal_int_max, decimal_long_max): New defines.
7813 * lex.c (yylex): Rewrote range checking. Sign extend literals.
7814 (error_if_numeric_overflow): Rewrote range checking.
7815 * decl.c (java_init_decl_processing): Initialize decimal_int_max,
7816 decimal_long_max.
7817
7818 2002-11-02 Tom Tromey <tromey@redhat.com>
7819
7820 * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
7821
7822 * class.c (make_method_value): Put class name, not signature, into
7823 `throws' field. For PR java/8415.
7824
7825 2002-10-24 Tom Tromey <tromey@redhat.com>
7826
7827 * gcj.texi (Invoking gij): Document --showversion.
7828 (Standard Properties): java.library.path now set.
7829
7830 2002-10-23 Tom Tromey <tromey@redhat.com>
7831
7832 * gjavah.c (decode_signature_piece): In JNI mode, print
7833 `jobjectArray' when array depth is nonzero.
7834 Fixes PR java/8296.
7835
7836 2002-10-15 Andrew Haley <aph@redhat.com>
7837
7838 * parse.y (patch_invoke): Call force_evaluation_order on a static
7839 arg list.
7840 (resolve_qualified_expression_name): Call force_evaluation_order
7841 on a arg list that is part of a Qualified Expression Name.
7842
7843 * lang.c (dump_compound_expr): New.
7844 (java_dump_tree): New.
7845
7846 2002-10-20 Ranjit Mathew <rmathew@hotmail.com>
7847
7848 * gcj.texi: Added item describing the GCJ runtime property
7849 "gnu.gcj.progname".
7850
7851 2002-10-15 Richard Henderson <rth@redhat.com>
7852
7853 * jcf-parse.c (get_constant): Fix type warning.
7854
7855 2002-10-15 Andrew Haley <aph@redhat.com>
7856
7857 * java-tree.h (java_inlining_merge_static_initializers): Declare.
7858 (java_inlining_map_static_initializers): Declare.
7859
7860 2002-10-14 Andrew Haley <aph@redhat.com>
7861
7862 * tree-inline.c (remap_block): All local class initialization
7863 flags go in the outermost scope.
7864 (expand_call_inline): Call java_inlining_map_static_initializers.
7865 (expand_call_inline): Call java_inlining_merge_static_initializers.
7866 * java/lang.c (merge_init_test_initialization): New.
7867 (java_inlining_merge_static_initializers): New.
7868 (inline_init_test_initialization): New.
7869 (java_inlining_map_static_initializers): New.
7870
7871 2002-10-11 Mark Wielaard <mark@klomp.org>
7872
7873 * gcj.texi (Compatibility): Add Limitations and Extensions section.
7874
7875 2002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7876
7877 * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
7878
7879 2002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7880
7881 * parse.y (merge_string_cste): Add parentheses around & within |.
7882
7883 2002-10-08 Tom Tromey <tromey@redhat.com>
7884
7885 * parse.y (variable_declarator_id): Simplify error path for
7886 array declarator error. For PR java/8003.
7887
7888 2002-10-08 Zack Weinberg <zack@codesourcery.com>
7889
7890 * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
7891 bug_report_url.
7892
7893 2002-10-08 Andrew Haley <aph@redhat.com>
7894
7895 * parse.y (attach_init_test_initialization_flags): Check for
7896 error_mark_node.
7897
7898 2002-10-07 Anthony Green <green@redhat.com>
7899
7900 * parse.y (merge_string_cste): Fix bug in string concatenation.
7901
7902 2002-10-03 Michael Koch <konqueror@gmx.de>
7903
7904 * gcj.texi (Standard properties):
7905 Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
7906
7907 2002-10-02 Roger Sayle <roger@eyesopen.com>
7908
7909 PR optimization/6627
7910 * lang.c (java_init): If storing the vbit in function
7911 pointers, ensure that force_align_functions_log is atleast
7912 one to aid compatability with g++ vtables.
7913
7914 2002-10-01 Nathan Sidwell <nathan@codesourcery.com>
7915
7916 * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
7917 foul of type-based aliasing.
7918
7919 2002-09-30 Anthony Green <green@redhat.com>
7920
7921 * gcj.texi (Invoking jv-scan): Fix texinfo.
7922
7923 2002-09-28 Anthony Green <green@redhat.com>
7924
7925 * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
7926 (Code Generation): Add -fno-assert documentation.
7927 * jv-scan.c (flag_assert): New global.
7928 (options): Add assert option.
7929 (help): Add --no-assert documentation.
7930 * parse-scan.y (flag_assert): New global.
7931 * lang.c (lang_f_options): Add -fassert/-fno-assert support.
7932 (flag_assert): New global.
7933 * java-tree.h (flag_assert): New global.
7934 * lex.c (java_lex): Obey flag_assert.
7935 * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
7936 calling cc1.
7937
7938 2002-09-26 Andrew Haley <aph@redhat.com>
7939
7940 * expr.c (build_java_array_length_access): Check for null pointer.
7941 * expr.c (expand_java_arrayload): Likewise.
7942
7943 2002-09-21 Richard Henderson <rth@redhat.com>
7944
7945 * jcf-parse.c (get_constant): Decode from IEEE no matter
7946 what the target format.
7947
7948 2002-09-20 Kazu Hirata <kazu@cs.umass.edu>
7949
7950 * ChangeLog: Follow spelling conventions.
7951 * class.c: Likewise.
7952 * decl.c: Likewise.
7953 * expr.c: Likewise.
7954 * gjavah.c: Likewise.
7955 * java-tree.h: Likewise.
7956 * jcf-dump.c: Likewise.
7957 * jcf-parse.c: Likewise.
7958 * jvspec.c: Likewise.
7959 * lang.c: Likewise.
7960 * mangle.c: Likewise.
7961 * parse.y: Likewise.
7962
7963 2002-09-17 Tom Tromey <tromey@redhat.com>
7964
7965 * lex.c (java_read_unicode_collapsing_terminators): Handle case
7966 where \r appears at EOF. Fixes PR java/7950.
7967
7968 2002-09-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7969
7970 * jvspec.c (lang_specific_driver): Remove unused variable.
7971
7972 2002-09-16 Geoffrey Keating <geoffk@apple.com>
7973
7974 * java-tree.h (union lang_tree_node): Add chain_next option.
7975
7976 2002-09-16 Richard Henderson <rth@redhat.com>
7977
7978 * jcf-parse.c (get_constant): Runtime check for IEEE format;
7979 use new real.h interface.
7980 * jcf-write.c (find_constant_index): Use new real.h interface.
7981 * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
7982
7983 2002-09-15 Kazu Hirata <kazu@cs.umass.edu>
7984
7985 * lang.c: Follow spelling conventions.
7986
7987 2002-09-11 Per Bothner <per@bothner.com>
7988
7989 * parse.y (fold_constant_for_init): If a VAR_DECL, convert numerical
7990 constant to the type of the field.
7991 (java_complete_tree): Remove now-redundant code.
7992
7993 * parse.y (fold_constant_for_init): 'null' is not a constant expr.
7994
7995 2002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu>
7996
7997 For PR java/5794:
7998 * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
7999 return label if a ret instruction for the jsr has been reached.
8000
8001 2002-09-09 Ranjit Mathew <rmathew@hotmail.com>
8002
8003 * parse.y (DIR_SEPARATOR): Don't define.
8004 (check_class_interface_creation): Use IS_DIR_SEPARATOR.
8005
8006 2002-08-28 Andrew Haley <aph@redhat.com>
8007
8008 * verify.c (verify_jvm_instructions): Allow exception handler
8009 inside code that is being protected, but generate a warning.
8010 * except.c (link_handler): Initialize `expanded' in new eh_range.
8011 (binding_depth, is_class_level, current_pc): Declare extern.
8012
8013 2002-09-01 Mark Wielaard <mark@klomp.org>
8014
8015 * gcj.texi: Add chapter about system properties.
8016 Fixed some typos.
8017
8018 2002-08-26 Tom Tromey <tromey@redhat.com>
8019
8020 * parse.y (try_builtin_assignconv): Allow narrowing primitive
8021 conversion if RHS_TYPE is byte, short, or char.
8022
8023 2002-08-22 Tom Tromey <tromey@redhat.com>
8024
8025 * gcj.texi (Invoking gij): Document -cp and -classpath.
8026
8027 2002-08-21 Tom Tromey <tromey@redhat.com>
8028
8029 * Make-lang.in (java/jcf-path.o): Use $(datadir), not
8030 $(prefix)/share. For PR libgcj/7633.
8031
8032 For PR java/6005 and PR java/7611:
8033 * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
8034 (java_can_use_bit_fields_p): New function.
8035
8036 2002-08-16 Tom Tromey <tromey@redhat.com>
8037
8038 * gcj.texi (Class Initialization): Mention class initialization of
8039 arrays.
8040
8041 2002-07-30 Andrew Haley <aph@cambridge.redhat.com>
8042
8043 * Make-lang.in (java-tree-inline.o): New.
8044 (JAVA_OBJS): Add java-tree-inline.o.
8045 * parse.y (source_end_java_method): Call java_optimize_inline.
8046 (java_expand_method_bodies): Save method's tree in
8047 DECL_SAVED_TREE.
8048 (add_stmt_to_compound): Keep track of the number of statments.
8049 * lang.c (java_init): Enable flag_inline_trees.
8050 (java_post_options): If flag_inline_functions is on, enable
8051 flag_inline_trees instread.
8052 (decl_constant_value): New.
8053 (java_tree_inlining_walk_subtrees): New.
8054 * java-tree.h (DECL_NUM_STMTS): New macro.
8055 (java_optimize_inline): Declare.
8056 * expr.c (java_expand_expr): Allow a BLOCK to return a value.
8057 Handle a LABEL_EXPR.
8058 * decl.c (build_result_decl): If we already have a DECL_RESULT
8059 don't make another.
8060 (dump_function): New.
8061 (java_optimize_inline): New.
8062 (dump_function): New.
8063
8064 2002-08-13 Jesse Rosenstock <jmr@fulcrummicro.com>
8065
8066 For PR java/7483:
8067 * parse.y (build_assertion): Invert return from
8068 desiredAssertionStatus.
8069
8070 2002-08-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8071
8072 * jcf-write.c (get_access_flags): Return correct access flags for
8073 private and protected inner classes.
8074
8075 2002-08-08 Nathan Sidwell <nathan@codesourcery.com>
8076
8077 * java/Make-lang.in (java.mostlyclean): Remove coverage files.
8078
8079 2002-08-05 Geoffrey Keating <geoffk@redhat.com>
8080
8081 * mangle_name.c: Don't include obstack.h twice.
8082 * xref.c: Don't include obstack.h.
8083
8084 2002-08-04 Geoffrey Keating <geoffk@redhat.com>
8085
8086 * class.c: (permanent_obstack): Delete declaration.
8087 * constants.c: (permanent_obstack): Delete declaration.
8088 * except.c: (permanent_obstack): Delete declaration.
8089 * expr.c: (permanent_obstack): Delete declaration.
8090 * jcf-parse.c: (permanent_obstack): Delete declaration.
8091 (saveable_obstack): Delete declaration.
8092 * parse.h: (permanent_obstack): Delete declaration.
8093 * typeck.c: (permanent_obstack): Delete declaration.
8094
8095 2002-08-04 Joseph S. Myers <jsm@polyomino.org.uk>
8096
8097 * gcj.texi (version-gcc): Increase to 3.3.
8098
8099 2002-07-22 Tom Tromey <tromey@redhat.com>
8100
8101 * lex.c (java_lex): Check for `e' or `E' after 0.
8102
8103 2002-07-21 Richard Henderson <rth@redhat.com>
8104
8105 * lang.c (java_unsafe_for_reeval): New.
8106 (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
8107
8108 2002-07-21 Neil Booth <neil@daikokuya.co.uk>
8109
8110 * jcf-path.c (GET_ENV_PATH_LIST): Remove.
8111 (jcf_path_init): Use GET_ENVIRONMENT.
8112
8113 2002-07-10 Roger Sayle <roger@eyesopen.com>
8114 Zack Weinberg <zack@codesourcery.com>
8115
8116 * builtins.c (initialize_builtins): Remove defines that
8117 handled C/C++ specific junk hereby removed from builtins.def.
8118
8119 2002-07-07 Neil Booth <neil@daikokuya.co.uk>
8120
8121 * lang.c (java_post_options): Update prototype.
8122
8123 2002-07-05 Roger Sayle <roger@eyesopen.com>
8124
8125 * builtins.c (initialize_builtins): Ignore the additional
8126 parameter to DEF_BUILTIN. Handle more C/C++ specific junk in
8127 the builtins.def file.
8128
8129 2002-07-01 Tom Tromey <tromey@redhat.com>
8130
8131 For PR libgcj/7073:
8132 * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
8133 specially.
8134
8135 2002-07-01 Roger Sayle <roger@eyesopen.com>
8136
8137 * java/decl.c (builtin_function): Accept additional parameter.
8138 (java_init_decl_processing): Pass an additional NULL_TREE
8139 argument to builtin_function.
8140
8141 2002-06-29 T.J. Mather <tjmather@maxmind.com>
8142
8143 * gcj.texi: Fixed gcj invocation example so that it compiles.
8144
8145 2002-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8146
8147 * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
8148 * parse.y (mark_parser_ctxt): Likewise.
8149 (check_modifiers, declare_local_variables): Avoid incorrect
8150 hardcoded constant 10.
8151
8152 * lex.c (java_read_char): Avoid "comparison is always true"
8153 warning.
8154
8155 2002-06-25 Andreas Schwab <schwab@suse.de>
8156
8157 * expr.c (JSR): Avoid undefined operation on PC.
8158
8159 2002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8160
8161 * decl.c (clear_binding_level): Const-ify.
8162
8163 2002-06-13 Akim Demaille <akim@epita.fr>
8164
8165 * parse.y (class_declaration, interface_declaration): Make sure
8166 all their rules have an action, in order to avoid meaningless `$$
8167 = $1' and their type clashes.
8168
8169 2002-06-11 Tom Tromey <tromey@redhat.com>
8170
8171 * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
8172 * parse-scan.y (statement_without_trailing_substatement): Added
8173 assert_statement.
8174 (assert_statement): New rule.
8175 * java-tree.h (struct lang_type) [assertions]: New field.
8176 (TYPE_USES_ASSERTIONS): New macro.
8177 (CLASS_USES_ASSERTIONS): Likewise.
8178 (FIELD_SYNTHETIC): New define.
8179 * lex.c (java_lval;): Added ASSERT_TK.
8180 * parse.y (ASSERT_TK): Added.
8181 (statement_without_trailing_substatement): Added assert_statement.
8182 (assert_statement): New rule.
8183 (build_assertion): New function.
8184 (maybe_generate_pre_expand_clinit): Create and initialize
8185 $assertionsDisabled.
8186 (lookup_package_type): Removed decl.
8187 * keyword.h: Rebuilt.
8188 * keyword.gperf (assert): New token.
8189
8190 2002-06-10 Akim Demaille <akim@epita.fr>
8191
8192 * parse.y (interface_type_list, class_member_declaration)
8193 (unary_expression_not_plus_minus): Remove duplicate %type.
8194 Whitespace changes.
8195
8196 2002-06-09 Tom Tromey <tromey@redhat.com>
8197
8198 * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
8199
8200 * parse.y (method_header): Give error message in all cases.
8201 Fixes PR java/6865.
8202
8203 2002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8204
8205 Don't use RTL inlining. Fix for PR java/6820.
8206 * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
8207 (flag_really_inline): New.
8208 (java_decode_option): Set flag_really_inline if -finline-functions
8209 is seen.
8210 (java_post_options): New function. Turn off inlining unless
8211 flag_really_inline is set.
8212
8213 2002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8214
8215 * gjavah.c (throwable_p): Accept argument as either a classname or
8216 signature fragment. Create null-terminated classname string for super
8217 when calling itself recursively.
8218 (decode_signature_piece): Skip first character from class name
8219 signature when calling throwable_p.
8220
8221 2002-06-08 H.J. Lu (hjl@gnu.org)
8222
8223 * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
8224
8225 2002-06-04 Tom Tromey <tromey@redhat.com>
8226
8227 * jcf-write.c (perform_relocations): Optmize a goto to a goto.
8228
8229 2002-06-04 Michael Koch <konqueror@gmx.de>
8230
8231 * gcj.texi (Input Options): Fixed typo.
8232
8233 2002-06-04 Zack Weinberg <zack@codesourcery.com>
8234
8235 * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
8236 typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
8237 all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
8238 and all now-pointless local variables. Rename other local
8239 variables to reflect their not being handles.
8240
8241 * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
8242 #if JCF_USE_STDIO blocks.
8243
8244 * parse.y: Add missing semicolon at end of rule.
8245
8246 2002-06-03 Geoffrey Keating <geoffk@redhat.com>
8247
8248 * check-init.c (attach_initialized_static_class): Delete, unused.
8249 * parse.y: Use htab_t instead of struct hashtable, update
8250 all uses.
8251 * java-tree.h: Include hashtab.h instead of hash.h.
8252 (struct lang_decl_func): Use htab_t, set up for gengtype.
8253 (struct init_test_hash_entry): Delete.
8254 (struct treetreehash_entry): New.
8255 (java_treetreehash_find): New
8256 (java_treetreehash_new): New prototype.
8257 (java_treetreehash_create): New prototype.
8258 (java_mark_tree): Delete prototype.
8259 (java_hash_hash_tree_node): Delete prototype.
8260 (java_hash_compare_tree_node): Delete prototype.
8261 (attach_initialized_static_class): Delete prototype.
8262 * expr.c (build_class_init): Update to use java_treetreehash
8263 functions.
8264 (java_expand_expr): Update to use htab_t.
8265 (emit_init_test_initialization): Likewise.
8266 * decl.c (java_mark_tree): Delete.
8267 * class.c (init_test_hash_newfunc): Delete.
8268 (java_hash_hash_tree_node): Delete.
8269 (java_hash_compare_tree_node): Delete.
8270 (add_method_1): Update to use java_treetreehash functions.
8271 (JAVA_TREEHASHHASH_H): New macro.
8272 (java_treetreehash_hash): New function.
8273 (java_treetreehash_compare): New function.
8274 (java_treetreehash_find): New function.
8275 (java_treetreehash_new): New function.
8276 (java_treetreehash_create): New function.
8277 * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
8278
8279 * Make-lang.in (java/parse.o): Depend on debug.h.
8280 * java-tree.h (struct lang_identifier): Use gengtype.
8281 (union lang_tree_node): New.
8282 (struct lang_decl_func): Use gengtype.
8283 (struct lang_decl_var): Likewise.
8284 (struct lang_decl): Likewise.
8285 * parse.y: Include debug.h.
8286 * lang.c (LANG_HOOKS_MARK_TREE): Delete.
8287
8288 * lang.c (struct language_function): New dummy structure.
8289
8290 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
8291 descriminator for DECL_LANG_SPECIFIC.
8292 (struct lang_decl_func): Rename from struct lang_decl.
8293 (enum lang_decl_desc): New.
8294 (struct lang_decl): Make it a union. Update all the accessor macros.
8295 (struct lang_type): Use gengtype.
8296 * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
8297 * decl.c (java_dup_lang_specific_decl): All lang_decl structures
8298 are now the same size.
8299 (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
8300 use discriminator to mark DECL_LANG_SPECIFIC.
8301
8302 * Make-lang.in (gt-java-builtins.h): New rule.
8303 (java/builtins.o): Add dependency on gt-<filename>.h.
8304 * builtins.c: Use gengtype for roots.
8305 (union string_or_tree): Use gengtype.
8306 (struct builtin_record): Use gengtype.
8307 * config-lang.in (gtfiles): Add builtins.c.
8308
8309 * Make-lang.in (gt-java-class.h, gt-java-constants.h,
8310 gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
8311 gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
8312 gt-java-parse.h, gtype-java.h): Add rules to generate.
8313 (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
8314 (class.o): Add dependency on gt-*.h.
8315 (constants.o): Likewise.
8316 (decl.o): Likewise.
8317 (expr.o): Likewise.
8318 (jcf-parse.o): Likewise.
8319 (jcf-write.o): Likewise.
8320 (lang.o): Likewise.
8321 * config-lang.in (gtfiles): New.
8322 * class.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8323 * constants.c: Replace uses of ggc_add_* with GTY markers.
8324 Include gt-*.h.
8325 * decl.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8326 * expr.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8327 * java-tree.h: Replace uses of ggc_add_* with GTY markers.
8328 * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
8329 Include gt-*.h.
8330 * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
8331 Include gt-*.h.
8332 * lang.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8333 * mangle.c: Replace uses of ggc_add_* with GTY markers. Include
8334 gt-*.h.
8335 * parse.y: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8336 Include gtype-java.h.
8337
8338 2002-06-02 Tom Tromey <tromey@redhat.com>
8339
8340 Fix for PR java/5913:
8341 * parse.y (patch_binop): Call patch_string on op1.
8342
8343 2002-06-02 Tom Tromey <tromey@redhat.com>
8344
8345 Fix for PR java/1343, PR java/6336:
8346 * parse.y (make_nested_class_name): Remove extraneous `else'; fix
8347 formatting. Changed return type.
8348 (anonymous_class_counter): Moved to top of file.
8349 (maybe_make_nested_class_name): Append number to class name for
8350 function-local classes.
8351
8352 2002-05-28 Zack Weinberg <zack@codesourcery.com>
8353
8354 * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
8355 * Make-lang.in: Update dependency lists.
8356
8357 2002-05-18 Mark Mitchell <mark@codesourcery.com>
8358
8359 * gjavah.c (throwable_p): Do not free the name of the class after
8360 passing it to find_class.
8361 * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
8362 * jcf-io.c (dirent.h): Include it.
8363 (fnmatch.h): Likewise.
8364 (compare_path): New function.
8365 (java_or_class_file): Likewise.
8366 (memoized_dirlist_entry): New type.
8367 (memoized_dirlist_lookup_eq): New function.
8368 (memoized_dirlists): New variable.
8369 (caching_stat): New function.
8370 (memoized_class_lookup_eq): New function.
8371 (memoized_class_lookups): Likewise.
8372 (find_class): Use memoized_class_lookups and caching_stat.
8373 * jcf.h (JCF_USE_SCANDIR): Define.
8374 * parse.y (java_expand_classes): Write the class files in reverse
8375 order.
8376
8377 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8378
8379 * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
8380
8381 2002-05-13 Mark Mitchell <mark@codesourcery.com>
8382
8383 * jcf-write.c (write_classfile): Unlink the temporary file if it
8384 cannot be renamed. Use concat to build up the name of the
8385 temporary file.
8386
8387 2002-05-08 Mark Mitchell <mark@codesourcery.com>
8388
8389 * jcf-write.c (write_classfile): Write the file to a
8390 temporary file and then rename it.
8391
8392 2002-05-07 Tom Tromey <tromey@redhat.com>
8393
8394 * gjavah.c (throwable_p): Use xstrdup, not strdup.
8395
8396 Fix for PR java/1200:
8397 * gjavah.c (throwable_p): New function.
8398 (decode_signature_piece): Use it. A `WeakReference' isn't the
8399 same as a `jweak'.
8400 Include hashtab.h.
8401 (gcjh_streq): New function.
8402
8403 2002-05-07 Andreas Jaeger <aj@suse.de>
8404
8405 * parse.y (finish_for_loop): Fix if statement.
8406
8407 2002-05-06 Tom Tromey <tromey@redhat.com>
8408
8409 Fix for PR java/5941:
8410 * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
8411 loop update expression.
8412 (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
8413 * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
8414
8415 2002-05-04 Mark Wielaard <mark@klomp.org>
8416
8417 For PR java/6519:
8418 * parse.y (build_string_concatenation): Return just op1 only when op2
8419 is null and op1 is a STRING_CST, otherwise always construct a
8420 StringBuffer.
8421
8422 2002-04-27 Tom Tromey <tromey@redhat.com>
8423
8424 For PR java/6382:
8425 * parse.y (string_convert_int_cst): New function.
8426 (merge_string_cste): Use it.
8427
8428 2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
8429
8430 * java-tree.h (java_parse_file): Update.
8431 (java_set_yydebug): Remove.
8432 * jcf-parse.c (yydebug): Remove.
8433 (java_set_yydebug): Die.
8434 (java_parse_file): Update.
8435 * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
8436
8437 2002-04-24 Tom Tromey <tromey@redhat.com>
8438
8439 For PR java/6425:
8440 * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
8441 EXPR_WFL_QUALIFICATION of qual_wfl.
8442
8443 2002-04-23 Per Bothner <per@bothner.com>
8444
8445 * expr.c (PRE_JSR): Call NOTE_LABEL for return address.
8446 * java-tree.h (BCODE_RETURN_TARGET): Removed - never set.
8447 (BCODE_TARGET): Remove BCODE_RETURN_TARGET.
8448
8449 2002-04-23 Tom Tromey <tromey@redhat.com>
8450
8451 For PR java/6314:
8452 * jvspec.c (lang_specific_driver): Use --resource, not -R. Also
8453 recognize `-fcompile-resource='.
8454 * gcj.texi (Invoking gcj): Use --resource, not -R. Expanded text
8455 a bit.
8456
8457 2002-04-22 Alexandre Petit-Bianco <apbianco@redhat.com>
8458
8459 * jcf-parse.c: (yyparse): Don't prepend "./" to relative
8460 paths. Fixes PR java/2791.
8461
8462 2002-04-19 Andrew Haley <aph@redhat.com>
8463
8464 * jcf-write.c (push_long_const): lo, hi: New variables.
8465 Use rshift_double to extract the high part of a 64-bit long.
8466 Use WORD_TO_INT to extract the low part.
8467
8468 * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
8469 HOST_WIDE_INT for num. Use JPOOL_UINT to get it.
8470 CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
8471
8472 2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
8473
8474 * typeck.c (incomplete_type_error): Remove.
8475
8476 2002-04-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8477
8478 * class.c (make_class_data): Set DECL_ALIGN on static class data,
8479 for hash synchronization.
8480 * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
8481 * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
8482 class_type_node.
8483
8484 2002-04-16 Mark Wielaard <mark@klomp.org>
8485
8486 * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
8487 negative zero.
8488
8489 2002-04-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8490
8491 Fix for PR java/6294:
8492 * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
8493 interfaces.
8494
8495 2002-04-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8496
8497 Fix for PR java/6085:
8498 * parse.y (patch_method_invocation): Always use build_access_to_thisn
8499 to get enclosing "this" argument for inner-class constructor
8500 invocation. Pass correct arguments to build_access_to_thisn.
8501
8502 2002-04-10 Andreas Jaeger <aj@suse.de>
8503
8504 * gcj.texi (Input Options): Fix extdirs patch.
8505
8506 2002-04-10 Anthony Green <green@redhat.com>
8507
8508 * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
8509
8510 2002-04-09 Anthony Green <green@redhat.com>
8511
8512 * gcj.texi (Input Options): Add --extdirs documentation.
8513 * jcf-dump.c (OPT_extdirs): New macro.
8514 (options): Add extdirs option.
8515 (help): Describe --extdirs.
8516 (main): Handle OPT_extdirs.
8517 * gjavah.c (OPT_extdirs): New macro.
8518 (options): Add extdirs option.
8519 (help): Describe --extdirs.
8520 (main): Handle OPT_extdirs.
8521 * jcf-path.c (jcf_path_init): Add extdirs support.
8522 (jcf_path_extdirs_arg): New function.
8523 (extensions): New variable to hold extensions path entries.
8524 * jvspec.c: Remove -fextdirs= when compiling main().
8525 * lang.c (java_decode_option): Handle -fextdirs=.
8526 * jcf.h (jcf_path_extdirs_arg): Declare new function.
8527 * Make-lang.in: Compile jcf-path with version info for use in
8528 identifying the appropriate libgcj.jar.
8529
8530 2002-04-08 Tom Tromey <tromey@redhat.com>
8531
8532 For PR libgcj/5303:
8533 * .cvsignore: Added rmic.1 and rmiregistry.1.
8534 * gcj.texi (Top): Link to new nodes.
8535 (Invoking rmic): New node.
8536 (Invoking rmiregistry): Likewise.
8537 * Make-lang.in (java.generated-manpages): Added rmic.1 and
8538 rmiregistry.1.
8539 (java.maintainer-clean): Likewise.
8540 ($(srcdir)/java/rmic.1): New target.
8541 ($(srcdir)/java/rmiregistry.1): Likewise.
8542 (java.install-man): Handle rmic.1 and rmiregistry.1.
8543
8544 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8545
8546 * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
8547 Add note about handling uncaught exceptions. Add an exception handler
8548 to example.
8549
8550 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8551
8552 * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
8553 after using it to patch CALL_EXPR.
8554
8555 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8556
8557 * gcj.texi (Invocation): Document CNI invocation API.
8558
8559 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
8560
8561 * expr.c (truthvalue_conversion): Rename. Update.
8562 (expand_compare): Update.
8563 * java-tree.h (java_truthvalue_conversion): New.
8564 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
8565
8566 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
8567
8568 * java-tree.h (java_mark_addressable): New.
8569 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
8570 * typeck.c (mark_addressable): Rename, update.
8571
8572 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
8573
8574 * expr.c (build_java_binop): Update.
8575 * java-tree.h (java_signed_type, java_unsigned_type,
8576 java_signed_or_unsigned_type): Update.
8577 * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
8578 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
8579 * parse.y (patch_binop): Update.
8580 * typeck.c (signed_or_unsigned_type, unsigned_type,
8581 signed_type): Update.
8582
8583 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
8584
8585 * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
8586 (java_dummy_print): Remove.
8587 (lang_print_error): Rename. Exit early if inhibiting output.
8588 (inhibit_error_printing_function): New.
8589 (java_init): Don't set hook.
8590 (lang_init_source): Use new boolean.
8591
8592 2002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
8593
8594 * parse.y (do_resolve_class): Fix infinite recursion.
8595
8596 2002-03-29 Tom Tromey <tromey@redhat.com>
8597
8598 * parse.y (check_inner_circular_reference): Ignore incomplete
8599 types.
8600
8601 2002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
8602
8603 * Make-lang.in (builtins.o): Update.
8604 * boehm.c (get_boehm_type_descriptor): Update.
8605 * builtins.c: Include langhooks.h.
8606 * decl.c (java_init_decl_processing): Update.
8607 * java-tree.h (java_type_for_mode, java_type_for_size): New.
8608 * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
8609 Redefine.
8610 * typeck.c (type_for_mode, type_for_size): Update.
8611
8612 2002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
8613
8614 * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
8615
8616 2002-03-28 Tom Tromey <tromey@redhat.com>
8617
8618 * except.c (expand_end_java_handler): If the handler type is NULL,
8619 use java.lang.Throwable. Fixes PR java/5986.
8620
8621 2002-03-28 Alexandre Petit-Bianco <apbianco@redhat.com>
8622
8623 Fix for PR java/4715:
8624 * jcf-parse.c (parse_source_file_3): New function.
8625 (read_class): Call it.
8626 (java_parse_file): Likewise.
8627
8628 2002-03-28 Jan Hubicka <jh@suse.cz>
8629
8630 * java/lang.c (java_init_options): Set flag_trapping_math to 0.
8631
8632 2002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8633
8634 * parse.y (resolve_package): Initialize "decl".
8635 (lookup_package_type): Remove unused function.
8636
8637 2002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8638
8639 Fix for PR java/5993:
8640 * parse.y (resolve_package): Return the decl if resolution was
8641 successful. Don't special case "java.lang" and "java.lang.reflect"
8642 packages. Set type_name to the merged identifier.
8643 (resolved_qualified_expression_name): Print error using "name" if
8644 resolve_package returns NULL_TREE.
8645
8646 2002-03-27 Tom Tromey <tromey@redhat.com>
8647
8648 * expr.c (expand_invoke): Don't generate null pointer check if
8649 we're calling <init>.
8650
8651 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
8652
8653 * expr.c (java_lang_expand_expr): Rename java_expand_expr,
8654 fix prototype.
8655 * java-tree.h (java_lang_expand_expr): Similarly.
8656 * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
8657 (java_init): Don't set hook.
8658
8659 2002-03-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8660
8661 Fix for PR java/5850:
8662 * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
8663 context if field was not found in the current scope.
8664 * expr.c (lookup_field): Don't look in enclosing contexts.
8665
8666 2002-03-26 Tom Tromey <tromey@redhat.com>
8667
8668 Fix for PR java/5942:
8669 * parse.y (init_src_parse): Added sanity check.
8670 * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
8671 elements, not 11.
8672
8673 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
8674
8675 * decl.c (lang_mark_tree): Rename java_mark_tree.
8676 * java-tree.h (java_mark_tree): New.
8677 * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
8678
8679 2002-03-25 Zack Weinberg <zack@codesourcery.com>
8680
8681 * lex.c: Change java_perform_atof to take normal parameters
8682 instead of a pointer to a parameter block. Call it directly
8683 from java_lex.
8684
8685 2002-03-22 Mark Wielaard <mark@klomp.org>
8686
8687 Fix for PR java/5368:
8688 * parse.y (resolve_qualified_expression_name): Use decl not field_decl
8689 when printing error message.
8690
8691 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
8692
8693 * decl.c (maybe_build_cleanup): Remove.
8694
8695 2002-03-22 Tom Tromey <tromey@redhat.com>
8696
8697 Andrew Haley <aph@cambridge.redhat.com>
8698
8699 * expr.c (build_field_ref): Don't build a check if the field is a
8700 member of `this'.
8701
8702 2002-03-21 Eric Blake <ebb9@email.byu.edu>
8703
8704 Fix for PR java/6026:
8705 * lex.c (java_lex): Fix parsing of consecutive floats.
8706
8707 2002-03-21 Tom Tromey <tromey@redhat.com>
8708
8709 * parse.y (build_access_to_thisn): Stop when FROM is not an inner
8710 class.
8711
8712 2002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
8713
8714 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
8715 insert_block, getdecls, kept_level_p, global_bindings_p): New.
8716
8717 2002-03-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
8718
8719 * gcj.texi: @code{gcj} becomes @command{gcj}.
8720 @code{gcc} becomes @command{gcc}.
8721 GcjRaw changed to gnu.gcc.RawData.
8722
8723 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
8724
8725 * decl.c (start_java_method): Use new hook.
8726 * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
8727 (java_init): Remove old hook.
8728
8729 2002-03-18 Alexandre Petit-Bianco <apbianco@redhat.com>
8730
8731 * builtins.c (define_builtin): Do nothing if `type' is null.
8732 Fixes PR java/5876.
8733
8734 2002-03-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8735
8736 * parse.y (parser_check_super_interface): Fix error message
8737 grammar/order.
8738
8739 2002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8740
8741 * jcf-parse.c (get_constant): Delete unused variables.
8742
8743 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
8744
8745 * java-tree.h (java_parse_file): New.
8746 * jcf-parse.c (yyparse): Rename java_parse_file.
8747 * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
8748
8749 2002-03-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8750
8751 * parse.y (craft_constructor): Return the constructor decl.
8752 (java_expand_classes): Update comments.
8753 (lookup_method_invoke): Call fix_constructors immediately for
8754 anonymous class. Fixes PR java/5935.
8755
8756 2002-03-15 Anthony Green <green@redhat.com>
8757
8758 * jcf-parse.c (yyparse): Don't emit class registration
8759 constructor when compiling resource files.
8760
8761 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8762
8763 * lang.c (java_tree_code_type, java_tree_code_length,
8764 tree_code_name): Delete.
8765 (tree_code_type, tree_code_length, tree_code_name): Define.
8766 (java_init): Don't try to copy into the various tree_code
8767 arrays.
8768
8769 2002-03-12 Tom Tromey <tromey@redhat.com>
8770
8771 * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
8772 UTF-8, not UCS-2. Fixes PR java/5923.
8773
8774 * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
8775 a call_expr wrapped in a convert. Fixes PR java/5848.
8776
8777 2002-03-12 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8778
8779 * jcf-write.c (write_classfile): Improve error strings.
8780
8781 2002-03-11 Eric Blake <ebb9@email.byu.edu>
8782
8783 * lex.c: Adjust comments to GNU standards.
8784
8785 2002-03-11 Eric Blake <ebb9@email.byu.edu>
8786
8787 Fix for PR java/5902:
8788 * lex.c (java_lex): Fix parsing of literals.
8789
8790 2002-03-11 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8791
8792 * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
8793 to prevent it getting evaluated twice in the store checking case.
8794 * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
8795 examining OBJECT.
8796
8797 2002-03-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8798
8799 * decl.c (java_init_decl_processing): Make sure class_type_node
8800 alignment is not less than 64 bits if hash synchronization is enabled.
8801
8802 2002-03-08 Per Bothner <per@bothner.com>
8803
8804 * parse.y (java_complete_lhs): Check if patch_assignment
8805 returned an error-mark.
8806
8807 * parse.y (try_builtin_assignconv): Don't special-case zero.
8808
8809 2002-03-08 Per Bothner <per@bothner.com>
8810
8811 Fix for PR java/5812.
8812 * expr.c (build_java_jsr): Take pc arguments, and do lookup_label
8813 here instead of in JSR macro. Likewise with load_type_state call.
8814 Do the latter on if the return_pc has been verified (the jsr returns).
8815 (JSR): Now just call build_java_jsr.
8816
8817 2002-03-07 Jeff Sturm <jsturm@one-point.com>
8818
8819 * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
8820 (java.install-common): Link native driver to
8821 JAVA_TARGET_INSTALL_NAME.
8822
8823 2002-03-05 David Billinghurst <David.Billinghurst@riotinto.com>
8824
8825 * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
8826 * builtins.c(sin_builtin): Likewise
8827 * builtins.c(sqrt_builtin): Likewise
8828
8829 2002-03-03 Zack Weinberg <zack@codesourcery.com>
8830
8831 * java/expr.c, java/jcf-parse.c, java/lex.c:
8832 Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
8833 REAL_ARITHMETIC blocks unconditional. Delete some further
8834 #ifdef blocks predicated on REAL_ARITHMETIC.
8835
8836 2002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8837
8838 * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
8839 explicit sizeof/sizeof.
8840 * decl.c (java_init_decl_processing): Likewise.
8841 * jcf-parse.c (init_jcf_parse): Likewise.
8842 * parse.y (init_src_parse): Likewise.
8843
8844 2002-03-02 Per Bothner <per@bothner.com>
8845
8846 Make --CLASSPATH by a synonym for --classpath and -classpath.
8847 Implement --bootclasspath.
8848 * jcf-path.c (classpath_u): Rename static variable to classpath_user.
8849 (classpath_l): Remove.
8850 (jcf_path_CLASSPATH_arg): Remove.
8851 (jcf_path_bootclasspath_arg): New function.
8852 (jcf_path_seal): Simplify accordingly.
8853
8854 * jcf.h (jcf_path_bootclasspath_arg): New declarations.
8855 (jcf_path_CLASSPATH): Remove declaration.
8856 * jvspec.c (jvgenmain_spec): Also accept -fbootclasspath*.
8857 (lang_specific_driver): Translate -bootclasspath.
8858 * lang-options.h: Add --bootclasspath. Update --CLASSPATH.
8859 * lang.c (decode_lang_options): Do jcf_path_init first.
8860 Handle -fCLASSPATH same as -fclasspath. Also process -fbootclasspath.
8861 * gjavah.c: Also handle --bootclasspath.
8862 Handle --CLASSPATH as a synonum for --classpath.
8863 * jcf-dump.c: Likewise.
8864
8865 "." is not part of system path, but is the default for --classpath.
8866 * jcf-path.c (jcf_path_init): Don't add "." to sys_dirs.
8867 (jcf_path_seal): Add "." if no CLASSPATH specified.
8868
8869 * gcj.texi: Document changes.
8870
8871 2002-03-01 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8872
8873 * expr.c (build_java_arraystore_check): Fix formatting.
8874
8875 2002-02-28 Alexandre Petit-Bianco <apbianco@redhat.com>
8876
8877 Fix for PR java/5758, java/5632:
8878 * jcf-parse.c (load_class): Renamed local variable, consider `.' an
8879 inner-class separator too.
8880 * parse.y (do_resolve_class): New local `decl_result.'
8881 Progressively build a name for what can have been loaded.
8882
8883 2002-02-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8884
8885 * expr.c (java_array_data_offset): Removed function.
8886 (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
8887 (build_java_array_length_access): Obtain "length" value using a
8888 COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
8889 (build_java_arrayaccess): Correct comment. Access "data" using a
8890 COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
8891 (build_java_arraystore_check): New function.
8892 (expand_java_arraystore): Use build_java_arraystore_check.
8893 * parse.y (patch_assignment): Simplify code to insert a store check
8894 when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
8895 * check-init.c (check_init): Update to reflect that an array length
8896 access is now a COMPONENT_REF.
8897 * gcj.texi (Code Generation): Improve documentation of
8898 -fno-bounds-check. Add documentation for -fno-store-check.
8899 * java-tree.h (flag_store_check): Declare.
8900 (build_java_arraystore_check): Declare.
8901 * lang.c (flag_store_check): Initialize to 1.
8902 (lang_f_options): Add store-check option.
8903 * jvspec.c: Don't pass store-check option to jvgenmain.
8904 * lang-options.h: Add help string for -fno-store-check.
8905
8906 2002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
8907
8908 * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
8909 * java-tree.h (java_dup_lang_specific_decl): New.
8910 * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
8911
8912 2002-02-27 Zack Weinberg <zack@codesourcery.com>
8913
8914 * builtins.c, decl.c: Delete traditional-mode-related code
8915 copied from the C front end but not used, or used only to
8916 permit the compiler to link.
8917
8918 2002-02-22 Tom Tromey <tromey@redhat.com>
8919
8920 Fix for PR java/2369:
8921 * jvspec.c (verify_class_name): New function.
8922 (lang_specific_driver): Call it.
8923 (JAVA_START_CHAR_P): New macro.
8924 (JAVA_PART_CHAR_P): Likewise.
8925
8926 2002-02-22 Per Bothner <per@bothner.com>
8927
8928 * class.c: Change vtable to be more compatible with g++ v3 abi.
8929 (get_dispatch_table): Prepend offset-to-top (always 0) and
8930 type_info pointer (currently unimplemented hence NULL) to vtable.
8931 Specifically, prepend offset-to-top and typeinfo ptr (currently null).
8932 (make_class_data): Variable dtable_start_offset is sizeof 2 pointers.
8933 Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
8934 (build_dtable_decl): Add declarations for new fields.
8935
8936 2002-02-20 Per Bothner <per@bothner.com>
8937
8938 * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
8939 to finit$ (otherwise generate_bytecode_insns drops it). However, we
8940 don't need to set it on the COMPOUND_EXPR - the caller does that.
8941
8942 2002-02-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
8943
8944 * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
8945 `--CLASSPATH' becomes `--classpath.'
8946 * gjavah.c: Likewise.
8947 * jcf-dump.c: Likewise.
8948 * lang-options.h: Likewise.
8949 * lang.c: Likewise.
8950 * jcf-path.c: Updated comment.
8951 (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
8952 (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
8953 * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
8954 (jcf_path_CLASSPATH_arg): Ditto.
8955 (classpath_u): Updated leading comment.
8956
8957 2002-02-20 Per Bothner <per@bothner.com>
8958
8959 * builtins.c (check_for_builtin): New function.
8960 (build_call_or_builtin): Remove.
8961 * java-tree.h: Update accordingly.
8962 * expr.c (expand_invoke): Use build + check_for_builtin instead
8963 of build_call_or_builtin.
8964 * parse.y (patch_invoke): Likewise. This avoids needlessly creating
8965 a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
8966 flag (which had caused jcf-write to incorrectly emit invokevirtual).
8967
8968 2002-02-17 Tom Tromey <tromey@redhat.com>
8969
8970 * java-tree.h (TYPE_STRICTFP): New macro.
8971 (struct lang_type) [strictfp]: New field.
8972 (CLASS_STRICTFP): New macro.
8973 (METHOD_STRICTFP): New macro.
8974 (struct lang_decl) [strictfp]: New field.
8975 * parse.y (method_header): Disallow strictfp constructor or
8976 abstract method.
8977 (STRICT_TK): Move before MODIFIER_TK.
8978 * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
8979 (METHOD_MODIFIERS): Likewise.
8980 (INTERFACE_MODIFIERS): Likewise.
8981 * jcf-write.c (get_access_flags): Likewise.
8982 * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
8983 (add_method_1): Likewise.
8984 (get_access_flags_from_decl): Likewise.
8985 * jcf-dump.c (print_access_flags): Print in standard order. Also,
8986 recognize strictfp flag.
8987 * jcf.h (ACC_STRICT): New define.
8988
8989 2002-02-12 David Billinghurst <Davod.Billinghurst@riotinto.com>
8990
8991 * class.c(build_utf8_ref): Move declaration of decl_size
8992
8993 2002-02-07 Tom Tromey <tromey@redhat.com>
8994
8995 * gcj.texi (Input Options): --CLASSPATH does not suppress system
8996 path.
8997
8998 2002-02-04 Anthony Green <green@redhat.com>
8999
9000 * class.c (build_utf8_ref): Put UTF-8 constants into merged
9001 sections if available.
9002
9003 2002-02-04 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9004
9005 * parse.y (java_expand_classes): Fix typo in static field loop.
9006
9007 2002-02-02 Richard Henderson <rth@redhat.com>
9008
9009 * class.c (add_field): Mark static fields external.
9010 (build_class_ref): Remove redundant set.
9011 * parse.y (java_expand_classes): Mark static fields of classes
9012 to be compiled as local.
9013 * jcf-parse.c (parse_class_file): Likewise.
9014
9015 2002-02-02 Nic Ferrier <nferrier@tapsellferrier.co.uk>
9016
9017 * gcj.texi (About CNI): New node.
9018
9019 2002-02-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
9020
9021 PR java/5080
9022 * jcf-parse.c : Check for HAVE_LOCALE_H before using
9023 setlocale() with LC_CTYPE as a parameter.
9024 * jv-scan.c: Same.
9025
9026 2002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
9027
9028 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
9029 Follow GNU Coding Standards for --version.
9030
9031 2002-01-28 Tom Tromey <tromey@redhat.com>
9032
9033 * expr.c (build_jni_stub): Ensure storage for `meth' is
9034 generated.
9035 * parse.y (java_complete_expand_methods): Set
9036 current_function_decl before building JNI stub.
9037
9038 2002-01-26 Andreas Tobler <a.tobler@schweiz.ch>
9039
9040 * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
9041 BUILT_IN_SQRTF.
9042
9043 2002-01-22 Tom Tromey <tromey@redhat.com>
9044
9045 * decl.c (java_init_decl_processing): Use add_predefined_file.
9046 Predefine RawData.java.
9047 (predef_filenames): Removed.
9048 (java_init_decl_processing): Don't register predef_filenames.
9049 * jcf-parse.c (add_predefined_file): New function.
9050 (predefined_filename_p): Rewrote.
9051 (predefined_filename_p): No longer static.
9052 * decl.c (java_init_decl_processing): Call initialize_builtins.
9053 * Make-lang.in (JAVA_OBJS): Added builtins.o.
9054 (java/builtins.o): New target.
9055 * builtins.c: New file.
9056 * parse.y (patch_invoke): Use build_call_or_builtin.
9057 * java-tree.h (build_call_or_builtin): Declare.
9058 (initialize_builtins): Declare.
9059 (java_set_exception_lang_code): Removed unused declaration.
9060 (PREDEF_FILENAMES_SIZE): Removed.
9061 (java_tree_index): Added JTI_PREDEF_FILENAMES.
9062 (predef_filenames): New define.
9063 (add_predefined_file): Declare.
9064 (predefined_filename_p): Declare.
9065 * expr.c (expand_invoke): Use build_call_or_builtin.
9066
9067 2002-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9068
9069 * parse.y (patch_switch_statement): Fix format specifier.
9070
9071 2002-01-16 Tom Tromey <tromey@redhat.com>
9072
9073 More for PR java/5365:
9074 * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
9075 default.
9076 (process_file): Generate include for
9077 java.lang.UnsupportedOperationExceptions.
9078
9079 2002-01-15 Andreas Jaeger <aj@suse.de>
9080
9081 * .cvsignore: Add man pages.
9082
9083 2002-01-15 Tom Tromey <tromey@redhat.com>
9084
9085 Fix for PR java/5365:
9086 * gjavah.c (process_file): Turn class name into a file name.
9087
9088 2002-01-14 Matthias Klose <doko@debian.org>
9089
9090 * gcj.texi: Fix whitespace and formatting errors in the
9091 synopsis of the man pages. Update copyright.
9092
9093 2002-01-14 Tom Tromey <tromey@redhat.com>
9094
9095 For PR libgcj/5303:
9096 * Make-lang.in (java.install-man): Handle jv-convert man page.
9097 (java.generated-manpages): Added jv-convert.1.
9098 (java.uninstall): Remove jv-convert.1.
9099 (java.maintainer-clean): Likewise.
9100 ($(srcdir)/java/jv-convert.1): New target.
9101 * gcj.texi (Top): Link to jv-convert node.
9102 (Individual utilities): Likewise.
9103 (Invoking jv-convert): New node.
9104
9105 2001-01-10 Jeff Sturm <jsturm@one-point.com>
9106 Martin Kahlert <martin.kahlert@infineon.com>
9107
9108 * jcf-parse.c (get_constant): Don't swap lo/hi for big
9109 endian targets when HOST_BITS_PER_WIDE_INT >= 64.
9110
9111 2002-01-03 Graham Stott <grahams@redhat.com>
9112
9113 * class.c (compile_resource_file): Update copyright date.
9114 Constify filename parameter.
9115 (java-tree.h): Update copyright date.
9116 (compile_resource_file): Constify filename parameter.
9117
9118 2002-01-03 Graham Stott <grahams@redhat.com>
9119
9120 * gcc/jcf-parse.c: Update copyright date.
9121 (yyparse): Constify resource_filename.
9122
9123 2002-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9124
9125 * parse.y (src_parse_roots): Don't needlessly zero init.
9126
9127 2001-12-31 Tom Tromey <tromey@redhat.com>
9128
9129 * parse.y (dump_java_tree): New function.
9130 (source_end_java_method): Call it.
9131 (end_class_declaration): Likewise.
9132 * lang.c (java_decode_option): Call dump_switch_p.
9133
9134 2001-12-28 Tom Tromey <tromey@redhat.com>
9135
9136 * gen-table.pl: Don't process characters after \uffff. Added
9137 comment pointing to input file.
9138
9139 2001-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9140
9141 * gen-table.pl: Const-ify output. Document the location of a
9142 suitable unicode input file.
9143
9144 * chartables.h: Regenerate.
9145
9146 2001-12-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9147
9148 * chartables.h: Const-ify.
9149 * gjavah.c (options): Likewise.
9150 * jcf-dump.c (options): Likewise.
9151 * jv-scan.c (options): Likewise.
9152 * lex.c (java_start_char_p, java_part_char_p): Likewise.
9153 * parse.y (binop_lookup): Likewise.
9154
9155 2001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9156
9157 * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
9158 the static arrays that are output.
9159 * jvspec.c (jvgenmain_spec): Make static.
9160 * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
9161 * keyword.h: Regenerate.
9162 * lang.c (string_option, process_option_with_no, lang_f_options,
9163 lang_W_options): Const-ify.
9164 * lex.c (java_lex): Likewise.
9165
9166 2001-12-21 Richard Henderson <rth@redhat.com>
9167
9168 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
9169 (get_boehm_type_descriptor): ... here. Arrange for the
9170 TREE_TYPE to get set properly.
9171
9172 2001-12-21 Richard Henderson <rth@redhat.com>
9173
9174 * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
9175 only if the target requires collect2.
9176
9177 * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
9178
9179 2001-12-20 Tom Tromey <tromey@redhat.com>
9180
9181 For PR java/4509:
9182 * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
9183 CAN_COMPLETE_NORMALLY for the node.
9184 * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
9185 generate code for second branch if first branch can't complete
9186 normally.
9187 (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
9188 the loop head if the loop body can't complete normally.
9189
9190 2001-12-20 Tom Tromey <tromey@redhat.com>
9191
9192 For PR java/4766:
9193 * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
9194 case where `finally' clause can't complete normally.
9195
9196 2001-12-20 Tom Tromey <tromey@redhat.com>
9197
9198 Fixes PR java/5057:
9199 * parse.y (analyze_clinit_body): Added this_class parameter.
9200 Check for more cases where we must keep <clinit>.
9201 (maybe_yank_clinit): Cleaned up flow control.
9202
9203 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9204
9205 * decl.c (java_init_decl_processing): Don't initialize
9206 finit_leg_identifier_node.
9207 * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
9208 (finit_leg_identifier_node): Remove.
9209 (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
9210
9211 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9212
9213 * mangle.c (mangle_member_name): Don't special-case for
9214 NO_DOLLAR_IN_LABEL.
9215 * mangle_name.c (unicode_mangling_length): Likewise.
9216 (append_unicode_mangled_name): Likewise.
9217 * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
9218 code.
9219
9220 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9221
9222 * expr.c (build_java_array_length_access): Don't force null pointer
9223 check unless flag_check_references is set.
9224
9225 2001-12-20 Tom Tromey <tromey@redhat.com>
9226
9227 Fix for PR java/3417:
9228 * parse.y (patch_assignment): Added special processing for
9229 `return'.
9230 (patch_return): Don't convert booleans to integers, and don't
9231 special-case `null'.
9232
9233 2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
9234
9235 * config-lang.in (diff_excludes): Remove.
9236
9237 2001-12-17 Joseph S. Myers <jsm28@cam.ac.uk>
9238
9239 * gcj.texi: Update link to GCC manual.
9240
9241 2001-12-17 Tom Tromey <tromey@redhat.com>
9242
9243 * parse.y (link_nested_class_to_enclosing): Removed useless
9244 statement.
9245
9246 2001-12-16 Tom Tromey <tromey@redhat.com>
9247
9248 * mangle.c (mangle_method_decl): Never emit `C2' constructor.
9249 Fixes PR java/5088.
9250
9251 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
9252
9253 * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
9254 jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
9255 spelling errors.
9256
9257 2001-12-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9258
9259 * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
9260
9261 2001-12-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9262
9263 * decl.c (java_init_decl_processing): Build otable_type correctly.
9264 otable_decl is an otable_type.
9265
9266 2001-12-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9267
9268 * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
9269 otable_type, otable_ptr_type, method_symbol_type,
9270 method_symbols_array_type, method_symbols_array_ptr_type): New
9271 field/global tree definitions.
9272 (flag_indirect_dispatch): New flag.
9273 * decl.c (java_init_decl_processing): Initialize new otable and
9274 otable_syms type nodes and decls. Add new field "index" to
9275 method_type_node.
9276 * class.c (build_method_symbols_entry): New function.
9277 (make_method_value): Set "index" to to method's vtable index for
9278 virtual methods when indirect-dispatch is not used.
9279 (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
9280 and set vtable_method_count to -1. Set otable and otable_syms field
9281 if indirect-dispatch is used and there was something to put in them.
9282 (build_method_symbols_entry): New function.
9283 (emit_offset_symbol_table): New function.
9284 * expr.c (get_offset_table_index): New function.
9285 (build_invokevirtual): Build array reference to otable at the index
9286 returned by get_offset_table_index, and use the result as the vtable
9287 offset.
9288 (build_invokeinterface): Similar.
9289 * jcf-parse.c (yyparse): If indirect-dispatch, call
9290 emit_offset_symbol_table at the end of compilation, after all classes
9291 have been generated.
9292 * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
9293 * lang.c (flag_indirect_dispatch): Define.
9294 (lang_f_options): Add indirect-dispatch flag.
9295
9296 2001-12-14 Matthias Klose <doko@debian.org>
9297
9298 * gcj.texi: Markup for man page generation. Document missing
9299 options printed by <tool> --help.
9300 Terminate description of gij's -ms option with a dot.
9301 * Make-lang.in ($(srcdir)/java/*.1): New targets.
9302 (java.generated-manpages java.install-man, java.uninstall,
9303 java-maintainer-clean) Updated.
9304
9305 2001-12-14 Hans Boehm <Hans_Boehm@hp.com>
9306
9307 * class.c (get_dispatch_table): Fix java vtable layout
9308 for TARGET_VTABLE_USES_DESCRIPTORS.
9309 * decl.c (java_init_decl_processing): Initialize
9310 alloc_no_finalizer_node, finalize_identifier_node.
9311 * expr.c (class_has_finalize_method): New function.
9312 (expand_java_NEW): Generate calls for finalizer-free allocation.
9313 (build_invokevirtual): Fix java vtable layout for
9314 TARGET_VTABLE_USES_DESCRIPTORS.
9315 * java-tree.h (enum java_tree_index): New entries:
9316 JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
9317 (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
9318 (class_has_finalize_method): declare.
9319 (HAS_FINALIZER_P): New macro.
9320 * parse.y (patch_invoke): Generate calls for finalizer-free
9321 allocation.
9322
9323 2001-12-12 Matthias Klose <doko@debian.org>
9324
9325 * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
9326 whitespace at end of line.
9327
9328 2001-12-11 Tom Tromey <tromey@redhat.com>
9329
9330 * lex.c (java_init_lex): Define wfl_to_string as
9331 gnu.gcj.runtime.StringBuffer unless generating bytecode.
9332
9333 2001-12-11 Jeff Sturm <jsturm@one-point.com>
9334
9335 * class.c (make_method_value): Use null_pointer_node to
9336 represent empty exception table.
9337
9338 2001-12-10 Tom Tromey <tromey@redhat.com>
9339
9340 * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
9341
9342 2001-12-10 Douglas B. Rupp <rupp@gnat.com>
9343
9344 * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
9345
9346 2001-12-09 Per Bothner <per@bothner.com>
9347
9348 * check-init.c (current_switch_has_default): New static field.
9349 (check_init): Case DEFAULT_EXPR: Set current_switch_has_default.
9350 Case SWITCH_EXPR: Save/restore current_switch_has_default. If no
9351 DEFAULT_EXPR seen, simulate a default alternative that copies state.
9352
9353 2001-12-09 Tom Tromey <tromey@redhat.com>
9354
9355 * check-init.c (check_init): Don't allow pre- or post- increment
9356 or decrement of final variable.
9357 (final_assign_error): Minor error message rewording.
9358
9359 2001-12-08 Tom Tromey <tromey@redhat.com>
9360
9361 * java-tree.h: Fixed typo.
9362
9363 * gjavah.c (decompile_method): Don't decompile to `return this'
9364 for static methods.
9365
9366 * gjavah.c (cxx_keywords): Re-sorted.
9367 * lex.c (cxx_keywords): Re-sorted.
9368
9369 * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
9370 else.
9371
9372 * gjavah.c (print_namelet): Clear subnamelets.
9373 (HANDLE_METHOD): Set `method_printed' earlier.
9374
9375 2001-12-07 Tom Tromey <tromey@redhat.com>
9376
9377 * lang.c (lang_f_options): Added
9378 optimize-static-class-initialization.
9379 (java_decode_option): Removed special case.
9380
9381 2001-12-07 Per Bothner <per@bothner.com>
9382
9383 * check-init.c (check_init): Fix typo freeing memory twice.
9384
9385 2001-12-05 Per Bothner <per@bothner.com>
9386
9387 Restore support for static class initialization optimization.
9388 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
9389 * check-init.c (check_int): At end of BLOCK handle initialization
9390 blocks, which used to be done in java_complete_expand_method but did
9391 not handle the case where check_for_initialization might allocate
9392 more than a word of bits.
9393 * decl.c (lang_make_tree): The smic field is now a tree.
9394 * expr.c (build_class_init): Set DECL_FUNCTION_INIT_TEST_CLASS field.
9395 * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE): New macro.
9396
9397 * parse.y (emit_test_initialization): Combine hash_lookup calls.
9398
9399 * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
9400 Change from a hash table to a list.
9401 (struct_lang_decl): Change field 'smic' to match.
9402 * class.c (add_method_1): Initialize
9403 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
9404 * parse.y (adjust_init_test_initialization): Removed - inlined into -
9405 (java_expand_method_bodies): -here, since 'smic' is now a list.
9406 (patch_invoke): Add to 'smic' list, instead of hash_lookup.
9407
9408 * check-init.c (WORD_SIZE): Use BITS_PER_UNIT.
9409
9410 * class.c (java_hash_compare_tree_node): Fix casts.
9411
9412 2001-12-04 Per Bothner <per@bothner.com>
9413
9414 * check-init.c: Handle definite unassignment to finals in addition
9415 to definite assignment.
9416 (loop_current_locals): New field.
9417 (num_current_locals, int start_current_locals, num_current_words):
9418 Make static.
9419 (SET_P, CLEAR_P, SET_BIT): Add needed but missing parentheses.
9420 (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
9421 CLEAR_ASSIGNED, CLEAR_UNASSIGNED): New macros.
9422 (get_variable_decl, check_final_reassigned): New functions.
9423 (check_init, check_bool_init): Modify as needed for checking finals.
9424 (check_for_initialization): Take extra parameter and return void.
9425 Do extra start-up logic to check final fields for assignment.
9426 * parse.y (check_static_final_variable_assignment_flag,
9427 reset_static_final_variable_assignment_flag, check_final_assignment,
9428 check_final_variable_local_assignment_flag,
9429 reset_final_variable_indirect_assignment_flag,
9430 reset_final_variable_global_assignment_flag): Remove functions.
9431 (java_complete_expand_methods, outer_field_access_fix,
9432 patch_assignment): Remove no-longer used logic.
9433 * java-tree.h (DECL_FIELD_FINAL_IUD): Change usage and comments.
9434 * parse.y (register_fields, java_complete_tree): Update accordingly.
9435
9436 * check-init.c (ALLOC_WORDS/FREE_WORDS): Use xmalloc/free, not alloca.
9437 (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER): New.
9438 (check_cond_init, check_bool2_init): Use DECLARE_BUFFERS.
9439
9440 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Temporarily turn off.
9441
9442 * java-tree.h (DECL FINAL): New bit-field.
9443 (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL): Define as DECL_FINAL.
9444 (LOCAL_FINAL_P): Use DECL_FINAL rather than old LOCAL_FINAL.
9445 (DECL_INIT_CALLS_THIS): New macro.
9446 (struct lang_decl): New bit-field init_calls_this.
9447 (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
9448 DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
9449 (DECL_BIT_INDEX): Change to use pointer_alias_set since we now
9450 use it for both local variables and final fields.
9451 (struct lang_decl_var): Remove bit-fields final_liic, final_ierr,
9452 and local_final.
9453 (struct lang_type): Remove hfv bit-field.
9454 (check_for_initialization): Change to return void.
9455
9456 * java-tree.h (IS_ARRAY_LENGTH_ACCESS): New macros.
9457 * expr.c (build_java_array_length_access): Set IS_ARRAY_LENGTH_ACCESS.
9458 * check-init.c (final_assign_error): New helper function.
9459 (check_final_reassigned, check_init): Use it.
9460 (check_init): Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
9461
9462 * java-tree.h (struct lang_decl, struct lang_decl_var): Change all
9463 bit-fields to unsigned.
9464
9465 2001-12-03 Per Bothner <per@bothner.com>
9466
9467 * parse.y (patch_binop): Minor constant folding.
9468
9469 * parse.y (build_current_thisn): Shorter 'buffer'.
9470
9471 2001-12-03 Per Bothner <per@bothner.com>
9472
9473 * decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR
9474 instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
9475 * jcf-write.c (generate_bytecode_insns): Remove support for
9476 CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
9477 * check-init.c (check_init): Likewise.
9478
9479 2001-12-03 Per Bothner <per@bothner.com>
9480
9481 * verify.c (subroutine_nesting): New function.
9482 (verify_jvm_instructions): Use it to fix logic for checking that
9483 we're done with the current subroutine.
9484
9485 * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
9486 OPCODE_instanceof use POP_TYPE macro for better diagnostics.
9487
9488 2001-12-03 Per Bothner <per@bothner.com>
9489
9490 * jcf.h: Fix obvious typo in comment.
9491 * typeck.c (build_null_signature): Add comment.
9492
9493 2001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
9494
9495 * expr.c: Remove leading capital from diagnostic messages, as
9496 per GNU coding standards.
9497 * jcf-io.c: Similarly.
9498 * jcf-parse.c: Similarly.
9499 * jv-scan.c: Similarly.
9500 * jvspec.c: Similarly.
9501 * mangle.c: Similarly.
9502
9503 2001-12-02 Tang Ching-Hui <nicholas@cs.nthu.edu.tw>
9504 Alexandre Petit-Bianco <apbianco@redhat.com>
9505
9506 * expr.c (build_java_arrayaccess): Call save_expr on array for
9507 correct evaluation order, modified comment, fixed indentation.
9508 * parse.y: (patch_assignment): Correctly extract the array base
9509 from the tree generate by build_java_arrayaccess, added comments.
9510 (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
9511 Fixes PR java/3096, PR java/3803, PR java/3965.
9512
9513 2001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
9514
9515 * expr.c (expand_byte_code): Remove trailing periods from messages.
9516 * jcf-parse.c (load_class, jcf_parse): Similarly.
9517 * jcf-write.c (generate_classfile): Similarly.
9518 * lex.c (java_lex): Similarly.
9519
9520 2001-11-30 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9521
9522 * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
9523
9524 2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
9525
9526 * Make-lang.in (java.generated-manpages): New dummy target.
9527
9528 2001-11-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9529
9530 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9531 ASM_FINAL_SPEC.
9532 (lang_specific_pre_link): Use set_input to set input_filename.
9533 Append `main' here.
9534 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9535 (main): Fix definition.
9536 Strip `main' from classname.
9537 Fixes PR java/227.
9538
9539 2001-11-18 Roger Sayle <roger@eyesopen.com>
9540
9541 * parse.h (java_expand_switch): Remove old prototype.
9542
9543 2001-11-18 Tom Tromey <tromey@redhat.com>
9544
9545 Fix for PR java/1401:
9546 * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
9547 arg0 is null.
9548 (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
9549 correctly.
9550
9551 2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
9552
9553 * lang.c (finish_parse): Rename to java_finish.
9554 (LANG_HOOKS_FINISH, java_finish): New.
9555
9556 2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
9557
9558 * decl.c (init_decl_processing): Rename java_init_decl_processing.
9559 * java-tree.h: New prototype.
9560 * lang.c (java_init): Update prototype. Combine with old init_parse.
9561
9562 2001-11-13 Tom Tromey <tromey@redhat.com>
9563
9564 * gjavah.c (method_signature): New global.
9565 (HANDLE_METHOD): Set it.
9566 (decompile_return_statement): New function.
9567 (decompile_method): Use it.
9568 (print_method_info): Removed `synth' argument.
9569
9570 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
9571
9572 * java-tree.h (java_set_yydebug): New.
9573 * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
9574 * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
9575 (print_lang_decl, print_lang_type, print_lang_identifier,
9576 print_lang_statistics, lang_print_xnode): Remove.
9577
9578 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
9579
9580 * jcf-parse.c (init_lex): Remove.
9581 * lang.c (language_string, lang_identify): Remove.
9582 (struct lang_hooks): Constify.
9583 (LANG_HOOKS_NAME): Override.
9584 (init_parse): Update.
9585
9586 2001-11-08 Andreas Franck <afranck@gmx.de>
9587
9588 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
9589 program_transform_name the way suggested by autoconf.
9590 (java.install-common): Also transform auxiliary program names with
9591 program_transform_name.
9592
9593 2001-11-08 Tom Tromey <tromey@cygnus.com>
9594
9595 * parse.y (trap_overflow_corner_case): New rule.
9596 (unary_expression): Use it.
9597 * lex.c (java_init_lex): Don't set minus_seen.
9598 (yylex): Don't use minus_seen. Communicate overflow to parser for
9599 it to handle.
9600 (error_if_numeric_overflow): New function.
9601 * parse.h (minus_seen): Removed field.
9602 (JAVA_RADIX10_FLAG): New define.
9603
9604 2001-11-07 Tom Tromey <tromey@redhat.com>
9605
9606 Patch for PR java/1414:
9607 * parse.y (case_label_list): New global.
9608 (goal): Register case_label_list with GC.
9609 (java_complete_lhs): Save new case on case_label_list.
9610 (patch_switch_statement): Check for duplicate case labels.
9611
9612 2001-11-07 Alexandre Petit-Bianco <apbianco@redhat.com>
9613
9614 * parse.y (patch_assignment): Removed unused third argument.
9615 (java_complete_lhs): Removed unused third argument to patch_assignment.
9616
9617 2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
9618
9619 * lang.c: Include langhooks-def.h.
9620 * Make-lang.in: Update.
9621
9622 2001-10-31 Zack Weinberg <zack@codesourcery.com>
9623
9624 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
9625
9626 2001-10-29 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9627
9628 * mangle.c (find_compression_record_match): Don't match compression
9629 records for package name elements unless they occur at the start of
9630 the name. Fix for PR java/4717.
9631
9632 2001-10-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9633
9634 * expr.c (expand_java_field_op): Don't special-case references to
9635 java.lang.PRIMTYPE.TYPE.
9636 (build_primtype_type_ref): Removed.
9637 * java-tree.h (build_primtype_type_ref): Remove prototype.
9638 * parse.y (maybe_build_primttype_type_ref): Removed.
9639 (complete_function_arguments): Don't special-case references to
9640 java.lang.PRIMTYPE.TYPE.
9641 (patch_assignment): Likewise.
9642 (array_constructor_check_entry): Likewise.
9643
9644 2001-10-24 Alexandre Petit-Bianco <apbianco@redhat.com>
9645
9646 * mangle.c (static tree compression_table): Fixed leading comment.
9647 * parse.h (struct parser_ctxt): Fixed field comment.
9648 * parse.y (check_pkg_class_access): New prototype, fixed leading
9649 comment, new parameter used to emit error only if passed as true.
9650 (parse_check_super): Pass extra argument to check_pkg_class_access.
9651 (do_resolve_class): Likewise.
9652 (process_imports): Likewise.
9653 (read_import_dir): Fixed indentation.
9654 (find_in_imports_on_demand): New local class_type_name. Local
9655 node_to_use deleted. while loop changed into for loop. Report
9656 multiple definition only for accessible classes. Improved error
9657 message.
9658 (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
9659 assigned to parameter list, fixed indentation. while loop changed
9660 into for loop, restore TREE_CHAIN on local `tem' before the next
9661 iteration.
9662
9663 2001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9664
9665 * lang.c (lang_get_alias_set): Deleted.
9666
9667 2001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9668
9669 * gjavah.c (jni_print_char): Fix thinko in last change.
9670
9671 * gjavah.c (jni_print_char, decode_signature_piece): Use
9672 safe-ctype macros and/or fold extra calls into fewer ones.
9673 * lex.c (java_read_unicode, java_lex): Likewise.
9674 * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
9675 JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
9676 * mangle_name.c (append_unicode_mangled_name,
9677 unicode_mangling_length): Likewise.
9678
9679 2001-10-17 Richard Henderson <rth@redhat.com>
9680
9681 * Make-lang.in (java/lang.o): Depend on langhooks.h.
9682
9683 2001-10-15 Alexandre Petit-Bianco <apbianco@redhat.com>
9684
9685 * lang.c (langhooks.h): Included.
9686 (LANG_HOOKS_INIT): Redefined.
9687 (LANG_HOOKS_INIT_OPTIONS): Likewise.
9688 (LANG_HOOKS_DECODE_OPTION): Likewise.
9689 (struct lang_hooks lang_hooks): New initialization.
9690
9691 2001-10-11 Per Bothner <per@bothner.com>
9692
9693 * parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR
9694 rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
9695 The former is simpler, and jcf-write.c handles it better.
9696 (java_complete_lhs): No longer need to handle CLEANUP_POINT_EXPR
9697 or WITH_CLEANUP_EXPR.
9698 * jcf-write.c: Revert Alex's change from 2000-10-18. It is no
9699 longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
9700
9701 * parse.y (patch_if_else_statement): If the condition is constant,
9702 optimize away the test.
9703
9704 2001-10-09 Alexandre Petit-Bianco <apbianco@redhat.com>
9705
9706 * parse.y (patch_cast): Call patch_string on the first operand of
9707 the incoming node, update it if necessary. Fixes PR java/4510.
9708
9709 2001-10-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9710
9711 * parse.y (find_as_inner_class): Don't disregard the enclosing scope
9712 when name qualifier matches a package name.
9713
9714 2001-10-08 Tom Tromey <tromey@redhat.com>
9715
9716 Fix for PR java/4489:
9717 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
9718 force a new label when computing `body_block'.
9719
9720 2001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9721
9722 * jcf-io.c (format_uint): Const-ify.
9723 * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
9724 * lex.c (java_get_line_col): Likewise.
9725 * parse.y (build_incdec): Likewise.
9726
9727 2001-10-05 Alexandre Petit-Bianco <apbianco@redhat.com>
9728
9729 * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
9730 a NULL enclosing context if appropriate. Fixes PR java/4466.
9731
9732 2001-10-03 Alexandre Petit-Bianco <apbianco@redhat.com>
9733
9734 * parse.y (patch_assignment): Use lvalue's original TYPE when
9735 building the final COMPOUND_EXPR.
9736 (try_reference_assignconv): Fixed leading comment.
9737
9738 2001-09-26 Alexandre Petit-Bianco <apbianco@redhat.com>
9739
9740 * parse.y (check_final_variable_indirect_assignment): For
9741 COMPOUND_EXPR, return only if finals were found initialized
9742 properly, if not, keep on checking.
9743 (check_final_variable_global_assignment_flag): New local
9744 error_found, set when appropriate and used to decide whether to
9745 report uninitialized finals. Fixed typo in comment.
9746
9747 2001-09-22 Alexandre Petit-Bianco <apbianco@redhat.com>
9748
9749 * decl.c (init_decl_processing): Fixed typo in predef_filenames
9750 last three initializations. Fixes PR java/4360.
9751
9752 2001-09-21 Richard Henderson <rth@redhat.com>
9753
9754 * class.c (get_dispatch_table): Handle function descriptors.
9755 (build_dtable_decl): Likewise.
9756 * expr.c (build_invokevirtual): Likewise.
9757
9758 2001-09-20 Alexandre Petit-Bianco <apbianco@redhat.com>
9759
9760 * parse.y (patch_method_invocation): Build class initialization
9761 when static finals are used to qualify method invocation.
9762 Fixes PR java/4366.
9763
9764 2001-09-19 Alexandre Petit-Bianco <apbianco@redhat.com>
9765
9766 * parse.h: (WFL_STRIP_BRACKET): Re-written using
9767 build_type_name_from_array_name.
9768 (STRING_STRIP_BRACKETS): New macro.
9769 * parse.y (build_type_name_from_array_name): New function.
9770 (array_creation_expression:): Accumulate []s instead of [s.
9771 (cast_expression:): Accumulate []s instead of [s after cast type
9772 name.
9773 (build_array_from_name): Local string deleted, use
9774 build_type_name_from_array_name.
9775 (build_unresolved_array_type): Accumulate []s instead of [s after
9776 type name.
9777 (register_fields): Fixed comment.
9778 (resolve_class): Local name, base deleted, new locals tname and
9779 array_dims. Use build_type_name_from_array_name. Use array_dims to
9780 build array type.
9781 (purify_type_name): Use STRING_STRIP_BRACKETS.
9782
9783 2001-09-18 Andreas Jaeger <aj@suse.de>
9784
9785 * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
9786 * jv-scan.c: Likewise.
9787
9788 2001-09-17 Alexandre Petit-Bianco <apbianco@redhat.com>
9789
9790 * parse.y (patch_method_invocation): Inner class creation context
9791 check not enforced within constructors. Fixes PR java/1873.
9792
9793 2001-09-16 Tom Tromey <tromey@redhat.com>
9794
9795 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
9796 NOTE_PUSH for single-case push. Fixes PR java/4189.
9797
9798 2001-09-13 Alexandre Petit-Bianco <apbianco@redhat.com>
9799
9800 * java-tree.h (TYPE_IMPORT_LIST): New macro.
9801 (TYPE_IMPORT_DEMAND_LIST): Likewise.
9802 (struct lang_type): New fields import_list and import_demand_list.
9803 * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
9804 TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
9805 (do_resolve_class): New local saved_enclosing_type, initialized,
9806 passed as parameter to find_in_imports and find_in_imports_on_demand.
9807 (find_in_imports): Added paramater enclosing_type, use its
9808 TYPE_IMPORT_LIST when applicable.
9809 (find_in_imports_on_demand): Added parameter enclosing_type, use
9810 its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
9811 declaration and initialization.
9812 (fold_constant_for_init): Switch/restore current_class to the
9813 appropriate context.
9814
9815 2001-09-13 Mark Mitchell <mark@codesourcery.com>
9816
9817 * verify.c (verify_jvm_instructions): Fix typo.
9818
9819 2001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9820
9821 * expr.c (expand_invoke): Const-ification.
9822 * parse.y (patch_method_invocation): Likewise.
9823
9824 2001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9825
9826 * gjavah.c (cxx_keywords): Const-ification.
9827 * keyword.gperf (java_keyword): Likewise.
9828 * lang.c (java_tree_code_name): Likewise.
9829 * lex.c (cxx_keywords): Likewise.
9830 * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
9831
9832 2001-09-11 Richard Henderson <rth@redhat.com>
9833
9834 * parse.h (ctxp_for_generation): Mark extern.
9835
9836 2001-09-10 Richard Henderson <rth@redhat.com>
9837
9838 * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
9839
9840 2001-09-07 Matt Kraai <kraai@alumni.carnegiemellon.edu>
9841
9842 * typeck.c (java_array_type_length, build_prim_array_type):
9843 Represent empty arrays by NULL index.
9844
9845 2001-09-06 Alexandre Petit-Bianco <apbianco@redhat.com>
9846
9847 * java-tree.h (compile_resource_file): Grouped with other prototypes.
9848 * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
9849
9850 2001-09-06 Anthony Green <green@redhat.com>
9851
9852 * class.c (O_BINARY): Define if necessary.
9853 (registerResource_libfunc): Declare.
9854 (init_class_processing): Initilize registerResource_libfunc.
9855 (compile_resource_file): New function.
9856 * java-tree.h (resource_name): Declare.
9857 (compile_resource_file): Declare.
9858 * jcf-parse.c (yyparse): Handle compiling java resource files.
9859 * lang.c (java_decode_option): Handle -fcompile-resource option.
9860 * jvspec.c (lang_specific_driver): Handle -R flag for compiling
9861 resource files.
9862 * gcj.texi (Code Generation): Add documentation for -R flag.
9863
9864 2001-09-05 Alexandre Petit-Bianco <apbianco@redhat.com>
9865
9866 * jcf-write.c (generate_classfile): Issue an error in case of
9867 field/initial value mismatch.
9868 * parse.y (analyze_clinit_body): Keep <clinit> if an array is
9869 being initialized and we're generating bytecode.
9870 (java_complete_lhs): In MODIFY_EXPR section: added comments,
9871 set DECL_INITIAL properly when appropriate.
9872 Fixes PR java/4230
9873 Fixes PR java/4204
9874
9875 2001-09-01 Per Bothner <per@bothner.com>
9876
9877 * parse.y (maybe_yank_clinit): A field without an initializer is not
9878 relevant. All initializers except static final and constant require
9879 <clinit>, regardless of flag_emit_class_files.
9880
9881 2001-08-31 Per Bothner <per@bothner.com>
9882
9883 * class.c (set_constant_value): When not emitting class files, then a
9884 String ConstantValue is a utf8const_ptr_type.
9885
9886 2001-08-30 Per Bothner <per@bothner.com>
9887
9888 * jcf-write.c (generate_classfile): Check that field is primitive
9889 or string before emitting ConstantValue attribute.
9890
9891 2001-08-30 Per Bothner <per@bothner.com>
9892
9893 * parse.y (resolve_qualified_expression_name): If creating a
9894 COMPOUND_EXPR, set it's type correctly.
9895
9896 2001-08-30 Per Bothner <per@bothner.com>
9897
9898 * jcf-io.c (open_class): Set filename field.
9899
9900 * jcf-parse,c (parse_class_file): Set current_function_decl
9901 for better error message when Code attribute is missing.
9902
9903 * lang.c (put_decl_node, lang_print_error): Re-arrange for
9904 better diagnostics, especially for constructors.
9905
9906 2001-08-30 Per Bothner <per@bothner.com>
9907
9908 * jcf-write.c (generate_classfile): Don't write ConstantValue
9909 attribute if field is not final, for compatibility with jdk.
9910
9911 * jcf-write.c (generate_classfile): Convert ConstantValue values
9912 to correct type. Work-around for front-end bug.
9913 * class.c (set_constant_value): Error if constant has wrong type.
9914
9915 2001-08-30 Per Bothner <per@bothner.com>
9916
9917 * jcf-dump.c (print_constant): Fix fencepost error so "Float" and
9918 "Double" are printed at verbosity 1.
9919
9920 * jcf-dump.c (main): Disable flag_print_attributes if --javap.
9921
9922 * jcf-dump.c (SPECIAL_IINC): Remove unneeded casts to long.
9923
9924 2001-08-30 Alexandre Petit-Bianco <apbianco@redhat.com>
9925
9926 * parse.y (patch_assignment): Don't verify final re-assignment here.
9927 (java_complete_lhs): Verify assignments to finals calling
9928 patch_assignment. Verify re-assignments to finals before calling
9929 patch_assignment.
9930
9931 2001-08-29 Alexandre Petit-Bianco <apbianco@redhat.com>
9932
9933 * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
9934 Fixes PR java/1413
9935
9936 2001-08-28 Alexandre Petit-Bianco <apbianco@redhat.com>
9937
9938 * lex.c (java_lex): new local found_hex_digits. Set and then used
9939 in test to reject invalid hexadecimal numbers.
9940 * parse.y (java_complete_tree): Prevent unwanted cast with
9941 initialized floating point finals.
9942 (patch_binop): Emit a warning when detecting a division by zero,
9943 mark result not constant, don't simplify non integer division.
9944
9945 2001-08-28 Per Bothner <per@bothner.com>
9946
9947 * jcf-write.c (generate_bytecode_insns): For increments and
9948 decrements just recurse to push constant. Improvement on Mark's patch.
9949
9950 2001-08-28 Mark Mitchell <mark@codesourcery.com>
9951
9952 * jcf-write.c (generate_bytecode_insns): Generate an integer to
9953 real conversion for increments and decrements of reals.
9954
9955 2001-08-27 Alexandre Petit-Bianco <apbianco@redhat.com>
9956
9957 * parse.y (resolve_qualified_expression_name): Handle unresolved
9958 qualified expressions, prevent numerical qualifiers, fixed typo.
9959 Fixes PR java/4141
9960
9961 2001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com>
9962
9963 * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
9964 don't report anything but deprecated class when marked so. Handle
9965 VAR_DECL.
9966 (patch_method_invocation): Check deprecation on methods and types.
9967 (patch_binop): code becomes an enum tree_code, added default: to
9968 switch to handle that. Detect division by zero, try to fold and
9969 return before using a subroutine.
9970
9971 2001-08-23 Alexandre Petit-Bianco <apbianco@redhat.com>
9972
9973 * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
9974 file smaller than 4 bytes.
9975 * parse.y (check_inner_circular_reference): New function.
9976 (check_circular_reference): Likewise.
9977 (array_initializer:): Accept {,}.
9978 (java_check_circular_reference): Rewritten using
9979 check_circular_reference and check_inner_circular_reference.
9980 (java_complete_expand_method): Unconditionally save and restore
9981 the unpurged exception list.
9982 (build_dot_class_method_invocation): Unmangle signature parameter.
9983
9984 2001-08-21 Tom Tromey <tromey@redhat.com>
9985
9986 * decl.c (init_decl_processing): Add `throws' field to method
9987 descriptor.
9988 * class.c (make_method_value): Compute `throws' field for method.
9989
9990 2001-08-22 Alexandre Petit-Bianco <apbianco@redhat.com>
9991
9992 * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
9993 circularity is detected.
9994 (ctors_unchecked_throws_clause_p): Fixed leading comment.
9995
9996 2001-08-17 Richard Henderson <rth@redhat.com>
9997
9998 * class.c (emit_register_classes): Add align parameter to
9999 call to assemble_integer.
10000
10001 2001-08-16 Alexandre Petit-Bianco <apbianco@redhat.com>
10002
10003 * jcf-parse.c (load_class): New locals saved and class_loaded. If
10004 loading a class_or_name fails, try considering an innerclass name
10005 and load the enclosing context.
10006 * parse.y (resolve_inner_class): New function.
10007 (find_as_inner_class): Added leading comment.
10008 (register_incomplete_type): Keep the current context as enclosing
10009 context for JDEP_FIELD dependencies.
10010 (do_resolve_class): Locals new_class_decl and super initialized to
10011 NULL. Call resolve_inner_class, explore the enclosing context
10012 superclass if necessary.
10013 Fixes PR java/4007
10014
10015 2001-08-16 Tom Tromey <tromey@redhat.com>
10016
10017 * jcf-dump.c (main): Updated for change to jcf_path_seal.
10018 * gjavah.c (main): Updated for change to jcf_path_seal.
10019 * lang.c (version_flag): New global.
10020 (java_decode_option): Recognize `-version'.
10021 (java_init): Update for change to jcf_path_seal.
10022 * jcf.h (jcf_path_seal): Added `print' argument.
10023 * jcf-path.c (jcf_path_seal): Added `print' argument.
10024
10025 2001-08-13 Zack Weinberg <zackw@panix.com>
10026
10027 * Make-lang.in (java/decl.o): Update dependencies.
10028 * decl.c: Include libfuncs.h, don't include toplev.h.
10029
10030 2001-08-12 Alexandre Petit-Bianco <apbianco@redhat.com>
10031
10032 * decl.c (init_decl_processing): exception_type_node,
10033 class_not_found_type_node, and no_class_def_found_type_node
10034 initialized. predef_filenames augmented accordingly.
10035 instinit_identifier_node initialized.
10036 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
10037 * java-tree.h (enum java_tree_index): New entries
10038 JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
10039 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
10040 (exception_type_node): New macro.
10041 (class_not_found_type_node): Likewise.
10042 (no_class_def_found_type_node): Likewise.
10043 (instinit_identifier_node): Likewise.
10044 (PREDEF_FILENAMES_SIZE): Adjusted.
10045 (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
10046 (struct lang_type): Fixed typo in bitfield name.
10047 (DECL_INSTINIT_P): New macro.
10048 (ID_INSTINIT_P): Likewise.
10049 * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
10050 attribute.
10051 * parse.y (encapsulate_with_try_catch): New function.
10052 (generate_instinit): Likewise.
10053 (build_instinit_invocation): Likewise.
10054 (ctors_unchecked_throws_clause_p): Likewise.
10055 (add_instance_initializer): Deleted.
10056 (build_instance_initializer): Likewise.
10057 (in_instance_initializer): Likewise.
10058 (check_method_redefinition): instinit$ not to be verified.
10059 (java_complete_expand_methods): Generate instinit$, simplified code.
10060 (build_dot_class_method): Eliminated unnecessary locals. Use
10061 encapsulate_with_try_catch, removed unnecessary code.
10062 (fix_constructors): New local iii. Use build_instinit_invocation.
10063 (patch_method_invocation): Added comment.
10064 (maybe_use_access_method): Don't consider instinit$.
10065 (find_applicable_accessible_methods_list): Shorten the search for
10066 instinit$ too.
10067 (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
10068 (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
10069 (patch_throw_statement): Likewise. Fixed typo.
10070
10071 2001-08-12 David Edelsohn <edelsohn@gnu.org>
10072
10073 Revert:
10074 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10075 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10076 ASM_FINAL_SPEC.
10077 (lang_specific_pre_link): Use set_input to set input_filename.
10078 Append `main' here.
10079 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10080 (main): Fix definition.
10081 Strip `main' from classname.
10082 Fixes PR java/227.
10083
10084 2001-08-11 Zack Weinberg <zackw@panix.com>
10085
10086 * lex.h: Don't include setjmp.h. Don't define
10087 SET_FLOAT_HANDLER or prototype set_float_handler.
10088
10089 2001-08-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10090
10091 * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
10092 `poplevel' in the right order.
10093
10094 2001-08-09 Richard Henderson <rth@redhat.com>
10095
10096 * Make-lang.in (class.o): Depend on TARGET_H.
10097 * class.c (emit_register_classes): Use target hooks instead of
10098 assemble_constructor and assemble_destructor.
10099
10100 2001-08-08 Alexandre Petit-Bianco <apbianco@redhat.com>
10101
10102 * check-init.c (flags.h): Include
10103 (check_init): Don't report uninitialized static class
10104 initialization flags, don't free bit index when doing static class
10105 initialization optimization.
10106 (check_for_initialization): Return type changed to `unsigned int.'
10107 (attach_initialized_static_class): New function.
10108 * class.c (add_method_1): Create the initialized static class
10109 table if necessary.
10110 (finish_class): Always emit deferred inline methods.
10111 * decl.c (emit_init_test_initialization): Moved to expr.c
10112 (complete_start_java_method): Don't traverse
10113 DECL_FUNCTION_INIT_TEST_TABLE.
10114 (lang_mark_tree): Mark hash tables in function decls.
10115 * expr.c (emit_init_test_initialization): Moved from decl.c.
10116 (build_class_init): Create LAG_DECL_SPECIFIC for the static class
10117 initialization flag, set DECL_CONTEXT and
10118 LOCAL_CLASS_INITIALIZATION_FLAG.
10119 (java_lang_expand_expr): Emit initialization code for static class
10120 initialized flags when entering block, if necessary.
10121 * gcj.texi (-fno-optimize-static-class-initialization): Documented.
10122 * java-tree.h (flag_optimize_sci): New global variable declaration.
10123 (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
10124 (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
10125 (LOCAL_FINAL_P): Fixed typo in comment.
10126 (FINAL_VARIABLE_P): Likewise.
10127 (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
10128 (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
10129 (struct lang_decl): New fields `ict', `smic' and `cif.'
10130 (check_for_initialization): New returned value for global.
10131 (attach_initialized_static_class): New global function.
10132 (STATIC_CLASS_INIT_OPT_P): New macro.
10133 * lang-options.h (-fno-optimize-static-class-initialization): New flag.
10134 * lang.c (java_decode_option): Handle
10135 `-fno-optimize-static-class-initialization'
10136 * parse.y (start_complete_expand_method): New function.
10137 (java_expand_method_bodies): Likewise.
10138 (attach_init_test_initialization_flags): Likewise.
10139 (adjust_init_test_initialization): Likewise.
10140 (emit_test_initialization): Likewise.
10141 (java_complete_expand_methods): Nullify abstract and native method
10142 bodies.
10143 (java_complete_expand_method): New locals `fbody', `block_body'
10144 and `exception_copy.' Reorganized: directly return on empty method
10145 bodies, call `start_complete_expand_method', remember definitely
10146 initialized static class in function, don't expand method bodies.
10147 (java_expand_classes): Call `java_expand_method_bodies' before
10148 `finish_class' when compiling to native.
10149 (resolve_expression_name): Use `orig' after building outer class
10150 field access.
10151 (patch_invoke): Remember static method invocations.
10152
10153 2001-08-06 Richard Henderson <rth@redhat.com>
10154
10155 * class.c (emit_register_classes): Pass a symbol_ref and priority
10156 to assemble_constructor.
10157
10158 2001-08-02 Alexandre Petit-Bianco <apbianco@redhat.com>
10159
10160 * java-tree.h (all_class_filename): New macro.
10161 (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
10162 (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
10163 newly created IDENTIFIER_NODE to `all_class_filename.'
10164
10165 2001-08-01 Jeff Sturm <jsturm@one-point.com>
10166
10167 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
10168 Use ggc_add_tree_root to register roots.
10169
10170 2001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
10171
10172 * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
10173 second operand calling check_init.
10174 * decl.c (complete_start_java_method): Swaped second and third
10175 arguments while creating WITH_CLEANUP_EXPR node.
10176 * jcf-write.c (generate_bytecode_insns): Use second operand
10177 instead of third when handling WITH_CLEANUP_EXPR.
10178 * parse.y (java_complete_lhs): Expand second operand of
10179 WITH_CLEANUP_EXPR nodes.
10180 (patch_synchronized_statement): Swaped second and third arguments
10181 while creating WITH_CLEANUP_EXPR node.
10182
10183 2001-07-18 Alexandre Petit-Bianco <apbianco@redhat.com>
10184
10185 * parse.y (create_interface): Avoid cyclic inheritance report when
10186 syntax error encountered during class definition.
10187 Fixes PR java/2956
10188
10189 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10190
10191 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10192 ASM_FINAL_SPEC.
10193 (lang_specific_pre_link): Use set_input to set input_filename.
10194 Append `main' here.
10195 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10196 (main): Fix definition.
10197 Strip `main' from classname.
10198 Fixes PR java/227.
10199
10200 2001-07-18 Tom Tromey <tromey@redhat.com>
10201
10202 For PR java/2812:
10203 * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
10204 * lex.c (java_new_lexer): Use ICONV_CONST.
10205 (java_read_char): Likewise.
10206 * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
10207 (jv-scan$(exeext)): Likewise.
10208
10209 2001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
10210
10211 * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
10212 * parse.y (check_class_interface_creation): Allow `private' if the
10213 enclosing is not an interface.
10214 (create_interface): Interface tagged public if the enclosing
10215 context is an interface.
10216 (create_class): Class tagged public if the enclosing context
10217 is an interface.
10218 Fixes PR java/2959
10219
10220 2001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
10221
10222 * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
10223 Fixes PR java/2665
10224
10225 2001-07-14 Tim Josling <tej@melbpc.org.au>
10226
10227 * check-init.c (check_init): Remove references to EXPON_EXPR.
10228
10229 2001-07-13 Alexandre Petit-Bianco <apbianco@redhat.com>
10230
10231 * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
10232 TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
10233 Fixes PR java/3602
10234
10235 2001-07-13 Tom Tromey <tromey@redhat.com>
10236
10237 * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
10238 invocation.
10239
10240 2001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
10241
10242 * parse.y (patch_method_invocation): Don't override primary if one
10243 is already provided, but let this$<n> be built. Fixed comment.
10244
10245 2001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
10246
10247 * parse.y (empty_statement:): Report empty statement error only
10248 when found at class declaration level.
10249 Fixes PR java/3635
10250
10251 2001-07-12 Tom Tromey <tromey@redhat.com>
10252
10253 * expr.c (expand_load_internal): New function.
10254 (LOAD_INTERNAL): Use it.
10255
10256 2001-07-11 Alexandre Petit-Bianco <apbianco@redhat.com>
10257
10258 * parse.y (verify_constructor_super): Compare anonymous class ctor
10259 args with `valid_method_invocation_conversion_p.'
10260 Fixes PR java/3285
10261
10262 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
10263
10264 * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
10265 `-fsyntax-only.' Fixes PR java/3248
10266
10267 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
10268
10269 * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
10270
10271 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
10272
10273 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
10274 current function is static. Fixes PR java/1970
10275
10276 2001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10277
10278 * parse.y (patch_method_invocation): Add enclosing context to ctor
10279 calls if necessary. Fixes PR java/2953
10280
10281 2001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10282
10283 * parse.y (resolve_package): Abort if qualified expression member
10284 isn't right.
10285 (qualify_ambiguous_name): Don't qualify as type if `this' in use.
10286 Fixes PR java/1391
10287
10288 2001-07-07 Zack Weinberg <zackw@stanford.edu>
10289
10290 * verify.c: Don't use // comments.
10291
10292 2001-07-05 Tom Tromey <tromey@redhat.com>
10293
10294 * lang.c (flag_assume_compiled): Removed.
10295 * java-tree.h (flag_assume_compiled): Removed.
10296 * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
10297 -fhash-synchronization, -fuse-divide-subroutine,
10298 -fcheck-references, -femit-class-file, -femit-class-files,
10299 -fassume-compiled. Updated --encoding information. Changed
10300 -foutput-class-dir to `-d'.
10301
10302 2001-07-04 Daniel Berlin <dan@cgsoftware.com>
10303
10304 * jcf-parse.c (parse_class_file): Add lineno parameter to
10305 debug_start_source_file call.
10306
10307 2001-07-04 Joseph S. Myers <jsm28@cam.ac.uk>
10308
10309 * gcj.texi: Use gpl.texi.
10310 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
10311 dependencies and use doc/include in search path.
10312
10313 2001-07-03 Jeff Sturm <jsturm@one-point.com>
10314
10315 * parse.y (fix_constructors): Test if a CALL_EXPR invokes
10316 `this'. If so, don't build instance initializers.
10317
10318 2001-07-03 Alexandre Petit-Bianco <apbianco@redhat.com>
10319
10320 * parse.y (resolve_expression_name): Improved error message for
10321 inner class cases. Fixes PR java/1958
10322
10323 2001-06-28 Gabriel Dos Reis <gdr@codesourcery.com>
10324
10325 * lang.c: #include diagnostic.h
10326 (lang_print_error): Add a `diagnostic_context *' parameter.
10327 (java_dummy_print): Likewise.
10328 * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
10329
10330 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10331
10332 * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
10333 * jcf.h (typedef struct JCF): New bitfield `finished.'
10334 (JCF_FINISH): Set `finished.'
10335 (JCF_ZERO): Reset `finished.'
10336 Fixes PR java/2633
10337
10338 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10339
10340 * parse.y (class_body_declaration:): Don't install empty instance
10341 initializers.
10342 Fixes PR java/1314
10343
10344 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10345
10346 * class.c (set_super_info): Call `set_class_decl_access_flags.'
10347 (set_class_decl_access_flags): New function.
10348 * java-tree.h (set_class_decl_access_flags): New prototype.
10349 * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
10350 (parse_class_file): New local `decl_max_locals.' Take wide types
10351 into account to compute DECL_MAX_LOCALS.
10352 * parse.y (type_import_on_demand_declaration:): Ignore duplicate
10353 imports on demand.
10354
10355 2001-06-22 Jan van Male <jan.vanmale@fenk.wau.nl>
10356
10357 * zipfile.h: Use GCC_JCF_H instead of JCF_H.
10358
10359 2001-06-20 Alexandre Petit-Bianco <apbianco@redhat.com>
10360
10361 * class.c (java_hash_tree_node): Fixed indentation in leading comment.
10362 * parse.y (do_resolve_class): Moved comments out to leading comment
10363 section. Removed local `start', New local `_ht' and
10364 `circularity_hash.' Record `enclosing' in hash table and search
10365 it to detect circularity. Use `enclosing' as an argument to
10366 `lookup_cl.' Free the hash table when done.
10367
10368 2001-06-19 Tom Tromey <tromey@redhat.com>
10369
10370 * lex.c (java_read_char): Disallow invalid and overlong
10371 sequences. Fixes PR java/2319.
10372
10373 2001-06-05 Jeff Sturm <jsturm@one-point.com>
10374
10375 * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
10376
10377 2001-06-04 Alexandre Petit-Bianco <apbianco@redhat.com>
10378
10379 * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
10380 arguments accordingly.
10381
10382 2001-06-02 Joseph S. Myers <jsm28@cam.ac.uk>
10383
10384 * gcj.texi: Move contents to just after title page.
10385
10386 2001-06-01 Alexandre Petit-Bianco <apbianco@redhat.com>
10387
10388 * parse.y (type_literals:): Use `build_incomplete_class_ref' with
10389 builtin type.
10390 (patch_incomplete_class_ref): Build the class ref, build the class
10391 init if necessary, complete the tree.
10392 Fixes PR java/2605
10393
10394 2001-05-31 Alexandre Petit-Bianco <apbianco@redhat.com>
10395
10396 * parse.y (lookup_field_wrapper): Test `name' code.
10397 (resolve_qualified_expression_name): Test `qual_wfl' code.
10398 (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
10399 handle `qual_wfl' by code.
10400 (maybe_build_primttype_type_ref): Test `wfl' code.
10401
10402 2001-05-23 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10403
10404 * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
10405 fdl.texi.
10406 (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls. Create
10407 the dvi file in the java directory.
10408
10409 2001-05-25 Sam TH <sam@uchicago.edu>
10410
10411 * gen-table.pl javaop.h jcf.h lex.h,
10412 parse.h: Fix header include guards.
10413
10414 2001-05-23 Joseph S. Myers <jsm28@cam.ac.uk>
10415
10416 * jv-scan.c (version): Update copyright year.
10417
10418 2001-05-21 Per Bothner <per@bothner.com>
10419
10420 * jcf-parse.c (read_class): If class is from .class or .zip file
10421 and it's already been read, don't push/pop parser context.
10422
10423 2001-05-18 Per Bothner <per@bothner.com>
10424
10425 * jvspec.c (lang_specific_pre_link): Re-arrange the linker
10426 command line so the jvgenmain-generated main program comes first.
10427
10428 2001-05-15 Tom Tromey <tromey@redhat.com>
10429
10430 * class.c (build_utf8_ref): Don't generate identifier based on
10431 utf8const contents.
10432
10433 2001-05-12 Richard Henderson <rth@redhat.com>
10434
10435 * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
10436 * expr.c (java_lang_expand_expr): Expand it.
10437 (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
10438 calling build_exception_object_ref.
10439 * parse.y (catch_clause_parameter): Likewise.
10440 (build_dot_class_method): Likewise.
10441 (try_reference_assignconv): Likewise.
10442 * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
10443 * jcf-write.c (generate_bytecode_insns): Likewise.
10444
10445 2001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
10446
10447 * parse.y (build_unresolved_array_type): Set
10448 EXPR_WFL_QUALIFICATION on the newly created wfl.
10449 Fixes PR java/2538. Fixes PR java/2535.
10450
10451 2001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
10452
10453 * parse.y (fix_constructors): Removed unnecessary assignment to
10454 local. Moved assignment to `this$<n>', fixed comments and
10455 indentation.
10456 (build_wfl_wrap): Fixed indentation.
10457 Fixes PR java/2598, java/2579 and java/2658.
10458
10459 2001-05-03 Mo DeJong <mdejong@redhat.com>
10460
10461 * lex.c (java_new_lexer): Call iconv_close on temp handle used to
10462 check for byte swap.
10463
10464 2000-05-02 Jeff Sturm <jsturm@one-point.com>
10465
10466 * expr.c (build_class_init): Move MODIFY_EXPR
10467 outside of COND_EXPR. Remove variable `call'.
10468
10469 2001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10470
10471 * decl.c: NULL_PTR -> NULL.
10472 * jcf-write.c: Likewise.
10473
10474 2001-05-01 Tom Tromey <tromey@redhat.com>
10475
10476 * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
10477 (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
10478 * gcj.texi: Updated copyright text. Include fdl.texi.
10479 (Top): Link to new node.
10480
10481 2001-05-01 Per Bothner <per@bothner.com>
10482
10483 * parse.h (REGISTER_IMPORT): Use tree_cons instead of chainon.
10484
10485 2001-05-01 Per Bothner <per@bothner.com>
10486
10487 * parse.y (java_pop_parser_context): The TREE_VALUE of a link in the
10488 import_list contains the name, not the TREE_PURPOSE.
10489
10490 2001-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10491
10492 * jcf-io.c (read_zip_member): Cast to long in comparison with
10493 signed value.
10494
10495 * jvspec.c (lang_specific_driver): Initialize variables.
10496
10497 * mangle.c (find_compression_record_match): Likewise.
10498
10499 * typeck.c (build_null_signature): Provide static prototype. Mark
10500 parameter with ATTRIBUTE_UNUSED.
10501
10502 * verify.c (verify_jvm_instructions): Initialize variable.
10503
10504 2001-04-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10505
10506 * parse.y (do_resolve_class): Check for cyclic inheritance during
10507 inner class resolution.
10508
10509 2001-04-27 Per Bothner <per@bothner.com>
10510
10511 * parse.y (java_expand_classes): Don't change ctxp_for_generation
10512 while iterating, since that could cause gc to lose stuff.
10513
10514 2001-04-26 Per Bothner <per@bothner.com>
10515
10516 Fix method search wrt scope of inner classes to match JLS2.
10517 * typeck.c (build_null_signature): New static function.
10518 (has_method): New function. Uses build_null_signature and lookup_do.
10519 * java-tree.h (has_method): New declaration.
10520 * parse.y (find_applicable_accessible_methods_list): Do not search
10521 context of inner classes here.
10522 (patch_method_invocation): Search scope, ie. current and outer clases,
10523 for method matching simple name, to find class.
10524
10525 2001-04-26 Per Bothner <per@bothner.com>
10526
10527 * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
10528 Fix thinko: If a single case, use if_icmpeq, not ifeq.
10529
10530 * constants.c (find_methodref_with_class_index): New function.
10531 (find_methodref_index): Use find_methodref_with_class_index.
10532 * java-tree.h (find_methodref_with_class_index): New declaration.
10533 * jcf-write.c (generate_bytecode_insns case CALL_EXPR): Don't change
10534 DECL_CONTEXT, instead use new find_methodref_with_class_index function.
10535 If context changed from interface to class, don't use invokeinterface.
10536
10537 2001-04-25 Per Bothner <per@bothner.com>
10538
10539 * verify.c (verify_jvm_instructions): For field instructions,
10540 check that field index is valid. For invoke instructions, check that
10541 method index is valid.
10542
10543 2001-04-25 Alexandre Oliva <aoliva@redhat.com>
10544
10545 * config-lang.in (target_libs): Copy from $libgcj_saved.
10546
10547 2001-04-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10548
10549 * decl.c (init_decl_processing): Add new class "protectionDomain"
10550 field.
10551 * class.c (make_class_data): Set initial value for "protectionDomain".
10552
10553 2001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10554
10555 * jvspec.c (lang_specific_driver): Fix memory allocation
10556 deficit, by using concat in lieu of xmalloc/sprintf.
10557
10558 2001-04-20 Per Bothner <per@bothner.com>
10559
10560 Fixes to compile multiple .class files at once.
10561 * decl.c (init_decl_processing): Don't set CLASS_LOADED_P.
10562 * java-tree.h (CLASS_PARSED_P): New macro.
10563 (CLASS_LOADED_P): Re-define to use TYPE_SIZE and CLASS_PARSED_P.
10564 * jcf-parse.c (jcf_parse_source): Inline into read_class.
10565 (read_class): Avoid some code duplication.
10566 Don't call JCF_FINISH for a .class file - might be needed later.
10567 (jcf_parse): Don't call layout_class here. Check/set CLASS_PARSED_P
10568 rather than CLASS_LOADED_P, since latter implies class laid out.
10569 (yyparse): Do layout_class and JCF_FINISh here instead, in pass 2.
10570 * parse.y: Don't need to set CLASS_LOADED_P for array types.
10571
10572 2001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10573
10574 * Make-lang.in (java/boehm.o): Depend on toplev.h.
10575
10576 * boehm.c: Include toplev.h.
10577
10578 2001-04-06 Tom Tromey <tromey@redhat.com>
10579 Alexandre Petit-Bianco <apbianco@redhat.com>
10580
10581 Fix for PR gcj/1404 and PR gcj/2332:
10582 * parse.y (build_array_from_name): If we use the type_wfl then
10583 accumulate dimensions from the original type as well.
10584 (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
10585
10586 2001-04-06 Tom Tromey <tromey@redhat.com>
10587
10588 * parse.y (analyze_clinit_body): Return true if the second operand
10589 of a METHOD_EXPR is nonzero.
10590
10591 2001-04-06 Tom Tromey <tromey@redhat.com>
10592
10593 * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
10594 directory.
10595 ($(srcdir)/java/parse.c): Likewise.
10596
10597 2001-04-05 Alexandre Petit-Bianco <apbianco@redhat.com>
10598
10599 * gcj.texi: Use `which-gcj' instead of `which-g77.'
10600 (version-gcc): Initialized.
10601 (which-gcj): Likewise.
10602
10603 2001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
10604
10605 * java-tree.h (struct lang_decl): New macro
10606 `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
10607 * parse.y (build_instance_initializer): New function.
10608 (add_instance_initializer): Use it.
10609 (java_fix_constructors): Set `current_class' before fix pass.
10610 (fix_constructors): Just return if already fixed. Move `super()'
10611 invocation ahead. Use `build_instance_initializer.'
10612 Fixes PR java/1315.
10613
10614 2001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
10615
10616 * parse.y (resolve_qualified_expression_name): Pass field's
10617 DECL_CONTEXT to `not_accessible_p.'
10618 (not_accessible_p): Changed parameters order in `inherits_from_p'
10619 invocation.
10620
10621 2001-03-27 Andrew Haley <aph@cambridge.redhat.com>
10622
10623 * lang-options.h: Add flag_check_references.
10624
10625 2001-04-04 Per Bothner <per@bothner.com>
10626
10627 * java-tree.h (CONSTANT_VALUE_P): New macro.
10628 * jcf-write.c (generate_classfile): Use CONSTANT_VALUE_P.
10629 * parse.y (maybe_build_class_init_for_field): New static function.
10630 (resolve_expression_name, resolve_field_access): Use
10631 maybe_build_class_init_for_field instead of build_class_init
10632 This does not do the init if the field is compile-time-constant.
10633 (resolve_field_access): Simplify.
10634
10635 * parse.y (fold_constant_for_init): Merge test into switch.
10636
10637 2001-04-03 Zack Weinberg <zackw@stanford.edu>
10638
10639 * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
10640 on gansidecl.h.
10641 * buffer.c, jvgenmain.c: Don't include gansidecl.h.
10642
10643 2001-04-02 Zack Weinberg <zackw@stanford.edu>
10644
10645 * expr.c (pop_type_0): Save the result of the first
10646 lang_printable_name call in a scratch buffer, so it
10647 won't be clobbered by the second call.
10648
10649 2001-03-30 Alexandre Petit-Bianco <apbianco@redhat.com>
10650
10651 * parse-scan.y (array_type:): Rewritten.
10652 (type_declaration:): `empty_statement' replaces `SC_TK.'
10653 (class_member_declaration:): `empty statement' added.
10654 (method_body:): Simplified.
10655 (static_initializer:): Likewise.
10656 (primary_no_new_array:): Use `type_literals.'
10657 (type_literals:): New rule.
10658 (dims:): Set and update `bracket_count.'
10659 Fixes PR java/1074. Fixes PR java/2412.
10660
10661 2001-03-28 Hans Boehm <boehm@acm.org>
10662
10663 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
10664 (get_boehm_type_descriptor): Set type on returned value to be a
10665 pointer length integer.
10666
10667 2001-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10668
10669 * expr.c (pop_type_0): Call `concat' rather than building the
10670 string manually.
10671 (pop_type): Add format specifier in call to `error'.
10672
10673 * parse.y (patch_method_invocation): Avoid casting away
10674 const-ness.
10675
10676 2001-03-28 Jeffrey Oldham <oldham@codesourcery.com>
10677
10678 * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
10679
10680 2001-03-28 Richard Henderson <rth@redhat.com>
10681
10682 IA-64 ABI Exception Handling:
10683 * Make-lang.in (except.o): Don't depend on eh-common.h.
10684 * check-init.c (check_init): Handle EXC_PTR_EXPR.
10685 * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
10686 [soft_exceptioninfo_call_node]: Remove.
10687 [eh_personality_libfunc, lang_eh_runtime_type]: New.
10688 (end_java_method): No emit_handlers.
10689 * except.c (java_set_exception_lang_code): Remove.
10690 (method_init_exceptions): Don't call it.
10691 (prepare_eh_table_type): No CATCH_ALL_TYPE.
10692 (build_exception_object_ref): New.
10693 (expand_end_java_handler): Update for except.h name changes.
10694 (emit_handlers, expand_resume_after_catch): Remove.
10695 * expr.c (java_lang_expand_expr): Update for except.h name changes.
10696 (process_jvm_instruction): Use build_exception_object_ref.
10697 * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
10698 (soft_exceptioninfo_call_node): Remove.
10699 (build_exception_object_ref): Declare.
10700 * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
10701 soft_exceptioninfo_call_node. Move processing ...
10702 [EXC_PTR_EXPR]: ... here.
10703 * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
10704 * parse.y (catch_clause_parameter): Use build_exception_object_ref.
10705 (source_end_java_method): No java_set_exception_lang_code or
10706 emit_handlers.
10707 (build_dot_class_method): Use build_exception_object_ref.
10708 (try_reference_assignconv): Check EXC_PTR_EXPR not
10709 soft_exceptioninfo_call_node.
10710
10711 2001-03-28 Richard Henderson <rth@redhat.com>
10712
10713 * java-tree.h (throw_node): Define as a single member of
10714 java_global_trees instead of a separate array.
10715 (JTI_THROW_NODE): New.
10716 * decl.c (throw_node): Don't declare.
10717 (init_decl_processing): Init a scalar throw_node.
10718 Don't register it for gc.
10719 * check-init.c (check_init): Reference scalar throw_node.
10720 * expr.c (build_java_athrow): Likewise.
10721 * jcf-write.c (generate_bytecode_insns): Likewise.
10722 * parse.h (BUILD_THROW): Likewise.
10723
10724 2001-03-28 Richard Henderson <rth@redhat.com>
10725
10726 * decl.c (end_java_method): Do not save and restore
10727 flag_non_call_exceptions.
10728 * parse.y (source_end_java_method): Likewise.
10729 * lang.c (flag_exceptions): Don't declare.
10730 (java_init_options): Set flag_non_call_exceptions. Set
10731 flag_exceptions here ...
10732 (java_init): ... not here.
10733
10734 2001-03-27 Richard Henderson <rth@redhat.com>
10735
10736 * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
10737 exceptions_via_longjmp.
10738
10739 * lang.c (flag_new_exceptions): Don't declare it.
10740 (java_init_options): Or set it.
10741
10742 2001-03-27 Richard Henderson <rth@redhat.com>
10743
10744 * decl.c (end_java_method): Rename asynchronous_exceptions to
10745 flag_non_call_exceptions.
10746 * parse.y (source_end_java_method): Likewise.
10747
10748 2001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10749
10750 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
10751
10752 2001-03-26 Mark Mitchell <mark@codesourcery.com>
10753
10754 * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
10755
10756 2001-03-26 Alexandre Petit-Bianco <apbianco@redhat.com>
10757
10758 * parse.y (find_as_inner_class): Follow current package
10759 indications not to mistakingly load an unrelated class.
10760
10761 2001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10762
10763 * constants.c (PUTN): Use memcpy, not bcopy.
10764
10765 * lex.c (java_read_char): Use memmove, not bcopy.
10766
10767 * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
10768
10769 2001-03-23 Per Bothner <per@bothner.com>
10770
10771 * verify.c (verify_jvm_instructions): Replace 3 pop_type by POP_TYPE
10772 macro for better error pin-pointing.
10773 * java-tree.h: Fix typo in comment.
10774
10775 * jcf-write.c (generate_bytecode_insns): Changes to TRY_FINALLY_EXPR.
10776 Don't include jsr/goto in exception range.
10777 Check if start and end of exception range are the same (also TRY_EXPR).
10778 Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
10779 However, do emit the following goto even if try_block is empty.
10780 Defer freeing exception_decl until after the finalizer, to make
10781 sure the local isn't reused in the finalizer. Fixes PR java/1208.
10782
10783 * parse.y (java_complete_lhs): If the try-clause is empty, just
10784 return the finally-clause and vice versa.
10785
10786 2001-03-23 Alexandre Petit-Bianco <apbianco@redhat.com>
10787
10788 * gcj.texi (Input Options): documented the check for attribute
10789 `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
10790 * java-tree.h (flag_force_classes_archive_check): Declared extern.
10791 * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
10792 (jcf_parse): Check for the right classes archive if necessary.
10793 * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
10794 (jcf_parse_fields): Fixed indentation.
10795 * jcf-write.c (append_gcj_attribute): New function.
10796 (generate_classfile): Compute the attribute count, invoke
10797 `append_gcj_attribute'.
10798 * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
10799 turned into bit-fields. New bit-field `right_zip.'
10800 (JCF_ZERO): Set `right_zip' to zero.
10801 * lang-options.h (-fforce-classes-archive-check): Added flag.
10802 * lang.c (flag_force_classes_archive_check): New flag.
10803 (lang_f_options): New entry `force-classes-archive-check.'
10804 Fixes PR java/1213.
10805
10806 2001-02-07 Andrew Haley <aph@redhat.com>
10807
10808 * gcj.texi (Configure-time Options): Add -fcheck-references.
10809 * expr.c (build_java_indirect_ref): New function.
10810 (java_check_reference): New function.
10811 (build_java_array_length_access): Use build_java_indirect_ref to
10812 check for null references.
10813 (build_java_arrayaccess): Likewise.
10814 (build_get_class): Likewise.
10815 (build_field_ref): Likewise.
10816 (invoke_build_dtable): Likewise.
10817 (build_invokeinterface): Likewise.
10818 * lang.c (lang_f_options): Add flag_check_references.
10819 * jvspec.c (jvgenmain_spec): Add flag_check_references.
10820 * java-tree.h (flag_check_references): New variable.
10821 * lang.c (flag_check_references): Likewise.
10822 * parse.y (patch_invoke): Use java_check_reference.
10823 (patch_assignment): Allow for extra nesting in
10824 _Jv_CheckArrayStore.
10825
10826 2001-03-23 Bryce McKinlay <bryce@albatross.co.nz>
10827
10828 * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
10829 * lex.c (cxx_keywords): Likewise.
10830
10831 2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
10832
10833 * parse.y (qualify_ambiguous_name): Broaden `length'
10834 recognition. Help MODIFY_EXPR be resolved as expression names.
10835 Fixes PR java/2066. Fixes PR java/2400.
10836
10837 2001-03-21 Bryce McKinlay <bryce@albatross.co.nz>
10838
10839 * gjavah.c (process_file): Mark interface definitions with
10840 "__attribute__ ((java_interface))".
10841
10842 2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
10843
10844 * class.c (layout_class): Fixed push_super_field's second
10845 argument. Fixes PR java/2333.
10846 (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
10847 too early to lay innerclasses out.
10848
10849 2001-03-20 Tom Tromey <tromey@redhat.com>
10850 Alexandre Petit-Bianco <apbianco@redhat.com>
10851
10852 * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
10853 inside an array reference. Insertion of the array store check
10854 rewritten. Fixes PR java/2299.
10855
10856 2001-03-20 Tom Tromey <tromey@redhat.com>
10857
10858 * lex.c (java_read_unicode): Only accept leading `u's.
10859
10860 2001-03-20 Tom Tromey <tromey@redhat.com>
10861
10862 * jcf-parse.c (read_class): Initialize `class'.
10863
10864 2001-03-20 Matt Kraai <kraai@alumni.carnegiemellon.edu>
10865
10866 * jcf_parse.c (jcf_parse): Eliminate unused variable.
10867
10868 2001-03-19 Mark Mitchell <mark@codesourcery.com>
10869
10870 * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
10871 (layout_class): Likewise.
10872 (layout_class_method): Likewise.
10873 (emit_register_classes): Likewise.
10874 * decl.c (builtin_function): Likewise.
10875 (give_name_to_locals): Likewise.
10876
10877 2001-03-19 Per Bothner <per@bothner.com>
10878
10879 * jcf-parse.c (load_inner_classes): Check CLASS_LOADED_P
10880 before trying to load an inner class.
10881
10882 Fixes to process to command-line .class files in two passes.
10883 * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P): New flags.
10884 (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P): Rename to ..
10885 (CLASS_FROM_CURRENTLY_COMPILED_P): ... because it is more general now.
10886 * class.c (is_compiled_class): Fix for renamed flag.
10887 * parse.y (maybe_create_class_interface_decl): Likewise.
10888 * jcf-parse.c (yyparse): Also set if compiling .class files.
10889 * jcf-parse.c (read_class); Read current_class.
10890 (jcf_parse): Make static.
10891 (load_inner_classes): New function, with code moved from jcf_parse,
10892 because we need to inner classes after the command-line files are read.
10893 (yyparse): Set finput to NULL when it doesn't need to be closed.
10894 Reduce use of main_jcf (basically only for archive) and
10895 use finput instead of main_jcf->read_state.
10896 Inline jcf_figure_file_type into yyparse.
10897 Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
10898 Defer load_inner_classes and parse_class_file to a second pass,
10899 after we've correctly mapped command-line .clas fiels to classes.
10900 (jcf_figure_file_type): Removed.
10901 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): Removed flags.
10902 (JCF_ZERO): Also clear zipd field.
10903 * zipfile.h: Conditionalize on JCF_H insread of JCF_ZIP.
10904
10905 2001-03-18 Matt Kraai <kraai@alumni.carnegiemellon.edu>
10906
10907 * jcf-parse.c (yyparse): Change ch from char * to char.
10908
10909 2001-03-19 Per Bothner <per@bothner.com>
10910
10911 * jvspec.c (lang_specific_driver): Check for .zip and .jar files.
10912 Add constructed filelist-file at end, following -xjava. Thus any .o
10913 and library files are not affected by the -xjava. Also wrap
10914 explicit @FILE with -xjava and -xnone.
10915
10916 2001-03-19 Andrew Haley <aph@cambridge.redhat.com>
10917
10918 * class.c (build_static_field_ref): Call make_decl_rtl() after
10919 setting the DECL_EXTERNAL flag.
10920
10921 2001-03-17 Per Bothner <per@bothner.com>
10922
10923 * decl.c (clear_binding_level): Fix initializer (broke 03-15).
10924
10925 * jcf-write.c (generate_bytecode_insns): Handle emitting iinc
10926 when result is is needed (target is STACK_TARGET).
10927
10928 * parse.h (JDEP_SOLV): Removed.
10929 * parse.y (register_incomplete_type): Use JDEP_TO_RESOLVE instead.
10930
10931 * parse.y (incomplete_class_list): Removed.
10932 (obtain_incomplete_type): Don't use or set incomplete_class_list.
10933 It doesn't work if resolve_class changes the name of an array type
10934 that is on the list and then someone else looks for the modified name.
10935 Also, seems liable to break when compiling multiple source files at
10936 once. So the simplest is to just remove incomplete_class_list -
10937 it is only a minor space win and it is not even clear it saves time.
10938
10939 * parse.y (resolve_class): Remove unneeded promote_type.
10940
10941 2001-03-15 Per Bothner <per@bothner.com>
10942
10943 * java-tree.h (BLOCK_IS_IMPLICIT): New flag.
10944 * parse.h (BLOCK_EXPR_ORIGIN): Removed macro.
10945 * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
10946 Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
10947
10948 * jcf-parse.c (yyparse): Set/reset input_filename for source file.
10949 * parse.y (java_expand_classes): Likewise.
10950
10951 * parse.y (expand_start_java_method): Was only called once and had a
10952 misleading name, so inline in caller java_complete_expand_method.
10953 (enter_a_block): Likewise inline in enter_block and remove.
10954
10955 Remove junk from when gcc/java was created (by copying from C/C++).
10956 * decl.c (keep_next_level_flag, keep_next_if_subblocks): Remove.
10957 (struct binding_level): Remove fields keep, keep_if_subblocks,
10958 more_cleanups_ok, have_cleanups (which have never been used).
10959 (pushlevel, poplevel): Remove related useless code.
10960
10961 * class.c (make_class_data): The class_dtable_decl (i.e. the
10962 vtable for Class) should be external, except when compiling Class.
10963
10964 * jvspec.c (lang_specific_driver): Fix -C handling.
10965 Check -save-temps to see if temp @FILE should be deleted.
10966 Follow-up to/fix for February 16 patch.
10967
10968 * verify.c (verify_jvm_instructions): Better error msgs for dup.
10969 (type_stack_dup): Remove no-longer neded error check.
10970
10971 2001-03-15 Bryce McKinlay <bryce@albatross.co.nz>
10972
10973 * mangle.c (mangle_record_type): Rename 'from_pointer' argument
10974 to 'for_pointer'. If this type is for a pointer (argument) mangling,
10975 don't surround the element with 'N..E' if the type name is
10976 unqualified.
10977
10978 2001-03-14 Mark Mitchell <mark@codesourcery.com>
10979
10980 * class.c (build_static_field_ref): Use COPY_DECL_RTL,
10981 DECL_RTL_SET_P, etc.
10982 (make_method_value): Likewise.
10983 (get_dispatch_table): Likewise.
10984
10985 * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
10986
10987 2001-03-07 Tom Tromey <tromey@redhat.com>
10988
10989 * config-lang.in (lang_requires): Define.
10990
10991 2001-03-07 Brad Lucier <lucier@math.purdue.edu>
10992
10993 * typeck.c (convert): Check flag_unsafe_math_optimizations,
10994 not flag_fast_math.
10995
10996 2001-03-05 Per Bothner <per@bothner.com>
10997
10998 Fix a problem where rest_of_decl_compilation applied to
10999 class_dtable_decl causes problems because it was done too early,
11000 before output file was opened.
11001 * decl.c (init_decl_processing): Remove init of class_dtable_decl.
11002 * class.c (class_dtable_decl): Add macro - element of class_roots.
11003 (make_class_data): Define class_dtable_decl.
11004 * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl): Removed.
11005
11006 2001-03-01 Zack Weinberg <zackw@stanford.edu>
11007
11008 * java/class.c, java/decl.c, java/java-tree.h: Replace all
11009 uses of 'boolean' with 'bool'.
11010
11011 2001-03-01 Zack Weinberg <zackw@stanford.edu>
11012
11013 * lang-specs.h: Add zero initializer for cpp_spec field to all
11014 array elements.
11015
11016 2001-02-16 Per Bothner <per@bothner.com>
11017
11018 Handle compiling multiple input files at once, and @FILE syntax.
11019 * gcj.texi: Updated documentation to match.
11020 * java-tree.h (flag_filelist_file, init_src_parse): New declarations.
11021 * jcf-parse.c (parse_source_file): Split into ...
11022 (parse_source_file_1): New function - and:
11023 (parse_source_file_2): New function.
11024 (yyparse): On -ffilelist-file, open and scan named file.
11025 On first pass over files, only do parse_source_file_1.
11026 A new second pass calls parse_source_file_2 for each file to compile.
11027 (init_jcf_parse): Call init_src_parse.
11028 * jvspec.c (INDIRECT_FILE_ARG): New flag.
11029 (lang_specific_driver): Support @FILELIST-FILE syntax, as well
11030 as multiple input file combined in one compilation.
11031 * lang-options.h: Add -ffilelist-file
11032 * lang.c (flag_filelist_file): New flag variable.
11033 (lang_f_options): Handle -ffilelist-file.
11034 * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
11035 * parse.h (struct parse_ctxt): Remove fields incomplete_class and
11036 gclass_list - use global fields of src_parse_roots instead.
11037 * parse.y (src_parse_roots): New array.
11038 (incomplete_class_list, gclass_list): New macros.
11039 (push_parser_context, java_pop_parser_context,
11040 java_parser_context_resume): Don't fiddle with deleted fields.
11041 (various): Use incomplete_class gclass_list and global macros
11042 instead of parse_ctxt fields - the lists are global.
11043 (init_src_parse): New function.
11044
11045 2001-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11046
11047 * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
11048
11049 2001-02-20 Alexandre Petit-Bianco <apbianco@redhat.com>
11050
11051 * parse.y (check_inner_class_access): Moved declaration of local
11052 `enclosing_decl_type' to the right location.
11053
11054 2001-02-19 Bryce McKinlay <bryce@albatross.co.nz>
11055
11056 * parse.y (parser_check_super_interface): Don't call
11057 check_pkg_class_access for an inner interface.
11058 (parser_check_super): Don't call check_pkg_class_access for inner
11059 class.
11060 (do_resolve_class): Simplify enclosing type loop. Don't call
11061 check_pkg_class_access if CL and DECL are not set.
11062 (find_in_imports_on_demand): Set DECL if class_type needed to be
11063 loaded. Don't call check_pkg_class_access for an inner class.
11064 (check_inner_class_access): Rewritten to implement member access
11065 rules as per spec 6.6.1.
11066 (check_pkg_class_access): Handle the empty package correctly.
11067 (in_same_package): New function. Determine if two classes are in the
11068 same package.
11069
11070 2001-02-18 Bryce McKinlay <bryce@albatross.co.nz>
11071
11072 * typeck.c (build_java_array_type): Don't try to poke a public `clone'
11073 method into array types.
11074 * parse.y (patch_method_invocation): Bypass access check on clone call
11075 to array instance.
11076
11077 2001-02-15 Alexandre Petit-Bianco <apbianco@redhat.com>
11078
11079 * expr.c (build_instanceof): Check for arrays when trying fold to
11080 false.
11081
11082 2001-02-15 Jim Meyering <meyering@lucent.com>
11083
11084 * Make-lang.in (java.install-common): Depend on `installdirs'.
11085 (java.install-info): Likewise.
11086
11087 2001-02-15 Bryce McKinlay <bryce@albatross.co.nz>
11088
11089 * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
11090
11091 2001-02-14 Tom Tromey <tromey@redhat.com>
11092 Alexandre Petit-Bianco <apbianco@cygnus.com>
11093
11094 Fix for PR java/1261.
11095 * typeck.c (build_java_array_type): Add public `clone' method to
11096 arrays.
11097 * parse.y (resolve_qualified_expression_name): Use current_class
11098 when checking for inaccessibility.
11099 (patch_method_invocation): Fixed error message when accessibility
11100 denied. Added `from_super' argument.
11101
11102 2001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
11103
11104 * parse.y (resolve_class): Don't build a fake decl. Use the one
11105 already built.
11106 * typeck.c (build_java_array_type): Build and assign decl to array
11107 type.
11108
11109 2001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
11110
11111 * parse.y (not_accessible_p): Changed leading comment. Added extra
11112 `where' argument. Use it to enforce protected access rules.
11113 (resolve_qualified_expression_name): Added extra argument to
11114 not_accessible_p.
11115 (patch_method_invocation): Use argument `primary' to provide
11116 not_accessible_p with an extra argument.
11117 (lookup_method_invoke): Added extra argument to not_accessible_p.
11118 (search_applicable_method_list): Likewise.
11119
11120 2001-02-13 Alexandre Petit-Bianco <apbianco@redhat.com>
11121
11122 * parse.y (resolve_qualified_expression_name): Try to resolve as
11123 an inner class access only if `decl' is a TYPE_DECL.
11124
11125 2001-02-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
11126
11127 * decl.c (classdollar_identifier_node): Initialize.
11128 * java-tree.h (enum java_tree_index): New entry
11129 `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
11130 (classdollar_identifier_node): New macro.
11131 (ID_CLASSDOLLAR_P): Likewise.
11132 * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
11133 (build_dot_class_method_invocation): Likewise.
11134 (find_applicable_accessible_methods_list): `class$' can't be
11135 inherited.
11136
11137 2001-02-09 Raja R Harinath <harinath@cs.umn.edu>
11138
11139 * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
11140
11141 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11142
11143 * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
11144 * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
11145 gone.
11146
11147 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11148
11149 * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
11150 outside of the `__U' sequence too.
11151 (unicode_mangling_length): Count `_' or `U' outside of the `__U'
11152 sequence too.
11153
11154 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11155
11156 * jvgenmain.c (error): Reversed 2001-02-01 deletion.
11157
11158 2001-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
11159
11160 * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
11161 (JVGENMAIN_OBJS): Likewise.
11162 * java-tree.h (append_gpp_mangled_name): New prototype.
11163 * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
11164 Removed cast calling `gcc_add_root.'
11165 * jvgenmain.c (mangle_obstack): New global, initialized.
11166 (main): Use it.
11167 (do_mangle_class): Constify local `ptr.'
11168 Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
11169 append_gpp_mangle_name and update `count' if necessary.
11170 Use `mangle_obstack.'
11171 * mangle.c (append_unicode_mangled_name): Removed.
11172 (append_gpp_mangled_name): Likewise.
11173 (unicode_mangling_length): Likewise.
11174 (mangle_member_name): Return type set to `void.'
11175 (mangle_field_decl): Don't append `U' in escaped names.
11176 (mangle_method_decl): Likewise.
11177 (mangle_member_name): Just use `append_gpp_mangled_name.'
11178 * mangle_name.c: New file.
11179
11180 2001-02-07 Per Bothner <per@bothner.com>
11181
11182 * check-init.c (check_init): Fix TRY_FINALLY_EXPR logic.
11183
11184 * check-init.c (check_init): Don't call done_alternative after
11185 processing loop code, as a LOOP_EXPR never terminates normally.
11186
11187 2001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
11188
11189 * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
11190
11191 2001-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
11192
11193 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
11194 DECLs.
11195
11196 2001-02-06 Tom Tromey <tromey@redhat.com>
11197
11198 * lex.c (java_new_lexer): Longer error message.
11199
11200 2001-02-05 Jeff Sturm <jeff.sturm@commerceone.com>
11201 Alexandre Petit-Bianco <apbianco@cygnus.com>
11202
11203 * typeck.c (build_prim_array_type): Added leading comment.
11204 (build_java_array_type): Moved locals out of
11205 block. Always create the `data' field, fixed alignment to match
11206 C++.
11207
11208 2001-02-04 Tom Tromey <tromey@redhat.com>
11209
11210 * expr.c (java_lang_expand_expr): Don't bother recomputing
11211 `length'. Use rest_of_decl_compilation, not make_decl_rtl.
11212 Fixes PR java/1866.
11213
11214 2001-02-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
11215
11216 * parse.y (process_imports): Save the original name of the import
11217 for better error report.
11218
11219 2001-02-04 Bryce McKinlay <bryce@albatross.co.nz>
11220
11221 * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
11222 of macros used when compiling jvspec.c.
11223 * jvspec.c (lang_specific_driver): Link with the shared
11224 libgcc by default.
11225
11226 2001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11227
11228 * check-init.c (check_init): Call internal_error instead of fatal.
11229 * expr.c (java_lang_expand_expr): Likewise.
11230 * jcf-parse.c (get_constant): Likewise.
11231 * mangle.c (java_mangle_decl): Likewise.
11232 * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
11233 (operator_string): Likewise.
11234 * check-init.c (check_init): Call abort instead of fatal.
11235 * class.c (build_class_ref): Likewise.
11236 * constants.c (write_constant_pool): Likewise.
11237 * decl.c (start_java_method): Likewise.
11238 * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
11239 (java_stack_dup, encode_newarray_type): Likewise.
11240 (build_java_array_length_access): Likewise.
11241 (build_java_check_indexed_type, expand_java_pushc): Likewise.
11242 (build_java_soft_divmod, build_invokeinterface): Likewise.
11243 * java-tree.h (INNER_CLASS_P): Likewise.
11244 * jcf-parse.c (parse_signature, get_name_constant): Likewise.
11245 (give_name_to_class, get_class_constant): Likewise.
11246 * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
11247 (find_constant_index, generate_bytecode_conditional): Likewise.
11248 (generate_bytecode_insns, perform_relocations): Likewise.
11249 * lex.c (java_unget_unicode, java_lex): Likewise.
11250 * mangle.c (mangle_type, mangle_record_type): Likewise.
11251 (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
11252 (finish_mangling): Likewise.
11253 * parse.h (MARK_FINAL_PARMS): Likewise.
11254 * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
11255 (obtain_incomplete_type, java_complete_class): Likewise.
11256 (java_check_regular_methods, java_complete_expand_method): Likewise.
11257 (cut_identifier_in_qualified, check_deprecation): Likewise.
11258 (patch_invoke, find_applicable_accessible_methods_list): Likewise.
11259 (java_complete_lhs, lookup_name_in_blocks): Likewise.
11260 (check_final_variable_indirect_assignment, build_unaryop): Likewise.
11261 * typeck.c (set_local_type, parse_signature_type): Likewise.
11262 (parse_signature_string, build_java_signature): Likewise;
11263 (set_java_signature): Likewise.
11264 * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
11265 * class.c (add_method): Call fatal_error instead of fatal.
11266 (build_static_field_ref): Likewise.
11267 * expr.c (build_known_method_ref, expand_invoke): Likewise.
11268 * jcf-parse.c (get_constant, jcf_parse): Likewise.
11269 * lex.c (java_new_new_lexer): Likewise.
11270 * jv-scan.c (main): Likewise.
11271 (fatal_error): Renamed from fatal.
11272 * jcf-parse.c (yyparse): Call fatal_io_error instead of
11273 pfatal_with_name.
11274 * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
11275 (yyparse): Likewise.
11276 * jcf-write.c (make_class_file_name, write_classfile): Likewise.
11277 * lex.c (java_get_line_col): Likewise.
11278 * jcf-parse.c (load_class): Make errors non-fatal.
11279 * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
11280
11281 2001-02-01 Bryce McKinlay <bryce@albatross.co.nz>
11282
11283 * jvgenmain.c (class_mangling_suffix): Remove unused string.
11284 (error): Remove unused function.
11285 (main): Don't use "__attribute__ alias" on generated class symbol.
11286
11287 2001-01-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
11288
11289 * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
11290 argument.
11291 * parse.y (finish_method_declaration): Code accounting for WFLed
11292 method DECL_NAMEs deleted.
11293 (check_abstract_method_definitions): Likewise.
11294 (resolve_type_during_patch): Layout resolved type.
11295 * typeck.c (lookup_do): Removed unused local.
11296
11297 2001-01-30 Bryce McKinlay <bryce@albatross.co.nz>
11298
11299 * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
11300 * decl.c (init_decl_processing): Use integer_minus_one_node, not
11301 integer_negative_one_node.
11302 * expr.c (build_java_binop): Likewise.
11303
11304 2001-01-24 Jeff Sturm <jeff.sturm@commerceone.com>
11305
11306 * zextract.c (read_zip_archive): Read file_offset before writing
11307 zipd and consequently clobbering the header contents.
11308
11309 2001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11310
11311 * Make-lang.in: Remove all dependencies on defaults.h.
11312 * decl.c: Don't include defaults.h.
11313 * expr.c: Likewise.
11314 * parse.y: Likewise.
11315
11316 2001-01-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
11317
11318 * ChangeLog (2001-01-21): Fixed typo.
11319 * class.c (layout_class_method): Code accounting for WFLed
11320 method DECL_NAMEs deleted.
11321 * constant.c (find_methodref_index): Likewise.
11322 * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
11323 * java-tree.h (DECL_FUNCTION_WFL): New macro.
11324 (struct lang_decl): New field `wfl'.
11325 (java_get_real_method_name): Prototype deleted.
11326 * mangle.c (mangle_method_decl): Code accounting for WFLed
11327 method DECL_NAMEs deleted.
11328 * parse.h (GET_METHOD_NAME): Macro deleted.
11329 * parse.y (reset_method_name): Deleted.
11330 (method_header): Set DECL_FUNCTION_WFL.
11331 (check_abstract_method_header): Code accounting for WFLed method
11332 DECL_NAMEs deleted.
11333 (java_get_real_method_name): Deleted.
11334 (check_method_redefinition): Code accounting for WFLed method
11335 DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
11336 (java_check_regular_methods): Likewise.
11337 (java_check_abstract_methods): Likewise.
11338 (java_expand_classes): Don't call `reset_method_name.'
11339 (search_applicable_method_list): Use DECL_NAMEs instead of
11340 GET_METHOD_NAME.
11341 * typeck.c (lookup_do): Code accounting for WFLed method
11342 DECL_NAMEs deleted.
11343
11344 2001-01-25 Richard Earnshaw <rearnsha@arm.com>
11345
11346 * lex.c (java_read_char): Check for EOF from getc first.
11347
11348 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11349
11350 * class.c (layout_class): Don't lay the superclass out if it's
11351 already being laid out.
11352 * jcf-parse.c (handle_innerclass_attribute): New function.
11353 (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
11354 handle_innerclasses_attribute.
11355 (jcf_parse): Don't load an innerclasses if it's already being
11356 laid out.
11357 * jcf-write.c (append_innerclass_attribute_entry): Static
11358 `anonymous_name' and its initialization deleted. `ocii' and `ini'
11359 to be zero for anonymous classes.
11360
11361 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11362
11363 * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
11364 necessary.
11365 * jcf-parse.c (set_source_filename): Use
11366 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
11367
11368 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11369
11370 * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
11371 gets a unique asm name.
11372
11373 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11374
11375 * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
11376 (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
11377 if necessary.
11378 (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
11379 * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
11380 * parse.y (lookup_package_type_and_set_next): Deleted.
11381 (resolve_package): Removed unnecessary code.
11382 (find_applicable_accessible_methods_list): `finit$' can't be
11383 inherited.
11384 * verify.c (pop_argument_types): Added missing prototype.
11385
11386 2001-01-23 Bryce McKinlay <bryce@albatross.co.nz>
11387
11388 * config-lang.in: Disable java by default.
11389
11390 2001-01-23 Tom Tromey <tromey@redhat.com>
11391
11392 * gcj.texi (Copying): New node.
11393 Added copyright information.
11394
11395 2001-01-21 Per Bothner <per@bothner.com>
11396
11397 Various fixes to allow compiling a compressed .jar/.zip archive.
11398 * zipfile.h (struct ZipFileCache): Replace by struct ZipFile.
11399 (struct ZipFile): Add fields name and next (from ZipFileCache).
11400 (struct ZipDirectory): New field zipf points to owning ZipFile.
11401 * jcf.h (struct ZipDirectory): Add forward declaration.
11402 (struct JCF): Declare zipd field to have type struct ZipDirectory.
11403 Remove seen_in_zip and zip_offset fields.
11404 (JCF_SEEN_IN_ZIP): New macro.
11405 * zextract.c (read_zip_archive): Set ZipDirectory's zipf field.
11406 * jcf-io.c: Change all ZipFileCache to ZipFile.
11407 (read_zip_member): New function.
11408 (open_in_zip): Call read_zip_member.
11409 * jcf-parse.c (find_in_current_zip): Remove function.
11410 (read_class): Merge in find_in_current_zip functionality.
11411 Call read_zip_member if needed.
11412 (parse_zip_file_entries): Use read_zip_member.
11413 (process_zip_dir): Update for removed and added JCF fields.
11414 (jcf_figure_file_type): Re-use, don't copy initial ZipFile struct.
11415
11416 2001-01-21 Per Bothner <per@bothner.com>
11417
11418 Minor optimization of static ggc roots.
11419 * jcf-parse.c (parse_roots): New static field.
11420 (current_field, current_method, current_file_list): Replace by macros
11421 naming fields of parse_roots.
11422 (init_jcf_parse): Combine 3 ggc_add_tree_root calls to 1.
11423 * class.c (class_roots): New static field.
11424 (registered_class, fields_ident, info_ident, class_list):
11425 New macros naming fields of parse_roots.
11426 (build_static_field_ref): Don't register roots here.
11427 (layout_class): Static field list replaced by macro class_list.
11428 (init_class_processing): Call ggc_add_tree_root for 4 roots.
11429 Initialize fields_ident and info_ident here.
11430
11431 2001-01-21 Per Bothner <per@bothner.com>
11432
11433 * jcf-parse.c (ggc_mark_jcf): New function.
11434 (init_jcf_parse): Register current_jcf as ggc root.
11435
11436 2001-01-21 Per Bothner <per@bothner.com>
11437
11438 * lang.c (put_decl_node): Print method's name.
11439
11440 2001-01-21 Per Bothner <per@bothner.com>
11441
11442 * verify.c (VERIFICATION_ERROR_WITH_INDEX): New macro.
11443 (verify_jvm_instructions): Use it, for better error messages on loads.
11444
11445 2001-01-21 Per Bothner <per@bothner.com>
11446
11447 * verify.c (merge_type_state): Still may have to merge even if
11448 LABEL_VERIFIED (label).
11449
11450 2001-01-21 Per Bothner <per@bothner.com>
11451
11452 * parse.y (method_header): Don't set the DECL_NAME of a FUNCTION_DECL
11453 to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
11454
11455 2001-01-19 Per Bothner <per@bothner.com>
11456
11457 * expr.c (pop_type_0): Only return object_ptr_type_node on mismatch
11458 if expeting an interface type. Refines Tom's change of 2000-09-12.
11459
11460 2001-01-18 Per Bothner <per@bothner.com>
11461
11462 * gcj.texi (Input Options): Mention .java files.
11463
11464 2001-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
11465
11466 * lang-options.h (-Wunsupported-jdk11): Removed.
11467 * lang.c (flag_not_overriding): Deleted.
11468 (flag_static_local_jdk1_1): Likewise.
11469 (lang_W_options): Removed "unsupported-jdk11" entry.
11470 * parse.y (java_check_methods): Removed dead code.
11471
11472 2001-01-17 Tom Tromey <tromey@redhat.com>
11473
11474 Changes suggested by Per Bothner:
11475 * gcj.texi (Input Options): Don't mention input files.
11476 (Code Generation): Updated --main information.
11477 (Invoking jcf-dump): Mention that --javap is incomplete.
11478 From Alexandre Petit-Bianco:
11479 (Warnings): Don't mention -Wunsupported-jdk11.
11480 My stuff:
11481 (Compatibility): Mention JDK 1.2-ness of libraries.
11482 (Resources): Mention resources used when writing gcj.
11483
11484 2001-01-17 Tom Tromey <tromey@redhat.com>
11485
11486 * gcj.texi: New file.
11487 * Make-lang.in ($(srcdir)/java/gcj.info): New target.
11488 (java.info): Depend on gcj.info.
11489 (java/gcj.dvi): New target.
11490 (java.dvi): Depend on gcj.dvi.
11491 (java.install-info): Wrote.
11492
11493 2001-01-16 Jeff Sturm <jeff.sturm@appnet.com>
11494
11495 * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
11496 having called make_decl_rtl.
11497
11498 2001-01-14 Per Bothner <per@bothner.com>
11499
11500 Various patches to emit better messages on verification errors.
11501 * expr.c (push_type_0): Return error indication on stack overflow,
11502 instead of callinfg fatal.
11503 (push_type): Now just call push_type_0 (nd fatal on overflow).
11504 (pop_type_0): Return detailed error message (in a char** argument).
11505 (pop_type): If pop_type_0 fails, print error message.
11506 (pop_argument_types): Moved to verify.c.
11507 * verify.c (pop_argument_types): Moved from expr.c.
11508 Return a (possible) error message, rather than void.
11509 (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING): New macros.
11510 (verify_jvm_instruction): Use new macros, improving error messages.
11511 For case OPCODE_astore use object_ptr_type_node.
11512 * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED): New macros.
11513 (pop_type_0, push_type_0, pop_argument_types): Update accordingly.
11514
11515 * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
11516 constant, return body without wrapper. (Improves constant folding.)
11517 * lex.c (build_wfl_node): Clear TREE_TYPE from returned node.
11518
11519 2001-01-13 Per Bothner <per@bothner.com>
11520
11521 * expr.c (expand_java_field_op): Assigning to a final field outside
11522 an initializer does not violate JVM spec, so should be warning, not
11523 error. (Sun's verifier does not complain - though MicroSoft's does.)
11524
11525 2001-01-12 Joseph S. Myers <jsm28@cam.ac.uk>
11526
11527 * gjavah.c (version), jcf-dump.c (version): Update copyright year
11528 to 2001.
11529
11530 2001-01-11 Bryce McKinlay <bryce@albatross.co.nz>
11531
11532 * parse.y (resolve_expression_name): Permit instance variables from
11533 enclosing context in super constructor call.
11534 (resolve_qualified_expression_name): Permit enclosing class's qualified
11535 "this" in super constructor call.
11536
11537 2001-01-10 Mark Mitchell <mark@codesourcery.com>
11538
11539 * class.c (build_utf8_ref): Remove last argument in call to
11540 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
11541 (build_class_ref): Likewise.
11542 (build_static_field_ref): Likewise.
11543 (get_dispatch_table): Likewise.
11544 (layout_class_method): Likewise.
11545 (emit_register_classes): Likewise.
11546 * constants.c (build_constant_data_ref): Likewise.
11547 * decl.c (builtin_function): Likewise.
11548 (create_primitive_vtable): Likewise.
11549 * expr.c (build_known_method_def): Likewise.
11550 (build_jni_stub): Likewise.
11551 (java_lang_expand_expr): Likewise.
11552
11553 2001-01-10 Tom Tromey <tromey@redhat.com>
11554
11555 * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
11556
11557 2001-01-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
11558
11559 * java-tree.h (lang_printable_name_wls): New prototype.
11560 * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
11561 rather than `current_class' to print type name. Don't prepend type
11562 names when printing constructor names.
11563 (lang_printable_name_wls): New function.
11564 * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
11565 `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
11566 * parse.y (patch_method_invocation): Message tuned for constructors.
11567 (not_accessible_p): Grant `private' access from within
11568 enclosing contexts.
11569
11570 2001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
11571
11572 All files with updated copyright when applicable.
11573 * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
11574 * class.c (mangle_class_field): Function removed.
11575 (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
11576 (utf8_cmp, cxx_keyword_p): Moved to lex.c.
11577 (build_class_ref): Call `java_mangle_class_field' instead of
11578 `mangle_class_field.'
11579 (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
11580 (layout_class): Call `java_mangle_decl' instead of
11581 `mangle_static_field.'
11582 (cxx_keywords): Initialized static array moved to `lex.c.'
11583 (layout_class_method): Changed leading comment. Simplified to
11584 call `java_mangle_decl.' Local `ptr' moved in for loop body.
11585 * decl.c (lang_mark_tree): Mark field `package_list.'
11586 * java-tree.h (TYPE_PACKAGE_LIST): New macro.
11587 (struct lang_type): New field `package_list.'
11588 (unicode_mangling_length): Prototype removed.
11589 (append_gpp_mangled_name, append_gpp_mangled_classtype,
11590 emit_unicode_mangled_name): Likewise.
11591 (cxx_keyword_p): New prototype.
11592 (java_mangle_decl, java_mangle_class_field,
11593 java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
11594 * jcf-parse.c (jcf_parse_source): Constify `file' argument to
11595 `build_expr_wfl.'
11596 * jvgenmain.c (main_method_prefix): Global variable removed.
11597 (main_method_suffix): Likewise.
11598 (do_mangle_classname): New function.
11599 (main): Call it. Format changed to accommodate new mangling scheme.
11600 * lex.c: (utf8_cmp): Conditionally prototyped.
11601 (cxx_keywords): Moved from class.c, conditionally defined.
11602 (utf8_cmp, cxx_keyword_p): Likewise.
11603 * mangle.c (obstack.h, ggc.h): Included.
11604 (mangle_field_decl): New function.
11605 (mangle_method_decl, mangle_type, mangle_pointer_type,
11606 mangle_array_type, mangle_record_type,
11607 find_compression_pointer_match, find_compression_array_match,
11608 find_compression_record_match,
11609 find_compression_array_template_match, set_type_package_list,
11610 entry_match_pointer_p, emit_compression_string, init_mangling,
11611 finish_mangling, compression_table_add, mangle_member_name): Likewise.
11612 (mangle_obstack): New global.
11613 (MANGLE_RAW_STRING): New macro.
11614 (unicode_mangling_length): Turned static.
11615 (append_unicode_mangled_name): Renamed from
11616 `emit_unicode_mangled_name.' Turned static. `mangle_obstack'
11617 replaces `obstack', removed from the parameter list.
11618 (append_gpp_mangled_name): Turned static. `mangle_obstack'
11619 replaces parameter `obstack', removed from the parameter list. Call
11620 `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
11621 (append_gpp_mangled_classtype): Removed.
11622 (compression_table, compression_next): New static variables.
11623 * parse.y (temporary_obstack): Extern declaration removed.
11624
11625 2001-01-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
11626
11627 * parse.y (patch_binop): Compute missing type in error situations.
11628
11629 2001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
11630
11631 * class.c (make_class_data): Push initial value for "arrayclass".
11632 * decl.c (init_decl_processing): Add new class field "arrayclass".
11633
11634 2001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
11635
11636 From patha@softlab.ericsson.se:
11637 * parse.y (switch_label): Use build, not build1, to construct
11638 DEFAULT_EXPR.
11639
11640 2001-01-04 Neil Booth <neil@daikokuya.demon.co.uk>
11641
11642 * lang.c (lang_decode_option): Change -MA to -MP.
11643 * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
11644 Update to new prototype; do quote targets.
11645 (jcf_dependency_write): Update.
11646
11647 2000-12-22 Bryce McKinlay <bryce@albatross.co.nz>
11648
11649 Shorten primitive array allocation path:
11650 * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
11651 to create new primitive arrays.
11652 * expr.c (build_newarray): If generating native code, call
11653 soft_newarray_node with a reference to the primitive TYPE identifier
11654 instead of type_value.
11655
11656 2000-12-17 Bryce McKinlay <bryce@albatross.co.nz>
11657
11658 Fix for PRs gcj/312 and gcj/253:
11659 * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
11660 dest if they arn't already.
11661 * class.c (layout_class): Call maybe_layout_super_class on
11662 superinterfaces also, but only if compiling from bytecode.
11663
11664 Fix for PR gcj/373:
11665 * parse.y (create_class): Set ACC_STATIC if class is declared in an
11666 interface.
11667
11668 2000-12-15 Tom Tromey <tromey@redhat.com>
11669
11670 * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
11671 set.
11672
11673 2000-12-14 Andrew Haley <aph@redhat.com>
11674
11675 * boehm.c (mark_reference_fields): Change test to correctly detect
11676 bitmap overflow.
11677
11678 2000-12-15 Andreas Jaeger <aj@suse.de>
11679
11680 * config-lang.in (lang_dirs): Added.
11681
11682 2000-12-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
11683
11684 * parse.y (end_artificial_method_body): Fixed undefined behavior.
11685 Credits go to rth for finding it.
11686
11687 2000-12-13 Mike Stump <mrs@wrs.com>
11688
11689 * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
11690
11691 2000-11-07 Tom Tromey <tromey@cygnus.com>
11692
11693 * Make-lang.in (JAVA_LEX_C): Added chartables.h.
11694 * lex.c (java_ignorable_control_p): Removed.
11695 (java_letter_or_digit_p): Removed.
11696 (java_start_char_p): New function.
11697 (java_read_char): Return `int', not `unicode_t'. Changed
11698 callers.
11699 (java_read_unicode): Likewise.
11700 (java_read_unicode_collapsing_terminators): Likewise.
11701 (java_get_unicode): Likewise.
11702 (java_new_lexer): Initialize hit_eof.
11703 (java_parse_end_comment): Take `int' argument.
11704 (java_parse_doc_section): Likewise.
11705 (java_parse_escape_sequence): Don't allow backlash-newline.
11706 Return `int'.
11707 * lex.h (JAVA_DIGIT_P): Removed.
11708 (_JAVA_LETTER_OR_DIGIT_P): Removed.
11709 (_JAVA_IDENTIFIER_IGNORABLE): Removed.
11710 (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
11711 (JAVA_PART_CHAR_P): New macro.
11712 (UEOF): Now -1.
11713 (JAVA_CHAR_ERROR): Now -2.
11714 (java_lexer): New field `hit_eof'.
11715 * chartables.h: New file.
11716 * gen-table.pl: new file.
11717
11718 2000-11-20 Tom Tromey <tromey@cygnus.com>
11719 Alexandre Petit-Bianco <apbianco@cygnus.com>
11720
11721 * parse.y (java_complete_lhs): Only allow compound assignment of
11722 reference type if type is String.
11723
11724 2000-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
11725
11726 * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
11727 jcf-path.c: Likewise.
11728
11729 2000-12-09 Anthony Green <green@redhat.com>
11730
11731 * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
11732 filestart and filename_length as int values.
11733
11734 2000-12-07 Mo DeJong <mdejong@redhat.com>
11735
11736 * jcf-io.c (find_class): Correct the logic that tests to see if a
11737 .java file is newer than its .class file. The compiler was
11738 incorrectly printing a warning when file mod times were equal.
11739
11740 2000-12-07 Zack Weinberg <zack@wolery.stanford.edu>
11741
11742 * jvgenmain.c: Use ISPRINT not isascii.
11743
11744 2000-12-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
11745
11746 * parse.y (end_artificial_method_body): Fixed typo.
11747
11748 2000-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
11749
11750 * parse.y (patch_method_invocation): Pick the correct enclosing
11751 context when creating inner class instances.
11752 Fixes gcj/332.
11753
11754 2000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
11755
11756 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
11757 Update copyright year to 2000.
11758
11759 2000-11-23 Anthony Green <green@redhat.com>
11760
11761 * jcf-parse.c (init_jcf_parse): Register current_file_list root.
11762 Move current_file_list out of yyparse and make it static.
11763
11764 * expr.c: Declare quick_stack and tree_list_free_list as static
11765 (init_expr_processing): Register quick_stack and
11766 tree_list_free_list roots.
11767
11768 2000-11-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
11769
11770 * parse.y (build_outer_field_access): New local `decl_ctx', use
11771 it. Check for field's context and current class immediate outer
11772 context inheritance.
11773 (outer_field_access_p): Consider fields inherited from the last
11774 enclosing context.
11775 (build_access_to_thisn): Stop at the last enclosing context if
11776 necessary.
11777 Fixes gcj/367.
11778
11779 2000-11-23 J"orn Rennecke <amylaar@redhat.com>
11780
11781 * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
11782
11783 2000-11-22 Bryce McKinlay <bryce@albatross.co.nz>
11784
11785 * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
11786 scratch buffer.
11787
11788 2000-11-20 Tom Tromey <tromey@cygnus.com>
11789
11790 * jv-scan.c (help): Document --complexity.
11791 (options): Added --complexity.
11792 (flag_complexity): New global.
11793 (main): Call `report'.
11794 * parse-scan.y (complexity): New global.
11795 (if_then_statement, if_then_else_statement,
11796 if_then_else_statement_nsi, switch_block_statement_group,
11797 while_expression, do_statement, for_begin, continue_statement,
11798 throw_statement, catch_clause, finally, method_invocation,
11799 conditional_and_expression, conditional_or_expression,
11800 conditional_expression): Update complexity.
11801 (reset_report): Reset complexity.
11802 (report): New function.
11803
11804 2000-11-20 Tom Tromey <tromey@cygnus.com>
11805
11806 * lex.c (yylex): Added STRICT_TK case.
11807 * parse.y (STRICT_TK): Added.
11808 * parse-scan.y (STRICT_TK): Added.
11809 * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
11810 `;'. Use 4, not 3, with -k option. Correctly rename resulting
11811 file.
11812 * keyword.h: Rebuilt.
11813 * keyword.gperf (strictfp): Added.
11814
11815 2000-11-20 Tom Tromey <tromey@cygnus.com>
11816
11817 * lex.c (yylex): Recognize floating point constants with leading
11818 0.
11819
11820 2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11821
11822 * java-tree.h (cyclic_inheritance_report): Constify.
11823 * parse.y (cyclic_inheritance_report): Likewise.
11824
11825 2000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
11826
11827 * parse.y (goal): Remove call to ggc_add_string_root.
11828
11829 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
11830
11831 * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
11832 Create string in scratch buffer, then pass to build_string.
11833
11834 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
11835
11836 * parse.y (issue_warning_error_from_context): Add
11837 ATTRIBUTE_PRINTF.
11838
11839 2000-11-11 Anthony Green <green@redhat.com>
11840
11841 * jcf-parse.c (process_zip_dir): Add finput parameter.
11842 (jcf_figure_file_type): Call process_zip_dir with appropriate
11843 argument.
11844
11845 2000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11846
11847 * decl.c (copy_lang_decl): Use memcpy, not bcopy.
11848 * jcf-parse.c (jcf_figure_file_type): Likewise.
11849
11850 2000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
11851
11852 * parse.y (create_new_parser_context): Use memset () instead of
11853 bzero ().
11854
11855 2000-11-08 Tom Tromey <tromey@cygnus.com>
11856
11857 * gjavah.c (process_file): Only include gcj/cni.h when generating
11858 CNI stubs.
11859
11860 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
11861
11862 * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
11863 (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
11864 instead of bzero ().
11865
11866 2000-11-05 Tom Tromey <tromey@cygnus.com>
11867
11868 * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
11869 * lex.c (IS_ZERO): New define.
11870 (java_perform_atof): Error on floating point underflow.
11871
11872 2000-11-04 Tom Tromey <tromey@cygnus.com>
11873
11874 * lex.c (java_parse_escape_sequence): Only read two octal
11875 characters if the first one is greater than 3. Don't allow
11876 "octal" numbers to include the digits 8 or 9.
11877
11878 2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
11879
11880 * Make-lang.in (java.distdir): Remove.
11881
11882 2000-11-03 Tom Tromey <tromey@cygnus.com>
11883
11884 * Make-lang.in (java.dvi): New target.
11885 Partial fix for PR other/567.
11886
11887 * lang-options.h: Mention -Wout-of-date.
11888 * jcf-dump.c (flag_newer): New global.
11889 * gjavah.c (flag_newer): New global.
11890 * jcf-io.c (find_class): Only warn when flag_newer set.
11891 * lang.c (flag_newer): New global.
11892 (struct string_option): New declaration.
11893 (lang_W_options): New global.
11894 (process_option_with_no): New function.
11895 (lang_decode_option): Use it.
11896
11897 * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
11898 * gjavah.c (cxx_keyword_subst): Handle any number of trailing
11899 `$'.
11900
11901 * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
11902 (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
11903 * lex.c (java_read_unicode): Removed `term_context' argument.
11904 Recognize any number of `u' in `\u'.
11905 (java_read_unicode_collapsing_terminators): New function.
11906 (java_get_unicode): Use it.
11907 (java_lineterminator): Removed.
11908 (yylex): Produce error if character literal is newline or single
11909 quote. Return if eof found in middle of `//' comment. EOF in
11910 `//' comment is only an error if pedantic.
11911 (java_ignorable_control_p): New function.
11912 (java_parse_end_comment): Return if eof found in middle of
11913 comment.
11914 Include flags.h.
11915 * jv-scan.c (pedantic): New global.
11916
11917 2000-10-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
11918
11919 * parse.y (outer_field_access_p): Inherited fields aren't
11920 consider outer fields.
11921 (maybe_build_thisn_access_method): Use
11922 PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
11923 (resolve_expression_name): Trigger an error if a static field
11924 is being accessed as an outer field.
11925
11926 2000-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
11927
11928 * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
11929 Fixes gcj/365.
11930
11931 2000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
11932
11933 * Make-lang.in: Move all build rules here from Makefile.in,
11934 adapt to new context. Wrap all rules that change the current
11935 directory in parentheses. Expunge all references to $(P).
11936 When one command depends on another and they're run all at
11937 once, use && to separate them, not ;. Add OUTPUT_OPTION to
11938 all object-file generation rules. Delete obsolete variables.
11939
11940 * Makefile.in: Delete.
11941 * config-lang.in: Delete outputs= line.
11942
11943 2000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
11944
11945 * parse.y (patch_method_invocation): NULLify this_arg when already
11946 inserted.
11947 (maybe_use_access_method): Handle call to methods unrelated to the
11948 current class. Fixed comment.
11949 Fixes gcj/361.
11950
11951 2000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
11952
11953 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
11954 scope.
11955
11956 2000-10-24 Tom Tromey <tromey@cygnus.com>
11957
11958 * lex.c (java_new_lexer): Initialize new fields. Work around
11959 broken iconv() implementations.
11960 (java_read_char): Swap bytes if required. Use fallback decoder if
11961 required.
11962 (byteswap_init, need_byteswap): New globals.
11963 (java_destroy_lexer): Only close iconv handle if it is in use.
11964 * lex.h (java_lexer): New fields read_anything, byte_swap,
11965 use_fallback.
11966 Made out_buffer unsigned.
11967
11968 2000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
11969
11970 * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
11971 where an enclosing context can be set on the jdep.
11972 (do_resolve_class): Fixed identation.
11973
11974 2000-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11975
11976 * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
11977
11978 * jcf-reader.c (peek_attribute, skip_attribute): Only define
11979 when requested.
11980
11981 * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
11982
11983 * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
11984
11985 2000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
11986
11987 * jcf-write.c (OP1): Update `last_bc'.
11988 (struct jcf_block): Fixed indentation and typo in comments. New
11989 field `last_bc'.
11990 (generate_bytecode_insns): Insert `nop' if `jsr' immediately
11991 follows `monitorenter'.
11992 * parse.y (patch_synchronized_statement): New local `tmp'. Call
11993 `patch_string'.
11994 Fixes gcj/232.
11995
11996 2000-10-16 Tom Tromey <tromey@cygnus.com>
11997
11998 * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
11999 * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
12000 * lang-options.h: Added -MA, -MT, -MF..
12001 * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
12002 (DEPEND_TARGET_SET): New macro.
12003 (DEPEND_FILE_ALREADY_SET): Likewise.
12004 (init_parse): Handle new flags.
12005 * jcf.h (jcf_dependency_print_dummies): Declare.
12006 * Make-lang.in (s-java): Added mkdeps.o.
12007 * Makefile.in (BACKEND): Added mkdeps.o.
12008 (../gcjh$(exeext)): Added mkdeps.o.
12009 (../jcf-dump$(exeext)): Added mkdeps.o.
12010 * jcf-depend.c: Include mkdeps.h.
12011 (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
12012 add_entry): Removed.
12013 (jcf_dependency_reset): Rewrote.
12014 (dependencies): New global.
12015 (jcf_dependency_set_target): Rewrote.
12016 (jcf_dependency_add_target): Likewise.
12017 (jcf_dependency_add_file): Likewise.
12018 (munge): Removed.
12019 (print_ents): Removed.
12020 (jcf_dependency_write): Rewrote.
12021 (print_dummies): New global.
12022 (jcf_dependency_print_dummies): New function
12023 (jcf_dependency_write): Call deps_dummy_targets if required.
12024
12025 2000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
12026
12027 * gjavah.c (add_class_decl): Removed unused variables `tname',
12028 `tlen' and `name_index'.
12029 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
12030 * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
12031 in `wfl_operator' with value.
12032 (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
12033 (jcf_figure_file_type): Fixed identation.
12034 * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
12035 * parse.y (analyze_clinit_body): New function.
12036 (static_initializer:): Reset `current_static_block'.
12037 (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
12038 `wfl_operator' with new value.
12039 (lookup_cl): Use EXPR_WFL_FILENAME.
12040 (maybe_yank_clinit): Handle bogus <clinit> bodies, call
12041 analyze_clinit_body.
12042 (build_outer_field_access): Access to this$<n> built from
12043 current_class, not its outer context.
12044 (build_access_to_thisn): Fixed leading comment. Tidied things up.
12045 (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
12046 (patch_method_invocation): Use `is_static_flag' when already
12047 initialized.
12048 (patch_newarray): Removed assignment in ternary operator.
12049
12050 2000-10-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
12051
12052 * except.c (free_eh_ranges): Don't free `whole_range'.
12053
12054 2000-10-15 Anthony Green <green@redhat.com>
12055
12056 * decl.c (init_decl_processing): Call init_class_processing before
12057 anything else.
12058
12059 2000-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12060
12061 * check-init.c (check_init): Fixed leading comment. Use
12062 LOCAL_FINAL_P.
12063 * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12064 (give_name_to_locals): Likewise.
12065 (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
12066 fields in lang_decl_var.
12067 * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
12068 DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
12069 (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
12070 (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
12071 DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
12072 (LOCAL_FINAL): Rewritten.
12073 (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
12074 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
12075 (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
12076 `init_final' fields.
12077 (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
12078 `final_uid', `final_liic', `final_ierr' and `local_final' fields.
12079 (TYPE_HAS_FINAL_VARIABLE): New macro.
12080 (struct lang_type): Added `afv' field.
12081 * parse.y (check_static_final_variable_assignment_flag): New function.
12082 (reset_static_final_variable_assignment_flag): Likewise.
12083 (check_final_variable_local_assignment_flag): Likewise.
12084 (reset_final_variable_local_assignment_flag): Likewise.
12085 (check_final_variable_indirect_assignment): Likewise.
12086 (check_final_variable_global_assignment_flag): Likewise.
12087 (add_inner_class_fields): Use LOCAL_FINAL_P.
12088 (register_fields): Handle local finals and final variables.
12089 (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
12090 (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12091 (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
12092 on local finals.
12093 (java_complete_expand_methods): Loop to set
12094 TYPE_HAS_FINAL_VARIABLE. Call
12095 `reset_final_variable_local_assignment_flag' and
12096 `check_final_variable_local_assignment_flag' accordingly before
12097 and after constructor expansion. Call
12098 `reset_static_final_variable_assignment_flag'
12099 before expanding <clinit> and after call
12100 `check_static_final_variable_assignment_flag' if the
12101 current_class isn't an interface. After all methods have been
12102 expanded, call `check_final_variable_global_assignment_flag' and
12103 `check_static_final_variable_assignment_flag' if the current class
12104 is an interface.
12105 (maybe_yank_clinit): Fixed typo in comment.
12106 (build_outer_field_access_methods): Removed old sanity check. Use
12107 FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12108 Don't create access methods for finals.
12109 (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
12110 (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
12111 existing DECL_INIT has been processed.
12112 (java_complete_lhs): Likewise.
12113 (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
12114 Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
12115 logic.
12116 (patch_assignment): Use LOCAL_FINAL_P.
12117 (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
12118 DECL_INITIAL is nullified.
12119 Fixes gcj/163.
12120
12121 2000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12122
12123 * Make-lang.in (parse.c, parse-scan.c): Create atomically.
12124
12125 * Makefile.in (parse.c, parse-scan.c): Likewise.
12126
12127 2000-10-12 Mark Mitchell <mark@codesourcery.com>
12128
12129 * class.c (temporary_obstack): Remove.
12130 (make_class): Don't mess with obstascks.
12131 (push_class): Likewise.
12132 (set_super_info): Likewise.
12133 (add_method_1): Likewise.
12134 (add_method): Likewise.
12135 (add_field): Likewise.
12136 (build_utf8_ref): Likewise.
12137 (build_class_ref): Likewise.
12138 (build_static_field_ref): Likewise.
12139 (finish_class): Likewise.
12140 (push_super_field): Likewise.
12141 (layout_class): Likewise.
12142 (layout_class_methods): Likewise.
12143 (init_class_processing): Likewise.
12144 * constants.c (get_tag_node): Likewise.
12145 (build_constant_data_ref): Likewise.
12146 * decl.c (ggc_p): Remove.
12147 (copy_lang_decl): Use ggc_alloc.
12148 (complete_start_java_method): Don't mess with obstacks.
12149 (start_java_method): Likewise.
12150 (end_java_method): Likewise.
12151 * except.c (link_handler): Use xmalloc.
12152 (free_eh_ranges): New function.
12153 (method_init_exceptions): Use it.
12154 (add_handler): Use xmalloc.
12155 (expand_start_java_handler): Don't mess with obstacks.
12156 (prepare_eh_table_type): Likewise.
12157 (expand_end_java_handler): Likewise.
12158 * expr.c (push_value): Likewise.
12159 (create_label_decl): Likewise.
12160 (build_jni_stub): Likewise.
12161 (java_lang_expand_expr): Likewise.
12162 (note_instructions): Use xrealloc.
12163 (java_push_constant_from_pool): Don't mess with obstacks.
12164 (process_jvm_instruction): Likewise.
12165 * java-tree.h (cyclic_inheritance_report): Remove duplicate
12166 declaration.
12167 * jcf-parse.c (get_constant): Don't mess with obstacks.
12168 (read_class): Likewise.
12169 (jcf_parse): Likewise.
12170 * lex.c (expression_obstack): Remove.
12171 (java_lex): Don't use obstack_free.
12172 * parse.h (exit_java_complete_class): Don't mess with obstacks.
12173 (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
12174 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
12175 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
12176 * parse.y (gaol): Add more GC roots.
12177 (add_inner_class_fields): Adjust calls to MANGLE_* macros.
12178 (lookup_field_wrapper): Likewise.
12179 (obtain_incomplete_type): Don't mess with obstacks.
12180 (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
12181 macros.
12182 (craft_constructor): Don't mess with obstacks.
12183 (safe_layout_class): Likewise.
12184 (java_complete_class): Likewise.
12185 (source_end_java_method): Likewise.
12186 (build_outer_field_access_methods): Likewise.
12187 (build_outer_method_access_method): Likewise.
12188 (maybe_build_thisn_access_method): Likewise.
12189 (build_dot_class_method_invocation): Likewise.
12190 (java_complete_tree): Likewise.
12191 (java_complete_lhs): Likewise.
12192 (do_merge_string_cste): Likewise.
12193 (patch_string_cst): Likewise.
12194 (array_constructor_check_entry): Likewise.
12195 * typeck.c (build_java_array_type): Likewise.
12196 (parse_signature_string): Likewise.
12197 (build_java_signature): Likewise.
12198
12199 2000-10-12 Tom Tromey <tromey@cygnus.com>
12200
12201 Fix for PR gcj/356:
12202 * gjavah.c (add_class_decl): Don't special-case inner classes.
12203 (add_namelet): Likewise.
12204
12205 2000-10-11 Rodney Brown <RodneyBrown@mynd.com>
12206
12207 * java-tree.h: Constify current_encoding.
12208 * lang.c: Constify current_encoding.
12209
12210 2000-10-10 Jeff Sturm <jeff.sturm@appnet.com>
12211
12212 * jvgenmain.c (class_mangling_suffix): Omit `.'.
12213 (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
12214
12215 2000-10-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12216
12217 * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
12218 patch. Fixes gcj/340.
12219
12220 2000-10-10 Tom Tromey <tromey@cygnus.com>
12221
12222 * lex.c (java_new_lexer): Initialize out_first and out_last
12223 fields.
12224 * lex.h (java_lexer): Added out_buffer, out_first, out_last.
12225
12226 2000-10-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
12227
12228 * parse.y (pop_current_osb): New function.
12229 (array_type:): Use `dims:', changed actions
12230 accordingly. Suggested by Anthony Green.
12231 (array_creation_expression:): Used pop_current_osb.
12232 (cast_expression:): Likewise.
12233 (search_applicable_method_list): Fixed indentation.
12234
12235 2000-10-08 Anthony Green <green@redhat.com>
12236
12237 * parse.y (array_type_literal): Remove production.
12238 (type_literals): Refer to array_type, not array_type_literal.
12239
12240 2000-10-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12241
12242 Patch contributed by Corey Minyard.
12243 * decl.c (check_local_named_variable): New function.
12244 (tree check_local_unnamed_variable): Likewise.
12245 (find_local_variable): Splitted. Call check_local_{un}named_variable.
12246
12247 2000-10-07 Anthony Green <green@redhat.com>
12248
12249 * class.c (layout_class): Handle case where superclass can't be
12250 layed out yet.
12251
12252 2000-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
12253
12254 * Makefile.in (keyword.h): Refer to GNU FTP site for updated
12255 gperf.
12256
12257 2000-10-05 Tom Tromey <tromey@cygnus.com>
12258
12259 * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
12260 * jvgenmain.c (class_mangling_prefix): Removed.
12261 (class_mangling_suffix): New global.
12262 (main): Use it.
12263 * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
12264 `$'.
12265 (print_method_info): Handle overrides for static and final
12266 methods.
12267 (process_file): Generate declaration for class object field.
12268 * class.c (cxx_keywords): New array.
12269 (utf8_cmp): New function.
12270 (cxx_keyword_p): New function.
12271 (layout_class_method): Mangle C++ keywords by appending `$'.
12272 (mangle_field): New function.
12273 (mangle_class_field): Use mangle_field. Mangle class name as
12274 `class$'.
12275 (mangle_static_field): Use mangle_field.
12276
12277 2000-10-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
12278
12279 * decl.c (find_local_variable): Removed uncessary type check and
12280 fixed range check typo. From Corey Minyard.
12281
12282 2000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12283
12284 * decl.c (give_name_to_locals): New local `code_offset'. Call
12285 `maybe_adjust_start_pc'.
12286 * expr.c (note_instructions): New function.
12287 (expand_byte_code): Don't collect insn starts here.
12288 (peek_opcode_at_pc): New function.
12289 (maybe_adjust_start_pc): Likewise.
12290 * java-tree.h (maybe_adjust_start_pc): Declare.
12291 (note_instructions): Likewise.
12292 * jcf-parse.c (parse_class_file): Call `note_instructions'.
12293
12294 2000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12295
12296 * parse.y (field_access:): Fixed indentation.
12297 (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
12298
12299 2000-09-07 Tom Tromey <tromey@cygnus.com>
12300
12301 Fix for PR gcj/307:
12302 * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
12303 JPRIMITIVE_TYPE_P, for arithmetic operators.
12304 (patch_method_invocation): Indentation fix.
12305 (try_builtin_assignconv): Handle boolean specially. Fixed typo.
12306 (valid_builtin_assignconv_identity_widening_p): Handle boolean.
12307 (do_unary_numeric_promotion): Cleaned up code.
12308 (valid_cast_to_p): Handle boolean correctly.
12309
12310 2000-09-27 Tom Tromey <tromey@cygnus.com>
12311
12312 * lex.c (java_read_unicode): Reset bs_count when finished with
12313 `\u' sequence.
12314
12315 2000-10-01 Mark Mitchell <mark@codesourcery.com>
12316
12317 Convert to GC.
12318 * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
12319 * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
12320 (typeck.o): Depend on ggc.h.
12321 * class.c (add_method_1): Use GC functions for allocation.
12322 (init_class_processing): Register roots.
12323 * decl.c (ggc_p): Set to 1.
12324 (pending_local_decls): Make it static.
12325 (push_jvm_slot): Use GC functions for allocation.
12326 (init_decl_processing): Register roots.
12327 (give_name_to_locals): Use GC functions for allocation.
12328 (lang_mark_tree): New function.
12329 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
12330 functions for allocation.
12331 * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
12332 * lex.c (java_lex): Use build_string, rather than replicating it
12333 inline.
12334 * parse.y (goal): Add more roots.
12335 (mark_parser_ctxt): New function.
12336 * typeck.c: Include ggc.h.
12337
12338 2000-09-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12339
12340 * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
12341 contains something else than MODIFY_EXPR.
12342
12343 2000-09-23 Mark Mitchell <mark@codesourcery.com>
12344
12345 * Make-lang.in (JAVA_SRCS): Include java-tree.h.
12346 * Makefile.in (parse.o): Depend on ggc.h.
12347 (class.o): Likewise.
12348 (constants.o): Likewise.
12349 (decl.o): Likewise.
12350 (expr.o): Likewise.
12351 (jcf-parse.o): Likewise.
12352 (jcf-write.o): Likewise.
12353 (mangle.o): Likewise.
12354 * class.c: Include ggc.h.
12355 (build_static_field_ref): Register GC roots.
12356 (layout_class): Likewise.
12357 (init_class_processing): Likewise.
12358 * constants.c: Include ggc.h.
12359 (current_constant_pool_data_ref): Remove.
12360 (tag_nodes): Move it to ...
12361 (get_tag_node): ... here. Register GC roots.
12362 * decl.c: Include ggc.h. Remove many global tree definitions.
12363 (throw_node): Define.
12364 (java_global_trees): Likewise.
12365 (predef_filenames): Make the size a constant.
12366 (init_decl_processing): Adjust accordingly.
12367 (init_decl_processing): Call init_jcf_parse. Register GC roots.
12368 * expr.c: Include ggc.h.
12369 (init_expr_processing): Register GC roots.
12370 (build_invokeinterface): Likewise.
12371 * java-tree.h: Replace extern tree declarations with macros.
12372 (java_global_trees): New variable.
12373 (java_tree_index): New enumeration.
12374 (init_jcf_parse): Declare.
12375 * jcf-parse.c: Include ggc.h.
12376 (current_class): Remove declaration.
12377 (main_class): Likewise.
12378 (all_class_list): Likewise.
12379 (predefined_filename_p): Adjust for constant size of
12380 predef_filenames.
12381 (init_jcf_parse): New function.
12382 * jcf-write.c: Include ggc.h.
12383 (generate_classfile): Register GC roots.
12384 (append_synthetic_attribute): Likewise.
12385 (append_innerclass_attribute_entry): Likewise.
12386 * lang.c: Include ggc.h.
12387 (lang_print_error): Register GC roots.
12388 * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
12389 with macros.
12390 * parse.y: Include ggc.h.
12391 (wfl_operator): Remove.
12392 (goal): Register GC roots.
12393 (java_pop_parser_context): Adjust for new field names.
12394 (java_parser_context_save_global): Likewse.
12395 (java_parser_context_restore_global): Likewise.
12396 (java_parser_context_suspend): Likewise.
12397 (java_parser_context_resume): Likewise.
12398 (verify_constructor_circularity): Register GC roots.
12399 (lookup_cl): Likewise.
12400 (java_reorder_fields): Likewise.
12401 (build_current_this): Likewise.
12402 (class_in_current_package): Likewise.
12403 (argument_types_convertible): Likewise.
12404 (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
12405
12406 2000-09-14 Tom Tromey <tromey@cygnus.com>
12407
12408 * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
12409
12410 2000-09-13 Tom Tromey <tromey@cygnus.com>
12411
12412 * jcf-parse.c: Include <locale.h>.
12413 * jv-scan.c: Include <locale.h>.
12414
12415 2000-09-12 Tom Tromey <tromey@cygnus.com>
12416
12417 * expr.c (pop_type_0): Return `Object' if trying to merge two
12418 interface types.
12419 * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
12420 interface types; `Object' is always a valid supertype.
12421
12422 2000-09-12 Tom Tromey <tromey@cygnus.com>
12423
12424 Fix for PR gcj/33:
12425 * jv-scan.c (help): Document --encoding.
12426 (options): Added `encoding' entry.
12427 (OPT_ENCODING): New define.
12428 (main): Handle --encoding.
12429 Include <langinfo.h> if nl_langinfo exists.
12430 * lang-options.h: Document --classpath, --CLASSPATH, --main, and
12431 --encoding.
12432 * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
12433 (parse_source_file): Correctly call java_init_lex. Added `finput'
12434 argument. Use nl_langinfo to determine default encoding.
12435 * java-tree.h (current_encoding): Declare.
12436 * parse.y (java_parser_context_restore_global): Don't restore
12437 `finput'.
12438 (java_parser_context_save_global): Don't set `finput' field.
12439 (java_pop_parser_context): Don't restore `finput'. Free old lexer
12440 if required.
12441 * lang.c (current_encoding): New global.
12442 (lang_decode_option): Recognize `-fencoding='.
12443 (finish_parse): Don't close finput.
12444 * parse.h (struct parser_ctxt): Removed `finput' and
12445 `unget_utf8_value' fields. Added `lexer' field.
12446 (java_init_lex): Fixed declaration.
12447 * lex.c (java_new_lexer): New function.
12448 (java_destroy_lexer): Likewise.
12449 (java_read_char): Added `lex' argument. Handle iconv case.
12450 (java_read_unicode): Added `lex' argument. Count backslashes in
12451 lexer structure.
12452 (java_init_lex): Added `finput' and `encoding' arguments. Set
12453 `lexer' field in ctxp.
12454 (BAD_UTF8_VALUE): Removed.
12455 (java_lex): Handle seeing UEOF in the middle of a string literal.
12456 * lex.h: Include <iconv.h> if HAVE_ICONV defined.
12457 (java_lexer): New structure.
12458 (UNGETC): Removed.
12459 (GETC): Removed.
12460 (DEFAULT_ENCODING): New define.
12461 (java_destroy_lexer): Declare.
12462
12463 2000-09-12 Tom Tromey <tromey@cygnus.com>
12464
12465 Fix for PR gcj/343:
12466 * lex.c (java_init_lex): Initialize java_io_serializable.
12467 * parse.y (java_io_serializable): New global.
12468 (valid_ref_assignconv_cast_p): An array can be cast to
12469 serializable.
12470
12471 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
12472
12473 * decl.c, expr.c: Include defaults.h if not already included.
12474 Don't define the *_TYPE_SIZE macros.
12475
12476 2000-09-09 Geoffrey Keating <geoffk@cygnus.com>
12477
12478 * typeck.c (build_java_array_type): Correct first parameter
12479 in ADJUST_FIELD_ALIGN invocation.
12480
12481 2000-09-06 Tom Tromey <tromey@cygnus.com>
12482
12483 * lang-specs.h: Also recognize `-femit-class-files'.
12484
12485 2000-09-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
12486
12487 * verify.c (merge_types): Load the types to merge if necessary.
12488
12489 2000-09-02 Anthony Green <green@redhat.com>
12490
12491 * jcf-io.c: Include zlib.h.
12492 (open_in_zip): Read compressed class file archives.
12493 * zipfile.h (ZipDirectory): Add uncompressed_size and
12494 compression_method fields.
12495 * zextract.c (read_zip_archive): Collect file compression info.
12496
12497 2000-08-15 Bryce McKinlay <bryce@albatross.co.nz>
12498
12499 * parse.y (do_resolve_class): Also explore superclasses of
12500 intermediate enclosing contexts when searching for inner classes.
12501
12502 2000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
12503
12504 * parse.y (variable_declarator_id:): Better error message.
12505 (expression_statement:): Use YYNOT_TWICE.
12506 (cast_expression:): Likewise.
12507 (assignment:): Likewise.
12508
12509 2000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
12510
12511 * parse.y (do_merge_string_cste): New locals. Create new
12512 STRING_CSTs each time, use memcpy. Fixes gcj/311.
12513
12514 2000-08-07 Hans Boehm <boehm@acm.org>
12515
12516 * boehm.c (mark_reference_fields): Set marking bits for all words in
12517 a multiple-word record.
12518 (get_boehm_type_descriptor): Use the procedure marking descriptor for
12519 java.lang.Class.
12520
12521 2000-08-31 Mike Stump <mrs@wrs.com>
12522
12523 * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
12524 jcf-dump$(exeext)): Make parallel safe.
12525
12526 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
12527
12528 * jcf-parse.c (set_source_filename): Constify a char *.
12529 * jcf-write.c (append_innerclasses_attribute,
12530 make_class_file_name): Constify a char *. Don't recycle a
12531 variable for an unrelated purpose.
12532 * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
12533 (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
12534
12535 2000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12536
12537 * expr.c (can_widen_reference_to): Fixed indentation.
12538 * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
12539 * parse.y: `finit$' replaces `$finit$' in comments.
12540 (try_builtin_assignconv): Fixed leading comment.
12541
12542 2000-08-25 Greg McGary <greg@mcgary.org>
12543
12544 * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
12545
12546 2000-08-24 Greg McGary <greg@mcgary.org>
12547
12548 * lang.c (lang_decode_option): Use ARRAY_SIZE.
12549 * parse.y (BINOP_LOOKUP): Likewise.
12550
12551 2000-08-22 Andrew Haley <aph@cygnus.com>
12552
12553 * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
12554 sign extending. Fixes gcj/321.
12555 * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
12556 combining to make a jlong. Fixes gcj/321.
12557
12558 2000-08-21 Nix <nix@esperi.demon.co.uk>
12559
12560 * lang-specs.h: Do not process -o or run the assembler if
12561 -fsyntax-only.
12562
12563 2000-08-16 Andrew Haley <aph@cygnus.com>
12564
12565 * typeck.c (build_java_array_type): Rewrite code to do array
12566 alignment. Take into account back-end macros when aligning array
12567 data. Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
12568 user to set alignment. Fixes gcj/252 and 160.
12569
12570 2000-08-09 Tom Tromey <tromey@cygnus.com>
12571
12572 * parse.y (check_abstract_method_definitions): Now return `int'.
12573 Check implemented interfaces. Fixes PR gcj/305.
12574
12575 * parse.y (patch_switch_statement): Disallow `long' in switch
12576 expressions. Fixes PR gcj/310.
12577
12578 2000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
12579
12580 * decl.c (finit_leg_identifier_node): New global.
12581 (init_decl_processing): Use `finit$' to initialize
12582 finit_identifier_node. Use `$finit$' to initialize
12583 finit_leg_identifier_node.
12584 * expr.c (expand_java_field_op): Use ID_FINIT_P.
12585 * java-tree.h (finit_identifier_node): Changed attached comment.
12586 (finit_leg_identifier_node): New declaration.
12587 (ID_FINIT_P): Take finit_identifier_node and
12588 finit_leg_identifier_node into account. This is a backward
12589 compatibility hack.
12590
12591 2000-08-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
12592
12593 * jcf-write.c (generate_bytecode_conditional): Re-installed lost
12594 Jan 6 2000 patch.
12595 (generate_bytecode_insns): Check `nargs' before emitting it.
12596 * verify.c (merge_type_state): Fixed typo.
12597 * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
12598 generate_bytecode_{conditional,insns}.
12599
12600 2000-08-13 Anthony Green <green@redhat.com>
12601
12602 * check-init.c (check_init): Add case for BIT_FIELD_REF (required
12603 for -pg builds).
12604
12605 2000-08-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12606
12607 * class.c (maybe_layout_super_class): Fixed indentation.
12608 * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
12609 (java_check_methods): New function declaration.
12610 * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
12611 instead of `str_ptr'.
12612 * jcf-write.c (generate_bytecode_insns): Emit number the of args
12613 of a `invokeinterface' at the right time.
12614 * parse.h (WFL_STRIP_BRACKET): New macro.
12615 (SET_TYPE_FOR_RESOLUTION): Use it.
12616 * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
12617 (check_class_interface_creation): Don't check for cross package
12618 innerclass name clashes.
12619 (method_header): Behave properly if MDECL is `error_mark_node'.
12620 (method_declarator): Return `error_mark_node' if bogus current
12621 class.
12622 (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
12623 (resolve_and_layout): New local `decl_type', set and used. Call
12624 java_check_methods.
12625 (java_check_methods): New method.
12626 (java_layout_classes): Use it.
12627 (resolve_qualified_expression_name): No EH check necessary in
12628 access$<n>.
12629 (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
12630 `case' statement.
12631 (patch_assignment): Set DECL_INITIAL on integral final local.
12632
12633 2000-08-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
12634
12635 * java-tree.h (flag_extraneous_semicolon): New extern.
12636 * lang-options.h: (-Wextraneous-semicolon): New option.
12637 * lang.c (flag_redundant): Fixed typo in leading comment.
12638 (flag_extraneous_semicolon): New global.
12639 (lang_decode_option): Set `flag_extraneous_semicolon' when
12640 -Wall. Decode `-Wextraneous-semicolon'.
12641 * parse.y (type_declaration:): Removed `SC_TK' hack, added
12642 `empty_statement' rule.
12643 (class_body_declaration): Likewise.
12644 (method_body:): Accept `;' as a method body.
12645 (static_initializer:): Removed `SC_TK' hack.
12646 (constructor_block_end:): Likewise.
12647 (empty_statement:): Report deprecated empty declaration. Fixes
12648 gcj/295
12649
12650 2000-08-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12651
12652 * parse.y (build_dot_class_method_invocation): Changed parameter
12653 name to `type'. Build signature from `type' and convert it to a
12654 STRING_CST if it's an array.
12655 (patch_incomplete_class_ref): `build_dot_class_method_invocation'
12656 to use `ref_type' directly.
12657
12658 2000-08-06 Ovidiu Predescu <ovidiu@cup.hp.com>
12659
12660 * lang-options.h: Added a comma after the last element to avoid
12661 syntax errors when other languages define additional options.
12662
12663 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
12664
12665 * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
12666 * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
12667 (jc1): Link with $(BACKEND).
12668 (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
12669
12670 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
12671
12672 * jvspec.c: Adjust type of second argument to
12673 lang_specific_driver, and update code as necessary.
12674
12675 * class.c (build_dtable_decl): Initialize dummy.
12676
12677 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12678
12679 * parse.y (maybe_yank_clinit): When generating bytecode: non empty
12680 method bodies not to rule out discarding `<clinit>'; don't use
12681 <clinit> to initialize static fields with constant initializers.
12682
12683 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12684
12685 * gjavah.c (print_method_info): Added `synth' parameter. Skip
12686 synthetic methods.
12687 (method_synthetic): New global.
12688 (HANDLE_METHOD): Recognize synthetic method and tell
12689 `print_method_info' about it.
12690 (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
12691 processing a synthetic method.
12692 * jcf-reader.c (skip_attribute): New function.
12693 ( skip_attribute): Likewise.
12694
12695 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12696
12697 * parse.y (build_outer_field_access): Fixed comments.
12698 (fix_constructors): Emit the initialization of this$<n> before
12699 calling $finit$.
12700 (resolve_qualified_expression_name): Build an access to `decl' if
12701 necessary.
12702
12703 2000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
12704
12705 * parse-scan.y (curent_class): Non longer const.
12706 (inner_qualifier, inner_qualifier_length): Deleted.
12707 (current_class_length): New global.
12708 (bracket_count): Fixed typo in leading comment.
12709 (anonymous_count): New global.
12710 (class_instance_creation_expression:): Handle anonymous classes.
12711 (anonymous_class_creation:): New rule.
12712 (push_class_context): Rewritten.
12713 (pop_class_context): Likewise.
12714 (INNER_QUALIFIER): Macro deleted.
12715 (report_class_declaration): call `push_class_context' when
12716 entering the function. `fprintf' format modified not to use
12717 INNER_QUALIFIER.
12718 (report_class_declaration): Assign `package_name' and
12719 `current_class' to NULL separately.
12720
12721 2000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
12722
12723 * expr.c (build_invokeinterface): Call layout_class_methods on
12724 target interface.
12725
12726 2000-07-27 Tom Tromey <tromey@cygnus.com>
12727 Anthony Green <green@cygnus.com>
12728 Alexandre Petit-Bianco <apbianco@cygnus.com>
12729
12730 * class.c (make_class_data): Create vtable for abstract classes.
12731 (get_dispatch_table): Changed to cope with abstract classes.
12732
12733 2000-07-27 Tom Tromey <tromey@cygnus.com>
12734
12735 * parse.y (patch_method_invocation): Don't reverse the argument
12736 list when dealing with anonymous class constructors. Fixed typo in
12737 comment.
12738
12739 2000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
12740
12741 * parse.y (build_alias_initializer_parameter_list): Reverse
12742 crafted list when building aliases for anonymous class
12743 constructors.
12744
12745 2000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12746
12747 * parse.y (jdep_resolve_class): Don't bother checking potential
12748 innerclass access if `decl' is NULL.
12749 (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
12750 WFL.
12751
12752 2000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12753
12754 * parse.c: Remove (again.)
12755
12756 2000-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
12757
12758 * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
12759 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
12760 outside the `if' statement, alias to innerclass removed, `decl'
12761 used to mark the class complete.
12762
12763 2000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
12764
12765 * parse.y (simple_name:): Fixed typo in error message.
12766
12767 2000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
12768
12769 * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
12770 or its first operand can be error marks.
12771
12772 2000-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
12773
12774 * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
12775 * parse.y (method_header): Likewise.
12776
12777 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
12778
12779 * parse.y (process_imports): Consider that one might be trying to
12780 import an innerclass. Fixes gcj/254
12781
12782 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
12783
12784 * parse.y (find_as_inner_class): Handle the case where the
12785 enclosing context of an innerclass has been loaded as bytecode.
12786
12787 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
12788
12789 * parse.y (simple_name:): Reject `$' in type names.
12790 (resolve_type_during_patch): Use `type' as a second
12791 argument to resolve_no_layout. Fixes gcj/257.
12792
12793 2000-07-18 Bryce McKinlay <bryce@albatross.co.nz>
12794
12795 * parse.y (find_most_specific_methods_list): Select the only
12796 non-abstract method even if max has been set.
12797 Fixes gcj/285, gcj/298.
12798
12799 2000-07-18 Jeff Sturm <jeff.sturm@appnet.com>
12800
12801 * lang-specs.h: Added %(jc1) to java compiler options.
12802
12803 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
12804
12805 * .cvsignore: New file.
12806
12807 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12808
12809 * parse.y (not_accessible_p): Access granted to innerclasses
12810 (indirectly) extending the reference type. Fixes gcj/249.
12811
12812 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12813
12814 * parse.y (patch_method_invocation): Fixed comment.
12815 (maybe_use_access_method): Build this$<n>s to the context of the
12816 target method, or a type that extends it. Fixes gcj/242.
12817
12818 2000-07-13 Mark Mitchell <mark@codesourcery.com>
12819
12820 * parse.c: Remove.
12821
12822 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12823
12824 * parse.y (fold_constant_for_init): Avoid bullish conversion.
12825
12826 2000-07-13 Tom Tromey <tromey@cygnus.com>
12827
12828 * lang-specs.h: Added %{I*}.
12829
12830 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
12831
12832 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
12833
12834 2000-07-12 Mark Mitchell <mark@codesourcery.com>
12835
12836 * parse-scan.c: Remove.
12837
12838 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12839
12840 * class.c (set_super_info): Handled protected inner classes.
12841 (common_enclosing_context_p): Bail early if arguments aren't both
12842 inner classes.
12843 (get_access_flags_from_decl): Handle private and protected inner
12844 classes.
12845 * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
12846 (CLASS_PROTECTED): Likewise.
12847 (struct lang_type): New bitfield `poic'.
12848 * parse.y (jdep_resolve_class): Call check_inner_class_access on
12849 inner classes only.
12850 (check_inner_class_access): Renamed arguments, added
12851 comments. Handles protected inner classes (fixes gcj/225)
12852 (not_accessible_p): Fixed comments. Avoid handling inner classes.
12853
12854 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12855
12856 * parse.y (resolve_qualified_expression_name): Verify qualified
12857 access to `this'. Fixes gcj/239.
12858
12859 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12860
12861 * jcf-write.c (generate_classfile): Don't install ConstantValue
12862 for null pointers.
12863
12864 2000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12865
12866 * parse.y (resolve_qualified_expression_name): Handle inner class
12867 access. Fixes gcj/256.
12868
12869 2000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12870
12871 * jcf-write.c (generate_classfile): Properly install the
12872 ConstantValue attribute and the initial value constant pool index
12873 on string constants.
12874 * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
12875 class files.
12876
12877 2000-07-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
12878
12879 * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
12880 construct.
12881 * parse.y (find_as_inner_class): Fixed typo.
12882 (do_resolve_class): Explore enclosing contexts when searching for
12883 innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
12884 (check_inner_class_access): Check `decl' which can be null in case
12885 of previous errors.
12886
12887 2000-07-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
12888
12889 * java-tree.h (java_debug_context): Declared `extern'.
12890 (safe_layout_class): Likewise.
12891 * parse.y (resolve_field_access): Field must be `static' in order
12892 to be replaced by its initial value. Added comments.
12893 (find_applicable_accessible_methods_list): Fixed typo.
12894 (find_most_specific_methods_list): Methods found in innerclasses
12895 take over methods founds in the enclosing contexts.
12896 (java_complete_tree): Loosen restrictions on the type of DECLs
12897 that can be replaced by their initialization values.
12898 (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
12899
12900 2000-07-05 Tom Tromey <tromey@cygnus.com>
12901
12902 * Make-lang.in (PARSE_DIR): New macro.
12903 (PARSE_RELDIR): Likewise.
12904 (PARSE_C): Likewise.
12905 (PARSE_SCAN_C): Likewise.
12906 ($(PARSE_C)): New target.
12907 ($(PARSE_SCAN_C)): Likewise.
12908 (SET_BISON): New macro.
12909 (BISONFLAGS): Likewise.
12910 (JAVABISONFLAGS): Likewise.
12911
12912 2000-07-02 Bryce McKinlay <bryce@albatross.co.nz>
12913
12914 * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
12915 argument on the first pass for CNI as well as JNI.
12916 (print_method_info): Set up method name on the first pass only.
12917
12918 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12919
12920 * parse.y (parser_qualified_classname): Removed parameter
12921 `is_static'.
12922 (create_interface): Removed first passed parameter to
12923 parser_qualified_classname.
12924 (create_class): Likewise. Don't install alias on static
12925 innerclasses. Fixes gcj/275.
12926
12927 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12928
12929 * parse.y (maybe_generate_pre_expand_clinit): Don't build a
12930 debugable statement with empty_stmt_node. Fixes gcj/272
12931
12932 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12933
12934 * expr.c (build_instanceof): Layout type after it's loaded. Fixes
12935 gcj/271.
12936
12937 2000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12938
12939 * jcf-write.c (push_long_const): Appropriately cast short negative
12940 constant to jword.
12941
12942 2000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12943
12944 * parse.y (verify_constructor_super): Use loop variable
12945 `m_arg_type' initialized with `mdecl_arg_type'.
12946
12947 2000-06-29 Tom Tromey <tromey@cygnus.com>
12948
12949 * parse.y (resolve_field_access): Handle case where `type_found'
12950 is NULL.
12951
12952 2000-06-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
12953
12954 * expr.c (lookup_field): The same field can be found through two
12955 different interface. Don't declare it ambiguous in that case.
12956
12957 2000-06-27 Tom Tromey <tromey@cygnus.com>
12958
12959 * lex.c (java_lineterminator): Don't recognize \r after \n. If \r
12960 follows \r, then unget it at a lower level.
12961
12962 2000-06-26 Tom Tromey <tromey@cygnus.com>
12963
12964 * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
12965 java_complete_tree.
12966
12967 2000-06-25 Tom Tromey <tromey@cygnus.com>
12968
12969 * parse.y (for_statement): Wrap expression in a WFL if it is a
12970 constant. For PR gcj/268.
12971
12972 2000-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12973
12974 * parse.y (do_resolve_class): Minor optimiztion in the package
12975 list search. Removed unnecessary test and return statement.
12976 (valid_ref_assignconv_cast_p): Order of arguments to
12977 enclosing_context_p fixed.
12978
12979 2000-06-24 Tom Tromey <tromey@cygnus.com>
12980
12981 * expr.c (lookup_field): Print error and return error_mark_node if
12982 field reference is ambiguous.
12983
12984 * parse.y (check_abstract_method_definitions): Also check if
12985 `other_method' is abstract.
12986
12987 2000-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
12988
12989 * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
12990 classes.
12991 * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
12992 (struct lang_type): New field `pic'.
12993 (CLASS_PRIVATE): New macro.
12994 * parse.y (check_inner_class_access): New function.
12995 (jdep_resolve_class): Call it.
12996
12997 2000-06-23 Tom Tromey <tromey@cygnus.com>
12998
12999 * parse.y (patch_incomplete_class_ref): Initialize the returned
13000 class. For PR gcj/260.
13001
13002 2000-06-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
13003
13004 * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
13005
13006 2000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13007
13008 * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13009 Java specific checks.
13010 * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
13011 screened by DECL_P.
13012 * java-tree.def (CASE_EXPR): Marked 'e'.
13013 (DEFAULT_EXPR): Likewise.
13014 * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
13015 screened by DECL_P.
13016 * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13017 Java specific checks.
13018 (generate_bytecode_insns): Test try_block for BLOCK before using
13019 BLOCK_EXPR_BODY.
13020 * parse.y (build_wfl_wrap): Added `location' argument. Set
13021 EXPR_WFL_LINECOL accordingly.
13022 (dim_expr:): Wrap constants with WFLs.
13023 (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
13024 (resolve_package): Check for `stmt' not being a BLOCK before
13025 building a debuggable statement with it.
13026 (make_qualified_primary): Added extra parameter to build_wfl_wrap
13027 invocation.
13028 (resolve_field_access): Make sure `decl' is a DECL before treating
13029 it as such.
13030 (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
13031 IDENTIFIER_NODE before treating it as such.
13032 (patch_new_array_init): Make sure `elt' is a TREE_LIST before
13033 treating it as such.
13034 (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
13035 to be applied only on non array types.
13036
13037 2000-06-16 Per Bothner <per@bothner.com>
13038
13039 * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN): Don't
13040 define in terms of DECL_RESULT, as that fails when --enable-checking.
13041
13042 2000-06-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13043
13044 * jcf-write.c (CHECK_PUT): Add static prototype. Make pointer
13045 types the same in comparison.
13046 (CHECK_OP): Add static prototype.
13047
13048 2000-06-13 Jakub Jelinek <jakub@redhat.com>
13049
13050 * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
13051 * parse.y (java_complete_class): Set DECL_USER_ALIGN.
13052 * parse.c: Rebuilt.
13053
13054 2000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13055
13056 * decl.c (create_primitive_vtable): Prototype.
13057
13058 * jcf-write.c (generate_bytecode_insns): Initialize variable
13059 `saved_context'.
13060
13061 * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
13062
13063 2000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
13064
13065 * parse.y (find_applicable_accessible_methods_list): Use a hashtable
13066 to track searched classes, and do not search the same class more than
13067 once. Call find_applicable_accessible_methods_list on immediate
13068 superclass, instead of search_applicable_method_list on all ancestors.
13069 Fix for PR gcj/238.
13070
13071 2000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
13072
13073 * parse.y (register_fields): Permit static fields in inner classes
13074 if they are final. Fix for PR gcj/255.
13075
13076 2000-06-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
13077
13078 * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
13079 * parse.y (find_in_imports): Returned type changed to void,
13080 leading comment fixed.
13081 (register_package): New function.
13082 (qualify_and_find): Likewise.
13083 (package_declaration:): Use `register_package'.
13084 (single_type_import_declaration:): Removed local variable
13085 `node'. Added missing `;' for consistency.
13086 (type_import_on_demand_declaration:): Use `chainon' to link new
13087 entries.
13088 (lookup_field_wrapper): Lookup local variables defined in outer
13089 contexts first.
13090 (java_complete_class): Don't reverse the list of imported on demand.
13091 (do_resolve_class): Reorganized. Removed local variable
13092 `original_name'. Call `qualify_and_find' with the current package
13093 name, invoke `find_in_imports_on_demand' right after. Call
13094 `qualify_and_find' with the packages we've seen so far. Fixed
13095 operations numbering in comments.
13096 (java_expand_class): Don't reverse `package_list'.
13097 (find_most_specific_methods_list): New local variables `abstract'
13098 and `candidates'. Use them to pick the right method.
13099
13100 2000-06-06 Tom Tromey <tromey@ferrule.cygnus.com>
13101
13102 * parse.y (check_modifiers_consistency): Don't subtract out
13103 `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
13104
13105 2000-06-04 Philipp Thomas <pthomas@suse.de>
13106
13107 * Makefile.in (INTLLIBS): New.
13108 (LIBS): Add above.
13109 (DEPLIBS): Ditto.
13110
13111 2000-06-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13112
13113 * class.c (get_dispatch_table): Build the vtable dummy entry list
13114 element with a null purpose. Fixed leading comment.
13115 (build_dtable_decl): Build an accurate dtable type when appropriate
13116 and use it.
13117
13118 2000-06-02 Richard Henderson <rth@cygnus.com>
13119
13120 * lang.c (lang_get_alias_set): New.
13121
13122 2000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
13123
13124 * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
13125 before using it as the accessed field.
13126
13127 2000-05-31 Tom Tromey <tromey@cygnus.com>
13128
13129 * java-tree.h (boolean_array_vtable, byte_array_vtable,
13130 char_array_vtable, short_array_vtable, int_array_vtable,
13131 long_array_vtable, float_array_vtable, double_array_vtable):
13132 Declare.
13133 * expr.c (get_primitive_array_vtable): New function.
13134 (create_primitive_vtable): New function.
13135 (java_lang_expand_expr): Enable code to statically generate
13136 arrays.
13137 * decl.c (init_decl_processing): Create primitive vtables.
13138 (boolean_array_vtable, byte_array_vtable, char_array_vtable,
13139 short_array_vtable, int_array_vtable, long_array_vtable,
13140 float_array_vtable, double_array_vtable): Define.
13141
13142 2000-05-26 Zack Weinberg <zack@wolery.cumb.org>
13143
13144 * java/parse.y (find_applicable_accessible_methods_list):
13145 Don't add an uninitialized value to the list.
13146
13147 2000-05-25 Tom Tromey <tromey@cygnus.com>
13148
13149 * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
13150 when trying to see if field's class should be initialized. Always
13151 initialize field's declaring class, not qualified class.
13152 For PR gcj/162.
13153
13154 * parse.y (array_constructor_check_entry): Pass `wfl_value', not
13155 `wfl_operator', to maybe_build_primttype_type_ref.
13156 Fixes PR gcj/235.
13157
13158 2000-05-23 Bryce McKinlay <bryce@albatross.co.nz>
13159
13160 * parse.y (patch_method_invocation): Don't try to lookup methods
13161 in primitive types.
13162
13163 2000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13164
13165 * parse.y (resolve_field_access): Call the appropriate <clinit>
13166 before accessing the length of a static array. Craft a decl for
13167 the field while its time. Fixes PR gcj/129.
13168
13169 2000-05-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13170
13171 * parse.y (resolve_package): Correctly set `*next' (was off by
13172 one.)
13173 (resolve_qualified_expression_name): Fixed comment.
13174
13175 2000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13176
13177 * jcf-parse.c (jcf_parse_source): Reset current_class and
13178 current_function_decl to NULL before parsing a new file.
13179
13180 2000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13181
13182 * parse.y (block_end:): If the collected block doesn't feature a
13183 statement, insert an empty statement.
13184
13185 2000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13186
13187 * parse.y (maybe_yank_clinit): New function.
13188 (maybe_generate_pre_expand_clinit): Always link <clinit> at the
13189 end of the list of methods belonging to a class.
13190 (java_complete_expand_method): Check whether <clinit> is really
13191 necessary and expand it accordingly.
13192
13193 2000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13194
13195 * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
13196 processed by the method's switch statement.
13197
13198 2000-05-19 Tom Tromey <tromey@cygnus.com>
13199
13200 * java-tree.h: Added init state enum.
13201 * decl.c (emit_init_test_initialization): Initialize class
13202 initialization check variable by looking at class' state.
13203
13204 2000-05-19 Tom Tromey <tromey@cygnus.com>
13205
13206 * java-tree.h (build_instanceof): Declare.
13207 (build_get_class): Declare.
13208 * parse.y (patch_binop): Use build_instanceof.
13209 * expr.c (build_instanceof): New function. If class is final,
13210 don't make a function call.
13211 (expand_java_INSTANCEOF): Use it.
13212 (build_get_class): New function.
13213
13214 2000-05-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13215
13216 * jcf-write.c (generate_classfile): Scan the source_file for
13217 slashes with the right pointer variable.
13218
13219 2000-05-17 Andrew Cagney <cagney@b1.cygnus.com>
13220
13221 * lang.c (lang_decode_option): Update -Wunused flags by calling
13222 set_Wunused.
13223 * decl.c (poplevel): Replace warn_unused with warn_unused_label.
13224
13225 2000-05-09 Zack Weinberg <zack@wolery.cumb.org>
13226
13227 * check_init.c (check_init): Constify local char *.
13228 * class.c (push_class): Constify local char *.
13229 * java_tree.h: Update prototypes.
13230 * jcf-io.c (open_class): Constify filename parameter and
13231 return value.
13232 (find_class): Remove redundant string copy. Cast return from
13233 open_class.
13234 * jcf-parse.c (read_class, parse_class_file, yyparse):
13235 Constify local char *.
13236 * jcf-write.c (generate_bytecode_insns, generate_classfile):
13237 Constify local char *.
13238 * jcf.h (JCF): Constify filename and classname.
13239 (JCF_FINISH): Cast args to FREE to char * when appropriate.
13240 * lang.c (init_parse): Constify parameter and return value.
13241 * lex.c (java_get_line_col): Constify filename parameter.
13242 * parse.h: Constify parser_ctxt.filename. Update prototypes.
13243 * parse.y (java_parser_context_suspend,
13244 issue_warning_error_from_context, safe_layout_class): Constify
13245 local char *.
13246 * parse.c: Regenerate.
13247
13248 2000-05-08 Tom Tromey <tromey@cygnus.com>
13249
13250 * expr.c (build_jni_stub): Cache the result of
13251 _Jv_LookupJNIMethod.
13252
13253 2000-05-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13254
13255 * decl.c (predef_filenames_size): Now 7.
13256 (predef_filenames): New seventh entry.
13257
13258 2000-05-04 Tom Tromey <tromey@cygnus.com>
13259
13260 * boehm.c (mark_reference_fields): Don't mark RawData fields.
13261 Keep track of when we've seen a reference field after a
13262 non-reference field.
13263 (get_boehm_type_descriptor): Handle case where we see
13264 non-reference fields but no trailing reference field.
13265 * decl.c (rawdata_ptr_type_node): Define.
13266 (init_decl_processing): Initialize rawdata_ptr_type_node.
13267 * java-tree.h (rawdata_ptr_type_node): Declare.
13268
13269 2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13270
13271 * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
13272 specifiers in calls to fprintf.
13273
13274 2000-05-03 Andrew Haley <aph@cygnus.com>
13275
13276 * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
13277
13278 * javaop.h (WORD_TO_INT): New function.
13279 (IMMEDIATE_s4): Use WORD_TO_INT.
13280 * jcf.h (JPOOL_INT): Ditto.
13281
13282 * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
13283 separator.
13284
13285 2000-04-19 Tom Tromey <tromey@cygnus.com>
13286
13287 * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
13288 on native function.
13289 * jcf-parse.c (parse_class_file): Call build_jni_stub for native
13290 JNI methods.
13291 * expr.c (build_jni_stub): New function.
13292 * lang-specs.h: -fjni and -femit-class-file are incompatible.
13293 * parse.c: Rebuilt.
13294 * parse.y (java_complete_expand_methods): Expand a native method
13295 and call build_jni_stub if -fjni given.
13296 * lang-options.h: Document -fjni.
13297 * lang.c (flag_jni): New global.
13298 (lang_f_options): Added `jni' entry.
13299 * java-tree.h (soft_lookupjnimethod_node,
13300 soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
13301 Declare.
13302 (flag_jni): Declare.
13303 (build_jni_stub): Declare.
13304 (struct lang_decl): Added `native' flag.
13305 (METHOD_NATIVE): Redefined to use `native' field of lang specific
13306 structure.
13307 * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
13308 soft_jnipopsystemframe_node): New globals.
13309 (init_decl_processing): Set them. _Jv_InitClass only takes one
13310 argument.
13311
13312 * java-tree.def: Put into `C' mode.
13313
13314 2000-04-27 Tom Tromey <tromey@cygnus.com>
13315
13316 Fix for PR gcj/2:
13317 * expr.c (expand_invoke): Generate check to see if object pointer
13318 is null in nonvirtual invocation case.
13319 * java-tree.h (soft_nullpointer_node): Declare.
13320 * decl.c (soft_nullpointer_node): New global.
13321 (init_decl_processing): Initialize soft_nullpointer_node.
13322 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13323 or `private' methods.
13324 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13325
13326 2000-04-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
13327
13328 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
13329 from <clinit>
13330
13331 2000-04-26 Tom Tromey <tromey@cygnus.com>
13332
13333 * zextract.c (find_zip_file_start): New function.
13334 (read_zip_archive): Use it.
13335
13336 2000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13337
13338 * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
13339
13340 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
13341
13342 * class.c (common_enclosing_context_p): New function.
13343 * java-tree.h (common_enclosing_context_p): Added prototype.
13344 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
13345 classes sharing an outer context with the current instance.
13346 * parse.y (build_access_to_thisn): Fixed leading comment.
13347 (verify_constructor_super): New local `supper_inner'. Skip
13348 enclosing context argument in the case of inner class constructors.
13349 (patch_method_invocation): Insert proper context as second
13350 parameter to pure inner class constructor super invocations.
13351
13352 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
13353
13354 * parse.y (end_class_declaration): Reset the interface number
13355 counter.
13356
13357 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
13358
13359 * parse.y (source_start_java_method): Deleted unnecessary code.
13360 (patch_method_invocation): Fixed comment.
13361
13362 2000-04-24 Robert Lipe <robertlipe@usa.net>
13363
13364 * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
13365
13366 2000-04-23 Tom Tromey <tromey@cygnus.com>
13367
13368 * boehm.c (mark_reference_fields): Use int_byte_position.
13369
13370 2000-04-22 Tom Tromey <tromey@cygnus.com>
13371
13372 * boehm.c (mark_reference_fields): Only call byte_position on
13373 non-static fields.
13374
13375 2000-04-22 Tom Tromey <tromey@cygnus.com>
13376
13377 * boehm.c (mark_reference_fields): Added `last_view_index'
13378 argument. Use DECL_FIELD_OFFSET to determine field's offset.
13379
13380 2000-04-20 Mo DeJong <mdejong@cygnus.com>
13381
13382 * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
13383 * parse.y (check_class_interface_creation): Fixed comments. Select
13384 permitted modifiers for (inner) interfaces. Changed error message
13385 to report rejected modifiers used with local classes.
13386
13387 2000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13388
13389 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
13390 of directly inherited type considered in scope.
13391 * parse.y (do_resolve_class): Search inherited classes for inner
13392 classes.
13393
13394 2000-04-20 Tom Tromey <tromey@cygnus.com>
13395
13396 * parse.y (not_accessible_p): Use member's class, not current
13397 class, when doing inheritance check for protected reference.
13398 Fixes PR gcj/124.
13399
13400 2000-04-20 Jason Schroeder <shrode@subnature.com>
13401
13402 * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
13403
13404 2000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13405
13406 * parse.y (lookup_field_wrapper): Search for final local aliases.
13407 (resolve_expression_name): Let lookup_field_wrapper search for
13408 final local aliases. Force the value of `name' if one is found.
13409 (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
13410 an expression name. Fixed comments.
13411
13412 2000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13413
13414 * parse.y (yyerror): `msg' can be null, don't use it in that case.
13415
13416 2000-04-19 Tom Tromey <tromey@cygnus.com>
13417
13418 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
13419
13420 2000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
13421
13422 * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
13423
13424 2000-04-18 Tom Tromey <tromey@cygnus.com>
13425
13426 PR gcj/211:
13427 * gjavah.c (utf8_cmp): Changed return value.
13428 (cxx_keyword_subst): Handle all C++ keywords. Allocate new return
13429 result.
13430 (cxx_keywords): New global.
13431 (get_field_name): Handle new result of cxx_keyword_subst.
13432 (print_method_info): Likewise.
13433
13434 2000-04-17 Bryce McKinlay <bryce@albatross.co.nz>
13435
13436 * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
13437 with a newline, for CNI.
13438 (print_stub_or_jni): Print a space or newline before method name for
13439 CNI as well as JNI.
13440 (print_cxx_classname): Don't write leading "::" in CNI stub method.
13441 (process_file): Include gcj/cni.h if generating CNI stubs.
13442
13443 2000-04-16 Tom Tromey <tromey@cygnus.com>
13444
13445 * gjavah.c (decompile_method): Use print_field_name.
13446 Fixes PR gcj/205.
13447
13448 2000-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
13449
13450 * parse.y (java_expand_classes): Reverse the package list once.
13451 (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
13452 reduction.
13453 (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
13454 the `==' and `!=' operators.
13455
13456 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13457
13458 * jcf-write.c (generate_bytecode_insns): At invocation time,
13459 always relate an interface method to the type of its selector.
13460
13461 2000-04-05 Tom Tromey <tromey@cygnus.com>
13462
13463 Fix for PR gcj/2:
13464 * expr.c (expand_invoke): Generate check to see if object pointer
13465 is null in nonvirtual invocation case.
13466 * java-tree.h (soft_nullpointer_node): Declare.
13467 * decl.c (soft_nullpointer_node): New global.
13468 (init_decl_processing): Initialize soft_nullpointer_node.
13469 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13470 or `private' methods.
13471 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13472
13473 2000-04-05 Tom Tromey <tromey@cygnus.com>
13474
13475 Fix for PR gcj/140:
13476 * parse.y (check_final_assignment): Recognize assignments to the
13477 `length' field of an array when generating class files.
13478
13479 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13480
13481 * class.c (decl_hash): Prototype removed.
13482 (decl_compare): Likewise.
13483
13484 2000-04-05 Tom Tromey <tromey@cygnus.com>
13485
13486 * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
13487 * parse.y (check_modifiers_consistency): Check for final/volatile
13488 clash. Fixes PR gcj/164.
13489
13490 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13491
13492 * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
13493 made global.
13494 (java_hash_compare_tree_node): Renamed from `decl_compare, made
13495 global.
13496 (add_method_1): Use `java_hash_hash_tree_node' and
13497 `java_hash_compare_tree_node'.
13498 * java-tree.h: (java_hash_hash_tree_node): Prototyped.
13499 (java_hash_compare_tree_node): Likewise.
13500 * parse.y (find_applicable_accessible_methods_list): Create,
13501 delete and use a hash table to remember already searched interfaces.
13502
13503 2000-04-03 Matt Welsh <mdw@cs.berkeley.edu>
13504
13505 * jcf-depend.c (add_entry): Fixed bug where list was always replaced
13506 with latest entry.
13507
13508 2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13509
13510 * boehm.c (mark_reference_fields, set_bit): Prototype.
13511 (set_bit): Un-ANSI-fy definition.
13512
13513 * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
13514 Prototype.
13515
13516 * decl.c (emit_init_test_initialization): Likewise.
13517
13518 * gjavah.c (jni_print_char): Likewise.
13519
13520 * parse.y (create_new_parser_context): Likewise.
13521
13522 2000-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
13523
13524 * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
13525 patch missing hunk. Fixed indentation.
13526
13527 2000-03-30 Tom Tromey <tromey@cygnus.com>
13528
13529 * gjavah.c (D_NAN_MASK): Only define as word-reversed when
13530 HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
13531
13532 2000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
13533
13534 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13535 when negative *before* using it as an array index.
13536 * ChangeLog: Fixed typo.
13537
13538 2000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
13539
13540 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13541 to 0 when it reaches -1.
13542
13543 2000-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13544
13545 * jcf-parse.c (get_constant): Properly cast `num' during the
13546 invocation of `add_double'.
13547 * jcf-write.c (push_long_const): Properly cast `lo' before
13548 comparing it to short bounds.
13549 * parse-scan.y (interface_declaration:): Rule re-arrange so that
13550 `interface_body:' is reduced after the current interface is
13551 pushed.
13552
13553 2000-03-26 Tom Tromey <tromey@cygnus.com>
13554
13555 * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
13556 Java-specific `-f' option.
13557
13558 2000-03-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13559
13560 * decl.c (init_decl_processing): Only call initialize_sizetypes once.
13561 Adjust order of making types.
13562 Make bitsize_*_node values.
13563
13564 2000-03-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13565
13566 * class.c (make_field_value): Use byte_position.
13567 * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
13568 (java_array_data_offset): Likewise.
13569 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
13570 bzero call.
13571
13572 2000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
13573
13574 * parse.y (check_abstract_method_definitions): New local
13575 `end_type_reached'. Make sure we also consider `end_type'.
13576 (java_check_abstract_method_definitions): Make sure we eventually
13577 consider `java.lang.Object'.
13578 (maybe_use_access_method): Don't use access method if not in the
13579 context of a pure inner class or if the method's context is right.
13580 (find_applicable_accessible_methods_list): New static flag
13581 `object_done'. Don't search abstract classes as interfaces. Fixed
13582 indentation. Fixed the `java.lang.Object' only search. Search
13583 class interface(s) first, then fully search enclosing contexts.
13584 (find_most_specific_methods_list): Pick the closest candidate when
13585 they're all abstract.
13586
13587 2000-03-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13588
13589 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13590 properly initialize `finished_label'. Don't emit gotos for empty
13591 try statements.
13592
13593 2000-03-19 Martin v. Löwis <loewis@informatik.hu-berlin.de>
13594
13595 * except.c (emit_handlers): Clear catch_clauses_last.
13596
13597 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13598
13599 * parse.y (check_method_types_complete): New function.
13600 (create_class): Reset anonymous class counter only when seeing an
13601 non inner classe.
13602 (java_complete_class): JDEP_METHOD: Don't recompute signature
13603 if incomplete.
13604
13605 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13606
13607 * class.c (build_static_ref): Fixed indentation in comment.
13608 * java-tree.def (TRY_EXPR): Fixed typo in name.
13609 (CLASS_LITERAL): Likewise.
13610 * java-tree.h: (TYPE_DOT_CLASS): New macro.
13611 (struct lang_type): New field `dot_class'.
13612 * jcf-write.c (generate_bytecode_insns): Fixed error message.
13613 (generate_classfile): Method `class$' is synthetic.
13614 * parse.y (build_do_class_method): New function.
13615 (build_dot_class_method_invocation): Likewise.
13616 (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
13617 (resolve_qualified_expression_name): Handle CLASS_LITERAL.
13618 (qualify_ambiguous_name): Likewise.
13619 (patch_incomplete_class_ref): Invoke synthetic method if necessary.
13620 (build_try_statement): Fixed leading comment.
13621
13622 2000-03-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13623
13624 * class.c (make_field_value): Properly handle sizes.
13625 (get_dispatch_vector): Use tree_low_cst and host_integerp.
13626 (layout_class_method): Count using trees.
13627 * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
13628 * expr.c (java_array_data_offset): Use int_bit_position.
13629 (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
13630 (build_invokevirtual): Use tree_low_cst and do computations with trees.
13631
13632 2000-03-16 Tom Tromey <tromey@cygnus.com>
13633
13634 * lang.c (flag_hash_synchronization): New global.
13635 (lang_f_options): Added `hash-synchronization'.
13636 * lang-options.h: Mention -fhash-synchronization.
13637 * java-tree.h (flag_hash_synchronization): Declare.
13638 * expr.c (java_lang_expand_expr): Only push `sync_info' value when
13639 hash table synchronization is disabled.
13640 * decl.c (init_decl_processing): Only push `sync_info' value when
13641 hash table synchronization is disabled.
13642 * class.c (make_class_data): Only push `sync_info' field when hash
13643 table synchronization is disabled. Removed dead code.
13644
13645 2000-03-16 Tom Tromey <tromey@cygnus.com>
13646
13647 * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
13648
13649 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13650
13651 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
13652 classes.
13653 * parse.y (patch_method_invocation): Handle anonymous classes
13654 creation in static context.
13655
13656 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13657
13658 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
13659 * parse.y (resolve_qualified_expression_name): Use it.
13660 (patch_method_invocation): Likewise.
13661
13662 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13663
13664 * parse.y (register_incomplete_type): JDEP_ENCLOSING set
13665 depending on the type of dependency which dictates what the
13666 current class is.
13667 (unresolved_type_p): Resolved types limited to the current class.
13668
13669 2000-03-15 Tom Tromey <tromey@cygnus.com>
13670
13671 * decl.c (init_decl_processing): Set type of `sync_info' to be
13672 pointer to Object.
13673
13674 * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
13675 Correctly compute bit number for current slot. Zero `high' and
13676 `low' in DS_LENGTH case. Don't skip inherited fields. Use
13677 mark_reference_fields.
13678 (mark_reference_fields): New function.
13679
13680 2000-03-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
13681
13682 * parse.y (register_incomplete_type): Fixed initialization of
13683 JDEP_ENCLOSING.
13684
13685 2000-02-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
13686
13687 * parse-scan.y (inner_qualifier, inner_qualifier_length): New
13688 static globals.
13689 (push_class_context, pop_class_context): New function.
13690 (class_body:): Call pop_class_context.
13691 (interface_body:): Likewise.
13692 (INNER_QUALIFIER): New macro.
13693 (report_class_declaration): Changed output format and use
13694 INNER_QUALIFIER. Call push_class_context.
13695
13696 2000-02-14 Andrew Haley <aph@cygnus.com>
13697
13698 * check-init.c (check_init): Add new cases for unary and binary
13699 tree nodes.
13700
13701 2000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13702
13703 * parse.y (resolve_package): Set `next' once a type name has been
13704 progressively discovered.
13705 (resolve_qualified_expression_name): Propagate resolution only if
13706 there are remaining qualifiers. Take into account `q' might have
13707 been cleared after re-qualification.
13708 * parse.y (patch_method_invocation): New local `resolved'.
13709 Section dealing with qualified expression rewritten to use
13710 resolve_field_access.
13711
13712 2000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13713
13714 * parse.h (PUSH_CPC): Fixed indentation.
13715 (DEBUG_CPC): New macro.
13716 (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
13717 SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
13718 * parse.y (class_body_declaration:): Use
13719 SET_CPC_INSTANCE_INITIALIZER_STMT.
13720 (method_declaration:): Check for null current_function_decl.
13721 (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
13722 (java_parser_context_pop_initialized_field): Better handling of
13723 empty lists.
13724 (maybe_make_nested_class_name): Mark nested class name as
13725 qualified when necessary.
13726 (end_class_declaration): Don't call java_parse_context_resume when
13727 one or more error occurred.
13728 (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
13729 (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
13730 SET_CPC_INITIALIZER_STMT.
13731 (method_header): Check for inner classes declaring static methods.
13732 (resolve_qualified_expression_name): Handle situation where `this'
13733 is implied.
13734
13735 2000-03-13 Hans Boehm <boehm@acm.org>
13736
13737 * typeck.c (build_prim_array_type): Correctly set the high word too.
13738
13739 2000-03-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
13740
13741 * parse.y (java_complete_expand_methods): Leave <clinit> out of
13742 ordinary methods.
13743 (maybe_generate_pre_expand_clinit): Put <clinit> at the end of the
13744 list of methods for interfaces.
13745
13746 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13747
13748 * parse.y (qualify_ambiguous_name): Properly handle expressions
13749 using `null'.
13750
13751 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13752
13753 * parse.y (check_final_assignment): Extended to process
13754 COMPOUND_EXPR.
13755 (patch_assignment): Have check_final_assignment called only once.
13756
13757 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13758
13759 * java-tree.h (IS_INIT_CHECKED): New flag.
13760 * check-init.c (check_init): Test and set IS_INIT_CHECKED.
13761 * parse.y (patch_string): Call force_evaluation_order on the
13762 completed string concatenation tree.
13763 * expr.c (force_evaluation_order): Call force_evaluation_order on
13764 function's arguments too.
13765
13766 2000-03-06 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13767
13768 * decl.c (emit_init_test_initialization): Mark KEY as unused.
13769 * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13770 (build_anewarray): Likewise.
13771 * parse.y (patch_newarray): Likewise.
13772 * parse.c: Regenerated.
13773
13774 2000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
13775
13776 * decl.c (init_decl_processing): Added new class fields `depth',
13777 `ancestors', and `idt' to class_type_node. Use
13778 _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
13779 * class.c (make_class_data): Push initial values for new fields.
13780 * java-tree.h: Updated prototype for `build_invokeinterface'.
13781 * expr.c (build_invokeinterface): Changed parameters to accept
13782 `method' tree. Calculate index of `method' in its declaring
13783 interface. Build call to _Jv_LookupInterfaceMethodIdx.
13784 (expand_invoke): Call `build_invokeinterface' with new parameters.
13785 * parse.y (patch_invoke): Call `build_invokeinterface' with new
13786 parameters.
13787
13788 2000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
13789
13790 * typeck.c (lookup_do): Search superinterfaces first
13791 when looking up an interface method. From Godmar Back
13792 <gback@cs.utah.edu>
13793
13794 2000-03-06 Tom Tromey <tromey@cygnus.com>
13795
13796 * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
13797
13798 2000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13799
13800 * java-tree.h (lookup_argument_method2): Declared.
13801 (safe_layout_class): Prototype moved from parse.h.
13802 * parse.h (safe_layout_class): Prototype moved to java-tree.h.
13803 * parse.y (java_check_regular_methods): Local `super_class' gone.
13804 Call lookup_argument_method2 instead of lookup_argument_method.
13805 Perform modifier match for methods found declared in implemented
13806 interfaces. Fixed indentation problem. Overriding/hiding error
13807 report to take place only for methods found in classes.
13808 * typeck.c (lookup_argument_method): Changed leading
13809 comment. Re-written by calling lookup_do.
13810 (lookup_argument_method2): New function.
13811 (lookup_java_method): Re-written by calling lookup_do.
13812 (lookup_do): New function.
13813
13814 2000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13815
13816 * check-init.c (check_init): Removed dead code. Handle (blank)
13817 final variables.
13818 * parse.y (declare_local_variables): New local `final_p', set it
13819 and use it to initialize LOCAL_FINAL.
13820 (check_final_assignment): Only check FIELD_DECLs.
13821
13822 2000-02-17 Tom Tromey <tromey@cygnus.com>
13823
13824 * Makefile.in (JAVA_OBJS): Added boehm.o.
13825 (boehm.o): New target.
13826 * Make-lang.in (JAVA_SRCS): Added boehm.c.
13827 * java-tree.h (flag_use_boehm_gc): Declare.
13828 (get_boehm_type_descriptor): Declare.
13829 * lang.c (lang_f_options): Added `use-boehm-gc'.
13830 (flag_use_boehm_gc): New global.
13831 * lang-options.h: Added -fuse-boehm-gc.
13832 * boehm.c: New file.
13833 * class.c (get_dispatch_table): If class uses a Boehm type
13834 descriptor, put it in the vtable.
13835 (make_class_data): Removed dead code.
13836
13837 2000-03-03 Per Bothner <per@bothner.com>
13838
13839 * decl.c (init_decl_processing): Initialize sizetype properly.
13840
13841 2000-03-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13842
13843 * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
13844 (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
13845 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13846 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
13847 (jcf_parse): New local `current'. Load innerclasses seen in outer
13848 context being processed.
13849 * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13850 * jcf-write.c (append_innerclasses_attribute): New function.
13851 (append_innerclasses_attribute_entry): Likewise.
13852 (get_access_flags): Handle static classes. Set anonymous and local
13853 classes to be private.
13854 (generate_classfile): Attribute count adjusted. Call
13855 append_innerclasses_attribute.
13856 * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
13857 PURE_INNER_CLASS_TYPE_P.
13858 * parse.y (parser_qualified_classname): New parameter `is_static',
13859 produce non qualified name accordingly.
13860 (block_statement:): Set LOCAL_CLASS_P when declaring local class.
13861 (create_interface): Added argument to parser_qualified_classname.
13862 (create_class): Added argument to parser_qualified_classname. Setup
13863 alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
13864 (add_inner_class_fields): Fixed indentation.
13865 (method_declarator): Use PURE_INNER_CLASS_DECP_P.
13866 (method_declarator): Fixed typo in comment.
13867 (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
13868 (build_current_thisn): Likewise.
13869 (patch_method_invocation): Likewise.
13870
13871 2000-03-01 Martin von Löwis <loewis@informatik.hu-berlin.de>
13872
13873 * decl.c (current_function_decl): Move to toplev.c.
13874
13875 2000-02-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13876
13877 * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
13878 (DECL_BIT_INDEX): Use underlying representation.
13879 * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
13880
13881 2000-02-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13882
13883 * expr.c (build_java_ret): Pass proper type to size_binop.
13884
13885 2000-02-25 Anthony Green <green@cygnus.com>
13886
13887 * expr.c (build_class_init): Mark the decl to be ignored by
13888 check_init.
13889 * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
13890 * check-init.c: Move DECL_BIT_INDEX to java-tree.h
13891 * class.c (init_test_hash_newfunc): New function.
13892 (decl_hash): New function.
13893 (decl_compare): New function.
13894 * decl.c (emit_init_test_initialization): New function.
13895 (complete_start_java_method): Traverse the init test hashtable,
13896 calling emit_init_test_initialization.
13897 (always_initialize_class_p): Define.
13898 * expr.c (build_class_init): Use initialization tests when
13899 emitting class initialization code.
13900 (always_initialize_class_p): Declare.
13901 * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
13902 1.
13903 * java-tree.h: Include hash.h.
13904 (DECL_FUNCTION_INIT_TEST_TABLE): Define.
13905 (struct lang_decl): Add init_test_table field.
13906 (init_test_hash_entry): Define.
13907
13908 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13909
13910 * gjavah.c (main): Avoid using `argi' to report unimplemented
13911 options.
13912
13913 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13914
13915 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13916 initialize locals to avoid warnings. Local `exception_type' moved
13917 into if statement.
13918
13919 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13920
13921 * parse.y (resolve_expression_name): Use `orig' as a second
13922 argument to resolve_field_access.
13923 (resolve_field_access): Removed unnecessary code when dealing with
13924 static fields.
13925
13926 2000-02-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
13927
13928 * class.c (push_super_field): Don't push the field twice.
13929 * jcf-parse.c (parse_source_file): Call java_reorder_fields.
13930 * parse.h (java_reorder_fields): Prototyped.
13931 * parse.y (java_reorder_fields): New function.
13932 (java_layout_class): Simplified not to worry about re-ordering.
13933
13934 2000-02-23 Tom Tromey <tromey@cygnus.com>
13935
13936 * gjavah.c (print_name): In JNI case, correctly quote string.
13937 (print_method_info): Don't handle overrides in JNI mode.
13938
13939 2000-02-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
13940
13941 * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
13942 value type set to `boolean_type_node'.
13943
13944 2000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
13945
13946 * jcf-dump.c (main): Test for correct condition after
13947 output file creation.
13948
13949 2000-02-19 Anthony Green <green@cygnus.com>
13950
13951 * jcf-depend.c (add_entry): Fix test for first list entry.
13952
13953 2000-02-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13954
13955 * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
13956 * constants.c (build_constants_constructor): Likewise.
13957
13958 2000-02-19 Anthony Green <green@cygnus.com>
13959
13960 * jcf-depend.c (add_entry): Add entries to the end of the list.
13961
13962 1999-11-03 Pekka Nikander <pekka.nikander@hut.fi>
13963
13964 * decl.c (INT_TYPE_SIZE): Define if necessary.
13965 (expand_java_return): Handle the case of a native integer smaller
13966 than a JVM integer.
13967
13968 2000-02-18 Martin von Löwis <loewis@informatik.hu-berlin.de>
13969
13970 * gjavah.c (help): Use GCCBUGURL.
13971 * jv-scan.c (help): Likewise.
13972 * jcf-dump.c (help): Likewise.
13973
13974 2000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13975
13976 * jcf-write.c (generate_bytecode_insns): Don't generate empty
13977 `finally' clauses.
13978
13979 2000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13980
13981 * jcf-parse.c (load_class): Call `fatal' if no file containing
13982 the target class are found.
13983
13984 2000-02-16 Zack Weinberg <zack@wolery.cumb.org>
13985
13986 * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
13987 lex.c, lex.h, and PARSE_H to...
13988 (parse.o, parse-scan.o): ...here, respectively.
13989
13990 * lex.c: Split out code that may trigger SIGFPE from yylex()
13991 to its own function.
13992 * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
13993
13994 2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13995
13996 * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
13997
13998 2000-02-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13999
14000 * parse.y (outer_field_access_p): Stop in time when outer contexts
14001 are exhausted.
14002 (resolve_qualified_expression_name): Properly qualify *everything*
14003 after a package.type to be resoled as expression names.
14004 (find_applicable_accessible_methods_list): Save/restore `class' to
14005 isolate it from a possible outer context search.
14006
14007 2000-02-15 Tom Tromey <tromey@cygnus.com>
14008
14009 * gjavah.c (jni_print_char): New function.
14010 (print_full_cxx_name): Use it.
14011 (decode_signature_piece): Likewise.
14012 (print_cxx_classname): Likewise.
14013
14014 2000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14015
14016 * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
14017 version.o.
14018 (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
14019
14020 * gjavah.c: Include version.h.
14021
14022 * jcf-dump.c: Likewise.
14023
14024 * jv-scan.c: Likewise.
14025
14026 2000-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
14027
14028 * parse.y (outer_field_access_fix): First parameter now a tree
14029 node. Check for assignment to final. First argument to
14030 build_outer_field_access_fix modified to accommodate prototype.
14031 (build_outer_field_access): Don't check for assignment to final
14032 here.
14033 (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
14034 possibly returned by outer_field_access_fix. Changed
14035 outer_field_access_fix's first argument.
14036 (check_final_assignment): $finit$'s context is OK.
14037 (patch_unaryop): Use node instead of its line/column value when
14038 calling outer_field_access_fix.
14039
14040 2000-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
14041
14042 * parse.y (interface_declaration:): No longer tagged
14043 <node>. Re-installed default action.
14044 (class_member_declaration:): Handle inner interfaces.
14045 (interface_member_declaration): Handle inner interfaces and
14046 classes.
14047 (create_interface): Push error if one seen. Suspend parsing
14048 context when processing an inner interface.
14049 (register_fields): Inner class static field limitations not to
14050 apply to inner interfaces.
14051
14052 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14053
14054 * jcf-parse.c (load_class): Update `java_error_count' when a
14055 class' file can't be found.
14056 (parse.y): Avoid (byte)code generation when errors seen.
14057
14058 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14059
14060 * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
14061 decodes a valid node.
14062 (patch_binop): Handle TRUNC_DIV_EXPR.
14063
14064 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14065
14066 * parse.y (resolve_package): New local `acc'. Try to progressively
14067 build and guess a package and type name.
14068
14069 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14070
14071 * parse.y (find_applicable_accessible_methods_list): Load and
14072 layout the search class if necessary.
14073 (java_complete_tree): Keep to original type of the folded initial
14074 value.
14075
14076 2000-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
14077
14078 * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
14079 Generate error message if circularity is detected. New static
14080 local `list'.
14081 * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro. *
14082 * jcf-write.c (generate_bytecode_insns): Very simply handle
14083 SAVE_EXPR.
14084 * parse.y (java_check_circular_reference): Use
14085 `cyclic_inheritance_report' during report, if necessary.
14086 (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
14087 walking NEW_ARRAY_INIT twice.
14088
14089 2000-02-09 Tom Tromey <tromey@cygnus.com>
14090
14091 * parse.y (check_class_interface_creation): Allow inner classes to
14092 be `private' or `protected', check modifiers' consistency. Prevent
14093 block local classes from bearing any modifiers.
14094
14095 2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14096
14097 * except.c (check_start_handlers): Re-add prototype lost in last
14098 patch.
14099 (maybe_start_try): Remove excess argument to `check_start_handlers'.
14100
14101 2000-02-09 Andrew Haley <aph@cygnus.com>
14102
14103 * decl.c (clear_binding_level): Remove excess initializer.
14104 (maybe_poplevels): Remove unused variable.
14105 (force_poplevels): Ditto.
14106 (struct binding_level): Add comment.
14107
14108 2000-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
14109
14110 * jcf-write.c (generate_classfile): Don't consider
14111 pre-initialization with reference value (use <clinit> instead.)
14112 * parse.y (java_fix_constructors): No generated constructor for
14113 interfaces.
14114 (build_outer_field_access): Removed debug message.
14115 (outer_field_expanded_access_p): Adapted to bytecode generation.
14116 (build_outer_field_access_method): Use fix_method_argument_names.
14117 (build_outer_method_access_method): Fixed indentation. Added
14118 comment. Handle access method generation for static and also void
14119 methods.
14120 (build_access_to_thisn): Inserted debug message.
14121 (maybe_build_thisn_access_method): Use fix_method_argument_names.
14122 (resolve_qualified_expression_name): Fixed comment.
14123 (not_accessible_p): Adapted to bytecode generation. Added comment.
14124 (patch_method_invocation): Added comment.
14125 (maybe_use_access_method): Fixed leading comment. Handle static
14126 methods.
14127 (java_complete_lhs): Don't shortcut handling of initialized upon
14128 declaration String type static fields when generating bytecode.
14129 (patch_unaryop): Handle outer field access when generating
14130 bytecode.
14131
14132 2000-02-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
14133
14134 * java-tree.h (FIELD_THISN): New macro.
14135 * jcf-write.c (append_synthetic_attribute): New function.
14136 (generate_classfile): Set "Synthetic" attribute on this$<n>,
14137 val$<name> fields, access$<n> and $finit$ methods. Fixed indentation.
14138 * parse.y (add_inner_class_fields): Set FIELD_THISN for created
14139 this$<n> fields.
14140 (build_outer_field_access): Turned on access functions usage and
14141 generation when compiling to bytecode.
14142 (maybe_use_access_method): Likewise.
14143
14144 2000-01-25 Andrew Haley <aph@cygnus.com>
14145
14146 * java-except.h (struct eh_range): Add `expanded' field.
14147 (maybe_start_try): Add end_pc arg.
14148 (maybe_end_try): Ditto.
14149 * java-tree.h (force_poplevels): new function.
14150 * expr.c (expand_byte_code): Don't call maybe_start_try or
14151 maybe_end_try.
14152 * except.c (add_handler): Reset expanded.
14153 (expand_start_java_handler): Set expanded.
14154 (check_start_handlers): Don't expand a start handler that's
14155 already been expanded.
14156 (maybe_start_try): Add end_pc arg. Only expand a handler which
14157 ends after end_pc.
14158 (expand_end_java_handler): call force_poplevels.
14159 (force_poplevels): new function.
14160 * decl.c (binding_level): Add start_pc of binding level.
14161 (maybe_pushlevels): Call maybe_start_try when pushing binding
14162 levels.
14163 (maybe_poplevels): Call maybe_end_try when popping binding levels.
14164 (LARGEST_PC): Define.
14165 (clear_binding_level): Use LARGEST_PC.
14166
14167 * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
14168 * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
14169 (binding_depth, is_class_level, current_pc): new variables.
14170 (struct binding_level): ditto.
14171 (indent): new function.
14172 (push_jvm_slot): add debugging info.
14173 (maybe_pushlevels): ditto.
14174 (maybe_poplevels): ditto.
14175 (pushlevel): ditto.
14176 (poplevel): ditto.
14177 (start_java_method): ditto.
14178 (give_name_to_locals): comment only.
14179 * except.c (binding_depth, is_class_level, current_pc):
14180 new variables.
14181 (expand_start_java_handler): add debugging info.
14182 (expand_end_java_handler): ditto.
14183
14184 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14185
14186 * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
14187 (print_name_for_stub_or_jni, process_file): Constify a char*.
14188
14189 2000-02-03 Tom Tromey <tromey@cygnus.com>
14190
14191 * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
14192
14193 2000-01-31 Scott Bambrough <scottb@netwinder.org>
14194
14195 * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
14196 assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
14197 defined to be 1.
14198
14199 2000-02-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
14200
14201 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
14202 * java-tree.h (TYPE_II_STMT_LIST): New macro.
14203 (struct lang_type): New field `ii_block'.
14204 * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
14205 CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
14206 * parse.h (struct parser_ctxt): New field `instance_initializers'.
14207 (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
14208 CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
14209 CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
14210 macros.
14211 * parse.y (add_instance_initializer): New function.
14212 (in_instance_initializer): New static global.
14213 (class_body_declaration:): Link instance initializer block.
14214 (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
14215 (array_creation_expression:): Remove unused local.
14216 (java_parser_context_push_initialized_field): Fixed leading
14217 comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
14218 CPC_INSTANCE_INITIALIZER_LIST.
14219 (java_parser_context_pop_initialized_field): Likewise.
14220 (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
14221 (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
14222 CPC_INITIALIZER_STMT.
14223 (fix_constructors): New local `class_type'. Use it. Call
14224 add_instance_initializer.
14225 (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
14226 (patch_return): Forbid return in instance initializers.
14227 (patch_throw_statement): Enforce exception handling in the context
14228 of instance initializers.
14229
14230 2000-02-03 Tom Tromey <tromey@cygnus.com>
14231
14232 * Make-lang.in (java.mostlyclean): Remove executables in
14233 `mostlyclean'.
14234
14235 2000-01-31 Scott Bambrough <scottb@netwinder.org>
14236
14237 * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
14238 HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
14239 (java_float_finite): Convert to use union Word from javaop.h.
14240 (java_double_finite): Convert to use union DWord from javaop.h.
14241
14242 2000-02-02 Tom Tromey <tromey@cygnus.com>
14243
14244 * gjavah.c (options): Added `jni' entry.
14245 (help): Document -jni.
14246 (flag_jni): New global.
14247 (process_file): Handle JNI output. Don't print text from
14248 -prepend, -add, etc, when generating stubs. Only remove `.class'
14249 suffix if it actually exists.
14250 (main): Create a `.c' file when run with `--jni --stubs'. Create
14251 correct output file name with `--jni'.
14252 (print_include): Mangle header name differently in JNI case.
14253 (HANDLE_METHOD): In JNI mode, call print_method_info to generate
14254 method list.
14255 (print_method_info): Handle JNI case. Put signature info into
14256 method name. Handle case when STREAM is NULL.
14257 (print_name_for_stub_or_jni): New function.
14258 (print_stub_or_jni): Renamed from `print_stub'. Handle JNI.
14259 (print_cxx_classname): Handle JNI.
14260 (print_full_cxx_name): Likewise.
14261 (decode_signature_piece): Likewise.
14262 (overloaded_jni_method_exists_p): New function.
14263 (struct method_name): Added `signature' and `sig_length' fields.
14264 (HANDLE_END_FIELD): Do nothing in JNI mode.
14265
14266 2000-02-02 Tom Tromey <tromey@cygnus.com>
14267
14268 * jv-scan.c: Include version.c, <getopt.h>.
14269 (LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
14270 (options): New array.
14271 (usage): New function.
14272 (version): New function.
14273 (main): Use getopt_long to parse command line.
14274 * jcf-dump.c: Include version.c, <getopt.h>.
14275 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
14276 OPT_JAVAP): New macros.
14277 (options): New array.
14278 (usage): Return `void'. Changed message.
14279 (help): New function.
14280 (version): New function.
14281 (main): Use getopt_long_only to parse command line.
14282 * gjavah.c: Include <getopt.h>.
14283 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
14284 OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
14285 OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
14286 (options): New array.
14287 (java_no_argument): Removed.
14288 (help): Updated with missing options.
14289 (main): Use getopt_long_only to parse command line.
14290 (usage): Changed message.
14291
14292 2000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14293
14294 * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
14295 * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
14296 ANONYMOUS_ARRAY_INITIALIZER): New access macros.
14297 * parse.y (array_creation_expression:): Handle anonymous arrays.
14298 (build_array_from_name): Don't set `ret_name' if null.
14299 (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
14300 (qualify_ambiguous_name): Likewise.
14301 (java_complete_expand_class): Likewise.
14302
14303 2000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14304
14305 * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
14306 * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
14307 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
14308 (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
14309 (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
14310 AIPL_FUNCTION_COMPLETED_INVOCATION.
14311 (AIPL_FUNCTION_CTOR_INVOCATION): Replaces
14312 AIPL_FUNCTION_INVOCATION_READY.
14313 (AIPL_FUNCTION_DECLARATION): New enum entry.
14314 * parse.y (reorder_static_initialized): New function.
14315 (java_parser_context_pop_initialized_field): Use it.
14316 (add_inner_class_fields): Use
14317 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
14318 augmented. Install marker after last alias initializer, if any.
14319 (generate_finit): Fixed typo. Don't try to retain only the used
14320 fields.
14321 (method_header): Compute and set DECL_FUNCTION_NAP.
14322 (method_declarator): Fixed comment. Insert alias initializer in
14323 parameter list.
14324 (build_alias_initializer_parameter_list): Fixed leading
14325 comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
14326 replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
14327 (java_complete_expand_class): Code to retain only used aliases
14328 removed.
14329 (java_complete_expand_methods): New local `first_decl'. Generate
14330 $finit$ first, then expand the constructors, regular methods and
14331 <clinit>.
14332 (java_complete_expand_method): Don't report error on missing
14333 return statement if previously detected bogus.
14334 (fix_constructors): Don't patch constructor parameters list.
14335 (patch_method_invocation): Use new AIPL enum values. Reverse
14336 alias initializer list for anonymous classes.
14337
14338 2000-01-30 Anthony Green <green@redhat.com>
14339
14340 * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
14341 determine how many stack slots to pop.
14342
14343 2000-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
14344
14345 * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
14346 error handling/recovery.
14347 * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
14348
14349 2000-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
14350
14351 * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
14352 FIELD_LOCAL_ALIAS_USED): New macros.
14353 (DECL_FUNCTION_NAP): New macro.
14354 (struct lang_decl): New field `nap'.
14355 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
14356 (struct lang_type): New fields `finit_stmt_list' and
14357 `clinit_stmt_list'.
14358 (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
14359 * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
14360 (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
14361 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
14362 (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
14363 AIPL_FUNCTION_INVOCATION_READY): New enum fields.
14364 (BUILD_THROW): Macro line separator re-indented.
14365 * parse.y (end_class_declaration): New function.
14366 (maybe_generate_pre_expand_clinit): New name for
14367 java_pre_expand_clinit. Create <clinit> off TYPE_CLINIT_STMT_LIST,
14368 pre-expand static fields.
14369 (maybe_generate_clinit): Function deleted.
14370 (check_for_static_method_reference): Prototype's parameter list
14371 indented.
14372 (generate_finit): New name for maybe_generate_finit. Changed
14373 leading comment. Function rewritten to use
14374 TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
14375 (build_alias_initializer_parameter_list): New function.
14376 (java_parser_context_pop_initialized_field): Likewise.
14377 (add_inner_class_fields): Likewise.
14378 (type_declaration:): Call end_class_declaration.
14379 (class_member_declaration:): Likewise.
14380 (formal_parameter_list:): Fixed typos.
14381 (formal_parameter:): Use ARG_FINAL_P to mark created tree list
14382 element. Improved error handling.
14383 (block_statement:): Call end_class_declaration.
14384 (anonymous_class_creation:): Likewise.
14385 (create_anonymous_class): Fixed comments.
14386 (create_class): Call add_inner_class_fields.
14387 (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
14388 (method_header): Use MARK_FINAL_PARMS.
14389 (finish_method_declaration): Use UNMARK_FINAL_PARMS.
14390 (method_declarator): Propagate final argument flag.
14391 (craft_constructor): New local `artificial'. Call
14392 build_alias_initializer_parameter_list. Use
14393 CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
14394 (source_start_java_method): Mark parm decls with LOCAL_FINAL if
14395 necessary.
14396 (complete_expand_class): Get rid of unused outer context local
14397 alias fields.
14398 (java_complete_expand_methods): Fixed leading
14399 comment. Generate/pre-expand <clinit> first. Changed method
14400 expansion order to regular, $finit$, constructors, <clinit>.
14401 (java_complete_expand_method): Set current_function_decl.
14402 (fix_constructors): Fix constructor parameter list to account for
14403 outer context local alias initializers.
14404 (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14405 (resolve_expression_name): Lookup outer context local aliases. New
14406 local `access', use it.
14407 (patch_method_invocation): Patch inner class ctor invocation with
14408 outer context local aliases initialization values. $finit$
14409 invocation patching now includes things generated with
14410 build_alias_initializer_parameter_list.
14411 (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14412 (build_super_invocation): Likewise.
14413 (patch_assignment): Changed comment.
14414
14415 2000-01-27 Andrew Haley <aph@cygnus.com>
14416
14417 * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
14418 (emit_if): Ditto.
14419 (emit_jsr): Ditto.
14420
14421 2000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14422
14423 * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
14424 concatenation.
14425 (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.
14426
14427 * parse.y (register_fields): Don't pass a format specifier to
14428 OBSOLETE_MODIFIER_WARNING.
14429 (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
14430 instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
14431 specifier.
14432 (check_modifiers): Change function into a macro.
14433 (check_class_interface_creation): Pass a literal format string.
14434
14435 2000-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14436
14437 * buffer.h: PROTO -> PARAMS.
14438 * check-init.c: Likewise.
14439 * class.c: Likewise.
14440 * constants.c: Likewise.
14441 * convert.h: Likewise.
14442 * decl.c: Likewise.
14443 * except.c: Likewise.
14444 * expr.c: Likewise.
14445 * gjavah.c: Likewise.
14446 * java-except.h: Likewise.
14447 * java-tree.h: Likewise.
14448 * jcf-depend.c: Likewise.
14449 * jcf-dump.c: Likewise.
14450 * jcf-parse.c: Likewise.
14451 * jcf-path.c: Likewise.
14452 * jcf-reader.c: Likewise.
14453 * jcf-write.c: Likewise.
14454 * jcf.h: Likewise.
14455 * jv-scan.c: Likewise.
14456 * jvgenmain.c: Likewise.
14457 * jvspec.c: Likewise.
14458 * lang.c: Likewise.
14459 * lex.c: Likewise.
14460 * lex.h: Likewise.
14461 * parse-scan.y: Likewise.
14462 * parse.h: Likewise.
14463 * parse.y: Likewise.
14464 * typeck.c: Likewise.
14465 * verify.c: Likewise.
14466 * xref.c: Likewise.
14467 * xref.h: Likewise.
14468 * zextract.c: Likewise.
14469 * zipfile.h: Likewise.
14470
14471 2000-01-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
14472
14473 * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14474 (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
14475 * constants.c (build_constant_data_ref): Check for cached
14476 current_constant_pool_data_ref. Cache current_constant_pool_data_ref
14477 in TYPE_CPOOL_DATE_REF.
14478 * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
14479 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
14480 (struct lang_type): New fields `cpool' and `cpool_data_ref'.
14481 (LOCAL_FINAL): New macro.
14482 * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
14483 constant pool -- don't try to reuse.
14484 (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
14485 TYPE_LANG_SPECIFIC.
14486 (find_in_current_zip): Use TYPE_JCF.
14487 * parse.h (java_check_final): Prototype removed.
14488 * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
14489 (maybe_create_class_interface_decl,
14490 check_class_interface_creation): Likewise.
14491 (java_expand_finals): Function removed.
14492 (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
14493 (block_statement:): Fixed comment.
14494 (anonymous_class_creation:): Likewise.
14495 (check_class_interface_creation): Reversed Jan 12, 2000 extra
14496 argument patch.
14497 (check_class_interface_creation): Loosened error report on (inner)
14498 public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
14499 (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
14500 (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
14501 argument patch.
14502 (create_interface): Likewise.
14503 (anonymous_class_counter): New static global.
14504 (create_anonymous_class): Reversed Jan 12, 2000 extra argument
14505 patch. Fixed comments.
14506 (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
14507 anonymous_class_counter when declaring a toplevel class.
14508 (craft_constructor): Fixed constructor name when handling
14509 anonymous classes. Anonymous class constructors to feature hidden
14510 this$<n> parameter.
14511 (java_fix_constructors): Added comment.
14512 (java_check_final): Function removed.
14513 (java_complete_expand_methods): Fixed comment. Don't generate
14514 class data, save its outgoing constant pool instead.
14515 (verify_constructor_super): Skip anonymous class constructor
14516 hidden this$<n> parameter.
14517 (java_expand_classes): New local `saved_ctxp'. Removed call to
14518 java_expand_finals and java_check_final. Expand anonymous class
14519 constructors. Generate class data.
14520 (build_super_invocation): Skip anonymous class hidden this$<n>
14521 parameter.
14522 * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
14523 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14524 (set_java_signature): Likewise.
14525
14526 2000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
14527
14528 * gjavah.c: Delete ACC_VISIBILITY define.
14529 * jcf.h: Add ACC_VISIBILITY define.
14530 * parse.y: final: rule tagged <value>.
14531 (java_check_regular_methods): Use ACC_VISIBILITY define for
14532 default package access check.
14533 (local_variable_declaration_statement): Use final: rule.
14534
14535 2000-01-17 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
14536
14537 * parse.y (format_parameter:): Use final: rule instead of modifiers:.
14538 (final:): New rule.
14539
14540 2000-01-17 Tom Tromey <tromey@cygnus.com>
14541
14542 * gjavah.c (print_field_info): Allow non-static final fields.
14543
14544 2000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14545
14546 * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
14547 * parse.y (patch_anonymous_class): New function.
14548 (create_anonymous_class): Register incomplete type when the
14549 class/interface to extends/implement isn't known yet.
14550 (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
14551 (verify_constructor_super): Tuned error message.
14552
14553 2000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14554
14555 * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
14556 (ANONYMOUS_CLASS_P): New macro.
14557 (TYPE_SIGNATURE, TYPE_JCF): New macros.
14558 (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
14559 * parse.y (create_class): Added leading argument.
14560 (maybe_create_class_interface_decl,
14561 check_class_interface_creation): Likewise.
14562 (craft_constructor): New function.
14563 (verify_constructor_super): Added argument in prototype.
14564 (class_declaration:): Inserted leading argument.
14565 (for_begin:): Use FOR_LOOP_P.
14566 (anonymous_class_creation): Create WFL of the anonymous class to
14567 instantiate. Call build_new_invocation. Added comments.
14568 (check_class_interface_creation): Handle parameter `anonymous' in
14569 verbose mode class creation announce.
14570 (link_nested_class_to_enclosing): Exclude anonymous classes.
14571 (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
14572 anonymous class, even though they appear to have an enclosing
14573 context.
14574 (create_interface): Pass extra argument to
14575 check_class_interface_creation.
14576 (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
14577 (create_class): Call check_class_interface_creation and
14578 maybe_create_class_interface_decl with extra new argument. Don't
14579 add private this$<n> to anonymous classes.
14580 (method_declarator): Insert hidden this$<n> to anonymous class
14581 constructors.
14582 (java_fix_constructors): Deleted code creating default
14583 constructor. Call craft_constructor instead.
14584 (java_check_regular_methods): Set `saw_constructor' to 1 for
14585 anonymous classes.
14586 (fix_constructors): Pass extra argument to verify_constructor_super.
14587 (verify_constructor_super): New local `sdecl', use it. Search for
14588 matching constructor (possibly featuring arguments) in super
14589 class.
14590 (lookup_method_invoke): Craft constructor according to arguments
14591 list when dealing with anonymous class constructors.
14592 (build_super_invocation): Pass arguments to anonymous class super
14593 constructors.
14594 (search_loop): Use FOR_LOOP_P.
14595 (labeled_block_contains_loop_p): Likewise.
14596
14597 2000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
14598
14599 * class.c (set_super_info): Set CLASS_STATIC when appropriate.
14600 (enclosing_context_p): New function.
14601 (get_access_flags_from_decl): Handle CLASS_STATIC.
14602 (maybe_layout_super_class): Extra first argument passed to
14603 do_resolve_class.
14604 (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
14605 ID_INIT_P.
14606 * decl.c (access0_identifier_node): New global.
14607 (init_decl_processing): access0_identifier_node initialized.
14608 (pushdecl): Set DECL_CONTEXT only on non type decls.
14609 * expr.c (lookup_field): Lookup inner class fields in enclosing
14610 contexts.
14611 (expand_invoke): Use ID_INIT_P.
14612 (expand_java_field_op): Use DECL_CLINIT_P.
14613 * java-tree.def (CLASS_LITERAL): New tree code.
14614 * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
14615 DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
14616 (struct lang_decl): New field `inner_access'.
14617 (enclosing_context_p): Prototyped.
14618 (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
14619 ID_CLINIT_P): New macros.
14620 (CLASS_STATIC): New macro.
14621 (CLASS_ACCESS0_GENERATED_P): New macro.
14622 (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
14623 TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
14624 INNER_CLASS_P): New macros.
14625 (DECL_INNER_CLASS_LIST): New macro.
14626 * jcf-parse.c (yyparse): Avoid the use of ANSI string
14627 concatenation.
14628 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14629 the shift value to int. Fixed typo in comment.
14630 * lex.c (inst_id, wpv_id): Initialize.
14631 * mangle.c (unicode_mangling_length): Take `$' into account.
14632 * parse.h (DRECOVER, RECOVER): Terminate properly.
14633 (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
14634 (typedef struct _jdep): New field `enclosing'.
14635 (JDEP_ENCLOSING): New macro.
14636 (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
14637 (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
14638 (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
14639 GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
14640 GET_ENCLOSING_CPC_CONTEXT): New macros.
14641 (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.
14642 (do_resolve_class): Added extra argument in prototype.
14643 * parse.y (resolve_class): Added extra argument in prototype.
14644 (maybe_create_class_interface_decl): Likewise.
14645 (maybe_use_access_method, build_wfl_wrap): New functions.
14646 (java_complete_expand_classes, java_complete_expand_class):
14647 Likewise.
14648 (java_parser_context_push_initialized_field,
14649 java_parser_context_suspend, java_parser_context_resume):
14650 Likewise.
14651 (maybe_make_nested_class_name, make_nested_class_name,
14652 set_nested_class_simple_name_value,
14653 link_nested_class_to_enclosing, find_as_inner_class,
14654 find_as_inner_class_do, check_inner_class_redefinition,
14655 build_thisn_assign, build_current_thisn, build_access_to_thisn,
14656 maybe_build_thisn_access_method, build_outer_field_access,
14657 build_outer_field_access_methods, build_outer_field_access_expr,
14658 build_outer_method_access_method, build_new_access_id,
14659 build_outer_field_access_method, outer_field_access_p,
14660 outer_field_expanded_access_p, outer_field_access_fix,
14661 build_incomplete_class_ref, patch_incomplete_class_ref,
14662 create_anonymous_class): Likewise.
14663 (inst_id, wpv_id): New static global variables.
14664 (synchronized:): New rule, tagged <node>.
14665 (type_declaration:): No longer tagged <node>. Call POP_CPC in sub
14666 rules.
14667 (anonymous_class_creation:): New rule, tagged <node>.
14668 (NEW_TK): Tagged <node>.
14669 (type_literals, array_type_literal): New rules, tagged <node>.
14670 (class_declaration:): Removed action when reducing by class_body:
14671 (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
14672 using GET_CPC in sub-rules.
14673 (class_member_declaration): Handle inner classes.
14674 (method_declaration): When reducing method_header:, reset
14675 current_function_decl when appropriate.
14676 (method_declarator:): Set the number of formal parameter to 0 for
14677 method declared without arguments.
14678 (constructor_declarator:): Likewise.
14679 (static_initializer:): List of elements kept in a list.
14680 (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
14681 use of the keyword `static' for type declarations.
14682 (block_statement:): Handle inner class declarations.
14683 (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
14684 type qualified `this'.
14685 (class_instance_creation_expression): Use anonymous_class_creation:
14686 to handle inner class instances creation. Handle qualified `new'.
14687 (something_dot_new): Added appropriate actions.
14688 (create_new_parser_context): New function.
14689 (java_push_parser_context, java_parser_context_save_global,
14690 java_parser_context_suspend): Use create_new_parser_context.
14691 (check_modifiers): Changed leading comment.
14692 (check_class_interface_creation): Handle interclasses.
14693 (add_superinterfaces): Fixed comment.
14694 (create_interface): Build qualified name from the raw_name instead
14695 of its matching WFL. Push the initialized fields list. raw_name added
14696 as an extra argument to maybe_create_class_interface_decl.
14697 (create_class): Build qualified name from the raw_name instead of
14698 its matching WFL. Removed assignment to current_parsed_class_un.
14699 Call PUSH_ERROR before returning an error. Suspend the current
14700 parser context when processing an inner class. Push the
14701 initialized fields list. raw_name added as an extra argument to
14702 maybe_create_class_interface_decl. Add the private this$<n>
14703 field.
14704 (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
14705 (register_fields): Get the class type from GET_CPC and handle
14706 previous errors. Added code to handle the creation of static
14707 fields in inner classes. Initialized fields initialization
14708 statements kept in a list of lists.
14709 (maybe_generate_finit): Initialized fields initialization
14710 statements kept in a list of lists. Use GET_CPC.
14711 (maybe_generate_clinit): Likewise.
14712 (method_header): Use GET_CPC and GET_CPC_UN.
14713 (parser_qualified_classname): Handle inner classes.
14714 (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
14715 (java_fix_constructors): Hide pointer to enclosing context
14716 instance in constructor list when dealing with inner classes.
14717 (jdep_resolve_class): Call resolve_class with extra first argument
14718 JDEP_ENCLOSING.
14719 (resolve_class): Add enclosing context as a first extra argument
14720 to do_resolve_class.
14721 (do_resolve_class): Call find_as_inner_class. Handle WFLs
14722 properly.
14723 (resolve_no_layout): Extra argument added to resolve_class
14724 invocation.
14725 (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
14726 (java_get_real_method_name): Use GET_CPC_UN.
14727 (check_abstract_method_definitions): Use DECL_CLINIT_P.
14728 (java_check_abstract_methods): Handle static method declared in
14729 inner classes by an error.
14730 (java_check_regular_methods): Use DECL_CLINIT_P.
14731 (source_start_java_method): Also set DECL_MAX_LOCALS.
14732 (create_artificial_method): Call java_parser_context_save_global
14733 and java_parser_context_restore_global instead of saving/restoring
14734 the context by hand.
14735 (expand_start_java_method): Improved verbose mode message.
14736 (java_complete_expand_methods): Fixed leading comment. Use
14737 DECL_CLINIT_P.
14738 (fix_constructors): Added assignment to this$<n> if necessary.
14739 (java_expand_classes): Call java_complete_expand_classes instead
14740 of java_complete_expand_methods.
14741 (make_qualified_primary): Simplified.
14742 (merge_qualified_name): Optimized for missing left or right parts.
14743 (resolve_expression_name): Handle access to outer class fields from
14744 interclasses.
14745 (resolve_qualified_expression_name): New macro
14746 RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
14747 classes. Report error on non appropriate qualification of
14748 `new'. Handle qualified `this'.
14749 (not_accessible_p): Allow access to outer class private fields from
14750 inner classes.
14751 (patch_method_invocation): Handle method invocations through
14752 access methods and inner class constructor invocations.
14753 (find_applicable_accessible_methods_list): Search enclosing
14754 contexts of an inner class.
14755 (search_applicable_methods_list): Fixed typo.
14756 (argument_types_convertible): Handle inner class constructors'
14757 hidden outer context reference argument.
14758 (qualify_ambiguous_name): Handle qualified `this'.
14759 (java_complete_lhs): Handle use of field accessed through
14760 artificial access methods in various cases of assignments. Handle
14761 CLASS_LITERAL node.
14762 (check_final_assignment): Use DECL_CLINIT_P.
14763 (valid_ref_assignconv_cast_p): Handle the destination being an
14764 enclosing context of the source.
14765 (patch_unaryop): Handle use of field accessed through artificial
14766 access methods.
14767 (patch_return): Use DECL_CLINIT_P.
14768 (patch_throw_statement): Use DECL_CLINIT_P.
14769 (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
14770 * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
14771 ID_INIT_P.
14772
14773 2000-01-16 Anthony Green <green@cygnus.com>
14774
14775 * parse.y (build_string_concatenation): Only use
14776 StringBuffer(String) shortcut if String arg is constant.
14777
14778 2000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
14779
14780 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14781 the shift value to int. Fixed typo in comment.
14782
14783 2000-01-11 Mumit Khan <khan@xraylith.wisc.edu>
14784
14785 * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
14786 * jcf-write.c: Likewise.
14787 * parse.y: Likewise.
14788 * parse.c: Regenerate.
14789
14790 2000-01-09 Anthony Green <green@cygnus.com>
14791
14792 * jcf-write.c (generate_bytecode_insns): Emit invokeinterface
14793 bytecodes in the correct order.
14794
14795 2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14796
14797 * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
14798
14799 2000-01-06 Anthony Green <green@cygnus.com>
14800
14801 * expr.c (java_lang_expand_expr): Switch to permanent obstack
14802 before building constant array decl.
14803
14804 2000-01-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
14805
14806 * jcf-write.c (generate_bytecode_conditional): Fixed indentation in
14807 method invocation and typo in conditional expression.
14808 (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
14809 the appropriate NOTE_POP.
14810 * parse.y (patch_binop): Shift value mask to feature the right
14811 type.
14812
14813 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14814
14815 * class.c (assume_compiled, assume_compiled_node): Add static
14816 prototype.
14817 (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
14818
14819 * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
14820
14821 * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
14822
14823 * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
14824 to `__modifier' to avoid stringifying it.
14825
14826 * parse.y (verify_constructor_circularity): Don't call a variadic
14827 function with a non-literal format string.
14828 (java_check_abstract_methods): Move unreachable code inside
14829 `continue' statement.
14830 (lookup_method_invoke): Call xstrdup, not strdup.
14831
14832 * expr.c (expand_java_field_op): Avoid the use of ANSI string
14833 concatenation.
14834
14835 * jcf-parse.c (yyparse): Likewise.
14836
14837 * jv-scan.c (main): Likewise.
14838
14839 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14840
14841 * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
14842 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
14843 ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
14844 concatenation.
14845
14846 * parse.y (synchronized, variable_redefinition_error,
14847 check_class_interface_creation, create_interface, create_class,
14848 method_header, finish_method_declaration,
14849 check_modifiers_consistency, method_declarator,
14850 complete_class_report_errors, check_abstract_method_definitions,
14851 java_check_regular_methods, check_throws_clauses,
14852 java_check_abstract_methods, read_import_dir,
14853 check_pkg_class_access, declare_local_variables, fix_constructors,
14854 cut_identifier_in_qualified, resolve_expression_name,
14855 resolve_qualified_expression_name, patch_method_invocation,
14856 java_complete_lhs, patch_assignment, try_builtin_assignconv,
14857 patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
14858 patch_exit_expr, patch_exit_expr, patch_switch_statement,
14859 patch_try_statement, patch_synchronized_statement,
14860 patch_throw_statement, check_thrown_exceptions,
14861 patch_conditional_expr): Likewise.
14862
14863 1999-12-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
14864
14865 * Makefile.in (LIBDEPS): Added gcc's errors.o
14866 (../jcf-dump$(exeext):): Link with gcc's errors.o
14867 (../gcjh$(exeext):): Likewise.
14868 * expr.c (expand_java_NEW): Layout the entire target type instead of
14869 laying out its methods only.
14870 (lookup_field): Layout the class after having loaded it.
14871 * java-tree.h (java_debug_context): Declared.
14872 * jcf-io.c (toplev.h): Included.
14873 (find_class): Removed assignment to jcf's outofsynch
14874 field. Force source file to be read if newer than its matching
14875 class file. Tweaked debug messages.
14876 * jcf-parse.c (jcf_out_of_synch): Deleted.
14877 (read_class): Call to jcf_out_of_synch removed.
14878 * jcf.h (typedef struct JCF): Field `outofsynch' deleted.
14879 (jcf_out_of_synch): Prototype deleted.
14880 * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
14881 `deprecated' and `class_err': integer turned into bit-fields.
14882 New bit-fields `saved_data_ctx' and `saved_data'. Fixed comments.
14883 * parse.y (package_list): New global.
14884 (package_declaration:): Record newly parsed package name.
14885 (extra_ctxp_pushed_p): Static global deleted.
14886 (java_parser_context_save_global): Create buffer context for the
14887 purpose of saving globals, if necessary.
14888 (java_parser_context_restore_global): Pop context pushed for the
14889 purpose of saving globals, if necessary.
14890 (java_debug_context_do): New prototype and function.
14891 (java_debug_context): Likewise.
14892 (do_resolve_class): Use already parsed package names to qualify
14893 and lookup class candidate.
14894 (java_pre_expand_clinit): Removed unnecessary local variable.
14895
14896 1999-12-17 Tom Tromey <tromey@cygnus.com>
14897
14898 * gjavah.c (decode_signature_piece): Print "::" in JArray<>. This
14899 fixes PR gcj/119.
14900 (process_file): Use `\n\' at end of each line in string.
14901
14902 1999-12-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
14903
14904 * expr.c (expand_invoke): Layout the loaded class before
14905 attempting to use it.
14906 (expand_java_field_op): Allow final field assignments to take
14907 place in $finit$.
14908 * typeck.c (convert): Return error_mark_node if expr is null.
14909
14910 1999-12-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14911
14912 * class.c (class_depth): Return -1 if the class doesn't load
14913 properly.
14914 * expr.c (can_widen_reference_to): Check for errors during depth
14915 computation and return 0 accordingly.
14916 * jcf-parse.c (parse_source_file): Call java_fix_constructors to
14917 create default constructors and add an other error check.
14918 * parse.h (java_fix_constructors): Prototyped.
14919 * parse.y (java_pre_expand_clinit): Likewise.
14920 (build_super_invocation): Re-prototyped to feature one argument.
14921 (java_check_circular_reference): Directly use `current'.
14922 (java_fix_constructors): New function.
14923 (java_check_regular_methods): Don't create default constructors
14924 here, but abort if none were found.
14925 (java_complete_expand_methods): Pre-process <clinit> calling
14926 java_pre_expand_clinit.
14927 (java_pre_expand_clinit): New function.
14928 (fix_constructors): build_super_invocation invoked with the
14929 current method declaration as an argument.
14930 (build_super_invocation): Use the context of the processed method
14931 decl argument instead of current_class.
14932 * typeck.c (lookup_java_method): Take WFLs in method names into
14933 account.
14934
14935 1999-12-14 Per Bothner <per@bothner.com>
14936
14937 * class.c (make_class_data): flag_keep_inline_functions to keep
14938 private methods in the method array.
14939
14940 1999-12-15 Anthony Green <green@cygnus.com>
14941
14942 * check-init.c (check_init): Take into account both types of
14943 `throw's when checking for uninitialized variables.
14944
14945 1999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14946
14947 * parse.y (java_complete_lhs): Force conversion of array
14948 dimensions to int_type_node, that's what runtime's ABI expects.
14949
14950 1999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14951
14952 * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
14953 operand of a WFL, until the Java front-end gets fixed with regard
14954 to Mark Mitchell's gcc/tree.h patch (1999-12-04.)
14955
14956 1999-12-10 Andrew Haley <aph@cygnus.com>
14957
14958 * parse.h (BUILD_THROW): Add support for sjlj-exceptions.
14959 decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
14960 expr.c (build_java_athrow): Add support for sjlj-exceptions.
14961 java-tree.h: Ditto.
14962 jcf-write.c: Ditto.
14963
14964 1999-12-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
14965
14966 * expr.c (java_lang_expand_expr): Switch to permanent obstack
14967 before calling expand_eh_region_start and expand_start_all_catch.
14968 * except.c (expand_start_java_handler): Switch to permanent
14969 obstack before calling expand_eh_region_start.
14970 (expand_end_java_handler): Switch to permanent obstack before
14971 calling expand_start_all_catch.
14972
14973 1999-12-5 Anthony Green <green@cygnus.com>
14974
14975 * decl.c (init_decl_processing): Mark throw_node as a noreturn
14976 function with side effects.
14977 (init_decl_processing): Mark all memory allocating DECLs with
14978 DECL_IS_MALLOC.
14979
14980 1999-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14981
14982 * except.c (expand_end_java_handler): Call
14983 expand_resume_after_catch and end_catch_handler.
14984
14985 1999-11-30 Anthony Green <green@cygnus.com>
14986
14987 * verify.c (verify_jvm_instructions): Create new return label
14988 chain if non existent (don't rely on the verified state of the jsr
14989 target.)
14990
14991 1999-11-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
14992
14993 * jcf-write.c (generate_bytecode_insns): Fixed indentation for
14994 COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
14995
14996 * parse.y (patch_assignment): Removed bogus final class test on
14997 lhs when checking on whether to emit an ArrayStoreException runtime
14998 check.
14999 * expr.c (expand_java_arraystore): Likewise.
15000
15001 1999-11-28 Anthony Green <green@cygnus.com>
15002
15003 * decl.c (find_local_variable): Reuse single slot decls when
15004 appropriate.
15005
15006 1999-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15007
15008 * jcf-parse.c (saw_java_source): Global variable removed.
15009 (read_class): Don't use `saw_java_source'. Added extra braces.
15010 (yyparse): Code setting `saw_java_source' removed.
15011
15012 1999-11-24 Mark Mitchell <mark@codesourcery.com>
15013
15014 * except.c (emit_handlers): Zero catch_clauses after emitting them.
15015
15016 1999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
15017
15018 * verify.c (merge_type_state): Non verified subroutines being
15019 considered more than once to trigger passive type merge.
15020
15021 1999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
15022
15023 * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
15024 in case of error. Error message tuned.
15025
15026 1999-11-21 Anthony Green <green@cygnus.com>
15027
15028 * constants.c (find_methodref_index): Unwrap method names before
15029 inserting them in the constant pool.
15030
15031 * jcf-parse.c (jcf_parse): Display `interface' when appropriate.
15032
15033 * class.c (assume_compiled_node): New typedef.
15034 (assume_compiled_tree): New static data.
15035 (find_assume_compiled_node): New function.
15036 (add_assume_compiled): New function.
15037 (assume_compiled): New function.
15038 * class.c (make_class_data): Use assume_compiled.
15039 (is_compiled_class): Use assume_compiled.
15040
15041 * java-tree.h (add_assume_compiled): Declare.
15042
15043 * lang.c (lang_decode_option): Parse new options.
15044
15045 1999-11-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15046
15047 * class.c (layout_class): Always convert TYPE_SIZE_UNIT to
15048 int_type_node: that's what `_Jv_AllocObject' expects.
15049
15050 1999-11-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
15051
15052 * parse.y (lookup_method_invoke): Use lang_printable_name to
15053 reliably build the type name during error report. Fixes PR gcj/97.
15054
15055 1999-11-09 Tom Tromey <tromey@cygnus.com>
15056
15057 * jcf-path.c: Include <sys/stat.h>.
15058 (jcf_path_init): Search for libjava.zip. Fixes PR gcj/84.
15059 (DIR_UP): New macro.
15060
15061 1999-11-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
15062
15063 * parse.y (source_end_java_method): Resume permanent allocation,
15064 reversing Apr 27 1998 patch.
15065 (patch_string_cst): Pop obstacks after having pushed the permanent
15066 ones.
15067
15068 1999-11-05 Tom Tromey <tromey@cygnus.com>
15069
15070 * class.c (finish_class): Emit inlined methods if any native
15071 methods exist in the class. Fixes PR gcj/85.
15072
15073 1999-11-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
15074
15075 * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
15076 (qualify_ambiguous_name): Likewise.
15077
15078 1999-11-03 Godmar Back <gback@cs.utah.edu>
15079
15080 * typeck.c: (lookup_java_method): search all inherited
15081 interfaces when looking up interface method.
15082
15083 1999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15084
15085 * parse.y (method_header:): Issue error message for rule `type
15086 error'.
15087 (synchronized:): Error report when not using synchronized.
15088
15089 1999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15090
15091 * parse.y (resolve_qualified_expression_name): Prevent `this' from
15092 being used before the superclass constructor has been called.
15093 (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
15094 instead of `CALL_THIS_CONSTRUCTOR_P'.
15095
15096 1999-10-30 Todd T. Fries <todd@lighthouse.fries.net>
15097
15098 * check-init.c: Fix typo in comment.
15099
15100 1999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
15101
15102 * class.c (add_method_1): Set DECL_INLINE to 1 for private, static
15103 and final method.
15104
15105 1999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
15106
15107 * parse.y (expression_statement:): Call function to report
15108 improper invocation of a constructor.
15109 (parse_ctor_invocation_error): New function.
15110
15111 1999-10-26 Mark Mitchell <mark@codesourcery.com>
15112
15113 * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
15114 remember_end_note.
15115
15116 1999-10-21 Tom Tromey <tromey@cygnus.com>
15117
15118 * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
15119 in generated `main'.
15120
15121 1999-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
15122
15123 * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
15124 (qualify_ambiguous_name): Likewise.
15125
15126 1999-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
15127
15128 * parse.y (java_complete_tree): fold_constant_for_init to work on
15129 permanent_obstack.
15130 (java_complete_lhs): Likewise.
15131 (array_constructor_check_entry): Complete an initializer element
15132 on permanent_obstack.
15133
15134 1999-10-19 Tom Tromey <tromey@cygnus.com>
15135
15136 * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
15137 From Mike Moreton <mike@pillim.demon.co.uk>.
15138
15139 1999-10-15 Greg McGary <gkm@gnu.org>
15140
15141 * java-tree.h (flag_bounds_check): Remove extern decl.
15142 * lang.c (flag_bounds_check): Remove global variable.
15143 (lang_f_options): Remove "bounds-check" entry.
15144 (lang_init_options): Default flag_bounds_check to "on".
15145
15146 1999-10-14 Tom Tromey <tromey@cygnus.com>
15147
15148 * jvgenmain.c (usage): New function.
15149 (main): Use it. Also, handle `-D' options.
15150 * jvspec.c (lang_specific_driver): Recognize -D.
15151 (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.
15152
15153 * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
15154
15155 1999-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15156
15157 * jcf-dump.c (print_constant, disassemble_method): Don't call a
15158 variadic function with a non-literal format string.
15159
15160 * parse-scan.y (report_main_declaration): Likewise.
15161
15162 * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.
15163
15164 * parse.y (read_import_dir, patch_assignment, patch_binop,
15165 patch_array_ref): Likewise.
15166
15167 * typeck.c (build_java_array_type): Likewise.
15168
15169 * verify.c (verify_jvm_instructions): Likewise.
15170
15171 1999-10-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
15172
15173 * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
15174
15175 1999-10-07 Anthony Green <green@cygnus.com>
15176
15177 * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases
15178 where CHECK_PUT may fail for valid reasons.
15179
15180 * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3,
15181 UNSAFE_PUTN): New macros.
15182
15183 1999-10-04 Tom Tromey <tromey@cygnus.com>
15184
15185 * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
15186 well. Fixes Java PR gcj/59.
15187 * parse-scan.y (yyerror): Report errors.
15188
15189 1999-09-24 Glenn Chambers <GChambers@provsol.com>
15190
15191 * decl.c (insert_block): Remove unconditional `abort'.
15192
15193 1999-09-24 Bernd Schmidt <bernds@cygnus.co.uk>
15194
15195 * decl.c (builtin_function): No longer static. New arg CLASS. Arg
15196 FUNCTION_CODE now of type int. All callers changed.
15197 Set the builtin's DECL_BUILT_IN_CLASS.
15198
15199 1999-09-23 Tom Tromey <tromey@cygnus.com>
15200
15201 * jvspec.c (lang_specific_driver): Don't read spec file if
15202 -fsyntax-only given.
15203
15204 1999-09-22 Tom Tromey <tromey@cygnus.com>
15205
15206 * lang-specs.h: Added `%(jc1)' to the jc1 spec.
15207
15208 * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
15209 (WORDS_TO_LONG): Likewise.
15210 (WORDS_TO_DOUBLE): Likewise.
15211
15212 1999-09-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15213
15214 * jcf-write.c (RELOCATION_VALUE_0): New macro.
15215 (RELOCATION_VALUE_1): Likewise.
15216 (emit_iinc, emit_reloc, push_constant1, push_constant2,
15217 push_in_const, push_long_const): Prototyped.
15218 (push_constant1): Argument `index' is of type HOST_WIDE_INT.
15219 (push_constant2): Likewise.
15220 (push_int_const): Cast find_constant1's integer arguments to `jword'.
15221 (find_constant_wide): Cast find_constant2's integer arguments to
15222 `jword'.
15223 (find_constant_index): Cast find_constant2's and find_constant2's
15224 integer arguments to `jword'.
15225 (emit_pop): Argument `value' is of type HOST_WIDE_INT.
15226 (emit_switch_reloc): Use RELOCATION_VALUE_0.
15227 (emit_if): Use RELOCATION_VALUE_1.
15228 (emit_goto): Likewise.
15229 (emit_jsr): Likewise.
15230 (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
15231 argument to push_long_const to HOST_WIDE_INT.
15232
15233 1999-09-15 Andreas Schwab <schwab@suse.de>
15234
15235 * Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
15236
15237 1999-09-20 Nick Clifton <nickc@cygnus.com>
15238
15239 * lang.c (lang_decode_option): Extend comment.
15240
15241 1999-09-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
15242
15243 * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
15244 instead of fndecl.
15245
15246 1999-09-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15247
15248 * gjavah.c (get_field_name, print_method_info, print_include,
15249 add_namelet): Use xmalloc, not malloc.
15250
15251 * jcf-depend.c (add_entry): Likewise. Use xstrdup, not strdup.
15252 (munge): Use xrealloc, not realloc, trust xrealloc to handle a
15253 NULL pointer.
15254
15255 * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
15256
15257 * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
15258
15259 * jcf-path.c (add_entry): Likewise.
15260
15261 * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
15262
15263 * jv-scan.c (xmalloc): Remove definition.
15264
15265 * jvgenmain.c (xmalloc): Likewise.
15266
15267 * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
15268
15269 * lex.c (java_store_unicode): Use xrealloc, not realloc.
15270
15271 * parse-scan.y: Use concat, not of xmalloc/assign/strcpy. Use
15272 concat, not xmalloc/sprintf.
15273 (java_push_parser_context): Use xcalloc, not xmalloc/bzero.
15274 (xstrdup): Remove definition.
15275
15276 * parse.y (duplicate_declaration_error_p,
15277 constructor_circularity_msg, verify_constructor_circularity,
15278 check_abstract_method_definitions, java_check_regular_methods,
15279 java_check_abstract_methods, patch_method_invocation,
15280 check_for_static_method_reference, patch_assignment, patch_binop,
15281 patch_cast, array_constructor_check_entry, patch_return,
15282 patch_conditional_expr): Use xstrdup, not strdup.
15283
15284 * zextract.c (ALLOC): Use xmalloc, not malloc.
15285
15286 1999-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15287
15288 * Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
15289
15290 * jvspec.c: Include gcc.h. Don't include gansidecl.h.
15291 (do_spec, lang_specific_pre_link, lang_specific_driver,
15292 input_filename, input_filename_length): Don't declare.
15293 (main_class_name, jvgenmain_spec, lang_specific_driver):
15294 Constify a char*.
15295 (lang_specific_driver): All calls to the function pointer
15296 parameter now explicitly call `fatal'.
15297
15298 1999-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
15299
15300 * parse.y (find_applicable_accessible_methods_list): Search
15301 abstract classes as interfaces.
15302
15303 1999-09-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
15304
15305 * class.c (finish_class): We're now outside a valid method
15306 declaration. Tell the rest of gcc so.
15307
15308 1999-09-08 Bruce Korb autogen@linuxbox.com
15309
15310 * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
15311
15312 1999-09-07 Tom Tromey <tromey@cygnus.com>
15313
15314 * gjavah.c (add_class_decl): Generate include for gcj/array.h, not
15315 java-array.h.
15316 (decode_signature_piece): Don't emit "::" in JArray<>.
15317 (print_namelet): Only print trailing `;' when printing a class.
15318
15319 1999-09-10 Bernd Schmidt <bernds@cygnus.co.uk>
15320
15321 * java-tree.h: Delete declarations for all tree nodes now moved to
15322 global_trees.
15323 * decl.c: Delete their definitions.
15324
15325 1999-09-04 Mark Mitchell <mark@codesourcery.com>
15326
15327 * Make-lang.in (jc1): Depend on ggc-callbacks.o.
15328 * Makefile.in (OBJS): Add ggc-callbacks.o.
15329 (OBJDEPS): Likewise.
15330
15331 1999-09-03 Tom Tromey <tromey@cygnus.com>
15332
15333 * parse.y (strip_out_static_field_access_decl): Return operand if
15334 it satisfies JDECL_P.
15335
15336 1999-09-02 Tom Tromey <tromey@cygnus.com>
15337
15338 * gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
15339 Handle nested arrays, like `[[I'.
15340
15341 1999-09-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15342
15343 * class.c (finish_class): Remove unused parameter, all callers
15344 changed.
15345
15346 * expr.c (build_java_athrow): Change return type to void.
15347 (java_lang_expand_expr): Make sure each case in switch returns a
15348 value.
15349
15350 * java-tree.h (finish_class): Fix prototype to take void args.
15351
15352 * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
15353 (main): Issue return from main, not exit.
15354
15355 * jcf-parse.c (parse_class_file): Fix call to `finish_class'.
15356
15357 * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.
15358
15359 * jv-scan.c (main): Issue return from main, not exit.
15360
15361 * parse.y (check_abstract_method_definitions,
15362 java_check_abstract_method_definitions): Add static prototypes.
15363 (java_complete_expand_methods): Fix call to `finish_class'.
15364
15365 * verify.c (verify_jvm_instructions): Initialize variables `oldpc'
15366 and `prevpc'.
15367
15368 1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15369
15370 * lang.c (language_string): Constify.
15371
15372 1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15373
15374 * Makefile.in (LIBS): Fix definition so we link with $(CLIB).
15375 Remove hacks for stuff which comes from libiberty.
15376
15377 * Make-lang.in: Likewise.
15378
15379 1999-08-30 Hans-Peter Nilsson <hp@axis.se>
15380
15381 * Makefile.in (xref.o): Depend on xref.c explicitly.
15382
15383 1999-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15384
15385 * java-tree.h (lang_printable_name): Constify a char*.
15386
15387 * lang.c (lang_printable_name): Likewise.
15388
15389 1999-08-27 Jeffrey A Law (law@cygnus.com)
15390
15391 * gjavah.c, jcf-write.c, verify.c: Do not use C++ style
15392 comments in C code.
15393
15394 1999-08-26 Tom Tromey <tromey@cygnus.com>
15395
15396 * gjavah.c (print_cxx_classname): Print "::" before qualified
15397 name.
15398
15399 1999-08-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
15400
15401 * parse.y (lookup_cl): Changed leading comment. Now does its best
15402 to set the column number.
15403 (qualify_ambiguous_name): Take WFL wrappers into account.
15404
15405 1999-08-25 Gregg Townsend <gmt@cs.arizona.edu>
15406
15407 * verify.c (verify_jvm_instructions): Don't check instruction
15408 validity beyond end of method.
15409
15410 1999-08-25 Tom Tromey <tromey@cygnus.com>
15411
15412 * jvspec.c (lang_specific_driver): Correctly handle --help again.
15413
15414 1999-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15415
15416 * gjavah.c (print_name, print_base_classname, utf8_cmp,
15417 cxx_keyword_subst, generate_access, name_is_method_p,
15418 get_field_name, print_field_name, super_class_name, print_include,
15419 decode_signature_piece, print_class_decls, usage, help,
15420 java_no_argument, version, add_namelet, print_namelet): Add static
15421 prototype.
15422 (print_base_classname, utf8_cmp, cxx_keyword_subst,
15423 name_is_method_p): Constify a char*.
15424 (get_field_name): Likewise. Prefer xstrdup over malloc/strcpy.
15425 Provide a final else clause in an if-else-if.
15426 (print_field_info): Add missing final arg in function call to
15427 `print_field_name'.
15428 (print_method_info, decompile_method, decode_signature_piece,
15429 print_c_decl, print_full_cxx_name, print_stub,
15430 print_mangled_classname, super_class_name, print_include,
15431 add_namelet, add_class_decl, print_class_decls, process_file,
15432 help): Constify a char*.
15433
15434 * jcf-write.c (jcf_handler, push_constant1, push_constant2,
15435 push_int_const, find_constant_wide, find_constant_index,
15436 push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
15437 emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
15438 emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
15439 emit_if, emit_goto, emit_jsr, call_cleanups,
15440 make_class_file_name): Add static prototypes.
15441 (generate_bytecode_return, generate_bytecode_insns): Pass a
15442 NULL_PTR, not a NULL_TREE.
15443
15444 * jv-scan.c: Include "jcf.h".
15445 (main): Declare using DEFUN macro.
15446
15447 * jvspec.c (find_spec_file, lang_specific_pre_link,
15448 lang_specific_driver): Add prototypes.
15449 (find_spec_file): Constify a char*.
15450
15451 * keyword.gperf (hash, java_keyword): Add prototypes.
15452
15453 * lang.c (lang_print_error): Add static prototype.
15454 (lang_init): Prefer memcpy over bcopy to avoid casts.
15455
15456 * lex.c (yylex): Add static prototype.
15457
15458 * parse-scan.y: Include "lex.c" earlier.
15459
15460 * parse.h: Remove redundant declaration for `yylex'.
15461
15462 * parse.y (java_decl_equiv, binop_compound_p, search_loop,
15463 labeled_block_contains_loop_p): Add static prototypes.
15464 (not_accessible_p): Make static to match prototype.
15465
15466 * verify.c (start_pc_cmp): Don't needlessly cast away const.
15467
15468 1999-08-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
15469
15470 * parse.y (check_method_redefinition): Changed leading comment.
15471 (check_abstract_method_definitions): New function.
15472 (java_check_abstract_method_definitions): New function.
15473 (java_check_regular_methods): Call it.
15474 (verify_constructor_super): Fixed indentation.
15475 (lookup_method_invoke): Likewise.
15476
15477 1999-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
15478
15479 * parse.y (method_header): Return a null pointer if the current
15480 class node is null.
15481 (finish_method_declaration): Return if the current function decl
15482 is null.
15483 (source_start_java_method): Likewise.
15484 (java_method_add_stmt): Likewise.
15485
15486 1999-08-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
15487
15488 * class.c (emit_register_class): Removed unnecessary call to
15489 start_sequence.
15490 * parse.y (labeled_block_contains_loop_p): Removed unused local
15491 variable.
15492
15493 1999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15494
15495 * parse.y (java_refold): Added prototype.
15496
15497 1999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15498
15499 * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
15500 (java_stabilize_reference): Removed unnecessary `else'.
15501 (java_complete_lhs): Set flag to remember boolean. Call
15502 java_refold. Added comments.
15503 (java_decl_equiv): New function.
15504 (binop_compound_p): Likewise.
15505 (java_refold): Likewise.
15506 (patch_unaryop): Striped static field access assigned to decl and
15507 op. Changed promotion scheme for ++/-- operators.
15508 (search_loop): New function.
15509 (labeled_block_contains_loop_p): Likewise.
15510 (patch_loop_statement): Call labeled_block_contains_loop_p. Added
15511 comment.
15512 (patch_bc_statement): Call search_loop. Fixed comment.
15513
15514 1999-08-14 Anthony Green <green@cygnus.com>
15515
15516 * expr.c (java_lang_expand_expr): Mark static array data as
15517 referenced.
15518
15519 1999-08-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
15520
15521 * jvgenmain.c (main): NUL-terminate name_obstack.
15522
15523 1999-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15524
15525 * check-init.c (check_bool2_init, done_alternative): Add static
15526 prototypes.
15527
15528 * class.c (add_interface_do, maybe_layout_super_class): Likewise.
15529 (add_method, build_utf8_ref, build_class_ref,
15530 append_gpp_mangled_type, layout_class_method): Constify a char*.
15531
15532 * decl.c (push_promoted_type, make_binding_level): Add static
15533 prototypes.
15534 (push_promoted_type, pushdecl): Constify a char*.
15535
15536 * except.c (find_handler_in_range, link_handler,
15537 check_start_handlers): Add static prototypes.
15538
15539 * expr.c (process_jvm_instruction): Constify a char*.
15540
15541 * gjavah.c (main): Constify a char*.
15542
15543 * java-tree.h (verify_jvm_instructions, process_jvm_instruction):
15544 Constify a char*.
15545
15546 * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
15547 static prototypes.
15548 (add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
15549 munge, print_ents): Constify a char*.
15550
15551 * jcf-dump.c (disassemble_method): Constify a char*.
15552 (print_constant_pool, print_exception_table): Add static prototypes.
15553 (print_constant, print_exception_table, main, disassemble_method):
15554 Constify a char*.
15555
15556 * jcf-io.c (find_classfile, find_class): Likewise.
15557
15558 * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
15559 (set_source_filename, predefined_filename_p): Add static prototypes.
15560 (set_source_filename, get_constant, get_class_constant,
15561 find_in_current_zip): Constify a char*.
15562
15563 * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
15564 static prototypes.
15565 (add_entry, add_path, jcf_path_classpath_arg,
15566 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15567
15568 * jcf-reader.c (get_attribute, jcf_parse_preamble,
15569 jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
15570 jcf_parse_one_method, jcf_parse_methods,
15571 jcf_parse_final_attributes): Add static prototypes.
15572 (get_attribute): Constify a char*.
15573
15574 * jcf.h (find_class, find_classfile, jcf_dependency_set_target,
15575 jcf_dependency_add_target, jcf_path_classpath_arg,
15576 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15577
15578 * jv-scan.c (main): Constify a char*.
15579 (gcc_obstack_init): Add prototype arguments.
15580
15581 * jvgenmain.c (gcc_obstack_init): Likewise.
15582 (main): Constify a char*.
15583
15584 * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
15585 static prototypes.
15586 (put_decl_string, lang_print_error): Constify a char*.
15587 (lang_init): Remove redundant extern prototype.
15588
15589 * mangle.c (emit_unicode_mangled_name): Constify a char*.
15590
15591 * typeck.c (convert_ieee_real_to_integer, parse_signature_type):
15592 Add static prototypes.
15593 (get_type_from_signature): Constify a char*.
15594
15595 * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
15596 Add static prototypes.
15597 (start_pc_cmp): Prefer PTR over GENERIC_PTR.
15598 (verify_jvm_instructions): Constify a char*.
15599
15600 * xref.c (xref_flag_value): Likewise.
15601
15602 * xref.h (xref_flag_value): Likewise.
15603
15604 * zextract.c (makeword, makelong): Add static prototypes.
15605 (makeword, makelong): Constify a uch*.
15606
15607 1999-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15608
15609 * lang.c (java_dummy_print): Constify a char*.
15610 (lang_print_error): Likewise.
15611 (lang_init): Remove redundant prototype for `print_error_function'.
15612 (lang_init_source): Likewise.
15613 (lang_identify): Constify a char*.
15614
15615 1999-08-09 Tom Tromey <tromey@cygnus.com>
15616
15617 * javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
15618 (WORDS_TO_LONG): Likewise.
15619 (WORDS_TO_DOUBLE): Likewise.
15620
15621 1999-08-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15622
15623 * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).
15624
15625 * expr.c (java_stack_pop, java_array_data_offset,
15626 build_java_throw_out_of_bounds_exception, case_identity,
15627 build_java_check_indexed_type): Add static prototypes.
15628 (linenumber_table, expand_invoke, expand_java_field_op,
15629 build_primtype_type_ref, expand_byte_code): Constify a char*.
15630
15631 * java-tree.h (build_primtype_type_ref, linenumber_table):
15632 Constify a char*.
15633 (java_lang_expand_expr): Add prototype.
15634
15635 * lang.c: Include rtl.h and expr.h. Remove extern prototype for
15636 `java_lang_expand_expr'.
15637
15638 * lex.c (java_lex_error): Constify a char*.
15639 (java_get_unicode, java_read_char, java_allocate_new_line,
15640 java_unget_unicode, java_sneak_unicode): Prototype.
15641
15642 * parse-scan.y (current_class, package_name, method_declarator,
15643 report_class_declaration, yyerror): Constify a char*.
15644
15645 * parse.h (java_report_errors): Prototype.
15646 (yyerror): Constify a char*.
15647
15648 * parse.y (classitf_redefinition_error, check_modifiers,
15649 parse_jdk1_1_error, lookup_package_type,
15650 lookup_package_type_and_set_next, get_printable_method_name,
15651 purify_type_name): Constify a char*.
15652 (build_super_invocation, maybe_generate_finit,
15653 verify_constructor_super, parser_add_interface,
15654 add_superinterfaces, jdep_resolve_class, note_possible_classname,
15655 java_complete_expand_methods, java_expand_finals,
15656 cut_identifier_in_qualified, java_stabilize_reference,
15657 do_unary_numeric_promotion, operator_string, do_merge_string_cste,
15658 merge_string_cste): Prototype.
15659 (single_type_import_declaration, yyerror,
15660 variable_redefinition_error, build_array_from_name,
15661 build_unresolved_array_type, check_class_interface_creation,
15662 resolve_class, complete_class_report_errors,
15663 note_possible_classname, read_import_dir,
15664 find_in_imports_on_demand, resolve_package, fix_constructors,
15665 check_deprecation, lookup_method_invoke,
15666 maybe_build_primttype_type_ref, array_constructor_check_entry):
15667 Constify a char*.
15668 (java_complete_expand_methods, java_expand_finals): Make static.
15669 (convert_narrow): Remove static prototype.
15670
15671 1999-08-03 J"orn Rennecke <amylaar@cygnus.co.uk>
15672
15673 * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.
15674
15675 1999-08-02 Richard Henderson <rth@cygnus.com>
15676
15677 * decl.c: Include defaults.h instead of expr.h.
15678 * parse.y: Likewise.
15679
15680 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
15681
15682 * java/decl.c (start_java_method): Change all uses of
15683 PROMOTE_PROTOTYPES, so that it tests it as a C expression.
15684 Ensure expr.h is included.
15685 * java/expr.c (pop_arguments): Ditto.
15686 * java/parse.y (expand_start_java_method): Ditto.
15687
15688 1999-08-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15689
15690 * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
15691
15692 1999-07-31 Bernd Schmidt <bernds@cygnus.co.uk>
15693
15694 * decl.c: Include "function.h".
15695 * except.c: Likewise.
15696 * parse.y: Likewise.
15697 * Makefile.in: Update dependencies.
15698
15699 1999-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15700
15701 * expr.c (build_java_soft_divmod): Provide a default case in switch.
15702 (java_lang_expand_expr): Mark parameters `target', `tmode' and
15703 `modifier' with ATTRIBUTE_UNUSED.
15704
15705 * gjavah.c (process_file): Add braces around ambiguous `else'.
15706
15707 * jcf-dump.c (print_access_flags, localvar_free): Change return
15708 type to void.
15709
15710 * parse.y (java_complete_expand_method): Initialize variable
15711 `exception_copy'.
15712 (resolve_qualified_expression_name): Likewise for `field_decl'.
15713 (patch_method_invocation): Likewise for `class_to_search'.
15714 (qualify_ambiguous_name): Likewise for `name' and `ptr_type'.
15715 (patch_assignment): Likewise for `lhs_type'.
15716
15717 * verify.c (verify_jvm_instructions): Remove unused variable
15718 `caller'.
15719
15720 1999-07-25 Richard Henderson <rth@cygnus.com>
15721
15722 * decl.c (va_list_type_node): New.
15723
15724 1999-07-25 Anthony Green <green@cygnus.com>
15725
15726 * gjavah.c (print_stub): New function.
15727 (METHOD_IS_NATIVE): New macro.
15728 (print_mangled_classname): Make static.
15729 (HANDLE_END_FIELD): Don't emit fields during stub generation.
15730 (process_file): Perform stub generation.
15731 (HANDLE_METHOD): Don't emit class decls during stub
15732 generation.
15733 (HANDLE_END_METHOD): Take into account stub generation.
15734 (print_method_info): Handle stub generation.
15735 (print_stub): New function.
15736 (print_cxx_classname): Make signature consistant with others.
15737 (help): Describe -stubs option.
15738 (main): Create stub file.
15739 (version): Use version.c.
15740 (print_full_cxx_name): New function.
15741 (print_c_decl): Use print_full_cxx_name.
15742
15743 1999-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
15744
15745 * check-init.c (check_init): Handle MAX_EXPR.
15746
15747 1999-07-15 Andrew Haley <aph@cygnus.com>
15748
15749 * lang.c (flag_use_divide_subroutine): New variable.
15750 * typeck.c: (convert_ieee_real_to_integer): Bounds check
15751 fp-to-integer conversion.
15752 (convert): Call convert_ieee_real_to_integer when flag_fast_math
15753 is not set.
15754
15755 * expr.c (build_java_soft_divmod): New function.
15756 (build_java_binop): Call build_java_soft_divmod if
15757 flag_use_divide_subroutine is set.
15758 * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15759 soft_lrem_node: new builtin functions.
15760 (init_decl_processing) Initialize the new builtins.
15761 * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15762 soft_lrem_node: new builtin functions.
15763 (build_java_soft_divmod): New function.
15764 * parse.y: Call build_java_soft_divmod if
15765 flag_use_divide_subroutine is set.
15766 * parse.c: Rebuilt.
15767
15768 * jvspec.c (lang_specific_driver): Always allow an extra arg (for
15769 a --specs= arg) even if not linking.
15770 * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
15771 -fuse-divide-subroutine
15772
15773 1999-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
15774
15775 * parse.y (resolve_and_layout): Check methods only once.
15776 (resolve_qualified_expression_name): Verify thrown exceptions
15777 compatibility.
15778 (check_thrown_exceptions): Reject exceptions thrown in
15779 initializer. Error message tuned.
15780
15781 1999-07-14 Andrew Haley <aph@cygnus.com>
15782
15783 * expr.c (expand_expr): Do not return the last statement in a
15784 block as the block's value.
15785
15786 1999-07-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
15787
15788 * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
15789 CALL_EXPR, to avoid order of evaluation changes.
15790
15791 1999-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
15792
15793 * parse.y (qualify_ambiguous_name): Do not use
15794 IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
15795
15796 1999-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15797
15798 * check-init.c (check_init): Handle MAX_EXPR.
15799 * expr.c (force_evaluation_order): Force method call arguments to
15800 be evaluated in left-to-right order.
15801 * parse.y (qualify_ambiguous_name): Loop again to qualify
15802 NEW_ARRAY_EXPR properly.
15803
15804 1999-06-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
15805
15806 * parse.y (patch_invoke): Resolve unresolved invoked method
15807 returned type.
15808 (qualify_ambiguous_name): STRING_CST to qualify expression for
15809 type name resolution.
15810
15811 1999-06-24 Andrew Haley <aph@cygnus.com>
15812
15813 * class.c (finish_class): Whenever a deferred method is
15814 output, rescan the list of methods to see if a new candidate for
15815 output can be found.
15816
15817 1999-06-28 Tom Tromey <tromey@cygnus.com>
15818
15819 * jvspec.c (lang_specific_driver): Recognize --help.
15820
15821 1999-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
15822
15823 * parse.y (resolve_package): Fixed bogus return statement.
15824 (patch_method_invocation): Resolve method invocation beginning with
15825 a package name qualifier.
15826
15827 1999-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15828
15829 * Make-lang.in (java.stage1): Depend on stage1-start.
15830 (java.stage2): Likewise for stage2-start.
15831 (java.stage3): Likewise for stage3-start.
15832 (java.stage4): Likewise for stage4-start.
15833
15834 1999-06-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15835
15836 * parse.y (java_complete_lhs): When doing cross referencing, don't
15837 try to keep file location on a WFL expanded as a CALL_EXPR.
15838
15839 1999-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
15840
15841 * parse.y (finish_method_declaration): Insert a RETURN_EXPR when
15842 compiling to class file a void method with an empty method body.
15843 As a side effect, the bytecode backend will generate the
15844 appropriate `return' instruction.
15845
15846 1999-06-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
15847
15848 * parse.y (lookup_package_type_and_set_next): New function prototype.
15849 (resolve_package): Search current and imported packages.
15850 (lookup_package_type_and_set_next): New function.
15851
15852 1999-06-22 Andrew Haley <aph@cygnus.com>
15853
15854 * verify.c (verify_jvm_instructions): Check for pending blocks
15855 before invalid PC test and opcode switch, not after.
15856
15857 1999-06-21 Andrew Haley <aph@cygnus.com>
15858
15859 * except.c (find_handler_in_range): The upper limit for exception
15860 ranges is exclusive, not inclusive: (start <= pc < end).
15861 (link_handler): find child pointer which points to outer by
15862 searching sibling list: previous code incorrectly assumed that
15863 outer->outer->first_child must point to outer.
15864 * verify.c (verify_jvm_instructions): FIXME added to code for
15865 `athrow'.
15866 (verify_jvm_instructions): Do not assume that the last block
15867 processed in a subroutine is a block which ends with a `ret'
15868 instruction. With some control flows it is possible that the last
15869 block ends with an `athrow'.
15870
15871 1999-06-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15872
15873 * parse.y (qualify_ambiguous_name): Reorganized the post
15874 evaluation of non WFL leading expression nodes.
15875
15876 1999-06-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
15877
15878 * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
15879 CONVERT_EXPR.
15880
15881 1999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
15882
15883 * parse.y (qualify_ambiguous_name): Handle qualified expression
15884 beginning with a STRING_CST.
15885
15886 1999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
15887
15888 * parse.y (register_fields): Set DECL_INITIAL on both
15889 pre-initialized static and public fields.
15890 (resolve_field_access): Static field access expressions to always
15891 use pointer types.
15892 (qualify_ambiguous_name): Work out buried CALL_EXPR for proper
15893 qualification. CONVERT_EXPR to be resolved as an expression name.
15894 (java_complete_lhs): Identify and access qualified final
15895 initialized field in switch statement case expression.
15896 (fold_constant_for_init): Pre-initialized field decl constant to
15897 be folded.
15898
15899 1999-06-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
15900
15901 * parse.y (note_possible_classname): Mark returned node with
15902 QUALIFIED_P only if the original class name contained a '/'.
15903
15904 1999-06-05 Anthony Green <green@cygnus.com>
15905
15906 * Make-lang.in (gcjh): More parallel build fixes.
15907
15908 1999-06-03 Mike Stump <mrs@wrs.com>
15909
15910 * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds.
15911
15912 1999-06-02 Anthony Green <green@cygnus.com>
15913
15914 * except.c (link_handler): Chain exception handlers in order.
15915
15916 1999-06-02 Anthony Green <green@cygnus.com>
15917
15918 * expr.c (expand_byte_code): Fill unreachable bytecode regions
15919 with nops and process as usual in order to always set correct EH
15920 ranges. Emit detailed warnings about unreachable bytecodes.
15921
15922 1999-06-02 Anthony Green <green@cygnus.com>
15923
15924 * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as
15925 constant.
15926
15927 1999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
15928
15929 * parse.y (lookup_field_wrapper): Unified returned value to NULL
15930 or the searched field decl.
15931
15932 1999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
15933
15934 * parse.y (fold_constant_for_init): Convert numerical constant
15935 values to the type of the assigned field.
15936
15937 1999-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
15938
15939 * expr.c (lookup_field): Relaxed the test on class loading error
15940 detection.
15941 * parse.y (fold_constant_for_init): Enabeled old code.
15942
15943 1999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
15944
15945 * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
15946 decide the validity of the cast of a java.lang.Cloneable reference
15947 to an array.
15948 (patch_conditional_expr): Fixed first argument passed to
15949 binary_numeric_promotion.
15950
15951 1999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
15952
15953 * parse.y (qualify_ambiguous_name): Take into account that a
15954 CONVERT_EXPR might specify a type as a WFL.
15955
15956 1999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
15957
15958 * parse.y (patch_assignment): Save the rhs before using it as an
15959 argument to _Jv_CheckArrayStore.
15960
15961 1999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
15962
15963 * lex.c (java_parse_doc_section): Fixed `tag' buffer size.
15964
15965 1999-05-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15966
15967 * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
15968 floating point literal only when the exponent indicator has been
15969 parsed.
15970
15971 1999-05-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
15972
15973 * parse.y (formal_parameter:): Construct argument tree list
15974 element even if a yet unsupported final parameter was encountered.
15975
15976 1999-05-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
15977
15978 * parse.y (finish_method_declaration): Issue errors for native or
15979 abstract methods declared with a method body, as well as for non
15980 native or non abstract methods with no method body.
15981
15982 1999-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15983
15984 * class.c (build_utf8_ref): Initialize variable `field'.
15985
15986 * decl.c (init_decl_processing): Initialize variable `field'.
15987
15988 * expr.c (build_known_method_ref): Mark parameters `method_type',
15989 `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
15990 (process_jvm_instruction): Likewise for parameter `length'.
15991
15992 * jvspec.c (lang_specific_driver): Mark variables `saw_math',
15993 `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
15994 ATTRIBUTE_UNUSED.
15995
15996 * parse.y (maybe_generate_clinit): Remove unused variable
15997 `has_non_primitive_fields'.
15998 (find_in_imports_on_demand): Initialize variables `node_to_use'
15999 and `cl'.
16000 (patch_binop): Likewise for variable `prom_type'.
16001 (patch_unaryop): Likewise for variable `prom_type'.
16002
16003 * verify.c (verify_jvm_instructions): Likewise for variable `last'.
16004
16005 * xref.c (xref_table): Add missing initializer.
16006
16007 1999-05-14 Tom Tromey <tromey@cygnus.com>
16008
16009 * java-except.h (struct eh_range): Removed unused `next' member.
16010 * verify.c (verify_jvm_instructions): Call check_nested_ranges
16011 after adding all exception handlers. Sort exception ranges in
16012 order of start PC.
16013 (struct pc_index): New structure.
16014 (start_pc_cmp): New function.
16015 * except.c (add_handler): Return `void'. Don't call link_handler;
16016 instead construct an ordinary linked list and do range
16017 coalescing.
16018 (check_nested_ranges): New function.
16019 (link_handler): Changed interface to allow merging of eh_ranges.
16020 Split overlapping ranges. Return `void'.
16021
16022 1999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16023
16024 * parse.y (constructor_block_end:): New rule, tagged <node>.
16025 (constructor_body:): Use `constructor_block_end' instead of
16026 `block_end'.
16027
16028 1999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16029
16030 * parse.y (statement_nsi:): Pop `for' statement block.
16031 (java_complete_lhs): Labeled blocks containing no statement are
16032 marked as completing normally.
16033
16034 1999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
16035
16036 * xref.c (xref_set_current_fp): New function, defined.
16037 * xref.h (xref_set_current_fp): New function, prototyped.
16038
16039 1999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
16040
16041 * check-init.c (check_init): Take into account that
16042 LABELED_BLOCK_STMT can be empty.
16043
16044 1999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
16045
16046 * parse.y (java_check_regular_methods): Warning check on not
16047 overriding methods with default access in other packages does not
16048 apply to `<clinit>'.
16049 (java_complete_lhs): If block body is an empty_stmt_node, replace
16050 it by NULL_TREE. This prevents gcc from generating an irrelevant
16051 warning.
16052
16053 1999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
16054
16055 * check-init.c (check_init): Removed code accepting to see things
16056 falling through default:, when doing xrefs.
16057 * java-tree.h (do_not_fold): New global variable, declared.
16058 * parse.y (do_not_fold): New global variable, defined.
16059 (java_complete_expand_method): Set `do_not_fold' to the value of
16060 `flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
16061 and reinstall them after them have been purged; do not check for
16062 initializations; do not issue missing return errors.
16063 (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
16064 when doing xrefs.
16065 (patch_binop): Skip the fold part when doing xrefs.
16066 (build_string_concatenation): Skip the concatenation part when
16067 doing xrefs.
16068 (patch_synchronized_statement): Do not generate a try-finally when
16069 doing xrefs.
16070 (patch_throw_statement): When doing xrefs, do not call BUILD_THROW
16071 and keep the location where the throw was seen.
16072 * typeck.c (convert): When `do_not_fold' is set, do not attempt
16073 any treatment on the converted node an simply return a NOP_EXPR of
16074 the targeted type.
16075 * xref.c (xref_get_data): New function, defined.
16076 * xref.h (xref_get_data): New function, declared.
16077 (XREF_GET_DATA): Use xref_get_data.
16078
16079 1999-05-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16080
16081 * gjavah.c (print_include): Cast the result of `strlen' to int
16082 when comparing against a signed value.
16083 (add_namelet): Likewise.
16084
16085 1999-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16086
16087 * expr.c (expand_invoke): Mark parameter `nargs' with
16088 ATTRIBUTE_UNUSED.
16089 (PRE_LOOKUP_SWITCH): Likewise for variable `match'.
16090
16091 * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with
16092 ATTRIBUTE_UNUSED.
16093
16094 * jcf-reader.c (get_attribute): Cast a value to long
16095 when comparing against a signed expression. Likewise.
16096
16097 * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or
16098 HOST_BITS_PER_CHAR.
16099
16100 1999-05-11 Andrew Haley <aph@cygnus.com>
16101
16102 * parse.y (source_end_java_method): If the current method contains
16103 any exception handlers, force asynchronous_exceptions: this is
16104 necessary because signal handlers in libjava may throw exceptions.
16105 * decl.c (end_java_method): Ditto.
16106
16107 1999-05-11 Tom Tromey <tromey@cygnus.com>
16108
16109 * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x
16110 flags.
16111 * jvspec.c (THREAD_NAME): Removed.
16112 (GC_NAME): Likewise.
16113 (MATHLIB): Likewise.
16114 (WITHLIBC): Likewise.
16115 (GCLIB): Likewise.
16116 (THREADLIB): Likewise.
16117 (MATH_LIBRARY): Likewise.
16118 (lang_specific_driver): Don't add `-l' options to command line.
16119 Instead, add a single --specs option. Recognize `-L' options and
16120 use them to search for spec file.
16121 (find_spec_file): New function.
16122 (SPEC_FILE): New define.
16123
16124 1999-05-11 Dave Brolley <brolley@cygnus.com>
16125
16126 * lang-options.h: -MD, -MMD, -M and -MM not needed here for
16127 cpplib-enabled build.
16128
16129 1999-05-05 Per Bothner <bothner@cygnus.com>
16130
16131 * class.c (make_field_value): DECL_INITIAL may be a string literal;
16132 temporarily zero it while calling rest_of_decl_compilation.
16133
16134 * java-tree.h (string_ptr_type_node): Add declaration.
16135 * decl.c: Define and initialize string_ptr_type_node.
16136 * parse.y (patch_string_cst): Use string_ptr_type_node.
16137
16138 * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P): Removed.
16139 * parse.y (for_statement): Now unconditionally exit_block.
16140 (finish_labeled_statement): No longer exit_block if for-loop.
16141 (patch_loop_statement): Check harder if the loop is already labeled.
16142
16143 * parse.y (patch_initialized_static_field): Removed function.
16144 (maybe_generate_clinit): Removed special handling for interfaces.
16145 (java_complete_expand_methods): Do a preliminary java_complete_tree
16146 on <clinit> to determine if it can be removed.
16147 (java_complete_expand_method): Remove special handling for <clinit>.
16148 (java_complete_lhs): For BLOCK and EXPR_WITH_FILE_LOCATION
16149 optimize if we get back empty_stmt_node.
16150 For MODIFY_EXPR, re-do checking of static initializers.
16151 (fold_constant_for_init): Don't return immediate if VAR_DECL.
16152 For VAR_DECL, pass correct context.
16153
16154 * verify.c (verify_jvm_instructions): Better error messages.
16155
16156 1999-05-03 Tom Tromey <tromey@cygnus.com>
16157
16158 * parse-scan.y (interface_declaration): Call
16159 report_class_declaration for interfaces.
16160
16161 1999-04-30 20:54 -0400 Zack Weinberg <zack@rabi.columbia.edu>
16162
16163 * Makefile.in: Remove -v from bison command lines.
16164
16165 1999-04-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
16166
16167 * check-init.c (check_init): Exclude a case of error when doing
16168 xrefs.
16169 * class.c (layout_class_method): Don't generate the error message
16170 twice when compiling from source.
16171 * lang-options.h: Added `-Wredundant-modifers' and
16172 `-Wunusupported-jdk11' flags and help text.
16173 * lang.c (lang_decode_option): Added support for
16174 `-Wunsupported-jdk11' and `-Wredundant-modifiers'.
16175 flag_static_local_jdk11 and flag_redundant set accordingly.
16176 * lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
16177 * parse.h (EXPR_WFL_ADD_COL): New macro.
16178 (DECL_END_SOURCE_LINE): Likewise.
16179 (DECL_INHERITED_SOURCE_LINE): Likewise.
16180 * parse.y (static_ref_err): New function, prototyped.
16181 (CCB_TK): Now tagged <operator>.
16182 (class_body:): Remember the location of the closing '}' of a class
16183 definition when doing xrefs.
16184 (block:): Likewise.
16185 (block_end:): Likewise.
16186 (create_class): Remember the location of the inherited class
16187 identifier when doing xrefs.
16188 (register_fields): Added test on first operand of `init' before
16189 testing it TREE_CODE.
16190 (method_header): Store the location of the class identifier in the
16191 class decl when doing xrefs.
16192 (finish_method_declaration): Don't combine first/last method line
16193 when doing xref.
16194 (java_check_regular_methods): Warning check on not overriding
16195 methods with default access on other packages move before check on
16196 static methods. Initialization of `aflags' also moved up.
16197 (resolve_expression_name): Call static_ref_err to report the error.
16198 (static_ref_err): New function, implemented.
16199 (resolve_field_access): Returned simplified static field access
16200 when doing xrefs.
16201 (resolve_qualified_expression_name): Check for illegal use of
16202 static fields in a non static context. Call static_ref_err to
16203 report error in various places.
16204 (java_complete_tree): Do not fold initialized static fields when
16205 doing xrefs.
16206 (java_complete_lhs): Likewise.
16207
16208 1999-04-29 Anthony Green <green@cygnus.com>
16209
16210 * expr.c (generate_name): Use ASM_GENERATE_INTERNAL_LABEL to
16211 create internal labels.
16212 (lookup_label): Ditto.
16213
16214 1999-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
16215
16216 * class.c (layout_class_method): Generate <clinit>'s rtl for
16217 interfaces.
16218 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
16219 for interfaces' <clinit>.
16220 * expr.c (lookup_field): Search for fields in interfaces.
16221 (expand_invoke): Fixed indentation.
16222 (expand_java_field_op): Likewise. Use IS_CLINIT.
16223 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed.
16224 (IS_CLINIT): New macro.
16225 * parse.y (type_declaration:): Call maybe_generate_clinit after an
16226 interface was parsed.
16227 (maybe_generate_clinit): Don't generate if the current class is an
16228 interface with only fields of primitive types.
16229 (reset_method_name): Use IS_CLINIT.
16230 (java_complete_expand_method): Expand <clinit> when it exists for
16231 interfaces. Use IS_CLINIT.
16232 (resolve_expression_name): Use DECL_CONTEXT instead of
16233 current_class to build static field references.
16234 (java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on
16235 ARRAY_REF when doing xreferencing.
16236 (check_final_assignment): Fixed typo in leading comment. Use
16237 IS_CLINIT.
16238 (patch_array_ref): Don't fully expand array references when
16239 xreferencing.
16240 (patch_return): Use IS_CLINIT.
16241 (patch_throw_statement): Likewise.
16242
16243 1999-04-22 Tom Tromey <tromey@cygnus.com>
16244
16245 * Make-lang.in (JAVA_SRCS): Added check-init.c.
16246
16247 1999-04-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
16248
16249 * decl.c (predef_filenames, predef_filenames_size): New globals
16250 (init_decl_processing): predef_filenames and predef_filenames_size
16251 initialized.
16252 * java-tree.h (predef_filenames, predef_filenames_size): Declared
16253 extern.
16254 * jcf-parse.c (predefined_filename_p): New function.
16255 (yyparse): Check that files on the command line are specified only
16256 once and issue a warning otherwise.
16257 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro.
16258 * parse.y (source_end_java_method): Nullify NOP method bodies, to
16259 avoid a gcc warning with -W -Wall turned on.
16260 (java_expand_classes): Abort if errors were encountered.
16261 (java_complete_lhs): If the cross reference flag is set, wrap
16262 field DECL node around a WFL when resolving expression name.
16263
16264 1999-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
16265
16266 * lang.c (lang_decode_option): Fixed returned value when parsing
16267 `-fxref=...' and `-Wall'.
16268 * parse.y (source_end_java_method): Do not generate code when
16269 flag_emit_xref is set.
16270 (resolve_expression_name): Do not build static field access when
16271 flag_emit_xref is set.
16272 (resolve_field_access): No special treatment on `length' when
16273 flag_emit_xref is set. Do not build qualified static field access
16274 when flag_emit_xref is set.
16275 (patch_invoke): Keep the method DECL as operand 0 of the CALL_EXPR
16276 when flag_emit_xref is set.
16277 (patch_assignment): Do not generate array store runtime check when
16278 flag_emit_xref is set.
16279 * xref.c (xref_flag_value): Fixed function declaration
16280 indentation.
16281 (xset_set_data): New function.
16282 * xref.h (xref_set_data): Added prototype for new function.
16283 (typedef struct xref_flag_table): New field data.
16284 (XREF_GET_DATA): New macro.
16285
16286 1999-04-19 Tom Tromey <tromey@cygnus.com>
16287
16288 * xref.h (enum): Removed trailing comma.
16289
16290 * parse.y (resolve_qualified_expression_name): Added missing
16291 `break'.
16292
16293 1999-04-15 Anthony Green <green@cygnus.com>
16294
16295 * gjavah.c: New prototypes for java_float_finite and
16296 java_double_finite.
16297
16298 1999-04-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
16299
16300 * parse.y (patch_unaryop): Fixed ++/-- operator check on array
16301 references.
16302
16303 1999-04-06 Jeffrey A Law (law@cygnus.com)
16304
16305 * Makefile.in (TREE_H): Add tree-check.h.
16306 (RTL_H): Add genrtl.h.
16307
16308 1999-04-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
16309
16310 * parse.y (patch_assignment): Added ArrayStoreException runtime
16311 check.
16312
16313 1999-04-06 Per Bothner <bothner@cygnus.com>
16314
16315 * expr.c (pop_type_0): New function.
16316 (pop_type): Use pop_type_0.
16317 * java-tree.h (pop_type_0): New declaration.
16318 * verify.c (verify_jvm_instructions): Check return instructions.
16319
16320 * parse.y (patch_binop): Don't fold if non-constant and emiting
16321 class files.
16322
16323 1999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16324
16325 * Makefile.in (gjavah.o): Depend on $(JAVA_TREE_H).
16326
16327 * gjavah.c: Include math.h earlier. Include tree.h/java-tree.h.
16328 (main_jcf): Don't define.
16329 (process_file): Don't set `main_jcf'.
16330
16331 * java-tree.h (main_jcf): Don't declare.
16332
16333 * jcf-parse.c (main_jcf): Add static definition.
16334
16335 * lang.c (main_jcf): Don't define.
16336
16337 1999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16338
16339 * class.c (add_method_1): Cast the argument of `bzero' to PTR.
16340
16341 * decl.c (copy_lang_decl): Likewise for `bcopy'.
16342
16343 * jcf-depend.c: Include "config.h", not <config.h>.
16344
16345 * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
16346 `bcopy' to PTR.
16347
16348 * jcf-path.c: Include "config.h", not <config.h>.
16349
16350 * lex.c: Don't include various system header files.
16351 (java_init_lex): Cast the argument of `bzero' to PTR
16352
16353 * parse-scan.y (java_push_parser_context): Likewise.
16354
16355 * parse.y (java_push_parser_context): Likewise.
16356 (patch_bc_statement): Match format specifier to variable argument.
16357
16358 * xref.c: Don't include <stdio.h>.
16359
16360 1999-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
16361
16362 * parse.y (struct parser_ctxt *ctxp): Now global.
16363 (declare_local_variables): Use WFL compound value for the
16364 declaration source line value, when doing cross-referencing.
16365
16366 1999-03-31 Tom Tromey <tromey@cygnus.com>
16367
16368 * gjavah.c (print_field_info): Allow constants of other types.
16369 (print_include): Generate include when new name is proper prefix
16370 of already printed name.
16371 (add_namelet): Likewise.
16372 (cxx_keyword_subst): New function.
16373 (print_method_info): Use it.
16374 (print_field_name): New function.
16375 (get_field_name): New function.
16376 (print_field_info): Use get_field_name and print_field_name.
16377
16378 1999-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16379
16380 * Makefile.in (keyword.h): Generate using gperf language 'C', not
16381 'KR-C', so gperf uses the `const' keyword on strings.
16382
16383 * keyword.gperf (java_keyword): Const-ify a char*.
16384
16385 1999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
16386
16387 * parse.y (patch_bc_statement): Fixed identation and a bogus
16388 `printf' format.
16389
16390 1999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
16391
16392 * parse.y (patch_assignment): Allow static variables in other
16393 classes to be assigned.
16394
16395 1999-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16396
16397 * class.c (maybe_add_interface): Remove unused variable
16398 `interface_binfo'.
16399 (make_class_data): Use = for assignment, not ==. Likewise.
16400 (emit_register_classes): Remove unused variable `decl'.
16401
16402 * lex.c: Fix comment so as not to contain an embedded `/*'.
16403
16404 * verify.c (verify_jvm_instructions): Remove unused variable
16405 `self_type'.
16406
16407 1999-03-27 Per Bothner <bothner@cygnus.com>
16408
16409 * parse.y (complete_loop_body): Rename to finish_loop_body.
16410 (complete_labeled_statement): Rename to finish_labeled_statement.
16411 (complete_for_loop): Rename to finish_for_loop.
16412 (complete_method_declaration): Rename to finish_method_declaration.
16413
16414 * java-tree.h (continue_identifier_node): New global node.
16415 * decl.c: Define and initialize continue_identifier_node.
16416 * parse.y (generate_labeled_block): Remove - no longer needed.
16417 (build_loop_body): Use continue_identifier_node for continue block.
16418 (finish_labeled_statement): Also do pop_labeled_block actions.
16419 (java_complete_lhs): POP_LOOP even if error.
16420 (build_labeled_block): Special handling for continue_identifier_node.
16421 (patch_loop_statement): Re-organize.
16422 (patch_bc_statement): Re-write.
16423
16424 1999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
16425
16426 * parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count
16427 using a WFL compound value.
16428 * parse.y (xref.h): Include.
16429 (maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the
16430 WFL compound value.
16431 (register_fields): Set WFL compound value to lineno if doing
16432 xrefs.
16433 (java_complete_expand_method): Call expand_xref if flag_emit_xref
16434 is set.
16435 * xref.c (system.h, jcf.h, parse.h, obstack.h): Include.
16436 * xref.h (expand_xref): Prototype renamed from xref_generate.
16437
16438 1999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
16439
16440 * parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK.
16441 (GET_CURRENT_BLOCK): New macro.
16442 * parse.y (current_static_block): New global variable.
16443 (method_body:): Define action.
16444 (complete_method_declaration): Set current_function_decl to NULL
16445 when work on the current method is done.
16446 (declare_local_variables): Use GET_CURRENT_BLOCK.
16447 (java_method_add_stmt): Likewise.
16448 (java_complete_expand_method): Disable the use of `this' when
16449 expanding <clinit>.
16450 (enter_a_block): If no current method exist, use
16451 current_static_block to link static initializer blocks.
16452 (exit_block): Rewritten to use current_static_block when no current
16453 method decl exists.
16454 (lookup_name_in_blocks): Use GET_CURRENT_BLOCK.
16455 (patch_return): Forbid the use of `return' in static initializers.
16456 (patch_throw_statement): Fixed indentation. Issue specific error
16457 for uncaught thrown checked exception in static initializer
16458 blocks. Removed FIXME.
16459
16460 1999-03-25 Zack Weinberg <zack@rabi.columbia.edu>
16461
16462 * java/Make-lang.in: Remove all references to gcj.o/gcj.c.
16463 Link gcj from gcc.o.
16464
16465 1999-03-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
16466
16467 * parse.y (find_applicable_accessible_methods_list): When dealing
16468 with interface: ensure that a given interface or java.lang.Object
16469 are searched only once.
16470
16471 1999-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16472
16473 * gjavah.c (print_c_decl): Remove unused argument `flags'.
16474
16475 * jcf-dump.c (print_access_flags): Add braces around if-else.
16476
16477 * jvspec.c (lang_specific_driver): Wrap variable `len' in macro
16478 COMBINE_INPUTS.
16479
16480 * lex.c (build_wfl_node): Add static prototype.
16481
16482 * lex.h (build_wfl_node): Remove static prototype.
16483
16484 * parse.y: Include lex.c early enough to declare everything needed.
16485 Ensure calls to `build_wfl_node' pass the proper arguments.
16486 (create_class): Remove unused variable `super_decl'.
16487 (get_printable_method_name): Initialize variable `name'.
16488
16489 1999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16490
16491 * Changelog: Fixed 1999-03-22 typos.
16492 * lang.c (lang_decode_option): Fixed typo in error string in the
16493 XARG section.
16494
16495 1999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16496
16497 * Makefile.in (JAVA_OBJS): Added entry xref.o.
16498 (xref.o): New rule.
16499 * java-tree.h (flag_emit_xref): Declared extern.
16500 * lang.c (xref.h): Included.
16501 (flag_emit_xref): New global variable.
16502 (lang_decode_option): Added support for -fxref.
16503 * xref.c: Created.
16504 * xref.h: Likewise.
16505
16506 1999-03-21 Manfred Hollstein <manfred@s-direktnet.de>
16507
16508 * Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be
16509 linked with.
16510
16511 1999-03-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16512
16513 * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
16514 $(srcdir)/../system.h and $(JAVA_TREE_H).
16515 (jcf-io.o): Depend on $(JAVA_TREE_H).
16516 (mangle.o): Likewise.
16517
16518 * check-init.c (check_cond_init): Add static prototype.
16519
16520 * class.c (build_java_method_type, hashUtf8String,
16521 make_field_value, get_dispatch_vector, get_dispatch_table,
16522 append_gpp_mangled_type, mangle_static_field): Likewise.
16523 (strLengthUtf8): Hide unused definition.
16524 (hashUtf8String): Const-ify.
16525 (make_field_value): Un-ANSI-fy.
16526
16527 * constants.c: Move inclusion of jcf.h above java-tree.h.
16528 (set_constant_entry, find_class_or_string_constant,
16529 find_name_and_type_constant, get_tag_node,
16530 build_constant_data_ref): Add static prototype.
16531
16532 * decl.c (push_jvm_slot, builtin_function,
16533 lookup_name_current_level): Likewise.
16534 (builtin_function): Const-ify.
16535
16536 * except.c (expand_start_java_handler, expand_end_java_handler):
16537 Add static prototype.
16538
16539 * expr.c (flush_quick_stack, push_value, pop_value,
16540 java_stack_swap, java_stack_dup, build_java_athrow,
16541 build_java_jsr, build_java_ret, expand_java_multianewarray,
16542 expand_java_arraystore, expand_java_arrayload,
16543 expand_java_array_length, build_java_monitor, expand_java_pushc,
16544 expand_java_return, expand_java_NEW, expand_java_INSTANCEOF,
16545 expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label,
16546 expand_compare, expand_test, expand_cond, expand_java_goto,
16547 expand_java_call, expand_java_ret, pop_arguments, expand_invoke,
16548 expand_java_field_op, java_push_constant_from_pool): Likewise.
16549
16550 (decode_newarray_type, expand_iinc): Un-ANSI-fy.
16551 (build_java_arraynull_check): Mark parameters `node' and `type'
16552 with ATTRIBUTE_UNUSED.
16553 (note_label): Likewise for parameter `current_pc'.
16554 (expand_java_call, expand_java_ret): Hide unused definition.
16555
16556 * java-tree.h (make_class, build_constants_constructor,
16557 java_set_exception_lang_code, pop_labeled_block, emit_handlers,
16558 init_outgoing_cpool, register_class, emit_register_classes,
16559 java_layout_seen_class_methods): Prototype.
16560 (unicode_mangling_length): Const-ify.
16561 (append_gpp_mangled_name, append_gpp_mangled_classtype,
16562 emit_unicode_mangled_name, format_int, format_uint,
16563 jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
16564 jcf_print_utf8_replace, open_class): Prototype.
16565
16566 * jcf-dump.c: Include "config.h", not <config.h>. Don't include
16567 <stdio.h>. Include tree.h/java-tree.h.
16568 (utf8_equal_string usage, process_class): Add static prototype.
16569 (open_class): Don't prototype this here.
16570 (utf8_equal_string): Match arguments to format specifiers.
16571 (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
16572 TABLE_SWITCH, disassemble_method): Likewise.
16573
16574 * jcf-io.c: Include tree.h/java-tree.h.
16575 (open_class, find_classfile, jcf_print_utf8,
16576 jcf_print_utf8_replace): Const-ify.
16577
16578 * jcf-parse.c (parse_zip_file_entries, process_zip_dir,
16579 parse_class_file): Add static prototype.
16580 (find_in_current_zip): Match definition to existing static
16581 prototype.
16582
16583 * jcf-write.c: Include jcf.h before tree.h/java-tree.h.
16584 (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label,
16585 finish_jcf_block, define_jcf_label, get_jcf_label_here,
16586 put_linenumber, localvar_alloc, localvar_free, get_access_flags,
16587 write_chunks, adjust_typed_op, generate_bytecode_conditional,
16588 generate_bytecode_return, perform_relocations, init_jcf_state,
16589 init_jcf_method, release_jcf_state, generate_classfile):
16590 Add static prototype.
16591 (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED.
16592 (make_class_file_name): Const-ify.
16593
16594 * jcf.h (find_classfile): Const-ify.
16595
16596 * jv-scan.c (reset_report): Remove prototype.
16597
16598 * jvgenmain.c: Include jcf.h/tree.h/java-tree.h.
16599 (error): Rewrite to allow varargs.
16600
16601 * lang.c (lang_f_options): Const-ify.
16602
16603 * lex.c (java_parse_escape_sequence): Add static prototype.
16604 (java_allocate_new_line): Match definition to existing static
16605 prototype.
16606
16607 * mangle.c Include tree.h/java-tree.h.
16608 (unicode_mangling_length, emit_unicode_mangled_name,
16609 append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
16610
16611 * parse.h (jdep_code): Remove trailing comma in enumeration.
16612 (java_get_line_col): Move prototype outside of !JC1_LITE test.
16613 (reset_report): Add prototype.
16614
16615 * verify.c (push_pending_label, merge_types): Add static
16616 prototypes.
16617
16618 * zipfile.h (opendir_in_zip, open_in_zip): Prototype.
16619
16620 1999-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
16621
16622 * parse.y (find_applicable_accessible_methods_list): Extend the
16623 search to superinterfaces when relevant.
16624 (search_applicable_methods_list): New function.
16625
16626 1999-03-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
16627
16628 * class.c (unmangle_classname): Implemented stricter testing
16629 before setting the QUALIFIED_P flag on an identifier.
16630
16631 1999-03-16 Per Bothner <bothner@cygnus.com>
16632
16633 * parse.y (java_complete_lhs): Call force_evaluation_order
16634 after patch_newarray.
16635 (patch_binop): Don't call fold if there are side effects.
16636
16637 1999-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
16638
16639 * parse.y (java_stabilize_reference): Use save_expr instead of
16640 building a SAVE_EXPR node.
16641 (java_complete_lhs): Patch the resulting string of the `+='
16642 operator (if necessary) and complete the RHS after having built
16643 the cast.
16644
16645 1999-03-15 Per Bothner <bothner@cygnus.com>
16646
16647 * class.c (make_class): Don't set CLASS_P here (because
16648 this function is also called by build_java_array_type).
16649 (push_class): Set CLASS_P here instead.
16650 * parse.h (TYPE_CLASS_P): Check for TYPE_ARRAY_P is redundant.
16651
16652 * jcf-dump.c (print_access_flags): Take extra parameter to indicate
16653 context. If the context is class, perfer "super" over "synchronized".
16654 * jcf-write.c (generate_classfile): Don't add ACC_SUPER if interface.
16655
16656 * parse.y (create_class): Don't call parser_check_super here;
16657 it is not robust. Always wait until later.
16658
16659 * parse.y (method_header): For interfaces, set ACC_ABSTRACT (to
16660 match what JDK 1.2 does), but don't set ACC_PUBLIC.
16661
16662 1999-03-13 Per Bothner <bothner@cygnus.com>
16663
16664 * lex.c (java_read_char): UNGET invalid non-initial utf8 character.
16665 * lex.h (UNGETC): Change misleading macro.
16666
16667 1999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
16668
16669 * parse.y (java_stabilize_reference): Return NODE when patching a
16670 COMPOUND_EXPR.
16671 (java_complete_lhs): Put parenthesis around truth values.
16672
16673 1999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
16674
16675 * class.c (layout_class_method): Don't make rtl for interface
16676 methods.
16677 * parse.h (GET_TYPE_NAME): New macro.
16678 * parse.y (if_then_statement:): Fixed indentation.
16679 (if_then_else_statement:): Likewise.
16680 (for_statement:): Fixed spacing.
16681 (try_statement:): Fixed indentation.
16682 (create_interface): Don't force interfaces to be abstract.
16683 (method_header): Abstract methods are OK in interfaces.
16684 (declare_local_variables): Fixed typo in comment.
16685 (java_complete_expand_method): Fixed indentation.
16686 (resolve_qualified_expression_name): Use GET_TYPE_NAME to report
16687 non accessible fields.
16688 (java_stabilize_reference): New function.
16689 (java_complete_lhs): Fixed indentation. Use
16690 java_stabilize_reference in compound assignment. Insert the
16691 cast. If not processing `+' fix string constants before processing
16692 binop.
16693
16694 1999-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16695
16696 * constants.c (find_class_or_string_constant): Cast variable `j'
16697 to a `jword' when comparing against one.
16698
16699 * expr.c (java_lang_expand_expr): Remove unused variables
16700 `has_finally_p' and `op0'.
16701
16702 * gjavah.c (print_field_info): Cast a value to jint when comparing
16703 against one. Likewise for a jlong.
16704 (add_namelet): Likewise cast a `sizeof' to an int when comparing
16705 against a signed quantity.
16706
16707 * jcf-dump.c (print_signature_type): Remove unused variable `digit'.
16708 (print_signature): Don't needlessly dereference variable `str'
16709
16710 * jcf-reader.c (get_attribute): Mark variables `max_stack' and
16711 `max_locals' with ATTRIBUTE_UNUSED.
16712 (jcf_parse_class): Likewise for variable `index'.
16713
16714 * parse.h (reverse_jdep_list): Remove static prototype.
16715
16716 * parse.y (build_jump_to_finally): Remove prototype and definition.
16717 (reverse_jdep_list): Add static prototype.
16718
16719 * typeck.c (convert_ieee_real_to_integer): Remove unused variables
16720 `assignment' and `expr_decl'.
16721
16722 * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'.
16723
16724 1999-03-12 Andrew Haley <aph@cygnus.com>
16725
16726 * jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes;
16727 we'll need a directory separator and a null character.
16728
16729 1999-03-10 Per Bothner <bothner@cygnus.com>
16730
16731 * jcf-write.c (generate_bytecode_insns): Handle __builtin_fmod, for %.
16732
16733 Tue Mar 9 11:52:08 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
16734
16735 * parse.y (method_header): Don't set ACC_ABSTRACT flags on
16736 interfaces.
16737
16738 1999-03-05 Per Bothner <bothner@cygnus.com>
16739
16740 * lex.c (java_parse_end_comment): Take extra parameter (next char).
16741
16742 * class.c (build_utf8_ref): Fix possible name class/ambiguity.
16743
16744 * class.c (layout_class_method): A static method in a base class
16745 is never overridden, so treat it like it doesn't exist.
16746 However, do complain about private non-static method overriding
16747 public static method.
16748
16749 * parse.y: Don't set unused INITIALIZED_P flag.
16750 * java-tree.h (INITIALIZED_P): Removed no-longer needed flag.
16751
16752 * parse.y (find_expr_with_wfl): Optimize tail-calls.
16753 (build_array_from_name): Re-order &index[string] to &string[index].
16754
16755 * parse.y (java_complete_lhs): Don't call patch_assignment if rhs is
16756 error_mark (it might catch more errors, but it is more likely to lose).
16757
16758 1999-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16759
16760 * Makefile.in (jcf-parse.o): Depend on $(PARSE_H).
16761 (parse-scan.o): Depend on toplev.h.
16762
16763 * class.c (make_method_value): Add prototype. Make it static.
16764 Remove unused second argument, caller changed.
16765
16766 * expr.c (java_lang_expand_expr): Remove unused variable
16767 `return_label'.
16768
16769 * java-tree.h: Don't prototype find_in_current_zip.
16770 Add prototypes for verify_constant_pool, start_java_method,
16771 end_java_method, give_name_to_locals, expand_byte_code,
16772 open_in_zip, set_constant_value, find_constant1, find_constant2,
16773 find_utf8_constant, find_string_constant, find_class_constant,
16774 find_fieldref_index, find_methodref_index, write_constant_pool,
16775 count_constant_pool_bytes and encode_newarray_type.
16776
16777 * jcf-dump.c: Remove unused variable `LONG_temp'.
16778
16779 * jcf-parse.c: Include parse.h.
16780 (jcf_parse_source): Remove unused parameter, all callers changed.
16781 (jcf_figure_file_type): Add static prototype.
16782 (find_in_current_zip): Likewise. Also remove unused parameter,
16783 all callers changed.
16784 (read_class): Initialize variable `saved_pos'.
16785
16786 * jcf-reader.c (jcf_parse_preamble): Mark variables
16787 `minor_version' and `major_version' with ATTRIBUTE_UNUSED.
16788
16789 * lex.c (java_is_eol): Wrap prototype and definition in !JC1_LITE.
16790 (java_init_lex): Wrap variable `java_lang_imported' in !JC1_LITE.
16791 (java_parse_doc_section): Initialize variable `seen_star'.
16792 (java_lex): Wrap variable `number_beginning' in !JC1_LITE.
16793 (java_lex_error): Mark parameters `msg' and `forward' with
16794 ATTRIBUTE_UNUSED.
16795 (java_get_line_col): Mark parameters `filename' and `line' with
16796 ATTRIBUTE_UNUSED.
16797
16798 * parse-scan.y: Include toplev.h.
16799 (yyerror): Mark parameter `msg' with ATTRIBUTE_UNUSED.
16800
16801 * parse.h: use `struct JCF', not plain `JCF'.
16802 (java_parser_context_save_global, java_expand_classes
16803 java_parser_context_restore_global, java_parse): Add prototypes.
16804
16805 * typeck.c (convert_ieee_real_to_integer): Remove unused variable
16806 `node'.
16807
16808 1999-02-24 Per Bothner <bothner@deneb.cygnus.com>
16809
16810 * check-init.c (check_init): COPYN takes word count, not bit count.
16811
16812 1999-02-26 Per Bothner <bothner@cygnus.com>
16813
16814 * typeck.c (convert_ieee_real_to_integer): Use save_expr instead of
16815 explicit build_decl. (Avoids crash in reload when optimizing.)
16816
16817 1999-02-25 Per Bothner <bothner@cygnus.com>
16818
16819 * decl.c (complete_start_java_method): Handle synchronized method
16820 even when compiling from bytecode.
16821
16822 1999-02-26 Tom Tromey <tromey@cygnus.com>
16823
16824 * gjavah.c (add_class_decl): Only generate `#include' if outer
16825 class is not the name of the class we are processing. Correctly
16826 append `.h' in #include.
16827 (process_file): Clean up newlines around generated `#include's.
16828 (decode_signature_piece): Correctly handle inner classes.
16829 (struct include): New structure.
16830 (all_includes): New global.
16831 (print_include): New function.
16832 (add_class_decl): Use it.
16833 (process_file): Likewise.
16834 (add_class_decl): Generate include for java-array.h if array
16835 seen.
16836 (process_file): Don't generate java-array.h include.
16837
16838 * gjavah.c (add_namelet): Check for standard package names here.
16839 (add_class_decl): Don't check for standard package names here.
16840
16841 1999-02-25 Tom Tromey <tromey@cygnus.com>
16842
16843 * parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
16844 When reading a zip file, only use strncmp if both strings are
16845 bigger than the buffer length. Initialize `k' when looping
16846 through zip file.
16847
16848 1999-02-24 Tom Tromey <tromey@cygnus.com>
16849
16850 * gjavah.c (struct namelet): New structure.
16851 (add_namelet): New function.
16852 (print_namelet): New function.
16853 (print_class_decls): Use add_namelet and print_namelet to generate
16854 namespaces and not classes.
16855 (method_printed): New global.
16856 (HANDLE_END_METHOD): Examine method_printed.
16857 (print_method_info): Set method_printed when required. Print
16858 error if function to be ignored is marked virtual. Handle $finit$
16859 method.
16860 (METHOD_IS_FINAL): New macro.
16861 (print_field_info): Use it.
16862 (HANDLE_METHOD): Clear method_printed.
16863 (method_pass): New global.
16864 (HANDLE_END_FIELD): Call add_class_decl on the first pass.
16865 (process_file): Do two passes over both fields and methods.
16866 (HANDLE_METHOD): Examine method_pass.
16867 (root): New global.
16868 (add_class_decl): New function.
16869 (print_class_decls): Don't scan over entire constant pool.
16870
16871 1999-02-23 Tom Tromey <tromey@cygnus.com>
16872
16873 * jvspec.c (lang_specific_driver): Recognize -fsyntax-only and
16874 disable linking in that case.
16875
16876 1999-02-20 Tom Tromey <tromey@cygnus.com>
16877
16878 * jcf.h (UTF8_GET): Mask first byte of 3-byte encoding with 0x0f,
16879 not 0x1f.
16880
16881 1999-02-21 Per Bothner <bothner@cygnus.com>
16882
16883 * decl.c (build_result_decl), java-tree.h: New method.
16884 (complete_start_java_method): Handle synchronized methods.
16885 Don't build DECL_RESULT here. (Ordering dependency problem.)
16886 (start_java_method): Call build_result_decl here instead ...
16887 * parse.y (java_complete_expand_method): ... and here.
16888 (expand_start_java_method): Don't call complete_start_java_method here.
16889 (java_complete_expand_method): Call it here instead.
16890 * parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Moved to ..
16891 * java-tree.h: ... here.
16892
16893 * expr.c (force_evaluation_order): Fix typo, don't handle ARRAY_REF.
16894 * parse.y (java_complete_lhs): Don't call force_evaluation_order
16895 for ARRAY_REF - it doesn't work when array bounds are checked.
16896 (patch_array_ref): Handle it here instead.
16897
16898 * jcf-write.c (generate_classfile): Emit "Exceptions" attribute.
16899
16900 1999-02-19 Per Bothner <bothner@cygnus.com>
16901
16902 Force left-to-right evaluation of binary operations etc.
16903 * expr.c (force_evaluation_order), java-tree.h: New function.
16904 * parse.y (java_complete_lhs): Pass binary operations, procedure
16905 calls, and ARRAY_REFs to force_evaluation_order.
16906 (various): Set TREE_SIDE_EFFECTS more carefully.
16907
16908 Tolerate random (non-UTF8) encoding in comments without complaining.
16909 * lex.c (java_read_char): Return 0xFFFE if bad UTF8 encoding.
16910 (java_is_eol): Handle '\r' followed by '\n' instead of vice versa.
16911
16912 * parse.y (resolve_qualified_expression_name): Handle error_mark.
16913 (java_complete_node case EXPR_WITH_FILE_LOCATION): Likewise.
16914
16915 * parse.y (java_complete_lhs): Ignore an empty statement in a
16916 COMPOUND_EXPR. Don't complain about empty statement after return.
16917
16918 1999-02-19 Per Bothner <bothner@cygnus.com>
16919
16920 * parse.y (obtain_incomplete_type): Don't wrap unknown types
16921 in TREE_LIST - just chain the POINTER_TYPEs together.
16922 (resolve_class): If type already resolved, return decl.
16923 After resolving, update TREE_TYPE(class_type), and name (if array).
16924 * parse.h (do_resolve_class), parse.y: Make non-static.
16925 * class.c (maybe_layout_super_class): Take this_class argument.
16926 Do do_resolve_class if necessary.
16927 (layout_class, layout_class_methods): Adjust calls appropriately.
16928 * parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
16929 JDEP_RESOLVED_P): Redefined for new TREE_LIST-less convention.
16930 * typeck.c (build_java_array_type): Don't call layout_class.
16931
16932 1999-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16933
16934 * parse.y (check_pkg_class_access): Allow private class access
16935 within the same package.
16936 (strip_out_static_field_access_decl): New function.
16937 (patch_unaryop): Call strip_out_static_field_access_decl on ++/--
16938 operator argument before testing its nature.
16939
16940 1999-02-03 Per Bothner <bothner@cygnus.com>
16941
16942 * java-tree.def (FINALLY_EXPR): Removed. (Now uses TRY_FINALLY_EXPR.)
16943 (TRY_EXPR): Simplify - it no longer has a finally clause.
16944 * check-init.c (check_init): Handle TRY_FINALLY_EXPR.
16945 Simpler handling of TRY_EXPR, which no longer has a finally clause.
16946 * expr.c (java_lang_expand_expr): Likewise.
16947 * java-tree.h (CATCH_EXPR_GET_EXPR): Removed - no longer needed.
16948 * parse.h (java_get_catch_block), parse.y: Removed - no longer needed.
16949 * parse.y (java_complete_lhs): Add support for TRY_FIANLLY_EXPR.
16950 (build_try_statement): Remove finally parameter and handling.
16951 (build_try_finally_statement): New function.
16952 (patch_try_statement): No longer need to support finally clause.
16953 (try_statement): Update grammar action rules.
16954 * jcf-write.c (generate_bytecode_insns): Handle TRY_FINALLY_EXPR.
16955 Simpler handling of TRY_EXPR, which no longer has a finally clause.
16956
16957 1998-11-26 Andrew Haley <aph@viagra.cygnus.co.uk>
16958
16959 * jcf-parse.c (get_constant): Add braces around computation of 'd'
16960 when REAL_ARITHMETIC is not defined. [Oct 26 fix got overwritten -PB]
16961
16962 1999-02-17 Andrew Haley <aph@cygnus.com>
16963
16964 * class.c (build_utf8_ref): Back out broken patch which was
16965 intended to to output signatures using '.' as a separator.
16966
16967 * class.c (make_class_data): Output signatures using '.' as a
16968 separator, rather than '/'.
16969 (mangled_classname): Likewise.
16970 (make_field_value): Likewise.
16971 (make_method_value): Likewise.
16972 * constants.c (alloc_class_constant): Likewise.
16973 * expr.c (build_invokeinterface): Likewise.
16974
16975 1999-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
16976
16977 * parse.y (valid_builtin_assignconv_identity_widening_p): Got rid
16978 of an ancient workaround.
16979
16980 1999-02-10 Jeffrey A Law (law@cygnus.com)
16981
16982 * jvspec.c (xmalloc): Kill the prototype. It does not belong
16983 here anymore.
16984
16985 1999-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
16986
16987 * lex.c (yylex): Encode \0 as UTF8.
16988
16989 1999-02-10 Tom Tromey <tromey@cygnus.com>
16990
16991 * jvspec.c (lang_specific_driver): Use libgcj, not libjava.
16992 * Makefile.in (jcf-path.o): Define LIBGCJ_ZIP_FILE.
16993 (libgcj_zip): Renamed.
16994 * jcf-path.c (add_entry): Use LIBGCJ_ZIP_FILE, not
16995 LIBJAVA_ZIP_FILE.
16996 (jcf_path_init): Use LIBGCJ_ZIP_FILE.
16997
16998 * jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
16999 (GC_NAME): Renamed -lgc to -lgcjgc.
17000
17001 1999-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
17002
17003 * lex.c (java_lang_cloneable): Initialize.
17004 * parse.y (java_lang_cloneable): New static variable.
17005 (qualify_ambiguous_name): Take CONVERT_EXPR into account when
17006 doing one more qualification round.
17007 (valid_ref_assignconv_cast_p): Reject null source or
17008 destination. Allow an array to be cast into java.lang.Cloneable.
17009 (patch_cast): Swapped two first arguments to first call to
17010 valid_ref_assignconv_cast_p.
17011
17012 1999-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
17013
17014 * parse.h: DECL_P renamed JDECL_P.
17015 * parse.y: DECL_P replaced by JDECL_P.
17016 (build_array_from_name): Always use pointer's type.
17017 (patch_bc_statement): Extra code to search continue target in a
17018 for loop. Fixed comments. Continue target is current loop when
17019 unlabeled.
17020
17021 1999-02-05 Andrew Haley <aph@cygnus.com>
17022
17023 * class.c (make_class_data): The superclass of an interface should
17024 be null, not class Object.
17025
17026 * lex.c (java_lex): Sign extend hex literals.
17027
17028 1999-02-04 Andrew Haley <aph@cygnus.com>
17029
17030 * class.c (build_utf8_ref): Output signatures using '.' as a
17031 separator, rather than '/'.
17032 (make_class_data): Likewise.
17033
17034 1999-02-03 Marc Espie <Marc.Espie@liafa.jussieu.fr>
17035
17036 * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
17037 mkstemp.o. Get them from libiberty now.
17038
17039 1999-02-02 Jeffrey A Law (law@cygnus.com)
17040
17041 * jcf-io.c: Do not include sys/stat.h or sys/wait.h
17042
17043 1999-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17044
17045 * jvspec.c (xmalloc): Fix the prototype to match the one obtained
17046 from libiberty.h
17047
17048 1999-02-02 Per Bothner <bothner@cygnus.com>
17049
17050 Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'.
17051 * jcf-write.c (generate_bytecode_return): New function.
17052 (generate_bytecode_insns): Use it, for RETURN_EXPR.
17053
17054 * jcf-write.c (generate_bytecode_insns): For REAL_CST that is 0 or 1,
17055 generate special [fd]const_[01] instructions.
17056
17057 * jcf-parse.c (yyparse): Don't emit_register_classes if -fsyntax-only.
17058
17059 * verify.c (verify_jvm_instructions): Do INVALIDATE_PC after
17060 handling OPCODE_lookupswitch or OPCODE_tableswitch.
17061
17062 1999-02-01 Per Bothner <bothner@cygnus.com>
17063
17064 * parse.y (patch_method_invocation): Handle calling static methods,
17065 even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS).
17066
17067 * parse.y (java_complete_lhs): Don't complain about unreachable
17068 exit condition in a do-while statement.
17069
17070 1999-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
17071
17072 * lex.c (java_read_char): Fixed utf8 decoding.
17073 (java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
17074 range.
17075 * parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
17076 comments. Local variable `all_primitive' is gone. Broadened
17077 acceptance of `0' to floating point targets. `long' can now be
17078 widened to `double' or `float'.
17079 (valid_method_invocation_conversion_p): Added leading
17080 comment. Fixed tabulation.
17081 (build_string_concatenation): Optimize out left or right empty
17082 string constants.
17083
17084 1999-01-28 Per Bothner <bothner@cygnus.com>
17085
17086 * jcf-write.c (localvar_alloc): Only emit entry for
17087 LocalVariableTable if debug_info_level > DINFO_LEVEL_TERSE.
17088 (generate_bytecode_insns): Only call put_linenumber if
17089 debug_info_level > DINFO_LEVEL_NONE.
17090 * jvspec.c (lang_specific_driver): If no -O* or -g* option
17091 is specified, add -g1 (for compatibility wih javac).
17092
17093 1999-01-28 Hans-Peter Nilsson <hp@axis.se>
17094
17095 * java/Makefile.in: Add missing dependencies for jcf-dump.o,
17096 gjavah.o, check-init.o, jv-scan.o
17097
17098 1999-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17099
17100 * Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
17101
17102 * gjavah.c: Include config.h and system.h.
17103
17104 * javaop.h (inline): Don't define, its handled by system.h.
17105 (WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these
17106 from `inline' to `static inline'.
17107
17108 * jcf.h (inline): Don't define, its handled by system.h.
17109
17110 * lex.c (inline): Likewise.
17111
17112 1999-01-31 Zack Weinberg <zack@rabi.columbia.edu>
17113
17114 * lang-specs.h: Map -Qn to -fno-ident.
17115
17116 1999-01-29 Richard Henderson <rth@cygnus.com>
17117
17118 * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo.
17119
17120 1999-01-29 Tom Tromey <tromey@cygnus.com>
17121
17122 * parse.h (BUILD_APPEND): If ARG is a non-String object reference,
17123 then cast it to Object before calling `append' method.
17124
17125 1999-01-28 Per Bothner <bothner@cygnus.com>
17126
17127 * check-init.c (check_bool2_init, check_bool_init, check_init):
17128 Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
17129 * jcf-write.c (generate_bytecode_insns): Likewise.
17130
17131 1999-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
17132
17133 * jcf-parse.c (jcf_parse): Don't parse the same class file twice.
17134 * parse.y (patch_cast): Allow a boolean to be cast into a
17135 boolean.
17136
17137 1999-01-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
17138
17139 * parse.y: (class_declaration:): Fixed indentation.
17140 (class_member_declaration:): Extra `;' after field declaration now
17141 accepted.
17142 (interface_declaration:): Removed debug messages in error reports.
17143 (patch_binop): Nodes created and returned inherit the orignal
17144 node's COMPOUND_ASSIGN_P flag value.
17145 (patch_cast): Fix cast from char to floating point.
17146
17147 1999-01-25 Andrew Haley <aph@cygnus.com>
17148
17149 * except.c, java-except.h (expand_resume_after_catch): new
17150 function.
17151 * expr.c (java_lang_expand_expr): call expand_resume_after_catch
17152 to branch back to main flow of control after a catch block.
17153
17154 1999-01-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17155
17156 * Makefile.in (parse.o): Depend on $(CONFIG_H) and
17157 $(srcdir)/../system.h.
17158 (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
17159 (jcf-parse.o): Depend on $(srcdir)/../toplev.h.
17160 (jcf-write.o): Likewise.
17161 (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17162 (mangle.o): Depend on $(srcdir)/../toplev.h.
17163 (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17164 (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17165
17166 * class.c: Include output.h and parse.h.
17167 (mangled_classname): Add the `const' keyword to a char*.
17168 (find_named_method): Hide unused function definition.
17169 (build_utf8_ref): Change type of variable `c' to unsigned char.
17170 Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
17171 (build_class_ref): Add the `const' keyword to a char*.
17172 (layout_class_method): Remove unused variable `buf'.
17173
17174 * decl.c (find_local_variable): Remove unused variable `rtl'.
17175 (pushdecl): Likewise for variables `different_binding_level' and
17176 `oldglobal'.
17177 (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
17178 (maybe_build_cleanup): Likewise for parameter `decl'.
17179
17180 * except.c (expand_start_java_handler): Mark parameter `range'
17181 with ATTRIBUTE_UNUSED.
17182
17183 * expr.c: Include except.h.
17184 (pop_type): Remove unused variable `i'.
17185 (pop_value): Likewise for variables `n_words' and `i'.
17186 (expand_java_arrayload): Likewise for variable `convert'.
17187 (java_lang_expand_expr): Likewise for variables `op0', `type',
17188 `mode', `unsignedp', `node' and `elements'.
17189 (expand_byte_code): Likewise for variables `prev_eh_ranges' and
17190 `eh_ranges'.
17191 (process_jvm_instruction): Add a `const' qualifier to a char*.
17192
17193 * gjavah.c (output_directory): Add the `const' keyword to a char*.
17194 (temp_directory): Likewise.
17195 (print_c_decl): Likewise.
17196 (print_method_info): Likewise.
17197 (decode_signature_piece): Likewise.
17198 (print_mangled_classname): Likewise.
17199
17200 * java-except.h: Provide prototypes for maybe_start_try,
17201 maybe_end_try and add_handler.
17202
17203 * java-tree.h (mangled_classname): Add the `const' keyword to a char*.
17204 (parse_error_context): Likewise. Also add ATTRIBUTE_PRINTF_2.
17205 (pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
17206 init_expr_processing, push_super_field, init_class_processing,
17207 can_widen_reference_to, class_depth, verify_jvm_instructions,
17208 maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
17209 set_local_type, merge_type_state, push_type, load_type_state,
17210 add_interface, find_in_current_zip, append_gpp_mangled_classtype,
17211 emit_unicode_mangled_name): Add prototypes.
17212
17213 * jcf-dump.c (print_constant): Add the `const' keyword to a char*.
17214 (print_signature_type): Use ISDIGIT, not isdigit.
17215 (print_signature): Remove unused variable `j'.
17216
17217 * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
17218 int when comparing against one.
17219
17220 * jcf-parse.c: Include toplev.h.
17221
17222 * jcf-write.c: Likewise. Don't include <string.h> or <sys/stat.h>.
17223 (localvar_free): Remove unused variable `i'.
17224 (generate_bytecode_conditional): Likewise for variable `kind'.
17225
17226 * jv-scan.c: Include config.h and system.h. Remove redundant
17227 OS header and gansidecl.h includes.
17228 (warning): Add the `const' keyword to a char*. Also add
17229 ATTRIBUTE_PRINTF_1 to the prototype. Check ANSI_PROTOTYPES, not
17230 __STDC__, when determining whether to use ANSI-isms.
17231 (fatal): Likewise. Also add ATTRIBUTE_UNUSED.
17232 (xmalloc): Don't redundantly prototype here.
17233 (main): Remove unused parameter `envp'. Also fix the arguments
17234 passed to function `fatal' to match the format specifier.
17235
17236 * lang.c (java_tree_code_name): Add the `const' keyword to a char*.
17237
17238 * mangle.c: Include toplev.h.
17239 (emit_unicode_mangled_name): Declare parameter `len'.
17240
17241 * parse.y (parse_warning_context): Add the `const' keyword to a
17242 char*. Also add ATTRIBUTE_PRINTF_2 to the prototype. Check
17243 `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
17244 (issue_warning_error_from_context): Add the `const' keyword to
17245 a char*.
17246 (parse_error_context): Likewise. Also check `ANSI_PROTOTYPES'
17247 not `__STDC__' for whether to use ANSI-isms.
17248
17249 * typeck.c (incomplete_type_error): Mark parameters `value' and
17250 `type' with ATTRIBUTE_UNUSED.
17251 (parse_signature_type): Use ISDIGIT, not isdigit.
17252
17253 * verify.c (check_pending_block): Add the `const' keyword to a char*.
17254 (verify_jvm_instructions): Likewise. Remove unused variables
17255 `field_name' and `default_val'.
17256
17257 * zextract.c: Include config.h and system.h. Remove redundant
17258 OS header includes.
17259
17260 * zipfile.h: Prototype `read_zip_archive'.
17261
17262 1999-01-21 Andrew Haley <aph@cygnus.com>
17263
17264 * typeck.c (convert): Allow conversions to void type: some
17265 optimizations in gcc do this.
17266
17267 1999-01-21 Andrew Haley <aph@cygnus.com>
17268
17269 * typeck.c (convert_ieee_real_to_integer): New function.
17270 (convert): When not using fast-math and using hardware fp, convert
17271 an IEEE NaN to zero.
17272
17273 1999-01-18 Andrew Haley <aph@cygnus.com>
17274
17275 * parse.y (patch_binop): Do a type conversion from signed to
17276 unsigned and then back to signed when a ">>>" is found.
17277
17278 1999-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
17279
17280 * java-tree.h: (check_for_initialization): Added prototype.
17281 * lex.c (java_parse_doc_section): `\n' breaks the `*/' string.
17282 * parse.y (do_resolve_class): Removed unused locals.
17283 (read_import_dir): Likewise.
17284 (resolve_qualified_expression_name): Array creation
17285 expressions are valid primary expressions.
17286 (qualify_ambiguous_name): Likewise.
17287 (patch_synchronized_statement): Removed unused local.
17288
17289 1999-01-17 Jeffrey A Law (law@cygnus.com)
17290
17291 * Makefile.in (zextract.o): Add dependencies.
17292
17293 * Makefile.in: Do not put ^Ls at the start of a line.
17294
17295 1999-01-15 Per Bothner <bothner@cygnus.com>
17296
17297 * expr.c (process_jvm_instruction): Coerce to correct Throwable
17298 sub-type the result of the call that gets the exception value.
17299
17300 * parse.y (java_complete_expand_methods): If flags_syntax_only,
17301 don't call finish_class.
17302
17303 * parse.y (java_check_regular_methods): If METHOD_PRIVATE,
17304 clear found before continuing.
17305
17306 * verify.c (verify_jvm_instructions): On an array load, allow
17307 and handle top of stack to be TYPE_NULL.
17308
17309 * gjavah.c (generate_access): Translate Java package private or
17310 protected access to C++ public, but with a comment.
17311
17312 1999-01-13 Andrew Haley <aph@cygnus.com>
17313
17314 * expr.c (generate_name): Name prefix changed to avoid clashes
17315 with assembler temp labels.
17316
17317 * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
17318 MODIFY_EXPR. Without this, code for the assignment may not be
17319 generated at all and the synchronized statement will read an
17320 uninitialized variable.
17321
17322 1999-01-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
17323
17324 * class.c (maybe_layout_super_class): Fixed returned value.
17325 * lex.c: Added 1999 to the copyright.
17326 (java_init_lex): Initialize java_lang_imported.
17327 * lex.h: Added 1999 to the copyright.
17328 * parse.h: Added 1999 to the copyright.
17329 (REGISTER_IMPORT): Fixed typo in trailing macro.
17330 (CURRENT_OSB): New macro.
17331 (struct parser_ctxt): New fields osb_depth, osb_limit.
17332 * parse.y (java_lang_id): New global variable.
17333 (type_import_on_demand_declaration): Don't import java.lang.* twice.
17334 (array_creation_expression:): Use CURRENT_OSB.
17335 (dims:): Uses a stack to keep track of array dimensions.
17336 (cast_expression:): Use CURRENT_OSB.
17337 (find_expr_with_wfl): Return NULL if node found doesn't meet the
17338 conditions.
17339 (register_fields): Fixed typos in comment.
17340 (check_method_redefinition): Fixed comment indentation.
17341 (java_check_regular_methods): Set saved found wfl to NULL after
17342 having reinstalled it in the previously found DECL_NAME.
17343
17344 1999-01-10 Richard Henderson <rth@cygnus.com>
17345
17346 * gjavah.c (java_float_finite): Use a union to do type punning.
17347 (java_double_finite): Likewise.
17348
17349 1999-01-09 Per Bothner <bothner@cygnus.com>
17350
17351 * parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL
17352 on CONSTRUCTOR (since that trashes TREE_CST_RTL).
17353 (patch_new_array_init): Clear TREE_CONSTANT also if INDIRECT_REF.
17354 (register_fields): Set TREE_STATIC on NEW_ARRAY_INIT, not on
17355 CONSTRUCTOR (which causes expand_expr to call output_constant_def).
17356 * expr.c (java_lang_expand_expr): Check TREE_STATIC of NEW_ARRAY_INIT.
17357
17358 1999-01-08 Per Bothner <bothner@cygnus.com>
17359
17360 * check-init.c (check_init): If compiling to native, we don't
17361 see THROW_EXPR. Instead, look for a call to throw_node (_Jv_Throw).
17362
17363 1999-01-08 Tom Tromey <tromey@cygnus.com>
17364
17365 * parse-scan.y (variable_declarator_id): Set or increment
17366 bracket_count.
17367 (bracket_count): New global.
17368 (formal_parameter): Handle case where bracket pairs trail variable
17369 declarator id.
17370
17371 1999-01-07 Andrew Haley <aph@viagra.cygnus.co.uk>
17372
17373 * jcf-parse.c (yyparse): variable len changed from a char to an
17374 int to prevent overflow.
17375
17376 1999-01-06 Per Bothner <bothner@cygnus.com>
17377
17378 * java-tree.h: Declare read_class.
17379 * jcf-parse.c (read_class): New function.
17380 (load_class): Now just call read_class.
17381
17382 * java-tree.h (java_parse_abort_on_error): Only return if new errors.
17383 * jcf-parse.c (parse_source_file): Declare save_error_count,
17384 which is needed by java_parse_abort_on_error macro,
17385 * parse.y (java_layout_classes, java_expand_classes): Likewise.
17386
17387 * parse.y (register_fields): Set TREE_STATIC flag of NEW_ARRAY_INIT
17388 constructor, if initializing a static field.
17389 (patch_new_array_init): Set TREE_CONSTANT if it is.
17390 * expr.c (java_lang_expand_expr): For a static array constructor
17391 of primitive elements, allocate the array itself statically.
17392 Disabled until we can set the vtable field statically.
17393
17394 * check-init.c: New file. Checks for definite assignment.
17395 * Makefile.in (JAVA_OBJS): Add check-init.o.
17396 * parse.y (java_complete_expand_method): Call check_for_initialization.
17397 * parse.h (BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY): Moved to java-tree.h.
17398
17399 1999-01-06 Graham <grahams@rcp.co.uk>
17400
17401 * parse.y : include system.h instead of including
17402 standard headers directly with the exception of <dirent.h>.
17403
17404 1999-01-06 Per Bothner <bothner@cygnus.com>
17405
17406 * lex.h: Moved static function declarations to lex.c,
17407 to shut up some -Wall warnings.
17408 * lex.c: Static function declarations moved here.
17409 * jcf-dump.c: Small fixes to shut up -Wall warnings.
17410
17411 1999-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17412
17413 * Make-lang.in ($(GCJ).o): Depend on prefix.h.
17414
17415 1998-12-22 Per Bothner <bothner@cygnus.com>
17416
17417 * expr.c (process_jvm_instruction): Do load_type_state after JSR.
17418 * verify.c (verify_jvm_instructions): Fix off-by-one error.
17419
17420 * jcf-write.c (CHECK_PUT): Add (void) cast to avoid -Wall warnings.
17421 (localvar_alloc): Change return type to void,
17422 (emit_unop): Remove unused variable size.
17423
17424 * jcf-write.c (struct jcf_block): Add new union.
17425 (PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC): New macros.
17426 (call_cleanups): New functions.
17427 (struct jcf_partial): New fields num_finalizers and return_value_decl.
17428 (generate_bytecode_insns): Support CLEANUP_POINT_EXPR and
17429 WITH_CLEANUP_EXPR. Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
17430 * lang.c (lang_init): Call using_eh_for_cleanups.
17431 * parse.y (java_complete_lhs): For SYNCHRONIZED_EXPR, defer
17432 completing operands to patch_synchronized_statement.
17433 Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
17434 (patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
17435 WITH_CLEANUP_EXPR instead of TRY_EXPR.
17436
17437 1998-12-20 John F. Carr <jfc@mit.edu>
17438
17439 * Make-lang.in: Comment out control-Ls; they upset some makes.
17440
17441 1998-12-18 Tom Tromey <tromey@cygnus.com>
17442
17443 * parse.y (check_class_interface_creation): Use DIR_SEPARATOR
17444 consistently.
17445
17446 1998-12-17 Tom Tromey <tromey@cygnus.com>
17447
17448 * parse.y (DIR_SEPARATOR): New define.
17449 (check_class_interface_creation): Use it.
17450
17451 * parse-scan.y (report_main_declaration): Recognize
17452 `java.lang.String' in argument to main.
17453
17454 1998-12-16 Per Bothner <bothner@cygnus.com>
17455
17456 * parse.y (create_interface): Remove bogus test.
17457
17458 1998-12-16 Per Bothner <bothner@cygnus.com>
17459
17460 * jcf-parse.c (get_constant): Set TREE_TYPE for string constants.
17461 (HANDLE_CONSTANTVALUE): If flag_emit_class_files, call get_constant.
17462
17463 1998-12-16 Tom Tromey <tromey@cygnus.com>
17464
17465 * parse-scan.y (qualified_name): Use correct sprintf format.
17466
17467 1998-12-15 Tom Tromey <tromey@cygnus.com>
17468
17469 * gjavah.c (print_field_info): Changed how most negative number is
17470 printed.
17471
17472 1998-12-14 Per Bothner <bothner@cygnus.com>
17473
17474 * parse.y (fold_constant_for_init): New function.
17475 (resolve_expression_name): Don't replace static final
17476 constant-initialized fields by its value.
17477 (java_complete_lhs): New. Same as java_complete_tree, except does
17478 not replace static final constant-initialized fields by their values.
17479 (register_fields): If there is an initializer, set DECL_INITIAL and
17480 MODIFY_EXPR_FROM_INITIALIZATION_P.
17481 (java_complete_tree): For MODIFY_EXPR, use java_complete_lhs for lhs.
17482 Only call patch_initialized_static_field if
17483 MODIFY_EXPR_FROM_INITIALIZATION_P.
17484 (patch_initialized_static_field): If not valid constant, clear
17485 DECL_INITIAL.
17486
17487 * parse.y (lookup_field_wrapper): Fix thinko.
17488
17489 * parse.y (java_complete_tree): In EXPR_WITH_FILE_LOCATION,
17490 set and restore global lineno.
17491
17492 1998-12-14 Tom Tromey <tromey@cygnus.com>
17493
17494 * gjavah.c (print_field_info): If value to print is the smallest
17495 value of its size, then print as hex to avoid later warnings from
17496 C++ compiler.
17497
17498 1998-12-14 Tom Tromey <tromey@cygnus.com>
17499
17500 * gjavah.c (decompile_method): Decompile `return null'.
17501 (process_file): Generate `#pragma interface'.
17502 (method_declared): New global.
17503 (print_method_info): Set it.
17504 (HANDLE_CODE_ATTRIBUTE): Only print it method_declared set.
17505 (print_method_info): Handle abstract methods.
17506
17507 1998-12-13 Per Bothner <bothner@cygnus.com>
17508
17509 * parse.y (patch_method_invocation): If class_decl is null
17510 (e.g. an array type), use original type.
17511
17512 * parse.y (check_thrown_exceptions): Temporary hack to suppress
17513 errors about uncaught exception from clone (of array, specifically).
17514
17515 1998-12-13 Tom Tromey <tromey@cygnus.com>
17516
17517 * gjavah.c (decompile_method): Handle all types of `return'
17518 opcode. Decompile `return this' and `return'.
17519 (method_access): New global.
17520 (print_method_info): Set it.
17521 (decompile_method): Don't decompile a synchronized method.
17522
17523 1998-12-13 Tom Tromey <tromey@cygnus.com>
17524
17525 * jcf-reader.c (jcf_parse_one_method): Recognize
17526 HANDLE_END_METHOD.
17527 * gjavah.c (HANDLE_END_METHOD): New macro.
17528 (HANDLE_CODE_ATTRIBUTE): New macro.
17529 (decompile_method): New function.
17530 (print_method_info): Don't print `;\n' at end of function decl.
17531 Include java-opcodes.h.
17532 (decompiled): New global.
17533
17534 1998-12-12 Per Bothner <bothner@cygnus.com>
17535
17536 * class.c (build_class_ref): Handle PRIMTYPE.class if
17537 flag_emit_class_files.
17538 * expr.c (expand_java_field_op): Don't optimize java.lang.XXX.TYPE
17539 if flag_emit_class_files.
17540 * parse.y (java_complete_tree): Pre-liminary support for
17541 COMPONENT_REF - only to handle PRIMCLASS.TYPE.
17542
17543 * parse.y (patch_synchronized_statement): Don't call monitorexit
17544 unless block CAN_COMPLETE_NORMALLY. Propagate that flag properly.
17545
17546 * java-tree.h (DECL_LOCAL_STATIC_VALUE): Removed - no longer used.
17547
17548 * zipfile.h (opendir_in_zip): New declaration.
17549 * jcf-io.c (saw_java_source): Moved to jcf-parse.c.
17550 (opendir_in_zip): New function, using code from open_in_zip.
17551 (open_in_zip): Call opendir_in_zip.
17552 (find_class): Remove no-longer-used do_class_file parameter,
17553 but add source_ok parameter. Change logic so if we find a .java file,
17554 we don't look for .class in later classpath emtries.
17555 * jcf-parse.c (load_class): Pass saw_java_source to find_class.
17556 (jcf_figure_file_type): Only call open_in_zip if correct magic number.
17557 * gjavah.c: Update call to find_class.
17558 * jcf-dump.c: Likewise.
17559
17560 * jcf-write.c (put_linenumber): Handle duplicate line numbers.
17561 (generate_bytecode_insns): For EXPR_WITH_FILE_LOCATION, do
17562 nothing if body is empty_stmt_node.
17563 Various little fixes so SP gets correctly adjusted.
17564 For NEW_ARRAY_INIT, handle IGNORE_TARGET.
17565 For CALL_EXPR, test if static first.
17566 (generate_classfile): Ignore fields that are DECL_ARTIFICIAL,
17567 such as the ones we create for Object and Class.
17568 Set and restore current_function_decl.
17569 * parse.y: Check/set IS_AN_IMPORT_ON_DEMAND_P in read_import_dir.
17570 (note_possible_classname): New function.
17571 (read_import_entry): Removed. Merged with read_import_dir.
17572 (read_import_dir): Don't call find_class - that only gives us
17573 the first classpath entry having the needed package.
17574 Use the struct buffer data structure from buffer.h.
17575 (read_import_dir, find_in_imports_on_demand): The remembered
17576 class names now use '.' (not '/') as package separator.
17577
17578 * parse.y (java_complete_expand_methods): Call write_classfile
17579 here, and not in java_expand_classes (which only gets first class).
17580
17581 1998-12-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
17582
17583 * parse.y (<type_declaration>): Do maybe_generate_clinit last.
17584 (register_fields): If a static fields has an initializer, just
17585 chain it on ctxp->static_initialized, and handle later.
17586 (java_complete_expand_methods): Force <clinit> first.
17587 (resolve_expression_name, resolve_field_access): Just get DECL_INITIAL
17588 - it's already been completed.
17589 (patch_initialized_static_field): New function.
17590 (java_complete_field): Call it.
17591
17592 1998-12-12 Per Bothner <bothner@cygnus.com>
17593
17594 * expr.c (encode_newarray_type, build_new_array): New functions.
17595 * java-tree.h: Declare build_new_array.
17596 * jcf-write.c (patch_newarray): Use build_new_array.
17597
17598 * expr.c (java_lang_expand_exp): Support NEW_ARRAY_INIT.
17599 * jcf-write.c (generate_bytecode_insns): Support NEW_ARRAY_INIT.
17600
17601 * parse.y (patch_new_array_init): Re-organize.
17602 Now is passed the actual array (pointer) type of the value.
17603 Set the type of the CONSTRUCTOR to be an ARRAY_TYPE.
17604 (patch_array_constructor): Removed - merged into patch_new_array_init.
17605 (java_complete_tree): Update patch_new_array_init.
17606
17607 * jcf-write.c (find_constant_index): New function.
17608 (generate_bytecode_insns): Use find_constant_index.
17609 (generate_classfile): Use find_constant_index for ConstantValue.
17610
17611 1998-12-11 Tom Tromey <tromey@cygnus.com>
17612
17613 * expr.c (invoke_build_dtable): Renamed dtable -> vtable.
17614 * decl.c (init_decl_processing): Renamed dtable -> vtable.
17615 * class.c (make_class_data): Renamed dtable -> vtable, and
17616 dtable_method_count -> vtable_method_count.
17617
17618 1998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
17619
17620 * decl.c (long_zero_node, float_zero_node, double_zero_node): New
17621 global variables, initialized.
17622 * java-tree.h (long_zero_node, float_zero_node, double_zero_node):
17623 Declared new global variables.
17624 * lex.c (java_lex): Return long_zero_node, float_zero_node,
17625 double_zero_node, integer_zero_node upon direct matching.
17626 * parse.y (purify_type_name): Added function prototype.
17627 (duplicate_declaration_error_p): Consider new_type as potentially
17628 being a incomplete type. Use purify_type_name on type string.
17629 (method_header): saved_type: unused variable removed. Don't figure
17630 return type if method name is invalid.
17631 (java_complete_tree): Set CAN_COMPLETE_NORMALLY after `node' was
17632 processed by patch_unaryop.
17633 (patch_unaryop): Fixed typo in comment. Re-convert pre/post
17634 increment/decrement node into its original type after binary
17635 numeric promotion on its operands.
17636
17637 1998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
17638
17639 * parse.y (array_initializer:): Array init operand is NULL_TREE
17640 instead of a TREE_LIST of NULL_TREEs when parsing `{}'. `{,}' is
17641 now an error. Fixed indentation problems.
17642 (patch_string): Handle error_mark_node as an argument.
17643 (patch_new_array_init): Fixed indentation problems.
17644 (array_constructor_check_entry): Removed check on null wfl_value.
17645 Return an error if wfl_value's walk returns an error.
17646
17647 1998-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
17648
17649 * java-tree.def (NEW_ARRAY_INIT): New Java tree code.
17650 * lex.c (java_lex): Remember column position before advancing one
17651 token. Retain location information on OCB_TK.
17652 * lex.h (typedef struct java_lc): Added new field.
17653 * parse.h (GET_SKIP_TYPE): New macro.
17654 (QUAL_DECL_TYPE): Redefined using GET_SKIP_TYPE.
17655 * parse.y (build_new_array_init, patch_new_array_init,
17656 patch_array_constructor, maybe_build_array_element_wfl,
17657 array_constructor_check_entry): New function prototypes.
17658 (switch_block:): Tagged <node>.
17659 (OCB_TK): Tagged <operator>.
17660 (array_initializer:): Installed actions.
17661 (variable_initializer): Build location information on element if
17662 necessary.
17663 (switch_statement:): Fixed indentation typo.
17664 (switch_block:): Redefined default action.
17665 (java_complete_tree): Handle NEW_ARRAY_INIT in MODIFY_EXPR:.
17666 (patch_assignment): Removed duplicate code.
17667 (maybe_build_array_element_wfl, build_new_array_init,
17668 patch_new_array_init, patch_array_constructor,
17669 array_constructor_check_entry): New functions.
17670
17671 1998-12-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
17672
17673 * parse.y (array_initializer): Tagged <node>.
17674 (variable_initializer:): Use default rule.
17675 (array_initializer:): Defined actions.
17676 (variable_initializers:): Likewise.
17677 (resolve_qualified_expression_name): Use DECL_CONTEXT to build
17678 non-static field accesses.
17679 (patch_invoke): Fixed indentation typo.
17680 (java_complete_tree): Likewise.
17681 (build_labeled_block): Changed leading comment. Generate an error
17682 in case of duplicate loop labels.
17683 (patch_conditional_expr): Patch results of string concatenation
17684 operations.
17685
17686 1998-12-06 Per Bothner <bothner@cygnus.com>
17687
17688 * constants.c (find_methodref_index): When the class is an interface,
17689 generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
17690
17691 * decl.c (finit_identifier_node): Use "$finit$", rather than
17692 "<finit>" (which Sun's verifier rejects).
17693 * parse.y (maybe_generate_finit): Leave out meaningless final flag.
17694 (generate_field_initialization_code): Removed.
17695 (fix_constructors) Don't add call to $finit$ here (wrong order).
17696 (patch_method_invocation): Add $finit$ call here.
17697
17698 * java-tree.h (CALL_USING_SUPER): New macro.
17699 * parse.y (patch_invoke): Remove im local variable.
17700 (patch_method_invocation, patch_invoke): Don't pass super parameter.
17701 (patch_invoke): Use CALL_USING_SUPER instead of from_super parameter.
17702 (resolve_qualified_expression_name): Maybe set CALL_USING_SUPER.
17703
17704 * jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL.
17705
17706 * parse.y (java_complete_tree): Don't complain about unreachable
17707 statement if it is empty_stmt_node.
17708
17709 * jcf-write.c (find_constant_wide): New function.
17710 (push_long_const): Use find_constant_wide.
17711
17712 * jcf-write.c (generate_bytecode_insn): Fix bug in switch handling.
17713 (generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR.
17714 Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
17715 Emit invokeinterface when calling an interface method.
17716 Emit invokespecial also when calling super or private methods.
17717
17718 * jcf-write.c (generate_classfile): Emit ConstantValue attributes.
17719
17720 1998-12-06 Per Bothner <bothner@cygnus.com>
17721
17722 * jcf-dump.c (INVOKE): If invokeinterface, print number of args.
17723
17724 1998-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
17725
17726 * java-tree.h (java_layout_seen_class_methods): New function
17727 prototype.
17728 (LAYOUT_SEEN_CLASS_METHODS): Macro removed.
17729 * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods.
17730 * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro.
17731 * parse.y (method_declarator:): Defined action.
17732 (issue_warning_error_from_context): input_filename saved, set to
17733 the appropriate value and restored after java_error is called.
17734 (build_unresolved_array_type): Fixed comment.
17735 (register_fields): Use PROMOTE_RECORD_IF_COMPLETE.
17736 (method_header): Deal with return type the same way type are
17737 handled for fields and method's parameters and local variables
17738 types are handled.
17739 (check_method_redefinition): Removed extra CR.
17740 (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE.
17741 (java_layout_seen_class_methods): New function.
17742 (java_layout_classes): Call java_layout_seen_class_methods.
17743
17744 1998-12-03 Per Bothner <bothner@cygnus.com>
17745
17746 * parse,y (patch_synchronized_statement): Set CAN_COMPLETE_NORMALLY.
17747
17748 1998-12-03 Per Bothner <bothner@cygnus.com>
17749
17750 * jcf-dump.c (main): Fix error message.
17751 * jcf-path.c (add_entry): Style fix.
17752
17753 1998-12-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
17754
17755 * class.c (layout_class_method): Call build_java_argument_signature
17756 on constructors too.
17757 * parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE.
17758 (patch_method_invocation): Define a primary when resolving an
17759 expression name. Augmented comment on code checking illegal `this'
17760 usage. Loosened it test by accepting NEW_CLASS_EXPR.
17761
17762 1998-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
17763
17764 * class.c (layout_class_method): Don't report error on non-static
17765 overriding static if the method is private.
17766 * java-tree.h (finish_class): Prototype added.
17767 * lex.c (java_get_line_col): Handle col argument -2 value.
17768 * parse.h: All static method declarations moved to parse.y.
17769 * parse.y: Now contains all static method declarations previously
17770 found in parse.h.
17771 (find_expr_with_wfl, missing_return_error,
17772 unreachable_stmt_error): New functions.
17773 (java_get_real_method_name): Identify constructors bearing class
17774 names in source code compiled classes only.
17775 (java_complete_expand_methods): Call missing_return_error.
17776 (invocation_mode): Private methods invoked as static methods.
17777 (java_complete_tree): Call unreachable_stmt_error.
17778
17779 1998-12-01 Tom Tromey <tromey@cygnus.com>
17780
17781 * Makefile.in (+target): Removed.
17782 (+xmake_file): Likewise.
17783 (+tmake_file): Likewise.
17784 (.NOEXPORT): Removed duplicate.
17785
17786 1998-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17787
17788 * Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
17789
17790 * jv-scan.c: Fix xmalloc prototype. Provide an xmalloc definition.
17791
17792 * jvgenmain.c: Remove the xmalloc prototype, we get it from
17793 libiberty.h. Provide an xmalloc definition.
17794
17795 * jvspec.c: Remove the xmalloc prototype.
17796
17797 * parse-scan.y: Include config.h and system.h. Don't include
17798 OS headers or gansidecl.h. Don't prototype xmalloc/xstrdup.
17799 Provide an xstrdup definition.
17800
17801 1998-11-26 Alexandre Oliva <oliva@dcc.unicamp.br>
17802
17803 * jcf-path.c (add_entry): Recognize ".jar" too.
17804 * lang-specs.h: Likewise.
17805
17806 1998-11-26 Per Bothner <bothner@cygnus.com>
17807
17808 * jcf-write.c (generate_bytecode_insns): In Call_EXPR, handle
17809 soft_monitorenter_node, soft_monitorexit_node, throw_node.
17810
17811 * jcf-write.c (generate_bytecode_insns):
17812 Handle pre/post-increment/decrement of long.
17813
17814 * jcf-write.c (generate_bytecode_insns):
17815 Handle missing exception handler (finally for synchronized).
17816
17817 1998-11-25 Per Bothner <bothner@cygnus.com>
17818
17819 * java-tree.h (end_params_node): Declare global.
17820 * decl.c (end_params_node): New global.
17821 (init_decl_processing, start_java_method): Use end_params_node for
17822 end of list of parameter types. Follows correct gcc conventions.
17823 * expr.c (pop_argument_types, pop_arguments): Likewise.
17824 * lang.c (put_decl_node): Likewise.
17825 * typeck.c (various places): Likewise.
17826 * class.y (various places): Likewise.
17827 * parse.y (various places): Likewise.
17828
17829 * parse.y (java_complete_tree): Move CAN_COMPLETE_NORMALLY.
17830 (build_jump_to_finally): Add missing CAN_COMPLETE_NORMALLY.
17831
17832 * class.c: Add #include flags.h, remove no-longer needed declaration.
17833
17834 * class.c (layout_class_method): Remove commented-out code, re-format.
17835 Don't add vtable entry (or index) for private methods.
17836 * expr.c (expand_invoke): A private method is implicitly final.
17837 * class.c (make_class_data): If inlining or optimizing,
17838 skip private methods.
17839
17840 * class.c (finish_class): New function. Calls existing methods,
17841 but alls emits deferred inline functions.
17842 * jcf-parse.c (parse_class_file): Call finish_class.
17843 * parse.y (java_complete_expand_methods): Likewise.
17844
17845 * expr.c (build_java_binop): Explicit default, to silence -Wall.
17846
17847 * expr.c (CHECK_PC_IN_RANGE): Add void cast to kill warnings.
17848
17849 1998-11-25 Marc Espie <espie@quatramaran.ens.fr>
17850
17851 * jcf-write.c (generate_bytecode_conditional): Fix typo.
17852
17853 1998-11-24 Per Bothner <bothner@cygnus.com>
17854
17855 * (generate_classfile): Always write class access flag with
17856 ACC_SUPER set.
17857
17858 1998-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
17859
17860 * class.c (maybe_layout_super_class): New function.
17861 (layout_class): Reorganized. Loop on class methods dispatched into
17862 a new function. Call maybe_layout_super_class.
17863 (layout_class_methods, layout_class_method): New functions.
17864 * expr.c (expand_java_NEW): Call layout_class_methods on loaded
17865 class.
17866 (expand_invoke): Likewise.
17867 * java-tree.h (all_class_list): New global variable declared.
17868 (layout_class_methods, layout_class_method): New function
17869 prototypes.
17870 (LAYOUT_SEEN_CLASS_METHODS): New macro.
17871 * jcf-parse.c (all_class_list): New global variable.
17872 (load_class): Extended what class_or_name can be. Use parser
17873 context mechanism to save globals before calling jcf_parse.
17874 (jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
17875 is set on the file name.
17876 (jcf_parse): Layout class methods when Object is loaded, otherwise
17877 record class in all_class_list for delayed method layout.
17878 (parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
17879 * lang.c (put_decl_node): Decode <init> into the decl context
17880 class name.
17881 * lex.c (java_allocate_new_line): Use xmalloc.
17882 * parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
17883 pointers, not TREE_LIST elements.
17884 (struct parser_ctxt): Fixed comment indentations, added comments
17885 and reordered some fields.
17886 (java_check_methods): Function prototype removed.
17887 * parse.y (java_push_parser_context): Use xmalloc.
17888 (java_parser_context_restore_global): Pop extra pushed ctxp only
17889 when there's nothing next.
17890 (maybe_create_class_interface_decl): Fixed comment, add new
17891 created class decl to all_class_list.
17892 (method_header): Use GET_REAL_TYPE on argument's types.
17893 (method_declarator): Use GET_REAL_TYPE, change type to the real
17894 type in TREE_LIST dependency node. Build argument list with the
17895 real type.
17896 (create_jdep_list): Use xmalloc. Removed allocation error message.
17897 (obtain_incomplete_type): Fixed leading comment. Broadened
17898 incoming argument meaning.
17899 (register_incomplete_type): Use xmalloc. Removed allocation error
17900 message.
17901 (safe_layout_class): Fixed leading comment.
17902 (jdep_resolve_class): Reversed if statement condition and switch
17903 if and else bodies.
17904 (resolve_and_layout): Fixed leading comment. Broadened incoming
17905 argument meaning.
17906 (complete_class_report_errors): New local variable name, for
17907 clarity. purify_type_name used for all error cases.
17908 (java_get_real_method_name): Stricter check on constructors.
17909 (java_check_regular_methods): Reverse methods list only if not
17910 already laid out. Layout artificial constructor.
17911 (java_check_methods): Deleted.
17912 (source_start_java_method): Obtain incomplete type for patchable
17913 method arguments.
17914 (java_layout_classes): Fixed leading comment. Use
17915 LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
17916 statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
17917 before returning. Fixed comments.
17918 (java_expand_classes): Check for errors up front.
17919 (patch_method_invocation): Class to search is resolved and laid
17920 out.
17921
17922 1998-11-24 Per Bothner <bothner@cygnus.com>
17923
17924 * expr.c (java_lang_expand_expr): Add missing emit_queue.
17925
17926 * javaop.h (int8): Removed - not used.
17927 (jbyte): Redefine portably with correct signedness.
17928
17929 * jcf-write.c (generate_bytecode_insns): Don't free sw_state.cases.
17930
17931 * jcf-write.c (generate_bytecode_insns): Fix typo
17932 OPCODE_getstatic to OPCODE_getfield.
17933
17934 * java-tree.def (CASE_EXPR, DEFAULT_EXPR): Kind is 'x', not '1'.
17935 * parse.y (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR,
17936 set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
17937
17938 1998-11-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
17939
17940 * jcf-parse.c (jcf_parse_source): Function returned type is
17941 void. Added prototype.
17942 (jcf_parse): Function returned type is void.
17943 (yyparse): Remove call to fclose on the last parsed file.
17944
17945 * java-tree.h (jcf_parse): Changed jcf_parse prototype.
17946
17947 1998-11-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
17948
17949 * class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
17950 (layout_class): Cope with methods featuring WFL in decl names.
17951 * decl.c (unqualified_object_id_node): New global variable,
17952 initialized.
17953 (build_decl_no_layout): Removed.
17954 * expr.c (build_primtype_type_ref): Handle Double.
17955 (java_lang_expand_expr): Fixed indentations.
17956 * java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted.
17957 (flag_wall, flag_redundant, flag_not_overriding,
17958 flag_static_local_jdk1_1, unqualified_object_id_node): Global
17959 variable declarations.
17960 (build_decl_no_layout): Removed prototype.
17961 (java_get_real_method_name): Added prototype.
17962 (IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P.
17963 (java_parse_abort_on_error): Macro now just returns.
17964 * jcf-parse.c (jcf_parse_source): Check fclose returned
17965 value. Call emit_register_classes if java_report_errors returns
17966 zero.
17967 * lanc.c (flag_wall, flag_redundant, flag_not_overriding,
17968 flag_static_local_jdk1_1): New integer flags.
17969 (lang_decode_option): New flags set here.
17970 * parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros.
17971 (OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to
17972 the flag_redundant variable.
17973 (SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object
17974 when parsing java.lang.Object class.
17975 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal
17976 NULL_TREE to build.
17977 (resolve_qualified_expression_name): Fixed indentation.
17978 (patch_array_ref): Changed prototype.
17979 (not_initialized_as_it_should_p): Prototype removed.
17980 (java_report_errors): Added function prototype.
17981 * parse.y (formal_parameter:): Changed error message for not yet
17982 supported final parameters.
17983 (class_type_list:): Set both PURPOSE and VALUE of created
17984 TREE_LIST to be class_type.
17985 (primary_no_new_array:): Handle class literals on primitive types.
17986 (parse_warning_context): Reinstalled correct force_error and
17987 do_warning flags setups.
17988 (java_report_errors): Changed prototype. Return java_error_count
17989 value.
17990 (variable_redefinition_error): Consider treating variable type as
17991 a fake pointer.
17992 (create_interface): Warn about redundant abstract modifier if
17993 flag_redundant is set. Changed error message.
17994 (lookup_field_wrapper): Save/restore globals before/after looking
17995 up field.
17996 (duplicate_declaration_error_p): Consider treating declaration
17997 type as a fake pointer.
17998 (register_fields): Extract real type from dependency node. Check
17999 for duplicate field declaration after type adjustment. Use
18000 DECL_INITIAL to store static final initialized values.
18001 (method_header): Extract real function type from dependency node.
18002 (check_abstract_method_header): Use GET_METHOD_NAME.
18003 (obtain_incomplete_type): Layout fake pointer type.
18004 (safe_layout_class): Don't try to check for methods before layout.
18005 (java_complete_class): Don't check for correct throws clause
18006 elements inheritance here.
18007 (resolve_and_layout): Broadened name parameter meaning.
18008 (reset_method_name): Use GET_METHOD_NAME.
18009 (java_get_real_method_name): New function.
18010 (java_check_regular_methods): Don't check methods in
18011 java.lang.Object. Verify lineage of throws clause elements. Use
18012 flag_no_overriding in warning report.
18013 (check_throws_clauses): Don't check if class was from
18014 bytecode. Use IS_UNCHECKED_EXCEPTION_P macro.
18015 (java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag.
18016 (declare_local_variables): Use flag_static_local_jdk1_1 to report
18017 warning on unsupported final local variables. Use build_decl
18018 instead of build_decl_no_layout. Get real local variable type from
18019 dependency node.
18020 (source_start_java_method): Get real parameter type from
18021 dependency node. Call build_decl instead of build_decl_no_layout.
18022 (java_layout_classes): Reverse tree and layout type and class as
18023 required. Mark class as loaded when done.
18024 (resolve_field_access): Fixed indentation. Restricted condition
18025 leading to static field access code generation. Set field_type
18026 decl's TREE_TYPE if QUAL_DECL_TYPE not available.
18027 (resolve_qualified_expression_name): Initialize type_found to
18028 null. Handle static field resolved during qualification. Fixed
18029 layout on non primitive field decl types.
18030 (not_accessible_p): Fixed typo in comment.
18031 (patch_method_invocation): Resolve and layout class to search from
18032 type.
18033 (lookup_method_invoke): Keep integer constant 0 as is. Resolve and
18034 layout non primitive type, if necessary. Make method node only to
18035 report errors.
18036 (find_applicable_accessible_methods_list): Consider WFL'ed method
18037 decl names. Fixed indentation.
18038 (argument_types_convertible): Resolve and layout target type if
18039 necessary.
18040 (java_complete_tree): Fixed indentation problems. Rewrote
18041 CALL_EXPR thrown exceptions check. Re-installed further processing
18042 of the assignment in certain cases.
18043 (patch_assignment): Call maybe_build_primttype_type_ref to perform
18044 inlining on class literals.
18045 (valid_builtin_assignconv_identity_widening_p): Cope with constant
18046 0 literal.
18047 (valid_method_invocation_conversion_p): Likewise.
18048 (patch_string): Temporary disable forbidden use of `this' in
18049 explicit constructor invocations when doing string concatenation
18050 within their scope.
18051 (patch_unaryop): Added comment. Reinstalled code to disable
18052 further check on assignment operation with cast expression RHS.
18053 (patch_switch_statement): Fixed indentation.
18054 (build_try_statement): Call build_decl instead of
18055 build_decl_no_layout.
18056 (patch_synchronized_statement): Likewise.
18057 (patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of
18058 IS_UNCHECKED_EXPRESSION_P.
18059 (check_thrown_exceptions_do): Changed leading comment. Resolve and
18060 layout argument exception type.
18061 (purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
18062 of IS_UNCHECKED_EXPRESSION_P.
18063
18064 1998-11-18 Anthony Green <green@cygnus.com>
18065
18066 * jcf-parse.c (yyparse): Open class file in binary mode.
18067
18068 1998-11-15 Per Bothner <bothner@cygnus.com>
18069
18070 * jvgenmain.c: Need to #include "gansidecl.h" (to get PROTO).
18071
18072 * jcf-write.c (perform_relocations): Move check out one loop.
18073
18074 1998-11-15 Anthony Green <green@hoser.cygnus.com>
18075
18076 * Make-lang.in: Fix reference to srcdir.
18077 * jv-scan.c: Add missing xmalloc prototype.
18078 * jvgenmain.c: Ditto.
18079
18080 1998-11-15 Per Bothner <bothner@cygnus.com>
18081
18082 * decl.c (error_mark_node), java-tree.h: New global.
18083 * parse.y: Use empty_stmt_node instead of size_zero_node.
18084 (build_if_else_statement): If missing else, use empty_stmt_node.
18085
18086 * parse.y (not_initialized_as_it_should_p): Removed, with its callers.
18087 (java_complete_expand_method): Complain if return is missing.
18088 (java_check_regular_methods): Comment out incorrect error check.
18089 (not_accessible_p): Fix incorrect handling of protected methods.
18090 (patch_method_invocation): Pass correct context to not_accessible_p.
18091 (find_applicable_accessible_methods_list): Likewise.
18092 (qualify_ambiguous_name): If ARRAY_REF, it's an expression name.
18093 (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR, set
18094 TREE_TYPE (to void_type_node); otherwise expand_expr crashes.
18095 (patch_if_else_statement): Fix setting of CAN_COMPLETE_NORMALLY.
18096
18097 * jcf-write.c (CHECK_OP, CHECK_PUT): Add some error checking.
18098 (push_int_const): Remove reundant NOTE_PUSH.
18099 (generate_bytecode_insns - case STRING_CST): Do NOTE_PUSH.
18100 (- case SWITCH_EXPR): Fix code generation bug.
18101 (- case PREDECREMENT_EXPR etc): Remove redundant NOTE_PUSH.
18102 (generate_classfile): More robust for abstract methods.
18103
18104 1998-11-15 Anthony Green <green@cygnus.com>
18105
18106 * Makefile.in: jv-scan and jvgenmain all require libiberty.
18107 * Make-lang.in: Ditto.
18108
18109 * jv-scan.c: Remove xmalloc and xstrdup definitions.
18110 * jvgenmain: Ditto.
18111
18112 1998-11-15 Per Bothner <bothner@cygnus.com>
18113
18114 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): New macro.
18115
18116 * jcf-io.c (find_class): Simpler/cleaner structure fixes a bug.
18117
18118 1998-11-14 Per Bothner <bothner@cygnus.com>
18119
18120 Allow uses of interface types to verify. This is not really
18121 type-safe, but it matches what Sun does, and is OK as long as
18122 there are appropriate run-time checks.
18123 * verify.c (merge_types): If merging two interface types,
18124 just set the result to java.lang.Object.
18125 * expr.c (pop_type): Any interface is matches by java.lang.Object.
18126
18127 1998-11-13 Tom Tromey <tromey@cygnus.com>
18128
18129 * gjavah.c (main): Handle --output-class-directory argument.
18130 * jvspec.c (lang_specific_driver): Translate `-d' into
18131 -foutput-class-dir.
18132 * jcf.h (jcf_write_base_directory): Declare.
18133 * lang.c (lang_decode_option): Recognize -foutput-class-dir.
18134 * lang-options.h: Mention -foutput-class-dir.
18135 * jcf-write.c (jcf_write_base_directory): New global.
18136 (make_class_file_name): Put generated .class file into `-d'
18137 directory, or into source directory if -d not given. Function now
18138 static.
18139 (write_classfile): Free class file name. Handle case where class
18140 file name is NULL.
18141 (DIR_SEPARATOR): New macro.
18142 Include <sys/stat.h>
18143
18144 * Makefile.in (prefix): New macro.
18145
18146 1998-11-12 Per Bothner <bothner@cygnus.com>
18147
18148 * parse.y (patch_invoke): Do less if flag_emit_class_files.
18149 * expr.c (build_known_method_ref): Don't check flag_emit_class_files
18150 here (done in patch_invoke instead).
18151 (case_identity): Moved here from parse.y.
18152
18153 * java-tree.h (CAN_COMPLETE_NORMALLY): New macro.
18154 * parse.y (java_complete_tree etc): Maybe set CAN_COMPLETE_NORMALLY.
18155 * parse.y (java_complete_tree): Re-order COMPOUND_EXPR in BLOCK
18156 so they can be efficiently scanned without recursion.
18157 Error it ! CAN_COMPLETE_NORMALLY first part of COMPOUND_EXPR.
18158 * expr.c (java_lang_expand_expr): Expand statements of COMPOUND_EXPR
18159 in BLOCK iteratively, rather than recursively.
18160
18161 * parse.y (do_unary_numeric_promotion): New function.
18162 (patch_unaryop, patch_binop, patch_array_ref): Use it.
18163
18164 * parse.y (patch_newarray): Various fixes.
18165
18166 Re-do handling of switch statements (for proper block scoping).
18167 * parse.y: Add just a single block for the enture switch block,
18168 but don't create any "case blocks".
18169 (group_of_labels): Rmeoved unneeded non-terminal.
18170 CASE_EXPR and DEFAULT_EXPR are added to current block.
18171 * expr.c (java_lang_expand_expr): Inline SWITCH_EXPR here.
18172 Now also need to handle CASE_EXPR and DEFAULT_EXPR.
18173 * java-tree.h (SWITCH_HAS_DEFAULT): New macro.
18174 * parse.y (wfl_operator, print_int_node): Make non-static.
18175 (java_complete_tree): CASE_EXPR and DEFAULT_EXPR are now processed
18176 as part of recursive scan of block.
18177 (java_expand_switch ): Removed - inlined into java_lang_expand_expr.
18178 (patch_switch_statement): Most tests move dinto java_complete_tree.
18179
18180 * parse.y: Make various production be non-typed (void).
18181 * parse.y (parse_error): Merged into issue_warning_error_from_context.
18182 * parse.y (add_stmt_to_compound): Don't create/change extra node.
18183 (patch_method_invocation_stmt): Renamed to patch_method_invocation.
18184
18185 * jcf-write.c (struct jcf_handler): New type.
18186 (struct jcf_switch_state): New type.
18187 (SWITCH_ALIGN_RELOC, BLOCK_START_RELOC): New relocation kinds.
18188 (alloc_handler, emit_unop, emit_reloc): New functions.
18189 (adjust_typed_op): Add extra parameter ("max type" offset).
18190 (emit_switch_reloc, emit_case-reloc): New function.
18191 (generate_bytecode_conditional): Handle REAL_TYPE comparisons.
18192 (generate_bytecode_insns): Support REAL_CST, switch statements,
18193 exception handling, method calls, object/array creation, and more.
18194
18195 * class.c: Remove some unused variables.
18196 * constants.c (find_string_constant): New function.
18197 (count_constant_pool_bytes): Fix to correctly handle wide constants.
18198 * decl.c (complete_start_java_method): Don't _Jv_InitClass
18199 if flag_emit_class_files.
18200
18201 1998-11-12 Tom Tromey <tromey@cygnus.com>
18202
18203 * jcf-io.c (find_class): Added explanatory comment.
18204
18205 * jcf-path.c (add_entry): Look for `.zip' at end of filename. Add
18206 trailing slash to `.zip' entries.
18207
18208 * jvspec.c (lang_specific_driver): Correctly handle case where
18209 GC_NAME not defined.
18210
18211 1998-11-11 Tom Tromey <tromey@cygnus.com>
18212
18213 * jvspec.c (GC_NAME): New define.
18214 (lang_specific_driver): Use GC_NAME. Add GC_NAME to command line
18215 if required.
18216 * Make-lang.in (jvspec.o): Define WITH_GC_<name>.
18217
18218 1998-11-11 Per Bothner <bothner@cygnus.com>
18219
18220 * jcf-dump.c (TABLE_SWITCH): Fix typos.
18221
18222 1998-11-11 Tom Tromey <tromey@cygnus.com>
18223
18224 * jcf-dump.c (main): Correctly recognize `--'-style long options.
18225
18226 1998-11-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
18227
18228 * class.c (is_compiled_class): Call safe_layout_class for class
18229 compiled from source.
18230 * conver.h (convert_to_integer, convert_to_real,
18231 convert_to_pointer): Added prototypes.
18232 * decl.c (init_decl_processing): Non longer push the decls of
18233 `methodtable', `constants', `Class', `Field', `dispatchTable'
18234 `jexception' and `Method'.
18235 * expr.c (build_invokeinterface): New function.
18236 (expand_invoke): static variable CLASS_IDENT now in
18237 build_invokeinterface. Use build_invokeinterface.
18238 (expand_java_field_op): Moved code to inline
18239 java.lang.PRIMTYPE.TYPE into a function.
18240 (build_primtype_type_ref): New function.
18241 * java-tree.def (INSTANCEOF_EXPR): New tree code.
18242 * java-tree.h (CLASS_METHOD_CHECKED_P, METHOD_DEPRECATED,
18243 FIELD_DEPRECATED, CLASS_DEPRECATED): New flag macros.
18244 (DECL_CONSTRUCTOR_P): Fixed typo in comment.
18245 (DECL_LOCAL_STATIC_VALUE): New macro.
18246 (build_invokeinterface, build_primtype_type_ref): New function
18247 prototypes.
18248 (java_parse_abort_on_error): Macro rewritten.
18249 * jcf-parse.c (current_method): Add comment to declaration.
18250 (parse_zip_file_entries, process_zip_dir, void parse_source_file):
18251 Function prototypes fixed.
18252 (jcf_parse_source): push/pop parser context. save/restore global.
18253 (parse_source_file): Fixed leading comment. Now take a
18254 IDENTIFIER_NODE as an argument. Doesn't check methods, layout
18255 classes and pop the parser context anymore.
18256 (yyparse): Push parser context, save globals, parse the source
18257 file, restore globals and pop the parser context when processing a
18258 source file.
18259 * jcf.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG define.
18260 * lex.c (java_parse_doc_section): New function.
18261 (java_lex): Call java_parse_doc_section when appropriate. Build an
18262 operator around INSTANCEOF_TK.
18263 * lex.h (java_lineterminator, java_sprint_unicode,
18264 java_unicode_2_utf8, java_lex_error, java_store_unicode):
18265 Prototypes rewritten.
18266 (java_parse_escape_sequence, java_letter_or_digit_p,
18267 java_parse_doc_section, java_parse_end_comment, java_get_unicode,
18268 java_read_unicode, java_store_unicode, java_read_char,
18269 java_allocate_new_line, java_unget_unicode, java_sneak_unicode):
18270 Added function prototypes.
18271 * parse.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG
18272 define.
18273 (JNULLP_TYPE_P, CHECK_METHODS, CHECK_DEPRECATED, REGISTER_IMPORT):
18274 New macros
18275 (struct parser_ctxt): New fields: deprecated,
18276 current_parsed_class_un, gclass_list.
18277 (fix_method_argument_names, issue_warning_error_from_context,
18278 resolve_package, lookup_package_type): New function prototypes.
18279 (resolve_expression_name): Fixed function prototype.
18280 (find_applicable_accessible_methods_list): Fixed indentation, added
18281 extra argument in prototype.
18282 (check_final_assignment, build_null_of_type, check_deprecation,
18283 check_method_redefinition, reset_method_name,
18284 java_check_regular_methods, java_check_abstract_methods,
18285 maybe_build_primttype_type_ref): New function prototype.
18286 * parse.y (conver.h): Include.
18287 (INSTANCEOF_TK): Tagged <operator>.
18288 (single_type_import_declaration): Use REGISTER_IMPORT macro.
18289 (relational_expression:): Build binop for instanceof.
18290 (java_push_parser_context): Remember ctxp->gclass_list across
18291 contexts.
18292 (java_pop_parser_context): Simply return if no context
18293 exists. Remember gclass_list across contexts.
18294 (issue_warning_error_from_context): New function.
18295 (parse_error_context): Don't setup ctxp->elc here. Call
18296 issue_warning_error_from_context instead.
18297 (parse_warning_context): Likewise.
18298 (maybe_create_class_interface_decl): Removed DECL_ARTIFICIAL
18299 setup. Link new class/interface to ctxp->gclass_list.
18300 (add_superinterfaces): Register interface as incomplete if not
18301 loaded.
18302 (create_class): Remember class unqualified name in
18303 ctxp->current_parsed_class_un. Check class deprecation.
18304 (register_fields): Check field deprecation. Remember static final
18305 field value in DECL_LOCAL_STATIC_VALUE. Changed comment in part
18306 processing INIT.
18307 (method_header): New local variable ORIG_ARG. Use unqualified
18308 current class name for check on constructor errors. Promote return
18309 type if of record type. Argument list fix moved in
18310 fix_method_argument_names, called here. Check method deprecation.
18311 (fix_method_argument_names): New function.
18312 (method_declarator): Promote record typed arguments.
18313 (safe_layout_class): Check class methods before layout.
18314 (java_complete_class): Compute field layout when patched.
18315 (do_resolve_class): Try to load class after having it renamed
18316 after the package name.
18317 (get_printable_method_name): Use DECL_CONTEXT.
18318 (reset_method_name): New function.
18319 (check_method_redefinition): Use reset_method_name.
18320 (java_check_regular_methods): New local variable
18321 SAVED_FOUND_WFL. Temporarily reinstall overriding/hiding method
18322 names for error report. Check for compile-time error when method
18323 found has default (package) access.
18324 (java_check_abstract_methods): Now takes an interface DECL node as
18325 an argument. Also reinstall real name on unchecked
18326 overriding/hiding methods for error report.
18327 (java_check_methods): Fixed leading comment. Get classes to verify
18328 from ctxp->gclass_list. Use CHECK_METHODS macro and set
18329 CLASS_METHOD_CHECKED_P on class verification.
18330 (lookup_java_method2): Get real method name if necessary.
18331 (find_in_imports): Don't check package class access here.
18332 (resolve_package, lookup_package_type): New functions.
18333 (java_layout_classes): Fixed leading comment. Take classes to be
18334 laid out from ctxp->gclass_list.
18335 (java_complete_expand_methods): Don't expand native and abstract
18336 methods.
18337 (java_expand_classes): New function.
18338 (resolve_expression_name): Use additional argument ORIG. Retrieve
18339 values of static final field of primitive types.
18340 (resolve_field_access): Handles static final field of promotive
18341 type.
18342 (resolve_qualified_expression_name): Handle STRING_CST as
18343 primaries and package name resolution. Check deprecation on found
18344 decls. Set where_found and type_found on non static field resolved
18345 during qualification. Layout non primitive field decl types.
18346 (check_deprecation): New function.
18347 (maybe_access_field): Simplified.
18348 (patch_method_invocation_stmt): Local variable CLASS_TYPE
18349 removed. Reverse method's argument when primary is a type. Don't
18350 use CLASS_TYPE to report problems, use IDENTIFIER_WFL
18351 instead. Include abstract class in the list of class searchable
18352 for constructors. Use DECL_CONTEXT of found method for access
18353 checks. Check method deprecation.
18354 (patch_invoke): Pay extra care to NEW_CLASS_EXPR type call when
18355 converting arguments. Handle INVOKE_INTERFACE.
18356 (lookup_method_invoke): Search constructor using existing
18357 infrastructure (don't rely on lookup_java_constructor anymore).
18358 (find_applicable_accessible_methods_list): Extra argument flag
18359 LC. Now include constructor in the search.
18360 (qualify_ambiguous_name): Conditional expression are primaries.
18361 (not_initialized_as_it_should_p): static final are always
18362 initialized.
18363 (java_complete_tree): Pass extra NULL argument to
18364 resolve_expression_name. Stricter test to carry on patching
18365 assignments. New case for INSTANCEOF_EXPR.
18366 (complete_function_arguments): Inline PRIMTYPE.TYPE read access.
18367 (check_final_assignment, maybe_build_primttype_type_ref): New
18368 functions.
18369 (patch_assignment): Detect resolved static finals and carry normal
18370 assignment error check on them. Inline PRIMTYPE.TYPE read access.
18371 (try_builtin_assignconv): Access constant 0 on all primitive
18372 types.
18373 (valid_builtin_assignconv_identity_widening_p): Accept identical
18374 types. Accept all promoted type on int type.
18375 (valid_ref_assignconv_cast_p): Accept a null pointer to be
18376 assigned to a reference.
18377 (valid_method_invocation_conversion_p): Accept to check null
18378 pointers.
18379 (build_binop): Merge declaration and initialization of local
18380 variable BINOP.
18381 (patch_binop): New case for INSTANCEOF_EXPR. NE_EXPR to accept all
18382 numeric types. Improved validity test for qualify operators on
18383 references.
18384 (patch_unaryop): Broadened rejection test for PREDECREMENT_EXPR
18385 and PREINCREMENT_EXPR. Also detect resolved static finals of a
18386 primitive type and issue the appropriate error message.
18387 (resolve_type_during_patch): Mark class loaded when resolved.
18388 (patch_cast): Allow null to be cased to reference types.
18389 (build_null_of_type): New function.
18390 (patch_array_ref): Handle array on references correctly.
18391 (patch_return): Removed unused local variable MODIFY. Force
18392 boolean to be returned as integers. Allows null to be returned by
18393 a function returning a reference.
18394 * typeck.c (convert_to_integer, convert_to_real,
18395 convert_to_pointer): Prototypes moved to convert.h
18396 (lookup_argument_method): Use method real name, if necessary.
18397
18398 1998-10-30 Tom Tromey <tromey@cygnus.com>
18399
18400 * class.c (build_class_ref): Changed name of primitive classes to
18401 start with `_Jv_'.
18402
18403 * class.c (make_class_data): Renamed fields: nmethods to
18404 method_count, method_count to dtable_method_count. Always set
18405 `state' field to 0.
18406 * decl.c (init_decl_processing): Likewise.
18407
18408 1998-10-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
18409
18410 * class.c (layout_class): Don't mangle <finit>, produce
18411 __finit<class> instead. Don't verify artificial methods.
18412 * decl.c (finit_identifier_node): New declared global.
18413 (init_decl_processing): finit_identifier_node initialized.
18414 * java-tree.def (CONDITIONAL_EXPR): New Java tree code.
18415 * java-tree.h (finit_identifier_node): Declared as extern.
18416 (struct lang_decl): New field called_constructor.
18417 (DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor.
18418 (CLASS_HAS_FINIT_P): New macro.
18419 (CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks
18420 explicit constructor invocation.
18421 (CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P,
18422 CALL_SUPER_CONSTRUCTOR_P): New macros.
18423 (write_classfile): Added prototype.
18424 * jcf-parse.c (jcf_parse_source): Parse and remember for
18425 generation if the file was seen on the command line.
18426 (parse_source_file): Don't write the class file here.
18427 (yyparse): Loop on files rewritten. Set current_jcf.
18428 (parse_zip_file_entries): Parse class file only if it was found.
18429 * lang.c (init_parse): Don't open command line provided filename
18430 here.
18431 (lang_parse): Don't set main_jcf anymore.
18432 * parse.h (ABSTRAC_CHECK): Capitalized arguments.
18433 (JCONSTRUCTOR_CHECK): New macro.
18434 (JBSC_TYPE_P): New macro.
18435 (IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment.
18436 (COMPLETE_CHECK_OP_2): New macro.
18437 (struct parse_ctxt): New field explicit_constructor_p.
18438 (check_class_interface_creation): Fixed prototype indentation.
18439 (patch_method_invocation_stmt): Prototype reflects added argument.
18440 (patch_invoke): Likewise.
18441 (complete_method_declaration, build_super_invocation,
18442 verify_constructor_circularity,
18443 build_this_super_qualified_invocation, get_printable_method_name,
18444 patch_conditional_expr, maybe_generate_finit, fix_constructors,
18445 verify_constructor_super, create_artificial_method,
18446 start_artificial_method_body, end_artificial_method_body,
18447 generate_field_initialization_code): New function prototypes.
18448 * parse.y: Fixed leading comment
18449 (constructor_header:, constructor_body:, block_end:): Rules tagged
18450 <node>.
18451 (type_declaration:): Call maybe_generate_finit.
18452 (method_declaration:): Action for method_body: placed in new
18453 function complete_method_declaration, called here.
18454 (constructor_declaration:): Defined actions. Removed leading
18455 FIXME.
18456 (constructor_header:): New rule with action.
18457 (constructor_body:): Rule rewritten using block_begin: and
18458 block_end:. Defined actions.
18459 (constructor_declarator:, explicit_constructor_invocation:):
18460 Defined actions.
18461 (block:): Use new rules block_begin: block_end:.
18462 (block_begin:, block_end:): New rules and actions.
18463 (block_statements:): Fixed error message for explicit
18464 constructors.
18465 (method_invocation:): Call build_this_super_qualified_invocation
18466 if primary is `this' or `super' was seen.
18467 (conditional_expression:): Action defined.
18468 (extra_ctxp_pushed_p): New static global flag.
18469 (java_parser_context_save_global): Create parser context if
18470 necessary. Use extra_ctxp_pushed_p to remember it.
18471 (java_parser_context_restore_global): Pop extra parser context if
18472 one exists.
18473 (build_array_from_name): Array on primitive types are marked
18474 loaded.
18475 (register_fields): Restore new name in field initializer
18476 expression if type was altered. Non static fields initialized upon
18477 declaration marked initialized.
18478 (maybe_generate_finit): New function.
18479 (maybe_generate_clinit): Use create_artificial_method,
18480 start_artificial_method_body, end_artificial_method_body. Generate
18481 debug info for enclosed initialization statements.
18482 (method_header): Fixed leading comment. Check constructor
18483 flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P
18484 accordingly.
18485 (complete_method_declaration, constructor_circularity_msg,
18486 verify_constructor_circularity): New functions.
18487 (get_printable_method_name): New function.
18488 (check_method_redefinition): Don't rename <finit> methods. Fix
18489 declared constructor names. Error message for
18490 constructors modified.
18491 (java_check_regular_methods): Local variable seen_constructor
18492 renamed saw_constructor. Skip verification on constructors. Create
18493 default constructor with create_artificial_method.
18494 (java_check_methods): Removed unnecessary empty line.
18495 (create_artificial_method, start_artificial_method_body,
18496 end_artificial_method_body): New functions.
18497 (java_layout_classes): Changed leading comment. Reverse fields
18498 list if necessary. Always layout java.lang.Object if being
18499 defined.
18500 (java_complete_expand_methods): Verify constructor circularity.
18501 (java_complete_expand_method): Call fix_constructor on
18502 constructors. Local variable no_ac_found removed. Restore
18503 bindings if method body expansion failed.
18504 (fix_constructors, verify_constructor_super,
18505 generate_field_initialization_code): New function.
18506 (java_expand_classes): Fixed leading comment. Write class file
18507 here.
18508 (resolve_expression_name): Check for illegal instance variable
18509 usage within the argument scope of an explicit constructor
18510 invocation.
18511 (resolve_qualified_expression_name): Pass extra from_super flag
18512 when invoking patch_method_invocation_stmt. New case for
18513 conditional expression when used as a primary. Check for error
18514 when acquiring super.
18515 (patch_method_invocation_stmt): Added extra argument super. New
18516 local variable is_static_flag. Set class_to_search according to
18517 the nature of the constructor invocation. Don't add `this'
18518 argument when expanding NEW_CLASS_EXPR. Check for illegal method
18519 invocation within the argument scope of explicit constructor
18520 invocation. Set is_static according to is_static_flag. Provide
18521 extra `super' argument to patch_invoke invocation.
18522 (patch_invoke): New argument from_super. Loop on arguments
18523 indentation fixed. Pass from_super to invocation_mode. New switch
18524 case INVOKE_SUPER. Fixed error message in switch default case.
18525 Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node
18526 value.
18527 (invocation_mode): Return INVOKE_SUPER mode when appropriate.
18528 (lookup_method_invoke): Fixed prototypes in candidates list. Error
18529 message takes constructors into account.
18530 (find_applicable_accessible_methods_list): Fixed indentation.
18531 (qualify_ambiguous_name): Take explicit constructor invocation
18532 into account. Deal with a conditional expression as a primary to
18533 a method call.
18534 (java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR
18535 case. Added extra argument to patch_method_invocation_stmt.
18536 Register calls made to explicit constructor `this'. Don't call
18537 save_expr in ARRAY_REF case when emitting class files. Check for
18538 illegal use of this when expanding explicit constructor invocation
18539 arguments.
18540 (complete_function_arguments): Set and reset parser context
18541 explicit_constructor_p field value when appropriate.
18542 (build_super_invocation, build_this_super_qualified_invocation):
18543 New functions.
18544 (patch_assignment): Fixed typo.
18545 (patch_unaryop): Check on final fields occurs only when a decl
18546 exits.
18547 (patch_return): Take constructors into account.
18548 (patch_conditional_expr): New function.
18549 * typeck.c (build_java_signature): Removed unnecessary empty line.
18550
18551 1998-10-28 Jeffrey A Law (law@cygnus.com)
18552
18553 * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
18554
18555 1998-10-28 Tom Tromey <tromey@cygnus.com>
18556
18557 * decl.c (init_decl_processing): Renamed fields.
18558 * class.c (make_class_data): Renamed bfsize, nfields, nsfields,
18559 interface_len, msize fields.
18560
18561 * class.c (make_class_data): Removed subclass_head and
18562 subclass_next fields.
18563 * decl.c (init_decl_processing): Removed subclass_head and
18564 subclass_next fields.
18565
18566 1998-10-28 Jeffrey A Law (law@cygnus.com)
18567
18568 * jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
18569 * mangle.c (emit_unicode_mangled_name): Similarly.
18570
18571 1998-10-26 Nick Clifton <nickc@cygnus.com>
18572
18573 * jcf-parse.c (get_constant): Place braces around code to compute
18574 'd' when REAL_ARITHMETIC is not defined.
18575
18576 1998-10-25 H.J. Lu (hjl@gnu.org)
18577
18578 * Make-lang.in (jv-scan$(exeext)): Add stamp-objlist to
18579 dependency.
18580
18581 1998-10-23 Tom Tromey <tromey@cygnus.com>
18582
18583 * lang-specs.h: `.zip' files are input to jc1.
18584
18585 1998-10-22 Per Bothner <bothner@cygnus.com>
18586
18587 * jvspecs.c: Add (but don't enable) support for combining multiple
18588 .class and .java input filenames to a single jc1 invocation.
18589 Add support for -C flag (copile to .class files).
18590 Translate -classpath and -CLASSPATH arguments.
18591 * lang-specs.h: Don't set %2 spec.
18592
18593 1998-10-22 Tom Tromey <tromey@cygnus.com>
18594
18595 * jcf-path.c (add_entry): Don't add trailing separator if entry is
18596 a .zip file.
18597 (add_path): Don't add trailing separator to non-empty path
18598 elements.
18599
18600 * lang.c (lang_decode_option): Check for -fclasspath and
18601 -fCLASSPATH before examining other `-f' options.
18602
18603 * java-tree.h (finalize_identifier_node): Don't declare.
18604 * class.c (make_class_data): Don't push "final" field.
18605 * decl.c (init_decl_processing): Don't push "final" field.
18606 (finalize_identifier_node): Removed.
18607 (init_decl_processing): Don't set finalize_identifier_node.
18608
18609 * config-lang.in (stagestuff): Added jcf-dump and jv-scan.
18610
18611 1998-10-11 Anthony Green <green@cygnus.com>
18612
18613 * Make-lang.in (java): Depend on jcf-dump and jv-scan.
18614 (JV_SCAN_SOURCES): New macro.
18615 (JCF_DUMP_SOURCES): Likewise.
18616 (jcf-dump$(exeext)): New target.
18617 (jv-scan$(exeext)): New target.
18618
18619 1998-10-22 Tom Tromey <tromey@cygnus.com>
18620
18621 * Makefile.in (LEX): Removed.
18622 (LEXFLAGS): Likewise.
18623 (SET_BISON): New macro.
18624 (BISON): Removed.
18625 ($(PARSE_C)): Use SET_BISON. Run bison from srcdir to avoid
18626 spurious diffs in parse.c.
18627 ($(PARSE_SCAN_C)): Likewise.
18628 (PARSE_DIR): New macro.
18629 (PARSE_C): Use it.
18630 (PARSE_SCAN_C): Likewise.
18631 (PARSE_RELDIR): New macro.
18632
18633 * jcf-io.c (saw_java_source): Define here, not in jcf-parse.c.
18634
18635 * jcf-io.c (find_class): Use saw_java_source to determine when to
18636 look for `.java' file.
18637 * jcf-parse.c (saw_java_source): New global.
18638 (yyparse): Set it if `.java' file seen.
18639
18640 * Make-lang.in (JAVA_SRCS): Added jcf-path.c.
18641 (GCJH_SOURCES): Likewise.
18642 * Makefile.in (datadir): New macro.
18643 (libjava_zip): Likewise.
18644 (JAVA_OBJS): Added jcf-path.o.
18645 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18646 (../gcjh$(exeext)): Likewise.
18647 (jcf-path.o): New target.
18648 * java-tree.h (fix_classpath): Removed decl.
18649 * jcf-parse.c (fix_classpath): Removed.
18650 (load_class): Don't call fix_classpath.
18651 * parse.y (read_import_dir): Don't call fix_classpath.
18652 * lex.h: Don't mention classpath.
18653 * lex.c (java_init_lex): Don't initialize classpath.
18654 * jcf-io.c (classpath): Removed global.
18655 (find_class): Use jcf_path iteration functions. Correctly search
18656 class path for .java file.
18657 (open_in_zip): New argument `is_system'.
18658 * jcf-dump.c (main): Call jcf_path_init. Recognize all new
18659 classpath-related options.
18660 * lang.c (lang_decode_option): Handle -fclasspath, -fCLASSPATH,
18661 and -I.
18662 (lang_init): Call jcf_path_init.
18663 * lang-options.h: Mention -I, -fclasspath, and -fCLASSPATH.
18664 * lang-specs.h: Handle -I. Minor cleanup to -M options.
18665 Correctly put braces around second string in each entry.
18666 * gjavah.c (main): Call jcf_path_init. Recognize all the new
18667 classpath-related options.
18668 (help): Updated for new options.
18669 * jcf.h: Declare functions from jcf-path.c. Don't mention
18670 `classpath' global.
18671 * jcf-path.c: New file.
18672
18673 * jcf-depend.c: Include jcf.h.
18674
18675 * jcf-write.c (localvar_alloc): Returns `void'.
18676 (localvar_free): Removed unused variable.
18677
18678 * lang.c (OBJECT_SUFFIX): Define if not already defined.
18679 (init_parse): Use OBJECT_SUFFIX, not ".o".
18680
18681 1998-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
18682
18683 * class.c (emit_register_classes): Renamed from
18684 emit_register_class.
18685 * java-tree.h (emit_register_classes): Prototype renamed from
18686 emit_register_class.
18687 * jcf-parse.c (yyparse): Call emit_register_classes once before
18688 returning.
18689 * parse.y (java_expand_classes): No longer register classes.
18690
18691 1998-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
18692
18693 * class.c (is_compiled_class): New local variable
18694 seen_in_zip. Identify classes found in currently compiled source
18695 file(s).
18696 * decl.c (complete_start_java_method): Fixed typo.
18697 * java-tree.h (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P,
18698 HAS_BEEN_ALREADY_PARSED_P, IS_A_COMMAND_LINE_FILENAME_P): New macros.
18699 (CLASS_P): Moved around.
18700 (java_parse_abort_on_error): Macro moved from jcf-parse.c
18701 * jcf-parse.c (java_parse_abort_on_error): Macro moved to
18702 java-tree.h
18703 (jcf_parse_source): Changed leading comment. Removed unnecessary
18704 fclose and CLASS_FROM_SOURCE_P marking.
18705 (parse_source_file): New local variables remember_for_generation
18706 and filename. Mark parsed file name identifier node. Removed block
18707 executed when parse_only was null. Set remember_for_generation.
18708 Use it as an argument to java_pop_parser_context.
18709 (yyparse): New local variables several_files, list, next node and
18710 current_file_list. Split ampersand separated file names into
18711 current_file_list. Iterate through the list and parse accordingly.
18712 * parse.h (java_pop_parser_context): New function prototype.
18713 * parse.y (ctxp_for_generation): New static global variable.
18714 (java_pop_parser_context): New argument generate. Link popped ctxp
18715 to ctxp_for_generation list accordingly.
18716 (java_complete_expand_methods): Fixed indentation.
18717 (java_expand_classes): New function.
18718
18719 1998-10-17 Per Bothner <bothner@cygnus.com>
18720
18721 * Makefile.in: Link with libiberty.a instead of memmove.o.
18722
18723 1998-10-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
18724
18725 * lex.c (setjmp.h): No longer included.
18726 * lex.h (setjmp.h): Included.
18727 * parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
18728 (duplicate_declaration_error_p): Renamed from
18729 duplicate_declaration_error.
18730 (build_array_from_name): New function prototype.
18731 * parse.y (setjmp.h): No longer included.
18732 (variable_declarator_id): Define action.
18733 (build_array_from_name): New function.
18734 (duplicate_declaration_error_p): Renamed from
18735 duplicate_declaration_error. Fixed leading comment.
18736 (register_fields): Main `for' loop reorganized. Uses
18737 SET_TYPE_FOR_RESOLUTION and build_array_from_name.
18738 (method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
18739 build_array_from_name.
18740 (resolve_class): Set CLASS_LOADED_P on newly build array dimension
18741 types.
18742 (read_import_dir): Don't try to skip `.' and `..'.
18743 (declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
18744 build_array_from_name. Main `for' loop reorganized.
18745 (resolve_qualified_expression_name): When building access to a
18746 field, use the type where the field was found, not its own type.
18747 (maybe_access_field): Use field DECL_CONTEXT if the type where the
18748 field was found is null.
18749 (qualify_ambiguous_name): Sweep through all successive array
18750 dimensions.
18751
18752 1998-10-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
18753
18754 * java-tree.h (pop_labeled_block, lang_printable_name,
18755 maybe_add_interface, set_super_info, get_access_flags_from_decl,
18756 interface_of_p, inherits_from_p, fix_classpath,
18757 complete_start_java_method, emit_handlers, init_outgoing_cpool,
18758 make_class_data, register_class, alloc_name_constant): New
18759 function prototypes.
18760 * lang.c (lang_decode_option): Set argc argument unused. Fixed
18761 indentation. Added cast to remove warning.
18762 (lang_printable_name): Set v argument unused.
18763 (lang_print_error): Added argument to lang_printable_name call.
18764 (java_dummy_print, print_lang_decl, print_lang_type,
18765 print_lang_identifier, lang_print_xnode): All argument marked
18766 unused.
18767 * lex.c (java_unget_unicode): Removed unnecessary argument.
18768 (java_allocate_new_line): Unused local variable is gone.
18769 (java_read_char): Added parenthesis in expressions to remove
18770 warnings. Added final return statement.
18771 (java_read_unicode): Added parenthesis in expression to remove
18772 warning.
18773 (java_parse_end_comment): Fixed java_unget_unicode invocation.
18774 (java_parse_escape_sequence): Likewise.
18775 (java_lex): Unused local variables are gone. Fixed
18776 java_unget_unicode invocation.
18777 * lex.h (set_float_handler): Prototype added when JC1_LITE not
18778 defined.
18779 * parse.h (ERROR_CANT_CONVERT_TO_BOOLEAN): Fixed
18780 lang_printable_name invocation in macro.
18781 (ERROR_CANT_CONVERT_TO_NUMERIC, ERROR_CAST_NEEDED_TO_INTEGRAL):
18782 Likewise.
18783 (duplicate_declaration_error): Suppressed unused argument in
18784 prototype.
18785 (identical_subpath_p): Function declaration is gone.
18786 (patch_invoke): Suppressed unused argument in prototype.
18787 (patch_cast, build_labeled_block, check_thrown_exceptions):
18788 Likewise.
18789 * parse.y (setjmp.h): Included
18790 (toplev.h): Likewise.
18791 (field_declaration:): Suppressed unused local
18792 (label_decl:): Fixed build_labeled_block invocation.
18793 (java_pop_parser_context): Put extra parenthesis around assignment
18794 in if.
18795 (yyerror): Suppressed unused local variables.
18796 (variable_redefinition_error): Fixed lang_printable_name
18797 invocation.
18798 (create_interface): Suppressed unused local variables.
18799 (create_class): Likewise.
18800 (duplicate_declaration_error): Suppressed unused argument. Fixed
18801 lang_printable_name invocation.
18802 (register_fields): Suppressed unused local variable. Fixed
18803 duplicate_declaration_error invocation.
18804 (method_header): Suppressed unused local variable.
18805 (method_declarator, parser_check_super): Likewise.
18806 (java_complete_class): Suppressed unused local variable. Fixed
18807 fatal error message.
18808 (complete_class_report_errors): Added default: in switch.
18809 (java_check_regular_methods): Fixed lang_printable_name
18810 invocations.
18811 (check_throws_clauses): Likewise.
18812 (java_check_abstract_methods): Suppressed unused local
18813 variable. Fixed lang_printable_name invocation.
18814 (read_import_entry): Added supplemental return statement.
18815 (read_import_dir): Suppressed unused local variables.
18816 (check_pkg_class_access, declare_local_variables): Likewise.
18817 (source_start_java_method): Suppressed unused extern variable
18818 declarations
18819 (expand_start_java_method): Suppressed unused extern and local
18820 variable declarations.
18821 (java_complete_expand_methods): Likewise.
18822 (java_complete_expand_method): Suppressed unused local variables.
18823 (make_qualified_name): Likewise.
18824 (resolve_qualified_expression_name): Added default: in
18825 switch. Fixed lang_printable_name invocation.
18826 (class_instance_creation_expression): Added parenthesis around
18827 expressions.
18828 (patch_method_invocation_stmt): Fixed lang_printable_name and
18829 patch_invoke invocations.
18830 (check_for_static_method_reference): Fixed lang_printable_name
18831 invocation.
18832 (patch_invoke): Suppressed unused arguments and local variables.
18833 (lookup_method_invoke): Suppressed unused local variables.
18834 (qualify_ambiguous_name): Added default: in switch.
18835 (identical_subpath_p): Function removed.
18836 (patch_assignment): Suppressed unused local variables. Suppressed
18837 unnecessary if statement. Fixed lang_printable_name invocations.
18838 (try_builtin_assignconv): Fixed lang_printable_name invocations.
18839 (valid_ref_assignconv_cast_p): Parenthesis around
18840 expression. Suppressed unused local variables.
18841 (build_binop): Suppressed unused local variables. fixed
18842 lang_printable_name invocations.
18843 (string_constant_concatenation): Suppressed unused local
18844 variables.
18845 (patch_unaryop): Fixed lang_printable_name invocation.
18846 (patch_cast): Suppressed unnecessary argument. Fixed
18847 lang_printable_name invocation.
18848 (patch_array_ref): Fixed lang_printable_name invocation.
18849 (patch_newarray, patch_return, patch_if_else_statement): Likewise.
18850 (build_labeled_block): Suppressed unused argument.
18851 (generate_labeled_block): Fixed build_labeled_block invocation.
18852 (build_loop_body): Suppressed unused local variables.
18853 (patch_loop_statement): Likewise.
18854 (patch_exit): Fixed lang_printable_name invocation.
18855 (patch_switch_statement): Likewise.
18856 (case_identity): First argument marked unused.
18857 (patch_try_statement): Fixed lang_printable_name invocations.
18858 (patch_synchronized_statement, patch_throw_statement): Likewise.
18859 (check_thrown_exceptions): Fixed check_thrown_exceptions and
18860 lang_printable_name invocations.
18861 (check_thrown_exceptions_do): Suppressed unused argument.
18862
18863 1998-10-14 Tom Tromey <tromey@cygnus.com>
18864
18865 * jcf-write.c (write_classfile): Add output class file as target.
18866 * lang-options.h: Added -MD, -MMD, -M, and -MM.
18867 * jcf.h: Added declarations for dependency-tracking functions.
18868 * lang-specs.h: Handle -M, -MM, MD, and -MMD.
18869 * lang.c (lang_decode_option): Recognize -MD and -MMD.
18870 (finish_parse): Call jcf_dependency_write.
18871 (dependency_tracking): New global.
18872 (DEPEND_SET_FILE): New define.
18873 (DEPEND_ENABLE): New define.
18874 (init_parse): Enable dependency tracking if required.
18875 Include "flags.h".
18876 * Makefile.in (JAVA_OBJS): Added jcf-depend.o.
18877 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18878 (../gcjh$(exeext)): Likewise.
18879 (jcf-depend.o): New target.
18880 * Make-lang.in (JAVA_SRCS): Added jcf-depend.c.
18881 (GCJH_SOURCES): Likewise.
18882 * jcf-io.c (open_class): Call jcf_dependency_add_file. Added
18883 dep_name argument.
18884 (find_classfile): Added dep_name argument.
18885 (find_class): Compute name of dependency.
18886 (open_in_zip): Call jcf_dependency_add_file.
18887 * gjavah.c (output_file): No longer global.
18888 (usage): Don't mention "gjavah".
18889 (help): Likewise.
18890 (java_no_argument): Likewise.
18891 (version): Likewise.
18892 (main): Recognize and handle -M family of options.
18893 (print_mangled_classname): Return is void.
18894 (process_file): Handle case where output is suppressed.
18895 (HANDLE_END_FIELD): Likewise.
18896 (HANDLE_METHOD): Likewise.
18897 * jcf-depend.c: New file.
18898
18899 1998-10-13 Jeffrey A Law (law@cygnus.com)
18900
18901 * java-tree.def: Add missing newline at EOF.
18902
18903 1998-10-13 Tom Tromey <tromey@cygnus.com>
18904
18905 * jcf-dump.c (process_class): Use FATAL_EXIT_CODE, not -1.
18906 (main): Likewise. Exit with SUCCESS_EXIT_CODE at end of
18907 function.
18908 Include <config.h> and "system.h".
18909 (disassemble_method): Undefine RET to avoid clash with
18910 config/i386/i386.h.
18911
18912 1998-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
18913
18914 * decl.c (runtime_exception_type_node, error_exception_type_node):
18915 New global variables.
18916 (init_decl_processing): Initialized.
18917 * expr.c (java_lang_expand_expr): Set caught exception type to
18918 null if catch handler argument doesn't exit.
18919 * java-tree.def (SYNCHRONIZED_EXPR, THROW_EXPR): New Java specific
18920 tree codes.
18921 * java-tree.h (runtime_exception_type_node,
18922 error_exception_type_node): Global variables declared.
18923 (DECL_FUNCTION_THROWS): New macro.
18924 (DECL_FUNCTION_BODY): Modified comment.
18925 (DECL_SPECIFIC_COUNT): Likewise.
18926 (struct lang_decl): New field throws_list.
18927 (IS_UNCHECKED_EXPRESSION_P): New macro.
18928 * lex.c (java_lex): Generate location information for THROW_TK.
18929 * parse.h (PUSH_EXCEPTIONS, POP_EXCEPTIONS, IN_TRY_BLOCK_P,
18930 EXCEPTIONS_P): New macros.
18931 (enum jdep_code): New value JDEP_EXCEPTION.
18932 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT,
18933 BUILD_ASSIGN_EXCEPTION_INFO, BUILD_THROW, SET_WFL_OPERATOR,
18934 PATCH_METHOD_RETURN_ERROR): New macros.
18935 (patch_method_invocation_stmt): Added new argument to prototype.
18936 (patch_synchronized_statement, patch_throw_statement,
18937 check_thrown_exceptions, check_thrown_exceptions_do,
18938 purge_unchecked_exceptions, check_throws_clauses): New function
18939 prototypes.
18940 * parse.y Fixed typo in keyword section.
18941 (throw:): Rule tagged <node>.
18942 (THROW_TK): Keyword tagged <operator>.
18943 (method_header:): Last argument to call to method_header passed
18944 from throws: rule.
18945 (throws:, class_type_list:, throw_statement:,
18946 synchronized_statement:, synchronized:): Defined actions.
18947 (method_header): New local variable current. Register exceptions
18948 from throws clause.
18949 (java_complete_tree): Complete and verify exceptions from throws
18950 clause.
18951 (complete_class_report_errors): Error message on exceptions not
18952 found
18953 (java_check_regular_methods): Fixed typo. Shortcut on private
18954 overriding methods. Changed error message on method
18955 redefinition. Check for throws clause compatibility.
18956 (check_throws_clauses): New function.
18957 (java_check_abstract_methods): Use DECL_NAME for wfl or current
18958 method. Changed error message on method redefinition.
18959 (currently_caught_type_list): New static variable.
18960 (java_complete_expand_methods): Purge unchecked exceptions from
18961 throws clause list. Call PUSH_EXCEPTIONS before walk and
18962 POP_EXCEPTIONS after.
18963 (resolve_qualified_expression_name): Pass new argument as NULL to
18964 patch_method_invocation_stmt.
18965 (patch_method_invocation_stmt): New argument ref_decl. Invoke
18966 PATCH_METHOD_RETURN_ERROR when returning with error. Reverse
18967 argument list when appropriate. Use new argument if non null to
18968 store selected method decl.
18969 (patch_invoke): Convert if necessary args of builtin types before
18970 forming CALL_EXPR. Argument list no longer reversed here.
18971 (invocation_mode): Treat final methods as static methods.
18972 (java_complete_tree): New cases for THROW_EXPR: and
18973 SYNCHRONIZED_EXPR:. Check thrown exceptions when completing
18974 function call.
18975 (complete_function_arguments): No more RECORD_TYPE
18976 conversion. Function parameter nodes no longer saved.
18977 (valid_ref_assignconv_cast_p): Avoid handling null type.
18978 (patch_binop): Fixed null constant reference handling.
18979 (build_try_statement): Use BUILD_ASSIGN_EXCEPTION_INFO and
18980 BUILD_THROW macros.
18981 (patch_try_statement): Fixed comments. Record caught types in
18982 list, push the list, expand try block and pop the list.
18983 (patch_synchronized_statement, patch_throw_statement,
18984 check_thrown_exceptions, check_thrown_exceptions_do,
18985 purge_unchecked_exceptions): New functions.
18986 * typeck.c (lookup_argument_method): Allow WFL in place of method
18987 DECL_NAME during method definition check
18988
18989 1998-10-09 Tom Tromey <tromey@cygnus.com>
18990
18991 * gjavah.c (decode_signature_piece): New function.
18992 (print_c_decl): Use it. Added `name_override' argument.
18993 (print_method_info): Use name_override argument to print_c_decl.
18994 (seen_fields): Removed.
18995 (print_field_info): Don't update seen_fields.
18996 (struct method_name): New structure.
18997 (method_name_list): New global.
18998 (print_method_info): Add new method to list of methods.
18999 (name_is_method_p): New function.
19000 (print_field_info): If field name has same name as method, then
19001 change field name.
19002 (process_file): Parse methods before fields.
19003 (field_pass): New global.
19004 (HANDLE_END_FIELD): Take field_pass into account.
19005
19006 1998-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19007
19008 * Makefile.in (keyword.h): Add -L KR-C -F ', 0' flags to gperf.
19009 (keyword.h): Regenerate using gperf 2.7.1 (19981006 egcs).
19010
19011 1998-10-03 Anthony Green <green@cygnus.com>
19012
19013 * jvspec.c: Fix bug in jvgenmain_spec patch.
19014
19015 1998-10-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
19016
19017 * Makefile.in (lang.o:): Install dependency on java-tree.def.
19018 * decl.c (soft_exceptioninfo_call_node): New global variable.
19019 (init_decl_processing): Fixed indentation. soft_badarrayindex_node
19020 takes extra integer argument. soft_exceptioninfo_call_node
19021 initialized.
19022 * except.c (java_set_exception_lang_code): New function
19023 (method_init_exceptions): Called here.
19024 (prepare_eh_table_type): New function.
19025 (expand_end_java_handler): Called here.
19026 * expr.c (build_java_throw_out_of_bounds_exception): Now features
19027 one argument. Modified generation of call to
19028 soft_badarrayindex_node to use new argument.
19029 (build_java_arrayaccess): Pass faulty index value to
19030 build_java_throw_out_of_bounds_exception.
19031 (generate_name): New function.
19032 (java_lang_expand_expr): New local variables node, current,
19033 has_finally_p. Expand TRY_EXPR node.
19034 (process_jvm_instruction): Replace top of the stack with thrown
19035 object reference when entering exception handler.
19036 * java-tree.def (TRY_EXPR, CATCH_EXPR, FINALLY_EXPR): New Java
19037 specific tree codes.
19038 * java-tree.h (soft_exceptioninfo_call_node): Declaration of new
19039 global.
19040 (DECL_SPECIFIC_COUNT): New macro.
19041 (prepare_eh_table_type, java_set_exception_lang_code,
19042 generate_name): New function declarations.
19043 (match_java_method): Declaration deleted.
19044 (FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, CATCH_EXPR_GET_EXPR): New
19045 macros.
19046 * lex.c (TRY_TK, CATCH_TK): Generate location information.
19047 * parse.h (redefinition_error, refine_accessible_methods_list,
19048 can_cast_to_p): Function declaration removed.
19049 (classitf_redefinition_error, variable_redefinition_error,
19050 parse_jdk1_1_error, find_applicable_accessible_methods_list,
19051 find_most_specific_methods_list, argument_types_convertible,
19052 enter_a_block, valid_builtin_assignconv_identity_widening_p,
19053 valid_cast_to_p, valid_method_invocation_conversion_p,
19054 try_reference_assignconv, add_stmt_to_compound,
19055 build_jump_to_finally, build_tree_list, patch_try_statement,
19056 java_get_catch_block): New function declarations.
19057 * parse.y (string_buffer_type): Global variable deleted.
19058 (group_of_labels, catches, catch_clause, catch_clause_parameter,
19059 finally): Rules tagged <node>.
19060 (TRY_TK, CATCH_TK): Token tagged <operator>.
19061 (class_body_declaration:, class_member_declaration:,
19062 formal_parameter:, explicit_constructor_invocation:,
19063 interface_member_declaration:, constant_declaration:,
19064 primary_no_new_array:, class_instance_creation_expression:,
19065 array_creation_expression:): Issue error on unsuported JDK1.1
19066 features.
19067 (try_statement:, catches:, finally:): Define actions.
19068 (catch_clause_parameter): New rule.
19069 (catch_clause:): Use new rule catch_clause_parameter.
19070 (parse_jdk1_1_error): New function.
19071 (redefinition_error): Renamed classitf_redefinition_error.
19072 (variable_redefinition_error): New function.
19073 (check_class_interface_creation): Call
19074 classitf_redefinition_error.
19075 (java_complete_tree): Added error message on JDEP_TYPE: case.
19076 (complete_class_report_errors): Fixed indentation.
19077 (declare_local_variables): Call variable_redefinition_error.
19078 (source_end_java_method): Call java_set_exception_lang_code and
19079 emit_handlers where appropriate.
19080 (java_method_add_stmt): Call add_stmt_to_block.
19081 (add_stmt_to_block): New function.
19082 (lookup_method_invoke): Fixed outside comment. new local variable
19083 candicates. Call find_applicable_accessible_methods_list and
19084 find_most_specific_methods_list when searching for a
19085 method. Modified error report to list possible candidates when
19086 applicable.
19087 (find_applicable_accessible_methods_list,
19088 find_most_specific_methods_list, argument_types_convertible): New
19089 function.
19090 (refine_accessible_methods_list): Function deleted.
19091 (java_complete_tree): Handle TRY_EXPR. ARRAY_REF handling: save
19092 expr (if applicable) before calling patch_array_ref.
19093 (build_expr_block): Fixed BLOCK_EXPR_BODY assignment.
19094 (enter_block): Fixed comment.
19095 (enter_a_block): New function.
19096 (patch_assignment): Reorganized. Call try_reference_assignconv for
19097 references. Call valid_cast_to_p instead of can_cast_to_p.
19098 (try_reference_assignconv,
19099 valid_builtin_assignconv_identity_widening_p): New functions.
19100 (valid_ref_assignconv_cast_p): Fixed inverted test on CLASS_FINAL.
19101 (valid_cast_to_p, valid_method_invocation_conversion_p): New
19102 functions.
19103 (build_string_concatenation): Don't resolve StringBuffer.
19104 (patch_cast): Fixed inverted arguments.
19105 (patch_array_ref): Code to save array expr deleted. Call
19106 valid_cast_to_p instead of can_cast_to_p.
19107 (generate_labeled_block): Call generate_name.
19108 (build_jump_to_finally, build_try_statement, java_get_catch_block,
19109 patch_try_statement): New functions.
19110 * typeck.c (match_java_method): Function deleted.
19111
19112 1998-10-02 Anthony Green <green@cygnus.com>
19113
19114 * jvspec.c: jvgenmain_spec uses different temporary file names.
19115
19116 1998-10-02 Anthony Green <green@cygnus.com>
19117
19118 * jvspec.c (lang_specific_driver): Fail if user specifies
19119 --main= when not linking.
19120
19121 1998-09-28 Tom Tromey <tromey@cygnus.com>
19122
19123 * class.c (make_class_data): Push value for `thread' field.
19124 * decl.c (init_decl_processing): Added `thread' field to class.
19125
19126 * class.c (add_field): Always make static fields externally
19127 visible.
19128
19129 1998-09-26 Anthony Green <green@cygnus.com>
19130
19131 * expr.c (build_java_athrow,
19132 build_java_throw_out_of_bounds_exception, expand_invoke,
19133 build_newarray, expand_java_multianewarray, build_java_monitor):
19134 Update comments to reflect _Jv_* function names.
19135
19136 1998-09-25 Per Bothner <bothner@cygnus.com>
19137
19138 * decl.c (complete_start_java_method): DECL_RESULT is always promoted.
19139 * decl.c (start_java_method): Handle PROMOTE_PROTOTYPES target macro.
19140 * parse.y (expand_start_java_method): Likewise.
19141
19142 1998-09-24 Per Bothner <bothner@cygnus.com>
19143
19144 * expr.c (pop_arguments): Handle PROMOTE_PROTOTYPES target macro.
19145
19146 * class.c (push_class): IDENTIFIER_SIGNATURE_TYPE is now POINTER_TYPE.
19147 (add_field): No longer need to convert from RECORD_TYPE to pointer,
19148 * expr.c: Remove no-longer-needed calls to promote_type.
19149 * decl.c (give_name_to_locals): Liekwise.
19150 * jcf-parse.c (get_class_constant): Compensate for new signatures.
19151 * parse.y: Add/remove promote_type calls as appropriate.
19152 * typeck.c (parse_signature_type): Returns POINTER_TYPE for objects.
19153 (parse_signature_string): Likewise.
19154 (build_java_array_type): Fix for now signature convenions.
19155
19156 * lex.c (java_lex): Fix (from Alex) for JC1_LITE problem.
19157
19158 1998-09-23 Tom Tromey <tromey@cygnus.com>
19159
19160 * class.c (init_class_processing): libjava function renamed to
19161 _Jv_RegisterClass.
19162
19163 1998-09-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
19164
19165 * expr.c (java_lang_expand_expr): New case for SWITCH_EXPR.
19166 * java-tree.def: Fixed DEFTREECODE third argument.
19167 (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
19168 CASE_EXPR, DEFAULT_EXPR): New tree codes for Java.
19169 * java-tree.h: (IS_CRAFTED_STRING_BUFFER_P): New macro.
19170 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19171 JAVA_THIS_EXPR): Now replaced by tree code definitions.
19172 (CALL_CONSTRUCTOR_P): Now uses NEW_CLASS_EXPR.
19173 * lang.c (java_tree_code_type, java_tree_code_length,
19174 java_tree_code_name): New arrays.
19175 (lang_init): Append Java tree node definitions to Gcc ones.
19176 * lex.c (expression_obstack): Declared as extern when JC1_LITE
19177 defined.
19178 (java_init_lex): Initialize wfl_append, wfl_string_buffer,
19179 wfl_to_string.
19180 (java_lex): Allow declaration of empty string constants. Retain
19181 location information on CASE_TK and DEFAULT_TK.
19182 * parse.h (JFLOAT_TYPE_P, JINTEGRAL_TYPE_P, JNUMERIC_TYPE_P,
19183 JPRIMITIVE_TYPE_P, JSTRING_TYPE_P, JSTRING_P, JREFERENCE_TYPE_P):
19184 Modified to be more robust.
19185 (BUILD_APPEND, BUILD_STRING_BUFFER): New macros.
19186 (build_new_invocation, try_builtin_assignconv,
19187 patch_switch_statement, string_constant_concatenation,
19188 build_string_concatenation, patch_string_cst, patch_string,
19189 java_expand_switch): New function declarations.
19190 * parse.y: Rules related to switch and EH tagged <node>.
19191 (label_id): Set to NULL_TREE
19192 (wfl_string_buffer, wfl_append, wfl_to_string): New static global
19193 tree nodes.
19194 (this_or_super:): Fixed indentation.
19195 (statement:, statement_nsi:, statement_without_trailing_substatement:,
19196 statement_expression:): Removed call to RULE on all sub-rules.
19197 (switch_expression:, switch_labels:): New rules.
19198 (switch_statement:, switch_block:, switch_block_statement_groups:,
19199 switch_block_statement_group:, switch_labels:, switch_label:):
19200 Defined actions.
19201 (throw_statement:, synchronized_statement:, try_statement:):
19202 Defined temporary actions.
19203 (class_instance_creation_expression:): Call
19204 build_new_invocation. Fixed indentation.
19205 (field_access): Fixed indentation.
19206 (method_invocation): Likewise.
19207 (make_qualified_primary): Use THIS_EXPR.
19208 (resolve_qualified_expression_name): Use NEW_CLASS_EXPR. When
19209 resolving from SUPER, set *type_found.
19210 (qualify_ambiguous_name): Use NEW_CLASS_EXPR.
19211 (java_complete_tree): Removed unused local variable `location'. Case
19212 for SWITCH_EXPR, sharing code with LOOP_EXPR. Use NEW_ARRAY_EXPR,
19213 NEW_CLASS_EXPR, UNARY_PLUS_EXPR and THIS_EXPR. New string handling
19214 on MODIFY_EXPR: and all binary operator tree code cases. Removed
19215 STRING_CST: case. default: checks for patchable strings.
19216 (complete_function_arguments): Transform string constant or
19217 crafted StringBuffer if necessary.
19218 (build_method_invocation): Fixed comments.
19219 (build_new_invocation): New function.
19220 (patch_assignment): Call try_builtin_assignconv to figure a valid
19221 assignment conversion between builtin types.
19222 (try_builtin_assignconv): New function.
19223 (build_binop): Use URSHIFT_EXPR directly to call build.
19224 (operator_string): Use UNARY_PLUS_EXPR.
19225 (patch_binop): Use UNARY_PLUS_EXPR. Handle string concatenation
19226 operator.
19227 (do_merge_string_cste, merge_string_cste,
19228 string_constant_concatenation, build_string_concatenation,
19229 patch_string, patch_string_cst): New function.
19230 (build_unary_op): Use UNARY_PLUS_EXPR and CONVERT_EXPR.
19231 (patch_unaryop): Likewise. New test of valid ++/-- operands.
19232 (build_newarray_node): Use NEW_ARRAY_EXPR.
19233 (build_this): Use THIS_EXPR.
19234 (build_return): Enable debug information on return statement.
19235 (build_if_else_statement): Likewise.
19236 (complete_labeled_statement): Fixed related comment.
19237 (build_loop_body): Fixed comment.
19238 (build_bc_statement): Enable debug information on break/continue
19239 statements.
19240 (patch_bc_statement): Fixed typos. Handle SWITCH statement
19241 context.
19242 (patch_switch_statement, case_identity, java_expand_switch): New
19243 functions.
19244
19245 1998-09-21 Per Bothner <bothner@cygnus.com>
19246
19247 * buffer.h (BUFFER_INIT): New macro.
19248 * jcf-write.c (struct jcf_partial): New type. Put global stuff here.
19249 Pass (struct jcf_partial *state) to most functions.
19250 (jcf_block, jcf_relocation): New types.
19251 Support labels, branches, conditionals, loops.
19252
19253 1998-09-21 Tom Tromey <tromey@cygnus.com>
19254
19255 * decl.c (INT_TYPE_SIZE): Define as BITS_PER_WORD if not defined.
19256
19257 1998-09-21 Per Bothner <bothner@cygnus.com>
19258
19259 * decl.c (integer_type_node): Make it have INT_TYPE_SIZE.
19260 * verify.c (verify_jvm_instructions): Use int_type_not (32 bits),
19261 not integer_type_node (INT_TYPE_SIZ bits).
19262
19263 * parse.y (patch_if_else_statement): Accept promoted_boolean_type_node.
19264
19265 * jcf-reader.c (get_attribute): New HANDLE_EXCEPTION_TABLE hook.
19266 * jcf-dump.c (print_exception_table): New function.
19267 (disassemble_method): Better handling of wide instructions.
19268 Make more robust for bad input.
19269
19270 1998-09-30 Jeffrey A Law (law@cygnus.com)
19271
19272 * jcf-write.c (OP2, OP4): Use "_i", not "_I" to avoid problems on
19273 FreeBSD.
19274
19275 1998-09-17 Jeffrey A Law (law@cygnus.com)
19276
19277 * Makefile.in (jcf-dump, jvgenmain): Link in memmove.o too.
19278
19279 1998-09-17 Tom Tromey <tromey@cygnus.com>
19280
19281 * Makefile.in ($(PARSE_H)): Removed target.
19282
19283 1998-09-17 Jeffrey A Law (law@cygnus.com)
19284
19285 * Makefile.in (JAVA_OBJS): Add memmove.o
19286 (memmove.o): New target & rules.
19287
19288 1998-09-15 Tom Tromey <tromey@cygnus.com>
19289
19290 * expr.c (expand_invoke): Don't generate a call to the class init
19291 code.
19292
19293 1998-09-14 Jeffrey A Law (law@cygnus.com)
19294
19295 * Makefile.in: Add many missing dependencies.
19296 * buffer.c, class.c, constants.c, decl.c: Use system.h and toplev.h
19297 as appropriate.
19298 * except.c, expr.c, jcf-io.c jcf-parse.c, jcf-write.c: Likewise.
19299 * jvgenmain.c lang.c mangle.c typeck.c verify.c: Likewise.
19300
19301 1998-09-11 Per Bothner <bothner@cygnus.com>
19302
19303 * decl.c (complete_start_java_method): If method is static (and
19304 not private) call _Jv_InitClass.
19305 * expr.c (expand_invoke): Don't call build_class_init.
19306
19307 * jvspec.c (jvgenmain_spec): Fix spec for generated .o file.
19308
19309 1998-09-10 Jeffrey A Law (law@cygnus.com)
19310
19311 * Make-lang.in (GCJ): Define before using.
19312
19313 1998-09-09 Jeffrey A Law (law@cygnus.com)
19314
19315 * gjavah.c (java_no_argument): Renamed from no_argument to avoid
19316 losing due to namespace pollution in GNU getopt.h
19317
19318 1998-09-09 Tom Tromey <tromey@cygnus.com>
19319
19320 * Make-lang.in (java.all.build): Don't mention jvgenmain or gcjh.
19321 (java.all.cross): Likewise.
19322 (java.rest.encap): Likewise.
19323
19324 1998-09-08 Jeffrey A Law (law@cygnus.com)
19325
19326 * gjavah.c (print_class_decls): Fix thinko in arglist
19327 * jcv-io.c (find_classfile): Similarly.
19328
19329 1998-09-07 Jeffrey A Law (law@cygnus.com)
19330
19331 * Makefile.in (INCLUDES): Update for recent toplevel gcc changes.
19332
19333 1998-09-05 Tom Tromey <tromey@cygnus.com>
19334
19335 * Make-lang.in (java.maintainer-clean): Don't remove parse.h.
19336 (java.mostlyclean): Remove parse.c and parse-scan.c, not parse.h.
19337 * Makefile.in (PARSE_C): New macro.
19338 (PARSE_H): Likewise.
19339 (PARSE_SCAN_C): Likewise.
19340 ($(PARSE_C)): Target renamed from parse.c.
19341 ($(PARSE_SCAN_C)): Target renamed from parse-scan.c.
19342 (clean): Remove parse-scan.c as well.
19343 (parse.o): Depend on $(PARSE_C).
19344
19345 1998-09-05 Anthony Green <green@cygnus.com>
19346
19347 * README, license.terms: Removed.
19348
19349 * Make-lang.in, Makefile.in, class.c, config-lang.in, constants.c,
19350 decl.c, except.c, expr.c, gjavah.c, java-except.h, java-tree.h,
19351 javaop.def, javaop.h, jcf-dump.c, jcf-io.c, jcf-parse.c,
19352 jcf-reader.c, jcf-write.c, jcf.h, jvgenmain.c, jvspec.c,
19353 keyword.gperf, keyword.h, lang-options.h, lang-specs.h, lang.c,
19354 lex.c, lex.h, mangle.c, parse-scan.y, parse.h, parse.y, typeck.c,
19355 verify.c, zextract.c, zipfile.h: Fixed copyright assignment,
19356 and Java trademark attribution.
19357
19358 1998-09-04 Tom Tromey <tromey@cygnus.com>
19359
19360 * Makefile.in: Use gcjh, not gjavah.
19361 * config-lang.in (stagestuff): Use gcjh, not gjavah.
19362 * Make-lang.in: Changed gjavah to gcjh everywhere.
19363
19364 1998-09-03 Per Bothner <bothner@cygnus.com>
19365
19366 * gjavah.c: Support new -prepend -add -append flags.
19367 (print_method_info): Method is not virtual if class is final.
19368
19369 1998-09-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
19370
19371 * jv-scan.c: Fixed copyright assignment.
19372 * keyword.gperf: Likewise.
19373 * keyword.h: Likewise.
19374 * lex.c: Fixed copyright assignment.
19375 (java_lex): Push unicode back when parsing '<'.
19376 * lex.h: Fixed copyright assignment.
19377 * parse-scan.y: Likewise.
19378 * parse.h: Fixed copyright assignment.
19379 (build_debugable_stmt, complete_for_loop): New function prototypes.
19380 * parse.y: Fixed copyright assignment.
19381 (for_statement:): Call complete_for_loop. Set EXIT_EXPR to be
19382 size_zero_node when completing a loop with no exit condition.
19383 (for_statement_nsi:): Define action.
19384 (for_init:, for_update:): Return size_zero_node when empty.
19385 (declare_local_variables): Call build_debugable_stmt.
19386 (build_debugable_stmt): New function.
19387 (build_loop_body): Build debugable statement around loop
19388 condition part.
19389 (complete_loop_body): Take into account the debugable statement
19390 around the EXIT_EXPR.
19391 (complete_loop_body): New function.
19392 (patch_exit_expr): Fixed condition inversion.
19393
19394 1998-09-02 Tom Tromey <tromey@cygnus.com>
19395
19396 * Make-lang.in (jvspec.o): Use GCC_THREAD_FILE to compute correct
19397 name of thread define.
19398 * jvspec.c (THREAD_NAME): New macro.
19399 (GCLIB): Likewise.
19400 (THREADLIB): Likewise.
19401 (lang_specific_driver): Recognize attempt to link with thread
19402 library or gc library. Recognize -ljava on command line so it
19403 isn't linked against more than once.
19404
19405 1998-09-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
19406
19407 * parse-scan.y (report_main_declaration): Name of the class
19408 containing `main' can be a qualified name.
19409
19410 1998-08-31 Tom Tromey <tromey@cygnus.com>
19411
19412 * config-lang.in: Changed gjavac to gjc everywhere.
19413 * Make-lang.in: Changed gjavac to gjc everywhere.
19414
19415 1998-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
19416
19417 * Make-lang.in (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): New variable.
19418 (java.install-common:): Loop over JAVA_TARGET_INDEPENDENT_BIN_TOOLS
19419 and install the files.
19420 * Makefile.in (JAVA_OBJS_LITE): New variable.
19421 (compiler:): Now include jv-scan as a dependency.
19422 (../jv-scan$(exeext), parse-scan.c): New targets.
19423 (../jcf-dump$(exeext)): Was jcf-dump$(exeext) before.
19424 * config-lang.in (compilers): Removed gcj, gjavah from the list.
19425 * jcf-parse.c (parse_source_file): Call java_layout_classes and
19426 check for errors even if parse_only.
19427 * lex.c (java_init_lex): Reorganized and skip parts if JC1_LITE is
19428 defined.
19429 (yylex): New function. Uses java_lex body.
19430 (java_lex): Removed commented out statement. Remove local variable
19431 literal. Use SET_LVAL_NODE_TYPE and SET_LVAL_NODE where
19432 appropriate. Use macros FLOAT_TYPE_NODE, DOUBLE_TYPE_NODE,
19433 DCONST0, SET_FLOAT_HANDLER, SET_REAL_VALUE_ATOF,
19434 SET_LVAL_NODE_TYPE and GET_TYPE_PRECISION. Don't create STRING_CST
19435 if JC1_LITE is defined. Use BUILD_ID_WFL to build identifiers. Use
19436 SET_MODIFIER_CTX, SET_LVAL_NODE, BUILD_ID_WFL and GET_IDENTIFIER
19437 where appropriate.
19438 (java_lex_error): Empty if JC1_LITE is defined.
19439 (java_get_line_col): Return 0 if JC1_LITE is defined.
19440 * lex.h (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR,
19441 SET_MODIFIER_CTX): Moved into the section containing the macros
19442 conditionally defined by JC1_LITE.
19443 (BUILD_OPERATOR,BUILD_OPERATOR2): Just return the TOKEN
19444 argument if JC1_LITE is defined.
19445 (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, REAL_VALUE_ATOF,
19446 REAL_VALUE_ISINF, REAL_VALUE_ISNAN): Preset to values if JC1_LITE
19447 is defined.
19448 (DCONST0, SET_FLOAT_HANDLER, GET_IDENTIFIER, SET_REAL_VALUE_ATOF,
19449 FLOAT_TYPE, DOUBLE_TYPE, SET_MODIFIER_CTX, GET_TYPE_PRECISION,
19450 SET_LVAL_NODE, SET_LVAL_NODE_TYPE, BUILD_ID_WFL): New macros, set
19451 to different values according to JC1_LITE.
19452 * parse.h (int_fits_type_p, stabilize_reference): Prototype not
19453 declared if JC1_LITE set.
19454 (jdep_code, typedef struct _jdep, typedef struct _jdeplist): Not
19455 defined if JC1_LITE not set.
19456 (struct parser_ctx): Reorganized and skip the jc1 front end part
19457 if JC1_LITE set.
19458 (java_layout_classes): New function definition.
19459 (java_push_parser_context, java_init_lex, yyparse, yylex,
19460 yyerror): Prototype always declared. All other static function
19461 prototypes declared only if JC1_LITE is not set.
19462 * parse.y (yyparse, yylex, yyerror): No longer declared here. Now
19463 declared in parse.h.
19464 (java_layout_classes): New function.
19465 (java_complete_expand_methods): No longer layout the class here.
19466 * parse-scan.y: New file.
19467 * jv-scan.c: New file.
19468
19469 1998-08-25 Tom Tromey <tromey@cygnus.com>
19470
19471 * gjavah.c (main): Handle -friend option.
19472 (friend_specs): New global.
19473 (generate_access): Handle friend_specs.
19474 (process_file): Likewise.
19475 (MAX_FRIENDS): New macro.
19476 (friend_count): New global.
19477 (print_cxx_classname): Added `prefix' argument. Ignore arrays.
19478 Changed all callers.
19479
19480 1998-08-24 Per Bothner <bothner@cygnus.com>
19481
19482 * jcf-dump.c (process_class): Move JCF_FINISH use to main,
19483 (main): Handle processing all the entries of a named .zip archive.
19484 * jcf-io.c (jcf_trim_old_input): New function.
19485 * jcf.h (GET_u2_le,GET_u4_le,JCF_readu2_le,JCF_readu4_le): New macros.
19486
19487 1998-08-24 Per Bothner <bothner@cygnus.com>
19488
19489 * lang.c (flag_assume_compiled): Make default be on.
19490
19491 1998-08-21 Per Bothner <bothner@cygnus.com>
19492
19493 * jcf-dump.c: Add bunches of flags to control output more.
19494 (process_class): New function; support printing more than one class.
19495 (main): Support new --print-main and --javap flags.
19496 * jcf-reader.c (IGNORE_ATTRIBUTE): New hook.
19497 * jcf.h (CPOOL_INDEX_IN_RANGE): New macro.
19498
19499 1998-08-20 Per Bothner <bothner@cygnus.com>
19500
19501 Change mangling of dispatch table to match C++ vtable (w/thunks).
19502 * class.c (build_dtable_decl), java-tree.h: New function.
19503 (make_class_data): Call it.
19504 * decl.c (init_decl_processing): Likewise.
19505
19506 1998-08-19 Warren Levy <warrenl@cygnus.com>
19507
19508 * decl.c (init_decl_processing): Use _Jv_NewObjectArray, not
19509 soft_anewarray; adjust args passed.
19510 * expr.c (build_anewarray): Adjust args for soft_anewarray_node to
19511 match _Jv_NewObjectArray.
19512
19513 1998-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
19514
19515 * decl.c (push_labeled_block, pop_labeled_block): New functions.
19516 * expr.c (loopup_label): Call create_label_decl.
19517 (create_label_decl): New function.
19518 (java_lang_expand_expr): Call expand_start_bindings with argument
19519 set to zero.
19520 * java-tree.h Added space after PROTO in function declarations
19521 when necessary.
19522 (IS_FOR_LOOP_P, IS_BREAK_STMT_P): New macros.
19523 (create_label_decl, push_labeled_block): New function
19524 declarations.
19525 * lex.c (label_id): Initialize.
19526 (SUPER_TK, THIS_TK, RETURN_TK): Merged common actions in final
19527 switch.
19528 * parse.h Added space after PROTO in function declarations when
19529 necessary.
19530 (LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
19531 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
19532 LOOP_EXPR_BODY_BODY_EXPR, LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P,
19533 PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, PUSH_LOOP, POP_LOOP): New
19534 macros.
19535 (struct parser_ctxt): New fields current_loop,
19536 current_labeled_block.
19537 (build_if_else_statement, patch_if_else_statement,
19538 add_stmt_to_compound, patch_exit_expr, build_labeled_block,
19539 generate_labeled_block, complete_labeled_statement,
19540 build_bc_statement, patch_bc_statement, patch_loop_statement,
19541 build_new_loop, build_loop_body, complete_loop_body): New function
19542 declarations.
19543 * parse.y (java_warning_count): New global variable.
19544 (label_id): New static variable.
19545 (BREAK_TK, CONTINUE_TK): Token tagged <operator>.
19546 (block:): Return size_zero_node when block is empty.
19547 (empty_statement:): Return size_zero_node.
19548 (statement:): Implement supplemental action when for_statement: is
19549 reduced.
19550 (label_decl:): New rule.
19551 (labeled_statement:): Rewritten using label_decl. Actions
19552 implemented.
19553 (labeled_statement_nsi:): Likewise.
19554 (if_then_statement): Actions implemented.
19555 (while_expression): New rule.
19556 (while_statement:): Rewritten using while_expression. Actions
19557 implemented.
19558 (while_statement_nsi:): Likewise.
19559 (do_statement_begin:): New rule.
19560 (do_statement:): Rewritten using do_statement_begin. Actions
19561 implemented.
19562 (for_statement:): Rewritten using for_begin. Actions implemented.
19563 (for_statement_nsi:): Likewise.
19564 (for_header:, for_begin:): New rules.
19565 (for_init:): Actions implemented.
19566 (statement_expression_list:, break_statement:,
19567 continue_statement:): Likewise.
19568 (yyerror): Count number of issued warning(s).
19569 (java_report_errors): Report error(s) and/or warning(s).
19570 (java_complete_class): Use build_java_argument_signature to
19571 recompute completed method signature.
19572 (java_check_regular_methods): New locals method_wfl and aflags.
19573 Use method_wfl instead of lookup_cl during error reports. Fixed
19574 indentation and modified some error messages. Use
19575 lang_printable_name in method instead of the DECL_NAME. New code
19576 to issue warnings on methods not overriding corresponding methods
19577 private to a different package.
19578 (java_method_add_stmt): Call add_stmt_to_compound.
19579 (add_stmt_to_compound): New function.
19580 (java_complete_tree): Handle LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR,
19581 LOOP_EXPR, EXIT_EXPR and COND_EXPR.
19582 (build_if_else_statement, patch_if_else_statement,
19583 build_labeled_block, generate_labeled_block,
19584 complete_labeled_statement, build_new_loop, build_loop_body,
19585 complete_loop_body, patch_loop_statement, build_bc_statement,
19586 patch_bc_statement, patch_exit_expr): New functions.
19587 * typeck.c (build_java_signature): Build argument signature before
19588 enclosing it in between parenthesis.
19589
19590 1998-08-17 Warren Levy <warrenl@cygnus.com>
19591
19592 * Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in
19593 (JAVA_OBJS): Added reminder comment
19594
19595 1998-08-13 Nick Clifton <nickc@cygnus.com>
19596
19597 * gjavah.c (D_NAN_MASK): Append LL to the constant to force it to
19598 be interpreted as a long long.
19599
19600 1998-08-13 Warren Levy <warrenl@cygnus.com>
19601
19602 * decl.c (init_decl_processing): Use _Jv_InitClass, not
19603 soft_initialise_class. Use _Jv_NewMultiArray, not
19604 soft_multianewarray. Use _Jv_ThrowBadArrayIndex, not
19605 soft_badarrayindex. Use _Jv_CheckCast, not soft_checkcast. Use
19606 _Jv_CheckArrayStore, not soft_checkarraystore. Use
19607 _Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod.
19608
19609 1998-08-12 Per Bothner <bothner@cygnus.com>
19610
19611 * decl.c, java-tree.h (this_identifier_node, super_identifier_node,
19612 length_identifier_node): New global tree node constants.
19613 * parse.y (kw_super, kw_this, kw_length): Removed globals.
19614 Replace uses by super_identifier_node etc.
19615 * lex.c (kw_super, kw_this, kw_length): Don't initialize.
19616
19617 * parse.y (resolve_field_access): Don't special-case ".length" if
19618 flag_emit_class_files.
19619 (patch_array_ref): Leave as ARRAY_REF if flag_emit_class_files.
19620 * jcf-write.c (generate_bytecode_insns): Handle ARRAY_REF opcode
19621 and ARRAY.length.
19622
19623 1998-08-11 Per Bothner <bothner@cygnus.com>
19624
19625 * decl.c (init_decl_processing): Remove unused method_type_node fields.
19626 * class.c (make_method_value): Remove init for removed fields.
19627
19628 * class.c (layout_class): Use build_java_argument_signature.
19629 * java-tree.h (TYPE_ARGUMENT_SIGNATURE): New macro.
19630
19631 * typeck.c (push_java_argument_signature): Removed. Merged into ...
19632 (build_java_argument_signature): Use TYPE_ARGUMENT_SIGNATURE cache.
19633 (build_java_signature): Don't use push_java_argument_signature.
19634
19635 * typeck.c (lookup_argument_method): New function.
19636 * parse.y (java_check_regular_methods): Use lookup_argument_method
19637 instead of lookup_java_method2 followed by lookup_java_method.
19638
19639 * parse.y (check_method_redefinition): Minor optimization.
19640
19641 * jcf-write.c (generate_bytecode_insns): Handle RETURN_EXPR,
19642 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR.
19643
19644 1998-08-10 Tom Tromey <tromey@cygnus.com>
19645
19646 * Make-lang.in (jc1$(exeext)): Don't depend on c-common.o or
19647 c-pragma.o.
19648
19649 * gjavah.c (java_float_finite): Use K&R-style definition.
19650 (java_double_finite): Likewise.
19651 (generate_access): Now returns void. Changed all callers.
19652 (last_access_generated): Removed.
19653 (process_file): Only make a single pass over the .class file.
19654
19655 1998-07-29 Per Bothner <bothner@cygnus.com>
19656
19657 * class.c (get_dispatch_table): Add extra dummy vtable entry,
19658 for compatibility for G++ (with -fvtable-thunks).
19659 * expr.c (build_invokevirtual): Add one for extra dummy vtable entry.
19660
19661 * gjavah.c (process_file): Use public inheritance for super-class.
19662
19663 1998-07-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
19664
19665 * lex.c (java_init_lex): Initialize ctxp->package.
19666 * parse.h (struct parser_ctxt): package and package_len replaced
19667 by tree package, an identifier node. Field method_decl_list is
19668 gone. Fixed comments.
19669 (lookup_field_wrapper, merge_qualified_name, not_accessible,
19670 class_in_current_package): New function prototypes.
19671 * parse.y (array_type:): Set class loaded flag on primitive type
19672 arrays.
19673 (package_declaration:): Assign ctxp->package to the
19674 identifier node.
19675 (method_invocation:): Handle invocation of method qualified by
19676 `super'.
19677 (single_type_import_declaration:): Removed ambiguity check.
19678 (java_pop_parser_context): New local variable `next'. Reset and
19679 set IMPORT_CLASSFILE_NAME flags on current and previous import
19680 list.
19681 (java_accstring_lookup): Use new local macro COPY_RETURN.
19682 (lookup_field_wrapper): New function.
19683 (parser_qualified_classname): Use merge_qualified_name.
19684 (parser_check_super_interface): Broaden error message.
19685 (do_resolve_class): Check for qualified class name in the current
19686 compilation unit if appropriate.
19687 (process_imports): Check for already defined classes.
19688 (check_pkg_class_access): Got rid of call to
19689 get_access_flags_from_decl.
19690 (java_complete_expand_methods): Call safe_layout_class based on
19691 the current class size.
19692 (make_qualified_primary): Build a WFL qualification on primary if
19693 none exists.
19694 (merge_qualified_name): New function.
19695 (make_qualified_name): Use merge_qualified_name.
19696 (resolve_expression_name): Use safe_lookup_field.
19697 (resolve_field_access): Got rid of call to get_access_flags_from_decl.
19698 (resolve_qualified_expression_name): Likewise. Check on resolved
19699 element accessibility.
19700 (not_accessible_p, class_in_current_package): New functions.
19701 (maybe_access_field): Got rid of call to get_access_flags_from_decl.
19702 (patch_method_invocation_stmt): Merged common pieces. Check
19703 accessibility of invoked method.
19704 (check_for_static_method_reference): Add returned type in error
19705 message.
19706 (invocation_mode): Get rid of bogus check on PRIVATE methods.
19707 (refine_accessible_methods_list): Merged two conditions in test.
19708 (java_complete_class): Sanity check on stabilize_ref gone.
19709 * zextract.c (read_zip_archive): Cast lseek second argument to long.
19710
19711 1998-07-28 Per Bothner <bothner@cygnus.com>
19712
19713 * class.c (hashUtf8String): Fix - use new JavaSoft specification.
19714
19715 1998-07-24 Tom Tromey <tromey@cygnus.com>
19716
19717 * gjavah.c (F_NAN): Removed.
19718 (F_NAN_MASK): New macro.
19719 (F_POSITIVE_INFINITY): Removed.
19720 (F_NEGATIVE_INFINITY): Likewise.
19721 (java_float_finite): Rewrote.
19722 (D_NAN_MASK): Renamed.
19723 (java_double_finite): Rewrote.
19724 (D_POSITIVE_INFINITY): Removed.
19725 (D_NEGATIVE_INFINITY): Likewise.
19726
19727 * jcf-dump.c (print_constant): [CONSTANT_Double, CONSTANT_Float]
19728 If verbose, print underlying representation of value in hex.
19729
19730 1998-07-24 Per Bothner <bothner@cygnus.com>
19731
19732 * buffer.h, buffer.c: New files.
19733 * Makefile.in (JAVA_OBJS): Add buffer.o.
19734
19735 Support locals variables and writing their debug entries to .class.
19736 * jcf-write.c: Simplify some by user new buffer type.
19737 (vode_buffer_grow): Removed.
19738 (struct localvar_info): New type.
19739 (localsvars, localvartable): New buffers.
19740 (localvar_alloc, localvar_free): New functions.
19741 (generate_bytecode_insns): Handle local variables.
19742 (generate_classfile): Write LocalVariableTable attribute.
19743
19744 1998-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
19745
19746 * jcf-io.c (open_in_zip): Check the zipfile magic number.
19747 * zipfile.h (ZIPMAGIC): New macro.
19748
19749 1998-07-24 Tom Tromey <tromey@cygnus.com>
19750
19751 * Makefile.in (gjavah.o): Updated dependencies.
19752 (jcf-dump.o): Likewise.
19753 (all.indirect): Use ../gjavah.
19754 (../gjavah$(exeext)): Likewise.
19755 (clean): Don't remove gjavah.
19756 (clean): Remove parse.c, not java/parse.c.
19757 * Make-lang.in (java): Added gjavah.
19758 (gjavah$(exeext)): New target.
19759 (GJAVAH_SOURCES): New macro.
19760 (java.all.build): Added gjavah.
19761 (java.all.cross): Likewise.
19762 (java.rest.encap): Likewise.
19763 * config-lang.in (compilers, stagestuff): Added gjavah.
19764
19765 1998-07-23 Tom Tromey <tromey@cygnus.com>
19766
19767 * gjavah.c (java_float_finite): New function.
19768 (java_double_finite): Likewise.
19769 (F_POSITIVE_INFINITY): New macro.
19770 (F_NEGATIVE_INFINITY): Likewise.
19771 (F_NAN): Likewise.
19772 (D_POSITIVE_INFINITY): Likewise.
19773 (D_NEGATIVE_INFINITY): Likewise.
19774 (D_NAN): Likewise.
19775 (print_field_info): Use java_float_finite and java_double_finite.
19776
19777 1998-07-23 Per Bothner <bothner@cygnus.com>
19778
19779 * parse.y (method_header): Name "this" implicit argument.
19780
19781 1998-07-22 Per Bothner <bothner@cygnus.com>
19782
19783 * jcf-write.c: Write out LineNumberTable attribute in .class file.
19784 (linenumber_buffer, linenumber_ptr, linenumber_limit): New statics.
19785 (put_linenumber): New function.
19786 (generate_bytecode_insns, generate_classfile): Write line numbers.
19787
19788 1998-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
19789
19790 * java-tree.h (CALL_EXPR_FROM_PRIMARY_P): Changed in PRIMARY_P.
19791 (lookup_name, build_known_method_ref, build_class_init,
19792 build_invokevirtual, invoke_build_dtable, match_java_method,
19793 build_field_ref, pushdecl_force_head, build_java_binop,
19794 binary_numeric_promotion, build_decl_no_layout,
19795 build_java_arrayaccess, build_newarray, build_anewarray,
19796 build_java_array_length_access, build_java_arraynull_check): New
19797 extern function prototypes.
19798 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19799 JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in
19800 java-tree.h.
19801 * jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref
19802 to NULL
19803 * jcf.h (jcf_out_of_synch): New extern function prototype.
19804 * parse.h: Static/global function implemented in parse.y
19805 prototyped and declarations moved at the end of the file.
19806 (DECL_P): Check that the argument isn't null.
19807 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19808 JAVA_THIS_EXPR): No longer defined here. See java-tree.h
19809 (QUAL_DECL_TYPE): New macro.
19810 (PARAMS): Macro definition removed.
19811 * parse.y: (yyparse, yyerror): Use PROTO instead of PARAMS.
19812 (return_statement:): Call build_return.
19813 (field_access:): Call make_qualified_primary in sub rule.
19814 (method_invocation:): Build method invocation and call
19815 make_qualified_primary when processing primaries.
19816 (java_complete_class): Set IDENTIFIER_SIGNATURE_TYPE by calling
19817 get_type_from_signature.
19818 (java_check_regular_method): Extra integer 0 argument when calling
19819 lookup_java_method2.
19820 (lookup_java_interface_method2): Extra method DECL argument when
19821 calling lookup_java_interface_method2.
19822 (java_method_add_stmt): Set TREE_SIDE_EFFECTS on newly created
19823 COMPOUND_EXPR node.
19824 (java_complete_expand_method): Layout current class iff not
19825 already done. Don't process interface's methods.
19826 (java_complete_expand_method): Use super class only if it
19827 exists. Use current class otherwise.
19828 (make_qualified_primary): New function.
19829 (resolve_expression_name): Process qualified expression or
19830 expression from primary the same way.
19831 (resolve_expression_name): Two last arguments to
19832 resolve_field_access are now NULL_TREEs.
19833 (resolve_field_access): New variable is_static. Local field must
19834 be DECLs. is_static computed on field DECLs only. Append code in
19835 where_found to the field access if necessary. Use QUAL_DECL_TYPE
19836 to initialize field_type.
19837 (resolve_qualified_expression_name): New local variable,
19838 previous_call_static and is_static. Handle primaries with function
19839 calls, casts, array references and `this'. `super' now handled as
19840 `(super_class)this'. Use is_static to clarify boolean expressions.
19841 Added code to handle case where a proper handle is required to
19842 access a field. Use QUAL_DECL_TYPE where applicable.
19843 (maybe_access_field): New function.
19844 (patch_method_invocation_stmt): New arguments primary, where,
19845 is_static. Branch of the test on CALL_EXPR_FROM_PRIMARY_P
19846 deleted. Use `where' as a type to search from if specified. Check
19847 for static method reference where forbidden. Append primary or
19848 current_this to the argument list if not calling constructor nor
19849 static methods.
19850 (check_for_static_method_reference): New function.
19851 (patch_invoke): Layout the class on which new is done if
19852 necessary.
19853 (lookup_method_invoke): Changed format to report errors on
19854 methods.
19855 (qualify_ambiguous_name): New local variable this_found. Now
19856 handle things from primaries. Method call are considered
19857 expression names.
19858 (identical_subpath_p): NULL_TREE arguments to breakdown_qualified
19859 changed into NULLs.
19860 (not_initialized_as_it_should_p): Comply with the new DECL_P.
19861 (java_complete_tree): New case fo RETURN_EXPR. Process function
19862 call arguments in separate function.
19863 (complete_function_arguments): New function.
19864 (build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P
19865 anymore.
19866 (patch_assignment): Take the return function slot into account as
19867 a RHS. Distinguish assignment from a return.
19868 (valid_ref_assignconv_cast_p): Use build_java_argument_signature
19869 when checking methods in interfaces.
19870 (resolve_type_during_patch): NULL argument to unresolve_type_p
19871 instead of NULL_TREE.
19872 (patch_newarray): Fixed typo in comment.
19873 (buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL.
19874 (build_return, patch_return): New functions.
19875 * typeck.c (lookup_java_constructor): Fixed typo in comment.
19876
19877 1998-07-21 Per Bothner <bothner@cygnus.com>
19878
19879 * constants.c (find_name_and_type_constant, find_fieldref_index,
19880 find_methodref_index): New methods.
19881 * expr.c (build_invoke_non_interface): If flag_emit_class_files,
19882 just return given method. Also, rename to build_known_method_ref.
19883 (expand_invoke): Rename call to build_invoke_non_interface.
19884 * java-tree.h, parse.h: Update prototype.
19885 * parse.y, decl.c, jcf-parse.c: Suppress calls to back-end functions
19886 (such as expand_expr_stmt) if flag_emit_class_files.
19887 * jcf-write.c (RESERVE, OP1, OP2, OP4, NOTE_PUSH, NOTE_POP,
19888 STACK_TARGET, IGNORE_TARGET): New macros.
19889 (code_buffer, code_ptr, code_limit, code_S, code_SP_max): New globals.
19890 (generate_bytecode_insn): New function to generate method's bytecode.
19891 (generate_classfile): Node generate Code attribute for a method.
19892 (code_buffer_grow, push_constant1, push_constant2, push_int_const,
19893 push_long_const, field_op, adjust_typed_op, maybe_wide):
19894 New functions used by generate_bytecode_insn.
19895
19896 * typeck.c (signature_include_return): Remove variable.
19897 (push_java_argument_signature, build_java_argument_signature): New.
19898 (build_java_signature): Use push_java_argument_signature.
19899 * parse.y: Use build_java_argument_signature instead of fiddling
19900 with signature_include_return.
19901
19902 1998-07-17 Tom Tromey <tromey@cygnus.com>
19903
19904 * gjavah.c (print_c_decl): Always generate JArray<>* for array
19905 types.
19906
19907 * Makefile.in (all.indirect): Added gjavah$(exeext).
19908 (gjavah$(exeext)): Added $(exeext).
19909 (clean): Likewise.
19910
19911 1998-07-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
19912
19913 * class.c (layout_class): Call to java_layout_parsed_class replace
19914 by safe_layout_class.
19915 * expr.c (build_java_array_length_access): Removed static storage
19916 class in the function definition.
19917 (build_java_arraynull_check): Likewise.
19918 Also fixed typos in two comments.
19919 * lex.c (java_init_lex): Initialize static global kw_length.
19920 (java_lex): Use BUILD_OPERATOR on RETURN_TK.
19921 * lex.h (JAVA_FLOAT_RANGE_ERROR): Add extra argument to
19922 java_lex_error.
19923 (JAVA_INTEGRAL_RANGE_ERROR): Likewise.
19924 * parse.h (resolve_no_layout): New static function declaration.
19925 (get_identifier_in_static): Declaration removed.
19926 (java_layout_parsed_class): Function name declaration changed to
19927 safe_layout_class.
19928 (build_newarray_node, patch_newarray, resolve_type_during_patch,
19929 not_initialized_as_it_should_p, build_this): New static function
19930 declarations.
19931 (pushdecl_force_head, build_java_binop, int_fits_type_p,
19932 binary_numeric_promotion, stabilize_reference,
19933 build_decl_no_layout, build_java_arrayaccess): Extern function
19934 declarations moved into their own section.
19935 (build_newarray, build_anewarray, build_java_array_length_access,
19936 build_java_arraynull_check): New extern function declarations.
19937 (UNARY_PLUS_EXPR): Macro renamed into JAVA_UNARY_PLUS_EXPR.
19938 (JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, JAVA_THIS_EXPR): New
19939 fake tree codes.
19940 (CALL_CONSTRUCTOR_P): New macro.
19941 * parse.y (kw_length): New static global tree node.
19942 (return_statement): Tagged <node>.
19943 (RETURN_TK): Tagged <operator>.
19944 (variable_declarator_id:): Build variable declaration with an
19945 empty initialization value if a syntax error was found in the
19946 initialization part of the variable declaration.
19947 (statement_without_trailing_substatement:): return_statement: now
19948 uses the default rule.
19949 (return_statement:): Temporarily fixed to return NULL_TREE.
19950 (primary_no_new_array:): Call build_this when THIS_TK was parsed.
19951 (class_instance_creation_expression:): Class creation rules now
19952 call build_method_invocation upon reduction.
19953 (array_creation_expression:): Rules call build_newarray_node upon
19954 reduction.
19955 (dim_exprs:): Build a list of dimension expressions.
19956 (dim_expr:): Store location of the OSB_TK in the dimension
19957 expression node.
19958 (method_invocation:): Added a new error rule.
19959 (build_unresolved_array_type): WFL argument may also be an array
19960 on a primitive type. Name of the argument changed to reflect this.
19961 (method_declarator): Insert argument type at the beginning of the
19962 argument type list and later reverse the list.
19963 (unresolved_type_p): Argument 'returned' may be optionally
19964 NULL_TREE.
19965 (java_layout_class_from_source): Function renamed
19966 safe_layout_class.
19967 (resolve_and_layout): Now call resolve_no_layout and
19968 safe_layout_class.
19969 (resolve_no_layout): New function.
19970 (purify_type_name): New function.
19971 (complete_class_report_errors): Call purify_type_name during error
19972 report on a type not found.
19973 (process_imports): error_found local variable doesn't need to be
19974 initialized to zero.
19975 (declare_local_variables): New local type_wfl. Fixed typo in error
19976 message. type_wfl assigned to unresolved type and used to register
19977 incomplete type. Build a WFL around the variable initialization
19978 statement so that debug info can be generated on it.
19979 (source_start_java_method): Reverse argument list after they've
19980 been processed.
19981 (current_this): New static global variable.
19982 (java_complete_expand_methods): Set current_this when appropriate.
19983 (resolve_expression_name): Build correct static and non static
19984 field access bearing a simple name.
19985 (resolve_field_access): Resolve the length field of arrays. Handle
19986 f.m() cases.
19987 (patch_method_invocation_stmt): Set the type of the method
19988 invocation to error_mark_node. This value is later overridden by a
19989 valid type, if any. Don't handle qualified constructor invocation
19990 as qualified method invocation. Call lookup_method_invoke with its
19991 new flag. It's no longer necessary to access the selected method
19992 as the value of a tree list. Handle constructor invocation.
19993 (patch_invoke): Reverse argument list when invoking non interface
19994 methods. Insert call to new as the first argument of the
19995 constructor.
19996 (invocation_mode): Return a INVOKE_STATIC is the invoked method is
19997 defined within a final class. Return INVOKE_STATIC if the invoked
19998 method is a constructor.
19999 (lookup_method_invoke): New lc argument is a flag to indicate a
20000 constructor lookup. Now handle constructor lookup. Choose the most
20001 specific method in case several were matching the invocation
20002 requirements. Return a method decl instead of a tree list featuring
20003 one single method decl element.
20004 (refine_accessible_methods_list): New lc flag argument to
20005 indicate that a constructor is being looked up.
20006 (not_initialized_as_it_should_p): New function.
20007 (java_complete_tree): Now process fake tree codes
20008 JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR and JAVA_THIS_EXPR. Call
20009 save_expr on resolved function call arguments. Case on
20010 UNARY_PLUS_EXPR changed into a case on JAVA_UNARY_PLUS_EXPR.
20011 (patch_assignment): LHS can be a field access expression. When
20012 dealing with reference, lhs_type is the promoted type of the
20013 rhs_type, not the RHS. Use not_initialized_as_it_should_p where
20014 applicable.
20015 (operator_string): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20016 (patch_binop): Use not_initialized_as_it_should_p where
20017 applicable.
20018 (build_unaryop): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20019 (patch_unaryop): Likewise. And use not_initialized_as_it_should_p
20020 where applicable.
20021 (resolve_type_during_patch): New function.
20022 (patch_cast): Call resolve_type_during_patch to resolve type and
20023 report error accordingly.
20024 (patch_array_ref): Use not_initialized_as_it_should_p where
20025 applicable. Array base expression is saved before being
20026 used. Promote the type of an array elements if it contains non
20027 builtin types.
20028 (build_newarray_node, patch_newarray, build_this): New functions.
20029
20030 1998-07-16 Tom Tromey <tromey@cygnus.com>
20031
20032 * gjavah.c (print_c_decl): UTF8_GET increments pointer; don't
20033 increment it in `for' statement.
20034 (print_field_info): If number is inf or nan, don't print it.
20035 (print_method_info): If method name is `delete', just ignore it.
20036 (print_c_decl): Special-case jstringArray.
20037
20038 * gjavah.c (help): New function.
20039 (no_argument): New function.
20040 (usage): Changed text.
20041 (main): Rewrote argument handling. Now handles -v, --help,
20042 --version.
20043 (version): New function.
20044 (found_error): New global.
20045 (main): Return found_error.
20046 (generate_access): Set found_error.
20047 (print_c_decl): Likewise.
20048
20049 1998-07-15 Tom Tromey <tromey@cygnus.com>
20050
20051 * gjavah.c (print_c_decl): Don't print "," when examining field.
20052 Skip type name when looking at "[L" types.
20053 (process_file): Now static.
20054 (generate_access): Now returns int.
20055 (last_access_generated): New global.
20056 (process_file): Clear last_access_generated; make multiple passes
20057 over the class.
20058 (print_field_info): Just return if generate_access returns true.
20059 (print_method_info): Likewise. Also, allow <init> functions to
20060 pass through.
20061 (print_c_decl): Added is_init argument. Print constructors
20062 properly.
20063 (print_cxx_classname): Use UTF8_GET to extract characters from
20064 string.
20065 (print_base_classname): New function.
20066 (print_class_decls): New function.
20067 (process_file): Use it.
20068 (utf8_cmp): New function.
20069
20070 1998-07-13 Nick Clifton <nickc@cygnus.com>
20071
20072 * lang-options.h: Format changed to match changes in gcc/toplev.c
20073 to implement a --help option.
20074
20075 1998-07-10 Brendan Kehoe <brendan@cygnus.com>
20076
20077 * decl.c (init_decl_processing): Revert change to dtable_type.
20078
20079 1998-07-09 Per Bothner <bothner@cygnus.com>
20080
20081 * java-tree.h (CLASS_P): Changed DECL_LANG_FLAG_7 -> TYPE_LANG_FLAG_4.
20082
20083 1998-07-08 Brendan Kehoe <brendan@cygnus.com>
20084
20085 * decl.c (init_decl_processing): Set CLASS_LOADED_P on dtable_type.
20086
20087 * lang.c (lang_init): Default flag_exceptions to 1, without
20088 checking to see if it's 2 first.
20089
20090 1998-07-08 Jeffrey A Law (law@cygnus.com)
20091
20092 * constants.c: Include "system.h".
20093 * decl.c: Likewise.
20094 * lang.c (flag_new_exceptions): Get via extern now.
20095 (lang_init_options): New functions. Turn on flag_new_exceptions.
20096
20097 1998-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
20098
20099 * lex.c (java_lex): Return 0 when we see an invalid character in
20100 the input.
20101
20102 * lex.c (java_read_char): Specify extra argument when calling
20103 java_lex_error.
20104 (java_read_unicode, java_parse_end_comment,
20105 java_parse_escape_sequence): Likewise,
20106 (java_lex): Specify extra argument when calling
20107 java_lex_error. Test that IDs are beginning with a legal character
20108 for IDs. Handle invalid characters with an error message and a
20109 call to java_lex_error.
20110 (java_lex_error): Adjust column position by new argument
20111 `forward'. Issue an error even if in the middle of reporting an
20112 other error.
20113
20114 1998-07-07 Brendan Kehoe <brendan@cygnus.com>
20115
20116 * jcf-io.c (find_class): Zero out BUFFER before we use it, since
20117 we don't explicitly put a null pointer when we're copying it.
20118
20119 1998-07-07 Tom Tromey <tromey@cygnus.com>
20120
20121 * gjavah.c (print_cxx_classname): New function.
20122 (super_class_name): Likewise.
20123 (print_super_fields): Removed.
20124 (in_super): Removed.
20125 (print_field_info): Never generate #defines.
20126 (print_c_decl): Changed generated types to match JNI. No longer
20127 print class name before method name.
20128 (print_method_info): Print "static" before static methods.
20129 Print "virtual" before non-final methods.
20130 (usage): Use exit(1), not exit(-1).
20131 (main): Likewise.
20132 (print_field_info): Use %.17g to print a double.
20133 (last_access): New globals.
20134 (process_file): Initialize last_access.
20135 (usage): Now static.
20136 (ACC_VISIBILITY): New define.
20137 (generate_access): New function.
20138 (print_field_info): Call it.
20139 (print_method_info): Likewise. Also, generate information for all
20140 methods, not just native methods. Return void.
20141 (print_c_decl): Return void.
20142 (print_field_info): Return void.
20143
20144 1998-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
20145
20146 * Makefile.in (JAVABISONFLAGS): Specific flag for bison when
20147 processing the jc1 grammar file. Prefix bison functions and
20148 variables with java_.
20149 (parse.c): Dependencies on parse.h and lex.h
20150 * expr.c (build_java_arrayaccess): Function now global.
20151 * java-tree.h: Comment reorganized to carry on previous
20152 classification effort.
20153 (RESOLVE_EXPRESSION_NAME_P, RESOLVE_PACKAGE_NAME_P,
20154 RESOLVE_TYPE_NAME_P): New flags on WFLs.
20155 * jcf-parse.c (parse_source_file): java_parse_source_file renamed
20156 java_parse (new prefix java_ generated by bison).
20157 (java_layout_parsed_class, java_register_parsed_class): Function
20158 call removed.
20159 (yyparse): Removed unnecessary call to init_outgoing_cpool.
20160 * lex.c (static tree wfl_op): Variable deleted.
20161 (java_init_lex): Initialize kw_super and kw_this. Initialize more
20162 ctxp fields to NULL_TREE.
20163 (java_lex): No longer create WFL for operators. Filename caching
20164 mechanism deleted. Call BUILD_OPERATOR for `.', '(', '['. Strings
20165 created as STRING_CST and later expanded. Removed extra argument
20166 to BUILD_OPERATOR and BUILD_OPERATOR2. Build operators for THIS
20167 and SUPER.
20168 (build_wfl_node): Removed code in comments.
20169 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): No longer build a WFL but
20170 store token and location data in the current bison token.
20171 * parse.h: Removed pre-processor based symbol prefixes hack. Moved
20172 static/extern function declaration at the beginning of the file.
20173 (struct qualification): Data structure definition deleted.
20174 (RESOLVE_CHAIN_REMAINDER): Macro definition deleted.
20175 (qualify_ambiguous_name): Function declaration modified. Function
20176 now returns nothing.
20177 (build_array_ref, patch_array_ref, make_qualified_name,
20178 resolve_qualified_expression_name, maybe_generate_clinit,
20179 resolve_field_access): New static function declarations.
20180 (build_java_arrayaccess): New extern function declaration.
20181 (enum { RESOLVE_EXPRESION_NAME...}): Enum deleted.
20182 (CALL_EXPR_PRIMARY): Macro deleted.
20183 (EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION): New macros.
20184 (struct parser_ctxt): Field initialized_final
20185 removed. non_static_initialized, static_initialized: New fields.
20186 * parse.y (static tree kw_super, static tree kw_this): New global
20187 static.
20188 (%union): tree wfl field of operator member replaced by int
20189 location. WFLs are non longer created for operators.
20190 (OSB_TK, DOT_TK, THIS_TK, SUPER_TK): Tagged <operator>.
20191 (qualified_name:): Now calls make_qualified_name to build the
20192 identifier.
20193 (type_declaration:): Consider generating <clinit> when class
20194 parsing completed.
20195 (variable_declarator:): Directly build an assignment node when the
20196 variable is initialized when declared.
20197 (this_or_super:): Build a WFL and set current location when THIS
20198 or SUPER are parsed.
20199 (expression_statement:): Wrap statement around a WFL.
20200 (primary_no_new_array:): Fixed typo. Changed value returned by
20201 THIS_TK because of its new type (temporary).
20202 (dim_exprs:): Temporary fix because of OSB_TK's new type.
20203 (field_access:): Build qualified name with SUPER.
20204 (method_invocation:): Fixed returned value because of SUPER's new
20205 type.
20206 (array_access:): Use OSB_TK location information.
20207 (post_increment_expression:, post_decrement_expression:,
20208 unary_expression:, pre_increment_expression:,
20209 pre_decrement_expression:, unary_expression_not_plus_minus:,
20210 cast_expression:, multiplicative_expression:,
20211 additive_expression:, shift_expression:, relational_expression:,
20212 equality_expression:, and_expression:, exclusive_or_expression:,
20213 inclusive_or_expression:, conditional_and_expression:,
20214 conditional_or_expression:, assignment:): Use new location/token
20215 information available on operators.
20216 (create_class): Set super_decl_type to NULL_TREE when processing
20217 java.lang.Object.
20218 (register_fields): Field initialization is now a MODIFY_EXPR
20219 node. Chain initialization code to the matching lists (according
20220 to the field declaration modifiers).
20221 (maybe_generate_clinit): New function.
20222 (method_header): Don't set method's DECL_NAME to a WFL when adding
20223 methods to java.lang.Object.
20224 (resolve_and_layout): Now can return NULL_TREE if the type
20225 resolution fails. Otherwise, return the class DECL instead of its
20226 TYPE.
20227 (check_method_redefinition): Don't patch method DECL_NAME if it
20228 belongs to java.lang.Object.
20229 (process_imports): Simply assign error_found to the value returned
20230 by check_pkg_class_access.
20231 (declare_local_variables): Don't use their init statements (if
20232 any) when parsing error were previously found. Reuse MODIFY_EXPR
20233 build during parsing as an init statement.
20234 (java_method_add_stmt): Now return the current method body.
20235 (java_layout_parsed_class, java_register_parsed_class): Functions
20236 removed.
20237 (java_complete_expand_methods): Initialize the constant pool on a
20238 per class basis. Layout the classes before expanding their method
20239 bodies. Don't try expand artificial constructor code if error were
20240 found. Make the classes data and register them if no error were
20241 found.
20242 (java_complete_expand_method): Retrieve an artificial constructor
20243 argument list before entering its body. Assign the top block to
20244 the artificial constructor function body and set types of declared
20245 blocks and compound statements to void. Walk method body if not an
20246 artificial constructor.
20247 (make_qualified_name, cut_identifier_in_qualified): New functions.
20248 (resolve_expression_name): Fixed comments. Save/restore the
20249 current class CLASS_LOADED_P flag value. Build non qualified
20250 static field access and handle qualified expression names.
20251 (resolve_field_access, resolve_qualified_expression_name): New
20252 functions.
20253 (patch_method_invocation_stmt): Use the new expression resolution
20254 scheme, calling resolve_field_access when the function call is
20255 resolved as an expression.
20256 (qualify_ambiguous_name): Function rewritten to work on qualified
20257 expression produced by make_qualified_name.
20258 (java_complete_tree): Promote type when function's argument are
20259 RECORD_TYPEs. While processing the MODIFY_EXPR case: don't patch
20260 the assignment to discover further errors if RHS is a expression
20261 name that fails to evaluate. Declare LHS initialized even though
20262 the assignment failed. Don't use the location variable and removed
20263 extra argument in patch function calls. Now handle the ARRAY_REF
20264 case and build internal string representation when STRING_CSTs are
20265 walked.
20266 (build_method_invocation): Don't wrap function call around a WFL.
20267 (build_assignment): Likewise. Use the operator location
20268 information.
20269 (patch_assignment): Handle array access LHSs. Handle error
20270 provenance, resulting in a better error report.
20271 (build_binop): Use op_location from operator as binop location
20272 information.
20273 (build_unaryop, build_incdec, build_cast): Likewise.
20274 (patch_binop): Extract location information from the node. Fixed
20275 typo in error message.
20276 (patch_unary_op): Extract location information from the node.
20277 (build_array_ref, patch_array_ref): New functions.
20278
20279 1998-07-01 Tom Tromey <tromey@cygnus.com>
20280
20281 * expr.c (expand_java_INSTANCEOF): Changed calling convention to
20282 match _Jv_IsInstanceOf.
20283 * decl.c (init_decl_processing): Use _Jv_NewArray, not
20284 soft_newarray. Use _Jv_IsInstanceOf, not soft_instanceof.
20285
20286 1998-06-30 Tom Tromey <tromey@cygnus.com>
20287
20288 * decl.c (init_decl_processing): Functions are now named
20289 _Jv_MonitorEnter and _Jv_MonitorExit, and return jint.
20290
20291 1998-06-29 Per Bothner <bothner@cygnus.com>
20292
20293 * java-tree.h (load_class): Add prototype.
20294 * class.c (is_compiled_class): Add missing arg to load_class.
20295 * expr.c (expand_java_NEW): Call load_class.
20296 * parse.y (process_import): Removed bogus use of void return value.
20297
20298 1998-06-25 Per Bothner <bothner@cygnus.com>
20299
20300 * decl.c, java-tree.h (soft_athrow_node): Renamed to soft_node.
20301 Function name is "_Jv_Throw" instead of "soft_athrow".
20302 * decl.c, java-tree.h (soft_new_node): Renamed to alloc_object_node.
20303 Function name is "_Jv_AllocObject" instead of "soft_new".
20304 Takes an extra parameter (object size).
20305 * expr.c: Update calls.
20306
20307 1998-06-24 Per Bothner <bothner@cygnus.com>
20308
20309 * lex.c (java_get_line_col): Handle end-of-file.
20310 * except.c (expand_end_java_handler): Handle null type (i.e. finally).
20311
20312 1998-06-24 Andrew MacLeod <amacleod@cygnus.com>
20313
20314 * lang.c (lang_init): Make -fexceptions the default.
20315 * except.c (maybe_start_try, maybe_end_try): Don't do anything if
20316 exception handling is not turned on.
20317
20318 1998-06-23 Andrew MacLeod <amacleod@cygnus.com>
20319
20320 * lang.c (flag_new_exceptions): Make this this default.
20321 * decl.c (end_java_method): Call emit_handlers.
20322 * except.c (method_init_exceptions): Set language code and version.
20323 (expand_start_java_handler): Enable exception, and call
20324 expand_eh_region_start.
20325 (expand_end_java_handler): Enable exception, and set up catch blocks.
20326 (emit_handlers): New routine to generate the saved handlers.
20327 * java-except.h (emit_handlers): Add prototype.
20328
20329 1998-06-12 Per Bothner <bothner@cygnus.com>
20330
20331 We used to have three different representations of the constant pool:
20332 the CPool structure, the tree_constant_pool, and the constructures
20333 used to build the Class object (which may need class and string
20334 constants) in compiled code. None were appropriate for compiling
20335 to .class files, so I did a major overhaul.
20336
20337 First, the tree_constant_pool array was removed. Things were
20338 modified to the CPool structure in the JCF could be used.
20339 Second, a "capacity" field was added to the CPool, and functions
20340 written to search for a matching constant, adding one if not found.
20341 The code that generated the Class object was changed to use a CPool.
20342 The actual TREE_LISTs used to build the CONSTRUCTORs used for
20343 the static Class object are now only in build_constants_constructor.
20344 Finally, I wrote code which can generate a .class file (including its
20345 constant pool) from the RECORD_TYPE of a class. This is a big step
20346 on the way to compiling Java source into .class files.
20347
20348 * jcf-write.c: New file. Writes out a RECORD_TYPE as a .class file.
20349 * Makefile.in (JAVA_OBJS): Added jcf-write.o.
20350
20351 * java-tree.h (CPOOL_UTF, CONSTANT_ResolvedFlag,
20352 CONSTANT_ResolvedString, CONSTANT_ResolvedClass): New macros.
20353 (NAME_AND_TYPE_NAME, NAME_AND_TYPE_SIGNATURE, COMPONENT_REF_NAME,
20354 COMPONENT_REF_NAME_AND_TYPE, COMPONENT_REF_SIGNATURE): Redefined.
20355 (COMPONENT_REF_CLASS): Replaced by COMPONENT_REF_CLASS_INDEX.
20356 (lang_type): Removed constant_pool field.
20357 * jcf.h (CPool): Renamed size to count. Added field capacity.
20358 (CPOO_COUNT, CPOOL_UINT, CPOOL_USHORT1, CPOOL_USHORT2,
20359 CPOOL_FINISH, CPOOL_INIT, CPOOL_REINIT): New macros.
20360 Rewrite some of the old JCF_XXX in terms of CPOOL_XXX macros.
20361
20362 * constants.c (current_constant_pool_tags, current_constant_pool_data,
20363 current_constant_pool_length), java-tree.h: Replaced by outgoing_cpool.
20364 * constants.c (build_constants_constructor): Use new outgoing_cpool.
20365 (set_constant_entry, find_constant1, find_constant2,
20366 find_class_constant, count_constant_pool_bytes, write_constant_pool,
20367 find_utf8_constant, find_class_or_string_constant): New functions.
20368
20369 * jcf-parse.c (load_class): Don't save/restore tree-constant_pool.
20370 (get_constant): Use current_jcf.cpool instead of tree_constant_pool.
20371 (give_name_to_class, get_class_constant): Likewise.
20372 * jcf-parse.c, java-tree.h (tree_constant_pool): Removed.
20373 (get_name_and_type_constant, get_ref_constant): Removed.
20374 * parse.h (parser_ctxt): Remove field tree_constant_pool.
20375 * parse.y: Don't save/restore tree_constant_pool.
20376 * verify.c (verify_jvm_instructions): Update for new approach.
20377 * expr.c (expand_invoke, expand_java_field_op): Likewise.
20378
20379 * lang-options.h: Added -femit-class-file, -femit-class-files.
20380 * lang.c (flag_emit_class_files), java-tree.h: New flag.
20381 (lang_f_options): Added "emit-class-file(s)".
20382
20383 * expr.c (build_java_arrayaccess): Generate more efficient array
20384 bounds checking, by using unsigned compare.
20385
20386 * expr.c (expand_invoke): Re-arrange error checks to make more robust.
20387
20388 1998-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
20389
20390 * parse.h: New comment on the handling of unresolved type
20391 identifiers. JDEPs are now part of the jdep_code enum.
20392 (typedef struct jdep): Now use enum jdep_code or int, depending on
20393 availability. Both are narrowed down to an 8 bits bitfield.
20394 (CALL_EXPR_PRIMARY): Fixed comment.
20395
20396 1998-06-10 Tom Tromey <tromey@cygnus.com>
20397
20398 * Make-lang.in (java): Added gjavac and jvgenmain.
20399 (java.start.encap): Depend on gjavac.
20400 (java.rest.encap): Depend on jvgenmain.
20401
20402 * Make-lang.in (JAVA_INSTALL_NAME): Name is gjavac, not c++.
20403 (JAVA_CROSS_NAME): Likewise.
20404 (java.all.build): Depend on jvgenmain and gjavac.
20405 (java.all.cross): Depend on jvgenmain and gjavac-cross.
20406 (jvgenmain$(exeext)): New target.
20407 (java.install-common): Wrote.
20408 * config-lang.in (compilers, stagestuff): Added gjavac and
20409 jvgenmain.
20410
20411 1998-06-10 Dave Brolley <brolley@cygnus.com>
20412
20413 * lang.c (lang_decode_option): New argc/argv interface.
20414
20415 1998-06-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
20416
20417 * ChangeLog: Fixed entries not compliant with the Gnu Coding Standard.
20418 * decl.c (build_decl_no_layout): New function.
20419 * expr.c (java_lang_expand_expr): Layout declarations found in
20420 blocks before they're pushed.
20421 * jcf-parse.c (load_class): Save current line when parsing class
20422 file.
20423 (parse_source_file): Register class before expanding their
20424 methods.
20425 * lang.c (put_decl_node): Produce `null' when `void *' is
20426 processed.
20427 * lex.c (static tree wfl_op): New static global, for error report
20428 on casts.
20429 (java_init_lex): wfl_operator and wfl_op initialized
20430 here. Filename caching added for wfl_op. Return wfl_op when `(' is
20431 parsed.
20432 * parse.h (build_unaryop, build_incdec, patch_unaryop, build_cast,
20433 patch_cast, valid_ref_assignconv_cast_p, can_cast_to_p,
20434 build_unresolved_array_type): New static function definitions.
20435 (build_decl_no_layout): New extern function declared.
20436 (OBSOLETE_MODIFIER_WARNING): Report error only if the WFL of the
20437 faulty modifier exists.
20438 (TYPE_INTERFACE_P, TYPE_CLASS_P): New macros.
20439 (ERROR_CAST_NEEDED_TO_INTEGRAL): Error message tuned.
20440 (UNARY_PLUS_EXPR): New fake operator.
20441 (struct parser_ctxt): New field osb_number.
20442 * parse.y (static tree wfl_operator): New static WFL for operator
20443 bound error messages.
20444 (DECR_TK, INCR_TK): Moved.
20445 (OP_TK): Tagged <operator>.
20446 (array_type:): Now call build_unresolved_array_type.
20447 (dim_expr:): Count the number of '[' seen.
20448 (post_increment_expression, post_decrement_expression,
20449 pre_increment_expression, pre_decrement_expression,
20450 unary_expression_not_plus_minus, unary_expression:): Actions are
20451 now building the corresponding unary expressions.
20452 (cast_expression:): Actions are now building cast expressions.
20453 (build_unresolved_array_type): New function.
20454 (create_interface): Reset the number of declared interfaces.
20455 (create_class): Likewise.
20456 (method_header): Methods declared within the scope of an interface
20457 are now implicitly set public and abstract.
20458 (java_complete_class): Variable's and parameter's type are patched
20459 with a promoted type.
20460 (declare_local_variables): Resolved non builtin types are promoted
20461 before being used to build a variable decl. Removed type patch
20462 posted on variable initialization statement.
20463 (source_start_java_method): Use build_decl_no_layout to build the
20464 decl of a parameter of incomplete type.
20465 (java_register_parsed_class): Process interfaces too. Call
20466 rest_of_decl_compilation on each processed class declarations.
20467 (java_complete_expand_methods): Don't attempt to expand things in
20468 interfaces.
20469 (java_complete_tree): Process CONVERT_EXPR, even though it always
20470 has a type. Propagate error_mark_node to node's type too. Promote
20471 method's call argument type and return error_mark_node if
20472 argument's completion didn't work. MODIFY_EXPR can have a WFL as a
20473 RHS. Fixed bug in the handling of bogus RHS of a fixed type. Now
20474 handle unary operator nodes.
20475 (build_assignment): Added comment.
20476 (print_int_node): New function.
20477 (patch_assignment): New second argument. New error handling. Use
20478 print_int_node. Handle references. Use can_cast_to_p to issue
20479 different error message according to the context and check upon
20480 the initialization of the RHS.
20481 (can_cast_to_p, valid_ref_assignconv_cast_p): New functions.
20482 (operator_string): Handle more operators.
20483 (patch_binop): No longer use a function static
20484 wfl_operator. Improved error message on shift distance.
20485 (build_unaryop, build_incdec, build_cast, patch_unaryop,
20486 patch_cast): New functions.
20487
20488 1998-06-05 Per Bothner <bothner@cygnus.com>
20489
20490 * jvspec.c: New file.
20491 * Make-lang.in: New rules to build gjavac from jvspec.c and ../gcc.c.
20492
20493 * java-tree.h (identifier_subst): Add declaration.
20494
20495 1998-06-04 Tom Tromey <tromey@cygnus.com>
20496
20497 * jvgenmain.c (main): Generate call to JvRunMain.
20498
20499 * class.c (make_class_data): Push value for "sync_info" field.
20500 * decl.c (init_decl_processing): Push "sync_info" field.
20501
20502 1998-06-03 Per Bothner <bothner@cygnus.com>
20503
20504 * typeck.c (build_java_array_type): Set TYPE_NAME to actual
20505 Java (source) name, not signature.
20506 Set TYPE_ALIGN to (at least) that of element_type.
20507
20508 1998-06-02 Per Bothner <bothner@cygnus.com>
20509
20510 * class.c: Moved classname-mangling-rekated code to ...
20511 * mangle.c: ... this new file.
20512 * jvgenmain.c: New program (needs mangle.c) to generate main program.
20513 * Makefile.in: Update for above changes.
20514
20515 1998-06-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
20516
20517 * expr.c (truthvalue_conversion): Convert integer and floating
20518 point value to their truth value.
20519 * lex.c (java_lex): Handle the `null' literal.
20520 * parse.h (JREFERENCE_TYPE_P, DECL_P): New macros.
20521 (ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
20522 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED):
20523 New macros.
20524
20525 * parse.y: Reorganization/documentation on token declaration.
20526 (binop_lookup[]): New added new tree codes.
20527 (relational_expression): Build corresponding binary operators.
20528 (equality_expression, conditional_and_expression,
20529 conditional_or_expression): Likewise.
20530 (java_complete_class): Fix crash in debug message.
20531 (java_complete_tree): Check initialization of method call
20532 arguments. Further bogus node evaluation to detect more error
20533 during assignments. Handles more binary operators.
20534 (patch_assignment): Use DECL_P.
20535 (build_binop): Fix crash when using URSHIFT_EXPR, a Java only tree
20536 code.
20537 (operator_string): Handle more case. Compacted source.
20538 (patch_binop): Changed function comment. Checking for
20539 uninitialized first operand takes the compound assignment into
20540 account and uses DECL_P. Checking for uninitialized second operand
20541 delayed to routine's end. Use macros to issue type bound error
20542 messages and issue messages on both operands if their types are
20543 different. Force fixed type into node. Handle all binary
20544 operators.
20545
20546 1998-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
20547
20548 * java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros.
20549 * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
20550 build operator node and return tokens.
20551 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
20552 * parse.h (java_complete_tree): Changed returned type in prototype.
20553 (build_method_invocation, build_assignment, patch_assignment,
20554 patch_binop): New static function declarations.
20555 (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
20556 BUILD_EXPR_WFL): New macros.
20557 * parse.y (enum tree_code binop_lookup[]): New static for token to
20558 TREE_CODE lookup.
20559 (%union): Parser union has new sub-structure `operator'.
20560 (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
20561 PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
20562 ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
20563 ASSIGN_ANY_TK): Tokens tagged `operator'.
20564 (EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK,
20565 AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK,
20566 MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK,
20567 REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'.
20568 (assignment_operator:): Rule tagged `operator'.
20569 (expression_statement:): Re-installed default rule.
20570 (method_invocation:): Sub rules call build_method_invocation.
20571 (postfix_expression:): Don't attempt to resolve name here. Just
20572 return an ID.
20573 (multiplicative_expression:): Sub-rules build corresponding binop
20574 expression node.
20575 (additive_expression:, shift_expression:, and_expression:,
20576 exclusive_or_expression:, inclusive_or_expression:): Likewise.
20577 (assignment:): Sub rule invoke build_assignment.
20578 (assignment_operator:): Default rules on sub rules.
20579 (force_error): Added documentation on this variable.
20580 (declare_local_variables): Build initialization calling
20581 build_assignment.
20582 (expand_start_java_method): Removed unused rtx declaration. Mark
20583 arguments as already initialized.
20584 (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
20585 (java_complete_expand_methods): Don't process next method if
20586 completion of the previous one triggered errors.
20587 (java_complete_expand_method): Call source_end_java_method if no
20588 error were found during completion.
20589 (resolve_expression_name): Use IDENTIFIER_LOCAL_VALUE to retrieve
20590 locals declaratilon. Handle names found within a class. Return
20591 error_mark_node when things aren't found.
20592 (patch_method_invocation_stmt): Return error_mark_node on failures.
20593 (patch_invoke): Removed unused local. Return the correct node.
20594 (java_complete_tree): Now returns a value. The BLOCK section binds
20595 local identifiers and the type of a BLOCK is now void. Assign the
20596 result of operand completion on COMPOUND_EXPR. Assign the
20597 encapsulated node of a WFL to the result of its completion, except
20598 when the node is an identifier. Now handle MODIFY_EXPR and several
20599 binary operators. Return error_mark_node on errors.
20600 (build_method_invocation, build_assignment, patch_assignment,
20601 build_binop, operator_string, patch_binop): New functions.
20602 * typeck.c (binary_numeric_promotion): New function.
20603
20604 1998-05-21 Per Bothner <bothner@cygnus.com>
20605
20606 * class.c (identifier_subst): New convenience wrapper for ident_subst.
20607 Replace most uses of ident_subst by identifier_subst.
20608
20609 * class.c (push_class_static_dummy_field): Removed function.
20610 (build_class_ref): Find Class object decl by looking up "CNAME.class",
20611 instead of looking got "class" static field. Create that decl here.
20612 (class_identifier_node): Removed; no longer needed.
20613 (init_class_processing): Don't init class_identifier_node.
20614 * jcf-parse.c (jcf_parse): Don't call push_class_static_dummy_field.
20615 Do nreverse 0 times (instead of twice) for Object and Class.
20616 * parse.y (java_layout_parsed_class): No push_class_static_dummy_field.
20617
20618 1998-05-20 Per Bothner <bothner@cygnus.com>
20619
20620 * jcf-parse.c (parse_class-file): Set lino to smallest line number,
20621 while initializing linenumber_count and linenumber_table.
20622 Do it before init_function_start (which calls emit_line_note).
20623 * expr.c (expand_byte_code): Don't need to clear lineno here.
20624
20625 1998-05-18 Tom Tromey <tromey@cygnus.com>
20626
20627 * class.c (append_gpp_mangled_type): If `qualifications' is >=9,
20628 then mangle number as _N_.
20629
20630 * class.c (mangle_class_field): New function.
20631 (build_class_ref): Set assembler name of class reference using
20632 mangle_class_field.
20633 (push_class_static_dummy_field): Likewise.
20634
20635 1998-05-17 Michael Tiemann <tiemann@cygnus.com>
20636
20637 * parse.y (source_start_java_method): Use TREE_SET_CODE instead
20638 of assigning to TREE_CODE. The latter method exploits a feature
20639 of GCC that is not ANSI compliant.
20640
20641 1998-05-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
20642
20643 * decl.c (pushdecl_force_head): New function.
20644 (pushlevel): Removed conditional printf.
20645 (complete_start_java_method): Don't enter local variable scope if
20646 function is compiled from source code.
20647 * expr.c: parse.h now included
20648 (java_lang_expand_expr): New function.
20649 * jcf-io.c (find_class): Use SOURCE_FRONTEND_DEBUG instead of
20650 printf. Terminate buffer when doing directories.
20651 * jcf-parse.c (parse_source_file): Call lang_init_source before
20652 parsing and before code generation.
20653 * jcf.h (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally
20654 use printf if the macro is defined.
20655 * lang.c (lang_init): Install lang_expand_expr hook on
20656 java_lang_expand_expr.
20657 (java_dummy_print): New function.
20658 (lang_init_source): New function.
20659 * lex.c (java_lex): Remember location of an opening brace at the
20660 second nesting level.
20661 (java_is_eol): Unget character seen after a CR if it is EOF.
20662 * parse.h: Now includes lex.h
20663 (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally use
20664 printf if the macro is defined.
20665 (expand_start_java_method, build_expr_block, enter_block,
20666 exit_block, lookup_name_in_blocks, maybe_absorb_scoping_blocks):
20667 New static function declarations.
20668 (pushdecl_force_head): New extern function declaration.
20669 (INCOMPLETE_TYPE_P): New macro.
20670 (JDEP_PARM, JDEP_TYPE): New entries in JDEPs enum.
20671 (BLOCK_CHAIN_DECL, BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY,
20672 BLOCK_EXPR_ORIGIN): New macros.
20673 (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
20674 DECL_SOURCE_LINE_LAST): New macros.
20675 (struct parser_ctxt): Removed field current_method_decl, redundant
20676 with the field current_function_decl. Added fields
20677 first_ccb_indent1 and pending_block.
20678 * parse.y (method_body, literal, INT_LIT_TK, FP_LIT_TK,
20679 BOOL_LIT_TK, CHAR_LIT_TK, STRING_LIT_TK, NULL_TK, VOID_TK): Rules
20680 tagged <node>
20681 (SOURCE_FRONTEND_DEBUG): Used as macro accepting varargs.
20682 (compilation_unit:): Cosmetic on sub rule.
20683 (type_declaration:): Cosmetic on sub rules. Added an error rule.
20684 (variable_initializer:): Installed default rule on expression:.
20685 (method_declaration:): method_header: starts a new
20686 method. method_body: installs the function body, absorbs blocks
20687 emitted for temporary variable scopings, pops function's body block
20688 and merges function's last statement lineno in DECL_SOURCE_LINE.
20689 (method_body:): Installed default rules.
20690 (block:): Call enter_block when an opening brace is seen. Absorb
20691 scoping blocks and call exit_block when a closing brace is seen.
20692 (block_statement:): Cosmetic changes.
20693 (method_invocation:): Create WFL around CALL_EXPR node.
20694 (patch_stage): Added comment around definition.
20695 (method_header): Try to use first_ccb_indent1 as the first line of
20696 the method, so BP debug info are emitted at the first opening
20697 brace of the function. If the function has no body, use the
20698 location of the function's name. Override currently defined method
20699 name with the matching WFL so we can point redefinition errors
20700 using the location where the function's name was declared.
20701 (check_abstract_method_header): Interprets DECL_NAME as an
20702 identifier or as a WFL, accordingly.
20703 (java_complete_class): New cases for JDEP_TYPE and JDEP_PARM.
20704 (check_method_redefinition): Use DECL_NAME as a WFL. Extract
20705 location and name information out of it and reinstall DECL_NAME to
20706 its original identifier node value.
20707 (lookup_cl): Use DECL_SOURCE_LINE_FIRST (first line of the
20708 function's source code).
20709 (read_import_dir): Test the value returned by find_class and issue
20710 a fatal accordingly.
20711 (declare_local_variables): Push a new block for the scope of the
20712 new variable(s) if code has been already generated at that nesting
20713 level. Pinpoint redefinition errors using the variable id
20714 WFLs. Generate initialization code if necessary. If the variable
20715 type is incomplete, register a patch on its decl.
20716 (source_start_java_method): Rewritten. Define a new block for the
20717 function's parameters. Build parameter decl out of function's
20718 arguments and register them for a patch if their types are
20719 incomplete.
20720 (expand_start_java_method): Includes the part of
20721 source_start_java_method that was pushing the parameter decls and
20722 completing the method start code.
20723 (source_end_java_method): Removed call the expand_end_bindings and
20724 poplevel (already taken care of). Reinstall function's arguments
20725 and get function's last line of code before calling
20726 expand_function_end.
20727 (java_method_add_stmt): New comment before the function's
20728 code. Complement the second operand of the current COMPOUND_EXPR
20729 if necessary.
20730 (java_complete_expand_methods): Don't generate debug info on line
20731 zero when expanding a generated constructor.
20732 (java_complete_expand_method): Set start and end line numbers for
20733 a artificially generated constructor to one and manually call
20734 enter_block and exit_block when defining it. For all methods:
20735 expand function's start calling the new expand_start_java_method
20736 and invoke java_complete_tree on the effective method's body, if
20737 any.
20738 (resolve_expression_name): Now use lookup_name_in_blocks to search
20739 local variable decls and print out an error when variables are
20740 undefined.
20741 (patch_method_invocation_stmt): Inserted comment before the
20742 function's code.
20743 (lookup_method_invoke): Chain method's arguments using chainon
20744 with the current arg list as a second argument. Inserted missing
20745 IDENTIFIER_POINTER when reporting an error on methods not found.
20746 (refine_accessible_methods_list): Don't retain constructors.
20747 (patch_arguments): Function removed.
20748 (java_complete_tree): Inserted comment before the function's
20749 code. New case for BLOCKs. Moved the WFL case a bit
20750 further. Complete function's arguments.
20751 (build_expr_block, enter_block, exit_block, lookup_name_in_blocks,
20752 maybe_absorb_scoping_blocks): New functions.
20753
20754 1998-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
20755
20756 * jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if
20757 previously set.
20758 * jcf-parse.c (parse_source_file, java_error_count): New forward
20759 and extern declarations.
20760 (java_parse_abort_on_error): Macro moved.
20761 (jcf_parse_source): fatal called if fopen fails. Now calls
20762 parse_source_file.
20763 (parse_source_file): New parse_only parameter. Reflects the
20764 elimination of the second pass.
20765 (yyparse): parse_source_file called with argument set to 0.
20766 * jcf.h (JCF_ZERO): Sets java_source to zero.
20767 * lex.c (java_init_lex): pass argument is gone. Function modified
20768 to be called once during the analysis of a file.
20769 (java_unget_unicode): Fixed typo in fatal message.
20770 (java_get_line_col): Likewise.
20771 (java_lval): Likewise. String literals no longer built during
20772 second pass.
20773 * lex.h (JAVA_COLUMN_DELTA): Take the tabulation character into
20774 account.
20775 * parse.h (MODIFIER_WFL): New macro.
20776 (parse_check_super, parser_check_super_interface): Now return int.
20777 (parser_chain_incomplete_item, not_builtin_p,
20778 complete_method_decl): Declarations removed.
20779 (build_method_invocation_stmt, build_invoke): Renamed using the
20780 `patch' instead of `build'
20781 (register-incomplete_type, obtain_incomplete_type,
20782 java_complete_tree, java_complete_expand_method,
20783 unresolved_type_p, create_jdep_list): New function declarations.
20784 (IC_TYPE, IC_DEPEND, DEPEND_DECL, DEPEND_WFL, BEGIN_ONLY_PASS,
20785 END_ONLY_PASS, ELSE_ONLY_PASS): Macro deleted.
20786 (jdep): New typedef on new struct _jdep.
20787 (JDEP_DECL, JDEP_DECL_WFL, JDEP_KIND, JDEP_SOLV, JDEP_WFL,
20788 JDEP_MISC, JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN,
20789 JDEP_TO_REVOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
20790 JDEP_RESOLVED_P): New macros.
20791 (JDEP_NO_PATCH, JDEP_SUPER, JDEP_FIELD, JDEP_METHOD,
20792 JDEP_METHOD_RETURN, JDEP_METHOD_END, JDEP_INTERFACE,
20793 JDEP_VARIABLE): New enum values and jdep kinds.
20794 (jdeplist): New typedef on struct _jdeplist.
20795 (CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, JDEP_INSERT): New
20796 macros.
20797 (CALL_EXPR_PRIMARY): New macro.
20798 (struct parser_ctxt): Fields java_pass, current_method_decl,
20799 method_decl_list deleted. New field jdeplist.
20800 (INCOMPLETE_P): Macro deleted.
20801 * parse.y (single_type_import_declaration:): Removed pass switch.
20802 (type_import_on_demand_declaration): Likewise.
20803 (field_declaration:): Removed pass switch on all sub rules.
20804 (class_declaration:): Call the complete_class_decl removed on
20805 class_body rules.
20806 (method_declaration:): Removed second pass switch. No longer chain
20807 methods decl when method_header reduced.
20808 (method_header:): Sub rules no longer depend on pass switch.
20809 (method_declarator:): Likewise.
20810 (method_body:): Likewise.
20811 (abstract_method_declaration:): Likewise.
20812 (block_statement:): Likewise.
20813 (local_variable_declaration:): Likewise.
20814 (argument_list:): Likewise.
20815 (method_invocation:): Likewise. Call to build_method_invocation_stmt
20816 removed. Partial CLASS_EXPR tree node built instead.
20817 (postfix_expression:): Removed pass switch on all sub rules.
20818 (java_pop_parser_context): Free classd_list content.
20819 (yyerror): Call obstrack_grow0 to finalize error message.
20820 (check_class_interface_creation): Comment modified to reflect new
20821 returned value meaning. Removed second pass switch. Return 1 if an
20822 error was found, 0 otherwise. Adjust pointer on filename if a
20823 leading path separator was found.
20824 (maybe_create_class_interface_decl): Removed first pass switch
20825 when linking the class decl to the class_list. Install a new
20826 jdep_list for the class.
20827 (add_superinterfaces): List of unresolved interfaces is
20828 gone. Unresolved interfaces are directly added to the current
20829 dependencies list.
20830 (create_interface): Second pass shortcut removed.
20831 ctpx->modifier_ctx access through MODIFIER_WFL.
20832 (create_class): Second pass shortcut removed. Call to
20833 register_incomplete_type replaces the call to
20834 parser_chain_incomplete_item.
20835 (complete_class_decl): Function removed.
20836 (duplicate_declaration_error): New way of retrieving redeclared
20837 item type.
20838 (register_fields): Call to lookup_modifier_cl replaced by
20839 MODIFIER_WFL. New way of handling unresolved type, using
20840 unresolved_type_p and obtain_incomplete_type.
20841 register_incomplete_type replaces call to parser_chain_incomplete_item.
20842 (patch_stage): New static global variable.
20843 (method_header): New way of handling unresolved type, using
20844 unresolved_type_p and obtain_incomplete_type. patch_stage used to
20845 indicates that the method decl needs to be patched.
20846 (check_abstract_method_header): Call to lookup_modifier_cl
20847 replaced by MODIFIER_WFL.
20848 (method_declarator): Incomplete argument type are registered
20849 calling register_incomplete_type. Patch on the declared method is
20850 issued in that case.
20851 (unresolved_type_p): New function.
20852 (parser_check_super_interface): New comment to reflect function's
20853 modified returned type (int). Function and has a new argument
20854 this_wfl. Call to parse_error_context uses this_wfl instead of
20855 relying on lookup_cl.
20856 (parser_check_super): Comment reflects function's new returned
20857 type (int). Function returns nonzero value on error.
20858 (create_jdep_list, reverse_jdep_list, obtain_incomplete_type,
20859 register_incomplete_type, jdep_resolve_class): New functions to
20860 handle incomplete types in declarations.
20861 (java_complete_class): Rewritten to work with the new incomplete
20862 type handling scheme.
20863 (complete_class_report_errors): Likewise.
20864 (complete_method_decl): Removed: it jobs is now handled by
20865 java_complete_class.
20866 (do_resolve_class): Class loaded in not already loaded and not
20867 found in Java source code.
20868 (java_check_regular_methods, java_check_abstract_methods): Don't
20869 call complete_method_decl anymore.
20870 (lookup_modifier_cl, not_builtin_p): Functions deleted.
20871 (read_import_dir): Got rid of the pass number dependency.
20872 (declare_local_variables): New handling of unresolved types (patch
20873 issued).
20874 (source_start_java_method): New parameter level. Function called
20875 with level set to 1 when argument types are potentially
20876 unresolved. Called to complete the job with level set to 2 once
20877 types are complete.
20878 (source_end_java_method): Call to permanent_allocation
20879 removed. Waiting to be replaced by a more suitable obstack
20880 management.
20881 (java_complete_expand_methods, java_complete_expand_method,
20882 java_expand_finals): New functions.
20883 (build_method_invocation_stmt): Renamed
20884 patch_method_invocation_stmt. Extracts function call expression
20885 (wfl) and arguments (args) from CALL_EXPR tree operands.
20886 (build_invoke): Renamed patch_invoke. Fixed typo in fatal
20887 call. Patch the function and argument operand of the CALL_EXPR
20888 tree argument.
20889 (patch_argument, java_complete_tree): New functions.
20890
20891 1998-04-20 Per Bothner <bothner@cygnus.com>
20892
20893 Recover from missing fields and methods (i.e. error instead of fatal).
20894 * decl.c, java-tree.h (TYPE_identifier_node): New global constant.
20895 * expr.c (expand_invoke): Recover from missing method.
20896 (expand_java_field_op): Recover from missing field.
20897 Inline references to java.lang.{Integer,Char,...}.TYPE.
20898 * typeck.c (get_type_from_signature), java-tree.h: New function.
20899 * class.c (add_method): Use get_type_from_signature.
20900 (build_class_ref): Handle a class that was not found.
20901 * typeck.c (convert): Handle conversion to pointers (for convenience).
20902 * verify.c (verify_jvm_instructions): Use get_type_from_signature
20903 instead of lookup_field to handle missing fields.
20904
20905 * jcf-parse.c (process_zip_dir): Set java_source.
20906
20907 1998-04-20 Brendan Kehoe <brendan@cygnus.com>
20908
20909 * jcf-parse.c (set_source_filename): Use TYPE_NAME, not DECL_NAME.
20910
20911 1998-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
20912
20913 * jcf-parse.c (load_class): Don't change input_filename before
20914 calling jcf_parse_source (but still do it before calling
20915 jcf_parse).
20916 (jcf_parse_source): Assign input_filename after having saved the
20917 parser context.
20918 * lex.c (java_init_lex): Chain a WFL node to the import on demand
20919 list. ctxp->modifier_ctx zeroed according to its new
20920 definition. ctxp->filename initialized. Removed
20921 JAVA_MODIFIER_CTX_UNMARK.
20922 (java_unget_unicode): Update the character based column position.
20923 (java_allocate_new_line): ref_count not used anymore. Always free
20924 ctxp->p_line. Initialize c_line->char_col to 0.
20925 (java_get_unicode): Update the character based column position.
20926 (java_lex): Use ctxp->elc to store current position in source
20927 file, at the beginning of the parsed token. Set modifier_ctx entry
20928 corresponding to the parse modifier to a WFL node. Return a WFL
20929 node when an identifier is parsed.
20930 (java_lex_error): Now uses ctxp->elc to store current position in
20931 source.
20932 (build_wfl_node, java_is_eol, java_get_line_col): New functions.
20933 * lex.h (build_wfl_node): New function definitions.
20934 (struct java_line): ref_count and next fields are gone. New field
20935 char_col.
20936 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
20937 JAVA_LINE_UNMARK, ID_NAME, ID_CL): Macro definitions deleted.
20938 (JAVA_COLUMN_DELTA): New macro.
20939 (java_lc): New typedef on new struct _java_lc.
20940 * parse.h (lookup_cl, lookup_modifier_cl): Changed returned types.
20941 (parse_error_context, parse_warning_context): Changed prototypes.
20942 (java_get_line_col): Added as an available global function.
20943 (JAVA_MODIFIER_CTX_UNMARK): Macro removed.
20944 (IC_DECL): Replaced by macro IC_TYPE
20945 (DEPEND_WFL): New macro.
20946 (THIS_MODIFIER_ONLY): Now works with WFL and only remembers the first
20947 wrong modifier.
20948 (exit_java_complete_class): Removed a commented out statement.
20949 (struct parser_ctxt): Added comments on fields. modifier_ctx is
20950 now an array of tree nodes. Deleted fields line_list and
20951 e_line. New field elc, to replace e_line.
20952 * parse.y (array_type:): Build WFL node.
20953 (qualified_name:): Build a single WFL node out of two. Retain
20954 the location information of the first node in the resulting node.
20955 (package_declaration:): Use package name as a WFL node
20956 (single_type_import_declaration:): Use imported name as a WFL node.
20957 (type_import_on_demand_declaration:): Use root of the imported
20958 packages as a WFL node.
20959 (field_declaration:): Removed unused local variable cl.
20960 (method_declaration:): Don't call JAVA_MODIFIER_CTX_UNMARK.
20961 (yyerror): New static elc. Removed static error_line, error_pos.
20962 New local code_from_source. Save ctxp->elc into elc at the first
20963 pass. Call java_get_line_col to get a string of the line where
20964 the error occurred.
20965 (debug_line): Removed static function.
20966 (parse_error_context, parse_warning_context): Parameter cl is now
20967 a WFL node. Use its value to initialize ctxp->elc.
20968 (redefinition_error): Parameter cl is now a WFL node.
20969 (parse_add_interface): New parameter wfl. No longer call
20970 lookup_cl, use wfl instead.
20971 (check_class_interface_creation): Parameter cl is now a WFL node.
20972 (maybe_create_class_interface_decl): Likewise.
20973 (add_superinterfaces): New function.
20974 (create_interface): Removed local cl, node, super_decl,
20975 super_decl_type. Function now uses id as a WFL node. Better
20976 warning/error report on obsolete or forbidden mix of
20977 modifiers. Now calls add_superinterfaces to register interfaces.
20978 (create_class): Removed local cl, node. Local variable id is used
20979 as a WFL node. Better error report on forbidden modifier
20980 mix. Uses add_superinterfaces to register interfaces.
20981 (find_field): Argument cl is now a WFL node. Now store the WFL
20982 node of a fields that needs to be checked for their
20983 initialization.
20984 (method_header): Local variable node non longer used. Local
20985 variable id replaces cl.
20986 (check_modifiers_consistency): Local variable cl is now a WFL
20987 node.
20988 (method_declarator): Local variable cl replaced by parameter id.
20989 (parser_qualified_name): Now uses parameter name as a WFL node.
20990 (parser_check_super_interface): New parameter wfl, for achieve
20991 greater accuracy during error reports.
20992 (parser_chain_incomplete_item): New parameter named location. Used,
20993 along the decl, to construct the incomplete item node.
20994 (java_complete_class): resolve_class now uses WFL node extracted
20995 from the incomplete item node. Macro IC_TYPE replaces TREE_PURPOSE
20996 where appropriate.
20997 (complete_method_decl): Unresolved function's argument types are WFL.
20998 (resolve_class): Parameter cl is now a WFL node.
20999 (resolve_and_layout): Likewise.
21000 (do_resolve_class): Likewise. Try first to use cl and then do the
21001 lookup on the decl when calling check_pkg_class_access.
21002 (complete_class_report_errors): Use IC_TYPE in place of
21003 TREE_PURPOSE where appropriate. Use DEPEND_WFL on dependency
21004 instead of doing a lookup over the decl.
21005 (java_check_final): Use WFL info from field tree list.
21006 (lookup_cl): Rewritten and returns a statically defined WFL node.
21007 (lookup_modifier_cl): Now uses information from WFL nodes.
21008 (process_imports): Likewise.
21009 (read_import_dir): name and cl arguments replaced by a single WFL
21010 node. Function modified accordingly.
21011 (find_in_imports_on_demand): Now uses WFL node.
21012 (check_pkg_class_access): cl argument is now a WFL node.
21013 (declare_local_variables): Fixed to use WFL nodes.
21014 (resolve_expression_name): Likewise.
21015 (build_method_invocation_stmt): name_combo argument renamed
21016 wfl. Function modified to use WFL nodes.
21017 (build_invoke): cl used as a WFL node when calling build_expr_wfl.
21018 (lookup_method_invoke): cl is now a WFL node. Added missing
21019 IDENTIFIER_POINTER to class type decl name.
21020
21021 1998-04-14 Dave Brolley <brolley@cygnus.com>
21022
21023 * lang.c (init_parse): Now returns char* containing the filename.
21024
21025 1998-04-10 Per Bothner <bothner@cygnus.com>
21026
21027 * class.c (layout_class): Mangle repeated arg types to match cc1plus.
21028
21029 * decl.c, java-tree.h (integer_four_node): New INTEGER_CST node.
21030 * class.c (make_class_data): If flag_assume_compiled, initial class
21031 state is CSTATE_PREPARED; make superclass and interfaces direct
21032 references, rather than constant pool indexes.
21033
21034 1998-04-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
21035
21036 * parser.y: Include flags.h. Removed debug variable pl.
21037 (method_declaration:): Uses ctxp->parser_ccb_indent instead of pl.
21038 (block:): Likewise.
21039 (labeled_statement_nsi:): Generate debug info when reducing
21040 expression_statement:.
21041 (check_pkg_class_access): get_access_flags_from_decl invocation
21042 fixed for new CLASS_* flags location.
21043 (source_end_java_method): Save/restore parser context when
21044 entering/leaving this routine. Restore lineno to its right value
21045 before calling expand_end_bindings.
21046 (build_method_invocation_stmt): build_invoke called with the
21047 current line information.
21048 (build_invoke): New argument cl. Wrap the function call around a
21049 wfl node.
21050 (refine_accessible_methods_list): Changed comment, removed
21051 unnecessary code.
21052 * parse.h: Fixed typo in comments.
21053 (CLASS_OR_INTERFACE): Handle the new CLASS_* flags location.
21054 (JAVA_MAYBE_GENERATE_DEBUG_INFO): New macro.
21055 (struct parser_ctxt): New fields ccb_indent, last_ccb_indent1,
21056 parser_ccb_indent.
21057 * lex.c (java_lex): Record the last closing curly bracket of a
21058 function.
21059 * jcf-parse.c (jcf_parse_source): Now calls
21060 java_check_methods. Clarified comment, fixed typo.
21061
21062 1998-04-09 Dave Brolley <brolley@cygnus.com>
21063
21064 * lang.c (init_parse): Expose for non USE_CPPLIB builds.
21065 (finish_parse): Expose for non USE_CPPLIB builds.
21066
21067 1998-04-08 Jeffrey A Law (law@cygnus.com)
21068
21069 * lang.c (lang_print_xnode): New function.
21070
21071 1998-04-03 Per Bothner <bothner@cygnus.com>
21072
21073 * decl.c (class_dtable_decl), java-tree.h: New tree node.
21074 * class.c (get_dispatch_vector, get_dispatch_table): New functions
21075 used to build a class's dispatch table.
21076 (make_class_data): Generate dispatch table if flag_assume_compiled.
21077 Set dtable of class object to address of class_dtable_decl.
21078
21079 * decl.c (int_decl_processing): Make soft_badarrayindex_node
21080 be volatile and have side effects - generates better code.
21081
21082 * class.c, expr.c, parse.y: CLASS_INTERFACE, CLASS_FINAL, etc:
21083 These flags were defined for TYPE_DECLs, but used on RECORD_TYPEs.
21084
21085 * expr.c (expand_invoke): If class is final, method is
21086 effectively final, so can call it directly.
21087
21088 * java-tree.h (TYPE_NVIRTUALS, TYPE_VTABLE): New macros.
21089
21090 * Makefile.in, Make-lang.in: Add missing $(exeext)s.
21091
21092 1998-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
21093
21094 * parse.y (build_method_invocation_stmt): Removed extra argument
21095 to build_invoke.
21096
21097 1998-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
21098
21099 * expr.c (dtable_indent): Now static global.
21100 (expand_invoke): Now call invoke_build_dtable and
21101 build_invokevirtual.
21102 (invoke_build_dtable, build_invokevirtual): New functions.
21103 * jcf-io.c (find_class): Defer issuing a warning by setting
21104 jcf->outofsynch to 1.
21105 * jcf-parse.c (jcf_out_of_synch): New function.
21106 (load_class): Test this_jcf.outofsynch flag and call
21107 jcf_out_of_synch accordingly.
21108 * jcf.h: (typedef struct JCF): New flag outofsynch. Fixed typo in
21109 comment indentation.
21110 * lex.c (java_get_unicode): Fixed code indentation.
21111 (java_lex): Create string literal. Fixed typo. Removed several
21112 premature obstack_free.
21113 * parse.h: New enums for name resolution and invocation mode.
21114 (struct qualification): New data structure.
21115 (RESOLVE_CHAIN_REMAINDER, BUILD_PTR_FROM_NAME): New macros.
21116 (do_resolve_class, build_method_invocation_stmt,
21117 breakdown_qualified, qualify_ambiguous_name, resolve_and_layout,
21118 debug_line, identical_subpath_p, invocation_mode,
21119 refine_accessible_methods_list, build_invoke,
21120 lookup_method_invoke): New functions declared.
21121 (build_invokevirtual, invoke_build_dtable, match_java_method,
21122 build_field_ref, jcf_out_of_synch): New references to external
21123 functions.
21124 (struct parse_ctxt): Removed artificial_constructor field.
21125 * parse.y: (array_type:): Type defined for this rule.
21126 (class_type:): Installed default rule for interface_type:.
21127 (array_type:): Now build Java array type.
21128 (qualified_name:): Now use obstack_grow0.
21129 (method_declaration:): Skip the artificial constructor added to
21130 the list, if any.
21131 (abstract_method_declaration:): Execute the code only during pass 1.
21132 (block:): Installed default rule in block_statements:.
21133 (block_statement:): Add the statement to the method during pass 2.
21134 (statement_expression): Installed default rule for
21135 method_invocation:.
21136 (argument_list:): Added code to build the argument list.
21137 (method_invocation:): Added call to create the method invocation
21138 node.
21139 (yyerror): Now use obstack_grow0. Removed bogus obstack_free.
21140 (debug_line): New function for debug.
21141 (complete_class_decl): No longer do something during pass 1.
21142 (method_header): Use BUILD_PTR_FROM_NAME.
21143 (parser_qualified_classname): Use obstack_grow0. Removed bogus
21144 obstack_free.
21145 (parser_chain_incomplete_item): Use BUILD_PTR_FROM_NAME. Modified
21146 function's main comment.
21147 (java_complete_class): Set CLASS_LOADED_P on all fixed incomplete
21148 classes.
21149 (complete_method_decl): Use BUILD_PTR_FROM_NAME and promote types.
21150 (resolve_class): Now works with arrays.
21151 (do_resolve_class, resolve_and_layout): New functions.
21152 (java_check_regular_methods): Reverse method list before and after
21153 having processed it. No longer set ctxp->artificial_constructor.
21154 (read_import_dir): Test jcf->outofsynch and call jcf_out_of_synch
21155 accordingly. Fixed typo in issued error message. Now use
21156 obstack_grow0.
21157 (find_in_imports_on_demand): Now use obstack_grow0.
21158 (declare_local_variables): Use BUILD_PTR_FROM_NAME.
21159 (source_end_java_method): Call expand_expr_stmt instead of
21160 expand_expr. Calls it before calling expand_function_end.
21161 (java_method_add_stmt): Do nothing if errors were found during
21162 parsing.
21163 (java_layout_parsed_class): Set CLASS_LOADED_P and fixed typo.
21164 (build_method_invocation_stmt, build_invoke, invocation_mode,
21165 lookup_method_invoke, refine_accessible_methods_list,
21166 qualify_ambiguous_name, breakdown_qualified, identical_subpath_p):
21167 New functions.
21168 * typeck.c (build_java_signature): Properly end method signature
21169 if return type skipped.
21170 (match_java_method): New function.
21171
21172 1998-03-16 Per Bothner <bothner@cygnus.com>
21173
21174 * jcf-io.c (find_classfile): If USE_JCF_STDIO, fopen in binary mode.
21175
21176 1998-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
21177
21178 * expr.c (build_invoke_non_interface): New function.
21179 (methods_ident, ncode_ident): Now static globals.
21180 (expand_invoke): Use build_invoke_non_interface.
21181 * java-tree.h (struct lang_decl): New field function_decl_body.
21182 (DECL_FUNCTION_BODY): New macro.
21183 * jcf-parse.c (jcf_parse_source): Deeper check before setting
21184 CLASS_FROM_SOURCE_P.
21185 (parse_source_file): Fixed typos. Call java_layout_parsed_class
21186 before starting pass 2. Call to java_generate_parsed_class replaced
21187 by java_register_parsed_class.
21188 * lex.c: Fixed typo in header. Some line width related formating.
21189 * lex.h: Some line width related formating.
21190 * parse.h (source_end_java_method, resolve_expression_name,
21191 complete_class_decl, maybe_create_class_interface_decl,
21192 check_class_interface_creation): New static function declarations.
21193 (java_layout_parsed_class, java_method_add_stmt): New function
21194 declarations.
21195 (struct parser_ctxt): Field mark_class_generate removed. New
21196 fields class_list and artificial_constructor.
21197 * parse.y: Fixed typo in header.
21198 (class_declaration:): Call complete_class_decl when class body
21199 parsed.
21200 (method_declaration:): Call source_end_java_method in pass 2 when
21201 the method body is defined.
21202 (postfix_expression:): Do expression name resolution on sub-rule
21203 name during pass 2.
21204 (create_class, create_interface): Merged common pieces.
21205 (check_class_interface_creation, maybe_create_class_interface_decl):
21206 New functions.
21207 (complete_class_decl): New function.
21208 (register_fields): Fixed line width related typo.
21209 (method_header): Correctly skip first argument when fixing
21210 argument line. Changed the loop.
21211 (java_check_circular_reference): Now use ctxp->class_list.
21212 (java_complete_class): Removed start/stop marking.
21213 (java_check_regular_methods): Now takes a class decl as an
21214 argument. Add default constructor if none were encountered.
21215 (java_check_methods): Now use ctxp->class_list. Changed call to
21216 java_check_regular_methods.
21217 (source_start_java_method): Set DECL_ARG_TYPE for each function
21218 arguments.
21219 (source_end_java_method, java_method_add_stmt): New functions.
21220 (java_generate_parsed_class): No longer exists.
21221 (java_layout_parsed_class, java_register_parsed_class): New functions.
21222 (resolve_expression_name): New function.
21223
21224 1998-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
21225
21226 * jcf-parse.c: (parse_source_file): Check on errors after init lex.
21227 * lex.c: (java_init_lex): Defer ctxp->java_pass initialization
21228 until pass initializations are done. Call read_import_dir with
21229 pass set to 0.
21230 * parse.h: (lookup_modifier_cl): New function declared.
21231 (INTERFACE_FIELD_MODIFIERS): New macro.
21232 (OBSOLETE_MODIFIER_WARNING): New macro.
21233 * parse.y: (register_fields): Class type and current field name in
21234 local variables. Check modifier(s) if adding field(s) to an interface.
21235 (check_abstract_method_header): Now use OBSOLETE_MODIFIER_WARNING
21236 and report errors using the faulty modifier line context.
21237 (lookup_modifier_cl): New function.
21238 (read_import_dir): Detect and report default import processing
21239 failure.
21240
21241 1998-02-11 Brendan Kehoe <brendan@cygnus.com>
21242
21243 Add a pair of -fassume-compiled/-fno-assume-compiled options.
21244 * class.c (is_compiled_class): Return 1 after making sure it
21245 qualifies as loaded, if FLAG_ASSUME_COMPILED is set.
21246 * lang-options.h: Add -fassume-compiled/-fno-assume-compiled.
21247 * java-tree.h (flag_assume_compiled): Add decl.
21248 * lang.c (lang_f_options): Add the flag.
21249 (flag_assume_compiled): Add decl, default to 0.
21250
21251 1998-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
21252
21253 * class.c (class_depth): Call to load_class uses extra VERBOSE arg.
21254 (is_compiled_class): Likewise.
21255 (layout_class): Likewise.
21256 (layout_class): Detect and lay out classes defined in source code.
21257 (interface_of_p, add_interface_do, may_add_interface): New
21258 function.
21259 (add_interface): Now use add_interface_do.
21260 (add_method_1): New function.
21261 (add_method): Now use add_method_1.
21262 (pushlevel): Debug message conditional to SOURCE_FRONTEND_DEBUG.
21263 (complete_start_java_method): New function.
21264 (start_java_mehod): Now call complete_start_java_method.
21265 * expr.c (lookup_field): Call to load_class uses extra VERBOSE arg.
21266 (expand_invoke): Likewise and fixed typo.
21267 *gjava.c: (print_super_field): Use new argument to find_class
21268 DO_CLASS_FILE.
21269 (main): Likewise.
21270 *java-tree.h: (CLASS_FROM_SOURCE_P): New flag on RECORD_TYPE.
21271 (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
21272 QUALIFIED_P, IS_AN_IMPORT_ON_DEMAND_P): New flags on
21273 IDENTIFIER_NODE.
21274 (CLASS_COMPLETE_P): New flag on TYPE_DECL.
21275 (add_method_1, push_class): New prototypes.
21276 *jcf-dump.c: find_class now uses new DO_CLASS_FILE argument.
21277 *jcf-io.c: (open_in_zip): jcf now stores a pointer to the Zip
21278 directory where the class was found.
21279 (find_class): New argument DO_CLASS_FILE. Function find_class
21280 modified accordingly.
21281 *jcf-parse.c: (fix_class_path): New function.
21282 (load_class): Use new VERBOSE argument. load_class now finds and
21283 loads/parses .class/.java files. Save read_state of current_jcf
21284 if necessary.
21285 (java_parser_abort_on_error): New macro.
21286 (jcf_parse_source, parse_source_file): New function.
21287 (jcf_parse): Fixed typo.
21288 (yyparse): Call parse_source_file () only.
21289 (process_zip_dir): Fixed typo, fix zdir->filename_length when
21290 writing the real class name back in the zip directory entry.
21291 (find_in_current_zip): IDENTIFIER_CLASS_VALUE may be null.
21292 (jcf_figure_file_type): Fixed bogus alloc and bcopy.
21293 *jcf.h: (typedef struct JCF): New fields java_source and zipd.
21294 (find_class): Prototype fixed.
21295 *lex.c: Added 1998 time stamp.
21296 Removed all static global variables, moved into the parser
21297 context data structure.. Now include unistd.h if SEEK_SET not
21298 defined.
21299 (java_init_lex): Rewritten.
21300 (java_sneak_unicode): Modified current unicode access in current line.
21301 (java_unget_unicode): Likewise.
21302 (java_allocate_new_line): New allocation management.
21303 (java_read_char): Modified access and storage of unget_utf8_value.
21304 New way of processing current unicode.
21305 (java_store_unicode, java_read_unicode): Fixed typo in declaration.
21306 (java_get_unicode): Now use the parser context.
21307 (java_lineterminator): Likewise.
21308 (java_lex): Now used java_lval argument (pointer to YYSTYPE), part
21309 of the reentrant parser implementation. Function now use the
21310 parser context data structure and java_lval. Fixed production of
21311 the float and double constant "out of range" error message. Fixed
21312 obstack use. Return integer value when hitting a modifier. Now
21313 return type for TRUE, FALSE and other predefined types. Return
21314 identifier as a TREE_LIST list containing the current line context
21315 as the TREE_VALUE sub-node.
21316 (java_unicode_2_utf8): Fixed typo in declaration.
21317 (java_lex_error): Now use the parser context data structure.
21318 *lex.h: Added 1998 time stamp.
21319 (struct java_line): New fields ref_count and next.
21320 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
21321 JAVA_LINE_UNMARK, ID_NAME, ID_CL): New macros.
21322 (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, UNGETC): Fixed.
21323 *parse.h: Added 1998 time stamp.
21324 (java_parse_source_file): Renamed from parse_source_file.
21325 (YYERROR_NOW, YYNOT_TWICE): Fixed.
21326 (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
21327 INTERFACE_MODIFIER, INTERFACE_METHOD_MODIFIERS,
21328 JAVA_MODIFIER_CTX_UNMARK, IC_DECL, IC_DEPEND, DEPEND_DECL,
21329 THIS_MODIFIER_ONLY, ABSTRACT_CHECK, BEGIN_ONLY_PASS,
21330 END_ONLY_PASS, ELSE_ONLY_PASS, exit_java_complete_class,
21331 CLASS_OR_INTERFACE, INCOMPLETE_P): New macros.
21332 (struct parser_ctxt): New data structure to keep the parser context.
21333 *parse.y: Added 1998 time stamp, got rid of static global variables.
21334 (java_error_count, ctxp): New global variables.
21335 (%union): New value field.
21336 (numeric_type, integral_type): Rules removed.
21337 (primitive_type): Rule defined to handle integral, float, double and
21338 boolean types.
21339 (qualified_name, package_declaration,
21340 single_type_import_declaration, type_import_on_demand_declaration,
21341 modifiers, class_declaration, super, interfaces,
21342 interface_type_list, class_body, field_declaration,
21343 field_declaration, variable_declarators, variable_declarator,
21344 variable_declarator_id, method_declaration, method_header,
21345 formal_parameter_list, formal_parameter, method_body, block,
21346 static, interface_declaration, extends_interfaces,
21347 abstract_method_declaration, local_variable_declarators): Rules now
21348 define actions.
21349 (force_error, do_warning): New global statics.
21350 (push_parser_context, parser_context_save_global,
21351 parser_context_restore_global, pop_parser_context): New functions.
21352 (yyerror): Now uses the global parser context. Fixed use of obstack.
21353 (parse_error, parse_error_context, parse_warning_context,
21354 java_accstring_lookup, redefinition_error, check_modifiers,
21355 parser_add_interface, create_interface, create_class, find_field,
21356 duplicate_declaration_error, register_fields, method_header,
21357 check_modifiers_consistency, check_abstract_method_header,
21358 method_declarator, parser_qualified_classname,
21359 parser_check_super_interface, parser_check_super,
21360 parser_chain_incomplete_item, java_check_circular_reference,
21361 layout_class_from_source, java_complete_class,
21362 complete_method_decl, resolve_class, complete_class_report_errors,
21363 java_check_final, check_method_redefinition,
21364 java_check_regular_methods, java_check_abstract_methods,
21365 java_check_methods, lookup_java_interface_method2,
21366 lookup_java_method2, lookup_cl, find_name_in_single_imports,
21367 process_imports, find_in_imports, read_import_entry,
21368 read_import_dir, find_in_imports_on_demand,
21369 check_pkg_class_access, not_builtin_p, declare_local_variables,
21370 source_start_java_method, java_generate_parsed_class): New
21371 functions.
21372 *typeck.c: (signature_include_return): New global variable.
21373 (build_java_signature): Use SIGNATURE_INCLUDE_RETURN figure whether
21374 to add the function returned type in the signature.
21375
21376 1998-02-09 Brendan Kehoe <brendan@cygnus.com>
21377
21378 * jcf-io.c (open_in_zip): Use strncmp and LEN.
21379
21380 1998-01-29 Dave Brolley <brolley@cygnus.com>
21381
21382 * Make-lang.in (java.info): Added.
21383 (java.install-info): Added
21384
21385 1998-01-27 Brendan Kehoe <brendan@cygnus.com>
21386
21387 * Makefile.in (clean): Also remove java/parse.c.
21388
21389 1998-01-26 Brendan Kehoe <brendan@cygnus.com>
21390
21391 Add a pair of -fbounds-check/-fno-bounds-check options.
21392 * lang.c (lang_decode_option): Add code to grok arguments.
21393 (flag_bounds_check): Add decl.
21394 (lang_f_options): New array w/ the option in it.
21395 * java-tree.h (flag_bounds_check): Add decl.
21396 * lang-options.h: New file.
21397 * expr.c (build_java_arrayaccess): Use flag_bounds_check instead
21398 of a static macro value.
21399 (JAVA_ARRAY_EXCEPTION): Delete macro.
21400
21401 1998-01-23 Per Bothner <bothner@cygnus.com>
21402
21403 * typeck.c (build_java_array_type): Fix two bugs in previous change.
21404 * expr.c (build_anewarray): Add missing promote_type.
21405
21406 1998-01-22 Per Bothner <bothner@cygnus.com>
21407
21408 Add array types with known length to optimize bounds checking.
21409 * typeck.c (build_java_array_type): Take length parameter.
21410 (java_array_type_length, build_prim_array_type): New functions.
21411 * java-tree.h: Update for new functions.
21412 * expr.c, typeck.c, verify.c: Update build_java_array_type calls.
21413 * class.c: Use build_prim_array_type.
21414 * expr.c (can_widen_reference_to): Handle known-length array types.
21415 (verify_jvm_instructions): Keep track of integer push instructions
21416 followed by newarray/anewarray, so we can build known-length arrays.
21417 (JAVA_ARRAY_DATA_OFFSET): Replace by ...
21418 (java_array_data_offset): New function.
21419 (build_java_array_length_access): New function. Optimize if constant.
21420 (build_java_arrayaccess): Constant fold bounds check.
21421 (expand_java_newarray, expand_java_anewarray): Replaced by ...
21422 (build_newarray, build_anewarray): New functions.
21423 (ARRAY_NEW_NUM, ARRAY_NEW_PTR): Use build_{a,}newarray.
21424 * verify.c (merge_types): Handle known-lengh array types.
21425
21426 1998-01-19 Per Bothner <bothner@cygnus.com>
21427
21428 * expr.c (expand_byte_code): Fix performace bug, which caused
21429 searching linenumber_table to be linear rather than constant.
21430
21431 1997-12-12 Per Bothner <bothner@cygnus.com>
21432
21433 * Makefile.in (BISON, BISONFLAGS): Add missing macros.
21434
21435 * decl.c, java-tree.h (soft_fmod_node): New global.
21436 * decl.c (init_decl_processing): Define __builtin_fmod.
21437 * expr.c (build_java_binop): Implement TRUNC_MOD_EXPR for REAL_TYPE
21438 using __builtin_fmod.
21439
21440 1997-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
21441
21442 * keyword.h: New file, output of keyword.gperf as processed by
21443 gperf.
21444 * lex.c (java_lex_init): Initialize java_error_flag.
21445 * parse.c (YYERROR_NOW): Uses java_error_flag.
21446 * parse.y: New static java_error_flag. Useless definition of
21447 buffer_error gone.
21448 * parse.y (java_error): Portable error recovery using
21449 java_error_flag (not yet completely tuned).
21450
21451 1997-12-04 Brendan Kehoe <brendan@lisa.cygnus.com>
21452
21453 * Makefile.in (parse.c): Use $(srcdir) for parse.y.
21454
21455 1997-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
21456
21457 * Makefile.in: (JAVA_OBJS): New object jcf-parse.o.
21458 (parse.c, lex.c, keyword.h): New rules for Java source code
21459 front-end.
21460 * parse.c: Renamed into jcf-parse.c.
21461 * jcf-parse.c (yyparse): Invoke the parser to process Java source code.
21462 * keyword.gperf: New file, Java keywords.
21463 * parse.y: New file, Java language grammar.
21464 * parse.h: New file, Java language grammar definitions.
21465 * lex.c: New file, Java language lexer.
21466 * lex.h: New file, Java language lexer definitions.
21467
21468 1997-12-03 Per Bothner <bothner@cygnus.com>
21469
21470 * decl.c (clinit_identifier_node), java-tree.h: New global.
21471 * java-tree.h (IS_METHOD_INIT_P, IS_METHOD_CLINIT_P): Removed.
21472 * verify.c (verify_jvm_instructions): Inline use of removed macros.
21473 * expr.c (expand_java_field_op): Check for invalid assignment
21474 to final field.
21475
21476 * jcf-reader.c (get_attribute): Test for wrong attribute length.
21477
21478 1997-10-27 Per Bothner <bothner@cygnus.com>
21479
21480 * verify.c (verify_jvm_instructions): When processing a handler,
21481 attempt to set the current_subr to the right value.
21482 (More complicated code combines Sep 17 and Oct 22 versions.)
21483
21484 1997-10-24 Per Bothner <bothner@cygnus.com>
21485
21486 * class.c (push_class): Figure out (guess) name of source file.
21487 * parse.c (set_source_filename): Set DECL_SOURCE_FILE of class decl.
21488 (give_name_to_class): Don't guess source name; use DECL_SOURCE_FILE.
21489 (parse_class_file): Change return type from int to void.
21490 Call debug_start_source_file/debug_end_source_file.
21491
21492 * expr.c (build_java_binop): Fix masking 2nd operand.
21493 * decl.c (init_decl_processing): Set sizetype first.
21494
21495 1997-10-22 Per Bothner <bothner@cygnus.com>
21496
21497 * verify.c (verify_jvm_instructions): Don't set current_subr to NULL.
21498 (Revert Sep 17 change.)
21499
21500 1997-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
21501
21502 * parse.c (process_zip_dir): Skip ZIP entries not bearing the
21503 .class extension in their name and fix thing so we don't process
21504 them parse_zip_file_entries().
21505 (parse_zip_file_entries): Cleaned unused local variables.
21506
21507 1997-10-20 Per Bothner <bothner@cygnus.com>
21508
21509 * expr.c (can_widen_reference_to): Allows equal array element types.
21510 (expand_byte_code): PRE_RET must expand OPERAND_VALUE (to get index).
21511 * jcf-dump.c (RET): Get (and print) index.
21512
21513 * verify.c (verify_jvm_instructions case OPCODE_anewarray):
21514 Promote element type to POINTER_TYPE.
21515
21516 1997-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
21517
21518 * jcf-reader.c, parse.c: (parse_zip_file, process_zip_dir,
21519 find_in_current_zip, jcf_figure_file_type): Moved from
21520 jcf-reader.c to parse.c.
21521 * zextract.c: (read_zip_archive): takes file_comment_length possible
21522 field into account.
21523
21524 1997-10-20 Per Bothner <bothner@cygnus.com>
21525
21526 * verify.c (verify_jvm_instructions): Var can also be promoted to int.
21527
21528 * verify.c (merge_types): Handle array types even better ...
21529
21530 1997-10-17 Per Bothner <bothner@cygnus.com>
21531
21532 * expr.c (java_stack_pop): Fix use of NULL_TREE for TYPE_SECOND.
21533
21534 * java-tree.h (PUSH_FIELD): Set DECL_ARTIFICIAL.
21535 * class.c (make_class_data): Don't build fields_decl if no fields.
21536 When building fields_decl, skip if DECL_ARTIFICIAL.
21537
21538 * expr.c (java_stack_swap): Update stack_type_map.
21539 * verify.c (merge_types): Handle array types better.
21540
21541 1997-10-15 Per Bothner <bothner@cygnus.com>
21542
21543 * class.c (add_field): Don't promote short integral fields to
21544 int any more (unless JAVA_PROMOTE_TO_INT), since Kaffe doesn't.
21545 * expr.c (push_value): Promote and convert short integral values.
21546
21547 * decl.c, java-tree.h (integer_two_node): New constant node.
21548 * verify.c (merge_types): Check for TYPE_RETURN_ADDR.
21549
21550 1997-10-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
21551
21552 * class.c (append_gpp_mangled_type): Use function argument
21553 unpromoted type to generate mangled name.
21554
21555 1997-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
21556
21557 * constants.c (build_constant_data_ref): Now uses current_class
21558 instead of main_class.
21559 (build_constants_constructor): Now uses current_class instead of
21560 main_class.
21561 * zipfile.h: (struct ZipFileCache): Now defined here. Declaration
21562 of the global variable SeepZipFiles done here.
21563 * zextract.c (read_zip_archive): extra_field optional field taken
21564 into account while computing the position of the class file in the
21565 archive.
21566 * verify.c (verify_jvm_instructions): Use current_jcf to search
21567 the constant pool.
21568 * parse.c (load_class): First search for the class to load in the
21569 current zip file. Saves current_jcf (restored before returning
21570 from that function). Don't call JCF_FINISH in the class was found
21571 in the current ZIP file.
21572 (jcf_parse): If the class was found in the current ZIP file, save
21573 its tree_constant_pool (for later reuse).
21574 (parse_class_file): New function. Process each method defined in
21575 the current class and record the class as to be later registered.
21576 (yyparse): Rewritten. Figure the type of the current file and switch
21577 accordingly.
21578 * lang.c: New global variable current_jcf.
21579 (lang_init): Removed compiling_from_source test (done later, in
21580 yyparse). Removed call the jcf_parse ().
21581 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): New defined values.
21582 (typedef struct JCF): New fields seen_in_zip (to mark a class found
21583 in the current ZIP file) and zip_offset (offset to the class data in
21584 the current zip file).
21585 * jcf-reader.c: zipfile.h included.
21586 localToFile: New ZipFileCache static global variable
21587 (parse_zip_file_entries): New function. Browse the current ZIP
21588 file directory and process each class found.
21589 (process_zip_dir): New function. Register each class found in the
21590 ZIP file directory. The class aren't parsed but a valid JCF is
21591 link to each of them.
21592 (find_in_current_zip): New function. Search for a class in the
21593 current ZIP file directory. If found, prepare the class so that it
21594 can be loaded.
21595 (jcf_figure_file_type): New function. Examine the file structure
21596 to figure a class file, a ZIP file. If none of these categories are
21597 matched, a source file is assumed.
21598 * jcf-io.c: Removed definition of ZipFileCache (moved in zipfile.h).
21599 SeenZipFile: New global variable.
21600 (open_in_zip): Use zipmember's length to accelerate the search for
21601 a member. If zipmember was NULL and zip file successfully read,
21602 return 0.
21603 * java-tree.h: New global variable current_jcf declared. Added
21604 declaration for current_constant_pool_tags, current_constant_pool_data,
21605 current_constant_pool_length, current_constant_pool_data_ref.
21606 (struct lang_type): Augmented with two fields. struct JCF *jcf (to
21607 store the JCF of classes seen in a zip file) and tree *constant_pool
21608 (to save a loaded class constant pool). current_class declared here.
21609 * expr.c (expand_invoke): Use current_jcf instead of main_jcf to
21610 retrieve method_ref_constant.
21611 (PUSHC): java_push_constant_from_pool now uses current_jcf.
21612 (OBJECT): get_class_constant now uses current_jcf.
21613 (ARRAY_NEW_PTR): get_class_constant now uses current_jcf.
21614 (ARRAY_NEW_MULTI): get_class_constant now uses current_jcf.
21615 (expand_invoke): Now uses current_class instead of main_class
21616 (build_class_init): Now uses current_class instead of main_class
21617 * class.c: New static global variable registered_class.
21618 (register_class): New function.
21619 (emit_register_class): Modified to use registered_class instead of
21620 main_class
21621 (is_compiled_class): Now take into account class seen in the archive.
21622
21623 1997-10-06 Per Bothner <bothner@cygnus.com>
21624
21625 * except.h: Renamed to: java-except.h.
21626 * parse.c, except.c, expr.c, verify.c: Update #include accordingly.
21627 * except.c: Add semi-working (commented out) implementation.
21628
21629 * expr.c (expand_iinc): Add needed flush_quick_stack.
21630 * parse.c (set_source_filename): New function.
21631 (give_name_to_class): Set input_filename from package.classname.java.
21632
21633 * jcf-io.c (find_class): Don't look first in ".".
21634
21635 1997-10-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
21636
21637 * zextract.c (read_zip_archive): Now takes into account the
21638 extra_field field.
21639 * expr.c (can_widen_reference_to): Modified to handle sub-interfaces.
21640
21641 1997-09-20 Per Bothner <bothner@cygnus.com>
21642
21643 * constants.c, java-tree.h (build_internal_class_name): New function.
21644 (alloc_class_constant): Re-implement using build_internal_class_name.
21645 * class.c (make_class_data): Likewise.
21646 * class.c (hashUtf8String): Make hash algorithm match String.hashCode.
21647
21648 1997-09-17 Per Bothner <bothner@cygnus.com>
21649
21650 * verify.c (verify_jvm_instructions): Temporarily set current_subr
21651 to NULL before pushing an exception handler target.
21652
21653 * expr.c (flush_quick_stack): Save from low stack indexes to high.
21654 (java_stack_swap, java_stack_dup): Re-write to be safe from
21655 clobbering registers.
21656 (build_class_init): New function.
21657
21658 1997-09-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
21659
21660 * typeck.c (build_java_array_type): Temporary use
21661 permanent_obstack to create the array 'length' field.
21662 * expr.c (lookup_label): Temporay use permanent_obstack to create
21663 label if not found.
21664 * class.c (push_super_field): Tempory use permanent_obstack.
21665
21666 1997-09-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
21667
21668 * typeck.c (type_for_mode): Now handles double_type_node and
21669 float_type_node.
21670 * verify.c (verify_jvm_instructions): The instruction following
21671 the wide bytecode is checked. OPCODE_ret added to the list of
21672 wide.
21673
21674 1997-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
21675
21676 * class.c (make_class): Temporary use permanent_obstack. Set the
21677 class CLASS_P field to 1.
21678 (push_class): Temporary use permanent_obstack.
21679 (set_super_info): Temporary use permanent_obstack.
21680 (add_method): Temporary use permanent_obstack, set
21681 METHOD_TRANSIENT().
21682 (add_field): Temporary use permanent_obstack. Sets
21683 FIELD_VOLATILE() and FIELD_TRANSIENT().
21684 (build_class_ref): Temporary use permanent_obstack if the class
21685 isn't compiled.
21686 (build_static_field_ref): Temporary use permanent_obstack when
21687 creating field's rtl.
21688 (get_access_flags_from_decl): Handle ACC_VOLATILE, ACC_TRANSIENT,
21689 ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT flags for methods
21690 and fields. Function finalized, as far as flag handling.
21691 (push_class_static_dummy_field): Temporary use permanent_obstack.
21692 (emit_register_class): Force generation of class registration at
21693 -O3 or deeper.
21694 * decl.c (end_java_method): Call permanent_allocation() before
21695 returning.
21696 * expr.c (can_widen_reference_to): Added comment to interface
21697 handling, fixed typo.
21698 (lookup_field): Now uses CLASS_P() to correct FIXME
21699 (expand_invoke): Verification on public && !static &&
21700 !abstract moved into soft_lookupinterfacemethod (kaffe).
21701 Use Object class dtable if objectref is an array when expanding
21702 invokeinterface.
21703 (java_push_constant_from_pool): Temporary use permanent_obstack
21704 for CONSTANT_string
21705 * parse.c (get_ref_constant): Temporary use permanent_obstack to
21706 create constant references.
21707 (get_constant): Temporary use permanent_obstack to create constant.
21708 (load_class): Temporary use permanent_obstack to load class.
21709 (jcf_parse): Temporary use permanent_obstack to perform class
21710 layout.
21711 * typeck.c: (parse_signature_string): Temporary use permanent_obstack.
21712 (build_java_signature): Temporary use permanent_obstack.
21713 * verify.c: (verify_jvm_instruction): removed unnecessary verification
21714 on ACC_SUPER flag.
21715 * java-tree.h (METHOD_NATIVE, METHOD_TRANSIENT): Defined.
21716 (FIELD_VOLATILE, FIELD_TRANSIENT): Defined.
21717 (CLASS_P): Defined
21718
21719 1997-09-11 Per Bothner <bothner@cygnus.com>
21720
21721 * class.c (append_gpp_mangled_type): Fix typo.
21722 (emit_register_class): Use main_class to get class object, rather
21723 than looking for no-longer-existing static decl starting with _CL.
21724 * typeck.c (parse_signature_type): Promote array element type
21725 if it is a RECORD_TYPE.
21726
21727 1997-09-10 Per Bothner <bothner@cygnus.com>
21728
21729 * class.c (push_class_static_dummy_field): New function.
21730 (mangle_static_field): New. Do G++-style mangling of static fields.
21731 (layout_class): Mandle static fields here, not in add_field.
21732 (build_class_ref): The class object is now a dummy static field.
21733 * decl.c (find_local_variable): Look for best, instead of first match.
21734 * expr.c (push_type): Always promote_type, not just for RECORD_TYPE.
21735 (build_java_athrow): Don't check here if exception is Throwable.
21736 * java-tree.h (TYPE_UNSET): Renamed to TYPE_UNKNOWN.
21737 (TYPE_USED): Removed. No longer used ...
21738 * parse.c (jcf_parse): Call push_class_static_dummy_field.
21739 * verify.c (push_pending_label): New function.
21740 (push_pending_block): Renamed to check_pending_block.
21741 (merge_types): Remove unneeded suuport for TYPE_UNUSED.
21742 (verify_jvm_instructions): Only reset prev_eh_ranges (to force
21743 re-checking possible handlers) after a store (less wasted work).
21744 Check for null handler (finally) before calling add_handler.
21745 Various changes to (finally?) correctly handle try/finally.
21746
21747 1997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
21748
21749 * class.c: Include stdio.h.
21750
21751 1997-09-04 Per Bothner <bothner@cygnus.com>
21752
21753 * expr.c (expand_invoke): Use COMPOUND_EXPR (and TREE_SIDE_EFFECTS)
21754 to make sure class is initialized before static/special invoke.
21755
21756 * verify.c (verify_jvm_instructions): On a store instruction,
21757 call find_local_variable to force pre-allocation of decl and rtx.
21758 * decl.c (push_jvm_slot): Set DECL_REGISTER on stack slots.
21759
21760 1997-09-03 Per Bothner <bothner@cygnus.com>
21761
21762 * class.c (build_class_ref): Strip off "promoted_" if need be.
21763 (make_field_value): Call build_java_signature when needed.
21764 (layout_class): Don't make_function_rtl if METHOD_ABSTRACT.
21765 * expr.c (build_java_athrow): Don't push_value of exception.
21766 (build_java_binop): Implement COMPARE_L_EXPR and COMPARE_G_EXPR to
21767 match specification of [fd]cmp[lg] for NaNs.
21768 (expand_byte_code): Add support for exception handler ranges.
21769 * except.c: Add skeleton for EH code-generation.
21770 * verify.c (merge_types): Treat all promoted integral types as equal.
21771 * constants.c (build_constants_constructor): To force creation of
21772 current_constant_pool_data_ref, call build_constant_data_ref.
21773
21774 * javaop.def (lload): Fix typo.
21775 * jcf-dump.c (main): Clear filename to prevent possibly-bad free.
21776
21777 1997-09-02 Brendan Kehoe <brendan@lisa.cygnus.com>
21778
21779 * parse.c: Don't include function.h.
21780
21781 1997-08-27 Per Bothner <bothner@cygnus.com>
21782
21783 * except.[ch]: New files.
21784 * Makefile.in (JAVA_OBJS): Add except.o
21785 * expr.c: Temporary warning about unimplemented exceptions.
21786 * verify.c: Verify exception handlers.
21787
21788 * jcf-dump.c (disassemble_method): Print exception table.
21789
21790 1997-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
21791
21792 * expr.c (verify_jvm_instructions): Started a thorough
21793 verification of invoke* bytecodes.
21794 (expand_byte_code): flush quick stack if PC is the target of a
21795 branch. and undef RET (conflicting with config/i386/i386.h).
21796 (expand_java_arrayload): Fixed bogus cast, when Boolean type is
21797 used.
21798 (expand_invoke): Now handles invokeinterface and do more
21799 verification according to the bytecode.
21800 (lookup_field): Don't try to load the class if processing
21801 dtable_type.
21802 (can_widen_reference_to): Now handles interfaces.
21803 * decl.c (init_decl_processing): New global variable
21804 soft_lookupinterfacemethod_node, declared in java-tree.h.
21805 Call set_super_info on string_type_node.
21806 * java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now
21807 defined.
21808 * class.c (set_super_info): Fills the CLASS_* flags according to
21809 access_flags.
21810 (get_access_flags_from_decl): Handles all class flags.
21811
21812 1997-08-26 Per Bothner <bothner@cygnus.com>
21813
21814 * class.c (add_method): Zero out newly-allocated DECL_LANG_SPECIFIC.
21815 * parse.c (yyparse): Check for abstract method, and missing code.
21816 * expr.c (expand_byte_code): Change interface.
21817 * lang.c (put_decl_node): Print promoted types prettier.
21818 * verify.c (verify_jvm_instruction): Change interface.
21819 Partial support for scanning exception table.
21820 For load instructions, handle promoted integral types.
21821
21822 1997-08-21 Per Bothner <bothner@cygnus.com>
21823
21824 * verify.c: New file, with contents moved from expr.c.
21825 * expr.c: Bunch of stuff (mostly verification) moved to verify.c.
21826 * typeck.c (is_array_type_p): Moved here from expr.c.
21827 * java-tree.h: Add some now-needed function declarations.
21828 * Makefile.in (JAVA_OBJS): Added verify.o.
21829
21830 1997-08-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
21831
21832 * class.c (add_method): Sets the METHOD_SYNCHRONIZED flag, sets the
21833 METHOD_ABSTRACT flag.
21834
21835 * java-tree.h (METHOD_SYNCHRONIZED): Set to DECL_LANG_FLAG_4.
21836 (IS_METHOD_CLINIT_P, IS_METHOD_INIT_P): New macros.
21837 (METHOD_ABSTRACT): Set to DECL_LANG_FLAG_5
21838
21839 * decl.c (soft_monitorenter_node, soft_monitorexit_node): New global
21840 variables.
21841 (start_java_method): Hook for SYNCHRONIZED methods.
21842
21843 * expr.c (build_java_jsr, build_java_ret): New functions
21844 (JSR,PRE): New macros
21845 (PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured.
21846 (verify_jvm_instructions): tableswitch, lookupswitch,
21847 monitorenter, monitorexit, goto_w: verified.
21848 (LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label
21849 (build_java_monitor): New function.
21850 (MONITOR_OPERATION): Modified to call build_java_monitor()
21851 (verify_jvm_instructions): Started a thorough verification of
21852 invoke* bytecodes.
21853
21854 1997-08-19 Per Bothner <bothner@cygnus.com>
21855
21856 Support verification of jsr/ret subroutines (used for try/finally).
21857 * decl.c (return_address_type_node): New type node.
21858 * java-tree.h (LABEL_RETURN_LABEL, LABEL_RETURN_TYPE_STATE,
21859 RETURN_MAP_ADJUSTED, LABEL_RETURN_LABELS, LABEL_IN_SUBR,
21860 LABEL_SUBR_START, LABEL_SUBR_CONTEXT, BCODE_VERIFIED): New macros.
21861 (TYPE_UNSET, TYPE_SECOND, TYPE_NULL, TYPE_RETURN_ADDR, TYPE_UNUSED,
21862 TYPE_USED): New macros for special types in type_map.
21863
21864 * java-tree.h (BCODE_JUMP_TARGET): Renamed to BCODE_TARGET.
21865 (BCODE_BACKWARDS_TARGET, CODE_FORWARDS_TARGET): Replaced by
21866 BCODE_JUMP_TARGET.
21867 * expr.c (expand_byte_code): Fix logic to warn of unused instructions.
21868
21869 * expr.c (can_widen_reference_to): New function.
21870 (pop_type): Use it.
21871 (merge_type_state): Support handling start of subroutine.
21872 (push_pending_block): Return char* error message, instead of calling
21873 fatal on an error. Also handle subroutines.
21874 (verify_jvm_instructions): Handle errors from push_poending_block.
21875 Support jsr and ret instructions.
21876
21877 1997-08-19 Per Bothner <bothner@cygnus.com>
21878
21879 * jcf-io.c (find_classfile): Fix thinko.
21880 * jcf-dump.c: Add CONVERT2 (to match changed javaop.def).
21881
21882 1997-08-12 Jason Merrill <jason@yorick.cygnus.com>
21883
21884 * Makefile.in (BISON): Remove.
21885
21886 1997-08-07 Per Bothner <bothner@cygnus.com>
21887
21888 * Makefile.in: Convert to autoconf.
21889 * config-lang.in (outputs): Added java/Makefile.
21890
21891 * Make-lang.in, lang-specs.h, config-lang.in, Makefile.in:
21892 Rename cc1java to jc1.
21893
21894 * lang.c (init_parse, finihs_parse): New functions #ifdef USE_CPPLIB.
21895 * Makefile.in (INTERNAL_CFLAGS): Add @extra_c_flags.
21896
21897 * class.c (class_depth): Do load_class if needed.
21898
21899 Mostly better verification.
21900 * decl.c (pushdecl): Set TYPE_STUB_DECL for a type.
21901 (init_decl_processing): Change return type of soft_checkcast.
21902 * expr.c (expand_java_CHECKCAST): Do push_value of the "casted" value.
21903 * lang.c (put_decl_string, put_decl_node, lang_printable_name,
21904 lang_print_error): New functions.
21905 (lang_init): Set global hook print_error_function to lang_print_error.
21906 * expr.c: In the type_map ptr_type_node is only used for null now.
21907 (pop_type, merge_types): Hence ptr_type_node matches any reference.
21908 (merge_types): Dererence pointer to record types before comparing.
21909 (decode_newarray_type, merge_types): On error just return NULL.
21910 (build_java_binop): Add preliminary implementation (with warning)
21911 for COMPARE_L_EXPR and COMPARE_G_EXPR (i.e. [fd]cmp[lg]).
21912 (lookup_label): Set DECL_IGNORED_P (for dwarf2out).
21913 (expand_compare, expand_java_goto, expand_java_call): Don't
21914 push_pending_block, since that only makes sense when verifying.
21915 (merge_type_state): Different return codes.
21916 (push_pending_block): A block may need to be verified more than once.
21917 (expand_byte_code): Warn about unused code at code generation time.
21918 (verify_jvm_instruction): Changed logic, since code may need to be
21919 re-verified if type-state has changed. Also, better error handling.
21920 Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof.
21921 Improve newarray, anewarray, ?aload, athrow,
21922 * java-tree.h (LABEL_CHANGED): New macro.
21923
21924 1997-08-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
21925
21926 * decl.c (soft_athrow_node): New global variable initialized.
21927 * javaop.def (i2b, i2c, i2s): Invoke CONVERT2
21928 * typeck.c (convert): Added support for REAL_TYPE.
21929 (convert_to_char): New function.
21930 (convert): Handle CHAR_TYPE.
21931 * expr.c (expand_java_arraystore): Modified because CHAR/BYTE/BOOLEAN/
21932 SHORT now expect INT but store as CHAR/BYTE/BOOLEAN/SHORT.
21933 (expand_java_arrayload): CHAR/BYTE/BOOLEAN/SHORT now convert result to
21934 promoted type.
21935 (verify_jvm_instructions): Added break a the end of bogus unop: label.
21936 (OPCODE_<b|c|s>astore): Pop an int operand from the type stack
21937 (OPCODE_<b|c|s>astore): Push the promoted type onto the stack
21938 (process_jvm_instruction): New macro CONVERT2 for i2c, i2s and i2b.
21939 (JAVA_ARRAY_LENGTH_OFFSET, JAVA_ARRAY_DATA_OFFSET): Modified
21940 to Use The Right Things.
21941 (pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as
21942 compatible with INT. BOOLEAN is made equivalent to BYTE.
21943 (OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull,
21944 OPCODE_ifnonnull): Now supported.
21945 (build_java_athrow): New function.
21946
21947 1997-08-04 Per Bothner <bothner@cygnus.com>
21948
21949 Rename method name <init> to match G++ (and fix mangling).
21950 * class.c (layout_class): Replace method name of <init> by class name.
21951 (make_method_value): Do inverse renaming of constructor from <init>.
21952 * java-tree.h (DECL_CONSTRUCTOR_P): New macro.
21953 * typeck.c (lookup_java_constructor): New function.
21954 * expr.c (expand_invoke): If method_name is <init>, call
21955 lookup_java_constructor to find constructor.
21956
21957 * parse.c (get_constant): Handle CONSTANT_Float and CONSTANT_Double.
21958
21959 1997-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
21960
21961 * parse.c (get_class_constant): Modified to handle array "classes"
21962 * typeck.c (set_local_type): Bug fixed when filling type_map[] with
21963 wide type.
21964 (convert): Modified to handle real type.
21965 * java-tree.h (soft_badarrayindex_node, soft_anewarray_node,
21966 soft_multianewarray, soft_newarray_node, soft_throw_node): New global
21967 variables declared.
21968 * decl.c (soft_badarrayindex_node, soft_anewarray_node,
21969 soft_multianewarray, soft_newarray_node, soft_throw_node): New
21970 global variables initialized.
21971 (find_local_variable): Handles the case of a pointer
21972 (end_java_method): Restore the use of one more scope
21973 * expr.c (build_java_arraynull_check, build_java_arrayaccess,
21974 build_java_array_length_access, expand_java_arrayload,
21975 expand_java_arraystore, expand_java_array_length,
21976 expand_java_multianewarray, expand_java_anewarray,
21977 build_java_check_indexed_type, is_array_type_p,
21978 build_java_throw_out_of_bound_exception): New functions.
21979 (STORE_INTERNAL): Now forces type of the decl to be type of the value.
21980 (OPCODE_arraylength, OPCODE_newarray, OPCODE_<t>astore,
21981 OPCODE_<t>aload): Implemented code for verification.
21982 (ARRAY_STORE, ARRAY_LOAD, ARRAY_LENGTH, ARRAY_NEW_PTR, ARRAY_NEW_NUM
21983 ARRAY_NEW_MULTI): Macro defined.
21984 (CONVERT): Modified to invoke convert().
21985 (case OPCODE_aload2): Fixed index typo from 2 to 1.
21986
21987 1997-07-31 Per Bothner <bothner@cygnus.com>
21988
21989 * class.c (push_class): Set DECL_ARTIFICIAL (for dbxout.c).
21990 (build_class_ref, is_compiled_class): Handle pointer-to-record types.
21991 (make_class_data): Field name needs '/' as package prefix.
21992 * expr.c (type_stack_dup, java_stack_dup): Fix fencepost errors.
21993
21994 1997-07-25 Per Bothner <bothner@cygnus.com>
21995
21996 Implement debug information for local variables.
21997 * java-tree.h (DECL_CODE_LENGTH, DECL_ARG_SLOT_COUNT,
21998 DECL_LOCAL_SLOT_NUMBER, DECL_LOCAL_START_PC, DECL_LOCAL_END_PC,
21999 DECL_LOCAL_SLOT_CHAIN): New macros.
22000 (struct lang_decl_var): New type.
22001 * parse.c (give_name_to_locals): Move to decl.c.
22002 * decl.c (give_name_to_locals): Re-written to Do The Right Thing.
22003 (start_java_method): Re-write parameter handling.
22004 (pending_local_decls): New global variable.
22005 (push_jvm_slot, maybe_pushlevels, maybe_poplevels): New functions.
22006 (find_local_variable): Accept pc so we can skips decls not in range.
22007 (struct binding_level): Add end_pc field.
22008 * expr.c (expand_byte_code): Call maybe_pushlevels and maybe_poplevels.
22009 (various): Change so current pc gets passed to find_local_variable.
22010
22011 * decl.c (init_decl_processing): Re-arrange fields in
22012 class_type_node and and method_type_node to match kaffe 0.9.1.
22013 * class.c (make_method_value, make_class_data): Update
22014 initializations to match.
22015
22016 1997-07-16 Per Bothner <bothner@cygnus.com>
22017
22018 * class.c (unicode_mangling_length, emit_unicode_mangled_name,
22019 append_gpp_mangled_name, append_gpp_mangled_type): New functions.
22020 (push_super_field): New function.
22021 (make_class_data): Handle inheritance of class static initializer.
22022 (layout_class): New name mangling.
22023 * constants.c (build_constant_data_ref): Init type of data array
22024 to a one-element array.
22025 (build_constants_constructor): Set DECL_SIZE from complete array type.
22026 * decl.c: Rename class_type, object_type etc to class_type_node,
22027 object_type_node etc. Make former inherit from latter.
22028 * expr.c (expand_invoke): Add cast of function address.
22029 * java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE): New.
22030 * parse.c (yyparse): Don't call layout_class here.
22031 * typeck.c (build_java_array_type): Set TYPE_ARRAY_ELEMENT.
22032
22033 1997-06-14 Per Bothner <bothner@cygnus.com>
22034
22035 * decl.c, class.c: Update method type to match latest Kaffe snapshot.
22036 * constants.c (lookup_name_constant): Renamed to alloc_name_constant.
22037 (alloc_class_constant): New.
22038 * expr.c (expand_invoke): Make sure method's class is initialized.
22039 * class.c (interits_from_p, emit_register_class): New functions.
22040 * parse.c (yyparse): Call emit_register_class.
22041
22042 1997-06-09 Per Bothner <bothner@cygnus.com>
22043
22044 * constants.c: New file, to handle constant pool.
22045 * Makefile.in (JAVA_OBJS): Add constants.o.
22046 * decl.c (init_decl_processing): Update, fix, finish various structs.
22047 (pushdecl_top_level): New.
22048 * parse.c (layout_class): Moved to class.c.
22049 * expr.c (java_push_constant_from_pool): New function.
22050 * class.c (build_class_ref): Make work fully
22051 (make_class_data): Emit super-class, constant pool, interface vector.
22052
22053 1997-06-03 Per Bothner <bothner@cygnus.com>
22054
22055 java-tree.h (DECL_SIGNATURE, BCODE_EMITTED): Remove.
22056 (LABEL_VERIFIED, BCODE_EXCEPTION_TARGET, TYPE_ARRAY_P): New.
22057 * class.c (class_depth): New function.
22058 (lookup_named_class): Replaced by new function lookup_class.
22059 * decl.c (object_type_node, string_type_node): New.
22060 Remove various types that we no longer need.
22061 * expr.c (verify_jvm_instructions): New separate verifier pass.
22062 (push_type, pop_type): New functions for verifier.
22063 (type_stack_dup, pop_argument_types, merge_types): Likewise.
22064 (expand_byte_code): Simplify, since we assume already verified.
22065 (expand_invoke): Now mostly works.
22066 * javaop.def: Rename ldc1->ldc, ldc2->ldc_w, ldc2w->ldc2_w.
22067 * lang.c (main_class): Move to parse.c. Don't make_class yet.
22068 * parse.c: Wait to allocate class object until we know its name.
22069 (layout_class): Calculate DECL_VINDEX for each virtual method.
22070 * typeck.c (get_array_type): Rename to ...
22071 (build_java_array_type): ... and provide working implementation.
22072 (build_java_signature): New function - build Java signature of type.
22073 (set_java_signature): New function - cache signature with type.
22074 (lookup_java_method): New function.
22075
22076 1997-05-06 Per Bothner <bothner@deneb.cygnus.com>
22077
22078 * class.c (ident_subst): Take extra SUFFIX parameter.
22079 (add_field): Set DECL_ASSEMBLER_NAME of static fields; more.
22080 (set_constant_value, build_static_field_ref, is_compiled_class): New.
22081 (build_class_ref): Actually implement.
22082 * decl.c, java-tree.h: Renamed some xx_type to xx_type_node.
22083 * decl.c (builtin_function): New.
22084 (init_decl_processing): Update for current Kaffe. Declare some
22085 builtin Kaffe functions.
22086 * expr.c (build_address_of): New.
22087 (expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST):
22088 Renamed (from expand_java_new etc), and added working implementations.
22089 (build_field_ref): Now also handle static fields.
22090 (expand_invoke): Implement invokestatic, and start implement rest.
22091 * java-opcodes.h: Use javaop.def to avoid duplicated list.
22092 * javaop.def: Rename invokevirt -> invokevirtual.
22093 * lang.c (use_handles): Removed.
22094 * parse.c: Add support for ConstantValue attribute.
22095 Handle nested loading of a class. (JPOOL_UTF): New.
22096
22097 1997-03-11 Per Bothner <bothner@deneb.cygnus.com>
22098
22099 * expr.c (expand_java_pushc): Support #ifndef REAL_ARITHMETIC case.
22100
22101 1997-02-27 Per Bothner <bothner@deneb.cygnus.com>
22102
22103 * Make-lang.in (java.install-man): New empty rule.
22104 * typeck.c (set_local_type): New function.
22105 * expr.c (STORE_INTERNAL): Call find_local_variable,
22106 not find_stack_slot. Call set_local_type.
22107
22108 1997-02-12 Per Bothner <bothner@kalessin.cygnus.com>
22109
22110 * java-tree.h: Various new macros for constructing RECORD_TYPEs,
22111 and building RECORD_TYPE CONSTRUCTORs.
22112 Also support for creating Utf8Const objects from an INDETIFIER_NODE.
22113
22114 * lang.c (use_handles): Change the default to 0.
22115 * decl.c: Define and build class_type, field_type, utf8const_type.
22116 * class.c (make_class_data, make_field_value,
22117 get_access_flags_from_decl, build_class_ref, build_utf8_ref,
22118 hashUtf8String, strLengthUtf8, mangled_classname:
22119 Functions to build reflective data structures.
22120 * parse.c (yyparse): Call make_class_data.
22121
22122 * jcf-io.c (open_class, find_classfile): New functions.
22123 * jcf-dump.c: Support reading classfile from explicitly-named
22124 class file (without CLASSPATH searching).
22125
22126 1996-10-24 Per Bothner <bothner@deneb.cygnus.com>
22127
22128 * jcf-reader.c: Add parameter list to HANDLE_CONSTANT_Utf8.
22129 * parse.c (JPOOL_UTF_LENGTH, JPOOL_UTF_DATA, HANDLE_CONSTANT_Utf8):
22130 Override jcf-reader macros so CONSTANT_Utf8 becomes tree node here.
22131 (get_constant): Now trivial for CONSTANT_Utf8.
22132
22133 * jcf.h: Make NEW_CPOOL the default.
22134 * jcf.h, jcf-reader.c, parse.c: Remove support for !NEW_CPOOL.
22135
22136 1996-10-24 Per Bothner <bothner@deneb.cygnus.com>
22137
22138 New directory.
22139
22140 \f
22141 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
22142 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
22143
22144 Copying and distribution of this file, with or without modification,
22145 are permitted in any medium without royalty provided the copyright
22146 notice and this notice are preserved.